From a22c49ef189bdcf347daaea3406ed999d74ccc70 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 9 Jul 2024 14:16:47 +0000 Subject: [PATCH] Update to comunica/comunica#8aabee872f5dd95948f53d21db9aa4dd566dd2d2. --- .../latest/engines/query-sparql-file/comunica-browser.js.map | 2 +- versions/latest/engines/query-sparql-rdfjs/comunica-browser.js | 2 +- .../latest/engines/query-sparql-rdfjs/comunica-browser.js.map | 2 +- versions/latest/engines/query-sparql/comunica-browser.js.map | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/versions/latest/engines/query-sparql-file/comunica-browser.js.map b/versions/latest/engines/query-sparql-file/comunica-browser.js.map index 3cb9659..498a253 100644 --- a/versions/latest/engines/query-sparql-file/comunica-browser.js.map +++ b/versions/latest/engines/query-sparql-file/comunica-browser.js.map @@ -1 +1 @@ -{"version":3,"file":"comunica-browser.js","mappings":"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W,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,GAAI,UAAW,CAAC,GAAI,WAAY,CAAC,GAAI,YAAa,CAAC,GAAI,WAAY,CAAC,IAAK,UAAW,CAAC,EAAG,WAAY,CAAC,GAAI,WAAY,CAAC,EAAG,oBAAqB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,sBAAuB,CAAC,EAAG,WAAY,CAAC,GAAI,eAAgB,CAAC,IAAK,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,aAAc,CAAC,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,aAAc,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,aAAc,CAAC,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,GAAI,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,iBAAkB,CAAC,GAAI,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,E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C,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,GAAI,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAA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AAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,EAAE,IAAIC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG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C,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAA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GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,KAAKC,EAAI,CAAC,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,IAAI,IAAI,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,IAAI,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,KAAKC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAIC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,EAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKuP,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAI,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAIC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,KAAKC,GAAK,CAAC,GAAG,GAAG,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,IAAIC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,IAAIC,GAAK,CAAC,GAAG,IAAIC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,IAAIC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,IAAIC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,IAAI,KAAKC,GAAK,CAAC,GAAG,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,GAAG,IAAIC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,IAAIC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,KAAKC,GAAK,CAAC,EAAE,KAAKC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAA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,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG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GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,GAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,GAAG,OAAO,IAEf,KAAK,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","sources":["webpack://Comunica/../../node_modules/@bergos/jsonparse/jsonparse.js","webpack://Comunica/../../node_modules/@jeswr/prefixcc/dist/fragment.js","webpack://Comunica/../../node_modules/@jeswr/prefixcc/dist/index.js","webpack://Comunica/../../node_modules/@jeswr/prefixcc/dist/lookup/fetchContext.js","webpack://Comunica/../../node_modules/@jeswr/prefixcc/dist/lookup/index.js","webpack://Comunica/../../node_modules/@jeswr/prefixcc/dist/lookup/lookupAllPrefixes.js","webpack://Comunica/../../node_modules/@jeswr/prefixcc/dist/lookup/lookupNamespace.js","webpack://Comunica/../../node_modules/@jeswr/prefixcc/dist/lookup/lookupPrefix.js","webpack://Comunica/../../node_modules/@jeswr/prefixcc/node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://Comunica/../../node_modules/@rubensworks/saxes/saxes.js","webpack://Comunica/../../node_modules/@smessie/readable-web-to-node-stream/lib/index.js","webpack://Comunica/../../node_modules/abort-controller/browser.js","webpack://Comunica/../../node_modules/arrayify-stream/index.js","webpack://Comunica/../../node_modules/asyncjoin/index.js","webpack://Comunica/../../node_modules/asyncjoin/join/DynamicNestedLoopJoin.js","webpack://Comunica/../../node_modules/asyncjoin/join/HashJoin.js","webpack://Comunica/../../node_modules/asyncjoin/join/NestedLoopJoin.js","webpack://Comunica/../../node_modules/asyncjoin/join/SymmetricHashJoin.js","webpack://Comunica/../../node_modules/asyncjoin/util/MergeIterator.js","webpack://Comunica/./engine-browser.js","webpack://Comunica/QueryEngine.ts","webpack://Comunica/index-browser.ts","webpack://Comunica/ActorAbstractMediaTyped.ts","webpack://Comunica/ActorAbstractMediaTypedFixed.ts","webpack://Comunica/index.ts","webpack://Comunica/ActorAbstractPath.ts","webpack://Comunica/PathVariableObjectIterator.ts","webpack://Comunica/ActorContextPreprocessConvertShortcuts.ts","webpack://Comunica/ActorContextPreprocessQuerySourceIdentify.ts","webpack://Comunica/ActorContextPreprocessQuerySourceSkolemize.ts","webpack://Comunica/QuerySourceSkolemized.ts","webpack://Comunica/utils.ts","webpack://Comunica/ActorContextPreprocessSetDefaults.ts","webpack://Comunica/ActorContextPreprocessSourceToDestination.ts","webpack://Comunica/ActorDereferenceFallback.ts","webpack://Comunica/ActorDereferenceHttp-browser.ts","webpack://Comunica/ActorDereferenceHttpBase.ts","webpack://Comunica/ActorDereferenceRdfParse.ts","webpack://Comunica/ActorHashBindingsSha1.ts","webpack://Comunica/ActorHashQuadsSha1.ts","webpack://Comunica/ActorHttpFetch.ts","webpack://Comunica/FetchInitPreprocessor-browser.ts","webpack://Comunica/ActorHttpProxy.ts","webpack://Comunica/ProxyHandlerStatic.ts","webpack://Comunica/ActorHttpWayback.ts","webpack://Comunica/ActorInitQuery-browser.ts","webpack://Comunica/ActorInitQueryBase.ts","webpack://Comunica/QueryEngineBase.ts","webpack://Comunica/ActorOptimizeQueryOperationAssignSourcesExhaustive.ts","webpack://Comunica/ActorOptimizeQueryOperationBgpToJoin.ts","webpack://Comunica/ActorOptimizeQueryOperationConstructDistinct.ts","webpack://Comunica/ActorOptimizeQueryOperationDescribeToConstructsSubject.ts","webpack://Comunica/ActorOptimizeQueryOperationFilterPushdown.ts","webpack://Comunica/ActorOptimizeQueryOperationGroupSources.ts","webpack://Comunica/ActorOptimizeQueryOperationJoinBgp.ts","webpack://Comunica/ActorOptimizeQueryOperationJoinConnected.ts","webpack://Comunica/ActorOptimizeQueryOperationPruneEmptySourceOperations.ts","webpack://Comunica/ActorOptimizeQueryOperationRewriteAdd.ts","webpack://Comunica/ActorOptimizeQueryOperationRewriteCopy.ts","webpack://Comunica/ActorOptimizeQueryOperationRewriteMove.ts","webpack://Comunica/ActorQueryOperationAsk.ts","webpack://Comunica/ActorQueryOperationBgpJoin.ts","webpack://Comunica/ActorQueryOperationConstruct.ts","webpack://Comunica/BindingsToQuadsIterator.ts","webpack://Comunica/ActorQueryOperationDistinctHash.ts","webpack://Comunica/ActorQueryOperationExtend.ts","webpack://Comunica/ActorQueryOperationFilter.ts","webpack://Comunica/ActorQueryOperationFromQuad.ts","webpack://Comunica/ActorQueryOperationGroup.ts","webpack://Comunica/GroupsState.ts","webpack://Comunica/ActorQueryOperationJoin.ts","webpack://Comunica/ActorQueryOperationLeftJoin.ts","webpack://Comunica/ActorQueryOperationMinus.ts","webpack://Comunica/ActorQueryOperationNop.ts","webpack://Comunica/ActorQueryOperationOrderBy.ts","webpack://Comunica/SortIterator.ts","webpack://Comunica/ActorQueryOperationPathAlt.ts","webpack://Comunica/ActorQueryOperationPathInv.ts","webpack://Comunica/ActorQueryOperationPathLink.ts","webpack://Comunica/ActorQueryOperationPathNps.ts","webpack://Comunica/ActorQueryOperationPathOneOrMore.ts","webpack://Comunica/ActorQueryOperationPathSeq.ts","webpack://Comunica/ActorQueryOperationPathZeroOrMore.ts","webpack://Comunica/ActorQueryOperationPathZeroOrOne.ts","webpack://Comunica/ActorQueryOperationProject.ts","webpack://Comunica/ActorQueryOperationReducedHash.ts","webpack://Comunica/ActorQueryOperationService.ts","webpack://Comunica/ActorQueryOperationSlice.ts","webpack://Comunica/ActorQueryOperationSource.ts","webpack://Comunica/ActorQueryOperationUnion.ts","webpack://Comunica/ActorQueryOperationClear.ts","webpack://Comunica/ActorQueryOperationUpdateCompositeUpdate.ts","webpack://Comunica/ActorQueryOperationCreate.ts","webpack://Comunica/ActorQueryOperationUpdateDeleteInsert.ts","webpack://Comunica/ActorQueryOperationDrop.ts","webpack://Comunica/ActorQueryOperationLoad.ts","webpack://Comunica/ActorQueryOperationValues.ts","webpack://Comunica/ActorQueryParseGraphql.ts","webpack://Comunica/ActorQueryParseSparql.ts","webpack://Comunica/ActorQueryProcessExplainLogical.ts","webpack://Comunica/ActorQueryProcessExplainParsed.ts","webpack://Comunica/ActorQueryProcessExplainPhysical.ts","webpack://Comunica/MemoryPhysicalQueryPlanLogger.ts","webpack://Comunica/ActorQueryProcessSequential.ts","webpack://Comunica/ActorQueryResultSerializeJson.ts","webpack://Comunica/ActorQueryResultSerializeRdf.ts","webpack://Comunica/ActorQueryResultSerializeSimple.ts","webpack://Comunica/ActorQueryResultSerializeSparqlCsv.ts","webpack://Comunica/ActionObserverHttp.ts","webpack://Comunica/ActorQueryResultSerializeSparqlJson.ts","webpack://Comunica/ActorQueryResultSerializeSparqlTsv.ts","webpack://Comunica/ActorQueryResultSerializeSparqlXml.ts","webpack://Comunica/XmlSerializer.ts","webpack://Comunica/ActorQueryResultSerializeStats.ts","webpack://Comunica/ActorQueryResultSerializeTable.ts","webpack://Comunica/ActorQueryResultSerializeTree.ts","webpack://Comunica/ActorQuerySourceIdentifyHypermediaNone.ts","webpack://Comunica/ActorQuerySourceIdentifyHypermediaQpf.ts","webpack://Comunica/QuerySourceQpf.ts","webpack://Comunica/ActorQuerySourceIdentifyHypermediaSparql.ts","webpack://Comunica/QuerySourceSparql.ts","webpack://Comunica/ActorQuerySourceIdentifyHypermedia.ts","webpack://Comunica/LinkedRdfSourcesAsyncRdfIterator.ts","webpack://Comunica/MediatedLinkedRdfSourcesAsyncRdfIterator.ts","webpack://Comunica/QuerySourceHypermedia.ts","webpack://Comunica/StreamingStoreMetadata.ts","webpack://Comunica/ActorQuerySourceIdentifyRdfJs.ts","webpack://Comunica/QuerySourceRdfJs.ts","webpack://Comunica/ActorQuerySourceIdentifySerialized.ts","webpack://Comunica/ActorRdfJoinEntriesSortCardinality.ts","webpack://Comunica/ActorRdfJoinHash.ts","webpack://Comunica/ActorRdfJoinMultiBindSource.ts","webpack://Comunica/ActorRdfJoinMultiBind.ts","webpack://Comunica/ActorRdfJoinMultiEmpty.ts","webpack://Comunica/ActorRdfJoinMultiSmallestFilterBindings.ts","webpack://Comunica/ActorRdfJoinMultiSmallest.ts","webpack://Comunica/ActorRdfJoinNestedLoop.ts","webpack://Comunica/ActorRdfJoinNone.ts","webpack://Comunica/ActorRdfJoinSingle.ts","webpack://Comunica/ActorRdfJoinSymmetricHash.ts","webpack://Comunica/ActorRdfJoinMinusHashUndef.ts","webpack://Comunica/BindingsIndex.ts","webpack://Comunica/ActorRdfJoinMinusHash.ts","webpack://Comunica/ActorRdfJoinOptionalBind.ts","webpack://Comunica/ActorRdfJoinOptionalHash.ts","webpack://Comunica/BindingsIndexDef.ts","webpack://Comunica/BindingsIndexUndef.ts","webpack://Comunica/ActorRdfJoinOptionalNestedLoop.ts","webpack://Comunica/ActorRdfJoinSelectivityVariableCounting.ts","webpack://Comunica/ActorRdfMetadataAccumulateCanContainUndefs.ts","webpack://Comunica/ActorRdfMetadataAccumulateCardinality.ts","webpack://Comunica/ActorRdfMetadataAccumulatePageSize.ts","webpack://Comunica/ActorRdfMetadataAccumulateRequestTime.ts","webpack://Comunica/ActorRdfMetadataAll.ts","webpack://Comunica/ActorRdfMetadataExtractAllowHttpMethods.ts","webpack://Comunica/ActorRdfMetadataExtractHydraControls.ts","webpack://Comunica/ActorRdfMetadataExtractHydraCount.ts","webpack://Comunica/ActorRdfMetadataExtractHydraPagesize.ts","webpack://Comunica/ActorRdfMetadataExtractPatchSparqlUpdate.ts","webpack://Comunica/ActorRdfMetadataExtractPutAccepted.ts","webpack://Comunica/ActorRdfMetadataExtractRequestTime.ts","webpack://Comunica/ActorRdfMetadataExtractSparqlService.ts","webpack://Comunica/ActorRdfMetadataPrimaryTopic.ts","webpack://Comunica/ActorRdfParseHtmlMicrodata.ts","webpack://Comunica/ActorRdfParseHtmlRdfa.ts","webpack://Comunica/ActorRdfParseHtmlScript.ts","webpack://Comunica/HtmlScriptListener.ts","webpack://Comunica/ActorRdfParseHtml.ts","webpack://Comunica/ActorRdfParseJsonLd.ts","webpack://Comunica/DocumentLoaderMediated.ts","webpack://Comunica/ActorRdfParseN3.ts","webpack://Comunica/ActorRdfParseRdfXml.ts","webpack://Comunica/ActorRdfParseShaclc.ts","webpack://Comunica/PrefixWrappingIterator.ts","webpack://Comunica/ActorRdfParseXmlRdfa.ts","webpack://Comunica/ActorRdfResolveHypermediaLinksNext.ts","webpack://Comunica/ActorRdfResolveHypermediaLinksQueueFifo.ts","webpack://Comunica/LinkQueueFifo.ts","webpack://Comunica/ActorRdfSerializeJsonLd.ts","webpack://Comunica/ActorRdfSerializeN3.ts","webpack://Comunica/ActorRdfSerializeShaclc.ts","webpack://Comunica/ActorRdfUpdateHypermediaPatchSparqlUpdate.ts","webpack://Comunica/QuadDestinationPatchSparqlUpdate.ts","webpack://Comunica/ActorRdfUpdateHypermediaPutLdp.ts","webpack://Comunica/QuadDestinationPutLdp.ts","webpack://Comunica/ActorRdfUpdateHypermediaSparql.ts","webpack://Comunica/QuadDestinationSparql.ts","webpack://Comunica/ActorRdfUpdateQuadsHypermedia.ts","webpack://Comunica/ActorRdfUpdateQuadsRdfJsStore.ts","webpack://Comunica/RdfJsQuadDestination.ts","webpack://Comunica/Bindings.ts","webpack://Comunica/BindingsFactory.ts","webpack://Comunica/bindingsToString.ts","webpack://Comunica/ActorContextPreprocess.ts","webpack://Comunica/ActorDereferenceRdf.ts","webpack://Comunica/ActorDereference.ts","webpack://Comunica/ActorDereferenceBase.ts","webpack://Comunica/ActorDereferenceParse.ts","webpack://Comunica/ActorHashBindings.ts","webpack://Comunica/ActorHashQuads.ts","webpack://Comunica/ActorHttpInvalidate.ts","webpack://Comunica/ActorHttpInvalidateListenable.ts","webpack://Comunica/ActorHttp.ts","webpack://Comunica/ActorInit.ts","webpack://Comunica/ActorOptimizeQueryOperation.ts","webpack://Comunica/ActorQueryOperation.ts","webpack://Comunica/ActorQueryOperationTyped.ts","webpack://Comunica/ActorQueryOperationTypedMediated.ts","webpack://Comunica/BusQueryOperation.ts","webpack://Comunica/ClosableTransformIterator.ts","webpack://Comunica/ActorQueryParse.ts","webpack://Comunica/ActorQueryProcess.ts","webpack://Comunica/ActorQueryResultSerialize.ts","webpack://Comunica/ActorQueryResultSerializeFixedMediaTypes.ts","webpack://Comunica/ActorQuerySourceIdentify.ts","webpack://Comunica/Utils.ts","webpack://Comunica/ActorRdfJoinEntriesSort.ts","webpack://Comunica/ActorRdfJoinSelectivity.ts","webpack://Comunica/ActorRdfJoin.ts","webpack://Comunica/ChunkedIterator.ts","webpack://Comunica/instrumentIterator.ts","webpack://Comunica/ActorRdfMetadataAccumulate.ts","webpack://Comunica/ActorRdfMetadataExtract.ts","webpack://Comunica/ActorRdfMetadata.ts","webpack://Comunica/ActorRdfParse.ts","webpack://Comunica/ActorRdfParseFixedMediaTypes.ts","webpack://Comunica/ActorRdfResolveHypermediaLinksQueue.ts","webpack://Comunica/LinkQueueWrapper.ts","webpack://Comunica/ActorRdfResolveHypermediaLinks.ts","webpack://Comunica/ActorRdfSerialize.ts","webpack://Comunica/ActorRdfSerializeFixedMediaTypes.ts","webpack://Comunica/ActorRdfUpdateHypermedia.ts","webpack://Comunica/ActorRdfUpdateQuads.ts","webpack://Comunica/ActorRdfUpdateQuadsDestination.ts","webpack://Comunica/Keys.ts","webpack://Comunica/ActionContext.ts","webpack://Comunica/ActionObserver.ts","webpack://Comunica/Actor.ts","webpack://Comunica/Bus.ts","webpack://Comunica/BusIndexed.ts","webpack://Comunica/ContextEntries.ts","webpack://Comunica/Mediator.ts","webpack://Comunica/BlankNodeBindingsScoped.ts","webpack://Comunica/BlankNodeScoped.ts","webpack://Comunica/Aggregator.ts","webpack://Comunica/Average.ts","webpack://Comunica/Count.ts","webpack://Comunica/GroupConcat.ts","webpack://Comunica/Max.ts","webpack://Comunica/Min.ts","webpack://Comunica/Sample.ts","webpack://Comunica/Sum.ts","webpack://Comunica/WildcardCountAggregator.ts","webpack://Comunica/AggregateEvaluator.ts","webpack://Comunica/AsyncAggregateEvaluator.ts","webpack://Comunica/AsyncEvaluator.ts","webpack://Comunica/SyncEvaluator.ts","webpack://Comunica/AsyncRecursiveEvaluator.ts","webpack://Comunica/BaseAggregateEvaluator.ts","webpack://Comunica/BaseExpressionEvaluator.ts","webpack://Comunica/SyncRecursiveEvaluator.ts","webpack://Comunica/Aggregate.ts","webpack://Comunica/AsyncExtension.ts","webpack://Comunica/Existence.ts","webpack://Comunica/Expressions.ts","webpack://Comunica/Named.ts","webpack://Comunica/Operator.ts","webpack://Comunica/SpecialOperator.ts","webpack://Comunica/SyncExtension.ts","webpack://Comunica/Term.ts","webpack://Comunica/Variable.ts","webpack://Comunica/Core.ts","webpack://Comunica/Helpers.ts","webpack://Comunica/NamedFunctions.ts","webpack://Comunica/OverloadTree.ts","webpack://Comunica/RegularFunctions.ts","webpack://Comunica/SpecialFunctions.ts","webpack://Comunica/XPathFunctions.ts","webpack://Comunica/AlgebraTransformer.ts","webpack://Comunica/TermTransformer.ts","webpack://Comunica/Consts.ts","webpack://Comunica/DateTimeHelpers.ts","webpack://Comunica/Errors.ts","webpack://Comunica/Ordering.ts","webpack://Comunica/Parsing.ts","webpack://Comunica/Serialization.ts","webpack://Comunica/SpecAlgos.ts","webpack://Comunica/TypeHandling.ts","webpack://Comunica/LoggerVoid.ts","webpack://Comunica/MediatorAll.ts","webpack://Comunica/MediatorCombinePipeline.ts","webpack://Comunica/MediatorCombineUnion.ts","webpack://Comunica/MediatorJoinCoefficientsFixed.ts","webpack://Comunica/MediatorNumber.ts","webpack://Comunica/MediatorRace.ts","webpack://Comunica/MetadataValidationState.ts","webpack://Comunica/Logger.ts","webpack://Comunica/../../node_modules/base64-js/index.js","webpack://Comunica/../../node_modules/bignumber.js/bignumber.js","webpack://Comunica/../../node_modules/buffer/index.js","webpack://Comunica/../../node_modules/canonicalize/lib/canonicalize.js","webpack://Comunica/../../node_modules/cross-fetch/dist/browser-polyfill.js","webpack://Comunica/../../node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://Comunica/../../node_modules/dom-serializer/lib/foreignNames.js","webpack://Comunica/../../node_modules/dom-serializer/lib/index.js","webpack://Comunica/../../node_modules/domelementtype/lib/index.js","webpack://Comunica/../../node_modules/domhandler/lib/index.js","webpack://Comunica/../../node_modules/domhandler/lib/node.js","webpack://Comunica/../../node_modules/domutils/lib/feeds.js","webpack://Comunica/../../node_modules/domutils/lib/helpers.js","webpack://Comunica/../../node_modules/domutils/lib/index.js","webpack://Comunica/../../node_modules/domutils/lib/legacy.js","webpack://Comunica/../../node_modules/domutils/lib/manipulation.js","webpack://Comunica/../../node_modules/domutils/lib/querying.js","webpack://Comunica/../../node_modules/domutils/lib/stringify.js","webpack://Comunica/../../node_modules/domutils/lib/traversal.js","webpack://Comunica/../../node_modules/entities/lib/decode.js","webpack://Comunica/../../node_modules/entities/lib/decode_codepoint.js","webpack://Comunica/../../node_modules/entities/lib/encode.js","webpack://Comunica/../../node_modules/entities/lib/escape.js","webpack://Comunica/../../node_modules/entities/lib/generated/decode-data-html.js","webpack://Comunica/../../node_modules/entities/lib/generated/decode-data-xml.js","webpack://Comunica/../../node_modules/entities/lib/generated/encode-html.js","webpack://Comunica/../../node_modules/entities/lib/index.js","webpack://Comunica/../../node_modules/event-emitter-promisify/dist/index.js","webpack://Comunica/../../node_modules/events/events.js","webpack://Comunica/../../node_modules/fast-deep-equal/es6/index.js","webpack://Comunica/../../node_modules/fetch-sparql-endpoint/index.js","webpack://Comunica/../../node_modules/fetch-sparql-endpoint/lib/SparqlEndpointFetcher.js","webpack://Comunica/../../node_modules/fetch-sparql-endpoint/node_modules/cross-fetch/dist/browser-polyfill.js","webpack://Comunica/../../node_modules/graphql-to-sparql/index.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/Converter.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/IConvertContext.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/IConvertSettings.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/Util.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerAdapter.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerDefinitionAdapter.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerDefinitionFragment.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerDefinitionOperation.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerDocument.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerSelectionAdapter.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerSelectionField.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerSelectionFragmentSpread.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerSelectionInlineFragment.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerAdapter.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerInclude.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerOptional.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerPlural.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerSingle.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerSkip.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/directivenode/index.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/index.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerAdapter.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerBoolean.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerEnum.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerFloat.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerInt.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerList.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerNull.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerObject.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerString.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerVariable.js","webpack://Comunica/../../node_modules/graphql-to-sparql/lib/handler/valuenode/index.js","webpack://Comunica/../../node_modules/graphql-to-sparql/node_modules/sparqlalgebrajs/index.js","webpack://Comunica/../../node_modules/graphql-to-sparql/node_modules/sparqlalgebrajs/lib/algebra.js","webpack://Comunica/../../node_modules/graphql-to-sparql/node_modules/sparqlalgebrajs/lib/factory.js","webpack://Comunica/../../node_modules/graphql-to-sparql/node_modules/sparqlalgebrajs/lib/sparql.js","webpack://Comunica/../../node_modules/graphql-to-sparql/node_modules/sparqlalgebrajs/lib/sparqlAlgebra.js","webpack://Comunica/../../node_modules/graphql-to-sparql/node_modules/sparqlalgebrajs/lib/util.js","webpack://Comunica/../../node_modules/graphql/error/GraphQLError.js","webpack://Comunica/../../node_modules/graphql/error/syntaxError.js","webpack://Comunica/../../node_modules/graphql/jsutils/defineInspect.js","webpack://Comunica/../../node_modules/graphql/jsutils/devAssert.js","webpack://Comunica/../../node_modules/graphql/jsutils/inspect.js","webpack://Comunica/../../node_modules/graphql/jsutils/instanceOf.js","webpack://Comunica/../../node_modules/graphql/jsutils/invariant.js","webpack://Comunica/../../node_modules/graphql/jsutils/isObjectLike.js","webpack://Comunica/../../node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js","webpack://Comunica/../../node_modules/graphql/language/ast.js","webpack://Comunica/../../node_modules/graphql/language/blockString.js","webpack://Comunica/../../node_modules/graphql/language/directiveLocation.js","webpack://Comunica/../../node_modules/graphql/language/index.js","webpack://Comunica/../../node_modules/graphql/language/kinds.js","webpack://Comunica/../../node_modules/graphql/language/lexer.js","webpack://Comunica/../../node_modules/graphql/language/location.js","webpack://Comunica/../../node_modules/graphql/language/parser.js","webpack://Comunica/../../node_modules/graphql/language/predicates.js","webpack://Comunica/../../node_modules/graphql/language/printLocation.js","webpack://Comunica/../../node_modules/graphql/language/printer.js","webpack://Comunica/../../node_modules/graphql/language/source.js","webpack://Comunica/../../node_modules/graphql/language/tokenKind.js","webpack://Comunica/../../node_modules/graphql/language/visitor.js","webpack://Comunica/../../node_modules/graphql/polyfills/symbols.js","webpack://Comunica/../../node_modules/hash.js/lib/hash.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/common.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/hmac.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/ripemd.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/sha.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/sha/1.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/sha/224.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/sha/256.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/sha/384.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/sha/512.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/sha/common.js","webpack://Comunica/../../node_modules/hash.js/lib/hash/utils.js","webpack://Comunica/../../node_modules/htmlparser2/lib/Parser.js","webpack://Comunica/../../node_modules/htmlparser2/lib/Tokenizer.js","webpack://Comunica/../../node_modules/htmlparser2/lib/index.js","webpack://Comunica/../../node_modules/http-link-header/lib/link.js","webpack://Comunica/../../node_modules/ieee754/index.js","webpack://Comunica/../../node_modules/immutable/dist/immutable.es.js","webpack://Comunica/../../node_modules/inherits/inherits_browser.js","webpack://Comunica/../../node_modules/is-stream/index.js","webpack://Comunica/../../node_modules/jsonld-context-parser/index.js","webpack://Comunica/../../node_modules/jsonld-context-parser/lib/ContextParser.js","webpack://Comunica/../../node_modules/jsonld-context-parser/lib/ErrorCoded.js","webpack://Comunica/../../node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js","webpack://Comunica/../../node_modules/jsonld-context-parser/lib/IDocumentLoader.js","webpack://Comunica/../../node_modules/jsonld-context-parser/lib/JsonLdContext.js","webpack://Comunica/../../node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js","webpack://Comunica/../../node_modules/jsonld-context-parser/lib/Util.js","webpack://Comunica/../../node_modules/jsonld-context-parser/node_modules/cross-fetch/dist/browser-polyfill.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/index.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/ContextTree.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/JsonLdParser.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/ParsingContext.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/Util.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordAnnotation.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js","webpack://Comunica/../../node_modules/jsonld-streaming-parser/node_modules/canonicalize/lib/canonicalize.js","webpack://Comunica/../../node_modules/jsonld-streaming-serializer/index.js","webpack://Comunica/../../node_modules/jsonld-streaming-serializer/lib/JsonLdSerializer.js","webpack://Comunica/../../node_modules/jsonld-streaming-serializer/lib/SeparatorType.js","webpack://Comunica/../../node_modules/jsonld-streaming-serializer/lib/Util.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/index.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/IHtmlParseListener.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/IItemScope.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/IVocabRegistry.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/MicrodataRdfParser.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/Util.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/IItemPropertyHandler.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/ItemPropertyHandlerContent.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/ItemPropertyHandlerNumber.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/ItemPropertyHandlerTime.js","webpack://Comunica/../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/ItemPropertyHandlerUrl.js","webpack://Comunica/../../node_modules/minimalistic-assert/index.js","webpack://Comunica/../../node_modules/n3/src/IRIs.js","webpack://Comunica/../../node_modules/n3/src/N3Lexer.js","webpack://Comunica/../../node_modules/n3/src/N3DataFactory.js","webpack://Comunica/../../node_modules/n3/src/N3Parser.js","webpack://Comunica/../../node_modules/n3/src/N3Util.js","webpack://Comunica/../../node_modules/n3/src/N3Writer.js","webpack://Comunica/../../node_modules/n3/src/N3Store.js","webpack://Comunica/../../node_modules/n3/src/N3StreamParser.js","webpack://Comunica/../../node_modules/n3/src/N3StreamWriter.js","webpack://Comunica/../../node_modules/n3/src/index.js","webpack://Comunica/../../node_modules/process/browser.js","webpack://Comunica/../../node_modules/promise-polyfill/Promise.js","webpack://Comunica/../../node_modules/queue-microtask/index.js","webpack://Comunica/../../node_modules/rdf-data-factory/index.js","webpack://Comunica/../../node_modules/rdf-data-factory/lib/BlankNode.js","webpack://Comunica/../../node_modules/rdf-data-factory/lib/DataFactory.js","webpack://Comunica/../../node_modules/rdf-data-factory/lib/DefaultGraph.js","webpack://Comunica/../../node_modules/rdf-data-factory/lib/Literal.js","webpack://Comunica/../../node_modules/rdf-data-factory/lib/NamedNode.js","webpack://Comunica/../../node_modules/rdf-data-factory/lib/Quad.js","webpack://Comunica/../../node_modules/rdf-data-factory/lib/Variable.js","webpack://Comunica/../../node_modules/rdf-isomorphic/index.js","webpack://Comunica/../../node_modules/rdf-isomorphic/lib/RdfIsomorphic.js","webpack://Comunica/../../node_modules/rdf-literal/index.js","webpack://Comunica/../../node_modules/rdf-literal/lib/ITypeHandler.js","webpack://Comunica/../../node_modules/rdf-literal/lib/Translator.js","webpack://Comunica/../../node_modules/rdf-literal/lib/handler/TypeHandlerBoolean.js","webpack://Comunica/../../node_modules/rdf-literal/lib/handler/TypeHandlerDate.js","webpack://Comunica/../../node_modules/rdf-literal/lib/handler/TypeHandlerNumberDouble.js","webpack://Comunica/../../node_modules/rdf-literal/lib/handler/TypeHandlerNumberInteger.js","webpack://Comunica/../../node_modules/rdf-literal/lib/handler/TypeHandlerString.js","webpack://Comunica/../../node_modules/rdf-literal/lib/handler/index.js","webpack://Comunica/../../node_modules/rdf-store-stream/index.js","webpack://Comunica/../../node_modules/rdf-stores/index.js","webpack://Comunica/../../node_modules/rdf-stores/lib/IRdfStoreOptions.js","webpack://Comunica/../../node_modules/rdf-stores/lib/OrderUtils.js","webpack://Comunica/../../node_modules/rdf-stores/lib/PatternTerm.js","webpack://Comunica/../../node_modules/rdf-stores/lib/RdfStore.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dataset/DatasetCoreWrapper.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dictionary/ITermDictionary.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberMap.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecord.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecordFullTerms.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dictionary/TermDictionaryQuoted.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedIndexed.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedReferential.js","webpack://Comunica/../../node_modules/rdf-stores/lib/dictionary/TermDictionarySymbol.js","webpack://Comunica/../../node_modules/rdf-stores/lib/index/IRdfStoreIndex.js","webpack://Comunica/../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMap.js","webpack://Comunica/../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapQuoted.js","webpack://Comunica/../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursive.js","webpack://Comunica/../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursiveQuoted.js","webpack://Comunica/../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecord.js","webpack://Comunica/../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecordQuoted.js","webpack://Comunica/../../node_modules/rdf-streaming-store/index.js","webpack://Comunica/../../node_modules/rdf-streaming-store/lib/PendingStreamsIndex.js","webpack://Comunica/../../node_modules/rdf-streaming-store/lib/StreamingStore.js","webpack://Comunica/../../node_modules/rdf-string-ttl/index.js","webpack://Comunica/../../node_modules/rdf-string-ttl/lib/TermUtil.js","webpack://Comunica/../../node_modules/rdf-string/index.js","webpack://Comunica/../../node_modules/rdf-string/lib/TermUtil.js","webpack://Comunica/../../node_modules/rdf-terms/index.js","webpack://Comunica/../../node_modules/rdf-terms/lib/QuadTermUtil.js","webpack://Comunica/../../node_modules/rdf-terms/lib/TermUtil.js","webpack://Comunica/../../node_modules/rdfa-streaming-parser/index.js","webpack://Comunica/../../node_modules/rdfa-streaming-parser/lib/IActiveTag.js","webpack://Comunica/../../node_modules/rdfa-streaming-parser/lib/IHtmlParseListener.js","webpack://Comunica/../../node_modules/rdfa-streaming-parser/lib/IRdfaPattern.js","webpack://Comunica/../../node_modules/rdfa-streaming-parser/lib/RdfaParser.js","webpack://Comunica/../../node_modules/rdfa-streaming-parser/lib/RdfaProfile.js","webpack://Comunica/../../node_modules/rdfa-streaming-parser/lib/Util.js","webpack://Comunica/../../node_modules/rdfxml-streaming-parser/index.js","webpack://Comunica/../../node_modules/rdfxml-streaming-parser/lib/ParseError.js","webpack://Comunica/../../node_modules/rdfxml-streaming-parser/lib/RdfXmlParser.js","webpack://Comunica/../../node_modules/readable-stream-node-to-web/index.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/compose.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/duplex.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/duplexify.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/from.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/legacy.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/operators.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/passthrough.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/readable.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/state.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/transform.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/utils.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/streams/writable.js","webpack://Comunica/../../node_modules/readable-stream/lib/internal/validators.js","webpack://Comunica/../../node_modules/readable-stream/lib/ours/browser.js","webpack://Comunica/../../node_modules/readable-stream/lib/ours/errors.js","webpack://Comunica/../../node_modules/readable-stream/lib/ours/primordials.js","webpack://Comunica/../../node_modules/readable-stream/lib/ours/util.js","webpack://Comunica/../../node_modules/readable-stream/lib/stream.js","webpack://Comunica/../../node_modules/readable-stream/lib/stream/promises.js","webpack://Comunica/../../node_modules/relative-to-absolute-iri/index.js","webpack://Comunica/../../node_modules/relative-to-absolute-iri/lib/Resolve.js","webpack://Comunica/../../node_modules/safe-buffer/index.js","webpack://Comunica/../../node_modules/shaclc-parse/lib/ShaclcParser.js","webpack://Comunica/../../node_modules/shaclc-parse/lib/index.js","webpack://Comunica/../../node_modules/shaclc-write/dist/ShaclcGenerator.js","webpack://Comunica/../../node_modules/shaclc-write/dist/base-prefixes.js","webpack://Comunica/../../node_modules/shaclc-write/dist/index.js","webpack://Comunica/../../node_modules/shaclc-write/dist/node-param.js","webpack://Comunica/../../node_modules/shaclc-write/dist/property-param .js","webpack://Comunica/../../node_modules/shaclc-write/dist/utils.js","webpack://Comunica/../../node_modules/shaclc-write/dist/volatile-store.js","webpack://Comunica/../../node_modules/shaclc-write/dist/writer.js","webpack://Comunica/../../node_modules/spark-md5/spark-md5.js","webpack://Comunica/../../node_modules/sparqlalgebrajs/index.js","webpack://Comunica/../../node_modules/sparqlalgebrajs/lib/algebra.js","webpack://Comunica/../../node_modules/sparqlalgebrajs/lib/factory.js","webpack://Comunica/../../node_modules/sparqlalgebrajs/lib/sparql.js","webpack://Comunica/../../node_modules/sparqlalgebrajs/lib/sparqlAlgebra.js","webpack://Comunica/../../node_modules/sparqlalgebrajs/lib/util.js","webpack://Comunica/../../node_modules/sparqljs/lib/SparqlGenerator.js","webpack://Comunica/../../node_modules/sparqljs/lib/SparqlParser.js","webpack://Comunica/../../node_modules/sparqljs/lib/Wildcard.js","webpack://Comunica/../../node_modules/sparqljs/sparql.js","webpack://Comunica/../../node_modules/sparqljson-parse/index.js","webpack://Comunica/../../node_modules/sparqljson-parse/lib/SparqlJsonParser.js","webpack://Comunica/../../node_modules/sparqljson-to-tree/index.js","webpack://Comunica/../../node_modules/sparqljson-to-tree/lib/Converter.js","webpack://Comunica/../../node_modules/sparqlxml-parse/index.js","webpack://Comunica/../../node_modules/sparqlxml-parse/lib/SparqlXmlParser.js","webpack://Comunica/../../node_modules/stream-to-string/index.js","webpack://Comunica/../../node_modules/string_decoder/lib/string_decoder.js","webpack://Comunica/../../node_modules/uritemplate/bin/uritemplate.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/index.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/md5.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/native.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/nil.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/parse.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/regex.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/rng.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/sha1.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/stringify.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/v1.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/v3.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/v35.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/v4.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/v5.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/validate.js","webpack://Comunica/../../node_modules/uuid/dist/commonjs-browser/version.js","webpack://Comunica/../../node_modules/validate-iri/index.js","webpack://Comunica/../../node_modules/validate-iri/lib/Validate.js","webpack://Comunica/../../node_modules/web-streams-ponyfill/dist/polyfill-ie11.min.js","webpack://Comunica/../../node_modules/xmlchars/xml/1.0/ed5.js","webpack://Comunica/../../node_modules/xmlchars/xml/1.1/ed2.js","webpack://Comunica/../../node_modules/xmlchars/xmlns/1.0/ed3.js","webpack://Comunica/../../packages/actor-optimize-query-operation-construct-distinct/node_modules/sparqlalgebrajs/index.js","webpack://Comunica/../../packages/actor-optimize-query-operation-construct-distinct/node_modules/sparqlalgebrajs/lib/algebra.js","webpack://Comunica/../../packages/actor-optimize-query-operation-construct-distinct/node_modules/sparqlalgebrajs/lib/factory.js","webpack://Comunica/../../packages/actor-optimize-query-operation-construct-distinct/node_modules/sparqlalgebrajs/lib/sparql.js","webpack://Comunica/../../packages/actor-optimize-query-operation-construct-distinct/node_modules/sparqlalgebrajs/lib/sparqlAlgebra.js","webpack://Comunica/../../packages/actor-optimize-query-operation-construct-distinct/node_modules/sparqlalgebrajs/lib/util.js","webpack://Comunica/../../packages/actor-rdf-parse-html/node_modules/htmlparser2/lib/Parser.js","webpack://Comunica/../../packages/actor-rdf-parse-html/node_modules/htmlparser2/lib/Tokenizer.js","webpack://Comunica/../../packages/actor-rdf-parse-html/node_modules/htmlparser2/lib/index.js","webpack://Comunica/../../node_modules/asynciterator/dist/asynciterator.js","webpack://Comunica/../../node_modules/asynciterator/dist/linkedlist.js","webpack://Comunica/../../node_modules/asynciterator/dist/taskscheduler.js","webpack://Comunica/../../node_modules/lru-cache/dist/commonjs/index.js","webpack://Comunica/../../node_modules/readable-from-web/lib/ReadableFromWeb.js","webpack://Comunica/../../node_modules/readable-from-web/lib/index.js","webpack://Comunica/webpack/bootstrap","webpack://Comunica/webpack/runtime/compat get default export","webpack://Comunica/webpack/runtime/define property getters","webpack://Comunica/webpack/runtime/global","webpack://Comunica/webpack/runtime/hasOwnProperty shorthand","webpack://Comunica/webpack/runtime/make namespace object","webpack://Comunica/webpack/startup"],"sourcesContent":["var { Buffer } = require('buffer')\n// Named constants with unique integer values\nvar C = {};\n// Tokens\nvar LEFT_BRACE = C.LEFT_BRACE = 0x1;\nvar RIGHT_BRACE = C.RIGHT_BRACE = 0x2;\nvar LEFT_BRACKET = C.LEFT_BRACKET = 0x3;\nvar RIGHT_BRACKET = C.RIGHT_BRACKET = 0x4;\nvar COLON = C.COLON = 0x5;\nvar COMMA = C.COMMA = 0x6;\nvar TRUE = C.TRUE = 0x7;\nvar FALSE = C.FALSE = 0x8;\nvar NULL = C.NULL = 0x9;\nvar STRING = C.STRING = 0xa;\nvar NUMBER = C.NUMBER = 0xb;\n// Tokenizer States\nvar START = C.START = 0x11;\nvar STOP = C.STOP = 0x12;\nvar TRUE1 = C.TRUE1 = 0x21;\nvar TRUE2 = C.TRUE2 = 0x22;\nvar TRUE3 = C.TRUE3 = 0x23;\nvar FALSE1 = C.FALSE1 = 0x31;\nvar FALSE2 = C.FALSE2 = 0x32;\nvar FALSE3 = C.FALSE3 = 0x33;\nvar FALSE4 = C.FALSE4 = 0x34;\nvar NULL1 = C.NULL1 = 0x41;\nvar NULL2 = C.NULL2 = 0x42;\nvar NULL3 = C.NULL3 = 0x43;\nvar NUMBER1 = C.NUMBER1 = 0x51;\nvar NUMBER3 = C.NUMBER3 = 0x53;\nvar STRING1 = C.STRING1 = 0x61;\nvar STRING2 = C.STRING2 = 0x62;\nvar STRING3 = C.STRING3 = 0x63;\nvar STRING4 = C.STRING4 = 0x64;\nvar STRING5 = C.STRING5 = 0x65;\nvar STRING6 = C.STRING6 = 0x66;\n// Parser States\nvar VALUE = C.VALUE = 0x71;\nvar KEY = C.KEY = 0x72;\n// Parser Modes\nvar OBJECT = C.OBJECT = 0x81;\nvar ARRAY = C.ARRAY = 0x82;\n// Character constants\nvar BACK_SLASH = \"\\\\\".charCodeAt(0);\nvar FORWARD_SLASH = \"\\/\".charCodeAt(0);\nvar BACKSPACE = \"\\b\".charCodeAt(0);\nvar FORM_FEED = \"\\f\".charCodeAt(0);\nvar NEWLINE = \"\\n\".charCodeAt(0);\nvar CARRIAGE_RETURN = \"\\r\".charCodeAt(0);\nvar TAB = \"\\t\".charCodeAt(0);\n\nvar STRING_BUFFER_SIZE = 64 * 1024;\n\nfunction alloc(size) {\n return Buffer.alloc ? Buffer.alloc(size) : new Buffer(size);\n}\n\nfunction Parser() {\n this.tState = START;\n this.value = undefined;\n\n this.string = undefined; // string data\n this.stringBuffer = alloc(STRING_BUFFER_SIZE);\n this.stringBufferOffset = 0;\n this.unicode = undefined; // unicode escapes\n this.highSurrogate = undefined;\n\n this.key = undefined;\n this.mode = undefined;\n this.stack = [];\n this.state = VALUE;\n this.bytes_remaining = 0; // number of bytes remaining in multi byte utf8 char to read after split boundary\n this.bytes_in_sequence = 0; // bytes in multi byte utf8 char to read\n this.temp_buffs = { \"2\": alloc(2), \"3\": alloc(3), \"4\": alloc(4) }; // for rebuilding chars split before boundary is reached\n\n // Stream offset\n this.offset = -1;\n}\n\n// Slow code to string converter (only used when throwing syntax errors)\nParser.toknam = function (code) {\n var keys = Object.keys(C);\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n if (C[key] === code) { return key; }\n }\n return code && (\"0x\" + code.toString(16));\n};\n\nvar proto = Parser.prototype;\nproto.onError = function (err) { throw err; };\nproto.charError = function (buffer, i) {\n this.tState = STOP;\n this.onError(new Error(\"Unexpected \" + JSON.stringify(String.fromCharCode(buffer[i])) + \" at position \" + i + \" in state \" + Parser.toknam(this.tState)));\n};\nproto.appendStringChar = function (char) {\n if (this.stringBufferOffset >= STRING_BUFFER_SIZE) {\n this.string += this.stringBuffer.toString('utf8');\n this.stringBufferOffset = 0;\n }\n\n this.stringBuffer[this.stringBufferOffset++] = char;\n};\nproto.appendStringBuf = function (buf, start, end) {\n var size = buf.length;\n if (typeof start === 'number') {\n if (typeof end === 'number') {\n if (end < 0) {\n // adding a negative end decreeses the size\n size = buf.length - start + end;\n } else {\n size = end - start;\n }\n } else {\n size = buf.length - start;\n }\n }\n\n if (size < 0) {\n size = 0;\n }\n\n if (this.stringBufferOffset + size > STRING_BUFFER_SIZE) {\n this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset);\n this.stringBufferOffset = 0;\n }\n\n buf.copy(this.stringBuffer, this.stringBufferOffset, start, end);\n this.stringBufferOffset += size;\n};\nproto.write = function (buffer) {\n if (typeof buffer === \"string\") buffer = new Buffer(buffer);\n var n;\n for (var i = 0, l = buffer.length; i < l; i++) {\n if (this.tState === START){\n n = buffer[i];\n this.offset++;\n if(n === 0x7b){ this.onToken(LEFT_BRACE, \"{\"); // {\n }else if(n === 0x7d){ this.onToken(RIGHT_BRACE, \"}\"); // }\n }else if(n === 0x5b){ this.onToken(LEFT_BRACKET, \"[\"); // [\n }else if(n === 0x5d){ this.onToken(RIGHT_BRACKET, \"]\"); // ]\n }else if(n === 0x3a){ this.onToken(COLON, \":\"); // :\n }else if(n === 0x2c){ this.onToken(COMMA, \",\"); // ,\n }else if(n === 0x74){ this.tState = TRUE1; // t\n }else if(n === 0x66){ this.tState = FALSE1; // f\n }else if(n === 0x6e){ this.tState = NULL1; // n\n }else if(n === 0x22){ // \"\n this.string = \"\";\n this.stringBufferOffset = 0;\n this.tState = STRING1;\n }else if(n === 0x2d){ this.string = \"-\"; this.tState = NUMBER1; // -\n }else{\n if (n >= 0x30 && n < 0x40) { // 1-9\n this.string = String.fromCharCode(n); this.tState = NUMBER3;\n } else if (n === 0x20 || n === 0x09 || n === 0x0a || n === 0x0d) {\n // whitespace\n } else {\n return this.charError(buffer, i);\n }\n }\n }else if (this.tState === STRING1){ // After open quote\n n = buffer[i]; // get current byte from buffer\n // check for carry over of a multi byte char split between data chunks\n // & fill temp buffer it with start of this data chunk up to the boundary limit set in the last iteration\n if (this.bytes_remaining > 0) {\n for (var j = 0; j < this.bytes_remaining; j++) {\n this.temp_buffs[this.bytes_in_sequence][this.bytes_in_sequence - this.bytes_remaining + j] = buffer[j];\n }\n\n this.appendStringBuf(this.temp_buffs[this.bytes_in_sequence]);\n this.bytes_in_sequence = this.bytes_remaining = 0;\n i = i + j - 1;\n } else if (this.bytes_remaining === 0 && n >= 128) { // else if no remainder bytes carried over, parse multi byte (>=128) chars one at a time\n if (n <= 193 || n > 244) {\n return this.onError(new Error(\"Invalid UTF-8 character at position \" + i + \" in state \" + Parser.toknam(this.tState)));\n }\n if ((n >= 194) && (n <= 223)) this.bytes_in_sequence = 2;\n if ((n >= 224) && (n <= 239)) this.bytes_in_sequence = 3;\n if ((n >= 240) && (n <= 244)) this.bytes_in_sequence = 4;\n if ((this.bytes_in_sequence + i) > buffer.length) { // if bytes needed to complete char fall outside buffer length, we have a boundary split\n for (var k = 0; k <= (buffer.length - 1 - i); k++) {\n this.temp_buffs[this.bytes_in_sequence][k] = buffer[i + k]; // fill temp buffer of correct size with bytes available in this chunk\n }\n this.bytes_remaining = (i + this.bytes_in_sequence) - buffer.length;\n i = buffer.length - 1;\n } else {\n this.appendStringBuf(buffer, i, i + this.bytes_in_sequence);\n i = i + this.bytes_in_sequence - 1;\n }\n } else if (n === 0x22) {\n this.tState = START;\n this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset);\n this.stringBufferOffset = 0;\n this.onToken(STRING, this.string);\n this.offset += Buffer.byteLength(this.string, 'utf8') + 1;\n this.string = undefined;\n }\n else if (n === 0x5c) {\n this.tState = STRING2;\n }\n else if (n >= 0x20) { this.appendStringChar(n); }\n else {\n return this.charError(buffer, i);\n }\n }else if (this.tState === STRING2){ // After backslash\n n = buffer[i];\n if(n === 0x22){ this.appendStringChar(n); this.tState = STRING1;\n }else if(n === 0x5c){ this.appendStringChar(BACK_SLASH); this.tState = STRING1;\n }else if(n === 0x2f){ this.appendStringChar(FORWARD_SLASH); this.tState = STRING1;\n }else if(n === 0x62){ this.appendStringChar(BACKSPACE); this.tState = STRING1;\n }else if(n === 0x66){ this.appendStringChar(FORM_FEED); this.tState = STRING1;\n }else if(n === 0x6e){ this.appendStringChar(NEWLINE); this.tState = STRING1;\n }else if(n === 0x72){ this.appendStringChar(CARRIAGE_RETURN); this.tState = STRING1;\n }else if(n === 0x74){ this.appendStringChar(TAB); this.tState = STRING1;\n }else if(n === 0x75){ this.unicode = \"\"; this.tState = STRING3;\n }else{\n return this.charError(buffer, i);\n }\n }else if (this.tState === STRING3 || this.tState === STRING4 || this.tState === STRING5 || this.tState === STRING6){ // unicode hex codes\n n = buffer[i];\n // 0-9 A-F a-f\n if ((n >= 0x30 && n < 0x40) || (n > 0x40 && n <= 0x46) || (n > 0x60 && n <= 0x66)) {\n this.unicode += String.fromCharCode(n);\n if (this.tState++ === STRING6) {\n var intVal = parseInt(this.unicode, 16);\n this.unicode = undefined;\n if (this.highSurrogate !== undefined && intVal >= 0xDC00 && intVal < (0xDFFF + 1)) { //<56320,57343> - lowSurrogate\n this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate, intVal)));\n this.highSurrogate = undefined;\n } else if (this.highSurrogate === undefined && intVal >= 0xD800 && intVal < (0xDBFF + 1)) { //<55296,56319> - highSurrogate\n this.highSurrogate = intVal;\n } else {\n if (this.highSurrogate !== undefined) {\n this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate)));\n this.highSurrogate = undefined;\n }\n this.appendStringBuf(new Buffer(String.fromCharCode(intVal)));\n }\n this.tState = STRING1;\n }\n } else {\n return this.charError(buffer, i);\n }\n } else if (this.tState === NUMBER1 || this.tState === NUMBER3) {\n n = buffer[i];\n\n switch (n) {\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n case 0x2e: // .\n case 0x65: // e\n case 0x45: // E\n case 0x2b: // +\n case 0x2d: // -\n this.string += String.fromCharCode(n);\n this.tState = NUMBER3;\n break;\n default:\n this.tState = START;\n var error = this.numberReviver(this.string);\n if (error){\n return error;\n }\n\n this.offset += this.string.length - 1;\n this.string = undefined;\n i--;\n break;\n }\n }else if (this.tState === TRUE1){ // r\n if (buffer[i] === 0x72) { this.tState = TRUE2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === TRUE2){ // u\n if (buffer[i] === 0x75) { this.tState = TRUE3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === TRUE3){ // e\n if (buffer[i] === 0x65) { this.tState = START; this.onToken(TRUE, true); this.offset+= 3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE1){ // a\n if (buffer[i] === 0x61) { this.tState = FALSE2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE2){ // l\n if (buffer[i] === 0x6c) { this.tState = FALSE3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE3){ // s\n if (buffer[i] === 0x73) { this.tState = FALSE4; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE4){ // e\n if (buffer[i] === 0x65) { this.tState = START; this.onToken(FALSE, false); this.offset+= 4; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL1){ // u\n if (buffer[i] === 0x75) { this.tState = NULL2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL2){ // l\n if (buffer[i] === 0x6c) { this.tState = NULL3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL3){ // l\n if (buffer[i] === 0x6c) { this.tState = START; this.onToken(NULL, null); this.offset += 3; }\n else { return this.charError(buffer, i); }\n }\n }\n};\nproto.onToken = function (token, value) {\n // Override this to get events\n};\n\nproto.parseError = function (token, value) {\n this.tState = STOP;\n this.onError(new Error(\"Unexpected \" + Parser.toknam(token) + (value ? (\"(\" + JSON.stringify(value) + \")\") : \"\") + \" in state \" + Parser.toknam(this.state)));\n};\nproto.push = function () {\n this.stack.push({value: this.value, key: this.key, mode: this.mode});\n};\nproto.pop = function () {\n var value = this.value;\n var parent = this.stack.pop();\n this.value = parent.value;\n this.key = parent.key;\n this.mode = parent.mode;\n this.emit(value);\n if (!this.mode) { this.state = VALUE; }\n};\nproto.emit = function (value) {\n if (this.mode) { this.state = COMMA; }\n this.onValue(value);\n};\nproto.onValue = function (value) {\n // Override me\n};\nproto.onToken = function (token, value) {\n if(this.state === VALUE){\n if(token === STRING || token === NUMBER || token === TRUE || token === FALSE || token === NULL){\n if (this.value) {\n this.value[this.key] = value;\n }\n this.emit(value);\n }else if(token === LEFT_BRACE){\n this.push();\n if (this.value) {\n this.value = this.value[this.key] = {};\n } else {\n this.value = {};\n }\n this.key = undefined;\n this.state = KEY;\n this.mode = OBJECT;\n }else if(token === LEFT_BRACKET){\n this.push();\n if (this.value) {\n this.value = this.value[this.key] = [];\n } else {\n this.value = [];\n }\n this.key = 0;\n this.mode = ARRAY;\n this.state = VALUE;\n }else if(token === RIGHT_BRACE){\n if (this.mode === OBJECT) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else if(token === RIGHT_BRACKET){\n if (this.mode === ARRAY) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else{\n return this.parseError(token, value);\n }\n }else if(this.state === KEY){\n if (token === STRING) {\n this.key = value;\n this.state = COLON;\n } else if (token === RIGHT_BRACE) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else if(this.state === COLON){\n if (token === COLON) { this.state = VALUE; }\n else { return this.parseError(token, value); }\n }else if(this.state === COMMA){\n if (token === COMMA) {\n if (this.mode === ARRAY) { this.key++; this.state = VALUE; }\n else if (this.mode === OBJECT) { this.state = KEY; }\n\n } else if (token === RIGHT_BRACKET && this.mode === ARRAY || token === RIGHT_BRACE && this.mode === OBJECT) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else{\n return this.parseError(token, value);\n }\n};\n\n// Override to implement your own number reviver.\n// Any value returned is treated as error and will interrupt parsing.\nproto.numberReviver = function (text) {\n var result = Number(text);\n\n if (isNaN(result)) {\n return this.charError(buffer, i);\n }\n\n if ((text.match(/[0-9]+/) == text) && (result.toString() != text)) {\n // Long string of digits which is an ID string and not valid and/or safe JavaScript integer Number\n this.onToken(STRING, text);\n } else {\n this.onToken(NUMBER, result);\n }\n}\n\nParser.C = C;\n\nmodule.exports = Parser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fragment = void 0;\nfunction getFragment(inputStr) {\n let str = inputStr;\n if (str.endsWith('/') || str.endsWith('#')) {\n str = str.slice(0, str.length - 1);\n }\n const args = [];\n if (str.lastIndexOf('/') > 0) {\n args.push(str.lastIndexOf('/'));\n }\n if (str.lastIndexOf('#') > 0) {\n args.push(str.lastIndexOf('#'));\n }\n const i = Math.max(...args);\n return str.slice(i + 1);\n}\nfunction camelize(str) {\n var _a;\n const res = (_a = str\n .split(/[^a-z0-9]+/ig)\n .filter((s) => s !== '')\n .map((s) => s[0].toUpperCase() + s.slice(1))\n .join('')\n // Make sure the prefix does not start with a number\n .match(/[a-z][a-z0-9]+/ig)) === null || _a === void 0 ? void 0 : _a[0];\n // Include 'v' so we always return something matching the pattern\n // [a-z][a-z0-9]+\n return typeof res === 'undefined' ? undefined : res[0].toLowerCase() + res.slice(1);\n}\nfunction fragment(str) {\n let value = getFragment(str);\n value = value ? camelize(value) : undefined;\n return value || 'v';\n}\nexports.fragment = fragment;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupAllPrefixes = exports.prefixToUri = exports.uriToPrefix = void 0;\nconst fragment_1 = require(\"./fragment\");\nconst lookup_1 = require(\"./lookup\");\nfunction uriToPrefix(uri, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n // Collect the prefix\n try {\n result = yield (0, lookup_1.lookupPrefix)(uri, options);\n }\n catch (_a) {\n if (options === null || options === void 0 ? void 0 : options.mintOnUnknown) {\n // Keep prefixes at most 4 characters long when minting a new one\n result = (0, fragment_1.fragment)(uri).slice(0, 4);\n }\n }\n // If there is a bank of existing prefixes make sure to make a unique one\n // by postfixing a number\n if (typeof result !== 'undefined'\n && typeof (options === null || options === void 0 ? void 0 : options.existingPrefixes) === 'object'\n && result in options.existingPrefixes) {\n let i = 0;\n while (`${result}${i}` in options.existingPrefixes) {\n i += 1;\n }\n result = `${result}${i}`;\n }\n return result;\n });\n}\nexports.uriToPrefix = uriToPrefix;\n/**\n * Lookup the namespace commonly associated with a given prefix\n * @param prefix The prefix to lookup the namespace for\n * @param options You can optionally pass a custom fetch function\n */\nfunction prefixToUri(prefix, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // The await needs to be here so that we can return undefined on rejection\n return yield (0, lookup_1.lookupUri)(prefix, options);\n }\n catch (_a) {\n return undefined;\n }\n });\n}\nexports.prefixToUri = prefixToUri;\nvar lookup_2 = require(\"./lookup\");\nObject.defineProperty(exports, \"lookupAllPrefixes\", { enumerable: true, get: function () { return lookup_2.lookupAllPrefixes; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchContext = exports.fetchJson = void 0;\n// TODO: Use universal fetch here\nconst cross_fetch_1 = require(\"cross-fetch\");\nfunction fetchJson(url, options) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n // Select the correct fetch function\n const fetchFn = (_a = options === null || options === void 0 ? void 0 : options.fetch) !== null && _a !== void 0 ? _a : cross_fetch_1.fetch;\n return (yield fetchFn(url)).json();\n });\n}\nexports.fetchJson = fetchJson;\nfunction fetchContext(url, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return (yield fetchJson(url, options))['@context'];\n });\n}\nexports.fetchContext = fetchContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lookupNamespace\"), exports);\n__exportStar(require(\"./lookupPrefix\"), exports);\n__exportStar(require(\"./lookupAllPrefixes\"), exports);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupAllPrefixes = void 0;\nconst fetchContext_1 = require(\"./fetchContext\");\n/**\n * Use prefix.cc to look up all recorded prefixes\n */\nfunction lookupAllPrefixes(options) {\n return __awaiter(this, void 0, void 0, function* () {\n return (0, fetchContext_1.fetchContext)('https://prefix.cc/context', options);\n });\n}\nexports.lookupAllPrefixes = lookupAllPrefixes;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupUri = void 0;\nconst fetchContext_1 = require(\"./fetchContext\");\n/**\n * Use prefix.cc to look up the namespace associated with a given prefix.\n * Errors if one cannot be found.\n *\n * @param prefix The prefix of which to obtain the namespace\n * @param options Optional fetch function to use\n */\nfunction lookupUri(prefix, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const uri = (yield (0, fetchContext_1.fetchContext)(`https://prefix.cc/${prefix}.file.jsonld`, options))[prefix];\n if (typeof uri !== 'string') {\n throw new Error(`Expected uri to be a string, received: ${uri} of type ${typeof uri}`);\n }\n return uri;\n });\n}\nexports.lookupUri = lookupUri;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupPrefix = void 0;\nconst fetchContext_1 = require(\"./fetchContext\");\n/**\n * Use prefix.cc to look up the prefix for a URI namespace, rejects if there is an error in\n * looking up the prefix, or if no prefixes are returned\n *\n * @param uri The URI to obtain a prefix for\n * @param options Optional fetch function to use\n */\nfunction lookupPrefix(uri, options) {\n return __awaiter(this, void 0, void 0, function* () {\n // Create the correct url to lookup including search parameters\n const url = new URL('https://prefix.cc/reverse');\n url.searchParams.append('uri', uri);\n url.searchParams.append('format', 'jsonld');\n const prefixes = Object.keys(yield (0, fetchContext_1.fetchContext)(url, options));\n if (prefixes.length === 0) {\n throw new Error('No prefixes returned');\n }\n return prefixes[0];\n });\n}\nexports.lookupPrefix = lookupPrefix;\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SaxesParser = exports.EVENTS = void 0;\nconst ed5 = require(\"xmlchars/xml/1.0/ed5\");\nconst ed2 = require(\"xmlchars/xml/1.1/ed2\");\nconst NSed3 = require(\"xmlchars/xmlns/1.0/ed3\");\nvar isS = ed5.isS;\nvar isChar10 = ed5.isChar;\nvar isNameStartChar = ed5.isNameStartChar;\nvar isNameChar = ed5.isNameChar;\nvar S_LIST = ed5.S_LIST;\nvar NAME_RE = ed5.NAME_RE;\nvar isChar11 = ed2.isChar;\nvar isNCNameStartChar = NSed3.isNCNameStartChar;\nvar isNCNameChar = NSed3.isNCNameChar;\nvar NC_NAME_RE = NSed3.NC_NAME_RE;\nconst XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\nconst XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\nconst rootNS = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n __proto__: null,\n xml: XML_NAMESPACE,\n xmlns: XMLNS_NAMESPACE,\n};\nconst XML_ENTITIES = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n __proto__: null,\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n quot: \"\\\"\",\n apos: \"'\",\n};\n// EOC: end-of-chunk\nconst EOC = -1;\nconst NL_LIKE = -2;\nconst S_BEGIN = 0; // Initial state.\nconst S_BEGIN_WHITESPACE = 1; // leading whitespace\nconst S_DOCTYPE = 2; // \nconst TAB = 9;\nconst NL = 0xA;\nconst CR = 0xD;\nconst SPACE = 0x20;\nconst BANG = 0x21;\nconst DQUOTE = 0x22;\nconst AMP = 0x26;\nconst SQUOTE = 0x27;\nconst MINUS = 0x2D;\nconst FORWARD_SLASH = 0x2F;\nconst SEMICOLON = 0x3B;\nconst LESS = 0x3C;\nconst EQUAL = 0x3D;\nconst GREATER = 0x3E;\nconst QUESTION = 0x3F;\nconst OPEN_BRACKET = 0x5B;\nconst CLOSE_BRACKET = 0x5D;\nconst NEL = 0x85;\nconst LS = 0x2028; // Line Separator\nconst isQuote = (c) => c === DQUOTE || c === SQUOTE;\nconst QUOTES = [DQUOTE, SQUOTE];\nconst DOCTYPE_TERMINATOR = [...QUOTES, OPEN_BRACKET, GREATER];\nconst DTD_TERMINATOR = [...QUOTES, LESS, CLOSE_BRACKET];\nconst XML_DECL_NAME_TERMINATOR = [EQUAL, QUESTION, ...S_LIST];\nconst ATTRIB_VALUE_UNQUOTED_TERMINATOR = [...S_LIST, GREATER, AMP, LESS];\nfunction nsPairCheck(parser, prefix, uri) {\n switch (prefix) {\n case \"xml\":\n if (uri !== XML_NAMESPACE) {\n parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);\n }\n break;\n case \"xmlns\":\n if (uri !== XMLNS_NAMESPACE) {\n parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);\n }\n break;\n default:\n }\n switch (uri) {\n case XMLNS_NAMESPACE:\n parser.fail(prefix === \"\" ?\n `the default namespace may not be set to ${uri}.` :\n `may not assign a prefix (even \"xmlns\") to the URI \\\n${XMLNS_NAMESPACE}.`);\n break;\n case XML_NAMESPACE:\n switch (prefix) {\n case \"xml\":\n // Assinging the XML namespace to \"xml\" is fine.\n break;\n case \"\":\n parser.fail(`the default namespace may not be set to ${uri}.`);\n break;\n default:\n parser.fail(\"may not assign the xml namespace to another prefix.\");\n }\n break;\n default:\n }\n}\nfunction nsMappingCheck(parser, mapping) {\n for (const local of Object.keys(mapping)) {\n nsPairCheck(parser, local, mapping[local]);\n }\n}\nconst isNCName = (name) => NC_NAME_RE.test(name);\nconst isName = (name) => NAME_RE.test(name);\nconst FORBIDDEN_START = 0;\nconst FORBIDDEN_BRACKET = 1;\nconst FORBIDDEN_BRACKET_BRACKET = 2;\n/**\n * The list of supported events.\n */\nexports.EVENTS = [\n \"xmldecl\",\n \"text\",\n \"processinginstruction\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"cdata\",\n \"error\",\n \"end\",\n \"ready\",\n];\nconst EVENT_NAME_TO_HANDLER_NAME = {\n xmldecl: \"xmldeclHandler\",\n text: \"textHandler\",\n processinginstruction: \"piHandler\",\n doctype: \"doctypeHandler\",\n comment: \"commentHandler\",\n opentagstart: \"openTagStartHandler\",\n attribute: \"attributeHandler\",\n opentag: \"openTagHandler\",\n closetag: \"closeTagHandler\",\n cdata: \"cdataHandler\",\n error: \"errorHandler\",\n end: \"endHandler\",\n ready: \"readyHandler\",\n};\n// eslint-disable-next-line @typescript-eslint/ban-types\nclass SaxesParser {\n /**\n * Indicates whether or not the parser is closed. If ``true``, wait for\n * the ``ready`` event to write again.\n */\n get closed() {\n return this._closed;\n }\n /**\n * @param opt The parser options.\n */\n constructor(opt) {\n this.opt = opt !== null && opt !== void 0 ? opt : {};\n this.fragmentOpt = !!this.opt.fragment;\n const xmlnsOpt = this.xmlnsOpt = !!this.opt.xmlns;\n this.trackPosition = this.opt.position !== false;\n this.fileName = this.opt.fileName;\n if (xmlnsOpt) {\n // This is the function we use to perform name checks on PIs and entities.\n // When namespaces are used, colons are not allowed in PI target names or\n // entity names. So the check depends on whether namespaces are used. See:\n //\n // https://www.w3.org/XML/xml-names-19990114-errata.html\n // NE08\n //\n this.nameStartCheck = isNCNameStartChar;\n this.nameCheck = isNCNameChar;\n this.isName = isNCName;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.processAttribs = this.processAttribsNS;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.pushAttrib = this.pushAttribNS;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n this.ns = Object.assign({ __proto__: null }, rootNS);\n const additional = this.opt.additionalNamespaces;\n if (additional != null) {\n nsMappingCheck(this, additional);\n Object.assign(this.ns, additional);\n }\n }\n else {\n this.nameStartCheck = isNameStartChar;\n this.nameCheck = isNameChar;\n this.isName = isName;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.processAttribs = this.processAttribsPlain;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.pushAttrib = this.pushAttribPlain;\n }\n //\n // The order of the members in this table needs to correspond to the state\n // numbers given to the states that correspond to the methods being recorded\n // here.\n //\n this.stateTable = [\n /* eslint-disable @typescript-eslint/unbound-method */\n this.sBegin,\n this.sBeginWhitespace,\n this.sDoctype,\n this.sDoctypeQuote,\n this.sDTD,\n this.sDTDQuoted,\n this.sDTDOpenWaka,\n this.sDTDOpenWakaBang,\n this.sDTDComment,\n this.sDTDCommentEnding,\n this.sDTDCommentEnded,\n this.sDTDPI,\n this.sDTDPIEnding,\n this.sText,\n this.sEntity,\n this.sOpenWaka,\n this.sOpenWakaBang,\n this.sComment,\n this.sCommentEnding,\n this.sCommentEnded,\n this.sCData,\n this.sCDataEnding,\n this.sCDataEnding2,\n this.sPIFirstChar,\n this.sPIRest,\n this.sPIBody,\n this.sPIEnding,\n this.sXMLDeclNameStart,\n this.sXMLDeclName,\n this.sXMLDeclEq,\n this.sXMLDeclValueStart,\n this.sXMLDeclValue,\n this.sXMLDeclSeparator,\n this.sXMLDeclEnding,\n this.sOpenTag,\n this.sOpenTagSlash,\n this.sAttrib,\n this.sAttribName,\n this.sAttribNameSawWhite,\n this.sAttribValue,\n this.sAttribValueQuoted,\n this.sAttribValueClosed,\n this.sAttribValueUnquoted,\n this.sCloseTag,\n this.sCloseTagSawWhite,\n /* eslint-enable @typescript-eslint/unbound-method */\n ];\n this._init();\n }\n _init() {\n var _a;\n this.openWakaBang = \"\";\n this.text = \"\";\n this.name = \"\";\n this.piTarget = \"\";\n this.entity = \"\";\n this.q = null;\n this.tags = [];\n this.tag = null;\n this.topNS = null;\n this.chunk = \"\";\n this.chunkPosition = 0;\n this.i = 0;\n this.prevI = 0;\n this.carriedFromPrevious = undefined;\n this.forbiddenState = FORBIDDEN_START;\n this.attribList = [];\n // The logic is organized so as to minimize the need to check\n // this.opt.fragment while parsing.\n const { fragmentOpt } = this;\n this.state = fragmentOpt ? S_TEXT : S_BEGIN;\n // We want these to be all true if we are dealing with a fragment.\n this.reportedTextBeforeRoot = this.reportedTextAfterRoot = this.closedRoot =\n this.sawRoot = fragmentOpt;\n // An XML declaration is intially possible only when parsing whole\n // documents.\n this.xmlDeclPossible = !fragmentOpt;\n this.xmlDeclExpects = [\"version\"];\n this.entityReturnState = undefined;\n let { defaultXMLVersion } = this.opt;\n if (defaultXMLVersion === undefined) {\n if (this.opt.forceXMLVersion === true) {\n throw new Error(\"forceXMLVersion set but defaultXMLVersion is not set\");\n }\n defaultXMLVersion = \"1.0\";\n }\n this.setXMLVersion(defaultXMLVersion);\n this.positionAtNewLine = 0;\n this.doctype = false;\n this._closed = false;\n this.xmlDecl = {\n version: undefined,\n encoding: undefined,\n standalone: undefined,\n };\n this.line = 1;\n this.column = 0;\n this.ENTITIES = Object.create(XML_ENTITIES);\n (_a = this.readyHandler) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n /**\n * The stream position the parser is currently looking at. This field is\n * zero-based.\n *\n * This field is not based on counting Unicode characters but is to be\n * interpreted as a plain index into a JavaScript string.\n */\n get position() {\n return this.chunkPosition + this.i;\n }\n /**\n * The column number of the next character to be read by the parser. *\n * This field is zero-based. (The first column in a line is 0.)\n *\n * This field reports the index at which the next character would be in the\n * line if the line were represented as a JavaScript string. Note that this\n * *can* be different to a count based on the number of *Unicode characters*\n * due to how JavaScript handles astral plane characters.\n *\n * See [[column]] for a number that corresponds to a count of Unicode\n * characters.\n */\n get columnIndex() {\n return this.position - this.positionAtNewLine;\n }\n /**\n * Set an event listener on an event. The parser supports one handler per\n * event type. If you try to set an event handler over an existing handler,\n * the old handler is silently overwritten.\n *\n * @param name The event to listen to.\n *\n * @param handler The handler to set.\n */\n on(name, handler) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n this[EVENT_NAME_TO_HANDLER_NAME[name]] = handler;\n }\n /**\n * Unset an event handler.\n *\n * @parma name The event to stop listening to.\n */\n off(name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n this[EVENT_NAME_TO_HANDLER_NAME[name]] = undefined;\n }\n /**\n * Make an error object. The error object will have a message that contains\n * the ``fileName`` option passed at the creation of the parser. If position\n * tracking was turned on, it will also have line and column number\n * information.\n *\n * @param message The message describing the error to report.\n *\n * @returns An error object with a properly formatted message.\n */\n makeError(message) {\n var _a;\n let msg = (_a = this.fileName) !== null && _a !== void 0 ? _a : \"\";\n if (this.trackPosition) {\n if (msg.length > 0) {\n msg += \":\";\n }\n msg += `${this.line}:${this.column}`;\n }\n if (msg.length > 0) {\n msg += \": \";\n }\n return new Error(msg + message);\n }\n /**\n * Report a parsing error. This method is made public so that client code may\n * check for issues that are outside the scope of this project and can report\n * errors.\n *\n * @param message The error to report.\n *\n * @returns this\n */\n fail(message) {\n const err = this.makeError(message);\n const handler = this.errorHandler;\n if (handler === undefined) {\n throw err;\n }\n else {\n handler(err);\n }\n return this;\n }\n /**\n * Write a XML data to the parser.\n *\n * @param chunk The XML data to write.\n *\n * @returns this\n */\n // We do need object for the type here. Yes, it often causes problems\n // but not in this case.\n write(chunk) {\n if (this.closed) {\n return this.fail(\"cannot write after close; assign an onready handler.\");\n }\n let end = false;\n if (chunk === null) {\n // We cannot return immediately because carriedFromPrevious may need\n // processing.\n end = true;\n chunk = \"\";\n }\n else if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n // We checked if performing a pre-decomposition of the string into an array\n // of single complete characters (``Array.from(chunk)``) would be faster\n // than the current repeated calls to ``charCodeAt``. As of August 2018, it\n // isn't. (There may be Node-specific code that would perform faster than\n // ``Array.from`` but don't want to be dependent on Node.)\n if (this.carriedFromPrevious !== undefined) {\n // The previous chunk had char we must carry over.\n chunk = `${this.carriedFromPrevious}${chunk}`;\n this.carriedFromPrevious = undefined;\n }\n let limit = chunk.length;\n const lastCode = chunk.charCodeAt(limit - 1);\n if (!end &&\n // A trailing CR or surrogate must be carried over to the next\n // chunk.\n (lastCode === CR || (lastCode >= 0xD800 && lastCode <= 0xDBFF))) {\n // The chunk ends with a character that must be carried over. We cannot\n // know how to handle it until we get the next chunk or the end of the\n // stream. So save it for later.\n this.carriedFromPrevious = chunk[limit - 1];\n limit--;\n chunk = chunk.slice(0, limit);\n }\n const { stateTable } = this;\n this.chunk = chunk;\n this.i = 0;\n while (this.i < limit) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument\n stateTable[this.state].call(this);\n }\n this.chunkPosition += limit;\n return end ? this.end() : this;\n }\n /**\n * Close the current stream. Perform final well-formedness checks and reset\n * the parser tstate.\n *\n * @returns this\n */\n close() {\n return this.write(null);\n }\n /**\n * Get a single code point out of the current chunk. This updates the current\n * position if we do position tracking.\n *\n * This is the algorithm to use for XML 1.0.\n *\n * @returns The character read.\n */\n getCode10() {\n const { chunk, i } = this;\n this.prevI = i;\n // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n // read this.i again, which is a bit faster.\n this.i = i + 1;\n if (i >= chunk.length) {\n return EOC;\n }\n // Using charCodeAt and handling the surrogates ourselves is faster\n // than using codePointAt.\n const code = chunk.charCodeAt(i);\n this.column++;\n if (code < 0xD800) {\n if (code >= SPACE || code === TAB) {\n return code;\n }\n switch (code) {\n case NL:\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL;\n case CR:\n // We may get NaN if we read past the end of the chunk, which is fine.\n if (chunk.charCodeAt(i + 1) === NL) {\n // A \\r\\n sequence is converted to \\n so we have to skip over the\n // next character. We already know it has a size of 1 so ++ is fine\n // here.\n this.i = i + 2;\n }\n // Otherwise, a \\r is just converted to \\n, so we don't have to skip\n // ahead.\n // In either case, \\r becomes \\n.\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL_LIKE;\n default:\n // If we get here, then code < SPACE and it is not NL CR or TAB.\n this.fail(\"disallowed character.\");\n return code;\n }\n }\n if (code > 0xDBFF) {\n // This is a specialized version of isChar10 that takes into account\n // that in this context code > 0xDBFF and code <= 0xFFFF. So it does not\n // test cases that don't need testing.\n if (!(code >= 0xE000 && code <= 0xFFFD)) {\n this.fail(\"disallowed character.\");\n }\n return code;\n }\n const final = 0x10000 + ((code - 0xD800) * 0x400) +\n (chunk.charCodeAt(i + 1) - 0xDC00);\n this.i = i + 2;\n // This is a specialized version of isChar10 that takes into account that in\n // this context necessarily final >= 0x10000.\n if (final > 0x10FFFF) {\n this.fail(\"disallowed character.\");\n }\n return final;\n }\n /**\n * Get a single code point out of the current chunk. This updates the current\n * position if we do position tracking.\n *\n * This is the algorithm to use for XML 1.1.\n *\n * @returns {number} The character read.\n */\n getCode11() {\n const { chunk, i } = this;\n this.prevI = i;\n // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n // read this.i again, which is a bit faster.\n this.i = i + 1;\n if (i >= chunk.length) {\n return EOC;\n }\n // Using charCodeAt and handling the surrogates ourselves is faster\n // than using codePointAt.\n const code = chunk.charCodeAt(i);\n this.column++;\n if (code < 0xD800) {\n if ((code > 0x1F && code < 0x7F) || (code > 0x9F && code !== LS) ||\n code === TAB) {\n return code;\n }\n switch (code) {\n case NL: // 0xA\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL;\n case CR: { // 0xD\n // We may get NaN if we read past the end of the chunk, which is\n // fine.\n const next = chunk.charCodeAt(i + 1);\n if (next === NL || next === NEL) {\n // A CR NL or CR NEL sequence is converted to NL so we have to skip\n // over the next character. We already know it has a size of 1.\n this.i = i + 2;\n }\n // Otherwise, a CR is just converted to NL, no skip.\n }\n /* yes, fall through */\n case NEL: // 0x85\n case LS: // Ox2028\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL_LIKE;\n default:\n this.fail(\"disallowed character.\");\n return code;\n }\n }\n if (code > 0xDBFF) {\n // This is a specialized version of isCharAndNotRestricted that takes into\n // account that in this context code > 0xDBFF and code <= 0xFFFF. So it\n // does not test cases that don't need testing.\n if (!(code >= 0xE000 && code <= 0xFFFD)) {\n this.fail(\"disallowed character.\");\n }\n return code;\n }\n const final = 0x10000 + ((code - 0xD800) * 0x400) +\n (chunk.charCodeAt(i + 1) - 0xDC00);\n this.i = i + 2;\n // This is a specialized version of isCharAndNotRestricted that takes into\n // account that in this context necessarily final >= 0x10000.\n if (final > 0x10FFFF) {\n this.fail(\"disallowed character.\");\n }\n return final;\n }\n /**\n * Like ``getCode`` but with the return value normalized so that ``NL`` is\n * returned for ``NL_LIKE``.\n */\n getCodeNorm() {\n const c = this.getCode();\n return c === NL_LIKE ? NL : c;\n }\n unget() {\n this.i = this.prevI;\n this.column--;\n }\n /**\n * Capture characters into a buffer until encountering one of a set of\n * characters.\n *\n * @param chars An array of codepoints. Encountering a character in the array\n * ends the capture. (``chars`` may safely contain ``NL``.)\n *\n * @return The character code that made the capture end, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n captureTo(chars) {\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCode();\n const isNLLike = c === NL_LIKE;\n const final = isNLLike ? NL : c;\n if (final === EOC || chars.includes(final)) {\n this.text += chunk.slice(start, this.prevI);\n return final;\n }\n if (isNLLike) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n }\n }\n }\n /**\n * Capture characters into a buffer until encountering a character.\n *\n * @param char The codepoint that ends the capture. **NOTE ``char`` MAY NOT\n * CONTAIN ``NL``.** Passing ``NL`` will result in buggy behavior.\n *\n * @return ``true`` if we ran into the character. Otherwise, we ran into the\n * end of the current chunk.\n */\n captureToChar(char) {\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let c = this.getCode();\n switch (c) {\n case NL_LIKE:\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n c = NL;\n break;\n case EOC:\n this.text += chunk.slice(start);\n return false;\n default:\n }\n if (c === char) {\n this.text += chunk.slice(start, this.prevI);\n return true;\n }\n }\n }\n /**\n * Capture characters that satisfy ``isNameChar`` into the ``name`` field of\n * this parser.\n *\n * @return The character code that made the test fail, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n captureNameChars() {\n const { chunk, i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCode();\n if (c === EOC) {\n this.name += chunk.slice(start);\n return EOC;\n }\n // NL is not a name char so we don't have to test specifically for it.\n if (!isNameChar(c)) {\n this.name += chunk.slice(start, this.prevI);\n return c === NL_LIKE ? NL : c;\n }\n }\n }\n /**\n * Skip white spaces.\n *\n * @return The character that ended the skip, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n skipSpaces() {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCodeNorm();\n if (c === EOC || !isS(c)) {\n return c;\n }\n }\n }\n setXMLVersion(version) {\n this.currentXMLVersion = version;\n /* eslint-disable @typescript-eslint/unbound-method */\n if (version === \"1.0\") {\n this.isChar = isChar10;\n this.getCode = this.getCode10;\n }\n else {\n this.isChar = isChar11;\n this.getCode = this.getCode11;\n }\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n // STATE ENGINE METHODS\n // This needs to be a state separate from S_BEGIN_WHITESPACE because we want\n // to be sure never to come back to this state later.\n sBegin() {\n // We are essentially peeking at the first character of the chunk. Since\n // S_BEGIN can be in effect only when we start working on the first chunk,\n // the index at which we must look is necessarily 0. Note also that the\n // following test does not depend on decoding surrogates.\n // If the initial character is 0xFEFF, ignore it.\n if (this.chunk.charCodeAt(0) === 0xFEFF) {\n this.i++;\n this.column++;\n }\n this.state = S_BEGIN_WHITESPACE;\n }\n sBeginWhitespace() {\n // We need to know whether we've encountered spaces or not because as soon\n // as we run into a space, an XML declaration is no longer possible. Rather\n // than slow down skipSpaces even in places where we don't care whether it\n // skipped anything or not, we check whether prevI is equal to the value of\n // i from before we skip spaces.\n const iBefore = this.i;\n const c = this.skipSpaces();\n if (this.prevI !== iBefore) {\n this.xmlDeclPossible = false;\n }\n switch (c) {\n case LESS:\n this.state = S_OPEN_WAKA;\n // We could naively call closeText but in this state, it is not normal\n // to have text be filled with any data.\n if (this.text.length !== 0) {\n throw new Error(\"no-empty text at start\");\n }\n break;\n case EOC:\n break;\n default:\n this.unget();\n this.state = S_TEXT;\n this.xmlDeclPossible = false;\n }\n }\n sDoctype() {\n var _a;\n const c = this.captureTo(DOCTYPE_TERMINATOR);\n switch (c) {\n case GREATER: {\n (_a = this.doctypeHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n this.state = S_TEXT;\n this.doctype = true; // just remember that we saw it.\n break;\n }\n case EOC:\n break;\n default:\n this.text += String.fromCodePoint(c);\n if (c === OPEN_BRACKET) {\n this.state = S_DTD;\n }\n else if (isQuote(c)) {\n this.state = S_DOCTYPE_QUOTE;\n this.q = c;\n }\n }\n }\n sDoctypeQuote() {\n const q = this.q;\n if (this.captureToChar(q)) {\n this.text += String.fromCodePoint(q);\n this.q = null;\n this.state = S_DOCTYPE;\n }\n }\n sDTD() {\n const c = this.captureTo(DTD_TERMINATOR);\n if (c === EOC) {\n return;\n }\n this.text += String.fromCodePoint(c);\n if (c === CLOSE_BRACKET) {\n this.state = S_DOCTYPE;\n }\n else if (c === LESS) {\n this.state = S_DTD_OPEN_WAKA;\n }\n else if (isQuote(c)) {\n this.state = S_DTD_QUOTED;\n this.q = c;\n }\n }\n sDTDQuoted() {\n const q = this.q;\n if (this.captureToChar(q)) {\n this.text += String.fromCodePoint(q);\n this.state = S_DTD;\n this.q = null;\n }\n }\n sDTDOpenWaka() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n switch (c) {\n case BANG:\n this.state = S_DTD_OPEN_WAKA_BANG;\n this.openWakaBang = \"\";\n break;\n case QUESTION:\n this.state = S_DTD_PI;\n break;\n default:\n this.state = S_DTD;\n }\n }\n sDTDOpenWakaBang() {\n const char = String.fromCodePoint(this.getCodeNorm());\n const owb = this.openWakaBang += char;\n this.text += char;\n if (owb !== \"-\") {\n this.state = owb === \"--\" ? S_DTD_COMMENT : S_DTD;\n this.openWakaBang = \"\";\n }\n }\n sDTDComment() {\n if (this.captureToChar(MINUS)) {\n this.text += \"-\";\n this.state = S_DTD_COMMENT_ENDING;\n }\n }\n sDTDCommentEnding() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n this.state = c === MINUS ? S_DTD_COMMENT_ENDED : S_DTD_COMMENT;\n }\n sDTDCommentEnded() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n if (c === GREATER) {\n this.state = S_DTD;\n }\n else {\n this.fail(\"malformed comment.\");\n // will be recorded as\n // a comment of \" blah -- bloo \"\n this.state = S_DTD_COMMENT;\n }\n }\n sDTDPI() {\n if (this.captureToChar(QUESTION)) {\n this.text += \"?\";\n this.state = S_DTD_PI_ENDING;\n }\n }\n sDTDPIEnding() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n if (c === GREATER) {\n this.state = S_DTD;\n }\n }\n sText() {\n //\n // We did try a version of saxes where the S_TEXT state was split in two\n // states: one for text inside the root element, and one for text\n // outside. This was avoiding having to test this.tags.length to decide\n // what implementation to actually use.\n //\n // Peformance testing on gigabyte-size files did not show any advantage to\n // using the two states solution instead of the current one. Conversely, it\n // made the code a bit more complicated elsewhere. For instance, a comment\n // can appear before the root element so when a comment ended it was\n // necessary to determine whether to return to the S_TEXT state or to the\n // new text-outside-root state.\n //\n if (this.tags.length !== 0) {\n this.handleTextInRoot();\n }\n else {\n this.handleTextOutsideRoot();\n }\n }\n sEntity() {\n // This is essentially a specialized version of captureToChar(SEMICOLON...)\n let { i: start } = this;\n const { chunk } = this;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n loop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case NL_LIKE:\n this.entity += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n break;\n case SEMICOLON: {\n const { entityReturnState } = this;\n const entity = this.entity + chunk.slice(start, this.prevI);\n this.state = entityReturnState;\n let parsed;\n if (entity === \"\") {\n this.fail(\"empty entity name.\");\n parsed = \"&;\";\n }\n else {\n parsed = this.parseEntity(entity);\n this.entity = \"\";\n }\n if (entityReturnState !== S_TEXT || this.textHandler !== undefined) {\n this.text += parsed;\n }\n // eslint-disable-next-line no-labels\n break loop;\n }\n case EOC:\n this.entity += chunk.slice(start);\n // eslint-disable-next-line no-labels\n break loop;\n default:\n }\n }\n }\n sOpenWaka() {\n // Reminder: a state handler is called with at least one character\n // available in the current chunk. So the first call to get code inside of\n // a state handler cannot return ``EOC``. That's why we don't test\n // for it.\n const c = this.getCode();\n // either a /, ?, !, or text is coming next.\n if (isNameStartChar(c)) {\n this.state = S_OPEN_TAG;\n this.unget();\n this.xmlDeclPossible = false;\n }\n else {\n switch (c) {\n case FORWARD_SLASH:\n this.state = S_CLOSE_TAG;\n this.xmlDeclPossible = false;\n break;\n case BANG:\n this.state = S_OPEN_WAKA_BANG;\n this.openWakaBang = \"\";\n this.xmlDeclPossible = false;\n break;\n case QUESTION:\n this.state = S_PI_FIRST_CHAR;\n break;\n default:\n this.fail(\"disallowed character in tag name\");\n this.state = S_TEXT;\n this.xmlDeclPossible = false;\n }\n }\n }\n sOpenWakaBang() {\n this.openWakaBang += String.fromCodePoint(this.getCodeNorm());\n switch (this.openWakaBang) {\n case \"[CDATA[\":\n if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextBeforeRoot = true;\n }\n if (this.closedRoot && !this.reportedTextAfterRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextAfterRoot = true;\n }\n this.state = S_CDATA;\n this.openWakaBang = \"\";\n break;\n case \"--\":\n this.state = S_COMMENT;\n this.openWakaBang = \"\";\n break;\n case \"DOCTYPE\":\n this.state = S_DOCTYPE;\n if (this.doctype || this.sawRoot) {\n this.fail(\"inappropriately located doctype declaration.\");\n }\n this.openWakaBang = \"\";\n break;\n default:\n // 7 happens to be the maximum length of the string that can possibly\n // match one of the cases above.\n if (this.openWakaBang.length >= 7) {\n this.fail(\"incorrect syntax.\");\n }\n }\n }\n sComment() {\n if (this.captureToChar(MINUS)) {\n this.state = S_COMMENT_ENDING;\n }\n }\n sCommentEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === MINUS) {\n this.state = S_COMMENT_ENDED;\n (_a = this.commentHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n }\n else {\n this.text += `-${String.fromCodePoint(c)}`;\n this.state = S_COMMENT;\n }\n }\n sCommentEnded() {\n const c = this.getCodeNorm();\n if (c !== GREATER) {\n this.fail(\"malformed comment.\");\n // will be recorded as\n // a comment of \" blah -- bloo \"\n this.text += `--${String.fromCodePoint(c)}`;\n this.state = S_COMMENT;\n }\n else {\n this.state = S_TEXT;\n }\n }\n sCData() {\n if (this.captureToChar(CLOSE_BRACKET)) {\n this.state = S_CDATA_ENDING;\n }\n }\n sCDataEnding() {\n const c = this.getCodeNorm();\n if (c === CLOSE_BRACKET) {\n this.state = S_CDATA_ENDING_2;\n }\n else {\n this.text += `]${String.fromCodePoint(c)}`;\n this.state = S_CDATA;\n }\n }\n sCDataEnding2() {\n var _a;\n const c = this.getCodeNorm();\n switch (c) {\n case GREATER: {\n (_a = this.cdataHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n this.state = S_TEXT;\n break;\n }\n case CLOSE_BRACKET:\n this.text += \"]\";\n break;\n default:\n this.text += `]]${String.fromCodePoint(c)}`;\n this.state = S_CDATA;\n }\n }\n // We need this separate state to check the first character fo the pi target\n // with this.nameStartCheck which allows less characters than this.nameCheck.\n sPIFirstChar() {\n const c = this.getCodeNorm();\n // This is first because in the case where the file is well-formed this is\n // the branch taken. We optimize for well-formedness.\n if (this.nameStartCheck(c)) {\n this.piTarget += String.fromCodePoint(c);\n this.state = S_PI_REST;\n }\n else if (c === QUESTION || isS(c)) {\n this.fail(\"processing instruction without a target.\");\n this.state = c === QUESTION ? S_PI_ENDING : S_PI_BODY;\n }\n else {\n this.fail(\"disallowed character in processing instruction name.\");\n this.piTarget += String.fromCodePoint(c);\n this.state = S_PI_REST;\n }\n }\n sPIRest() {\n // Capture characters into a piTarget while ``this.nameCheck`` run on the\n // character read returns true.\n const { chunk, i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCodeNorm();\n if (c === EOC) {\n this.piTarget += chunk.slice(start);\n return;\n }\n // NL cannot satisfy this.nameCheck so we don't have to test specifically\n // for it.\n if (!this.nameCheck(c)) {\n this.piTarget += chunk.slice(start, this.prevI);\n const isQuestion = c === QUESTION;\n if (isQuestion || isS(c)) {\n if (this.piTarget === \"xml\") {\n if (!this.xmlDeclPossible) {\n this.fail(\"an XML declaration must be at the start of the document.\");\n }\n this.state = isQuestion ? S_XML_DECL_ENDING : S_XML_DECL_NAME_START;\n }\n else {\n this.state = isQuestion ? S_PI_ENDING : S_PI_BODY;\n }\n }\n else {\n this.fail(\"disallowed character in processing instruction name.\");\n this.piTarget += String.fromCodePoint(c);\n }\n break;\n }\n }\n }\n sPIBody() {\n if (this.text.length === 0) {\n const c = this.getCodeNorm();\n if (c === QUESTION) {\n this.state = S_PI_ENDING;\n }\n else if (!isS(c)) {\n this.text = String.fromCodePoint(c);\n }\n }\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n else if (this.captureToChar(QUESTION)) {\n this.state = S_PI_ENDING;\n }\n }\n sPIEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === GREATER) {\n const { piTarget } = this;\n if (piTarget.toLowerCase() === \"xml\") {\n this.fail(\"the XML declaration must appear at the start of the document.\");\n }\n (_a = this.piHandler) === null || _a === void 0 ? void 0 : _a.call(this, {\n target: piTarget,\n body: this.text,\n });\n this.piTarget = this.text = \"\";\n this.state = S_TEXT;\n }\n else if (c === QUESTION) {\n // We ran into ?? as part of a processing instruction. We initially took\n // the first ? as a sign that the PI was ending, but it is not. So we have\n // to add it to the body but we take the new ? as a sign that the PI is\n // ending.\n this.text += \"?\";\n }\n else {\n this.text += `?${String.fromCodePoint(c)}`;\n this.state = S_PI_BODY;\n }\n this.xmlDeclPossible = false;\n }\n sXMLDeclNameStart() {\n const c = this.skipSpaces();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n // It is valid to go to S_XML_DECL_ENDING from this state.\n this.state = S_XML_DECL_ENDING;\n return;\n }\n if (c !== EOC) {\n this.state = S_XML_DECL_NAME;\n this.name = String.fromCodePoint(c);\n }\n }\n sXMLDeclName() {\n const c = this.captureTo(XML_DECL_NAME_TERMINATOR);\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.name += this.text;\n this.text = \"\";\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (!(isS(c) || c === EQUAL)) {\n return;\n }\n this.name += this.text;\n this.text = \"\";\n if (!this.xmlDeclExpects.includes(this.name)) {\n switch (this.name.length) {\n case 0:\n this.fail(\"did not expect any more name/value pairs.\");\n break;\n case 1:\n this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);\n break;\n default:\n this.fail(`expected one of ${this.xmlDeclExpects.join(\", \")}`);\n }\n }\n this.state = c === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;\n }\n sXMLDeclEq() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (isS(c)) {\n return;\n }\n if (c !== EQUAL) {\n this.fail(\"value required.\");\n }\n this.state = S_XML_DECL_VALUE_START;\n }\n sXMLDeclValueStart() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (isS(c)) {\n return;\n }\n if (!isQuote(c)) {\n this.fail(\"value must be quoted.\");\n this.q = SPACE;\n }\n else {\n this.q = c;\n }\n this.state = S_XML_DECL_VALUE;\n }\n sXMLDeclValue() {\n const c = this.captureTo([this.q, QUESTION]);\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.text = \"\";\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (c === EOC) {\n return;\n }\n const value = this.text;\n this.text = \"\";\n switch (this.name) {\n case \"version\": {\n this.xmlDeclExpects = [\"encoding\", \"standalone\"];\n const version = value;\n this.xmlDecl.version = version;\n // This is the test specified by XML 1.0 but it is fine for XML 1.1.\n if (!/^1\\.[0-9]+$/.test(version)) {\n this.fail(\"version number must match /^1\\\\.[0-9]+$/.\");\n }\n // When forceXMLVersion is set, the XML declaration is ignored.\n else if (!this.opt.forceXMLVersion) {\n this.setXMLVersion(version);\n }\n break;\n }\n case \"encoding\":\n if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(value)) {\n this.fail(\"encoding value must match \\\n/^[A-Za-z0-9][A-Za-z0-9._-]*$/.\");\n }\n this.xmlDeclExpects = [\"standalone\"];\n this.xmlDecl.encoding = value;\n break;\n case \"standalone\":\n if (value !== \"yes\" && value !== \"no\") {\n this.fail(\"standalone value must match \\\"yes\\\" or \\\"no\\\".\");\n }\n this.xmlDeclExpects = [];\n this.xmlDecl.standalone = value;\n break;\n default:\n // We don't need to raise an error here since we've already raised one\n // when checking what name was expected.\n }\n this.name = \"\";\n this.state = S_XML_DECL_SEPARATOR;\n }\n sXMLDeclSeparator() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n // It is valid to go to S_XML_DECL_ENDING from this state.\n this.state = S_XML_DECL_ENDING;\n return;\n }\n if (!isS(c)) {\n this.fail(\"whitespace required.\");\n this.unget();\n }\n this.state = S_XML_DECL_NAME_START;\n }\n sXMLDeclEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === GREATER) {\n if (this.piTarget !== \"xml\") {\n this.fail(\"processing instructions are not allowed before root.\");\n }\n else if (this.name !== \"version\" &&\n this.xmlDeclExpects.includes(\"version\")) {\n this.fail(\"XML declaration must contain a version.\");\n }\n (_a = this.xmldeclHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.xmlDecl);\n this.name = \"\";\n this.piTarget = this.text = \"\";\n this.state = S_TEXT;\n }\n else {\n // We got here because the previous character was a ?, but the question\n // mark character is not valid inside any of the XML declaration\n // name/value pairs.\n this.fail(\"The character ? is disallowed anywhere in XML declarations.\");\n }\n this.xmlDeclPossible = false;\n }\n sOpenTag() {\n var _a;\n const c = this.captureNameChars();\n if (c === EOC) {\n return;\n }\n const tag = this.tag = {\n name: this.name,\n attributes: Object.create(null),\n };\n this.name = \"\";\n if (this.xmlnsOpt) {\n this.topNS = tag.ns = Object.create(null);\n }\n (_a = this.openTagStartHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n this.sawRoot = true;\n if (!this.fragmentOpt && this.closedRoot) {\n this.fail(\"documents may contain only one root.\");\n }\n switch (c) {\n case GREATER:\n this.openTag();\n break;\n case FORWARD_SLASH:\n this.state = S_OPEN_TAG_SLASH;\n break;\n default:\n if (!isS(c)) {\n this.fail(\"disallowed character in tag name.\");\n }\n this.state = S_ATTRIB;\n }\n }\n sOpenTagSlash() {\n if (this.getCode() === GREATER) {\n this.openSelfClosingTag();\n }\n else {\n this.fail(\"forward-slash in opening tag not followed by >.\");\n this.state = S_ATTRIB;\n }\n }\n sAttrib() {\n const c = this.skipSpaces();\n if (c === EOC) {\n return;\n }\n if (isNameStartChar(c)) {\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else if (c === GREATER) {\n this.openTag();\n }\n else if (c === FORWARD_SLASH) {\n this.state = S_OPEN_TAG_SLASH;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribName() {\n const c = this.captureNameChars();\n if (c === EQUAL) {\n this.state = S_ATTRIB_VALUE;\n }\n else if (isS(c)) {\n this.state = S_ATTRIB_NAME_SAW_WHITE;\n }\n else if (c === GREATER) {\n this.fail(\"attribute without value.\");\n this.pushAttrib(this.name, this.name);\n this.name = this.text = \"\";\n this.openTag();\n }\n else if (c !== EOC) {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribNameSawWhite() {\n const c = this.skipSpaces();\n switch (c) {\n case EOC:\n return;\n case EQUAL:\n this.state = S_ATTRIB_VALUE;\n break;\n default:\n this.fail(\"attribute without value.\");\n // Should we do this???\n // this.tag.attributes[this.name] = \"\";\n this.text = \"\";\n this.name = \"\";\n if (c === GREATER) {\n this.openTag();\n }\n else if (isNameStartChar(c)) {\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n this.state = S_ATTRIB;\n }\n }\n }\n sAttribValue() {\n const c = this.getCodeNorm();\n if (isQuote(c)) {\n this.q = c;\n this.state = S_ATTRIB_VALUE_QUOTED;\n }\n else if (!isS(c)) {\n this.fail(\"unquoted attribute value.\");\n this.state = S_ATTRIB_VALUE_UNQUOTED;\n this.unget();\n }\n }\n sAttribValueQuoted() {\n // We deliberately do not use captureTo here. The specialized code we use\n // here is faster than using captureTo.\n const { q, chunk } = this;\n let { i: start } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case q:\n this.pushAttrib(this.name, this.text + chunk.slice(start, this.prevI));\n this.name = this.text = \"\";\n this.q = null;\n this.state = S_ATTRIB_VALUE_CLOSED;\n return;\n case AMP:\n this.text += chunk.slice(start, this.prevI);\n this.state = S_ENTITY;\n this.entityReturnState = S_ATTRIB_VALUE_QUOTED;\n return;\n case NL:\n case NL_LIKE:\n case TAB:\n this.text += `${chunk.slice(start, this.prevI)} `;\n start = this.i;\n break;\n case LESS:\n this.text += chunk.slice(start, this.prevI);\n this.fail(\"disallowed character.\");\n return;\n case EOC:\n this.text += chunk.slice(start);\n return;\n default:\n }\n }\n }\n sAttribValueClosed() {\n const c = this.getCodeNorm();\n if (isS(c)) {\n this.state = S_ATTRIB;\n }\n else if (c === GREATER) {\n this.openTag();\n }\n else if (c === FORWARD_SLASH) {\n this.state = S_OPEN_TAG_SLASH;\n }\n else if (isNameStartChar(c)) {\n this.fail(\"no whitespace between attributes.\");\n this.unget();\n this.state = S_ATTRIB_NAME;\n }\n else {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribValueUnquoted() {\n // We don't do anything regarding EOL or space handling for unquoted\n // attributes. We already have failed by the time we get here, and the\n // contract that saxes upholds states that upon failure, it is not safe to\n // rely on the data passed to event handlers (other than\n // ``onerror``). Passing \"bad\" data is not a problem.\n const c = this.captureTo(ATTRIB_VALUE_UNQUOTED_TERMINATOR);\n switch (c) {\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_ATTRIB_VALUE_UNQUOTED;\n break;\n case LESS:\n this.fail(\"disallowed character.\");\n break;\n case EOC:\n break;\n default:\n if (this.text.includes(\"]]>\")) {\n this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n }\n this.pushAttrib(this.name, this.text);\n this.name = this.text = \"\";\n if (c === GREATER) {\n this.openTag();\n }\n else {\n this.state = S_ATTRIB;\n }\n }\n }\n sCloseTag() {\n const c = this.captureNameChars();\n if (c === GREATER) {\n this.closeTag();\n }\n else if (isS(c)) {\n this.state = S_CLOSE_TAG_SAW_WHITE;\n }\n else if (c !== EOC) {\n this.fail(\"disallowed character in closing tag.\");\n }\n }\n sCloseTagSawWhite() {\n switch (this.skipSpaces()) {\n case GREATER:\n this.closeTag();\n break;\n case EOC:\n break;\n default:\n this.fail(\"disallowed character in closing tag.\");\n }\n }\n // END OF STATE ENGINE METHODS\n handleTextInRoot() {\n // This is essentially a specialized version of captureTo which is optimized\n // for performing the ]]> check. A previous version of this code, checked\n // ``this.text`` for the presence of ]]>. It simplified the code but was\n // very costly when character data contained a lot of entities to be parsed.\n //\n // Since we are using a specialized loop, we also keep track of the presence\n // of ]]> in text data. The sequence ]]> is forbidden to appear as-is.\n //\n let { i: start, forbiddenState } = this;\n const { chunk, textHandler: handler } = this;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n scanLoop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case LESS: {\n this.state = S_OPEN_WAKA;\n if (handler !== undefined) {\n const { text } = this;\n const slice = chunk.slice(start, this.prevI);\n if (text.length !== 0) {\n handler(text + slice);\n this.text = \"\";\n }\n else if (slice.length !== 0) {\n handler(slice);\n }\n }\n forbiddenState = FORBIDDEN_START;\n // eslint-disable-next-line no-labels\n break scanLoop;\n }\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_TEXT;\n if (handler !== undefined) {\n this.text += chunk.slice(start, this.prevI);\n }\n forbiddenState = FORBIDDEN_START;\n // eslint-disable-next-line no-labels\n break scanLoop;\n case CLOSE_BRACKET:\n switch (forbiddenState) {\n case FORBIDDEN_START:\n forbiddenState = FORBIDDEN_BRACKET;\n break;\n case FORBIDDEN_BRACKET:\n forbiddenState = FORBIDDEN_BRACKET_BRACKET;\n break;\n case FORBIDDEN_BRACKET_BRACKET:\n break;\n default:\n throw new Error(\"impossible state\");\n }\n break;\n case GREATER:\n if (forbiddenState === FORBIDDEN_BRACKET_BRACKET) {\n this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n }\n forbiddenState = FORBIDDEN_START;\n break;\n case NL_LIKE:\n if (handler !== undefined) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n }\n start = this.i;\n forbiddenState = FORBIDDEN_START;\n break;\n case EOC:\n if (handler !== undefined) {\n this.text += chunk.slice(start);\n }\n // eslint-disable-next-line no-labels\n break scanLoop;\n default:\n forbiddenState = FORBIDDEN_START;\n }\n }\n this.forbiddenState = forbiddenState;\n }\n handleTextOutsideRoot() {\n // This is essentially a specialized version of captureTo which is optimized\n // for a specialized task. We keep track of the presence of non-space\n // characters in the text since these are errors when appearing outside the\n // document root element.\n let { i: start } = this;\n const { chunk, textHandler: handler } = this;\n let nonSpace = false;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n outRootLoop: \n // eslint-disable-next-line no-constant-condition\n while (true) {\n const code = this.getCode();\n switch (code) {\n case LESS: {\n this.state = S_OPEN_WAKA;\n if (handler !== undefined) {\n const { text } = this;\n const slice = chunk.slice(start, this.prevI);\n if (text.length !== 0) {\n handler(text + slice);\n this.text = \"\";\n }\n else if (slice.length !== 0) {\n handler(slice);\n }\n }\n // eslint-disable-next-line no-labels\n break outRootLoop;\n }\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_TEXT;\n if (handler !== undefined) {\n this.text += chunk.slice(start, this.prevI);\n }\n nonSpace = true;\n // eslint-disable-next-line no-labels\n break outRootLoop;\n case NL_LIKE:\n if (handler !== undefined) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n }\n start = this.i;\n break;\n case EOC:\n if (handler !== undefined) {\n this.text += chunk.slice(start);\n }\n // eslint-disable-next-line no-labels\n break outRootLoop;\n default:\n if (!isS(code)) {\n nonSpace = true;\n }\n }\n }\n if (!nonSpace) {\n return;\n }\n // We use the reportedTextBeforeRoot and reportedTextAfterRoot flags\n // to avoid reporting errors for every single character that is out of\n // place.\n if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextBeforeRoot = true;\n }\n if (this.closedRoot && !this.reportedTextAfterRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextAfterRoot = true;\n }\n }\n pushAttribNS(name, value) {\n var _a;\n const { prefix, local } = this.qname(name);\n const attr = { name, prefix, local, value };\n this.attribList.push(attr);\n (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n if (prefix === \"xmlns\") {\n const trimmed = value.trim();\n if (this.currentXMLVersion === \"1.0\" && trimmed === \"\") {\n this.fail(\"invalid attempt to undefine prefix in XML 1.0\");\n }\n this.topNS[local] = trimmed;\n nsPairCheck(this, local, trimmed);\n }\n else if (name === \"xmlns\") {\n const trimmed = value.trim();\n this.topNS[\"\"] = trimmed;\n nsPairCheck(this, \"\", trimmed);\n }\n }\n pushAttribPlain(name, value) {\n var _a;\n const attr = { name, value };\n this.attribList.push(attr);\n (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n }\n /**\n * End parsing. This performs final well-formedness checks and resets the\n * parser to a clean state.\n *\n * @returns this\n */\n end() {\n var _a, _b;\n if (!this.sawRoot) {\n this.fail(\"document must contain a root element.\");\n }\n const { tags } = this;\n while (tags.length > 0) {\n const tag = tags.pop();\n this.fail(`unclosed tag: ${tag.name}`);\n }\n if ((this.state !== S_BEGIN) && (this.state !== S_TEXT)) {\n this.fail(\"unexpected end.\");\n }\n const { text } = this;\n if (text.length !== 0) {\n (_a = this.textHandler) === null || _a === void 0 ? void 0 : _a.call(this, text);\n this.text = \"\";\n }\n this._closed = true;\n (_b = this.endHandler) === null || _b === void 0 ? void 0 : _b.call(this);\n this._init();\n return this;\n }\n /**\n * Resolve a namespace prefix.\n *\n * @param prefix The prefix to resolve.\n *\n * @returns The namespace URI or ``undefined`` if the prefix is not defined.\n */\n resolve(prefix) {\n var _a, _b;\n let uri = this.topNS[prefix];\n if (uri !== undefined) {\n return uri;\n }\n const { tags } = this;\n for (let index = tags.length - 1; index >= 0; index--) {\n uri = tags[index].ns[prefix];\n if (uri !== undefined) {\n return uri;\n }\n }\n uri = this.ns[prefix];\n if (uri !== undefined) {\n return uri;\n }\n return (_b = (_a = this.opt).resolvePrefix) === null || _b === void 0 ? void 0 : _b.call(_a, prefix);\n }\n /**\n * Parse a qname into its prefix and local name parts.\n *\n * @param name The name to parse\n *\n * @returns\n */\n qname(name) {\n // This is faster than using name.split(\":\").\n const colon = name.indexOf(\":\");\n if (colon === -1) {\n return { prefix: \"\", local: name };\n }\n const local = name.slice(colon + 1);\n const prefix = name.slice(0, colon);\n if (prefix === \"\" || local === \"\" || local.includes(\":\")) {\n this.fail(`malformed name: ${name}.`);\n }\n return { prefix, local };\n }\n processAttribsNS() {\n var _a;\n const { attribList } = this;\n const tag = this.tag;\n {\n // add namespace info to tag\n const { prefix, local } = this.qname(tag.name);\n tag.prefix = prefix;\n tag.local = local;\n const uri = tag.uri = (_a = this.resolve(prefix)) !== null && _a !== void 0 ? _a : \"\";\n if (prefix !== \"\") {\n if (prefix === \"xmlns\") {\n this.fail(\"tags may not have \\\"xmlns\\\" as prefix.\");\n }\n if (uri === \"\") {\n this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n tag.uri = prefix;\n }\n }\n }\n if (attribList.length === 0) {\n return;\n }\n const { attributes } = tag;\n const seen = new Set();\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (const attr of attribList) {\n const { name, prefix, local } = attr;\n let uri;\n let eqname;\n if (prefix === \"\") {\n uri = name === \"xmlns\" ? XMLNS_NAMESPACE : \"\";\n eqname = name;\n }\n else {\n uri = this.resolve(prefix);\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (uri === undefined) {\n this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n uri = prefix;\n }\n eqname = `{${uri}}${local}`;\n }\n if (seen.has(eqname)) {\n this.fail(`duplicate attribute: ${eqname}.`);\n }\n seen.add(eqname);\n attr.uri = uri;\n attributes[name] = attr;\n }\n this.attribList = [];\n }\n processAttribsPlain() {\n const { attribList } = this;\n // eslint-disable-next-line prefer-destructuring\n const attributes = this.tag.attributes;\n for (const { name, value } of attribList) {\n if (attributes[name] !== undefined) {\n this.fail(`duplicate attribute: ${name}.`);\n }\n attributes[name] = value;\n }\n this.attribList = [];\n }\n /**\n * Handle a complete open tag. This parser code calls this once it has seen\n * the whole tag. This method checks for well-formeness and then emits\n * ``onopentag``.\n */\n openTag() {\n var _a;\n this.processAttribs();\n const { tags } = this;\n const tag = this.tag;\n tag.isSelfClosing = false;\n // There cannot be any pending text here due to the onopentagstart that was\n // necessarily emitted before we get here. So we do not check text.\n (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n tags.push(tag);\n this.state = S_TEXT;\n this.name = \"\";\n }\n /**\n * Handle a complete self-closing tag. This parser code calls this once it has\n * seen the whole tag. This method checks for well-formeness and then emits\n * ``onopentag`` and ``onclosetag``.\n */\n openSelfClosingTag() {\n var _a, _b, _c;\n this.processAttribs();\n const { tags } = this;\n const tag = this.tag;\n tag.isSelfClosing = true;\n // There cannot be any pending text here due to the onopentagstart that was\n // necessarily emitted before we get here. So we do not check text.\n (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n (_b = this.closeTagHandler) === null || _b === void 0 ? void 0 : _b.call(this, tag);\n const top = this.tag = (_c = tags[tags.length - 1]) !== null && _c !== void 0 ? _c : null;\n if (top === null) {\n this.closedRoot = true;\n }\n this.state = S_TEXT;\n this.name = \"\";\n }\n /**\n * Handle a complete close tag. This parser code calls this once it has seen\n * the whole tag. This method checks for well-formeness and then emits\n * ``onclosetag``.\n */\n closeTag() {\n const { tags, name } = this;\n // Our state after this will be S_TEXT, no matter what, and we can clear\n // tagName now.\n this.state = S_TEXT;\n this.name = \"\";\n if (name === \"\") {\n this.fail(\"weird empty close tag.\");\n this.text += \"\";\n return;\n }\n const handler = this.closeTagHandler;\n let l = tags.length;\n while (l-- > 0) {\n const tag = this.tag = tags.pop();\n this.topNS = tag.ns;\n handler === null || handler === void 0 ? void 0 : handler(tag);\n if (tag.name === name) {\n break;\n }\n this.fail(\"unexpected close tag.\");\n }\n if (l === 0) {\n this.closedRoot = true;\n }\n else if (l < 0) {\n this.fail(`unmatched closing tag: ${name}.`);\n this.text += ``;\n }\n }\n /**\n * Resolves an entity. Makes any necessary well-formedness checks.\n *\n * @param entity The entity to resolve.\n *\n * @returns The parsed entity.\n */\n parseEntity(entity) {\n // startsWith would be significantly slower for this test.\n if (entity[0] !== \"#\") {\n const defined = this.ENTITIES[entity];\n if (defined !== undefined) {\n return defined;\n }\n this.fail(this.isName(entity) ? \"undefined entity.\" :\n \"disallowed character in entity name.\");\n return `&${entity};`;\n }\n let num = NaN;\n if (entity[1] === \"x\" && /^#x[0-9a-f]+$/i.test(entity)) {\n num = parseInt(entity.slice(2), 16);\n }\n else if (/^#[0-9]+$/.test(entity)) {\n num = parseInt(entity.slice(1), 10);\n }\n // The character reference is required to match the CHAR production.\n if (!this.isChar(num)) {\n this.fail(\"malformed character entity.\");\n return `&${entity};`;\n }\n return String.fromCodePoint(num);\n }\n}\nexports.SaxesParser = SaxesParser;\n//# sourceMappingURL=saxes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReadableWebToNodeStream = void 0;\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * Converts a Web-API stream into Node stream.Readable class\n * Node stream readable: https://nodejs.org/api/stream.html#stream_readable_streams\n * Web API readable-stream: https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream\n * Node readable stream: https://nodejs.org/api/stream.html#stream_readable_streams\n */\nclass ReadableWebToNodeStream extends readable_stream_1.Readable {\n /**\n *\n * @param stream ReadableStream: https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream\n */\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n /**\n * Implementation of readable._read(size).\n * When readable._read() is called, if data is available from the resource,\n * the implementation should begin pushing that data into the read queue\n * https://nodejs.org/api/stream.html#stream_readable_read_size_1\n */\n async _read() {\n // Should start pushing data into the queue\n // Read data from the underlying Web-API-readable-stream\n if (this.released) {\n this.push(null); // Signal EOF\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n // clear the promise before pushing pushing new data to the queue and allow sequential calls to _read()\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null); // Signal EOF\n }\n else {\n this.bytesRead += data.value.length;\n this.push(data.value); // Push new data to the queue\n }\n }\n /**\n * If there is no unresolved read call to Web-API Readable​Stream immediately returns;\n * otherwise will wait until the read is resolved.\n */\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n /**\n * Close wrapper\n */\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n}\nexports.ReadableWebToNodeStream = ReadableWebToNodeStream;\n//# sourceMappingURL=index.js.map","/*globals self, window */\n\"use strict\"\n\n/*eslint-disable @mysticatea/prettier */\nconst { AbortController, AbortSignal } =\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n /* otherwise */ undefined\n/*eslint-enable @mysticatea/prettier */\n\nmodule.exports = AbortController\nmodule.exports.AbortSignal = AbortSignal\nmodule.exports.default = AbortController\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction promisifyEventEmitter(event, result) {\n return new Promise((resolve, reject) => {\n event.on('end', () => resolve(result));\n event.on('error', reject);\n });\n}\nfunction arrayifyStream(stream) {\n const array = [];\n return promisifyEventEmitter(stream.on('data', data => array.push(data)), array);\n}\nexports.default = arrayifyStream;\n//# sourceMappingURL=index.js.map","\nconst DynamicNestedLoopJoin = require('./join/DynamicNestedLoopJoin');\nconst HashJoin = require('./join/HashJoin');\nconst NestedLoopJoin = require('./join/NestedLoopJoin');\nconst SymmetricHashJoin = require('./join/SymmetricHashJoin');\n\nconst MergeStream = require('./util/MergeIterator');\n\nmodule.exports = {\n DynamicNestedLoopJoin,\n HashJoin,\n NestedLoopJoin,\n SymmetricHashJoin,\n\n MergeStream\n};","\nlet AsyncIterator = require('asynciterator');\nlet MultiTransformIterator = AsyncIterator.MultiTransformIterator;\nlet SimpleTransformIterator = AsyncIterator.SimpleTransformIterator;\n\n// Nested Loop Join, but the values of the inner loop are determined by each value of the outer loop, possibly reducing the number of necessary checks\nclass DynamicNestedLoopJoin extends MultiTransformIterator\n{\n constructor (left, funRight, funJoin, options)\n {\n super(left, options);\n\n this.funRight = funRight;\n this.funJoin = funJoin;\n }\n\n _createTransformer (leftItem)\n {\n return new SimpleTransformIterator(this.funRight(leftItem), { transform: (rightItem, done, push) =>\n {\n let result = this.funJoin(leftItem, rightItem);\n if (result !== null)\n push(result);\n done();\n }});\n }\n}\n\nmodule.exports = DynamicNestedLoopJoin;\n","\nlet AsyncIterator = require('asynciterator').AsyncIterator;\n\n// https://en.wikipedia.org/wiki/Hash_join\nclass HashJoin extends AsyncIterator\n{\n constructor (left, right, funHash, funJoin)\n {\n super();\n\n this.addedDataListener = false;\n this.left = left;\n this.right = right;\n this.funHash = funHash;\n this.funJoin = funJoin;\n\n this.leftMap = new Map();\n\n this.match = null;\n this.matches = [];\n this.matchIdx = 0;\n\n this.left.on('error', (error) => this.destroy(error));\n this.right.on('error', (error) => this.destroy(error));\n\n this.readable = false;\n\n this.left.on('end', allowJoining.bind(this));\n\n function allowJoining ()\n {\n this.readable = true;\n this.right.on('readable', () => this.readable = true);\n this.right.on('end', () => { if (!this.hasResults()) this._end(); });\n }\n\n this.on('newListener', (eventName) =>\n {\n if (eventName === 'data')\n {\n this._addDataListenerIfNeeded();\n }\n });\n if (this.left.readable)\n this._addDataListenerIfNeeded();\n this.left.on('readable', () => this._addDataListenerIfNeeded());\n }\n\n hasResults ()\n {\n return !this.right.ended || this.matchIdx < this.matches.length;\n }\n\n _end ()\n {\n super._end();\n this.left.destroy();\n this.right.destroy();\n }\n\n read ()\n {\n this._addDataListenerIfNeeded();\n\n while(true) {\n if (this.ended || !this.readable)\n return null;\n\n while (this.matchIdx < this.matches.length)\n {\n let item = this.matches[this.matchIdx++];\n let result = this.funJoin(item, this.match);\n if (result !== null)\n return result;\n }\n\n if (!this.hasResults())\n this._end();\n\n this.match = this.right.read();\n\n if (this.match === null)\n {\n this.readable = false;\n return null;\n }\n\n let hash = this.funHash(this.match);\n this.matches = this.leftMap.get(hash) || [];\n this.matchIdx = 0;\n }\n }\n\n _addDataListenerIfNeeded() {\n if (!this.addedDataListener)\n {\n this.addedDataListener = true;\n this._addDataListener();\n }\n }\n\n _addDataListener()\n {\n this.left.on('data', addItem.bind(this));\n\n function addItem(item)\n {\n let hash = this.funHash(item);\n if (!this.leftMap.has(hash))\n this.leftMap.set(hash, []);\n let arr = this.leftMap.get(hash);\n arr.push(item);\n }\n }\n}\n\nmodule.exports = HashJoin;\n","\nconst { MultiTransformIterator, SimpleTransformIterator, scheduleTask } = require('asynciterator');\n\n// https://en.wikipedia.org/wiki/Nested_loop_join\nclass NestedLoopJoin extends MultiTransformIterator\n{\n constructor (left, right, funJoin, options)\n {\n super(left, options);\n\n this.right = right;\n this.funJoin = funJoin; // function that joins 2 elements or returns null if join is not possible\n this.on('end', () => this.right.close());\n }\n\n _end ()\n {\n super._end();\n scheduleTask(() => this.right.destroy());\n }\n\n _createTransformer (leftItem)\n {\n return new SimpleTransformIterator(this.right.clone(), { transform: (rightItem, done, push) =>\n {\n let result = this.funJoin(leftItem, rightItem);\n if (result !== null)\n push(result);\n done();\n }});\n }\n}\n\nmodule.exports = NestedLoopJoin;\n","\nlet AsyncIterator = require('asynciterator').AsyncIterator;\n\n// https://en.wikipedia.org/wiki/Symmetric_Hash_Join\nclass SymmetricHashJoin extends AsyncIterator\n{\n constructor (left, right, funHash, funJoin)\n {\n super();\n\n this.left = left;\n this.right = right;\n\n this.funHash = funHash;\n this.funJoin = funJoin;\n\n this.usedLeft = false;\n this.leftMap = new Map();\n this.rightMap = new Map();\n\n this.on('end', () => this._cleanup() );\n\n this.match = null;\n this.matches = [];\n this.matchIdx = 0;\n\n if (this.left.readable || this.right.readable)\n {\n this.readable = true;\n }\n\n this.left.on('error', (error) => this.destroy(error));\n this.right.on('error', (error) => this.destroy(error));\n\n this.left.on('readable', () => this.readable = true);\n this.right.on('readable', () => this.readable = true);\n\n // this needs to be here since it's possible the left/right streams only get ended after there are no more results left\n this.left.on ('end', () => { if (!this.hasResults()) this._end(); });\n this.right.on('end', () => { if (!this.hasResults()) this._end(); });\n }\n\n hasResults()\n {\n // The \"!!this.match\" condition was added as a workaround to race\n // conditions and/or duplicate \"end\" events that may lead to premature\n // cleanups of the \"this.matches\" array.\n // See https://github.com/joachimvh/asyncjoin/issues/7\n return !this.left.ended || !this.right.ended || (!!this.matches && this.matchIdx < this.matches.length);\n }\n\n _cleanup ()\n {\n // motivate garbage collector to remove these\n this.leftMap = null;\n this.rightMap = null;\n this.matches = null;\n }\n\n _end ()\n {\n super._end();\n this.left.destroy();\n this.right.destroy();\n }\n\n read ()\n {\n while(true){\n if (this.ended)\n return null;\n\n while (this.matchIdx < this.matches.length)\n {\n let item = this.matches[this.matchIdx++];\n let result = this.usedLeft ? this.funJoin(this.match, item) : this.funJoin(item, this.match);\n if (result !== null)\n return result;\n }\n\n if (!this.hasResults())\n this._end();\n\n let item = null;\n // try both streams if the first one has no value\n for (let i = 0; i < 2; ++i)\n {\n item = this.usedLeft ? this.right.read() : this.left.read();\n this.usedLeft = !this.usedLeft; // try other stream next time\n\n // found a result, no need to check the other stream this run\n if (item !== null)\n break;\n }\n\n if (this.done || item === null)\n {\n this.readable = false;\n return null;\n }\n\n let hash = this.funHash(item);\n\n if (this.usedLeft && this.right.done) {\n this.leftMap = null;\n } else if (this.left.done) {\n this.rightMap = null;\n } else {\n let map = this.usedLeft ? this.leftMap : this.rightMap;\n if (!map.has(hash))\n map.set(hash, []);\n let arr = map.get(hash);\n arr.push(item);\n }\n\n this.match = item;\n this.matches = (this.usedLeft ? this.rightMap : this.leftMap).get(hash) || [];\n this.matchIdx = 0;\n }\n }\n}\n\nmodule.exports = SymmetricHashJoin;\n","\nlet AsyncIterator = require('asynciterator').AsyncIterator;\n\n// merges the contents of multiple streams\nclass MergeIterator extends AsyncIterator\n{\n constructor (streams)\n {\n super();\n \n if (!Array.isArray(streams))\n streams = Array.prototype.slice.call(arguments);\n \n this.streams = streams;\n \n for (let stream of streams)\n {\n stream.on('readable', () => this.emit('readable'));\n stream.on('end', () => this._removeStream(stream));\n }\n \n if (this.streams.length === 0)\n this.close();\n \n this.idx = this.streams.length-1;\n }\n \n _removeStream (stream)\n {\n let idx = this.streams.indexOf(stream);\n if (idx < 0)\n return;\n \n this.streams.splice(idx, 1);\n if (this.idx >= this.streams.length)\n --this.idx;\n \n if (this.streams.length === 0)\n this._end();\n }\n \n close ()\n {\n super.close();\n for (let stream of this.streams)\n stream.close();\n }\n \n read ()\n {\n for (let attempts = 0; attempts < this.streams.length; ++attempts)\n {\n this.idx = (this.idx + 1) % this.streams.length;\n let item = this.streams[this.idx].read();\n if (item !== null)\n return item;\n }\n \n return null;\n }\n}\n\nmodule.exports = MergeIterator;","module.exports = function(variables) {\nfunction getVariableValue(name) {\n if (!variables || !(name in variables)) {\n throw new Error('Undefined variable: ' + name);\n }\n return variables[name];\n}\nconst df_475_1 = new (require('@comunica/logger-void').LoggerVoid)();\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_init__3_0_0_components_ActorInit_jsonld_ActorInit_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-init/^3.0.0/components/ActorInit.jsonld#ActorInit_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__3_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-context-preprocess/^3.0.0/components/ActorContextPreprocess.jsonld#ActorContextPreprocess_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_bindings__3_0_0_components_ActorHashBindings_jsonld_ActorHashBindings_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-hash-bindings/^3.0.0/components/ActorHashBindings.jsonld#ActorHashBindings_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_quads__1_0_0_components_ActorHashQuads_jsonld_ActorHashQuads_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-hash-quads/^1.0.0/components/ActorHashQuads.jsonld#ActorHashQuads_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-optimize-query-operation/^3.0.0/components/ActorOptimizeQueryOperation.jsonld#ActorOptimizeQueryOperation_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__3_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-parse/^3.0.0/components/ActorQueryParse.jsonld#ActorQueryParse_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-result-serialize/^3.0.0/components/ActorQueryResultSerialize.jsonld#ActorQueryResultSerialize_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__3_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-source-identify-hypermedia/^3.0.0/components/ActorQuerySourceIdentifyHypermedia.jsonld#ActorQuerySourceIdentifyHypermedia_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__3_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-dereference/^3.0.0/components/ActorDereference.jsonld#ActorDereference_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference_rdf__3_0_0_components_ActorDereferenceRdf_jsonld_ActorDereferenceRdf_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-dereference-rdf/^3.0.0/components/ActorDereferenceRdf.jsonld#ActorDereferenceRdf_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_entries_sort__3_0_0_components_ActorRdfJoinEntriesSort_jsonld_ActorRdfJoinEntriesSort_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join-entries-sort/^3.0.0/components/ActorRdfJoinEntriesSort.jsonld#ActorRdfJoinEntriesSort_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_selectivity__3_0_0_components_ActorRdfJoinSelectivity_jsonld_ActorRdfJoinSelectivity_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join-selectivity/^3.0.0/components/ActorRdfJoinSelectivity.jsonld#ActorRdfJoinSelectivity_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__3_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata/^3.0.0/components/ActorRdfMetadata.jsonld#ActorRdfMetadata_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__3_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata-accumulate/^3.0.0/components/ActorRdfMetadataAccumulate.jsonld#ActorRdfMetadataAccumulate_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata-extract/^3.0.0/components/ActorRdfMetadataExtract.jsonld#ActorRdfMetadataExtract_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse/^3.0.0/components/ActorRdfParse.jsonld#ActorRdfParse_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__3_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse-html/^3.0.0/components/ActorRdfParseHtml.jsonld#ActorRdfParseHtml_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links__3_0_0_components_ActorRdfResolveHypermediaLinks_jsonld_ActorRdfResolveHypermediaLinks_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia-links/^3.0.0/components/ActorRdfResolveHypermediaLinks.jsonld#ActorRdfResolveHypermediaLinks_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links_queue__3_0_0_components_ActorRdfResolveHypermediaLinksQueue_jsonld_ActorRdfResolveHypermediaLinksQueue_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia-links-queue/^3.0.0/components/ActorRdfResolveHypermediaLinksQueue.jsonld#ActorRdfResolveHypermediaLinksQueue_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__3_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-serialize/^3.0.0/components/ActorRdfSerialize.jsonld#ActorRdfSerialize_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__3_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-update-hypermedia/^3.0.0/components/ActorRdfUpdateHypermedia.jsonld#ActorRdfUpdateHypermedia_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__3_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-update-quads/^3.0.0/components/ActorRdfUpdateQuads.jsonld#ActorRdfUpdateQuads_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http/^3.0.0/components/ActorHttp.jsonld#ActorHttp_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_fallback_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http/^3.0.0/components/ActorHttp.jsonld#ActorHttp_fallback_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus = new (require('@comunica/bus-query-operation').BusQueryOperation)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-operation/^3.0.0/components/ActorQueryOperation.jsonld#ActorQueryOperation_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__3_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-process/^3.0.0/components/ActorQueryProcess.jsonld#ActorQueryProcess_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__3_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-source-identify/^3.0.0/components/ActorQuerySourceIdentify.jsonld#ActorQuerySourceIdentify_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join/^3.0.0/components/ActorRdfJoin.jsonld#ActorRdfJoin_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__3_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http-invalidate/^3.0.0/components/ActorHttpInvalidate.jsonld#ActorHttpInvalidate_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_merge_bindings_context__3_0_0_components_ActorMergeBindingsContext_jsonld_ActorMergeBindingsContext_default_bus = new (require('@comunica/core').Bus)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-merge-bindings-context/^3.0.0/components/ActorMergeBindingsContext.jsonld#ActorMergeBindingsContext_default_bus'\n});\nconst urn_comunica_default_context_preprocess_actors_convert_shortcuts = new (require('@comunica/actor-context-preprocess-convert-shortcuts').ActorContextPreprocessConvertShortcuts)({\n 'contextKeyShortcuts': {\"baseIRI\":\"@comunica/actor-init-query:baseIRI\",\"datetime\":\"@comunica/actor-http-memento:datetime\",\"destination\":\"@comunica/bus-rdf-update-quads:destination\",\"distinctConstruct\":\"@comunica/actor-init-query:distinctConstruct\",\"explain\":\"@comunica/actor-init-query:explain\",\"extensionFunctionCreator\":\"@comunica/actor-init-query:extensionFunctionCreator\",\"extensionFunctions\":\"@comunica/actor-init-query:extensionFunctions\",\"fetch\":\"@comunica/bus-http:fetch\",\"functionArgumentsCache\":\"@comunica/actor-init-query:functionArgumentsCache\",\"httpAuth\":\"@comunica/bus-http:auth\",\"httpBodyTimeout\":\"@comunica/bus-http:http-body-timeout\",\"httpIncludeCredentials\":\"@comunica/bus-http:include-credentials\",\"httpProxyHandler\":\"@comunica/actor-http-proxy:httpProxyHandler\",\"httpRetryCount\":\"@comunica/bus-http:http-retry-count\",\"httpRetryDelay\":\"@comunica/bus-http:http-retry-delay\",\"httpRetryOnServerError\":\"@comunica/bus-http:http-retry-on-server-error\",\"httpTimeout\":\"@comunica/bus-http:http-timeout\",\"initialBindings\":\"@comunica/actor-init-query:initialBindings\",\"lenient\":\"@comunica/actor-init-query:lenient\",\"log\":\"@comunica/core:log\",\"noCache\":\"@comunica/actor-init-query:noCache\",\"queryFormat\":\"@comunica/actor-init-query:queryFormat\",\"queryTimestamp\":\"@comunica/actor-init-query:queryTimestamp\",\"readOnly\":\"@comunica/bus-query-operation:readOnly\",\"recoverBrokenLinks\":\"@comunica/bus-http-wayback:recover-broken-links\",\"sources\":\"@comunica/actor-init-query:querySourcesUnidentified\",\"traverse\":\"@comunica/bus-query-source-identify:traverse\",\"unionDefaultGraph\":\"@comunica/bus-query-operation:unionDefaultGraph\"},\n 'name': 'urn:comunica:default:context-preprocess/actors#convert-shortcuts',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__3_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus\n});\nconst urn_comunica_default_context_preprocess_actors_set_defaults = new (require('@comunica/actor-context-preprocess-set-defaults').ActorContextPreprocessSetDefaults)({\n 'logger': df_475_1,\n 'name': 'urn:comunica:default:context-preprocess/actors#set-defaults',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__3_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus\n});\nconst urn_comunica_default_context_preprocess_actors_source_to_destination = new (require('@comunica/actor-context-preprocess-source-to-destination').ActorContextPreprocessSourceToDestination)({\n 'name': 'urn:comunica:default:context-preprocess/actors#source-to-destination',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__3_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus\n});\nconst urn_comunica_default_context_preprocess_actors_query_source_skolemize = new (require('@comunica/actor-context-preprocess-query-source-skolemize').ActorContextPreprocessQuerySourceSkolemize)({\n 'name': 'urn:comunica:default:context-preprocess/actors#query-source-skolemize',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__3_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus\n});\nconst urn_comunica_default_context_preprocess_mediators_main = new (require('@comunica/mediator-combine-pipeline').MediatorCombinePipeline)({\n 'name': 'urn:comunica:default:context-preprocess/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__3_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus\n});\nconst urn_comunica_default_hash_bindings_actors_sha1 = new (require('@comunica/actor-hash-bindings-sha1').ActorHashBindingsSha1)({\n 'name': 'urn:comunica:default:hash-bindings/actors#sha1',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_bindings__3_0_0_components_ActorHashBindings_jsonld_ActorHashBindings_default_bus\n});\nconst urn_comunica_default_hash_bindings_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:hash-bindings/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_bindings__3_0_0_components_ActorHashBindings_jsonld_ActorHashBindings_default_bus\n});\nconst urn_comunica_default_hash_quads_actors_sha1 = new (require('@comunica/actor-hash-quads-sha1').ActorHashQuadsSha1)({\n 'name': 'urn:comunica:default:hash-quads/actors#sha1',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_quads__1_0_0_components_ActorHashQuads_jsonld_ActorHashQuads_default_bus\n});\nconst urn_comunica_default_hash_quads_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:hash-quads/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_quads__1_0_0_components_ActorHashQuads_jsonld_ActorHashQuads_default_bus\n});\nconst urn_comunica_default_optimize_query_operation_actors_rewrite_copy = new (require('@comunica/actor-optimize-query-operation-rewrite-copy').ActorOptimizeQueryOperationRewriteCopy)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#rewrite-copy',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus\n});\nconst urn_comunica_default_optimize_query_operation_actors_rewrite_move = new (require('@comunica/actor-optimize-query-operation-rewrite-move').ActorOptimizeQueryOperationRewriteMove)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#rewrite-move',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus\n});\nconst urn_comunica_default_optimize_query_operation_actors_rewrite_add = new (require('@comunica/actor-optimize-query-operation-rewrite-add').ActorOptimizeQueryOperationRewriteAdd)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#rewrite-add',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus\n});\nconst urn_comunica_default_optimize_query_operation_actors_group_sources = new (require('@comunica/actor-optimize-query-operation-group-sources').ActorOptimizeQueryOperationGroupSources)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#group-sources',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus\n});\nconst urn_comunica_default_optimize_query_operation_actors_construct_distinct = new (require('@comunica/actor-optimize-query-operation-construct-distinct').ActorOptimizeQueryOperationConstructDistinct)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#construct-distinct',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus\n});\nconst urn_comunica_default_optimize_query_operation_mediators_main = new (require('@comunica/mediator-combine-pipeline').MediatorCombinePipeline)({\n 'filterErrors': true,\n 'name': 'urn:comunica:default:optimize-query-operation/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus\n});\nconst urn_comunica_default_query_parse_actors_sparql = new (require('@comunica/actor-query-parse-sparql').ActorQueryParseSparql)({\n 'prefixes': {\"dbpedia\":\"http://dbpedia.org/resource/\",\"dbpedia-owl\":\"http://dbpedia.org/ontology/\",\"dbpprop\":\"http://dbpedia.org/property/\",\"dc\":\"http://purl.org/dc/terms/\",\"dc11\":\"http://purl.org/dc/elements/1.1/\",\"dcterms\":\"http://purl.org/dc/terms/\",\"foaf\":\"http://xmlns.com/foaf/0.1/\",\"geo\":\"http://www.w3.org/2003/01/geo/wgs84_pos#\",\"owl\":\"http://www.w3.org/2002/07/owl#\",\"rdf\":\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\"rdfs\":\"http://www.w3.org/2000/01/rdf-schema#\",\"schema\":\"http://schema.org/\",\"skos\":\"http://www.w3.org/2008/05/skos#\",\"xsd\":\"http://www.w3.org/2001/XMLSchema#\"},\n 'name': 'urn:comunica:default:query-parse/actors#sparql',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__3_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus\n});\nconst urn_comunica_default_query_parse_actors_graphql = new (require('@comunica/actor-query-parse-graphql').ActorQueryParseGraphql)({\n 'name': 'urn:comunica:default:query-parse/actors#graphql',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__3_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus\n});\nconst urn_comunica_default_query_parse_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:query-parse/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__3_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_json = new (require('@comunica/actor-query-result-serialize-json').ActorQueryResultSerializeJson)({\n 'mediaTypePriorities': {\"application/json\":1},\n 'mediaTypeFormats': {\"application/json\":\"https://comunica.linkeddatafragments.org/#results_JSON\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#json',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_simple = new (require('@comunica/actor-query-result-serialize-simple').ActorQueryResultSerializeSimple)({\n 'mediaTypePriorities': {\"simple\":0.9},\n 'mediaTypeFormats': {\"simple\":\"https://comunica.linkeddatafragments.org/#results_simple\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#simple',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_csv = new (require('@comunica/actor-query-result-serialize-sparql-csv').ActorQueryResultSerializeSparqlCsv)({\n 'mediaTypePriorities': {\"text/csv\":0.75},\n 'mediaTypeFormats': {\"text/csv\":\"http://www.w3.org/ns/formats/SPARQL_Results_CSV\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#csv',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_sparql_tsv = new (require('@comunica/actor-query-result-serialize-sparql-tsv').ActorQueryResultSerializeSparqlTsv)({\n 'mediaTypePriorities': {\"text/tab-separated-values\":0.75},\n 'mediaTypeFormats': {\"text/tab-separated-values\":\"http://www.w3.org/ns/formats/SPARQL_Results_TSV\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#sparql-tsv',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_sparql_xml = new (require('@comunica/actor-query-result-serialize-sparql-xml').ActorQueryResultSerializeSparqlXml)({\n 'mediaTypePriorities': {\"application/sparql-results+xml\":0.8},\n 'mediaTypeFormats': {\"application/sparql-results+xml\":\"http://www.w3.org/ns/formats/SPARQL_Results_XML\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#sparql-xml',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_table = new (require('@comunica/actor-query-result-serialize-table').ActorQueryResultSerializeTable)({\n 'columnWidth': 50,\n 'mediaTypePriorities': {\"table\":0.6},\n 'mediaTypeFormats': {\"table\":\"https://comunica.linkeddatafragments.org/#results_table\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#table',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_tree = new (require('@comunica/actor-query-result-serialize-tree').ActorQueryResultSerializeTree)({\n 'mediaTypePriorities': {\"tree\":0.5},\n 'mediaTypeFormats': {\"tree\":\"https://comunica.linkeddatafragments.org/#results_tree\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#tree',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_mediators_serialize = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:query-result-serialize/mediators#serialize',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_mediators_mediaType = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n 'field': 'mediaTypes',\n 'name': 'urn:comunica:default:query-result-serialize/mediators#mediaType',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_mediators_mediaTypeFormat = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n 'field': 'mediaTypeFormats',\n 'name': 'urn:comunica:default:query-result-serialize/mediators#mediaTypeFormat',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_source_identify_hypermedia_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n 'field': 'filterFactor',\n 'type': 'max',\n 'ignoreErrors': true,\n 'name': 'urn:comunica:default:query-source-identify-hypermedia/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__3_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus\n});\nconst urn_comunica_default_dereference_actors_fallback = new (require('@comunica/actor-dereference-fallback').ActorDereferenceFallback)({\n 'name': 'urn:comunica:default:dereference/actors#fallback',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__3_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus\n});\nconst urn_comunica_default_dereference_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:dereference/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__3_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus\n});\nconst urn_comunica_default_dereference_rdf_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:dereference-rdf/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference_rdf__3_0_0_components_ActorDereferenceRdf_jsonld_ActorDereferenceRdf_default_bus\n});\nconst urn_comunica_default_rdf_join_entries_sort_actors_cardinality = new (require('@comunica/actor-rdf-join-entries-sort-cardinality').ActorRdfJoinEntriesSortCardinality)({\n 'name': 'urn:comunica:default:rdf-join-entries-sort/actors#cardinality',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_entries_sort__3_0_0_components_ActorRdfJoinEntriesSort_jsonld_ActorRdfJoinEntriesSort_default_bus\n});\nconst urn_comunica_default_rdf_join_entries_sort_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:rdf-join-entries-sort/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_entries_sort__3_0_0_components_ActorRdfJoinEntriesSort_jsonld_ActorRdfJoinEntriesSort_default_bus\n});\nconst urn_comunica_default_rdf_join_selectivity_actors_variable_counting = new (require('@comunica/actor-rdf-join-selectivity-variable-counting').ActorRdfJoinSelectivityVariableCounting)({\n 'name': 'urn:comunica:default:rdf-join-selectivity/actors#variable-counting',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_selectivity__3_0_0_components_ActorRdfJoinSelectivity_jsonld_ActorRdfJoinSelectivity_default_bus\n});\nconst urn_comunica_default_rdf_join_selectivity_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n 'field': 'accuracy',\n 'type': 'max',\n 'ignoreErrors': true,\n 'name': 'urn:comunica:default:rdf-join-selectivity/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_selectivity__3_0_0_components_ActorRdfJoinSelectivity_jsonld_ActorRdfJoinSelectivity_default_bus\n});\nconst urn_comunica_default_rdf_metadata_actors_primary_topic = new (require('@comunica/actor-rdf-metadata-primary-topic').ActorRdfMetadataPrimaryTopic)({\n 'metadataToData': false,\n 'dataToMetadataOnInvalidMetadataGraph': true,\n 'name': 'urn:comunica:default:rdf-metadata/actors#primary-topic',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__3_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus\n});\nconst urn_comunica_default_rdf_metadata_actors_all = new (require('@comunica/actor-rdf-metadata-all').ActorRdfMetadataAll)({\n 'name': 'urn:comunica:default:rdf-metadata/actors#all',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__3_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus\n});\nconst urn_comunica_default_rdf_metadata_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:rdf-metadata/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__3_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus\n});\nconst urn_comunica_default_rdf_metadata_accumulate_actors_cancontainundefs = new (require('@comunica/actor-rdf-metadata-accumulate-cancontainundefs').ActorRdfMetadataAccumulateCanContainUndefs)({\n 'name': 'urn:comunica:default:rdf-metadata-accumulate/actors#cancontainundefs',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__3_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus\n});\nconst urn_comunica_default_rdf_metadata_accumulate_actors_cardinality = new (require('@comunica/actor-rdf-metadata-accumulate-cardinality').ActorRdfMetadataAccumulateCardinality)({\n 'name': 'urn:comunica:default:rdf-metadata-accumulate/actors#cardinality',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__3_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus\n});\nconst urn_comunica_default_rdf_metadata_accumulate_actors_pagesize = new (require('@comunica/actor-rdf-metadata-accumulate-pagesize').ActorRdfMetadataAccumulatePageSize)({\n 'name': 'urn:comunica:default:rdf-metadata-accumulate/actors#pagesize',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__3_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus\n});\nconst urn_comunica_default_rdf_metadata_accumulate_actors_requesttime = new (require('@comunica/actor-rdf-metadata-accumulate-requesttime').ActorRdfMetadataAccumulateRequestTime)({\n 'name': 'urn:comunica:default:rdf-metadata-accumulate/actors#requesttime',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__3_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus\n});\nconst urn_comunica_default_rdf_metadata_accumulate_mediators_main = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n 'field': 'metadata',\n 'name': 'urn:comunica:default:rdf-metadata-accumulate/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__3_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_hydra_controls = new (require('@comunica/actor-rdf-metadata-extract-hydra-controls').ActorRdfMetadataExtractHydraControls)({\n 'name': 'urn:comunica:default:rdf-metadata-extract/actors#hydra-controls',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_hydra_count = new (require('@comunica/actor-rdf-metadata-extract-hydra-count').ActorRdfMetadataExtractHydraCount)({\n 'predicates': [\n 'http://www.w3.org/ns/hydra/core#totalItems',\n 'http://rdfs.org/ns/void#triples'\n],\n 'name': 'urn:comunica:default:rdf-metadata-extract/actors#hydra-count',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_hydra_pagesize = new (require('@comunica/actor-rdf-metadata-extract-hydra-pagesize').ActorRdfMetadataExtractHydraPagesize)({\n 'predicates': [\n 'http://www.w3.org/ns/hydra/core#itemsPerPage'\n],\n 'name': 'urn:comunica:default:rdf-metadata-extract/actors#hydra-pagesize',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_request_time = new (require('@comunica/actor-rdf-metadata-extract-request-time').ActorRdfMetadataExtractRequestTime)({\n 'name': 'urn:comunica:default:rdf-metadata-extract/actors#request-time',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_allow_http_methods = new (require('@comunica/actor-rdf-metadata-extract-allow-http-methods').ActorRdfMetadataExtractAllowHttpMethods)({\n 'name': 'urn:comunica:default:rdf-metadata-extract/actors#allow-http-methods',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_put_accepted = new (require('@comunica/actor-rdf-metadata-extract-put-accepted').ActorRdfMetadataExtractPutAccepted)({\n 'name': 'urn:comunica:default:rdf-metadata-extract/actors#put-accepted',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_patch_sparql_update = new (require('@comunica/actor-rdf-metadata-extract-patch-sparql-update').ActorRdfMetadataExtractPatchSparqlUpdate)({\n 'name': 'urn:comunica:default:rdf-metadata-extract/actors#patch-sparql-update',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_sparql_service = new (require('@comunica/actor-rdf-metadata-extract-sparql-service').ActorRdfMetadataExtractSparqlService)({\n 'inferHttpsEndpoint': true,\n 'name': 'urn:comunica:default:rdf-metadata-extract/actors#sparql-service',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_mediators_main = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n 'filterErrors': true,\n 'field': 'metadata',\n 'name': 'urn:comunica:default:rdf-metadata-extract/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__3_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_parse_actors_n3 = new (require('@comunica/actor-rdf-parse-n3').ActorRdfParseN3)({\n 'mediaTypePriorities': {\"application/n-quads\":1,\"application/n-triples\":0.8,\"application/trig\":0.95,\"text/n3\":0.35,\"text/turtle\":0.6},\n 'mediaTypeFormats': {\"application/n-quads\":\"http://www.w3.org/ns/formats/N-Quads\",\"application/n-triples\":\"http://www.w3.org/ns/formats/N-Triples\",\"application/trig\":\"http://www.w3.org/ns/formats/TriG\",\"text/n3\":\"http://www.w3.org/ns/formats/N3\",\"text/turtle\":\"http://www.w3.org/ns/formats/Turtle\"},\n 'priorityScale': 1,\n 'name': 'urn:comunica:default:rdf-parse/actors#n3',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_actors_rdfxml = new (require('@comunica/actor-rdf-parse-rdfxml').ActorRdfParseRdfXml)({\n 'mediaTypePriorities': {\"application/rdf+xml\":1},\n 'mediaTypeFormats': {\"application/rdf+xml\":\"http://www.w3.org/ns/formats/RDF_XML\"},\n 'priorityScale': 0.5,\n 'name': 'urn:comunica:default:rdf-parse/actors#rdfxml',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_actors_xmlrdfa = new (require('@comunica/actor-rdf-parse-xml-rdfa').ActorRdfParseXmlRdfa)({\n 'mediaTypePriorities': {\"application/xml\":1,\"image/svg+xml\":1,\"text/xml\":1},\n 'mediaTypeFormats': {\"application/xml\":\"http://www.w3.org/ns/formats/RDFa\",\"image/svg+xml\":\"http://www.w3.org/ns/formats/RDFa\",\"text/xml\":\"http://www.w3.org/ns/formats/RDFa\"},\n 'priorityScale': 0.3,\n 'name': 'urn:comunica:default:rdf-parse/actors#xmlrdfa',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_actors_shaclc = new (require('@comunica/actor-rdf-parse-shaclc').ActorRdfParseShaclc)({\n 'mediaTypePriorities': {\"text/shaclc\":1,\"text/shaclc-ext\":0.5},\n 'mediaTypeFormats': {\"text/shaclc\":\"http://www.w3.org/ns/formats/Shaclc\",\"text/shaclc-ext\":\"http://www.w3.org/ns/formats/ShaclcExtended\"},\n 'priorityScale': 0.1,\n 'name': 'urn:comunica:default:rdf-parse/actors#shaclc',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_mediators_parse = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:rdf-parse/mediators#parse',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_mediators_mediaType = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n 'field': 'mediaTypes',\n 'name': 'urn:comunica:default:rdf-parse/mediators#mediaType',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_actors_html = new (require('@comunica/actor-rdf-parse-html').ActorRdfParseHtml)({\n 'busRdfParseHtml': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__3_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus,\n 'mediaTypePriorities': {\"application/xhtml+xml\":0.9,\"text/html\":1},\n 'mediaTypeFormats': {\"application/xhtml+xml\":\"http://www.w3.org/ns/formats/HTML\",\"text/html\":\"http://www.w3.org/ns/formats/HTML\"},\n 'priorityScale': 0.2,\n 'name': 'urn:comunica:default:rdf-parse/actors#html',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_html_actors_microdata = new (require('@comunica/actor-rdf-parse-html-microdata').ActorRdfParseHtmlMicrodata)({\n 'name': 'urn:comunica:default:rdf-parse-html/actors#microdata',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__3_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus\n});\nconst urn_comunica_default_rdf_parse_html_actors_rdfa = new (require('@comunica/actor-rdf-parse-html-rdfa').ActorRdfParseHtmlRdfa)({\n 'name': 'urn:comunica:default:rdf-parse-html/actors#rdfa',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__3_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus\n});\nconst urn_comunica_default_rdf_resolve_hypermedia_links_actors_next = new (require('@comunica/actor-rdf-resolve-hypermedia-links-next').ActorRdfResolveHypermediaLinksNext)({\n 'name': 'urn:comunica:default:rdf-resolve-hypermedia-links/actors#next',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links__3_0_0_components_ActorRdfResolveHypermediaLinks_jsonld_ActorRdfResolveHypermediaLinks_default_bus\n});\nconst urn_comunica_default_rdf_resolve_hypermedia_links_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:rdf-resolve-hypermedia-links/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links__3_0_0_components_ActorRdfResolveHypermediaLinks_jsonld_ActorRdfResolveHypermediaLinks_default_bus\n});\nconst urn_comunica_default_rdf_resolve_hypermedia_links_queue_actors_fifo = new (require('@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo').ActorRdfResolveHypermediaLinksQueueFifo)({\n 'name': 'urn:comunica:default:rdf-resolve-hypermedia-links-queue/actors#fifo',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links_queue__3_0_0_components_ActorRdfResolveHypermediaLinksQueue_jsonld_ActorRdfResolveHypermediaLinksQueue_default_bus\n});\nconst urn_comunica_default_rdf_resolve_hypermedia_links_queue_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:rdf-resolve-hypermedia-links-queue/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links_queue__3_0_0_components_ActorRdfResolveHypermediaLinksQueue_jsonld_ActorRdfResolveHypermediaLinksQueue_default_bus\n});\nconst urn_comunica_default_rdf_serialize_actors_n3 = new (require('@comunica/actor-rdf-serialize-n3').ActorRdfSerializeN3)({\n 'mediaTypePriorities': {\"application/n-quads\":1,\"application/n-triples\":0.8,\"application/trig\":0.95,\"text/n3\":0.35,\"text/turtle\":0.6},\n 'mediaTypeFormats': {\"application/n-quads\":\"http://www.w3.org/ns/formats/N-Quads\",\"application/n-triples\":\"http://www.w3.org/ns/formats/N-Triples\",\"application/trig\":\"http://www.w3.org/ns/formats/TriG\",\"text/n3\":\"http://www.w3.org/ns/formats/N3\",\"text/turtle\":\"http://www.w3.org/ns/formats/Turtle\"},\n 'name': 'urn:comunica:default:rdf-serialize/actors#n3',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__3_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_serialize_actors_jsonld = new (require('@comunica/actor-rdf-serialize-jsonld').ActorRdfSerializeJsonLd)({\n 'jsonStringifyIndentSpaces': 2,\n 'mediaTypePriorities': {\"application/ld+json\":1},\n 'mediaTypeFormats': {\"application/ld+json\":\"http://www.w3.org/ns/formats/JSON-LD\"},\n 'priorityScale': 0.9,\n 'name': 'urn:comunica:default:rdf-serialize/actors#jsonld',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__3_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_serialize_actors_shaclc = new (require('@comunica/actor-rdf-serialize-shaclc').ActorRdfSerializeShaclc)({\n 'mediaTypePriorities': {\"text/shaclc\":1,\"text/shaclc-ext\":0.5},\n 'mediaTypeFormats': {\"text/shaclc\":\"http://www.w3.org/ns/formats/Shaclc\",\"text/shaclc-ext\":\"http://www.w3.org/ns/formats/ShaclcExtended\"},\n 'priorityScale': 0.1,\n 'name': 'urn:comunica:default:rdf-serialize/actors#shaclc',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__3_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_serialize_mediators_serialize = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:rdf-serialize/mediators#serialize',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__3_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_serialize_mediators_mediaType = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n 'field': 'mediaTypes',\n 'name': 'urn:comunica:default:rdf-serialize/mediators#mediaType',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__3_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_serialize_mediators_mediaTypeFormat = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n 'field': 'mediaTypeFormats',\n 'name': 'urn:comunica:default:rdf-serialize/mediators#mediaTypeFormat',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__3_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_update_hypermedia_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:rdf-update-hypermedia/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__3_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus\n});\nconst urn_comunica_default_rdf_update_quads_actors_rdfjs_store = new (require('@comunica/actor-rdf-update-quads-rdfjs-store').ActorRdfUpdateQuadsRdfJsStore)({\n 'name': 'urn:comunica:default:rdf-update-quads/actors#rdfjs-store',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__3_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus\n});\nconst urn_comunica_default_rdf_update_quads_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:rdf-update-quads/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__3_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus\n});\nconst urn_comunica_default_http_actors_fetch = new (require('@comunica/actor-http-fetch').ActorHttpFetch)({\n 'agentOptions': {\"keepAlive\":true,\"maxSockets\":5},\n 'name': 'urn:comunica:default:http/actors#fetch',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus\n});\nconst urn_comunica_default_http_mediators_no_fallback = new (require('@comunica/mediator-number').MediatorNumber)({\n 'field': 'time',\n 'type': 'min',\n 'ignoreErrors': true,\n 'name': 'urn:comunica:default:http/mediators#no-fallback',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus\n});\nconst urn_comunica_default_http_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n 'field': 'time',\n 'type': 'min',\n 'ignoreErrors': true,\n 'name': 'urn:comunica:default:http/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_fallback_bus\n});\nconst urn_comunica_default_query_operation_actors_source = new (require('@comunica/actor-query-operation-source').ActorQueryOperationSource)({\n 'name': 'urn:comunica:default:query-operation/actors#source',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n 'field': 'httpRequests',\n 'type': 'min',\n 'ignoreErrors': true,\n 'name': 'urn:comunica:default:query-operation/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_process_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:query-process/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__3_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus\n});\nconst urn_comunica_default_query_source_identify_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n 'name': 'urn:comunica:default:query-source-identify/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__3_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus\n});\nconst urn_comunica_default_rdf_join_mediators_main = new (require('@comunica/mediator-join-coefficients-fixed').MediatorJoinCoefficientsFixed)({\n 'cpuWeight': 10,\n 'memoryWeight': 1,\n 'timeWeight': 2,\n 'ioWeight': 10,\n 'name': 'urn:comunica:default:rdf-join/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_context_preprocess_query_source_identify__3_0_0_components_ActorContextPreprocessQuerySourceIdentify_jsonld_IActorContextPreprocessQuerySourceIdentifyArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-context-preprocess-query-source-identify/^3.0.0/components/ActorContextPreprocessQuerySourceIdentify.jsonld#IActorContextPreprocessQuerySourceIdentifyArgs_default_invalidator',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__3_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus\n});\nconst urn_comunica_default_http_invalidate_mediators_main = new (require('@comunica/mediator-all').MediatorAll)({\n 'name': 'urn:comunica:default:http-invalidate/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__3_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_rdf_update_quads_hypermedia__3_0_0_components_ActorRdfUpdateQuadsHypermedia_jsonld_IActorRdfUpdateQuadsHypermediaArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-update-quads-hypermedia/^3.0.0/components/ActorRdfUpdateQuadsHypermedia.jsonld#IActorRdfUpdateQuadsHypermediaArgs_default_invalidator',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__3_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__3_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-result-serialize-sparql-json/^3.0.0/components/ActionObserverHttp.jsonld#IActionObserverHttpArgs_default_invalidator',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__3_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__3_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-result-serialize-stats/^3.0.0/components/ActionObserverHttp.jsonld#IActionObserverHttpArgs_default_invalidator',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__3_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus\n});\nconst urn_comunica_default_merge_bindings_context_mediators_main = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n 'field': 'mergeHandlers',\n 'name': 'urn:comunica:default:merge-bindings-context/mediators#main',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_merge_bindings_context__3_0_0_components_ActorMergeBindingsContext_jsonld_ActorMergeBindingsContext_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_single = new (require('@comunica/actor-rdf-join-inner-single').ActorRdfJoinSingle)({\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-single',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_empty = new (require('@comunica/actor-rdf-join-inner-multi-empty').ActorRdfJoinMultiEmpty)({\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-multi-empty',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_bind_source = new (require('@comunica/actor-rdf-join-inner-multi-bind-source').ActorRdfJoinMultiBindSource)({\n 'selectivityModifier': 0.0001,\n 'blockSize': 16,\n 'mediatorJoinEntriesSort': urn_comunica_default_rdf_join_entries_sort_mediators_main,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-multi-bind-source',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_hash = new (require('@comunica/actor-rdf-join-inner-hash').ActorRdfJoinHash)({\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-hash',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_symmetric_hash = new (require('@comunica/actor-rdf-join-inner-symmetrichash').ActorRdfJoinSymmetricHash)({\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-symmetric-hash',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_nested_loop = new (require('@comunica/actor-rdf-join-inner-nestedloop').ActorRdfJoinNestedLoop)({\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-nested-loop',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_minus_hash = new (require('@comunica/actor-rdf-join-minus-hash').ActorRdfJoinMinusHash)({\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#minus-hash',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_minus_hash_undef = new (require('@comunica/actor-rdf-join-minus-hash-undef').ActorRdfJoinMinusHashUndef)({\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#minus-hash-undef',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_optional_hash_def_nonblocking = new (require('@comunica/actor-rdf-join-optional-hash').ActorRdfJoinOptionalHash)({\n 'canHandleUndefs': false,\n 'blocking': false,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#optional-hash-def-nonblocking',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_optional_hash_def_blocking = new (require('@comunica/actor-rdf-join-optional-hash').ActorRdfJoinOptionalHash)({\n 'canHandleUndefs': false,\n 'blocking': true,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#optional-hash-def-blocking',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_optional_hash_undef_nonblocking = new (require('@comunica/actor-rdf-join-optional-hash').ActorRdfJoinOptionalHash)({\n 'canHandleUndefs': true,\n 'blocking': false,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#optional-hash-undef-nonblocking',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_optional_hash_undef_blocking = new (require('@comunica/actor-rdf-join-optional-hash').ActorRdfJoinOptionalHash)({\n 'canHandleUndefs': true,\n 'blocking': true,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#optional-hash-undef-blocking',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_optional_nested_loop = new (require('@comunica/actor-rdf-join-optional-nestedloop').ActorRdfJoinOptionalNestedLoop)({\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#optional-nested-loop',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_dereference_rdf_actors_parse = new (require('@comunica/actor-dereference-rdf-parse').ActorDereferenceRdfParse)({\n 'mediatorDereference': urn_comunica_default_dereference_mediators_main,\n 'mediatorParse': urn_comunica_default_rdf_parse_mediators_parse,\n 'mediatorParseMediatypes': urn_comunica_default_rdf_parse_mediators_mediaType,\n 'mediaMappings': {\"htm\":\"text/html\",\"html\":\"text/html\",\"json\":\"application/json\",\"jsonld\":\"application/ld+json\",\"n3\":\"text/n3\",\"nq\":\"application/n-quads\",\"nquads\":\"application/n-quads\",\"nt\":\"application/n-triples\",\"ntriples\":\"application/n-triples\",\"owl\":\"application/rdf+xml\",\"rdf\":\"application/rdf+xml\",\"rdfxml\":\"application/rdf+xml\",\"shaclc\":\"text/shaclc\",\"shaclce\":\"text/shaclc-ext\",\"shc\":\"text/shaclc\",\"shce\":\"text/shaclc-ext\",\"svg\":\"image/svg+xml\",\"svgz\":\"image/svg+xml\",\"trig\":\"application/trig\",\"ttl\":\"text/turtle\",\"turtle\":\"text/turtle\",\"xht\":\"application/xhtml+xml\",\"xhtml\":\"application/xhtml+xml\",\"xml\":\"application/xml\"},\n 'name': 'urn:comunica:default:dereference-rdf/actors#parse',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference_rdf__3_0_0_components_ActorDereferenceRdf_jsonld_ActorDereferenceRdf_default_bus\n});\nconst urn_comunica_default_rdf_parse_html_actors_script = new (require('@comunica/actor-rdf-parse-html-script').ActorRdfParseHtmlScript)({\n 'mediatorRdfParseMediatypes': urn_comunica_default_rdf_parse_mediators_mediaType,\n 'mediatorRdfParseHandle': urn_comunica_default_rdf_parse_mediators_parse,\n 'name': 'urn:comunica:default:rdf-parse-html/actors#script',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__3_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_rdf = new (require('@comunica/actor-query-result-serialize-rdf').ActorQueryResultSerializeRdf)({\n 'mediatorRdfSerialize': urn_comunica_default_rdf_serialize_mediators_serialize,\n 'mediatorMediaTypeCombiner': urn_comunica_default_rdf_serialize_mediators_mediaType,\n 'mediatorMediaTypeFormatCombiner': urn_comunica_default_rdf_serialize_mediators_mediaTypeFormat,\n 'name': 'urn:comunica:default:query-result-serialize/actors#rdf',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_http_actors_wayback = new (require('@comunica/actor-http-wayback').ActorHttpWayback)({\n 'mediatorHttp': urn_comunica_default_http_mediators_no_fallback,\n 'name': 'urn:comunica:default:http/actors#wayback',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_fallback_bus\n});\nconst urn_comunica_default_rdf_parse_actors_jsonld = new (require('@comunica/actor-rdf-parse-jsonld').ActorRdfParseJsonLd)({\n 'mediatorHttp': urn_comunica_default_http_mediators_main,\n 'mediaTypePriorities': {\"application/json\":0.15,\"application/ld+json\":1},\n 'mediaTypeFormats': {\"application/json\":\"http://www.w3.org/ns/formats/JSON-LD\",\"application/ld+json\":\"http://www.w3.org/ns/formats/JSON-LD\"},\n 'priorityScale': 0.9,\n 'name': 'urn:comunica:default:rdf-parse/actors#jsonld',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__3_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_update_hypermedia_actors_patch_sparql_update = new (require('@comunica/actor-rdf-update-hypermedia-patch-sparql-update').ActorRdfUpdateHypermediaPatchSparqlUpdate)({\n 'mediatorHttp': urn_comunica_default_http_mediators_main,\n 'name': 'urn:comunica:default:rdf-update-hypermedia/actors#patch-sparql-update',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__3_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus\n});\nconst urn_comunica_default_rdf_update_hypermedia_actors_put_ldp = new (require('@comunica/actor-rdf-update-hypermedia-put-ldp').ActorRdfUpdateHypermediaPutLdp)({\n 'mediatorHttp': urn_comunica_default_http_mediators_main,\n 'mediatorRdfSerializeMediatypes': urn_comunica_default_rdf_serialize_mediators_mediaType,\n 'mediatorRdfSerialize': urn_comunica_default_rdf_serialize_mediators_serialize,\n 'name': 'urn:comunica:default:rdf-update-hypermedia/actors#put-ldp',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__3_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus\n});\nconst urn_comunica_default_rdf_update_hypermedia_actors_sparql = new (require('@comunica/actor-rdf-update-hypermedia-sparql').ActorRdfUpdateHypermediaSparql)({\n 'mediatorHttp': urn_comunica_default_http_mediators_main,\n 'checkUrlSuffixSparql': true,\n 'checkUrlSuffixUpdate': true,\n 'name': 'urn:comunica:default:rdf-update-hypermedia/actors#sparql',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__3_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus\n});\nconst urn_comunica_default_query_operation_actors_ask = new (require('@comunica/actor-query-operation-ask').ActorQueryOperationAsk)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#ask',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_bgp = new (require('@comunica/actor-query-operation-bgp-join').ActorQueryOperationBgpJoin)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#bgp',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_construct = new (require('@comunica/actor-query-operation-construct').ActorQueryOperationConstruct)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#construct',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_distinct = new (require('@comunica/actor-query-operation-distinct-hash').ActorQueryOperationDistinctHash)({\n 'mediatorHashBindings': urn_comunica_default_hash_bindings_mediators_main,\n 'mediatorHashQuads': urn_comunica_default_hash_quads_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#distinct',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_from = new (require('@comunica/actor-query-operation-from-quad').ActorQueryOperationFromQuad)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#from',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_project = new (require('@comunica/actor-query-operation-project').ActorQueryOperationProject)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#project',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_reduced = new (require('@comunica/actor-query-operation-reduced-hash').ActorQueryOperationReducedHash)({\n 'mediatorHashBindings': urn_comunica_default_hash_bindings_mediators_main,\n 'cacheSize': 100,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#reduced',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_slice = new (require('@comunica/actor-query-operation-slice').ActorQueryOperationSlice)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#slice',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_union = new (require('@comunica/actor-query-operation-union').ActorQueryOperationUnion)({\n 'mediatorRdfMetadataAccumulate': urn_comunica_default_rdf_metadata_accumulate_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#union',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_path_alt = new (require('@comunica/actor-query-operation-path-alt').ActorQueryOperationPathAlt)({\n 'mediatorRdfMetadataAccumulate': urn_comunica_default_rdf_metadata_accumulate_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#path-alt',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_path_inv = new (require('@comunica/actor-query-operation-path-inv').ActorQueryOperationPathInv)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#path-inv',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_path_link = new (require('@comunica/actor-query-operation-path-link').ActorQueryOperationPathLink)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#path-link',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_path_nps = new (require('@comunica/actor-query-operation-path-nps').ActorQueryOperationPathNps)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#path-nps',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_update_clear = new (require('@comunica/actor-query-operation-update-clear').ActorQueryOperationClear)({\n 'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#update-clear',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_update_composite = new (require('@comunica/actor-query-operation-update-compositeupdate').ActorQueryOperationUpdateCompositeUpdate)({\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#update-composite',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_update_create = new (require('@comunica/actor-query-operation-update-create').ActorQueryOperationCreate)({\n 'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#update-create',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_update_drop = new (require('@comunica/actor-query-operation-update-drop').ActorQueryOperationDrop)({\n 'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#update-drop',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_update_load = new (require('@comunica/actor-query-operation-update-load').ActorQueryOperationLoad)({\n 'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n 'mediatorQuerySourceIdentify': urn_comunica_default_query_source_identify_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#update-load',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_join = new (require('@comunica/actor-query-operation-join').ActorQueryOperationJoin)({\n 'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#join',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_minus = new (require('@comunica/actor-query-operation-minus').ActorQueryOperationMinus)({\n 'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#minus',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_path_seq = new (require('@comunica/actor-query-operation-path-seq').ActorQueryOperationPathSeq)({\n 'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#path-seq',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_smallest = new (require('@comunica/actor-rdf-join-inner-multi-smallest').ActorRdfJoinMultiSmallest)({\n 'mediatorJoinEntriesSort': urn_comunica_default_rdf_join_entries_sort_mediators_main,\n 'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-multi-smallest',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_smallest_filter_bindings = new (require('@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings').ActorRdfJoinMultiSmallestFilterBindings)({\n 'selectivityModifier': 0.0001,\n 'blockSize': 64,\n 'mediatorJoinEntriesSort': urn_comunica_default_rdf_join_entries_sort_mediators_main,\n 'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-multi-smallest-filter-bindings',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_optimize_query_operation_actors_filter_pushdown = new (require('@comunica/actor-optimize-query-operation-filter-pushdown').ActorOptimizeQueryOperationFilterPushdown)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#filter-pushdown',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n 'beforeActors': [\n urn_comunica_default_optimize_query_operation_actors_group_sources\n]\n});\nconst urn_comunica_default_dereference_actors_http = new (require('@comunica/actor-dereference-http').ActorDereferenceHttp)({\n 'mediatorHttp': urn_comunica_default_http_mediators_main,\n 'maxAcceptHeaderLength': 1024,\n 'maxAcceptHeaderLengthBrowser': 128,\n 'name': 'urn:comunica:default:dereference/actors#http',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__3_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus,\n 'beforeActors': [\n urn_comunica_default_dereference_actors_fallback\n]\n});\nconst urn_comunica_default_http_actors_proxy = new (require('@comunica/actor-http-proxy').ActorHttpProxy)({\n 'mediatorHttp': urn_comunica_default_http_mediators_main,\n 'name': 'urn:comunica:default:http/actors#proxy',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus,\n 'beforeActors': [\n urn_comunica_default_http_actors_fetch\n]\n});\nconst urn_comunica_default_context_preprocess_actors_query_source_identify = new (require('@comunica/actor-context-preprocess-query-source-identify').ActorContextPreprocessQuerySourceIdentify)({\n 'cacheSize': 100,\n 'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_context_preprocess_query_source_identify__3_0_0_components_ActorContextPreprocessQuerySourceIdentify_jsonld_IActorContextPreprocessQuerySourceIdentifyArgs_default_invalidator,\n 'mediatorQuerySourceIdentify': urn_comunica_default_query_source_identify_mediators_main,\n 'mediatorContextPreprocess': urn_comunica_default_context_preprocess_mediators_main,\n 'name': 'urn:comunica:default:context-preprocess/actors#query-source-identify',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__3_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus,\n 'beforeActors': [\n urn_comunica_default_context_preprocess_actors_query_source_skolemize\n]\n});\nconst urn_comunica_default_init_actors_query = new (require('@comunica/actor-init-query').ActorInitQuery)({\n 'mediatorQueryProcess': urn_comunica_default_query_process_mediators_main,\n 'mediatorQueryResultSerialize': urn_comunica_default_query_result_serialize_mediators_serialize,\n 'mediatorQueryResultSerializeMediaTypeCombiner': urn_comunica_default_query_result_serialize_mediators_mediaType,\n 'mediatorQueryResultSerializeMediaTypeFormatCombiner': urn_comunica_default_query_result_serialize_mediators_mediaTypeFormat,\n 'mediatorHttpInvalidate': urn_comunica_default_http_invalidate_mediators_main,\n 'defaultQueryInputFormat': 'sparql',\n 'allowNoSources': false,\n 'name': 'urn:comunica:default:init/actors#query',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_init__3_0_0_components_ActorInit_jsonld_ActorInit_default_bus\n});\nconst urn_comunica_default_rdf_update_quads_actors_hypermedia = new (require('@comunica/actor-rdf-update-quads-hypermedia').ActorRdfUpdateQuadsHypermedia)({\n 'cacheSize': 100,\n 'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_rdf_update_quads_hypermedia__3_0_0_components_ActorRdfUpdateQuadsHypermedia_jsonld_IActorRdfUpdateQuadsHypermediaArgs_default_invalidator,\n 'mediatorDereferenceRdf': urn_comunica_default_dereference_rdf_mediators_main,\n 'mediatorMetadata': urn_comunica_default_rdf_metadata_mediators_main,\n 'mediatorMetadataExtract': urn_comunica_default_rdf_metadata_extract_mediators_main,\n 'mediatorRdfUpdateHypermedia': urn_comunica_default_rdf_update_hypermedia_mediators_main,\n 'name': 'urn:comunica:default:rdf-update-quads/actors#hypermedia',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__3_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__3_0_0_components_ActorQueryResultSerializeSparqlJson_jsonld_ActorQueryResultSerializeSparqlJson_default_observer = new (require('@comunica/actor-query-result-serialize-sparql-json').ActionObserverHttp)({\n 'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__3_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator,\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-result-serialize-sparql-json/^3.0.0/components/ActorQueryResultSerializeSparqlJson.jsonld#ActorQueryResultSerializeSparqlJson_default_observer',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__3_0_0_components_ActorQueryResultSerializeStats_jsonld_ActorQueryResultSerializeStats_default_observer = new (require('@comunica/actor-query-result-serialize-stats').ActionObserverHttp)({\n 'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__3_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator,\n 'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-result-serialize-stats/^3.0.0/components/ActorQueryResultSerializeStats.jsonld#ActorQueryResultSerializeStats_default_observer',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__3_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus\n});\nconst urn_comunica_default_query_source_identify_hypermedia_actors_qpf = new (require('@comunica/actor-query-source-identify-hypermedia-qpf').ActorQuerySourceIdentifyHypermediaQpf)({\n 'mediatorMetadata': urn_comunica_default_rdf_metadata_mediators_main,\n 'mediatorMetadataExtract': urn_comunica_default_rdf_metadata_extract_mediators_main,\n 'mediatorDereferenceRdf': urn_comunica_default_dereference_rdf_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'subjectUri': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject',\n 'predicateUri': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate',\n 'objectUri': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#object',\n 'graphUri': 'http://www.w3.org/ns/sparql-service-description#graph',\n 'name': 'urn:comunica:default:query-source-identify-hypermedia/actors#qpf',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__3_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus\n});\nconst urn_comunica_default_rdf_resolve_quad_pattern_actors_sparql = new (require('@comunica/actor-query-source-identify-hypermedia-sparql').ActorQuerySourceIdentifyHypermediaSparql)({\n 'mediatorHttp': urn_comunica_default_http_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'checkUrlSuffix': true,\n 'forceHttpGet': false,\n 'cacheSize': 1024,\n 'bindMethod': 'values',\n 'countTimeout': 3000,\n 'name': 'urn:comunica:default:rdf-resolve-quad-pattern/actors#sparql',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__3_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus\n});\nconst urn_comunica_default_query_source_identify_hypermedia_actors_none = new (require('@comunica/actor-query-source-identify-hypermedia-none').ActorQuerySourceIdentifyHypermediaNone)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'name': 'urn:comunica:default:query-source-identify-hypermedia/actors#none',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__3_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus\n});\nconst urn_comunica_default_query_operation_actors_extend = new (require('@comunica/actor-query-operation-extend').ActorQueryOperationExtend)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#extend',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_filter = new (require('@comunica/actor-query-operation-filter').ActorQueryOperationFilter)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#filter',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_group = new (require('@comunica/actor-query-operation-group').ActorQueryOperationGroup)({\n 'mediatorHashBindings': urn_comunica_default_hash_bindings_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#group',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_leftjoin = new (require('@comunica/actor-query-operation-leftjoin').ActorQueryOperationLeftJoin)({\n 'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#leftjoin',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_nop = new (require('@comunica/actor-query-operation-nop').ActorQueryOperationNop)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#nop',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_orderby = new (require('@comunica/actor-query-operation-orderby').ActorQueryOperationOrderBy)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#orderby',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_service = new (require('@comunica/actor-query-operation-service').ActorQueryOperationService)({\n 'forceSparqlEndpoint': false,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQuerySourceIdentify': urn_comunica_default_query_source_identify_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#service',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_values = new (require('@comunica/actor-query-operation-values').ActorQueryOperationValues)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#values',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_path_one_or_more = new (require('@comunica/actor-query-operation-path-one-or-more').ActorQueryOperationPathOneOrMore)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#path-one-or-more',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_path_zero_or_more = new (require('@comunica/actor-query-operation-path-zero-or-more').ActorQueryOperationPathZeroOrMore)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#path-zero-or-more',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_path_zero_or_one = new (require('@comunica/actor-query-operation-path-zero-or-one').ActorQueryOperationPathZeroOrOne)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#path-zero-or-one',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_operation_actors_update_delete_insert = new (require('@comunica/actor-query-operation-update-deleteinsert').ActorQueryOperationUpdateDeleteInsert)({\n 'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'name': 'urn:comunica:default:query-operation/actors#update-delete-insert',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__3_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_process_actors_sequential = new (require('@comunica/actor-query-process-sequential').ActorQueryProcessSequential)({\n 'mediatorContextPreprocess': urn_comunica_default_context_preprocess_mediators_main,\n 'mediatorQueryParse': urn_comunica_default_query_parse_mediators_main,\n 'mediatorOptimizeQueryOperation': urn_comunica_default_optimize_query_operation_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'name': 'urn:comunica:default:query-process/actors#sequential',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__3_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus\n});\nconst urn_comunica_default_query_source_identify_actors_hypermedia = new (require('@comunica/actor-query-source-identify-hypermedia').ActorQuerySourceIdentifyHypermedia)({\n 'cacheSize': 100,\n 'maxIterators': 64,\n 'aggregateTraversalStore': true,\n 'mediatorDereferenceRdf': urn_comunica_default_dereference_rdf_mediators_main,\n 'mediatorMetadata': urn_comunica_default_rdf_metadata_mediators_main,\n 'mediatorMetadataExtract': urn_comunica_default_rdf_metadata_extract_mediators_main,\n 'mediatorMetadataAccumulate': urn_comunica_default_rdf_metadata_accumulate_mediators_main,\n 'mediatorQuerySourceIdentifyHypermedia': urn_comunica_default_query_source_identify_hypermedia_mediators_main,\n 'mediatorRdfResolveHypermediaLinks': urn_comunica_default_rdf_resolve_hypermedia_links_mediators_main,\n 'mediatorRdfResolveHypermediaLinksQueue': urn_comunica_default_rdf_resolve_hypermedia_links_queue_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'name': 'urn:comunica:default:query-source-identify/actors#hypermedia',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__3_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_none = new (require('@comunica/actor-rdf-join-inner-none').ActorRdfJoinNone)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-none',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_bind = new (require('@comunica/actor-rdf-join-inner-multi-bind').ActorRdfJoinMultiBind)({\n 'bindOrder': 'depth-first',\n 'selectivityModifier': 0.0001,\n 'minMaxCardinalityRatio': 50,\n 'mediatorJoinEntriesSort': urn_comunica_default_rdf_join_entries_sort_mediators_main,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#inner-multi-bind',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_rdf_join_actors_optional_bind = new (require('@comunica/actor-rdf-join-optional-bind').ActorRdfJoinOptionalBind)({\n 'bindOrder': 'depth-first',\n 'selectivityModifier': 0.000001,\n 'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n 'name': 'urn:comunica:default:rdf-join/actors#optional-bind',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__3_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_sparql_json = new (require('@comunica/actor-query-result-serialize-sparql-json').ActorQueryResultSerializeSparqlJson)({\n 'emitMetadata': true,\n 'httpObserver': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__3_0_0_components_ActorQueryResultSerializeSparqlJson_jsonld_ActorQueryResultSerializeSparqlJson_default_observer,\n 'mediaTypePriorities': {\"application/sparql-results+json\":0.8},\n 'mediaTypeFormats': {\"application/sparql-results+json\":\"http://www.w3.org/ns/formats/SPARQL_Results_JSON\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#sparql-json',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_stats = new (require('@comunica/actor-query-result-serialize-stats').ActorQueryResultSerializeStats)({\n 'httpObserver': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__3_0_0_components_ActorQueryResultSerializeStats_jsonld_ActorQueryResultSerializeStats_default_observer,\n 'mediaTypePriorities': {\"stats\":0.5},\n 'mediaTypeFormats': {\"stats\":\"https://comunica.linkeddatafragments.org/#results_stats\"},\n 'name': 'urn:comunica:default:query-result-serialize/actors#stats',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__3_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_process_actors_explain_parsed = new (require('@comunica/actor-query-process-explain-parsed').ActorQueryProcessExplainParsed)({\n 'queryProcessor': urn_comunica_default_query_process_actors_sequential,\n 'name': 'urn:comunica:default:query-process/actors#explain-parsed',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__3_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus\n});\nconst urn_comunica_default_query_process_actors_explain_logical = new (require('@comunica/actor-query-process-explain-logical').ActorQueryProcessExplainLogical)({\n 'queryProcessor': urn_comunica_default_query_process_actors_sequential,\n 'name': 'urn:comunica:default:query-process/actors#explain-logical',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__3_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus\n});\nconst urn_comunica_default_query_process_actors_explain_physical = new (require('@comunica/actor-query-process-explain-physical').ActorQueryProcessExplainPhysical)({\n 'queryProcessor': urn_comunica_default_query_process_actors_sequential,\n 'name': 'urn:comunica:default:query-process/actors#explain-physical',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__3_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus\n});\nconst urn_comunica_default_optimize_query_operation_actors_prune_empty_source_operations = new (require('@comunica/actor-optimize-query-operation-prune-empty-source-operations').ActorOptimizeQueryOperationPruneEmptySourceOperations)({\n 'useAskIfSupported': false,\n 'name': 'urn:comunica:default:optimize-query-operation/actors#prune-empty-source-operations',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n 'beforeActors': [\n urn_comunica_default_optimize_query_operation_actors_filter_pushdown\n]\n});\nconst urn_comunica_default_query_source_identify_actors_rdfjs = new (require('@comunica/actor-query-source-identify-rdfjs').ActorQuerySourceIdentifyRdfJs)({\n 'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n 'name': 'urn:comunica:default:query-source-identify/actors#rdfjs',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__3_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus,\n 'beforeActors': [\n urn_comunica_default_query_source_identify_actors_hypermedia\n]\n});\nconst urn_comunica_default_query_source_identify_actors_serialized = new (require('@comunica/actor-query-source-identify-serialized').ActorQuerySourceIdentifySerialized)({\n 'mediatorRdfParse': urn_comunica_default_rdf_parse_mediators_parse,\n 'mediatorQuerySourceIdentify': urn_comunica_default_query_source_identify_mediators_main,\n 'name': 'urn:comunica:default:query-source-identify/actors#serialized',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__3_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus,\n 'beforeActors': [\n urn_comunica_default_query_source_identify_actors_hypermedia\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_join_connected = new (require('@comunica/actor-optimize-query-operation-join-connected').ActorOptimizeQueryOperationJoinConnected)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#join-connected',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n 'beforeActors': [\n urn_comunica_default_optimize_query_operation_actors_prune_empty_source_operations\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_bgp_to_join = new (require('@comunica/actor-optimize-query-operation-bgp-to-join').ActorOptimizeQueryOperationBgpToJoin)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#bgp-to-join',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n 'beforeActors': [\n urn_comunica_default_optimize_query_operation_actors_join_connected\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_join_bgp = new (require('@comunica/actor-optimize-query-operation-join-bgp').ActorOptimizeQueryOperationJoinBgp)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#join-bgp',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n 'beforeActors': [\n urn_comunica_default_optimize_query_operation_actors_bgp_to_join\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_assign_sources_exhaustive = new (require('@comunica/actor-optimize-query-operation-assign-sources-exhaustive').ActorOptimizeQueryOperationAssignSourcesExhaustive)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#assign-sources-exhaustive',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n 'beforeActors': [\n urn_comunica_default_optimize_query_operation_actors_join_bgp\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_describe_to_constructs_subject = new (require('@comunica/actor-optimize-query-operation-describe-to-constructs-subject').ActorOptimizeQueryOperationDescribeToConstructsSubject)({\n 'name': 'urn:comunica:default:optimize-query-operation/actors#describe-to-constructs-subject',\n 'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__3_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n 'beforeActors': [\n urn_comunica_default_optimize_query_operation_actors_assign_sources_exhaustive\n]\n});\nconst urn_comunica_default_Runner = (https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_init__3_0_0_components_ActorInit_jsonld_ActorInit_default_bus, [\n urn_comunica_default_context_preprocess_actors_convert_shortcuts,\n urn_comunica_default_context_preprocess_actors_set_defaults,\n urn_comunica_default_context_preprocess_actors_source_to_destination,\n urn_comunica_default_context_preprocess_actors_query_source_identify,\n urn_comunica_default_context_preprocess_actors_query_source_skolemize,\n urn_comunica_default_hash_bindings_actors_sha1,\n urn_comunica_default_hash_quads_actors_sha1,\n urn_comunica_default_init_actors_query,\n urn_comunica_default_optimize_query_operation_actors_rewrite_copy,\n urn_comunica_default_optimize_query_operation_actors_rewrite_move,\n urn_comunica_default_optimize_query_operation_actors_rewrite_add,\n urn_comunica_default_optimize_query_operation_actors_describe_to_constructs_subject,\n urn_comunica_default_optimize_query_operation_actors_assign_sources_exhaustive,\n urn_comunica_default_optimize_query_operation_actors_join_bgp,\n urn_comunica_default_optimize_query_operation_actors_bgp_to_join,\n urn_comunica_default_optimize_query_operation_actors_join_connected,\n urn_comunica_default_optimize_query_operation_actors_prune_empty_source_operations,\n urn_comunica_default_optimize_query_operation_actors_filter_pushdown,\n urn_comunica_default_optimize_query_operation_actors_group_sources,\n urn_comunica_default_optimize_query_operation_actors_construct_distinct,\n urn_comunica_default_query_parse_actors_sparql,\n urn_comunica_default_query_parse_actors_graphql,\n urn_comunica_default_query_result_serialize_actors_json,\n urn_comunica_default_query_result_serialize_actors_rdf,\n urn_comunica_default_query_result_serialize_actors_simple,\n urn_comunica_default_query_result_serialize_actors_csv,\n urn_comunica_default_query_result_serialize_actors_sparql_json,\n urn_comunica_default_query_result_serialize_actors_sparql_tsv,\n urn_comunica_default_query_result_serialize_actors_sparql_xml,\n urn_comunica_default_query_result_serialize_actors_stats,\n urn_comunica_default_query_result_serialize_actors_table,\n urn_comunica_default_query_result_serialize_actors_tree,\n urn_comunica_default_query_source_identify_hypermedia_actors_qpf,\n urn_comunica_default_rdf_resolve_quad_pattern_actors_sparql,\n urn_comunica_default_query_source_identify_hypermedia_actors_none,\n urn_comunica_default_dereference_actors_http,\n urn_comunica_default_dereference_actors_fallback,\n urn_comunica_default_dereference_rdf_actors_parse,\n urn_comunica_default_rdf_join_entries_sort_actors_cardinality,\n urn_comunica_default_rdf_join_selectivity_actors_variable_counting,\n urn_comunica_default_rdf_metadata_actors_primary_topic,\n urn_comunica_default_rdf_metadata_actors_all,\n urn_comunica_default_rdf_metadata_accumulate_actors_cancontainundefs,\n urn_comunica_default_rdf_metadata_accumulate_actors_cardinality,\n urn_comunica_default_rdf_metadata_accumulate_actors_pagesize,\n urn_comunica_default_rdf_metadata_accumulate_actors_requesttime,\n urn_comunica_default_rdf_metadata_extract_actors_hydra_controls,\n urn_comunica_default_rdf_metadata_extract_actors_hydra_count,\n urn_comunica_default_rdf_metadata_extract_actors_hydra_pagesize,\n urn_comunica_default_rdf_metadata_extract_actors_request_time,\n urn_comunica_default_rdf_metadata_extract_actors_allow_http_methods,\n urn_comunica_default_rdf_metadata_extract_actors_put_accepted,\n urn_comunica_default_rdf_metadata_extract_actors_patch_sparql_update,\n urn_comunica_default_rdf_metadata_extract_actors_sparql_service,\n urn_comunica_default_rdf_parse_actors_n3,\n urn_comunica_default_rdf_parse_actors_jsonld,\n urn_comunica_default_rdf_parse_actors_rdfxml,\n urn_comunica_default_rdf_parse_actors_xmlrdfa,\n urn_comunica_default_rdf_parse_actors_html,\n urn_comunica_default_rdf_parse_actors_shaclc,\n urn_comunica_default_rdf_parse_html_actors_microdata,\n urn_comunica_default_rdf_parse_html_actors_rdfa,\n urn_comunica_default_rdf_parse_html_actors_script,\n urn_comunica_default_rdf_resolve_hypermedia_links_actors_next,\n urn_comunica_default_rdf_resolve_hypermedia_links_queue_actors_fifo,\n urn_comunica_default_rdf_serialize_actors_n3,\n urn_comunica_default_rdf_serialize_actors_jsonld,\n urn_comunica_default_rdf_serialize_actors_shaclc,\n urn_comunica_default_rdf_update_hypermedia_actors_patch_sparql_update,\n urn_comunica_default_rdf_update_hypermedia_actors_put_ldp,\n urn_comunica_default_rdf_update_hypermedia_actors_sparql,\n urn_comunica_default_rdf_update_quads_actors_hypermedia,\n urn_comunica_default_rdf_update_quads_actors_rdfjs_store,\n urn_comunica_default_http_actors_proxy,\n urn_comunica_default_http_actors_fetch,\n urn_comunica_default_http_actors_wayback,\n urn_comunica_default_query_operation_actors_ask,\n urn_comunica_default_query_operation_actors_bgp,\n urn_comunica_default_query_operation_actors_construct,\n urn_comunica_default_query_operation_actors_distinct,\n urn_comunica_default_query_operation_actors_extend,\n urn_comunica_default_query_operation_actors_filter,\n urn_comunica_default_query_operation_actors_from,\n urn_comunica_default_query_operation_actors_group,\n urn_comunica_default_query_operation_actors_join,\n urn_comunica_default_query_operation_actors_leftjoin,\n urn_comunica_default_query_operation_actors_minus,\n urn_comunica_default_query_operation_actors_nop,\n urn_comunica_default_query_operation_actors_orderby,\n urn_comunica_default_query_operation_actors_project,\n urn_comunica_default_query_operation_actors_reduced,\n urn_comunica_default_query_operation_actors_service,\n urn_comunica_default_query_operation_actors_slice,\n urn_comunica_default_query_operation_actors_source,\n urn_comunica_default_query_operation_actors_union,\n urn_comunica_default_query_operation_actors_values,\n urn_comunica_default_query_operation_actors_path_alt,\n urn_comunica_default_query_operation_actors_path_inv,\n urn_comunica_default_query_operation_actors_path_link,\n urn_comunica_default_query_operation_actors_path_nps,\n urn_comunica_default_query_operation_actors_path_one_or_more,\n urn_comunica_default_query_operation_actors_path_seq,\n urn_comunica_default_query_operation_actors_path_zero_or_more,\n urn_comunica_default_query_operation_actors_path_zero_or_one,\n urn_comunica_default_query_operation_actors_update_clear,\n urn_comunica_default_query_operation_actors_update_composite,\n urn_comunica_default_query_operation_actors_update_create,\n urn_comunica_default_query_operation_actors_update_delete_insert,\n urn_comunica_default_query_operation_actors_update_drop,\n urn_comunica_default_query_operation_actors_update_load,\n urn_comunica_default_query_process_actors_sequential,\n urn_comunica_default_query_process_actors_explain_parsed,\n urn_comunica_default_query_process_actors_explain_logical,\n urn_comunica_default_query_process_actors_explain_physical,\n urn_comunica_default_query_source_identify_actors_hypermedia,\n urn_comunica_default_query_source_identify_actors_rdfjs,\n urn_comunica_default_query_source_identify_actors_serialized,\n urn_comunica_default_rdf_join_actors_inner_none,\n urn_comunica_default_rdf_join_actors_inner_single,\n urn_comunica_default_rdf_join_actors_inner_multi_empty,\n urn_comunica_default_rdf_join_actors_inner_multi_bind_source,\n urn_comunica_default_rdf_join_actors_inner_multi_bind,\n urn_comunica_default_rdf_join_actors_inner_hash,\n urn_comunica_default_rdf_join_actors_inner_symmetric_hash,\n urn_comunica_default_rdf_join_actors_inner_nested_loop,\n urn_comunica_default_rdf_join_actors_inner_multi_smallest,\n urn_comunica_default_rdf_join_actors_inner_multi_smallest_filter_bindings,\n urn_comunica_default_rdf_join_actors_minus_hash,\n urn_comunica_default_rdf_join_actors_minus_hash_undef,\n urn_comunica_default_rdf_join_actors_optional_bind,\n urn_comunica_default_rdf_join_actors_optional_hash_def_nonblocking,\n urn_comunica_default_rdf_join_actors_optional_hash_def_blocking,\n urn_comunica_default_rdf_join_actors_optional_hash_undef_nonblocking,\n urn_comunica_default_rdf_join_actors_optional_hash_undef_blocking,\n urn_comunica_default_rdf_join_actors_optional_nested_loop\n]);\nreturn urn_comunica_default_init_actors_query;\n}\n\n","import { QueryEngineBase } from '@comunica/actor-init-query';\nimport type { ActorInitQueryBase } from '@comunica/actor-init-query';\nimport type { IQueryContextCommon } from '@comunica/types';\n\n// eslint-disable-next-line ts/no-require-imports,ts/no-var-requires,import/extensions\nconst engineDefault = require('../engine-default.js');\n\n/**\n * A Comunica SPARQL query engine.\n */\nexport class QueryEngine\n extends QueryEngineBase {\n public constructor(engine: ActorInitQueryBase = engineDefault()) {\n super(engine);\n }\n}\n","/* eslint-disable unicorn/filename-case */\n/* eslint-enable unicorn/filename-case */\nexport * from './QueryEngine';\n","import type { IAction, IActorArgs, IActorOutput, IActorTest, Mediate } from '@comunica/core';\nimport { Actor } from '@comunica/core';\nimport type { IActionContext } from '@comunica/types';\n\n/**\n * An abstract actor that handles media-typed actions.\n *\n * It splits up a action between a 'handle' and a 'mediaTypes' action.\n * A 'mediaTypes' action is used to retrieve the available media types from this actor.\n * A 'handle' action is abstract, and can be implemented to do anything,\n * such as parsing, serializing, etc.\n * @see IActionAbstractMediaTyped\n *\n * @see ActorAbstractMediaTypedFixed\n */\nexport abstract class ActorAbstractMediaTyped\n extends Actor, IActorTestAbstractMediaTyped, IActorOutputAbstractMediaTyped> {\n public constructor(args: IActorArgsMediaTyped) {\n super(args);\n }\n\n public async run(action: IActionAbstractMediaTyped): Promise> {\n if ('handle' in action) {\n const typedAction: IActionAbstractMediaTypedHandle = action;\n return { handle: await this.runHandle(typedAction.handle, typedAction.handleMediaType, action.context) };\n }\n if ('mediaTypes' in action) {\n return { mediaTypes: await this.getMediaTypes(action.context) };\n }\n if ('mediaTypeFormats' in action) {\n return { mediaTypeFormats: await this.getMediaTypeFormats(action.context) };\n }\n throw new Error('Either a handle, mediaTypes or mediaTypeFormats action needs to be provided');\n }\n\n public async test(action: IActionAbstractMediaTyped): Promise> {\n if ('handle' in action) {\n const typedAction: IActionAbstractMediaTypedHandle = action;\n return { handle: await this.testHandle(typedAction.handle, typedAction.handleMediaType, action.context) };\n }\n if ('mediaTypes' in action) {\n return { mediaTypes: await this.testMediaType(action.context) };\n }\n if ('mediaTypeFormats' in action) {\n return { mediaTypeFormats: await this.testMediaTypeFormats(action.context) };\n }\n throw new Error('Either a handle, mediaTypes or mediaTypeFormats action needs to be provided');\n }\n\n /**\n * Check if this actor can run the given handle action,\n * without actually running it.\n *\n * @param {HI} action The handle action to test.\n * @param {string} mediaType The media type to test.\n * @param {ActionContext} context An optional context.\n * @return {Promise} A promise that resolves to the handle test result.\n */\n public abstract testHandle(action: HI, mediaType: string | undefined, context: IActionContext): Promise;\n\n /**\n * Run the given handle action on this actor.\n *\n * @param {HI} action The handle action to run.\n * @param {string} mediaType The media type to run with.\n * @param {ActionContext} context An optional context.\n * @return {Promise} A promise that resolves to the handle run result.\n */\n public abstract runHandle(action: HI, mediaType: string | undefined, context: IActionContext): Promise;\n\n /**\n * Check if this actor can emit its media types.\n *\n * @param {ActionContext} context An optional context.\n * @return {Promise} A promise that resolves to the media type run result.\n */\n public abstract testMediaType(context: IActionContext): Promise;\n\n /**\n * Get the media type of this given actor.\n *\n * @param {ActionContext} context An optional context.\n * @return {Promise<{[id: string]: number}>} A promise that resolves to the media types.\n */\n public abstract getMediaTypes(context: IActionContext): Promise>;\n\n /**\n * Check if this actor can emit its media type formats.\n *\n * @param {ActionContext} context An optional context.\n * @return {Promise} A promise that resolves to the media type run result.\n */\n public abstract testMediaTypeFormats(context: IActionContext): Promise;\n\n /**\n * Get the media type formats of this given actor.\n *\n * @param {ActionContext} context An optional context.\n * @return {Promise<{[id: string]: string}>} A promise that resolves to the media types.\n */\n public abstract getMediaTypeFormats(context: IActionContext): Promise>;\n}\n\nexport interface IActorArgsMediaTyped extends IActorArgs<\n IActionAbstractMediaTyped,\nIActorTestAbstractMediaTyped,\nIActorOutputAbstractMediaTyped\n> {}\n\nexport type IActionAbstractMediaTyped = IActionAbstractMediaTypedHandle | IActionAbstractMediaTypedMediaTypes\n| IActionAbstractMediaTypedMediaTypeFormats;\nexport interface IActionAbstractMediaTypedHandle extends IAction {\n /**\n * The handle action input.\n */\n handle: HI;\n /**\n * The handle media type that should be used when 'handle' is truthy.\n */\n handleMediaType?: string;\n}\n\nexport interface IActionAbstractMediaTypedMediaTypes extends IAction {\n /**\n * True if media types should be retrieved.\n */\n mediaTypes: boolean;\n}\n\nexport interface IActionAbstractMediaTypedMediaTypeFormats extends IAction {\n /**\n * True if media type formats should be retrieved.\n */\n mediaTypeFormats: boolean;\n}\n\n/**\n * Either 'handle', or 'mediaTypes' or 'mediaTypeFormats' must be truthy.\n * Groups may not be truthy at the same time.\n */\nexport type IActorTestAbstractMediaTyped = IActorTestAbstractMediaTypedHandle\n| IActorTestAbstractMediaTypedMediaTypes | IActorTestAbstractMediaTypedMediaTypeFormats;\nexport interface IActorTestAbstractMediaTypedHandle extends IActorTest {\n /**\n * The handle test output.\n */\n handle: HT;\n}\nexport interface IActorTestAbstractMediaTypedMediaTypes extends IActorTest {\n /**\n * True if media types can be retrieved.\n */\n mediaTypes: boolean;\n}\nexport interface IActorTestAbstractMediaTypedMediaTypeFormats extends IActorTest {\n /**\n * True if media type formats can be retrieved.\n */\n mediaTypeFormats?: boolean;\n}\n\n/**\n * Either 'handle', or 'mediaTypes' or 'mediaTypeFormats' must be truthy.\n * Groups may not be truthy at the same time.\n */\nexport type IActorOutputAbstractMediaTyped = IActorOutputAbstractMediaTypedHandle\n| IActorOutputAbstractMediaTypedMediaTypes | IActorOutputAbstractMediaTypedMediaTypeFormats;\nexport interface IActorOutputAbstractMediaTypedHandle extends IActorOutput {\n /**\n * The handle action output.\n */\n handle: HO;\n}\nexport interface IActorOutputAbstractMediaTypedMediaTypes extends IActorOutput {\n /**\n * An object containing media types as keys,\n * and preferences as values, with values ranging from 0 to 1.\n */\n mediaTypes: Record;\n}\nexport interface IActorOutputAbstractMediaTypedMediaTypeFormats extends IActorOutput {\n /**\n * An object containing media types as keys,\n * and format IRIs as values.\n */\n mediaTypeFormats: Record;\n}\n\nexport type MediateMediaTypes = Mediate<\nIActionAbstractMediaTypedMediaTypes,\nIActorOutputAbstractMediaTypedMediaTypes,\nIActorTestAbstractMediaTypedMediaTypes\n>;\n\nexport type MediateMediaTyped = Mediate<\nIActionAbstractMediaTypedHandle,\nIActorOutputAbstractMediaTypedHandle,\nIActorTestAbstractMediaTypedHandle\n>;\n","import type { IActionContext } from '@comunica/types';\nimport type { IActorArgsMediaTyped } from './ActorAbstractMediaTyped';\nimport { ActorAbstractMediaTyped } from './ActorAbstractMediaTyped';\n\nexport abstract class ActorAbstractMediaTypedFixed extends ActorAbstractMediaTyped {\n public readonly mediaTypePriorities: Record;\n public readonly mediaTypeFormats: Record;\n public readonly priorityScale: number;\n\n public constructor(args: IActorArgsMediaTypedFixed) {\n super(args);\n const scale: number = this.priorityScale || this.priorityScale === 0 ? this.priorityScale : 1;\n if (this.mediaTypePriorities) {\n for (const [ _index, [ key, value ]] of Object.entries(this.mediaTypePriorities).entries()) {\n this.mediaTypePriorities[key] = scale * value;\n }\n }\n this.mediaTypePriorities = Object.freeze(this.mediaTypePriorities);\n this.mediaTypeFormats = Object.freeze(this.mediaTypeFormats);\n }\n\n public async testHandle(action: HI, mediaType: string | undefined, context: IActionContext): Promise {\n if (!mediaType || !(mediaType in this.mediaTypePriorities)) {\n throw new Error(`Unrecognized media type: ${mediaType}`);\n }\n return await this.testHandleChecked(action, context);\n }\n\n /**\n * Check to see if this actor can handle the given action.\n * The media type has already been checked before this is called.\n *\n * @param {ActionContext} context An optional context.\n * @param {HI} action The action to test.\n */\n public abstract testHandleChecked(action: HI, context: IActionContext): Promise;\n\n public async testMediaType(_context: IActionContext): Promise {\n return true;\n }\n\n public async getMediaTypes(_context: IActionContext): Promise> {\n return this.mediaTypePriorities;\n }\n\n public async testMediaTypeFormats(_context: IActionContext): Promise {\n return true;\n }\n\n public async getMediaTypeFormats(_context: IActionContext): Promise> {\n return this.mediaTypeFormats;\n }\n}\n\nexport interface IActorArgsMediaTypedFixed extends IActorArgsMediaTyped {\n /**\n * A record of media types, with media type name as key, and its priority as value.\n * Priorities are numbers between [0, 1].\n * @range {json}\n */\n mediaTypePriorities: Record;\n /**\n * A record of media types, with media type name as key, and its format IRI as value.\n * @range {json}\n */\n mediaTypeFormats: Record;\n /**\n * A multiplier for media type priorities.\n * This can be used for keeping the original media types in place,\n * but scaling all of their scores with a certain value.\n * @range {double}\n */\n priorityScale?: number;\n}\n","export * from './ActorAbstractMediaTyped';\nexport * from './ActorAbstractMediaTypedFixed';\n","import type { BindingsFactory } from '@comunica/bindings-factory';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport type {\n IQueryOperationResultBindings,\n Bindings,\n IActionContext,\n MetadataBindings,\n IQuerySourceWrapper,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport {\n BufferedIterator,\n MultiTransformIterator,\n TransformIterator,\n EmptyIterator,\n} from 'asynciterator';\nimport { DataFactory } from 'rdf-data-factory';\nimport { termToString } from 'rdf-string';\nimport { Algebra, Factory } from 'sparqlalgebrajs';\nimport { PathVariableObjectIterator } from './PathVariableObjectIterator';\n\nconst DF = new DataFactory();\n\n/**\n * An abstract actor that handles Path operations.\n *\n * Provides multiple helper functions used by the Path operation actors.\n */\nexport abstract class ActorAbstractPath extends ActorQueryOperationTypedMediated {\n protected static readonly FACTORY: Factory = new Factory();\n\n protected readonly predicateType: string;\n\n protected constructor(args: IActorQueryOperationTypedMediatedArgs, predicateType: string) {\n super(args, 'path');\n this.predicateType = predicateType;\n }\n\n public async testOperation(operation: Algebra.Path, _context: IActionContext): Promise {\n if (operation.predicate.type !== this.predicateType) {\n throw new Error(`This Actor only supports ${this.predicateType} Path operations.`);\n }\n\n return true;\n }\n\n // Generates a variable that does not yet occur in the path\n public generateVariable(path?: Algebra.Path, name?: string): RDF.Variable {\n if (!name) {\n return this.generateVariable(path, 'b');\n }\n\n // Path predicates can't contain variables\n if (path && (path.subject.value === name || path.object.value === name)) {\n return this.generateVariable(path, `${name}b`);\n }\n\n return DF.variable(name);\n }\n\n // Such connectivity matching does not introduce duplicates (it does not incorporate any count of the number\n // of ways the connection can be made) even if the repeated path itself would otherwise result in duplicates.\n // https://www.w3.org/TR/sparql11-query/#propertypaths\n public async isPathArbitraryLengthDistinct(context: IActionContext, path: Algebra.Path):\n Promise<{ context: IActionContext; operation: IQueryOperationResultBindings | undefined }> {\n if (!context.get(KeysQueryOperation.isPathArbitraryLengthDistinctKey)) {\n context = context.set(KeysQueryOperation.isPathArbitraryLengthDistinctKey, true);\n return { context, operation: ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({\n operation: ActorAbstractPath.FACTORY.createDistinct(path),\n context,\n })) };\n }\n\n context = context.set(KeysQueryOperation.isPathArbitraryLengthDistinctKey, false);\n return { context, operation: undefined };\n }\n\n private async predicateStarGraphVariable(\n subject: RDF.Term,\n object: RDF.Variable,\n predicate: Algebra.PropertyPathSymbol,\n graph: RDF.Variable,\n context: IActionContext,\n bindingsFactory: BindingsFactory,\n ): Promise {\n const sources = this.getPathSources(predicate);\n // TODO: refactor this with an iterator just like PathVariableObjectIterator so we handle backpressure correctly\n // Construct path to obtain all graphs where subject exists\n const predVar = this.generateVariable(ActorAbstractPath.FACTORY\n .createPath(subject, predicate, object, graph));\n const findGraphs = ActorAbstractPath.FACTORY.createUnion([\n this.assignPatternSources(ActorAbstractPath.FACTORY.createPattern(subject, predVar, object, graph), sources),\n this.assignPatternSources(ActorAbstractPath.FACTORY.createPattern(object, predVar, subject, graph), sources),\n ]);\n const results = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ context, operation: findGraphs }),\n );\n\n const passedGraphs: Set = new Set();\n\n const bindingsStream = new MultiTransformIterator(\n results.bindingsStream,\n {\n multiTransform: (bindings: Bindings) => {\n // Extract the graph and start a predicate* search starting from subject in each graph\n const graphValue: RDF.Term = bindings.get(graph)!;\n if (passedGraphs.has(graphValue.value)) {\n return new EmptyIterator();\n }\n passedGraphs.add(graphValue.value);\n return new TransformIterator(\n async() => {\n const it = new BufferedIterator();\n await this.getObjectsPredicateStar(subject, predicate, graphValue, context, {}, it, { count: 0 });\n return it.transform({\n transform(item, next, push) {\n push(bindingsFactory.bindings([\n [ object, item ],\n [ graph, graphValue ],\n ]));\n next();\n },\n });\n },\n { maxBufferSize: 128 },\n );\n },\n autoStart: false,\n },\n );\n\n return {\n bindingsStream,\n metadata: results.metadata,\n };\n }\n\n /**\n * Returns an iterator with Bindings of the query subject predicate* ?o or subject predicate+ ?o\n * If graph is a variable, it will also be in those bindings\n * @param {Term} subject Term of where we start the predicate* search.\n * @param {Algebra.PropertyPathSymbol} predicate Predicate of the *-path.\n * @param {Variable} object Variable of the zeroOrMore-query.\n * @param {Term} graph The graph in which we search for the pattern. (Possibly a variable)\n * @param {ActionContext} context The context to pass to sub-opertations\n * @param emitFirstSubject If the path operation is predicate*, otherwise it is predicate+.\n * @return {Promise} Iterator to where all bindings of query should have been pushed.\n */\n public async getObjectsPredicateStarEval(\n subject: RDF.Term,\n predicate: Algebra.PropertyPathSymbol,\n object: RDF.Variable,\n graph: RDF.Term,\n context: IActionContext,\n emitFirstSubject: boolean,\n bindingsFactory: BindingsFactory,\n ): Promise {\n if (graph.termType === 'Variable') {\n return this.predicateStarGraphVariable(subject, object, predicate, graph, context, bindingsFactory);\n }\n\n const it = new PathVariableObjectIterator(\n subject,\n predicate,\n graph,\n context,\n this.mediatorQueryOperation,\n emitFirstSubject,\n );\n\n const bindingsStream = it.transform({\n autoStart: false,\n transform(item, next, push) {\n push(bindingsFactory.bindings([[ object, item ]]));\n next();\n },\n });\n\n return {\n bindingsStream,\n async metadata() {\n const metadata: MetadataBindings = await new Promise((resolve) => {\n it.getProperty('metadata', (metadataInner: any) => resolve(metadataInner()));\n });\n // Increment cardinality by one, because we always have at least one result once we reach this stage.\n // See the transformation above where we push a single binding.\n metadata.cardinality.value++;\n return metadata;\n },\n };\n }\n\n /**\n * Pushes all terms to iterator `it` that are a solution of object predicate* ?o.\n * @param {Term} object Term of where we start the predicate* search.\n * @param {Algebra.PropertyPathSymbol} predicate Predicate of the *-path.\n * @param {Term} graph The graph in which we search for the pattern.\n * @param {ActionContext} context\n * @param {Record} termHashes Remembers the objects we've already searched for.\n * @param {BufferedIterator} it Iterator to push terms to.\n * @param {any} counter Counts how many searches are in progress to close it when needed (when counter == 0).\n * @return {Promise} The results metadata.\n */\n public async getObjectsPredicateStar(\n object: RDF.Term,\n predicate: Algebra.PropertyPathSymbol,\n graph: RDF.Term,\n context: IActionContext,\n termHashes: Record,\n it: BufferedIterator,\n counter: any,\n ): Promise {\n const termString = termToString(object);\n if (termHashes[termString]) {\n return;\n }\n\n ( it)._push(object);\n termHashes[termString] = object;\n counter.count++;\n\n const thisVariable = this.generateVariable();\n const path = ActorAbstractPath.FACTORY.createPath(object, predicate, thisVariable, graph);\n const results = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ operation: path, context }),\n );\n // TODO: fixme\n // eslint-disable-next-line ts/no-misused-promises\n results.bindingsStream.on('data', async(bindings: Bindings) => {\n const result = bindings.get(thisVariable);\n await this.getObjectsPredicateStar(result!, predicate, graph, context, termHashes, it, counter);\n });\n results.bindingsStream.on('end', () => {\n if (--counter.count === 0) {\n it.close();\n }\n });\n\n return results.metadata;\n }\n\n /**\n * Pushes all terms to iterator `it` that are a solution of ?s predicate* ?o.\n * @param {string} subjectVar String representation of subjectVariable\n * @param {string} objectVar String representation of objectVariable\n * @param {Term} subjectVal Term of where we start the predicate* search.\n * @param {Term} objectVal Found solution for an object, start for the new step.\n * @param {Algebra.PropertyPathSymbol} predicate Predicate of the *-path.\n * @param {Term} graph The graph in which we search for the pattern.\n * @param {ActionContext} context\n * @param {{[id: string]: Promise}} termHashesGlobal\n * Remembers solutions for when objectVal is already been calculated, can be reused when same objectVal occurs\n * @param {{[id: string]: Term}} termHashesCurrentSubject\n * Remembers the pairs we've already searched for, can stop searching if so.\n * @param {BufferedIterator} it Iterator to push terms to.\n * @param {any} counter Counts how many searches are in progress to close it when needed (when counter == 0).\n * @return {Promise} All solutions of query should have been pushed to it by then.\n */\n // Let the iterator `it` emit all bindings of size 2, with subjectStringVariable as value subjectVal\n // and objectStringVariable as value all nodes reachable through predicate* beginning at objectVal\n public async getSubjectAndObjectBindingsPredicateStar(\n subjectVar: RDF.Variable,\n objectVar: RDF.Variable,\n subjectVal: RDF.Term,\n objectVal: RDF.Term,\n predicate: Algebra.PropertyPathSymbol,\n graph: RDF.Term,\n context: IActionContext,\n termHashesGlobal: Record>,\n termHashesCurrentSubject: Record,\n it: BufferedIterator,\n counter: any,\n bindingsFactory: BindingsFactory,\n ): Promise {\n const termString = termToString(objectVal) + termToString(graph);\n\n // If this combination of subject and object already done, return nothing\n if (termHashesCurrentSubject[termString]) {\n return;\n }\n\n counter.count++;\n termHashesCurrentSubject[termString] = true;\n ( it)._push(bindingsFactory.bindings([\n [ subjectVar, subjectVal ],\n [ objectVar, objectVal ],\n ]));\n\n // If every reachable node from object has already been calculated, use these for current subject too\n if (termString in termHashesGlobal) {\n const objects = await termHashesGlobal[termString];\n for (const object of objects) {\n await this.getSubjectAndObjectBindingsPredicateStar(\n subjectVar,\n objectVar,\n subjectVal,\n object,\n predicate,\n graph,\n context,\n termHashesGlobal,\n termHashesCurrentSubject,\n it,\n counter,\n bindingsFactory,\n );\n }\n if (--counter.count === 0) {\n it.close();\n }\n\n return;\n }\n\n // Construct promise to calculate all reachable nodes from this object\n // TODO: fixme\n // eslint-disable-next-line no-async-promise-executor,ts/no-misused-promises\n const promise = new Promise(async(resolve, reject) => {\n const objectsArray: RDF.Term[] = [];\n\n // Construct path that leads us one step through predicate\n const thisVariable = this.generateVariable();\n const path = ActorAbstractPath.FACTORY.createPath(objectVal, predicate, thisVariable, graph);\n const results = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ operation: path, context }),\n );\n\n // Recursive call on all neighbours\n // TODO: fixme\n // eslint-disable-next-line ts/no-misused-promises\n results.bindingsStream.on('data', async(bindings: RDF.Bindings) => {\n const result: RDF.Term = bindings.get(thisVariable)!;\n objectsArray.push(result);\n await this.getSubjectAndObjectBindingsPredicateStar(\n subjectVar,\n objectVar,\n subjectVal,\n result,\n predicate,\n graph,\n context,\n termHashesGlobal,\n termHashesCurrentSubject,\n it,\n counter,\n bindingsFactory,\n );\n });\n results.bindingsStream.on('error', reject);\n results.bindingsStream.on('end', () => {\n if (--counter.count === 0) {\n it.close();\n }\n resolve(objectsArray);\n });\n });\n\n // Set it in the termHashesGlobal when this object occurs again they can wait for this promise\n termHashesGlobal[termString] = promise;\n }\n\n /**\n * Find all sources recursively contained in the given path operation.\n * @param operation\n */\n public getPathSources(operation: Algebra.PropertyPathSymbol): IQuerySourceWrapper[] {\n switch (operation.type) {\n case Algebra.types.ALT:\n case Algebra.types.SEQ:\n return operation.input\n .flatMap((subOp: Algebra.PropertyPathSymbol) => this.getPathSources(subOp));\n case Algebra.types.INV:\n case Algebra.types.ONE_OR_MORE_PATH:\n case Algebra.types.ZERO_OR_MORE_PATH:\n case Algebra.types.ZERO_OR_ONE_PATH:\n return this.getPathSources(operation.path);\n case Algebra.types.LINK:\n case Algebra.types.NPS: {\n const source = ActorQueryOperation.getOperationSource(operation);\n if (!source) {\n throw new Error(`Could not find a required source on a link path operation`);\n }\n return [ source ];\n }\n }\n }\n\n public assignPatternSources(pattern: Algebra.Pattern, sources: IQuerySourceWrapper[]): Algebra.Operation {\n if (sources.length === 0) {\n throw new Error(`Attempted to assign zero sources to a pattern during property path handling`);\n }\n if (sources.length === 1) {\n return ActorQueryOperation.assignOperationSource(pattern, sources[0]);\n }\n return ActorAbstractPath.FACTORY.createUnion(sources\n .map(source => ActorQueryOperation.assignOperationSource(pattern, source)), true);\n }\n}\n\nexport interface IPathResultStream {\n bindingsStream: AsyncIterator;\n metadata: () => Promise;\n}\n","import type { MediatorQueryOperation } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport type { IActionContext } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { BufferedIterator } from 'asynciterator';\nimport { DataFactory } from 'rdf-data-factory';\nimport { termToString } from 'rdf-string';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { Factory } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\nconst FACTORY = new Factory();\n\n/**\n * An iterator that implements the multi-length property path operation (* and +)\n * for a fixed subject and predicate, and a variable object.\n */\nexport class PathVariableObjectIterator extends BufferedIterator {\n private readonly termHashes: Map = new Map();\n private readonly runningOperations: AsyncIterator[] = [];\n private readonly pendingOperations: { variable: RDF.Variable; operation: Algebra.Path }[] = [];\n\n public constructor(\n private readonly subject: RDF.Term,\n private readonly predicate: Algebra.PropertyPathSymbol,\n private readonly graph: RDF.Term,\n private readonly context: IActionContext,\n private readonly mediatorQueryOperation: MediatorQueryOperation,\n emitFirstSubject: boolean,\n private readonly maxRunningOperations = 16,\n ) {\n // The autoStart flag must be true to kickstart metadata collection\n super({ autoStart: true });\n\n // Push the subject as starting point\n this._push(this.subject, emitFirstSubject);\n }\n\n protected override _end(destroy?: boolean): void {\n // Close all running iterators\n for (const it of this.runningOperations) {\n it.destroy();\n }\n\n super._end(destroy);\n }\n\n protected override _push(item: RDF.Term, pushAsResult = true): void {\n let termString;\n if (pushAsResult) {\n // Don't push if this subject was already found\n termString = termToString(item);\n if (this.termHashes.has(termString)) {\n return;\n }\n }\n\n // Add a pending path operation for this item\n const variable = DF.variable('b');\n this.pendingOperations.push({\n variable,\n operation: FACTORY.createPath(item, this.predicate, variable, this.graph),\n });\n\n // Otherwise, push the subject\n if (termString) {\n this.termHashes.set(termString, item);\n super._push(item);\n }\n }\n\n protected override _read(count: number, done: () => void): void {\n // eslint-disable-next-line ts/no-this-alias\n const self = this;\n (async function() {\n // Open as many operations as possible\n while (self.runningOperations.length < self.maxRunningOperations) {\n if (self.pendingOperations.length === 0) {\n break;\n }\n\n const pendingOperation = self.pendingOperations.pop()!;\n const results = ActorQueryOperation.getSafeBindings(\n await self.mediatorQueryOperation.mediate({ operation: pendingOperation.operation, context: self.context }),\n );\n const runningOperation = results.bindingsStream.transform({\n autoStart: false,\n transform(bindings, next, push) {\n const newTerm: RDF.Term = bindings.get(pendingOperation.variable)!;\n push(newTerm);\n next();\n },\n });\n if (!runningOperation.done) {\n self.runningOperations.push(runningOperation);\n runningOperation.on('error', error => self.destroy(error));\n runningOperation.on('readable', () => {\n self.readable = true;\n self._fillBufferAsync();\n });\n runningOperation.on('end', () => {\n self.runningOperations.splice(self.runningOperations.indexOf(runningOperation), 1);\n self.readable = true;\n self._fillBufferAsync();\n });\n }\n\n self.setProperty('metadata', results.metadata);\n }\n\n // Try to read `count` items (based on UnionIterator)\n let lastCount = 0;\n let item: RDF.Term | null;\n // eslint-disable-next-line no-cond-assign\n while (lastCount !== (lastCount = count)) {\n // Prioritize the operations that have been added first\n for (let i = 0; i < self.runningOperations.length && count > 0; i++) {\n // eslint-disable-next-line no-cond-assign\n if ((item = self.runningOperations[i].read()) !== null) {\n count--;\n self._push(item);\n }\n }\n }\n\n // Close if everything has been read\n if (self.runningOperations.length === 0 && self.pendingOperations.length === 0) {\n self.close();\n }\n })().then(() => {\n done();\n }, error => this.destroy(error));\n }\n}\n","import type { IActorContextPreprocessOutput, IActorContextPreprocessArgs } from '@comunica/bus-context-preprocess';\nimport { ActorContextPreprocess } from '@comunica/bus-context-preprocess';\nimport type { IAction, IActorTest } from '@comunica/core';\nimport { ActionContextKey } from '@comunica/core';\nimport type { IActionContext } from '@comunica/types';\n\n/**\n * A comunica Convert Shortcuts Context Preprocess Actor.\n */\nexport class ActorContextPreprocessConvertShortcuts extends ActorContextPreprocess {\n public readonly contextKeyShortcuts: Record;\n\n public constructor(args: IActorContextPreprocessConvertShortcutsArgs) {\n super(args);\n }\n\n public async test(_action: IAction): Promise {\n return true;\n }\n\n public async run(action: IAction): Promise {\n return {\n context: ActorContextPreprocessConvertShortcuts.expandShortcuts(action.context, this.contextKeyShortcuts),\n };\n }\n\n public static expandShortcuts(context: IActionContext, contextKeyShortcuts: Record): IActionContext {\n for (const key of context.keys()) {\n if (contextKeyShortcuts[key.name]) {\n context = context\n .set(new ActionContextKey(contextKeyShortcuts[key.name]), context.get(key))\n .delete(key);\n }\n }\n return context;\n }\n}\n\nexport interface IActorContextPreprocessConvertShortcutsArgs extends IActorContextPreprocessArgs {\n /**\n * A record of context shortcuts to full context keys (as defined in @comunica/context-entries).\n * @range {json}\n * @default {{\n * \"sources\": \"@comunica/actor-init-query:querySourcesUnidentified\",\n * \"destination\": \"@comunica/bus-rdf-update-quads:destination\",\n * \"initialBindings\": \"@comunica/actor-init-query:initialBindings\",\n * \"queryFormat\": \"@comunica/actor-init-query:queryFormat\",\n * \"baseIRI\": \"@comunica/actor-init-query:baseIRI\",\n * \"log\": \"@comunica/core:log\",\n * \"datetime\": \"@comunica/actor-http-memento:datetime\",\n * \"queryTimestamp\": \"@comunica/actor-init-query:queryTimestamp\",\n * \"httpProxyHandler\": \"@comunica/actor-http-proxy:httpProxyHandler\",\n * \"lenient\": \"@comunica/actor-init-query:lenient\",\n * \"httpIncludeCredentials\": \"@comunica/bus-http:include-credentials\",\n * \"httpAuth\": \"@comunica/bus-http:auth\",\n * \"httpTimeout\": \"@comunica/bus-http:http-timeout\",\n * \"httpBodyTimeout\": \"@comunica/bus-http:http-body-timeout\",\n * \"httpRetryCount\": \"@comunica/bus-http:http-retry-count\",\n * \"httpRetryDelay\": \"@comunica/bus-http:http-retry-delay\",\n * \"httpRetryOnServerError\": \"@comunica/bus-http:http-retry-on-server-error\",\n * \"fetch\": \"@comunica/bus-http:fetch\",\n * \"recoverBrokenLinks\": \"@comunica/bus-http-wayback:recover-broken-links\",\n * \"readOnly\": \"@comunica/bus-query-operation:readOnly\",\n * \"extensionFunctions\": \"@comunica/actor-init-query:extensionFunctions\",\n * \"extensionFunctionCreator\": \"@comunica/actor-init-query:extensionFunctionCreator\",\n * \"functionArgumentsCache\": \"@comunica/actor-init-query:functionArgumentsCache\",\n * \"explain\": \"@comunica/actor-init-query:explain\",\n * \"unionDefaultGraph\": \"@comunica/bus-query-operation:unionDefaultGraph\",\n * \"traverse\": \"@comunica/bus-query-source-identify:traverse\",\n * \"noCache\": \"@comunica/actor-init-query:noCache\",\n * \"distinctConstruct\": \"@comunica/actor-init-query:distinctConstruct\"\n * }}\n */\n contextKeyShortcuts: Record;\n}\n","import type {\n IActorContextPreprocessOutput,\n IActorContextPreprocessArgs,\n MediatorContextPreprocess,\n} from '@comunica/bus-context-preprocess';\nimport { ActorContextPreprocess } from '@comunica/bus-context-preprocess';\nimport type { ActorHttpInvalidateListenable, IActionHttpInvalidate } from '@comunica/bus-http-invalidate';\nimport type { MediatorQuerySourceIdentify } from '@comunica/bus-query-source-identify';\nimport { KeysInitQuery, KeysQueryOperation } from '@comunica/context-entries';\nimport type { IAction, IActorTest } from '@comunica/core';\nimport { ActionContext } from '@comunica/core';\nimport type {\n IQuerySourceWrapper,\n QuerySourceUnidentified,\n QuerySourceUnidentifiedExpanded,\n IActionContext,\n IQuerySourceUnidentifiedExpanded,\n} from '@comunica/types';\nimport { LRUCache } from 'lru-cache';\n\n/**\n * A comunica Query Source Identify Context Preprocess Actor.\n */\nexport class ActorContextPreprocessQuerySourceIdentify extends ActorContextPreprocess {\n public readonly cacheSize: number;\n public readonly httpInvalidator: ActorHttpInvalidateListenable;\n public readonly mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;\n public readonly mediatorContextPreprocess: MediatorContextPreprocess;\n public readonly cache?: LRUCache>;\n\n public constructor(args: IActorContextPreprocessQuerySourceIdentifyArgs) {\n super(args);\n this.cache = this.cacheSize ? new LRUCache({ max: this.cacheSize }) : undefined;\n const cache = this.cache;\n if (cache) {\n this.httpInvalidator.addInvalidateListener(\n ({ url }: IActionHttpInvalidate) => url ? cache.delete(url) : cache.clear(),\n );\n }\n }\n\n public async test(_action: IAction): Promise {\n return true;\n }\n\n public async run(action: IAction): Promise {\n let context = action.context;\n\n // Rewrite sources\n if (context.has(KeysInitQuery.querySourcesUnidentified)) {\n const querySourcesUnidentified: QuerySourceUnidentified[] = action.context\n .get(KeysInitQuery.querySourcesUnidentified)!;\n const querySourcesUnidentifiedExpanded = await Promise.all(querySourcesUnidentified\n .map(querySource => this.expandSource(querySource)));\n const querySources: IQuerySourceWrapper[] = await Promise.all(querySourcesUnidentifiedExpanded\n .map(async querySourceUnidentified => this.identifySource(querySourceUnidentified, action.context)));\n context = action.context\n .delete(KeysInitQuery.querySourcesUnidentified)\n .set(KeysQueryOperation.querySources, querySources);\n }\n\n return { context };\n }\n\n public async expandSource(querySource: QuerySourceUnidentified): Promise {\n if (typeof querySource === 'string' || 'match' in querySource) {\n return { value: querySource };\n }\n return {\n ...>querySource,\n context: (await this.mediatorContextPreprocess.mediate({\n context: ActionContext.ensureActionContext(querySource.context ?? {}),\n })).context,\n };\n }\n\n public identifySource(\n querySourceUnidentified: QuerySourceUnidentifiedExpanded,\n context: IActionContext,\n ): Promise {\n let sourcePromise: Promise | undefined;\n\n // Try to read from cache\n // Only sources based on string values (e.g. URLs) are supported!\n if (typeof querySourceUnidentified.value === 'string' && this.cache) {\n sourcePromise = this.cache.get(querySourceUnidentified.value)!;\n }\n\n // If not in cache, identify the source\n if (!sourcePromise) {\n sourcePromise = this.mediatorQuerySourceIdentify.mediate({ querySourceUnidentified, context })\n .then(({ querySource }) => querySource);\n\n // Set in cache\n if (typeof querySourceUnidentified.value === 'string' && this.cache) {\n this.cache.set(querySourceUnidentified.value, sourcePromise);\n }\n }\n\n return sourcePromise;\n }\n}\n\nexport interface IActorContextPreprocessQuerySourceIdentifyArgs extends IActorContextPreprocessArgs {\n /**\n * The maximum number of entries in the LRU cache, set to 0 to disable.\n * @range {integer}\n * @default {100}\n */\n cacheSize: number;\n /* eslint-disable max-len */\n /**\n * An actor that listens to HTTP invalidation events\n * @default { a }\n */\n httpInvalidator: ActorHttpInvalidateListenable;\n /* eslint-enable max-len */\n /**\n * Mediator for identifying query sources.\n */\n mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;\n /**\n * The context processing combinator\n */\n mediatorContextPreprocess: MediatorContextPreprocess;\n}\n","import type { IActorContextPreprocessOutput, IActorContextPreprocessArgs } from '@comunica/bus-context-preprocess';\nimport { ActorContextPreprocess } from '@comunica/bus-context-preprocess';\nimport { KeysQueryOperation, KeysQuerySourceIdentify } from '@comunica/context-entries';\nimport type { IActorTest, IAction } from '@comunica/core';\nimport type { IQuerySourceWrapper, QuerySourceReference } from '@comunica/types';\nimport { QuerySourceSkolemized } from './QuerySourceSkolemized';\nimport { getSourceId } from './utils';\n\n/**\n * A comunica Query Source Skolemize Context Preprocess Actor.\n */\nexport class ActorContextPreprocessQuerySourceSkolemize extends ActorContextPreprocess {\n public constructor(args: IActorContextPreprocessArgs) {\n super(args);\n }\n\n public async test(_action: IAction): Promise {\n return true;\n }\n\n public async run(action: IAction): Promise {\n let context = action.context;\n\n // Wrap sources in skolemized sources\n if (context.has(KeysQueryOperation.querySources)) {\n // Determine map of source id's\n if (!context.has(KeysQuerySourceIdentify.sourceIds)) {\n context = context.set(KeysQuerySourceIdentify.sourceIds, new Map());\n }\n const sourceIds: Map = context.getSafe(KeysQuerySourceIdentify.sourceIds);\n\n let sources: IQuerySourceWrapper[] = context.getSafe(KeysQueryOperation.querySources);\n sources = sources.map(sourceWrapper => ({\n source: new QuerySourceSkolemized(sourceWrapper.source, getSourceId(sourceIds, sourceWrapper.source)),\n context: sourceWrapper.context,\n }));\n context = context.set(KeysQueryOperation.querySources, sources);\n }\n\n return { context };\n }\n}\n","import { MetadataValidationState } from '@comunica/metadata';\nimport type {\n BindingsStream,\n FragmentSelectorShape,\n IActionContext,\n IQueryBindingsOptions,\n IQuerySource,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ArrayIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { deskolemizeOperation, skolemizeBindingsStream, skolemizeQuadStream } from './utils';\n\n/**\n * A IQuerySource wrapper that skolemizes outgoing quads and bindings.\n */\nexport class QuerySourceSkolemized implements IQuerySource {\n /**\n * The query source to wrap over.\n */\n public readonly innerSource: IQuerySource;\n /**\n * ID of the inner source, see KeysRdfResolveQuadPattern.sourceIds.\n */\n public readonly sourceId: string;\n\n public constructor(innerSource: IQuerySource, sourceId: string) {\n this.innerSource = innerSource;\n this.sourceId = sourceId;\n }\n\n public async getSelectorShape(context: IActionContext): Promise {\n return this.innerSource.getSelectorShape(context);\n }\n\n public queryBindings(\n operation: Algebra.Operation,\n context: IActionContext,\n options: IQueryBindingsOptions | undefined,\n ): BindingsStream {\n const operationMapped = deskolemizeOperation(operation, this.sourceId);\n if (!operationMapped) {\n const it: BindingsStream = new ArrayIterator([], { autoStart: false });\n it.setProperty('metadata', {\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: 0 },\n canContainUndefs: false,\n variables: [],\n });\n return it;\n }\n return skolemizeBindingsStream(this.innerSource.queryBindings(operationMapped, context, options), this.sourceId);\n }\n\n public queryBoolean(operation: Algebra.Ask, context: IActionContext): Promise {\n return this.innerSource.queryBoolean(operation, context);\n }\n\n public queryQuads(operation: Algebra.Operation, context: IActionContext): AsyncIterator {\n const operationMapped = deskolemizeOperation(operation, this.sourceId);\n if (!operationMapped) {\n const it: AsyncIterator = new ArrayIterator([], { autoStart: false });\n it.setProperty('metadata', {\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: 0 },\n });\n return it;\n }\n return skolemizeQuadStream(this.innerSource.queryQuads(operationMapped, context), this.sourceId);\n }\n\n public queryVoid(operation: Algebra.Update, context: IActionContext): Promise {\n return this.innerSource.queryVoid(operation, context);\n }\n\n public get referenceValue(): string | RDF.Source {\n return this.innerSource.referenceValue;\n }\n\n public toString(): string {\n return `${this.innerSource.toString()}(SkolemID:${this.sourceId})`;\n }\n}\n","import { BlankNodeScoped } from '@comunica/data-factory';\nimport type {\n BindingsStream,\n IQuerySource,\n MetadataBindings,\n MetadataQuads,\n QuerySourceReference,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { DataFactory } from 'rdf-data-factory';\nimport { mapTermsNested } from 'rdf-terms';\nimport { Algebra, Util } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\nexport const SKOLEM_PREFIX = 'urn:comunica_skolem:source_';\n\n/**\n * Get the unique, deterministic id for the given source.\n * @param sourceIds ID's of datasources, see KeysRdfResolveQuadPattern.sourceIds.\n * @param source A data source.\n * @return The id of the given source.\n */\nexport function getSourceId(sourceIds: Map, source: IQuerySource): string {\n let sourceId = sourceIds.get(source.referenceValue);\n if (sourceId === undefined) {\n sourceId = `${sourceIds.size}`;\n sourceIds.set(source.referenceValue, sourceId);\n }\n return sourceId;\n}\n\n/**\n * If the given term is a blank node, return a deterministic named node for it\n * based on the source id and the blank node value.\n * @param term Any RDF term.\n * @param sourceId A source identifier.\n * @return If the given term was a blank node, this will return a skolemized named node, otherwise the original term.\n */\nexport function skolemizeTerm(term: RDF.Term, sourceId: string): RDF.Term | BlankNodeScoped {\n if (term.termType === 'BlankNode') {\n return new BlankNodeScoped(`bc_${sourceId}_${term.value}`, DF.namedNode(`${SKOLEM_PREFIX}${sourceId}:${term.value}`));\n }\n return term;\n}\n\n/**\n * Skolemize all terms in the given quad.\n * @param quad An RDF quad.\n * @param sourceId A source identifier.\n * @return The skolemized quad.\n */\nexport function skolemizeQuad(quad: Q, sourceId: string): Q {\n return mapTermsNested(quad, term => skolemizeTerm(term, sourceId));\n}\n\n/**\n * Skolemize all terms in the given bindings.\n * @param bindings An RDF bindings object.\n * @param sourceId A source identifier.\n * @return The skolemized bindings.\n */\nexport function skolemizeBindings(bindings: RDF.Bindings, sourceId: string): RDF.Bindings {\n return bindings.map((term) => {\n if (term.termType === 'Quad') {\n return skolemizeQuad(term, sourceId);\n }\n return skolemizeTerm(term, sourceId);\n });\n}\n\n/**\n * Skolemize all terms in the given quad stream.\n * @param iterator An RDF quad stream.\n * @param sourceId A source identifier.\n * @return The skolemized quad stream.\n */\nexport function skolemizeQuadStream(iterator: AsyncIterator, sourceId: string): AsyncIterator {\n const ret = iterator.map(quad => skolemizeQuad(quad, sourceId));\n function inheritMetadata(): void {\n iterator.getProperty('metadata', (metadata: MetadataQuads) => {\n ret.setProperty('metadata', metadata);\n metadata.state.addInvalidateListener(inheritMetadata);\n });\n }\n inheritMetadata();\n return ret;\n}\n\n/**\n * Skolemize all terms in the given bindings stream.\n * @param iterator An RDF bindings stream.\n * @param sourceId A source identifier.\n * @return The skolemized bindings stream.\n */\nexport function skolemizeBindingsStream(iterator: BindingsStream, sourceId: string): BindingsStream {\n const ret = iterator.map(bindings => skolemizeBindings(bindings, sourceId));\n function inheritMetadata(): void {\n iterator.getProperty('metadata', (metadata: MetadataBindings) => {\n ret.setProperty('metadata', metadata);\n metadata.state.addInvalidateListener(inheritMetadata);\n });\n }\n inheritMetadata();\n return ret;\n}\n\n/**\n * If a given term was a skolemized named node for the given source id,\n * deskolemize it again to a blank node.\n * If the given term was a skolemized named node for another source, return false.\n * If the given term was not a skolemized named node, return the original term.\n * @param term Any RDF term.\n * @param sourceId A source identifier.\n */\nexport function deskolemizeTerm(term: RDF.Term, sourceId: string): RDF.Term | null {\n if (term.termType === 'BlankNode' && 'skolemized' in term) {\n term = ( term).skolemized;\n }\n if (term.termType === 'NamedNode' && term.value.startsWith(SKOLEM_PREFIX)) {\n const colonSeparator = term.value.indexOf(':', SKOLEM_PREFIX.length);\n const termSourceId = term.value.slice(SKOLEM_PREFIX.length, colonSeparator);\n // We had a skolemized term\n if (termSourceId === sourceId) {\n // It came from the correct source\n const termLabel = term.value.slice(colonSeparator + 1, term.value.length);\n return DF.blankNode(termLabel);\n }\n // It came from a different source\n return null;\n }\n return term;\n}\n\nexport function deskolemizeTermNestedThrowing(term: RDF.Term, sourceId: string): RDF.Term {\n if (term.termType === 'Quad') {\n return mapTermsNested(term, (subTerm) => {\n const deskolemized = deskolemizeTerm(subTerm, sourceId);\n if (!deskolemized) {\n throw new Error(`Skolemized term is not in scope for this source`);\n }\n return deskolemized;\n });\n }\n const ret = deskolemizeTerm(term, sourceId);\n if (ret === null) {\n throw new Error(`Skolemized term is not in scope for this source`);\n }\n return ret;\n}\n\n/**\n * Deskolemize all terms in the given quad.\n * @param quad An RDF quad.\n * @param sourceId A source identifier.\n * @return The deskolemized quad.\n */\nexport function deskolemizeQuad(quad: Q, sourceId: string): Q {\n return mapTermsNested(quad, (term: RDF.Term): RDF.Term => {\n const newTerm = deskolemizeTerm(term, sourceId);\n // If the term was skolemized in a different source then don't deskolemize it\n return newTerm ?? term;\n });\n}\n\n/**\n * Deskolemize all terms in the given quad.\n * Will return undefined if there is at least one blank node not in scope for this sourceId.\n * @param operation An algebra operation.\n * @param sourceId A source identifier.\n */\nexport function deskolemizeOperation(operation: O, sourceId: string): O | undefined {\n try {\n return Util.mapOperation(operation, {\n [Algebra.types.PATTERN](op, factory) {\n return {\n result: Object.assign(factory.createPattern(\n deskolemizeTermNestedThrowing(op.subject, sourceId),\n deskolemizeTermNestedThrowing(op.predicate, sourceId),\n deskolemizeTermNestedThrowing(op.object, sourceId),\n deskolemizeTermNestedThrowing(op.graph, sourceId),\n ), { metadata: op.metadata }),\n recurse: false,\n };\n },\n [Algebra.types.PATH](op, factory) {\n return {\n result: Object.assign(factory.createPath(\n deskolemizeTermNestedThrowing(op.subject, sourceId),\n op.predicate,\n deskolemizeTermNestedThrowing(op.object, sourceId),\n deskolemizeTermNestedThrowing(op.graph, sourceId),\n ), { metadata: op.metadata }),\n recurse: false,\n };\n },\n });\n } catch {\n // Return undefined for skolemized terms not in scope for this source\n }\n}\n","import type {\n IActorContextPreprocessOutput,\n IActorContextPreprocessArgs,\n IActionContextPreprocess,\n} from '@comunica/bus-context-preprocess';\nimport { ActorContextPreprocess } from '@comunica/bus-context-preprocess';\nimport { KeysCore, KeysInitQuery, KeysQuerySourceIdentify } from '@comunica/context-entries';\nimport type { IAction, IActorTest } from '@comunica/core';\nimport type { FunctionArgumentsCache, Logger } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\n\n/**\n * A comunica Set Defaults Context Preprocess Actor.\n */\nexport class ActorContextPreprocessSetDefaults extends ActorContextPreprocess {\n private readonly defaultFunctionArgumentsCache: FunctionArgumentsCache;\n public readonly logger: Logger;\n\n public constructor(args: IActorContextPreprocessSetDefaultsArgs) {\n super(args);\n this.defaultFunctionArgumentsCache = {};\n }\n\n public async test(_action: IAction): Promise {\n return true;\n }\n\n public async run(action: IActionContextPreprocess): Promise {\n let context = action.context;\n\n if (action.initialize) {\n // Set default values\n context = context\n .setDefault(KeysInitQuery.queryTimestamp, new Date())\n .setDefault(KeysQuerySourceIdentify.sourceIds, new Map())\n .setDefault(KeysCore.log, this.logger)\n .setDefault(KeysInitQuery.functionArgumentsCache, this.defaultFunctionArgumentsCache)\n .setDefault(KeysQuerySourceIdentify.hypermediaSourcesAggregatedStores, new Map());\n\n // Handle default query format\n let queryFormat: RDF.QueryFormat = { language: 'sparql', version: '1.1' };\n if (context.has(KeysInitQuery.queryFormat)) {\n queryFormat = context.get(KeysInitQuery.queryFormat)!;\n if (queryFormat.language === 'graphql') {\n context = context.setDefault(KeysInitQuery.graphqlSingularizeVariables, {});\n }\n } else {\n context = context.set(KeysInitQuery.queryFormat, queryFormat);\n }\n }\n\n return { context };\n }\n}\n\nexport interface IActorContextPreprocessSetDefaultsArgs extends IActorContextPreprocessArgs {\n /**\n * The logger of this actor\n * @default {a }\n */\n logger: Logger;\n}\n","import type { IActorContextPreprocessOutput, IActorContextPreprocessArgs } from '@comunica/bus-context-preprocess';\nimport { ActorContextPreprocess } from '@comunica/bus-context-preprocess';\nimport { KeysInitQuery, KeysRdfUpdateQuads } from '@comunica/context-entries';\nimport type { IActorTest, IAction } from '@comunica/core';\nimport type { QuerySourceUnidentified } from '@comunica/types';\n\n/**\n * A comunica Source To Destination Context Preprocess Actor.\n */\nexport class ActorContextPreprocessSourceToDestination extends ActorContextPreprocess {\n public constructor(args: IActorContextPreprocessArgs) {\n super(args);\n }\n\n public async test(_action: IAction): Promise {\n return true;\n }\n\n public async run(action: IAction): Promise {\n if (action.context.get(KeysInitQuery.querySourcesUnidentified) &&\n !action.context.get(KeysRdfUpdateQuads.destination)) {\n const sources: QuerySourceUnidentified[] = action.context.get(KeysInitQuery.querySourcesUnidentified)!;\n if (sources.length === 1) {\n return { context: action.context.set(KeysRdfUpdateQuads.destination, sources[0]) };\n }\n }\n return action;\n }\n}\n","import type { IActionDereference, IActorDereferenceOutput, IActorDereferenceArgs } from '@comunica/bus-dereference';\nimport { ActorDereference } from '@comunica/bus-dereference';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica Fallback Dereference Actor.\n */\nexport class ActorDereferenceFallback extends ActorDereference {\n public constructor(args: IActorDereferenceArgs) {\n super(args);\n }\n\n public async test(_action: IActionDereference): Promise {\n return true;\n }\n\n public async run(action: IActionDereference): Promise {\n return this.handleDereferenceErrors(action, new Error(`Could not dereference '${action.url}'`));\n }\n}\n","/* eslint-disable unicorn/filename-case */\n/* eslint-enable unicorn/filename-case */\nimport {\n ActorDereferenceHttpBase,\n} from './ActorDereferenceHttpBase';\n\n/**\n * The browser variant of {@link ActorDereferenceHttp}.\n */\nexport class ActorDereferenceHttp extends ActorDereferenceHttpBase {\n protected getMaxAcceptHeaderLength(): number {\n return this.maxAcceptHeaderLengthBrowser;\n }\n}\n","import type { IActionDereference, IActorDereferenceArgs, IActorDereferenceOutput } from '@comunica/bus-dereference';\nimport { ActorDereference, emptyReadable } from '@comunica/bus-dereference';\nimport type { IActorHttpOutput, MediatorHttp } from '@comunica/bus-http';\nimport { ActorHttp } from '@comunica/bus-http';\nimport type { IActorTest } from '@comunica/core';\nimport { Headers } from 'cross-fetch';\nimport { resolve as resolveRelative } from 'relative-to-absolute-iri';\n\n// Use require instead of import for default exports, to be compatible with variants of esModuleInterop in tsconfig.\nimport stringifyStream = require('stream-to-string');\n\nconst REGEX_MEDIATYPE = /^[^ ;]*/u;\n\nexport function mediaTypesToAcceptString(mediaTypes: Record, maxLength: number): string {\n const wildcard = '*/*;q=0.1';\n const parts: string[] = [];\n const sortedMediaTypes = Object.entries(mediaTypes)\n .map(([ mediaType, priority ]) => ({ mediaType, priority }))\n .sort((left, right) => right.priority === left.priority ?\n left.mediaType.localeCompare(right.mediaType) :\n right.priority - left.priority);\n // Take into account the ',' characters joining each type\n let partsLength = sortedMediaTypes.length - 1;\n for (const { mediaType, priority } of sortedMediaTypes) {\n const part = mediaType + (priority === 1 ? '' : `;q=${priority.toFixed(3).replace(/0*$/u, '')}`);\n if (partsLength + part.length > maxLength) {\n while (partsLength + wildcard.length > maxLength) {\n const last = parts.pop() ?? '';\n // Don't forget the ','\n partsLength -= last.length + 1;\n }\n parts.push(wildcard);\n break;\n }\n parts.push(part);\n partsLength += part.length;\n }\n return parts.length === 0 ? '*/*' : parts.join(',');\n}\n\n/**\n * An actor that listens on the 'dereference' bus.\n *\n * It resolves the URL using the HTTP bus using an accept header compiled from the available media types.\n */\nexport abstract class ActorDereferenceHttpBase extends ActorDereference implements IActorDereferenceHttpArgs {\n public readonly mediatorHttp: MediatorHttp;\n public readonly maxAcceptHeaderLength: number;\n public readonly maxAcceptHeaderLengthBrowser: number;\n\n public constructor(args: IActorDereferenceHttpArgs) {\n super(args);\n }\n\n public async test({ url }: IActionDereference): Promise {\n if (!/^https?:/u.test(url)) {\n throw new Error(`Cannot retrieve ${url} because it is not an HTTP(S) URL.`);\n }\n return true;\n }\n\n public async run(action: IActionDereference): Promise {\n let exists = true;\n\n // Append any custom passed headers\n const headers = new Headers(action.headers);\n\n // Resolve HTTP URL using appropriate accept header\n headers.append(\n 'Accept',\n mediaTypesToAcceptString(await action.mediaTypes?.() ?? {}, this.getMaxAcceptHeaderLength()),\n );\n\n let httpResponse: IActorHttpOutput;\n const requestTimeStart = Date.now();\n try {\n httpResponse = await this.mediatorHttp.mediate({\n context: action.context,\n init: { headers, method: action.method },\n input: action.url,\n });\n } catch (error: unknown) {\n return this.handleDereferenceErrors(action, error);\n }\n // The response URL can be relative to the given URL\n const url = resolveRelative(httpResponse.url, action.url);\n const requestTime = Date.now() - requestTimeStart;\n\n // Only parse if retrieval was successful\n if (httpResponse.status !== 200) {\n exists = false;\n // Consume the body, to avoid process to hang\n const bodyString = httpResponse.body ?\n await stringifyStream(ActorHttp.toNodeReadable(httpResponse.body)) :\n 'empty response';\n\n if (!action.acceptErrors) {\n const error = new Error(`Could not retrieve ${action.url} (HTTP status ${httpResponse.status}):\\n${bodyString}`);\n return this.handleDereferenceErrors(action, error, httpResponse.headers, requestTime);\n }\n }\n\n const mediaType = REGEX_MEDIATYPE.exec(httpResponse.headers.get('content-type') ?? '')?.[0];\n\n // Return the parsed quad stream and whether or not only triples are supported\n return {\n url,\n data: exists ? ActorHttp.toNodeReadable(httpResponse.body) : emptyReadable(),\n exists,\n requestTime,\n headers: httpResponse.headers,\n mediaType: mediaType === 'text/plain' ? undefined : mediaType,\n };\n }\n\n protected abstract getMaxAcceptHeaderLength(): number;\n}\n\nexport interface IActorDereferenceHttpArgs extends IActorDereferenceArgs {\n /**\n * The HTTP mediator.\n */\n mediatorHttp: MediatorHttp;\n /**\n * The maximum allowed accept header value length for non-browser environments.\n * @range {integer}\n * @default {1024}\n */\n maxAcceptHeaderLength: number;\n /**\n * The maximum allowed accept header value length for browser environments.\n * @range {integer}\n * @default {128}\n */\n maxAcceptHeaderLengthBrowser: number;\n}\n","import type { IActorDereferenceOutput } from '@comunica/bus-dereference';\nimport type { IActorDereferenceRdfArgs } from '@comunica/bus-dereference-rdf';\nimport { ActorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport type { IActionRdfParseMetadata } from '@comunica/bus-rdf-parse';\n\n/**\n * A comunica Parse Dereference RDF Actor.\n */\nexport class ActorDereferenceRdfParse extends ActorDereferenceRdf {\n /**\n * @param args - @defaultNested {{\n * \"ttl\": \"text/turtle\",\n * \"turtle\": \"text/turtle\",\n * \"shaclc\": \"text/shaclc\",\n * \"shc\": \"text/shaclc\",\n * \"shaclce\": \"text/shaclc-ext\",\n * \"shce\": \"text/shaclc-ext\",\n * \"nt\": \"application/n-triples\",\n * \"ntriples\": \"application/n-triples\",\n * \"nq\": \"application/n-quads\",\n * \"nquads\": \"application/n-quads\",\n * \"rdf\": \"application/rdf+xml\",\n * \"rdfxml\": \"application/rdf+xml\",\n * \"owl\": \"application/rdf+xml\",\n * \"n3\": \"text/n3\",\n * \"trig\": \"application/trig\",\n * \"jsonld\": \"application/ld+json\",\n * \"json\": \"application/json\",\n * \"html\": \"text/html\",\n * \"htm\": \"text/html\",\n * \"xhtml\": \"application/xhtml+xml\",\n * \"xht\": \"application/xhtml+xml\",\n * \"xml\": \"application/xml\",\n * \"svg\": \"image/svg+xml\",\n * \"svgz\": \"image/svg+xml\"\n * }} mediaMappings\n */\n public constructor(args: IActorDereferenceRdfArgs) {\n super(args);\n }\n\n public async getMetadata(dereference: IActorDereferenceOutput): Promise {\n return { baseIRI: dereference.url };\n }\n}\n\nexport interface IActorDereferenceRdfParseArgs extends IActorDereferenceRdfArgs {\n\n}\n","import type { IActionHashBindings, IActorHashBindingsOutput } from '@comunica/bus-hash-bindings';\nimport { ActorHashBindings } from '@comunica/bus-hash-bindings';\nimport type { IActorTest } from '@comunica/core';\nimport { sha1 } from 'hash.js';\nimport { termToString } from 'rdf-string';\n\n// eslint-disable-next-line ts/no-require-imports,ts/no-var-requires\nconst canonicalize = require('canonicalize');\n\n/**\n * A comunica Memento Http Actor.\n */\nexport class ActorHashBindingsSha1 extends ActorHashBindings {\n public async test(action: IActionHashBindings): Promise {\n if (!action.allowHashCollisions) {\n throw new Error(`Actor ${this.name} can not provide hash functions without hash collisions`);\n }\n return true;\n }\n\n public async run(_action: IActionHashBindings): Promise {\n return {\n hashFunction: bindings => sha1()\n .update(canonicalize(Object.fromEntries([ ...bindings ]\n .map(([ key, value ]) => [ termToString(key), termToString(value) ]))))\n .digest('hex'),\n hashCollisions: true,\n };\n }\n}\n","import type { IActionHashQuads, IActorHashQuadsOutput } from '@comunica/bus-hash-quads';\nimport { ActorHashQuads } from '@comunica/bus-hash-quads';\nimport type { IActorTest } from '@comunica/core';\nimport { sha1 } from 'hash.js';\nimport { quadToStringQuad } from 'rdf-string';\n\n/**\n * A comunica Memento Http Actor.\n */\nexport class ActorHashQuadsSha1 extends ActorHashQuads {\n public async test(action: IActionHashQuads): Promise {\n if (!action.allowHashCollisions) {\n throw new Error(`Actor ${this.name} can not provide hash functions without hash collisions`);\n }\n return true;\n }\n\n public async run(_action: IActionHashQuads): Promise {\n return {\n hashFunction: quad => sha1()\n .update(JSON.stringify(quadToStringQuad(quad)))\n .digest('hex'),\n hashCollisions: true,\n };\n }\n}\n","import type { IActionHttp, IActorHttpOutput, IActorHttpArgs } from '@comunica/bus-http';\nimport { ActorHttp } from '@comunica/bus-http';\nimport { KeysHttp } from '@comunica/context-entries';\nimport type { IMediatorTypeTime } from '@comunica/mediatortype-time';\nimport type { Readable } from 'readable-stream';\nimport 'cross-fetch/polyfill';\nimport { FetchInitPreprocessor } from './FetchInitPreprocessor';\nimport type { IFetchInitPreprocessor } from './IFetchInitPreprocessor';\n\n/**\n * A node-fetch actor that listens on the 'init' bus.\n *\n * It will call `fetch` with either action.input or action.url.\n */\nexport class ActorHttpFetch extends ActorHttp {\n private readonly userAgent: string;\n private readonly fetchInitPreprocessor: IFetchInitPreprocessor;\n\n public constructor(args: IActorHttpFetchArgs) {\n super(args);\n this.userAgent = ActorHttpFetch.createUserAgent();\n this.fetchInitPreprocessor = new FetchInitPreprocessor(args.agentOptions);\n }\n\n public static createUserAgent(): string {\n return `Comunica/actor-http-fetch (${typeof globalThis.navigator === 'undefined' ?\n `Node.js ${process.version}; ${process.platform}` :\n `Browser-${globalThis.navigator.userAgent}`})`;\n }\n\n public async test(_action: IActionHttp): Promise {\n return { time: Number.POSITIVE_INFINITY };\n }\n\n /**\n * Perform a fetch request, taking care of retries\n * @param fetchFn\n * @param requestInput Url or RequestInfo to pass to fetchFn\n * @param requestInit RequestInit to pass to fetch function\n * @param retryCount Maximum retries after which to abort\n * @param retryDelay Time in milliseconds to wait between retries\n * @returns a fetch `Response` object\n */\n private static async getResponse(\n fetchFn: (input: RequestInfo | URL, init?: RequestInit | undefined) => Promise,\n requestInput: RequestInfo | URL,\n requestInit: RequestInit,\n retryCount: number,\n retryDelay: number,\n throwOnServerError: boolean,\n ): Promise {\n let lastError: unknown;\n // The retryCount is 0-based. Therefore, add 1 to triesLeft.\n let triesLeft = retryCount + 1;\n\n // When retry count is greater than 0, repeat fetch.\n while (triesLeft-- > 0) {\n try {\n const response = await fetchFn(requestInput, requestInit);\n // Check, if server sent a 5xx error response.\n if (throwOnServerError && response.status >= 500 && response.status < 600) {\n throw new Error(`Server replied with response code ${response.status}: ${response.statusText}`);\n }\n return response;\n } catch (error: unknown) {\n lastError = error;\n // If the fetch was aborted by timeout, we won't retry.\n if (requestInit.signal?.aborted) {\n throw error;\n }\n\n if (triesLeft > 0) {\n // Wait for specified delay, before retrying.\n await new Promise((resolve, reject) => {\n setTimeout(resolve, retryDelay);\n // Cancel waiting, if timeout is reached.\n requestInit.signal?.addEventListener('abort', () => {\n reject(new Error('Fetch aborted by timeout.'));\n });\n });\n }\n }\n }\n // The fetch was not successful. We throw.\n if (retryCount > 0) {\n // Feedback the last error, if there were retry attempts.\n throw new Error(`Number of fetch retries (${retryCount}) exceeded. Last error: ${String(lastError)}`);\n } else {\n throw lastError;\n }\n }\n\n public async run(action: IActionHttp): Promise {\n // Prepare headers\n const initHeaders = action.init?.headers ?? {};\n action.init = action.init ?? {};\n action.init.headers = new Headers(initHeaders);\n if (!action.init.headers.has('user-agent')) {\n action.init.headers.append('user-agent', this.userAgent);\n }\n const authString: string | undefined = action.context.get(KeysHttp.auth);\n if (authString) {\n action.init.headers.append('Authorization', `Basic ${Buffer.from(authString).toString('base64')}`);\n }\n\n // Log request\n this.logInfo(action.context, `Requesting ${typeof action.input === 'string' ?\n action.input :\n action.input.url}`, () => ({\n headers: ActorHttp.headersToHash(new Headers(action.init!.headers)),\n method: action.init!.method ?? 'GET',\n }));\n\n // TODO: remove this workaround once this has a fix: https://github.com/inrupt/solid-client-authn-js/issues/1708\n if (action.init?.headers && 'append' in action.init.headers && action.context.has(KeysHttp.fetch)) {\n action.init.headers = ActorHttp.headersToHash(action.init.headers);\n }\n\n let requestInit = { ...action.init };\n\n if (action.context.get(KeysHttp.includeCredentials)) {\n requestInit.credentials = 'include';\n }\n\n const httpTimeout: number | undefined = action.context?.get(KeysHttp.httpTimeout);\n let requestTimeout: NodeJS.Timeout | undefined;\n let onTimeout: (() => void) | undefined;\n if (httpTimeout !== undefined) {\n const controller = await this.fetchInitPreprocessor.createAbortController();\n requestInit.signal = controller.signal;\n onTimeout = () => controller.abort();\n requestTimeout = setTimeout(() => onTimeout!(), httpTimeout);\n }\n\n try {\n requestInit = await this.fetchInitPreprocessor.handle(requestInit);\n // Number of retries to perform after a failed fetch.\n const retryCount: number = action.context?.get(KeysHttp.httpRetryCount) ?? 0;\n const retryDelay: number = action.context?.get(KeysHttp.httpRetryDelay) ?? 0;\n const retryOnSeverError: boolean = action.context?.get(KeysHttp.httpRetryOnServerError) ?? false;\n const customFetch: ((input: RequestInfo | URL, init?: RequestInit) => Promise) | undefined = action\n .context?.get(KeysHttp.fetch);\n\n // Execute the fetch (with retries and timeouts, if applicable).\n const response = await ActorHttpFetch.getResponse(\n customFetch ?? fetch,\n action.input,\n requestInit,\n retryCount,\n retryDelay,\n retryOnSeverError,\n );\n\n // We remove or update the timeout\n if (requestTimeout !== undefined) {\n const httpBodyTimeout = action.context?.get(KeysHttp.httpBodyTimeout) || false;\n if (httpBodyTimeout && response.body) {\n // eslint-disable-next-line ts/no-misused-promises\n onTimeout = () => response.body?.cancel(new Error(`HTTP timeout when reading the body of ${response.url}.\nThis error can be disabled by modifying the 'httpBodyTimeout' and/or 'httpTimeout' options.`));\n (response.body).on('close', () => {\n clearTimeout(requestTimeout);\n });\n } else {\n clearTimeout(requestTimeout);\n }\n }\n\n // Node-fetch does not support body.cancel, while it is mandatory according to the fetch and readablestream api.\n // If it doesn't exist, we monkey-patch it.\n if (response.body && !response.body.cancel) {\n response.body.cancel = async(error?: Error) => {\n (response.body).destroy(error);\n if (requestTimeout !== undefined) {\n // We make sure to remove the timeout if it is still enabled\n clearTimeout(requestTimeout);\n }\n };\n }\n\n return response;\n } catch (error: unknown) {\n if (requestTimeout !== undefined) {\n clearTimeout(requestTimeout);\n }\n throw error;\n }\n }\n}\n\nexport interface IActorHttpFetchArgs extends IActorHttpArgs {\n /**\n * The agent options for the HTTP agent\n * @range {json}\n * @default {{ \"keepAlive\": true, \"maxSockets\": 5 }}\n */\n agentOptions?: Record;\n}\n","/* eslint-disable unicorn/filename-case */\n/* eslint-enable unicorn/filename-case */\n\nimport { ActorHttp } from '@comunica/bus-http';\nimport type { IFetchInitPreprocessor } from './IFetchInitPreprocessor';\n\n/**\n * Overrides things for fetch requests in browsers\n */\nexport class FetchInitPreprocessor implements IFetchInitPreprocessor {\n public async handle(init: RequestInit): Promise {\n // Remove overridden user-agent header within browsers to avoid CORS issues\n if (init.headers) {\n const headers = new Headers(init.headers);\n if (headers.has('user-agent')) {\n headers.delete('user-agent');\n }\n init.headers = headers;\n }\n\n // TODO: remove this workaround once this has a fix: https://github.com/inrupt/solid-client-authn-js/issues/1708\n if (init?.headers && 'append' in init.headers) {\n init.headers = ActorHttp.headersToHash(init.headers);\n }\n\n // Browsers don't yet support passing ReadableStream as body to requests, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=688906\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1387483\n // As such, we convert those bodies to a plain string\n // TODO: remove this once browser support ReadableStream in requests\n if (init.body && typeof init.body !== 'string' && 'getReader' in init.body) {\n const reader = init.body.getReader();\n const chunks = [];\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n init.body = chunks.join('');\n }\n\n // Only enable keepalive functionality if we are not sending a body (some browsers seem to trip over this)\n return { keepalive: !init.body, ...init };\n }\n\n public async createAbortController(): Promise {\n return new AbortController();\n }\n}\n","import type { IActionHttp, IActorHttpOutput, MediatorHttp, IActorHttpArgs } from '@comunica/bus-http';\nimport { ActorHttp } from '@comunica/bus-http';\nimport { KeysHttpProxy } from '@comunica/context-entries';\nimport type { IMediatorTypeTime } from '@comunica/mediatortype-time';\nimport type { IProxyHandler } from '@comunica/types';\n\n/**\n * A comunica Proxy Http Actor.\n */\nexport class ActorHttpProxy extends ActorHttp {\n public readonly mediatorHttp: MediatorHttp;\n\n public constructor(args: IActorHttpProxyArgs) {\n super(args);\n }\n\n public async test(action: IActionHttp): Promise {\n const proxyHandler: IProxyHandler | undefined = action.context.get(KeysHttpProxy.httpProxyHandler);\n if (!proxyHandler) {\n throw new Error(`Actor ${this.name} could not find a proxy handler in the context.`);\n }\n if (!await proxyHandler.getProxy(action)) {\n throw new Error(`Actor ${this.name} could not determine a proxy for the given request.`);\n }\n return { time: Number.POSITIVE_INFINITY };\n }\n\n public async run(action: IActionHttp): Promise {\n const requestedUrl = typeof action.input === 'string' ? action.input : action.input.url;\n const proxyHandler: IProxyHandler = action.context.get(KeysHttpProxy.httpProxyHandler)!;\n\n // Send a request for the modified request\n const output = await this.mediatorHttp.mediate({\n ...await proxyHandler.getProxy(action),\n context: action.context.delete(KeysHttpProxy.httpProxyHandler),\n });\n\n // Modify the response URL\n // use defineProperty to allow modification of unmodifiable objects\n Object.defineProperty(output, 'url', {\n configurable: true,\n enumerable: true,\n get: () => output.headers.get('x-final-url') ?? requestedUrl,\n });\n return output;\n }\n}\n\nexport interface IActorHttpProxyArgs extends IActorHttpArgs {\n /**\n * The HTTP mediator\n */\n mediatorHttp: MediatorHttp;\n}\n","import type { IProxyHandler, IRequest } from '@comunica/types';\n\n/**\n * A proxy handler that prefixes all URLs with a given string.\n */\nexport class ProxyHandlerStatic implements IProxyHandler {\n private readonly prefixUrl: string;\n\n public constructor(prefixUrl: string) {\n this.prefixUrl = prefixUrl;\n }\n\n public async getProxy(request: IRequest): Promise {\n return {\n init: request.init,\n input: this.modifyInput(request.input),\n };\n }\n\n public modifyInput(input: RequestInfo): RequestInfo {\n if (typeof input === 'string') {\n return this.prefixUrl + input;\n }\n return new Request(this.prefixUrl + input.url, input);\n }\n}\n","import type { IActionHttp, IActorHttpArgs, IActorHttpOutput, MediatorHttp } from '@comunica/bus-http';\nimport { ActorHttp } from '@comunica/bus-http';\nimport { KeysHttpWayback, KeysHttpProxy } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IProxyHandler, IRequest } from '@comunica/types';\n\n// Use require instead of import for default exports, to be compatible with variants of esModuleInterop in tsconfig.\nimport stringifyStream = require('stream-to-string');\nimport 'cross-fetch/polyfill';\n\nconst WAYBACK_URL = 'http://wayback.archive-it.org/';\n\nfunction addWayback(action: IRequest): IRequest {\n const request = new Request(action.input, action.init);\n return {\n input: new Request(new URL(`/${request.url}`, WAYBACK_URL), request),\n };\n}\n\nfunction getProxyHandler(context: IActionContext): (action: IRequest) => Promise {\n const handler = context.get(KeysHttpProxy.httpProxyHandler);\n if (handler) {\n return (action: IRequest) => handler.getProxy(addWayback(action));\n }\n return (action: IRequest) => Promise.resolve(addWayback(action));\n}\n\n/**\n * A Comunica actor to intercept HTTP requests to recover broken links using the WayBack Machine\n */\nexport class ActorHttpWayback extends ActorHttp {\n public readonly mediatorHttp: MediatorHttp;\n\n public constructor(args: IActorHttpWaybackArgs) {\n super(args);\n }\n\n public async test(_action: IActionHttp): Promise {\n return true;\n }\n\n public async run(action: IActionHttp): Promise {\n let result = await this.mediatorHttp.mediate(action);\n\n if (result.status === 404 && action.context.get(KeysHttpWayback.recoverBrokenLinks)) {\n let fallbackResult = await this.mediatorHttp.mediate({\n ...action,\n context: action.context\n .set(KeysHttpWayback.recoverBrokenLinks, false)\n .set(KeysHttpProxy.httpProxyHandler, { getProxy: getProxyHandler(action.context) }),\n });\n\n // If the wayback machine returns a 200 status then use that result\n if (fallbackResult.status === 200) {\n [ result, fallbackResult ] = [ fallbackResult, result ];\n }\n\n // Consume stream to avoid process\n const { body } = fallbackResult;\n if (body) {\n if ('cancel' in body && typeof body.cancel === 'function') {\n await body.cancel();\n } else if ('destroy' in body && typeof (body).destroy === 'function') {\n (body).destroy();\n } else {\n await stringifyStream(ActorHttp.toNodeReadable(body));\n }\n }\n }\n\n return result;\n }\n}\n\nexport interface IActorHttpWaybackArgs extends IActorHttpArgs {\n mediatorHttp: MediatorHttp;\n}\n","/* eslint-disable unicorn/filename-case */\n/* eslint-enable unicorn/filename-case */\nimport { ActorInitQueryBase } from './ActorInitQueryBase';\n\n/* istanbul ignore next */\nif (typeof process === 'undefined') {\n // Polyfills process.nextTick for readable-stream\n globalThis.process = require('process/');\n}\n\nexport class ActorInitQuery extends ActorInitQueryBase {}\n","import type { MediatorHttpInvalidate } from '@comunica/bus-http-invalidate';\nimport type { IActionInit, IActorInitArgs, IActorOutputInit } from '@comunica/bus-init';\nimport { ActorInit } from '@comunica/bus-init';\nimport type { MediatorQueryProcess } from '@comunica/bus-query-process';\nimport type {\n MediatorQueryResultSerializeHandle,\n MediatorQueryResultSerializeMediaTypes,\n MediatorQueryResultSerializeMediaTypeFormats,\n} from '@comunica/bus-query-result-serialize';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A browser-safe comunica Query Init Actor.\n */\nexport class ActorInitQueryBase extends ActorInit implements IActorInitQueryBaseArgs {\n public readonly mediatorQueryResultSerialize: MediatorQueryResultSerializeHandle;\n public readonly mediatorQueryResultSerializeMediaTypeCombiner: MediatorQueryResultSerializeMediaTypes;\n public readonly mediatorQueryResultSerializeMediaTypeFormatCombiner: MediatorQueryResultSerializeMediaTypeFormats;\n public readonly mediatorHttpInvalidate: MediatorHttpInvalidate;\n public readonly mediatorQueryProcess: MediatorQueryProcess;\n\n public readonly queryString?: string;\n public readonly defaultQueryInputFormat?: string;\n public readonly allowNoSources?: boolean;\n public readonly context?: string;\n\n public async test(_action: IActionInit): Promise {\n return true;\n }\n\n public async run(_action: IActionInit): Promise {\n throw new Error('ActorInitSparql#run is not supported in the browser.');\n }\n}\n\nexport interface IActorInitQueryBaseArgs extends IActorInitArgs {\n /**\n * The query process mediator\n */\n mediatorQueryProcess: MediatorQueryProcess;\n /**\n * The query serialize mediator\n */\n mediatorQueryResultSerialize: MediatorQueryResultSerializeHandle;\n /**\n * The query serialize media type combinator\n */\n mediatorQueryResultSerializeMediaTypeCombiner: MediatorQueryResultSerializeMediaTypes;\n /**\n * The query serialize media type format combinator\n */\n mediatorQueryResultSerializeMediaTypeFormatCombiner: MediatorQueryResultSerializeMediaTypeFormats;\n /**\n * The HTTP cache invalidation mediator\n */\n mediatorHttpInvalidate: MediatorHttpInvalidate;\n\n /**\n * A SPARQL query string\n */\n queryString?: string;\n /**\n * The default query input format\n * @default {sparql}\n */\n defaultQueryInputFormat?: string;\n /**\n * If it should be allowed that the user passes no sources.\n * @default {false}\n */\n allowNoSources?: boolean;\n /**\n * A JSON string of a query operation context\n */\n context?: string;\n}\n","import type { IActionSparqlSerialize, IActorQueryResultSerializeOutput } from '@comunica/bus-query-result-serialize';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport { ActionContext } from '@comunica/core';\nimport type {\n IActionContext,\n IQueryOperationResult,\n IQueryEngine,\n IQueryExplained,\n QueryFormatType,\n QueryType,\n QueryExplainMode,\n BindingsStream,\n QueryAlgebraContext,\n QueryStringContext,\n IQueryBindingsEnhanced,\n IQueryQuadsEnhanced,\n QueryEnhanced,\n IQueryContextCommon,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport type { ActorInitQueryBase } from './ActorInitQueryBase';\n\n/**\n * Base implementation of a Comunica query engine.\n */\nexport class QueryEngineBase<\n // eslint-disable-next-line unused-imports/no-unused-vars\n QueryContext extends IQueryContextCommon = IQueryContextCommon,\n QueryStringContextInner extends RDF.QueryStringContext = QueryStringContext,\n QueryAlgebraContextInner extends RDF.QueryAlgebraContext = QueryAlgebraContext,\n>\nimplements IQueryEngine {\n private readonly actorInitQuery: ActorInitQueryBase;\n\n public constructor(actorInitQuery: ActorInitQueryBase) {\n this.actorInitQuery = actorInitQuery;\n }\n\n public async queryBindings(\n query: QueryFormatTypeInner,\n context?: QueryFormatTypeInner extends string ? QueryStringContextInner : QueryAlgebraContextInner,\n ): Promise {\n return this.queryOfType(query, context, 'bindings');\n }\n\n public async queryQuads(\n query: QueryFormatTypeInner,\n context?: QueryFormatTypeInner extends string ? QueryStringContextInner : QueryAlgebraContextInner,\n ): Promise & RDF.ResultStream> {\n return this.queryOfType(query, context, 'quads');\n }\n\n public async queryBoolean(\n query: QueryFormatTypeInner,\n context?: QueryFormatTypeInner extends string ? QueryStringContextInner : QueryAlgebraContextInner,\n ): Promise {\n return this.queryOfType(query, context, 'boolean');\n }\n\n public async queryVoid(\n query: QueryFormatTypeInner,\n context?: QueryFormatTypeInner extends string ? QueryStringContextInner : QueryAlgebraContextInner,\n ): Promise {\n return this.queryOfType(query, context, 'void');\n }\n\n protected async queryOfType(\n query: QueryFormatTypeInner,\n context: undefined | (QueryFormatTypeInner extends string ?\n QueryStringContextInner : QueryAlgebraContextInner),\n expectedType: QueryTypeOut['resultType'],\n ): Promise> {\n const result = await this.query(query, context);\n if (result.resultType === expectedType) {\n return > await result.execute();\n }\n throw new Error(`Query result type '${expectedType}' was expected, while '${result.resultType}' was found.`);\n }\n\n /**\n * Evaluate the given query\n * @param query A query string or algebra.\n * @param context An optional query context.\n * @return {Promise} A promise that resolves to the query output.\n */\n public async query(\n query: QueryFormatTypeInner,\n context?: QueryFormatTypeInner extends string ? QueryStringContextInner : QueryAlgebraContextInner,\n ): Promise {\n const output = await this.queryOrExplain(query, context);\n if ('explain' in output) {\n throw new Error(`Tried to explain a query when in query-only mode`);\n }\n return output;\n }\n\n /**\n * Explain the given query\n * @param query A query string or algebra.\n * @param context An optional query context.\n * @param explainMode The explain mode.\n * @return {Promise} A promise that resolves to\n * the query output or explanation.\n */\n public async explain(\n query: QueryFormatTypeInner,\n context: QueryFormatTypeInner extends string ? QueryStringContextInner : QueryAlgebraContextInner,\n explainMode: QueryExplainMode,\n ): Promise {\n context.explain = explainMode;\n const output = await this.queryOrExplain(query, context);\n return output;\n }\n\n /**\n * Evaluate or explain the given query\n * @param query A query string or algebra.\n * @param context An optional query context.\n * @return {Promise} A promise that resolves to\n * the query output or explanation.\n */\n public async queryOrExplain(\n query: QueryFormatTypeInner,\n context?: QueryFormatTypeInner extends string ? QueryStringContextInner : QueryAlgebraContextInner,\n ): Promise {\n const actionContext: IActionContext = ActionContext.ensureActionContext(context);\n\n // Invalidate caches if cache argument is set to false\n if (actionContext.get(KeysInitQuery.noCache)) {\n await this.invalidateHttpCache();\n }\n\n // Invoke query process\n const { result } = await this.actorInitQuery.mediatorQueryProcess.mediate({ query, context: actionContext });\n if ('explain' in result) {\n return result;\n }\n return QueryEngineBase.internalToFinalResult(result);\n }\n\n /**\n * @param context An optional context.\n * @return {Promise<{[p: string]: number}>} All available SPARQL (weighted) result media types.\n */\n public async getResultMediaTypes(context?: any): Promise> {\n context = ActionContext.ensureActionContext(context);\n return (await this.actorInitQuery.mediatorQueryResultSerializeMediaTypeCombiner\n .mediate({ context, mediaTypes: true })).mediaTypes;\n }\n\n /**\n * @param context An optional context.\n * @return {Promise<{[p: string]: number}>} All available SPARQL result media type formats.\n */\n public async getResultMediaTypeFormats(context?: any): Promise> {\n context = ActionContext.ensureActionContext(context);\n return (await this.actorInitQuery.mediatorQueryResultSerializeMediaTypeFormatCombiner\n .mediate({ context, mediaTypeFormats: true })).mediaTypeFormats;\n }\n\n /**\n * Convert a query result to a string stream based on a certain media type.\n * @param {IQueryOperationResult} queryResult A query result.\n * @param {string} mediaType A media type.\n * @param {ActionContext} context An optional context.\n * @return {Promise} A text stream.\n */\n public async resultToString(queryResult: RDF.Query, mediaType?: string, context?: any):\n Promise {\n context = ActionContext.ensureActionContext(context);\n if (!mediaType) {\n switch (queryResult.resultType) {\n case 'bindings':\n mediaType = 'application/json';\n break;\n case 'quads':\n mediaType = 'application/trig';\n break;\n default:\n mediaType = 'simple';\n break;\n }\n }\n const handle: IActionSparqlSerialize = { ...await QueryEngineBase.finalToInternalResult(queryResult), context };\n return (await this.actorInitQuery.mediatorQueryResultSerialize\n .mediate({ context, handle, handleMediaType: mediaType })).handle;\n }\n\n /**\n * Invalidate all internal caches related to the given page URL.\n * If no page URL is given, then all pages will be invalidated.\n * @param {string} url The page URL to invalidate.\n * @param context An optional ActionContext to pass to the actors.\n * @return {Promise} A promise resolving when the caches have been invalidated.\n */\n public invalidateHttpCache(url?: string, context?: any): Promise {\n context = ActionContext.ensureActionContext(context);\n return this.actorInitQuery.mediatorHttpInvalidate.mediate({ url, context });\n }\n\n /**\n * Convert an internal query result to a final one.\n * @param internalResult An intermediary query result.\n */\n public static internalToFinalResult(internalResult: IQueryOperationResult): QueryType {\n switch (internalResult.type) {\n case 'bindings':\n return {\n resultType: 'bindings',\n execute: async() => internalResult.bindingsStream,\n metadata: async() => await internalResult.metadata(),\n context: internalResult.context,\n };\n case 'quads':\n return {\n resultType: 'quads',\n execute: async() => internalResult.quadStream,\n metadata: async() => await internalResult.metadata(),\n context: internalResult.context,\n };\n case 'boolean':\n return {\n resultType: 'boolean',\n execute: async() => internalResult.execute(),\n context: internalResult.context,\n };\n case 'void':\n return {\n resultType: 'void',\n execute: async() => internalResult.execute(),\n context: internalResult.context,\n };\n }\n }\n\n /**\n * Convert a final query result to an internal one.\n * @param finalResult A final query result.\n */\n public static async finalToInternalResult(finalResult: RDF.Query): Promise {\n switch (finalResult.resultType) {\n case 'bindings':\n return {\n type: 'bindings',\n bindingsStream: await finalResult.execute(),\n metadata: async() => await finalResult.metadata(),\n };\n case 'quads':\n return {\n type: 'quads',\n quadStream: > await finalResult.execute(),\n metadata: async() => await finalResult.metadata(),\n };\n case 'boolean':\n return {\n type: 'boolean',\n execute: () => finalResult.execute(),\n };\n case 'void':\n return {\n type: 'void',\n execute: () => finalResult.execute(),\n };\n }\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport { getDataDestinationValue } from '@comunica/bus-rdf-update-quads';\nimport { KeysInitQuery, KeysQueryOperation, KeysRdfUpdateQuads } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport type { IDataDestination, IQuerySourceWrapper } from '@comunica/types';\nimport { Algebra, Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Assign Sources Exhaustive Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationAssignSourcesExhaustive extends ActorOptimizeQueryOperation {\n public constructor(args: IActorOptimizeQueryOperationArgs) {\n super(args);\n }\n\n public async test(_action: IActionOptimizeQueryOperation): Promise {\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const sources: IQuerySourceWrapper[] = action.context.get(KeysQueryOperation.querySources) ?? [];\n if (sources.length === 0) {\n return { operation: action.operation, context: action.context };\n }\n if (sources.length === 1) {\n const sourceWrapper = sources[0];\n const destination: IDataDestination | undefined = action.context.get(KeysRdfUpdateQuads.destination);\n if (!destination || sourceWrapper.source.referenceValue === getDataDestinationValue(destination)) {\n try {\n const shape = await sourceWrapper.source.getSelectorShape(action.context);\n if (ActorQueryOperation.doesShapeAcceptOperation(shape, action.operation)) {\n return {\n operation: ActorQueryOperation.assignOperationSource(action.operation, sourceWrapper),\n context: action.context,\n };\n }\n } catch {\n // Fallback to the default case when the selector shape does not exist,\n // which can occur for a non-existent destination.\n }\n }\n }\n return {\n operation: this.assignExhaustive(action.operation, sources),\n // We only keep queryString in the context if we only have a single source that accepts the full operation.\n // In that case, the queryString can be sent to the source as-is.\n context: action.context\n .delete(KeysInitQuery.queryString),\n };\n }\n\n /**\n * Assign the given sources to the leaves in the given query operation.\n * Leaves will be wrapped in a union operation and duplicated for every source.\n * The input operation will not be modified.\n * @param operation The input operation.\n * @param sources The sources to assign.\n */\n public assignExhaustive(operation: Algebra.Operation, sources: IQuerySourceWrapper[]): Algebra.Operation {\n // eslint-disable-next-line ts/no-this-alias\n const self = this;\n return Util.mapOperation(operation, {\n [Algebra.types.PATTERN](subOperation, factory) {\n if (sources.length === 1) {\n return {\n result: ActorQueryOperation.assignOperationSource(subOperation, sources[0]),\n recurse: false,\n };\n }\n return {\n result: factory.createUnion(sources\n .map(source => ActorQueryOperation.assignOperationSource(subOperation, source))),\n recurse: false,\n };\n },\n [Algebra.types.LINK](subOperation, factory) {\n if (sources.length === 1) {\n return {\n result: ActorQueryOperation.assignOperationSource(subOperation, sources[0]),\n recurse: false,\n };\n }\n return {\n result: factory.createAlt(sources\n .map(source => ActorQueryOperation.assignOperationSource(subOperation, source))),\n recurse: false,\n };\n },\n [Algebra.types.NPS](subOperation, factory) {\n if (sources.length === 1) {\n return {\n result: ActorQueryOperation.assignOperationSource(subOperation, sources[0]),\n recurse: false,\n };\n }\n return {\n result: factory.createAlt(sources\n .map(source => ActorQueryOperation.assignOperationSource(subOperation, source))),\n recurse: false,\n };\n },\n [Algebra.types.SERVICE](subOperation) {\n return {\n result: subOperation,\n recurse: false,\n };\n },\n [Algebra.types.CONSTRUCT](subOperation, factory) {\n return {\n result: factory.createConstruct(\n self.assignExhaustive(subOperation.input, sources),\n subOperation.template,\n ),\n recurse: false,\n };\n },\n [Algebra.types.DELETE_INSERT](subOperation, factory) {\n return {\n result: factory.createDeleteInsert(\n subOperation.delete,\n subOperation.insert,\n subOperation.where ? self.assignExhaustive(subOperation.where, sources) : undefined,\n ),\n recurse: false,\n };\n },\n });\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { Algebra, Factory } from 'sparqlalgebrajs';\nimport { Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica BGP to Join Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationBgpToJoin extends ActorOptimizeQueryOperation {\n public async test(_action: IActionOptimizeQueryOperation): Promise {\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const operation = Util.mapOperation(action.operation, {\n bgp(op: Algebra.Bgp, factory: Factory) {\n return {\n recurse: false,\n result: factory.createJoin(op.patterns),\n };\n },\n });\n return { operation, context: action.context };\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport { KeysInitQuery } from '@comunica/context-entries/lib/Keys';\nimport type { IActorTest } from '@comunica/core';\nimport type { Algebra, Factory } from 'sparqlalgebrajs';\nimport { Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Construct Distinct Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationConstructDistinct extends ActorOptimizeQueryOperation {\n public constructor(args: IActorOptimizeQueryOperationArgs) {\n super(args);\n }\n\n public async test(action: IActionOptimizeQueryOperation): Promise {\n if (!action.context.has(KeysInitQuery.distinctConstruct)) {\n throw new Error(`${this.name} was not enabled by the query.`);\n }\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const operation = Util.mapOperation(action.operation, {\n construct(op: Algebra.Construct, factory: Factory) {\n return {\n recurse: false,\n result: factory.createDistinct(factory.createConstruct(op.input, op.template)),\n };\n },\n });\n return { operation, context: action.context.delete(KeysInitQuery.distinctConstruct) };\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport { Algebra, Factory } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\nconst AF = new Factory();\n\n/**\n * A comunica Describe To Constructs Subject Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationDescribeToConstructsSubject extends ActorOptimizeQueryOperation {\n public constructor(args: IActorOptimizeQueryOperationArgs) {\n super(args);\n }\n\n public async test(action: IActionOptimizeQueryOperation): Promise {\n if (action.operation.type !== Algebra.types.DESCRIBE) {\n throw new Error(`Actor ${this.name} only supports describe operations, but got ${action.operation.type}`);\n }\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const operationOriginal: Algebra.Describe = action.operation;\n\n // Create separate construct queries for all non-variable terms\n const operations: Algebra.Construct[] = operationOriginal.terms\n .filter(term => term.termType !== 'Variable')\n .map((term: RDF.Term) => {\n // Transform each term to a separate construct operation with S ?p ?o patterns (BGP) for all terms\n const patterns: RDF.BaseQuad[] = [\n DF.quad(term, DF.variable('__predicate'), DF.variable('__object')),\n ];\n\n // eslint-disable-next-line unicorn/no-array-for-each\n patterns.forEach((templatePattern: any) => templatePattern.type = 'pattern');\n const templateOperation: Algebra.Operation = {\n type: Algebra.types.BGP,\n patterns: patterns,\n };\n\n // Create a construct query\n return {\n input: templateOperation,\n template: patterns,\n type: 'construct',\n };\n });\n\n // If we have variables in the term list,\n // create one separate construct operation to determine these variables using the input pattern.\n if (operations.length !== operationOriginal.terms.length) {\n let variablePatterns: Algebra.Pattern[] = [];\n operationOriginal.terms\n .filter(term => term.termType === 'Variable')\n // eslint-disable-next-line unicorn/no-array-for-each\n .forEach((term: RDF.Term, i: number) => {\n // Transform each term to an S ?p ?o pattern in a non-conflicting way\n const patterns: RDF.BaseQuad[] = [\n DF.quad(term, DF.variable(`__predicate${i}`), DF.variable(`__object${i}`)),\n ];\n\n // eslint-disable-next-line unicorn/no-array-for-each\n patterns.forEach((templatePattern: any) => templatePattern.type = 'pattern');\n variablePatterns = [ ...variablePatterns, ... patterns ];\n });\n\n // Add a single construct for the variables\n // This requires a join between the input pattern and our variable patterns that form a simple BGP\n operations.push({\n input: {\n type: Algebra.types.JOIN,\n input: [\n operationOriginal.input,\n { type: Algebra.types.BGP, patterns: variablePatterns },\n ],\n },\n template: variablePatterns,\n type: Algebra.types.CONSTRUCT,\n });\n }\n\n // Union the construct operations\n const operation = AF.createUnion(operations, false);\n\n return { operation, context: action.context };\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { uniqTerms } from 'rdf-terms';\nimport type { Factory } from 'sparqlalgebrajs';\nimport { Algebra, Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Filter Pushdown Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationFilterPushdown extends ActorOptimizeQueryOperation {\n public constructor(args: IActorOptimizeQueryOperationArgs) {\n super(args);\n }\n\n public async test(_action: IActionOptimizeQueryOperation): Promise {\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n // eslint-disable-next-line ts/no-this-alias\n const self = this;\n const operation = Util.mapOperation(action.operation, {\n filter(op: Algebra.Filter, factory: Factory) {\n // For all filter expressions in the operation,\n // we attempt to push them down as deep as possible into the algebra.\n const variables = self.getExpressionVariables(op.expression);\n return {\n recurse: true,\n result: self.filterPushdown(op.expression, variables, op.input, factory, action.context),\n };\n },\n });\n return { operation, context: action.context };\n }\n\n /**\n * Get all variables inside the given expression.\n * @param expression An expression.\n * @return An array of variables, or undefined if the expression is unsupported for pushdown.\n */\n public getExpressionVariables(expression: Algebra.Expression): RDF.Variable[] {\n switch (expression.expressionType) {\n case Algebra.expressionTypes.AGGREGATE:\n case Algebra.expressionTypes.WILDCARD:\n throw new Error(`Getting expression variables is not supported for ${expression.expressionType}`);\n case Algebra.expressionTypes.EXISTENCE:\n return Util.inScopeVariables(expression.input);\n case Algebra.expressionTypes.NAMED:\n return [];\n case Algebra.expressionTypes.OPERATOR:\n return uniqTerms(expression.args.flatMap(arg => this.getExpressionVariables(arg)));\n case Algebra.expressionTypes.TERM:\n if (expression.term.termType === 'Variable') {\n return [ expression.term ];\n }\n return [];\n }\n }\n\n protected getOverlappingOperations(\n operation: Algebra.Operation,\n expressionVariables: RDF.Variable[],\n ): {\n fullyOverlapping: Algebra.Operation[];\n partiallyOverlapping: Algebra.Operation[];\n notOverlapping: Algebra.Operation[];\n } {\n const fullyOverlapping: Algebra.Operation[] = [];\n const partiallyOverlapping: Algebra.Operation[] = [];\n const notOverlapping: Algebra.Operation[] = [];\n for (const input of operation.input) {\n const inputVariables = Util.inScopeVariables(input);\n if (this.variablesSubSetOf(expressionVariables, inputVariables)) {\n fullyOverlapping.push(input);\n } else if (this.variablesIntersect(expressionVariables, inputVariables)) {\n partiallyOverlapping.push(input);\n } else {\n notOverlapping.push(input);\n }\n }\n\n return {\n fullyOverlapping,\n partiallyOverlapping,\n notOverlapping,\n };\n }\n\n /**\n * Recursively push down the given expression into the given operation if possible.\n * Different operators have different semantics for choosing whether or not to push down,\n * and how this pushdown is done.\n * For every passed operator, it is checked whether or not the filter will have any effect on the operation.\n * If not, the filter is voided.\n * @param expression An expression to push down.\n * @param expressionVariables The variables inside the given expression.\n * @param operation The operation to push down into.\n * @param factory An algebra factory.\n * @param context The action context.\n * @return The modified operation.\n */\n public filterPushdown(\n expression: Algebra.Expression,\n expressionVariables: RDF.Variable[],\n operation: Algebra.Operation,\n factory: Factory,\n context: IActionContext,\n ): Algebra.Operation {\n if (this.isExpressionFalse(expression)) {\n return factory.createUnion([]);\n }\n\n switch (operation.type) {\n case Algebra.types.EXTEND:\n // Pass if the variable is not part of the expression\n if (!this.variablesIntersect([ operation.variable ], expressionVariables)) {\n return factory.createExtend(\n this.filterPushdown(expression, expressionVariables, operation.input, factory, context),\n operation.variable,\n operation.expression,\n );\n }\n return factory.createFilter(operation, expression);\n case Algebra.types.FILTER:\n // Always pass\n return factory.createFilter(\n this.filterPushdown(expression, expressionVariables, operation.input, factory, context),\n operation.expression,\n );\n case Algebra.types.JOIN: {\n // Don't push down for empty join\n if (operation.input.length === 0) {\n return factory.createFilter(operation, expression);\n }\n\n // Determine overlapping operations\n const {\n fullyOverlapping,\n partiallyOverlapping,\n notOverlapping,\n } = this.getOverlappingOperations(operation, expressionVariables);\n\n const joins: Algebra.Operation[] = [];\n this.logDebug(context, `Push down filter across join entries with ${fullyOverlapping.length} fully overlapping, ${partiallyOverlapping.length} partially overlapping, and ${notOverlapping.length} not overlapping`);\n if (fullyOverlapping.length > 0) {\n joins.push(factory.createJoin(fullyOverlapping\n .map(input => this.filterPushdown(expression, expressionVariables, input, factory, context))));\n }\n if (partiallyOverlapping.length > 0) {\n joins.push(factory.createFilter(factory.createJoin(partiallyOverlapping, false), expression));\n }\n if (notOverlapping.length > 0) {\n joins.push(...notOverlapping);\n }\n\n return joins.length === 1 ? joins[0] : factory.createJoin(joins);\n }\n case Algebra.types.NOP:\n return operation;\n case Algebra.types.PROJECT:\n // Push down if variables overlap\n if (this.variablesIntersect(operation.variables, expressionVariables)) {\n return factory.createProject(\n this.filterPushdown(expression, expressionVariables, operation.input, factory, context),\n operation.variables,\n );\n }\n // Void expression otherwise\n return operation;\n case Algebra.types.UNION: {\n // Determine overlapping operations\n const {\n fullyOverlapping,\n partiallyOverlapping,\n notOverlapping,\n } = this.getOverlappingOperations(operation, expressionVariables);\n\n const unions: Algebra.Operation[] = [];\n this.logDebug(context, `Push down filter across union entries with ${fullyOverlapping.length} fully overlapping, ${partiallyOverlapping.length} partially overlapping, and ${notOverlapping.length} not overlapping`);\n if (fullyOverlapping.length > 0) {\n unions.push(factory.createUnion(fullyOverlapping\n .map(input => this.filterPushdown(expression, expressionVariables, input, factory, context))));\n }\n if (partiallyOverlapping.length > 0) {\n unions.push(factory.createFilter(factory.createUnion(partiallyOverlapping, false), expression));\n }\n if (notOverlapping.length > 0) {\n unions.push(...notOverlapping);\n }\n\n return unions.length === 1 ? unions[0] : factory.createUnion(unions);\n }\n case Algebra.types.VALUES:\n // Only keep filter if it overlaps with the variables\n if (this.variablesIntersect(operation.variables, expressionVariables)) {\n return factory.createFilter(operation, expression);\n }\n return operation;\n case Algebra.types.LEFT_JOIN:\n case Algebra.types.MINUS:\n case Algebra.types.ALT:\n case Algebra.types.ASK:\n case Algebra.types.BGP:\n case Algebra.types.CONSTRUCT:\n case Algebra.types.DESCRIBE:\n case Algebra.types.DISTINCT:\n case Algebra.types.EXPRESSION:\n case Algebra.types.FROM:\n case Algebra.types.GRAPH:\n case Algebra.types.GROUP:\n case Algebra.types.INV:\n case Algebra.types.LINK:\n case Algebra.types.NPS:\n case Algebra.types.ONE_OR_MORE_PATH:\n case Algebra.types.ORDER_BY:\n case Algebra.types.PATTERN:\n case Algebra.types.REDUCED:\n case Algebra.types.SEQ:\n case Algebra.types.SERVICE:\n case Algebra.types.SLICE:\n case Algebra.types.PATH:\n case Algebra.types.ZERO_OR_MORE_PATH:\n case Algebra.types.ZERO_OR_ONE_PATH:\n case Algebra.types.COMPOSITE_UPDATE:\n case Algebra.types.DELETE_INSERT:\n case Algebra.types.LOAD:\n case Algebra.types.CLEAR:\n case Algebra.types.CREATE:\n case Algebra.types.DROP:\n case Algebra.types.ADD:\n case Algebra.types.MOVE:\n case Algebra.types.COPY:\n // Operations that do not support pushing down\n // Left-join and minus might be possible to support in the future.\n return factory.createFilter(operation, expression);\n }\n }\n\n /**\n * Check if there is an overlap between the two given lists of variables.\n * @param varsA A list of variables.\n * @param varsB A list of variables.\n */\n public variablesIntersect(varsA: RDF.Variable[], varsB: RDF.Variable[]): boolean {\n return varsA.some(varA => varsB.some(varB => varA.equals(varB)));\n }\n\n /**\n * Check if all variables from the first list are included in the second list.\n * The second list may contain other variables as well.\n * @param varsNeedles A list of variables to search for.\n * @param varsHaystack A list of variables to search in.\n */\n public variablesSubSetOf(varsNeedles: RDF.Variable[], varsHaystack: RDF.Variable[]): boolean {\n return varsNeedles.length <= varsHaystack.length &&\n varsNeedles.every(varA => varsHaystack.some(varB => varA.equals(varB)));\n }\n\n /**\n * Check if an expression is simply 'false'.\n * @param expression An expression.\n */\n public isExpressionFalse(expression: Algebra.Expression): boolean {\n return (expression.term && expression.term.termType === 'Literal' && expression.term.value === 'false');\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQuerySourceWrapper } from '@comunica/types';\nimport { Algebra, Factory } from 'sparqlalgebrajs';\n\nconst AF = new Factory();\n\n/**\n * A comunica Group Sources Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationGroupSources extends ActorOptimizeQueryOperation {\n public constructor(args: IActorOptimizeQueryOperationArgs) {\n super(args);\n }\n\n public async test(action: IActionOptimizeQueryOperation): Promise {\n if (ActorQueryOperation.getOperationSource(action.operation)) {\n throw new Error(`Actor ${this.name} does not work with top-level operation sources.`);\n }\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n return { operation: await this.groupOperation(action.operation, action.context), context: action.context };\n }\n\n /**\n * Group operations belonging to the same source together, only if that source accepts the grouped operations.\n * This grouping will be done recursively for the whole operation tree.\n * Operations annotated with sources are considered leaves in the tree.\n * @param operation An operation to group.\n * @param context The action context.\n */\n public async groupOperation(operation: Algebra.Operation, context: IActionContext): Promise {\n // Return operation as-is if the operation already has a single source, or if the operation has no children.\n if (ActorQueryOperation.getOperationSource(operation) ?? !('input' in operation)) {\n return operation;\n }\n\n // If operation has a single input, move source annotation upwards if the source can handle it.\n if (!Array.isArray(operation.input)) {\n const groupedInput = await this.groupOperation(operation.input, context);\n if (groupedInput.metadata?.scopedSource) {\n const source: IQuerySourceWrapper = ActorQueryOperation.getOperationSource(groupedInput)!;\n if (ActorQueryOperation\n .doesShapeAcceptOperation(await source.source.getSelectorShape(context), operation)) {\n this.logDebug(context, `Hoist 1 source-specific operation into a single ${operation.type} operation for ${source.source.toString()}`);\n ActorQueryOperation.removeOperationSource(groupedInput);\n operation = ActorQueryOperation.assignOperationSource(operation, source);\n }\n }\n return { ...operation, input: groupedInput };\n }\n\n // If operation has multiple inputs, cluster source annotations.\n const inputs: Algebra.Operation[] = await Promise.all(operation.input\n .map(subInput => this.groupOperation(subInput, context)));\n const clusters = this.clusterOperationsWithEqualSources(inputs);\n\n // If we just have a single cluster, move the source annotation upwards\n if (clusters.length === 1) {\n const newInputs = clusters[0];\n const source = ActorQueryOperation.getOperationSource(clusters[0][0])!;\n return {\n ...await this.moveSourceAnnotationUpwardsIfPossible(operation, newInputs, source, context),\n input: newInputs,\n };\n }\n\n // If the number of clusters is equal to the number of original inputs, do nothing.\n if (clusters.length === inputs.length) {\n return { ...operation, input: inputs };\n }\n\n // If we have multiple clusters, created nested multi-operations\n let multiFactoryMethod: (children: Algebra.Operation[], flatten: boolean) => Algebra.Operation;\n switch (operation.type) {\n case Algebra.types.JOIN:\n multiFactoryMethod = AF.createJoin.bind(AF);\n break;\n case Algebra.types.UNION:\n multiFactoryMethod = AF.createUnion.bind(AF);\n break;\n case Algebra.types.ALT:\n multiFactoryMethod = AF.createAlt.bind(AF);\n break;\n case Algebra.types.SEQ:\n multiFactoryMethod = AF.createSeq.bind(AF);\n break;\n default:\n // While LeftJoin and Minus are also multi-operations,\n // these can never occur because they only have 2 inputs,\n // so these cases will always be captured by one of the 2 if-cases above\n // (clusters.length === 1 or clusters.length === input.length)\n\n // In all other cases, error\n throw new Error(`Unsupported operation '${operation.type}' detected while grouping sources`);\n }\n return await this.groupOperationMulti(clusters, multiFactoryMethod, context);\n }\n\n protected async groupOperationMulti(\n clusters: Algebra.Operation[][],\n factoryMethod: (children: Algebra.Operation[], flatten: boolean) => Algebra.Operation,\n context: IActionContext,\n ): Promise {\n let flatten = true;\n const nestedMerges = await Promise.all(clusters.map(async(cluster) => {\n const source = ActorQueryOperation.getOperationSource(cluster[0])!;\n const merged = await this\n .moveSourceAnnotationUpwardsIfPossible(factoryMethod(cluster, true), cluster, source, context);\n if (ActorQueryOperation.getOperationSource(merged)) {\n flatten = false;\n }\n return merged;\n }));\n return factoryMethod(nestedMerges, flatten);\n }\n\n /**\n * Cluster the given operations by equal source annotations.\n * @param operationsIn An array of operations to cluster.\n */\n public clusterOperationsWithEqualSources(operationsIn: Algebra.Operation[]): Algebra.Operation[][] {\n // Operations can have a source, or no source at all\n const sourceOperations: Map = new Map();\n const sourcelessOperations: Algebra.Operation[] = [];\n\n // Cluster by source\n for (const operation of operationsIn) {\n const source: IQuerySourceWrapper = ActorQueryOperation.getOperationSource(operation)!;\n if (source) {\n if (!sourceOperations.has(source)) {\n sourceOperations.set(source, []);\n }\n sourceOperations.get(source)!.push(operation);\n } else {\n sourcelessOperations.push(operation);\n }\n }\n\n // Return clusters\n const clusters: Algebra.Operation[][] = [];\n if (sourcelessOperations.length > 0) {\n clusters.push(sourcelessOperations);\n }\n for (const [ source, operations ] of sourceOperations.entries()) {\n clusters.push(operations\n .map(operation => ActorQueryOperation.assignOperationSource(operation, source)));\n }\n return clusters;\n }\n\n /**\n * If the given source accepts the grouped operation, annotate the grouped operation with the source,\n * and remove the source annotation from the seperate input operations.\n * Otherwise, return the grouped operation unchanged.\n * @param operation A grouped operation consisting of all given input operations.\n * @param inputs An array of operations that share the same source annotation.\n * @param source The common source.\n * @param context The action context.\n */\n public async moveSourceAnnotationUpwardsIfPossible(\n operation: O,\n inputs: Algebra.Operation[],\n source: IQuerySourceWrapper | undefined,\n context: IActionContext,\n ): Promise {\n if (source && ActorQueryOperation\n .doesShapeAcceptOperation(await source.source.getSelectorShape(context), operation)) {\n this.logDebug(context, `Hoist ${inputs.length} source-specific operations into a single ${operation.type} operation for ${source.source.toString()}`);\n operation = ActorQueryOperation.assignOperationSource(operation, source);\n for (const input of inputs) {\n ActorQueryOperation.removeOperationSource(input);\n }\n }\n return operation;\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { Algebra, Factory } from 'sparqlalgebrajs';\nimport { Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Join BGP Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationJoinBgp extends ActorOptimizeQueryOperation {\n public async test(_action: IActionOptimizeQueryOperation): Promise {\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const operation = Util.mapOperation(action.operation, {\n join(op: Algebra.Join, factory: Factory) {\n if (op.input.every(subInput => subInput.type === 'bgp')) {\n return {\n recurse: false,\n result: factory.createBgp(op.input.flatMap(subInput => subInput.patterns)),\n };\n }\n return {\n recurse: false,\n result: op,\n };\n },\n });\n return { operation, context: action.context };\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { Algebra, Factory } from 'sparqlalgebrajs';\nimport { Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Join Connected Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationJoinConnected extends ActorOptimizeQueryOperation {\n public async test(_action: IActionOptimizeQueryOperation): Promise {\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const operation = Util.mapOperation(action.operation, {\n join(op: Algebra.Join, factory: Factory) {\n return {\n recurse: false,\n result: ActorOptimizeQueryOperationJoinConnected.cluster(op, factory),\n };\n },\n });\n return { operation, context: action.context };\n }\n\n /**\n * Iteratively cluster join entries based on their overlapping variables.\n * @param op A join operation.\n * @param factory An algebra factory.\n */\n public static cluster(op: Algebra.Join, factory: Factory): Algebra.Join {\n // Initialize each entry to be in a separate cluster\n const initialClusters: IJoinCluster[] = op.input.map(subOp => ({\n inScopeVariables: Object.fromEntries(Util.inScopeVariables(subOp).map(variable => [ variable.value, true ])),\n entries: [ subOp ],\n }));\n\n // Iteratively merge clusters until they don't change anymore\n let oldClusters: IJoinCluster[];\n let newClusters: IJoinCluster[] = initialClusters;\n do {\n oldClusters = newClusters;\n newClusters = ActorOptimizeQueryOperationJoinConnected.clusterIteration(oldClusters);\n } while (oldClusters.length !== newClusters.length);\n\n // Create new join operation of latest clusters\n const subJoins = newClusters.map(cluster => factory.createJoin(cluster.entries));\n return subJoins.length === 1 ? subJoins[0] : factory.createJoin(subJoins, false);\n }\n\n /**\n * Perform a single clustering iteration.\n * Clusters will be joined if they have overlapping variables.\n * @param oldCluster\n */\n public static clusterIteration(oldCluster: IJoinCluster[]): IJoinCluster[] {\n const newClusters: IJoinCluster[] = [];\n\n for (const entry of oldCluster) {\n // Try to add entry to a join cluster\n let joined = false;\n for (const newEntry of newClusters) {\n if (ActorOptimizeQueryOperationJoinConnected\n .haveOverlappingVariables(entry.inScopeVariables, newEntry.inScopeVariables)) {\n newEntry.entries = [ ...newEntry.entries, ...entry.entries ];\n newEntry.inScopeVariables = { ...newEntry.inScopeVariables, ...entry.inScopeVariables };\n joined = true;\n break;\n }\n }\n\n // If none was found, create new cluster\n if (!joined) {\n newClusters.push({\n inScopeVariables: entry.inScopeVariables,\n entries: entry.entries,\n });\n }\n }\n\n return newClusters;\n }\n\n /**\n * Check if the two given variable objects are overlapping.\n * @param variablesA A variables objects.\n * @param variablesB A variables objects.\n */\n public static haveOverlappingVariables(\n variablesA: Record,\n variablesB: Record,\n ): boolean {\n for (const variableA of Object.keys(variablesA)) {\n if (variablesB[variableA]) {\n return true;\n }\n }\n return false;\n }\n}\n\n/**\n * A cluster of join entries.\n */\nexport interface IJoinCluster {\n /**\n * Union of all variables in scope within the join entries.\n */\n inScopeVariables: Record;\n /**\n * Join entries\n */\n entries: Algebra.Operation[];\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport { KeysQuerySourceIdentify } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQuerySourceWrapper, MetadataBindings } from '@comunica/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport { Algebra, Factory, Util } from 'sparqlalgebrajs';\n\nconst AF = new Factory();\nconst DF = new DataFactory();\n\n/**\n * A comunica Prune Empty Source Operations Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationPruneEmptySourceOperations extends ActorOptimizeQueryOperation {\n private readonly useAskIfSupported: boolean;\n\n public constructor(args: IActorOptimizeQueryOperationPruneEmptySourceOperationsArgs) {\n super(args);\n }\n\n public async test(action: IActionOptimizeQueryOperation): Promise {\n if (ActorQueryOperation.getOperationSource(action.operation)) {\n throw new Error(`Actor ${this.name} does not work with top-level operation sources.`);\n }\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n let operation = action.operation;\n\n // Collect all operations with source types\n // Only consider unions of patterns or alts of links, since these are created during exhaustive source assignment.\n const collectedOperations: (Algebra.Pattern | Algebra.Link)[] = [];\n // eslint-disable-next-line ts/no-this-alias\n const self = this;\n Util.recurseOperation(operation, {\n [Algebra.types.UNION](subOperation) {\n self.collectMultiOperationInputs(subOperation.input, collectedOperations, Algebra.types.PATTERN);\n return true;\n },\n [Algebra.types.ALT](subOperation) {\n self.collectMultiOperationInputs(subOperation.input, collectedOperations, Algebra.types.LINK);\n return false;\n },\n [Algebra.types.SERVICE]() {\n return false;\n },\n });\n\n // Determine in an async manner whether or not these sources return non-empty results\n const emptyOperations: Set = new Set();\n await Promise.all(collectedOperations.map(async(collectedOperation) => {\n const checkOperation = collectedOperation.type === 'link' ?\n AF.createPattern(DF.variable('?s'), collectedOperation.iri, DF.variable('?o')) :\n collectedOperation;\n if (!await this.hasSourceResults(\n ActorQueryOperation.getOperationSource(collectedOperation)!,\n checkOperation,\n action.context,\n )) {\n emptyOperations.add(collectedOperation);\n }\n }));\n\n // Only perform next mapping if we have at least one empty operation\n if (emptyOperations.size > 0) {\n this.logDebug(action.context, `Pruning ${emptyOperations.size} source-specific operations`);\n // Rewrite operations by removing the empty children\n operation = Util.mapOperation(operation, {\n [Algebra.types.UNION](subOperation, factory) {\n return self.mapMultiOperation(subOperation, emptyOperations, children => factory.createUnion(children));\n },\n [Algebra.types.ALT](subOperation, factory) {\n return self.mapMultiOperation(subOperation, emptyOperations, children => factory.createAlt(children));\n },\n });\n\n // Identify and remove projections that have become empty now due to missing variables\n operation = Util.mapOperation(operation, {\n [Algebra.types.PROJECT](subOperation, factory) {\n let emptyProject = false;\n Util.recurseOperation(subOperation, {\n [Algebra.types.UNION](subSubOperation) {\n if (subSubOperation.input.length === 0) {\n emptyProject = true;\n }\n return true;\n },\n [Algebra.types.ALT](subSubOperation) {\n if (subSubOperation.input.length === 0) {\n emptyProject = true;\n }\n return true;\n },\n });\n\n if (emptyProject) {\n return {\n recurse: false,\n result: factory.createUnion([]),\n };\n }\n return {\n recurse: true,\n result: subOperation,\n };\n },\n });\n }\n\n return { operation, context: action.context };\n }\n\n protected collectMultiOperationInputs(\n inputs: Algebra.Operation[],\n collectedOperations: (Algebra.Pattern | Algebra.Link)[],\n inputType: (Algebra.Pattern | Algebra.Link)['type'],\n ): void {\n for (const input of inputs) {\n if (ActorQueryOperation.getOperationSource(input) && input.type === inputType) {\n collectedOperations.push(input);\n }\n }\n }\n\n protected mapMultiOperation(\n operation: O,\n emptyOperations: Set,\n multiOperationFactory: (input: O['input']) => Algebra.Operation,\n ): {\n result: Algebra.Operation;\n recurse: boolean;\n } {\n // Determine which operations return non-empty results\n const nonEmptyInputs = operation.input.filter(input => !emptyOperations.has(input));\n\n // Remove empty operations\n if (nonEmptyInputs.length === operation.input.length) {\n return { result: operation, recurse: true };\n }\n if (nonEmptyInputs.length === 0) {\n return { result: multiOperationFactory([]), recurse: false };\n }\n if (nonEmptyInputs.length === 1) {\n return { result: nonEmptyInputs[0], recurse: true };\n }\n return { result: multiOperationFactory(nonEmptyInputs), recurse: true };\n }\n\n /**\n * Check if the given query operation will produce at least one result in the given source.\n * @param source A query source.\n * @param input A query operation.\n * @param context The query context.\n */\n public async hasSourceResults(\n source: IQuerySourceWrapper,\n input: Algebra.Operation,\n context: IActionContext,\n ): Promise {\n // Traversal sources should never be considered empty at optimization time.\n if (source.context?.get(KeysQuerySourceIdentify.traverse)) {\n return true;\n }\n\n // Send an ASK query\n if (this.useAskIfSupported) {\n const askOperation = AF.createAsk(input);\n if (ActorQueryOperation\n .doesShapeAcceptOperation(await source.source.getSelectorShape(context), askOperation)) {\n return source.source.queryBoolean(askOperation, context);\n }\n }\n\n // Send the operation as-is and check the response cardinality\n const bindingsStream = source.source.queryBindings(input, context);\n return new Promise((resolve, reject) => {\n bindingsStream.on('error', reject);\n bindingsStream.getProperty('metadata', (metadata: MetadataBindings) => {\n bindingsStream.destroy();\n resolve(metadata.cardinality.value > 0);\n });\n });\n }\n}\n\nexport interface IActorOptimizeQueryOperationPruneEmptySourceOperationsArgs extends IActorOptimizeQueryOperationArgs {\n /**\n * If true, ASK queries will be sent to the source instead of COUNT queries to check emptiness for patterns.\n * This will only be done for sources that accept ASK queries.\n * @default {false}\n */\n useAskIfSupported: boolean;\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport { Algebra, Util } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\n/**\n * A comunica Rewrite Add Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationRewriteAdd extends ActorOptimizeQueryOperation {\n public constructor(args: IActorOptimizeQueryOperationArgs) {\n super(args);\n }\n\n public async test(_action: IActionOptimizeQueryOperation): Promise {\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const operation = Util.mapOperation(action.operation, {\n [Algebra.types.ADD](operationOriginal, factory) {\n // CONSTRUCT all quads from the source, and INSERT them into the destination\n const destination = operationOriginal.destination === 'DEFAULT' ?\n DF.defaultGraph() :\n operationOriginal.destination;\n const source = operationOriginal.source === 'DEFAULT' ? DF.defaultGraph() : operationOriginal.source;\n\n const result = factory.createDeleteInsert(undefined, [\n factory.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o'), destination),\n ], factory.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o'), source));\n\n return {\n result,\n recurse: false,\n };\n },\n });\n\n return { operation, context: action.context };\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport { Algebra, Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Rewrite Copy Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationRewriteCopy extends ActorOptimizeQueryOperation {\n public constructor(args: IActorOptimizeQueryOperationArgs) {\n super(args);\n }\n\n public async test(_action: IActionOptimizeQueryOperation): Promise {\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const operation = Util.mapOperation(action.operation, {\n [Algebra.types.COPY](operationOriginal, factory) {\n // No-op if source === destination\n let result: Algebra.CompositeUpdate;\n if ((typeof operationOriginal.destination === 'string' && typeof operationOriginal.source === 'string' &&\n operationOriginal.destination === operationOriginal.source) ||\n (typeof operationOriginal.destination !== 'string' && typeof operationOriginal.source !== 'string' &&\n operationOriginal.destination.equals(operationOriginal.source))) {\n result = factory.createCompositeUpdate([]);\n } else {\n // COPY is equivalent to drop destination, and add\n result = factory.createCompositeUpdate([\n factory.createDrop(operationOriginal.destination, true),\n factory.createAdd(operationOriginal.source, operationOriginal.destination, operationOriginal.silent),\n ]);\n }\n\n return {\n result,\n recurse: false,\n };\n },\n });\n\n return { operation, context: action.context };\n }\n}\n","import type {\n IActionOptimizeQueryOperation,\n IActorOptimizeQueryOperationOutput,\n IActorOptimizeQueryOperationArgs,\n} from '@comunica/bus-optimize-query-operation';\nimport { ActorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport { Algebra, Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Rewrite Move Optimize Query Operation Actor.\n */\nexport class ActorOptimizeQueryOperationRewriteMove extends ActorOptimizeQueryOperation {\n public constructor(args: IActorOptimizeQueryOperationArgs) {\n super(args);\n }\n\n public async test(_action: IActionOptimizeQueryOperation): Promise {\n return true;\n }\n\n public async run(action: IActionOptimizeQueryOperation): Promise {\n const operation = Util.mapOperation(action.operation, {\n [Algebra.types.MOVE](operationOriginal, factory) {\n // No-op if source === destination\n let result: Algebra.CompositeUpdate;\n if ((typeof operationOriginal.destination === 'string' && typeof operationOriginal.source === 'string' &&\n operationOriginal.destination === operationOriginal.source) ||\n (typeof operationOriginal.destination !== 'string' && typeof operationOriginal.source !== 'string' &&\n operationOriginal.destination.equals(operationOriginal.source))) {\n result = factory.createCompositeUpdate([]);\n } else {\n // MOVE is equivalent to drop destination, add, and drop source\n const updates = [\n factory.createDrop(operationOriginal.destination, true),\n factory.createAdd(operationOriginal.source, operationOriginal.destination, operationOriginal.silent),\n factory.createDrop(operationOriginal.source),\n ];\n result = factory.createCompositeUpdate(updates);\n }\n\n return {\n result,\n recurse: false,\n };\n },\n });\n\n return { operation, context: action.context };\n }\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type {\n IActionContext,\n IQueryOperationResult,\n IQueryOperationResultBindings,\n} from '@comunica/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Ask Query Operation Actor.\n */\nexport class ActorQueryOperationAsk extends ActorQueryOperationTypedMediated {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, 'ask');\n }\n\n public async testOperation(_operation: Algebra.Ask, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Ask, context: IActionContext): Promise {\n // Call other query operations like this:\n const output: IQueryOperationResult = await this.mediatorQueryOperation.mediate(\n { operation: operation.input, context },\n );\n const { bindingsStream }: IQueryOperationResultBindings = ActorQueryOperation.getSafeBindings(output);\n return { type: 'boolean', execute: async() => (await bindingsStream.take(1).toArray()).length === 1 };\n }\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport { Factory } from 'sparqlalgebrajs';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor\n * that handles SPARQL BGP operations by rewriting it as a join operator.\n */\nexport class ActorQueryOperationBgpJoin extends ActorQueryOperationTypedMediated {\n public static readonly FACTORY = new Factory();\n\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, 'bgp');\n }\n\n public async testOperation(_operation: Algebra.Bgp, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Bgp, context: IActionContext):\n Promise {\n return this.mediatorQueryOperation.mediate({\n operation: ActorQueryOperationBgpJoin.FACTORY.createJoin(operation.patterns),\n context,\n });\n }\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type {\n IQueryOperationResultBindings,\n IActionContext,\n IQueryOperationResult,\n MetadataQuads,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { getTermsNested, getVariables, uniqTerms } from 'rdf-terms';\nimport { Algebra } from 'sparqlalgebrajs';\nimport { BindingsToQuadsIterator } from './BindingsToQuadsIterator';\n\n/**\n * A comunica Construct Query Operation Actor.\n */\nexport class ActorQueryOperationConstruct extends ActorQueryOperationTypedMediated {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, 'construct');\n }\n\n /**\n * Find all variables in a list of triple patterns.\n * @param {Algebra.Pattern[]} patterns An array of triple patterns.\n * @return {RDF.Variable[]} The variables in the triple patterns.\n */\n public static getVariables(patterns: RDF.BaseQuad[]): RDF.Variable[] {\n return uniqTerms(( []).concat\n .apply([], patterns.map(pattern => getVariables(getTermsNested(pattern)))));\n }\n\n public async testOperation(_operation: Algebra.Construct, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operationOriginal: Algebra.Construct, context: IActionContext):\n Promise {\n // Apply a projection on our CONSTRUCT variables first, as the query may contain other variables as well.\n const variables: RDF.Variable[] = ActorQueryOperationConstruct.getVariables(operationOriginal.template);\n const operation: Algebra.Operation = { type: Algebra.types.PROJECT, input: operationOriginal.input, variables };\n\n // Evaluate the input query\n const output: IQueryOperationResultBindings = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ operation, context }),\n );\n\n // Construct triples using the result based on the pattern.\n // If it's a DESCRIBE query don't apply the blank node localisation.\n const quadStream: AsyncIterator = new BindingsToQuadsIterator(\n operationOriginal.template,\n output.bindingsStream,\n );\n\n // Let the final metadata contain the estimated number of triples\n const metadata: (() => Promise) = () => output.metadata().then(meta => ({\n ...meta,\n order: undefined,\n cardinality: {\n type: meta.cardinality.type,\n value: meta.cardinality.value * operationOriginal.template.length,\n },\n canContainUndefs: false,\n availableOrders: undefined,\n }));\n\n return {\n metadata,\n quadStream,\n type: 'quads',\n };\n }\n}\n","import type { Bindings, BindingsStream } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ArrayIterator, MultiTransformIterator } from 'asynciterator';\nimport { DataFactory } from 'rdf-data-factory';\nimport { mapTermsNested } from 'rdf-terms';\n\nconst DF = new DataFactory();\n\n/**\n * Transforms a bindings stream into a quad stream given a quad template.\n *\n * This conforms to the SPARQL 1.1 spec on constructing triples:\n * https://www.w3.org/TR/sparql11-query/#rConstructTriples\n */\nexport class BindingsToQuadsIterator extends MultiTransformIterator {\n protected readonly template: RDF.BaseQuad[];\n protected blankNodeCounter: number;\n\n public constructor(template: RDF.BaseQuad[], bindingsStream: BindingsStream) {\n super(bindingsStream, { autoStart: false });\n this.template = template;\n this.blankNodeCounter = 0;\n }\n\n /**\n * Bind the given term.\n * If the term is a variable and the variable is bound in the bindings object,\n * return the bindings value.\n * If the term is a variable and the variable is not bound in the bindings object,\n * a falsy value is returned..\n * Otherwise, the term itself is returned.\n * @param {Bindings} bindings A bindings object.\n * @param {RDF.Term} term An RDF term.\n * @return {RDF.Term} If the given term is not a variable, the term itself is returned.\n * If the given term is a variable, then the bound term is returned,\n * or a falsy value if it did not exist in the bindings.\n */\n public static bindTerm(bindings: Bindings, term: RDF.Term): RDF.Term | undefined {\n if (term.termType === 'Variable') {\n return bindings.get(term);\n }\n return term;\n }\n\n /**\n * Bind the given quad pattern.\n * If one of the terms was a variable AND is not bound in the bindings,\n * a falsy value will be returned.\n * @param {Bindings} bindings A bindings object.\n * @param {RDF.Quad} pattern An RDF quad.\n * @return {RDF.Quad} A bound RDF quad or undefined.\n */\n public static bindQuad(bindings: Bindings, pattern: RDF.BaseQuad): RDF.Quad | undefined {\n try {\n return mapTermsNested( pattern, (term) => {\n const boundTerm = BindingsToQuadsIterator.bindTerm(bindings, term);\n if (!boundTerm) {\n throw new Error('Unbound term');\n }\n return boundTerm;\n });\n } catch {\n // Do nothing\n }\n }\n\n /**\n * Convert a blank node to a unique blank node in the given context.\n * If the given term is not a blank node, the term itself will be returned.\n * @param blankNodeCounter A counter value for the blank node.\n * @param {RDF.Term} term The term that should be localized.\n * @return {RDF.Term} A term.\n */\n public static localizeBlankNode(blankNodeCounter: number, term: RDF.Term): RDF.Term {\n if (term.termType === 'BlankNode') {\n return DF.blankNode(`${term.value}${blankNodeCounter}`);\n }\n return term;\n }\n\n /**\n * Convert the given quad to a quad that only contains unique blank nodes.\n * @param blankNodeCounter A counter value for the blank node.\n * @param {RDF.BaseQuad} pattern The pattern that should be localized.\n * @return {RDF.BaseQuad} A quad.\n */\n public static localizeQuad(blankNodeCounter: number, pattern: RDF.BaseQuad): RDF.BaseQuad {\n return mapTermsNested(pattern, term => BindingsToQuadsIterator.localizeBlankNode(blankNodeCounter, term));\n }\n\n /**\n * Convert the given template to a list of quads based on the given bindings.\n * @param {Bindings} bindings A bindings object.\n * @param {RDF.Quad[]} template A list of quad patterns.\n * @param blankNodeCounter A counter value for the blank node.\n * @return {RDF.Quad[]} A list of quads.\n */\n public bindTemplate(bindings: Bindings, template: RDF.BaseQuad[], blankNodeCounter: number): RDF.Quad[] {\n const quads: RDF.BaseQuad[] = template\n // Make sure the multiple instantiations of the template contain different blank nodes, as required by SPARQL 1.1.\n .map(BindingsToQuadsIterator.localizeQuad.bind(null, blankNodeCounter))\n // Bind variables to bound terms\n .map(x => BindingsToQuadsIterator.bindQuad.bind(null, bindings)(x))\n // Remove quads that contained unbound terms, i.e., variables.\n .filter(Boolean);\n return quads;\n }\n\n public override _createTransformer(bindings: Bindings): AsyncIterator {\n return new ArrayIterator(this.bindTemplate(\n bindings,\n this.template,\n this.blankNodeCounter++,\n ), { autoStart: false });\n }\n}\n","import type { MediatorHashBindings } from '@comunica/bus-hash-bindings';\nimport type { MediatorHashQuads } from '@comunica/bus-hash-quads';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type {\n Bindings,\n BindingsStream,\n IActionContext,\n IQueryOperationResult,\n IQueryOperationResultBindings,\n IQueryOperationResultQuads,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Distinct Hash Query Operation Actor.\n */\nexport class ActorQueryOperationDistinctHash extends ActorQueryOperationTypedMediated {\n public readonly mediatorHashBindings: MediatorHashBindings;\n public readonly mediatorHashQuads: MediatorHashQuads;\n\n public constructor(args: IActorQueryOperationDistinctHashArgs) {\n super(args, 'distinct');\n }\n\n public async testOperation(_operation: Algebra.Distinct, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Distinct, context: IActionContext): Promise {\n const output = await this.mediatorQueryOperation.mediate({ operation: operation.input, context });\n\n // TODO: In next/major, remove undefined check when mediatorHashQuads is made required\n if (output.type === 'quads' && this.mediatorHashQuads !== undefined) {\n const outputQuads: IQueryOperationResultQuads = ActorQueryOperation.getSafeQuads(\n output,\n );\n\n const quadStream: AsyncIterator = outputQuads.quadStream.filter(await this.newHashFilterQuads(context));\n return {\n type: 'quads',\n quadStream,\n metadata: outputQuads.metadata,\n };\n }\n\n const outputBindings: IQueryOperationResultBindings = ActorQueryOperation.getSafeBindings(\n output,\n );\n\n const bindingsStream: BindingsStream = outputBindings.bindingsStream.filter(await this.newHashFilter(context));\n return {\n type: 'bindings',\n bindingsStream,\n metadata: outputBindings.metadata,\n };\n }\n\n /**\n * Create a new distinct filter function.\n * This will maintain an internal hash datastructure so that every bindings object only returns true once.\n * @param context The action context.\n * @return {(bindings: Bindings) => boolean} A distinct filter for bindings.\n */\n public async newHashFilter(context: IActionContext): Promise<(bindings: Bindings) => boolean> {\n const { hashFunction } = await this.mediatorHashBindings.mediate({ allowHashCollisions: true, context });\n const hashes: Record = {};\n return (bindings: Bindings) => {\n const hash: string = hashFunction(bindings);\n\n return !(hash in hashes) && (hashes[hash] = true);\n };\n }\n\n /**\n * Create a new distinct filter function to hash quads.\n * This will maintain an internal hash datastructure so that every quad object only returns true once.\n * @param context The action context.\n * @return {(quad: RDF.Quad) => boolean} A distinct filter for quads.\n */\n public async newHashFilterQuads(context: IActionContext): Promise<(quad: RDF.Quad) => boolean> {\n // TODO: In next/major, this check can be removed when mediatorHashQuads is made required\n if (this.mediatorHashQuads === undefined) {\n return _quad => true;\n }\n const { hashFunction } = await this.mediatorHashQuads.mediate({ allowHashCollisions: true, context });\n const hashes: Record = {};\n return (quad: RDF.Quad) => {\n const hash: string = hashFunction(quad);\n\n return !(hash in hashes) && (hashes[hash] = true);\n };\n }\n}\n\nexport interface IActorQueryOperationDistinctHashArgs extends IActorQueryOperationTypedMediatedArgs {\n mediatorHashBindings: MediatorHashBindings;\n // TODO: In next/major, this field should be made required in the next major update\n mediatorHashQuads?: MediatorHashQuads;\n}\n","import { BindingsFactory, bindingsToString } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { ExpressionError } from '@comunica/expression-evaluator';\nimport { AsyncEvaluator, isExpressionError } from '@comunica/expression-evaluator';\nimport type { Bindings, IActionContext, IQueryOperationResult, IQueryOperationResultBindings } from '@comunica/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Extend Query Operation Actor.\n *\n * See https://www.w3.org/TR/sparql11-query/#sparqlAlgebra;\n */\nexport class ActorQueryOperationExtend extends ActorQueryOperationTypedMediated {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationExtendArgs) {\n super(args, 'extend');\n }\n\n public async testOperation(operation: Algebra.Extend, context: IActionContext): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n // Will throw error for unsupported opperations\n const _ = Boolean(new AsyncEvaluator(\n operation.expression,\n ActorQueryOperation.getAsyncExpressionContext(context, this.mediatorQueryOperation, bindingsFactory),\n ));\n return true;\n }\n\n public async runOperation(operation: Algebra.Extend, context: IActionContext):\n Promise {\n const { expression, input, variable } = operation;\n\n const output: IQueryOperationResultBindings = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ operation: input, context }),\n );\n\n // Throw if the variable has already been bound\n if ((await output.metadata()).variables.some(innerVariable => innerVariable.equals(variable))) {\n throw new Error(`Illegal binding to variable '${variable.value}' that has already been bound`);\n }\n\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n const config = { ...ActorQueryOperation.getAsyncExpressionContext(\n context,\n this.mediatorQueryOperation,\n bindingsFactory,\n ) };\n const evaluator = new AsyncEvaluator(expression, config);\n\n // Transform the stream by extending each Bindings with the expression result\n const transform = async(bindings: Bindings, next: any, push: (pusbBindings: Bindings) => void): Promise => {\n try {\n const result = await evaluator.evaluate(bindings);\n // Extend operation is undefined when the key already exists\n // We just override it here.\n const extended = bindings.set(variable, result);\n push(extended);\n } catch (error: unknown) {\n if (isExpressionError( error)) {\n // Errors silently don't actually extend according to the spec\n push(bindings);\n // But let's warn anyway\n this.logWarn(context, `Expression error for extend operation (${( error).message})` +\n `with bindings '${bindingsToString(bindings)}'`);\n } else {\n bindingsStream.emit('error', error);\n }\n }\n next();\n };\n\n // eslint-disable-next-line ts/no-misused-promises\n const bindingsStream = output.bindingsStream.transform({ autoStart: false, transform });\n return {\n type: 'bindings',\n bindingsStream,\n async metadata() {\n const outputMetadata = await output.metadata();\n return { ...outputMetadata, variables: [ ...outputMetadata.variables, variable ]};\n },\n };\n }\n}\n\nexport interface IActorQueryOperationExtendArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import { BindingsFactory, bindingsToString } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport { AsyncEvaluator, isExpressionError } from '@comunica/expression-evaluator';\nimport type { Bindings, IActionContext, IQueryOperationResult } from '@comunica/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Filter Sparqlee Query Operation Actor.\n */\nexport class ActorQueryOperationFilter extends ActorQueryOperationTypedMediated {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationFilterSparqleeArgs) {\n super(args, 'filter');\n }\n\n public async testOperation(operation: Algebra.Filter, context: IActionContext): Promise {\n // Will throw error for unsupported operators\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n const config = { ...ActorQueryOperation.getAsyncExpressionContext(\n context,\n this.mediatorQueryOperation,\n bindingsFactory,\n ) };\n const _ = new AsyncEvaluator(operation.expression, config);\n return true;\n }\n\n public async runOperation(operation: Algebra.Filter, context: IActionContext):\n Promise {\n const outputRaw = await this.mediatorQueryOperation.mediate({ operation: operation.input, context });\n const output = ActorQueryOperation.getSafeBindings(outputRaw);\n ActorQueryOperation.validateQueryOutput(output, 'bindings');\n\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n const config = { ...ActorQueryOperation.getAsyncExpressionContext(\n context,\n this.mediatorQueryOperation,\n bindingsFactory,\n ) };\n const evaluator = new AsyncEvaluator(operation.expression, config);\n\n const transform = async(item: Bindings, next: any, push: (bindings: Bindings) => void): Promise => {\n try {\n const result = await evaluator.evaluateAsEBV(item);\n if (result) {\n push(item);\n }\n } catch (error: unknown) {\n // We ignore all Expression errors.\n // Other errors (likely programming mistakes) are still propagated.\n //\n // > Specifically, FILTERs eliminate any solutions that,\n // > when substituted into the expression, either result in\n // > an effective boolean value of false or produce an error.\n // > ...\n // > These errors have no effect outside of FILTER evaluation.\n // https://www.w3.org/TR/sparql11-query/#expressions\n if (isExpressionError( error)) {\n // In many cases, this is a user error, where the user should manually cast the variable to a string.\n // In order to help users debug this, we should report these errors via the logger as warnings.\n this.logWarn(context, 'Error occurred while filtering.', () => ({ error, bindings: bindingsToString(item) }));\n } else {\n bindingsStream.emit('error', error);\n }\n }\n next();\n };\n\n // eslint-disable-next-line ts/no-misused-promises\n const bindingsStream = output.bindingsStream.transform({ transform, autoStart: false });\n return { type: 'bindings', bindingsStream, metadata: output.metadata };\n }\n}\n\nexport interface IActorQueryOperationFilterSparqleeArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { Algebra, Factory } from 'sparqlalgebrajs';\n\n/**\n * A comunica From Query Operation Actor.\n */\nexport class ActorQueryOperationFromQuad extends ActorQueryOperationTypedMediated {\n private static readonly FACTORY: Factory = new Factory();\n private static readonly ALGEBRA_TYPES: string[] = Object.keys(Algebra.types).map(key => ( Algebra.types)[key]);\n\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, 'from');\n }\n\n /**\n * Create a deep copy of the given operation.\n * @param {Operation} operation An operation.\n * @param {(subOperation: Operation) => Operation} recursiveCb A callback for recursive operation calls.\n * @return {Operation} The copied operation.\n */\n public static copyOperation(\n operation: Algebra.Operation,\n recursiveCb: (subOperation: Algebra.Operation) => Algebra.Operation,\n ): Algebra.Operation {\n const copiedOperation: Algebra.Operation = {};\n for (const key of Object.keys(operation)) {\n if (Array.isArray(operation[key]) && key !== 'template') {\n // We exclude the 'template' entry, as we don't want to modify the template value of construct operations\n if (key === 'variables') {\n copiedOperation[key] = operation[key];\n } else {\n copiedOperation[key] = operation[key].map(recursiveCb);\n }\n } else if (ActorQueryOperationFromQuad.ALGEBRA_TYPES.includes(operation[key].type)) {\n copiedOperation[key] = recursiveCb(operation[key]);\n } else {\n copiedOperation[key] = operation[key];\n }\n }\n return copiedOperation;\n }\n\n /**\n * Recursively transform the given operation to use the given graphs as default graph\n * This will (possibly) create a new operation and not modify the given operation.\n * @param {Operation} operation An operation.\n * @param {RDF.Term[]} defaultGraphs Graph terms.\n * @return {Operation} A new operation.\n */\n public static applyOperationDefaultGraph(operation: Algebra.Operation, defaultGraphs: RDF.Term[]): Algebra.Operation {\n // If the operation is a BGP or Path, change the graph.\n if ((operation.type === 'bgp' && operation.patterns.length > 0) ||\n operation.type === 'path' ||\n operation.type === 'pattern') {\n if (operation.type === 'bgp') {\n return ActorQueryOperationFromQuad.joinOperations(operation.patterns.map((pattern: Algebra.Pattern) => {\n if (pattern.graph.termType !== 'DefaultGraph') {\n return ActorQueryOperationFromQuad.FACTORY.createBgp([ pattern ]);\n }\n const bgps = defaultGraphs.map((graph: RDF.Term) =>\n ActorQueryOperationFromQuad.FACTORY.createBgp([ Object.assign(\n ActorQueryOperationFromQuad.FACTORY\n .createPattern(pattern.subject, pattern.predicate, pattern.object, graph),\n { metadata: pattern.metadata },\n ) ]));\n return ActorQueryOperationFromQuad.unionOperations(bgps);\n }));\n }\n if (operation.graph.termType !== 'DefaultGraph') {\n return operation;\n }\n const paths = defaultGraphs.map(\n (graph: RDF.Term) => {\n if (operation.type === 'path') {\n return ActorQueryOperationFromQuad.FACTORY\n .createPath(operation.subject, operation.predicate, operation.object, graph);\n }\n return Object.assign(ActorQueryOperationFromQuad.FACTORY\n .createPattern(\n operation.subject,\n operation.predicate,\n operation.object,\n graph,\n ), { metadata: operation.metadata });\n },\n );\n return ActorQueryOperationFromQuad.unionOperations(paths);\n }\n\n return ActorQueryOperationFromQuad.copyOperation(\n operation,\n (subOperation: Algebra.Operation) => this.applyOperationDefaultGraph(subOperation, defaultGraphs),\n );\n }\n\n /**\n * Recursively transform the given operation to use the given graphs as named graph\n * This will (possibly) create a new operation and not modify the given operation.\n * @param {Operation} operation An operation.\n * @param {RDF.Term[]} namedGraphs Graph terms.\n * @param {RDF.Term[]} defaultGraphs Default graph terms.\n * @return {Operation} A new operation.\n */\n public static applyOperationNamedGraph(\n operation: Algebra.Operation,\n namedGraphs: RDF.NamedNode[],\n defaultGraphs: RDF.Term[],\n ): Algebra.Operation {\n // If the operation is a BGP or Path, change the graph.\n if ((operation.type === 'bgp' && operation.patterns.length > 0) ||\n operation.type === 'path' ||\n operation.type === 'pattern') {\n const patternGraph: RDF.Term = operation.type === 'bgp' ? operation.patterns[0].graph : operation.graph;\n if (patternGraph.termType === 'DefaultGraph') {\n // SPARQL spec (8.2) describes that when FROM NAMED's are used without a FROM, the default graph must be empty.\n // The FROMs are transformed before this step to a named node, so this will not apply to this case anymore.\n return { type: Algebra.types.BGP, patterns: []};\n }\n if (patternGraph.termType === 'Variable') {\n if (namedGraphs.length === 1) {\n const graph: RDF.NamedNode = namedGraphs[0];\n // If the pattern graph is a variable, replace the graph and bind the variable using VALUES\n const bindings: Record = {};\n bindings[`?${patternGraph.value}`] = graph;\n const values: Algebra.Values = ActorQueryOperationFromQuad.FACTORY\n .createValues([ patternGraph ], [ bindings ]);\n\n let pattern: Algebra.Operation;\n if (operation.type === 'bgp') {\n pattern = ActorQueryOperationFromQuad.FACTORY\n .createBgp(operation.patterns.map((pat: Algebra.Pattern) => ActorQueryOperationFromQuad.FACTORY\n .createPattern(pat.subject, pat.predicate, pat.object, graph)));\n } else if (operation.type === 'path') {\n pattern = ActorQueryOperationFromQuad.FACTORY\n .createPath(operation.subject, operation.predicate, operation.object, graph);\n } else {\n pattern = ActorQueryOperationFromQuad.FACTORY\n .createPattern(operation.subject, operation.predicate, operation.object, graph);\n }\n\n return ActorQueryOperationFromQuad.FACTORY.createJoin([ values, pattern ]);\n }\n // If the pattern graph is a variable, take the union of the pattern applied to each available named graph\n return ActorQueryOperationFromQuad.unionOperations(namedGraphs.map(\n (graph: RDF.NamedNode) => ActorQueryOperationFromQuad.applyOperationNamedGraph(\n operation,\n [ graph ],\n defaultGraphs,\n ),\n ));\n }\n // The pattern's graph is defined (including the default graphs)\n const isNamedGraphAvailable: boolean = [ ...namedGraphs, ...defaultGraphs ].some(\n (namedGraph: RDF.Term) => namedGraph.equals(patternGraph),\n );\n if (isNamedGraphAvailable) {\n // Return the pattern as-is if the pattern's graph was selected in a FROM NAMED\n return operation;\n }\n // No-op if the pattern's graph was not selected in a FROM NAMED.\n return { type: Algebra.types.BGP, patterns: []};\n }\n\n return ActorQueryOperationFromQuad.copyOperation(\n operation,\n (subOperation: Algebra.Operation) => this.applyOperationNamedGraph(subOperation, namedGraphs, defaultGraphs),\n );\n }\n\n /**\n * Transform the given array of operations into a join operation.\n * @param {Operation[]} operations An array of operations, must contain at least one operation.\n * @return {Join} A join operation.\n */\n public static joinOperations(operations: Algebra.Operation[]): Algebra.Operation {\n if (operations.length === 1) {\n return operations[0];\n }\n if (operations.length > 1) {\n return ActorQueryOperationFromQuad.FACTORY.createJoin(operations);\n }\n throw new Error('A join can only be applied on at least one operation');\n }\n\n /**\n * Transform the given array of operations into a union operation.\n * @param {Operation[]} operations An array of operations, must contain at least one operation.\n * @return {Union} A union operation.\n */\n public static unionOperations(operations: Algebra.Operation[]): Algebra.Operation {\n if (operations.length === 1) {\n return operations[0];\n }\n if (operations.length > 1) {\n return ActorQueryOperationFromQuad.FACTORY.createUnion(operations);\n }\n throw new Error('A union can only be applied on at least one operation');\n }\n\n /**\n * Transform an operation based on the default and named graphs in the pattern.\n *\n * FROM sets the default graph.\n * If multiple are available, take the union of the operation for all of them at quad-pattern level.\n *\n * FROM NAMED indicates which named graphs are available.\n * This will rewrite the query so that only triples from the given named graphs can be selected.\n *\n * @param {From} pattern A from operation.\n * @return {Operation} The transformed operation.\n */\n public static createOperation(pattern: Algebra.From): Algebra.Operation {\n let operation: Algebra.Operation = pattern.input;\n if (pattern.default.length > 0) {\n operation = ActorQueryOperationFromQuad.applyOperationDefaultGraph(operation, pattern.default);\n }\n if (pattern.named.length > 0 || pattern.default.length > 0) {\n operation = ActorQueryOperationFromQuad.applyOperationNamedGraph(operation, pattern.named, pattern.default);\n }\n return operation;\n }\n\n public async testOperation(_operation: Algebra.From, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(\n operationOriginal: Algebra.From,\n context: IActionContext,\n ): Promise {\n const operation: Algebra.Operation = ActorQueryOperationFromQuad.createOperation(operationOriginal);\n return this.mediatorQueryOperation.mediate({ operation, context });\n }\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorHashBindings } from '@comunica/bus-hash-bindings';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport { AsyncEvaluator } from '@comunica/expression-evaluator';\nimport type { BindingsStream, IActionContext, IQueryOperationResult } from '@comunica/types';\nimport { ArrayIterator, TransformIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { GroupsState } from './GroupsState';\n\n/**\n * A comunica Group Query Operation Actor.\n */\nexport class ActorQueryOperationGroup extends ActorQueryOperationTypedMediated {\n public readonly mediatorHashBindings: MediatorHashBindings;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationGroupArgs) {\n super(args, 'group');\n }\n\n public async testOperation(operation: Algebra.Group, context: IActionContext): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n for (const aggregate of operation.aggregates) {\n // Will throw for unsupported expressions\n const _ = new AsyncEvaluator(\n aggregate.expression,\n ActorQueryOperation.getAsyncExpressionContext(context, this.mediatorQueryOperation, bindingsFactory),\n );\n }\n return true;\n }\n\n public async runOperation(operation: Algebra.Group, context: IActionContext):\n Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n // Create a hash function\n const { hashFunction } = await this.mediatorHashBindings.mediate({ allowHashCollisions: true, context });\n\n // Get result stream for the input query\n const { input, aggregates } = operation;\n const outputRaw = await this.mediatorQueryOperation.mediate({ operation: input, context });\n const output = ActorQueryOperation.getSafeBindings(outputRaw);\n\n // The variables in scope are the variables on which we group, i.e. pattern.variables.\n // For 'GROUP BY ?x, ?z', this is [?x, ?z], for 'GROUP by expr(?x) as ?e' this is [?e].\n // But also in scope are the variables defined by the aggregations, since GROUP has to handle this.\n const variables = [\n ...operation.variables,\n ...aggregates.map(agg => agg.variable),\n ];\n\n const sparqleeConfig = ActorQueryOperation.getAsyncExpressionContext(\n context,\n this.mediatorQueryOperation,\n bindingsFactory,\n );\n\n // Wrap a new promise inside an iterator that completes when the stream has ended or when an error occurs\n const bindingsStream = new TransformIterator(() => new Promise((resolve, reject) => {\n const groups = new GroupsState(hashFunction, operation, sparqleeConfig, bindingsFactory);\n\n // Phase 2: Collect aggregator results\n // We can only return when the binding stream ends, when that happens\n // we return the identified groups. Which are nothing more than Bindings\n // of the grouping variables merged with the aggregate variables\n // eslint-disable-next-line ts/no-misused-promises\n output.bindingsStream.on('end', async() => {\n try {\n const bindingsStreamInner = new ArrayIterator(await groups.collectResults(), { autoStart: false });\n resolve(bindingsStreamInner);\n } catch (error: unknown) {\n reject(error);\n }\n });\n\n // Make sure to propagate any errors in the binding stream\n output.bindingsStream.on('error', reject);\n\n // Phase 1: Consume the stream, identify the groups and populate the aggregators.\n // We need to bind this after the 'error' and 'end' listeners to avoid the\n // stream having ended before those listeners are bound.\n output.bindingsStream.on('data', (bindings) => {\n groups.consumeBindings(bindings).catch(reject);\n });\n }), { autoStart: false });\n\n return {\n type: 'bindings',\n bindingsStream,\n metadata: async() => ({ ...await output.metadata(), variables }),\n };\n }\n}\n\nexport interface IActorQueryOperationGroupArgs extends IActorQueryOperationTypedMediatedArgs {\n mediatorHashBindings: MediatorHashBindings;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type { BindingsFactory } from '@comunica/bindings-factory';\nimport type { HashFunction } from '@comunica/bus-hash-bindings';\nimport type { IAsyncEvaluatorContext } from '@comunica/expression-evaluator';\nimport { AsyncAggregateEvaluator } from '@comunica/expression-evaluator';\nimport type { Bindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport type { Algebra } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\n/**\n * A simple type alias for strings that should be hashes of Bindings\n */\nexport type BindingsHash = string;\n\n/**\n * A state container for a single group\n *\n * @property {Bindings} bindings - The binding entries on which we group\n */\nexport interface IGroup {\n bindings: Bindings;\n aggregators: Record;\n}\n\n/**\n * A state manager for the groups constructed by consuming the bindings-stream.\n */\nexport class GroupsState {\n private readonly groups: Map;\n // We need to the promises of a group so we can await the initialisation/ creation of them.\n // Without this we could have duplicate work/ override precious work.\n private readonly groupsInitializer: Map>;\n private readonly groupVariables: Set;\n private readonly distinctHashes: null | Map>;\n private waitCounter: number;\n // Function that resolves the promise given by collectResults\n private waitResolver: (bindings: Bindings[]) => void;\n private resultHasBeenCalled: boolean;\n\n public constructor(\n private readonly hashFunction: HashFunction,\n private readonly pattern: Algebra.Group,\n private readonly sparqleeConfig: IAsyncEvaluatorContext,\n private readonly bindingsFactory: BindingsFactory,\n ) {\n this.groups = new Map();\n this.groupsInitializer = new Map();\n this.groupVariables = new Set(this.pattern.variables.map(x => x.value));\n this.waitCounter = 1;\n this.resultHasBeenCalled = false;\n }\n\n /**\n * - Consumes a stream binding\n * - Find the corresponding group and create one if need be\n * - Feeds the binding to the group's aggregators\n *\n * @param {Bindings} bindings - The Bindings to consume\n */\n public consumeBindings(bindings: Bindings): Promise {\n const check = this.resultCheck();\n if (check) {\n return check;\n }\n // We increment the counter and decrement him when put action is performed.\n this.waitCounter++;\n\n // Select the bindings on which we group\n const grouper = bindings\n .filter((_, variable) => this.groupVariables.has(variable.value));\n const groupHash = this.hashBindings(grouper);\n\n // First member of group -> create new group\n let groupInitializer: Promise | undefined = this.groupsInitializer.get(groupHash);\n\n let res: Promise;\n if (groupInitializer) {\n const groupInitializerDefined = groupInitializer;\n res = (async() => {\n const group = await groupInitializerDefined;\n await Promise.all(this.pattern.aggregates.map(async(aggregate) => {\n // Distinct handling is done in the aggregator.\n const variable = aggregate.variable.value;\n await group.aggregators[variable].put(bindings);\n }));\n })().then(async() => {\n this.subtractWaitCounterAndCollect();\n });\n } else {\n // Initialize state for all aggregators for new group\n groupInitializer = (async() => {\n const aggregators: Record = {};\n await Promise.all(this.pattern.aggregates.map(async(aggregate) => {\n const key = aggregate.variable.value;\n aggregators[key] = new AsyncAggregateEvaluator(aggregate, this.sparqleeConfig);\n await aggregators[key].put(bindings);\n }));\n\n const group = { aggregators, bindings: grouper };\n this.groups.set(groupHash, group);\n this.subtractWaitCounterAndCollect();\n return group;\n })();\n this.groupsInitializer.set(groupHash, groupInitializer);\n res = groupInitializer;\n }\n return res;\n }\n\n private subtractWaitCounterAndCollect(): void {\n if (--this.waitCounter === 0) {\n this.handleResultCollection();\n }\n }\n\n private handleResultCollection(): void {\n // Collect groups\n let rows: Bindings[] = [ ...this.groups ].map(([ _, group ]) => {\n const { bindings: groupBindings, aggregators } = group;\n\n // Collect aggregator bindings\n // If the aggregate errorred, the result will be undefined\n let returnBindings = groupBindings;\n for (const variable in aggregators) {\n const value = aggregators[variable].result();\n if (value) {\n // Filter undefined\n returnBindings = returnBindings.set(DF.variable(variable), value);\n }\n }\n\n // Merge grouping bindings and aggregator bindings\n return returnBindings;\n });\n\n // Case: No Input\n // Some aggregators still define an output on the empty input\n // Result is a single Bindings\n if (rows.length === 0 && this.groupVariables.size === 0) {\n const single: [RDF.Variable, RDF.Term][] = [];\n for (const aggregate of this.pattern.aggregates) {\n const key = aggregate.variable;\n const value = AsyncAggregateEvaluator.emptyValue(aggregate);\n if (value !== undefined) {\n single.push([ key, value ]);\n }\n }\n rows = [ this.bindingsFactory.bindings(single) ];\n }\n this.waitResolver(rows);\n }\n\n private resultCheck(): Promise | undefined {\n if (this.resultHasBeenCalled) {\n return Promise.reject(new Error('Calling any function after calling collectResult is invalid.'));\n }\n }\n\n /**\n * Collect the result of the final state. This returns a Bindings per group,\n * and a (possibly empty) Bindings in case no Bindings have been consumed yet.\n * You can only call this method once, after calling this method,\n * calling any function on this will result in an error being thrown.\n */\n public collectResults(): Promise {\n const check = this.resultCheck();\n if (check) {\n return check;\n }\n this.resultHasBeenCalled = true;\n const res = new Promise((resolve) => {\n this.waitResolver = resolve;\n });\n this.subtractWaitCounterAndCollect();\n return res;\n }\n\n /**\n * @param {Bindings} bindings - Bindings to hash\n */\n private hashBindings(bindings: Bindings): BindingsHash {\n return this.hashFunction(bindings);\n }\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { MediatorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IActorTest } from '@comunica/core';\nimport type { IQueryOperationResult, IActionContext, IJoinEntry } from '@comunica/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Join Query Operation Actor.\n */\nexport class ActorQueryOperationJoin extends ActorQueryOperationTypedMediated {\n public readonly mediatorJoin: MediatorRdfJoin;\n\n public constructor(args: IActorQueryOperationJoinArgs) {\n super(args, 'join');\n }\n\n public async testOperation(_operation: Algebra.Join, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(\n operationOriginal: Algebra.Join,\n context: IActionContext,\n ): Promise {\n const entries: IJoinEntry[] = (await Promise.all(operationOriginal.input\n .map(async subOperation => ({\n output: await this.mediatorQueryOperation.mediate({ operation: subOperation, context }),\n operation: subOperation,\n }))))\n .map(({ output, operation }) => ({\n output: ActorQueryOperation.getSafeBindings(output),\n operation,\n }));\n\n return this.mediatorJoin.mediate({ type: 'inner', entries, context });\n }\n}\n\nexport interface IActorQueryOperationJoinArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for joining Bindings streams\n */\n mediatorJoin: MediatorRdfJoin;\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { MediatorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IActorTest } from '@comunica/core';\nimport { AsyncEvaluator, isExpressionError } from '@comunica/expression-evaluator';\nimport type { IQueryOperationResult, Bindings, IActionContext, IJoinEntry } from '@comunica/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica LeftJoin Query Operation Actor.\n */\nexport class ActorQueryOperationLeftJoin extends ActorQueryOperationTypedMediated {\n public readonly mediatorJoin: MediatorRdfJoin;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationLeftJoinArgs) {\n super(args, 'leftjoin');\n }\n\n public async testOperation(_operation: Algebra.LeftJoin, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operationOriginal: Algebra.LeftJoin, context: IActionContext):\n Promise {\n // Delegate to join bus\n const entries: IJoinEntry[] = (await Promise.all(operationOriginal.input\n .map(async subOperation => ({\n output: await this.mediatorQueryOperation.mediate({ operation: subOperation, context }),\n operation: subOperation,\n }))))\n .map(({ output, operation }) => ({\n output: ActorQueryOperation.getSafeBindings(output),\n operation,\n }));\n const joined = await this.mediatorJoin.mediate({ type: 'optional', entries, context });\n\n // If the pattern contains an expression, filter the resulting stream\n if (operationOriginal.expression) {\n const rightMetadata = await entries[1].output.metadata();\n const expressionVariables = rightMetadata.variables;\n\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n const config = { ...ActorQueryOperation.getAsyncExpressionContext(\n context,\n this.mediatorQueryOperation,\n bindingsFactory,\n ) };\n const evaluator = new AsyncEvaluator(operationOriginal.expression, config);\n const bindingsStream = joined.bindingsStream\n .transform({\n autoStart: false,\n // eslint-disable-next-line ts/no-misused-promises\n transform: async(bindings: Bindings, done: () => void, push: (item: Bindings) => void) => {\n // If variables of the right-hand entry are missing, we skip expression evaluation\n if (!expressionVariables.every(variable => bindings.has(variable.value))) {\n push(bindings);\n return done();\n }\n\n try {\n const result = await evaluator.evaluateAsEBV(bindings);\n if (result) {\n push(bindings);\n }\n } catch (error: unknown) {\n // We ignore all Expression errors.\n // Other errors (likely programming mistakes) are still propagated.\n // Left Join is defined in terms of Filter (https://www.w3.org/TR/sparql11-query/#defn_algJoin),\n // and Filter requires this (https://www.w3.org/TR/sparql11-query/#expressions).\n if (isExpressionError(error)) {\n // In many cases, this is a user error, where the user should manually cast the variable to a string.\n // In order to help users debug this, we should report these errors via the logger as warnings.\n this.logWarn(context, 'Error occurred while filtering.', () => ({ error, bindings }));\n } else {\n bindingsStream.emit('error', error);\n }\n }\n done();\n },\n });\n joined.bindingsStream = bindingsStream;\n }\n\n return joined;\n }\n}\n\nexport interface IActorQueryOperationLeftJoinArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for joining Bindings streams\n */\n mediatorJoin: MediatorRdfJoin;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { MediatorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResult, IJoinEntry } from '@comunica/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Minus Query Operation Actor.\n */\nexport class ActorQueryOperationMinus extends ActorQueryOperationTypedMediated {\n public readonly mediatorJoin: MediatorRdfJoin;\n\n public constructor(args: IActorQueryOperationMinusArgs) {\n super(args, 'minus');\n }\n\n public async testOperation(_operation: Algebra.Minus, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(\n operationOriginal: Algebra.Minus,\n context: IActionContext,\n ): Promise {\n const entries: IJoinEntry[] = (await Promise.all(operationOriginal.input\n .map(async subOperation => ({\n output: await this.mediatorQueryOperation.mediate({ operation: subOperation, context }),\n operation: subOperation,\n }))))\n .map(({ output, operation }) => ({\n output: ActorQueryOperation.getSafeBindings(output),\n operation,\n }));\n\n return this.mediatorJoin.mediate({ type: 'minus', entries, context });\n }\n}\n\nexport interface IActorQueryOperationMinusArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for joining Bindings streams\n */\n mediatorJoin: MediatorRdfJoin;\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { SingletonIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation)\n * actor that handles SPARQL nop operations.\n */\nexport class ActorQueryOperationNop extends ActorQueryOperationTypedMediated {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationNopArgs) {\n super(args, 'nop');\n }\n\n public async testOperation(_operation: Algebra.Nop, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Nop, context: IActionContext): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n\n return {\n bindingsStream: new SingletonIterator(bindingsFactory.bindings()),\n metadata: () => Promise.resolve({\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: 1 },\n canContainUndefs: false,\n variables: [],\n }),\n type: 'bindings',\n };\n }\n}\n\nexport interface IActorQueryOperationNopArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport { AsyncEvaluator, isExpressionError, orderTypes } from '@comunica/expression-evaluator';\nimport type { Bindings, IActionContext, IQueryOperationResult } from '@comunica/types';\nimport type { Term } from '@rdfjs/types';\nimport { Algebra } from 'sparqlalgebrajs';\nimport { SortIterator } from './SortIterator';\n\n/**\n * A comunica OrderBy Sparqlee Query Operation Actor.\n */\nexport class ActorQueryOperationOrderBy extends ActorQueryOperationTypedMediated {\n private readonly window: number;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationOrderBySparqleeArgs) {\n super(args, 'orderby');\n this.window = args.window ?? Number.POSITIVE_INFINITY;\n }\n\n public async testOperation(operation: Algebra.OrderBy, context: IActionContext): Promise {\n // Will throw error for unsupported operators\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n\n for (let expr of operation.expressions) {\n expr = this.extractSortExpression(expr);\n const _ = new AsyncEvaluator(\n expr,\n ActorQueryOperation.getAsyncExpressionContext(context, this.mediatorQueryOperation, bindingsFactory),\n );\n }\n return true;\n }\n\n public async runOperation(operation: Algebra.OrderBy, context: IActionContext):\n Promise {\n const outputRaw = await this.mediatorQueryOperation.mediate({ operation: operation.input, context });\n const output = ActorQueryOperation.getSafeBindings(outputRaw);\n\n const options = { window: this.window };\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n const sparqleeConfig = {\n ...ActorQueryOperation.getAsyncExpressionContext(context, this.mediatorQueryOperation, bindingsFactory),\n };\n let { bindingsStream } = output;\n\n // Sorting backwards since the first one is the most important therefore should be ordered last.\n for (let i = operation.expressions.length - 1; i >= 0; i--) {\n let expr = operation.expressions[i];\n const isAscending = this.isAscending(expr);\n expr = this.extractSortExpression(expr);\n // Transform the stream by annotating it with the expr result\n const evaluator = new AsyncEvaluator(expr, sparqleeConfig);\n interface IAnnotatedBinding {\n bindings: Bindings;\n result: Term | undefined;\n }\n\n const transform = async(bindings: Bindings, next: any, push: (result: IAnnotatedBinding) => void):\n Promise => {\n try {\n const result = await evaluator.evaluate(bindings);\n push({ bindings, result });\n } catch (error: unknown) {\n // We ignore all Expression errors.\n // Other errors (likely programming mistakes) are still propagated.\n // I can't recall where this is defined in the spec.\n if (!isExpressionError( error)) {\n bindingsStream.emit('error', error);\n }\n push({ bindings, result: undefined });\n }\n next();\n };\n // eslint-disable-next-line ts/no-misused-promises\n const transformedStream = bindingsStream.transform({ transform });\n\n // Sort the annoted stream\n const sortedStream = new SortIterator(transformedStream, (left, right) => {\n let compare = orderTypes(left.result, right.result);\n if (!isAscending) {\n compare *= -1;\n }\n return compare;\n }, options);\n\n // Remove the annotation\n bindingsStream = sortedStream.map(({ bindings }) => bindings);\n }\n\n return {\n type: 'bindings',\n bindingsStream,\n metadata: output.metadata,\n };\n }\n\n // Remove descending operator if necessary\n private extractSortExpression(expr: Algebra.Expression): Algebra.Expression {\n const { expressionType, operator } = expr;\n if (expressionType !== Algebra.expressionTypes.OPERATOR) {\n return expr;\n }\n return operator === 'desc' ?\n expr.args[0] :\n expr;\n }\n\n private isAscending(expr: Algebra.Expression): boolean {\n const { expressionType, operator } = expr;\n if (expressionType !== Algebra.expressionTypes.OPERATOR) {\n return true;\n }\n return operator !== 'desc';\n }\n}\n\n/**\n * The window parameter determines how many of the elements to consider when sorting.\n */\nexport interface IActorQueryOperationOrderBySparqleeArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n /**\n * The size of the window for the sort iterator.\n * @range {integer}\n */\n window?: number;\n}\n","import type { AsyncIterator } from 'asynciterator';\nimport { TransformIterator } from 'asynciterator';\n\n// Based on https://github.com/LinkedDataFragments/Client.js/blob/master/lib/sparql/SortIterator.js\nexport class SortIterator extends TransformIterator {\n private readonly windowLength: number;\n private readonly sort: (left: T, right: T) => number;\n private readonly sorted: T[];\n\n public constructor(source: AsyncIterator, sort: (left: T, right: T) => number, options?: any) {\n super(source, options);\n\n // The `window` parameter indicates the length of the sliding window to apply sorting\n const window: number = options && options.window;\n this.windowLength = Number.isFinite(window) && window > 0 ? window : Number.POSITIVE_INFINITY;\n this.sort = sort;\n this.sorted = [];\n }\n\n // Reads the smallest item in the current sorting window\n public override _read(count: number, done: () => void): void {\n let item;\n let { length } = this.sorted;\n // Try to read items until we reach the desired window length\n while (length !== this.windowLength) {\n item = this.source!.read();\n if (item === null) {\n break;\n }\n // Insert the item in the sorted window (smallest last)\n let left = 0;\n let right = length - 1;\n let mid;\n let order;\n while (left <= right) {\n mid = Math.trunc((left + right) / 2);\n order = this.sort(item, this.sorted[mid]);\n if (order < 0) {\n left = mid + 1;\n } else if (order > 0) {\n right = mid - 1;\n } else {\n left = mid;\n right = -1;\n }\n }\n this.sorted.splice(left, 0, item);\n length++;\n }\n // Push the smallest item in the window\n if (length === this.windowLength) {\n this._push(this.sorted.pop()!);\n }\n done();\n }\n\n // Flushes remaining data after the source has ended\n public override _flush(done: () => void): void {\n let { length } = this.sorted;\n while (length--) {\n this._push(this.sorted.pop()!);\n }\n done();\n }\n}\n","import { ActorAbstractPath } from '@comunica/actor-abstract-path';\nimport { ActorQueryOperationUnion } from '@comunica/actor-query-operation-union';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport type { MediatorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type {\n IQueryOperationResultBindings,\n IQueryOperationResult,\n IActionContext,\n MetadataBindings,\n} from '@comunica/types';\nimport { UnionIterator } from 'asynciterator';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Path Alt Query Operation Actor.\n */\nexport class ActorQueryOperationPathAlt extends ActorAbstractPath {\n public readonly mediatorRdfMetadataAccumulate: MediatorRdfMetadataAccumulate;\n\n public constructor(args: IActorQueryOperationPathAltArgs) {\n super(args, Algebra.types.ALT);\n }\n\n public async runOperation(operation: Algebra.Path, context: IActionContext): Promise {\n const predicate = operation.predicate;\n\n const subOperations: IQueryOperationResultBindings[] = (await Promise.all(predicate.input\n .map(subPredicate => this.mediatorQueryOperation.mediate({\n context,\n operation: ActorAbstractPath.FACTORY\n .createPath(operation.subject, subPredicate, operation.object, operation.graph),\n }))))\n .map(ActorQueryOperation.getSafeBindings);\n\n const bindingsStream = new UnionIterator(subOperations.map(op => op.bindingsStream), { autoStart: false });\n const metadata: (() => Promise) = () =>\n Promise.all(subOperations.map(output => output.metadata()))\n .then(subMeta => ActorQueryOperationUnion\n .unionMetadata(subMeta, true, context, this.mediatorRdfMetadataAccumulate));\n\n return {\n type: 'bindings',\n bindingsStream,\n metadata,\n };\n }\n}\n\nexport interface IActorQueryOperationPathAltArgs extends IActorQueryOperationTypedMediatedArgs {\n mediatorRdfMetadataAccumulate: MediatorRdfMetadataAccumulate;\n}\n","import { ActorAbstractPath } from '@comunica/actor-abstract-path';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Path Inv Query Operation Actor.\n */\nexport class ActorQueryOperationPathInv extends ActorAbstractPath {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, Algebra.types.INV);\n }\n\n public async runOperation(operation: Algebra.Path, context: IActionContext): Promise {\n const predicate = operation.predicate;\n const invPath = ActorAbstractPath.FACTORY\n .createPath(operation.object, predicate.path, operation.subject, operation.graph);\n return this.mediatorQueryOperation.mediate({ operation: invPath, context });\n }\n}\n","import { ActorAbstractPath } from '@comunica/actor-abstract-path';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Path Link Query Operation Actor.\n */\nexport class ActorQueryOperationPathLink extends ActorAbstractPath {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, Algebra.types.LINK);\n }\n\n public async runOperation(\n operationOriginal: Algebra.Path,\n context: IActionContext,\n ): Promise {\n const predicate = operationOriginal.predicate;\n const operation = Object.assign(ActorAbstractPath.FACTORY.createPattern(\n operationOriginal.subject,\n predicate.iri,\n operationOriginal.object,\n operationOriginal.graph,\n ), { metadata: predicate.metadata });\n return this.mediatorQueryOperation.mediate({ operation, context });\n }\n}\n","import { ActorAbstractPath } from '@comunica/actor-abstract-path';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n} from '@comunica/bus-query-operation';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Path Nps Query Operation Actor.\n */\nexport class ActorQueryOperationPathNps extends ActorAbstractPath {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, Algebra.types.NPS);\n }\n\n public async runOperation(operation: Algebra.Path, context: IActionContext): Promise {\n const predicate = operation.predicate;\n const blank = this.generateVariable(operation);\n\n const pattern = Object.assign(ActorAbstractPath.FACTORY\n .createPattern(operation.subject, blank, operation.object, operation.graph), { metadata: predicate.metadata });\n const output = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ operation: pattern, context }),\n );\n\n // Remove the generated blank nodes from the bindings\n const bindingsStream = output.bindingsStream\n .map(bindings => predicate.iris.some(iri => iri.equals(bindings.get(blank))) ? null : bindings.delete(blank));\n\n return {\n type: 'bindings',\n bindingsStream,\n metadata: output.metadata,\n };\n }\n}\n","import { ActorAbstractPath } from '@comunica/actor-abstract-path';\nimport { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport type { IQueryOperationResultBindings, Bindings, IQueryOperationResult, IActionContext } from '@comunica/types';\nimport { BufferedIterator, MultiTransformIterator, TransformIterator } from 'asynciterator';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Path OneOrMore Query Operation Actor.\n */\nexport class ActorQueryOperationPathOneOrMore extends ActorAbstractPath {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationPathOneOrMoreArgs) {\n super(args, Algebra.types.ONE_OR_MORE_PATH);\n }\n\n public async runOperation(operation: Algebra.Path, context: IActionContext): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n const distinct = await this.isPathArbitraryLengthDistinct(context, operation);\n if (distinct.operation) {\n return distinct.operation;\n }\n\n context = distinct.context;\n\n const predicate = operation.predicate;\n\n if (operation.subject.termType !== 'Variable' && operation.object.termType === 'Variable') {\n const objectVar = operation.object;\n const starEval = await this.getObjectsPredicateStarEval(\n operation.subject,\n predicate.path,\n objectVar,\n operation.graph,\n context,\n false,\n bindingsFactory,\n );\n const variables = operation.graph.termType === 'Variable' ? [ objectVar, operation.graph ] : [ objectVar ];\n return {\n type: 'bindings',\n bindingsStream: starEval.bindingsStream,\n metadata: async() => ({ ...await starEval.metadata(), variables }),\n };\n }\n if (operation.subject.termType === 'Variable' && operation.object.termType === 'Variable') {\n // Get all the results of subjects with same predicate, but once, then fill in first variable for those\n const single = ActorAbstractPath.FACTORY.createDistinct(\n ActorAbstractPath.FACTORY\n .createPath(operation.subject, operation.predicate.path, operation.object, operation.graph),\n );\n const results = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ context, operation: single }),\n );\n const subjectVar = operation.subject;\n const objectVar = operation.object;\n\n const termHashes = {};\n\n const bindingsStream: MultiTransformIterator = new MultiTransformIterator(\n results.bindingsStream,\n {\n multiTransform: (bindings: Bindings) => {\n const subject = bindings.get(subjectVar);\n const object = bindings.get(objectVar);\n const graph = operation.graph.termType === 'Variable' ? bindings.get(operation.graph) : operation.graph;\n return new TransformIterator(\n async() => {\n const it = new BufferedIterator();\n await this.getSubjectAndObjectBindingsPredicateStar(\n subjectVar,\n objectVar,\n subject!,\n object!,\n predicate.path,\n graph!,\n context,\n termHashes,\n {},\n it,\n { count: 0 },\n bindingsFactory,\n );\n return it.transform({\n transform(item, next, push) {\n if (operation.graph.termType === 'Variable') {\n item = item.set(operation.graph, graph!);\n }\n push(item);\n next();\n },\n });\n },\n { maxBufferSize: 128 },\n );\n },\n autoStart: false,\n },\n );\n const variables = operation.graph.termType === 'Variable' ?\n [ subjectVar, objectVar, operation.graph ] :\n [ subjectVar, objectVar ];\n return {\n type: 'bindings',\n bindingsStream,\n metadata: async() => ({ ...await results.metadata(), variables }),\n };\n }\n if (operation.subject.termType === 'Variable' && operation.object.termType !== 'Variable') {\n return > this.mediatorQueryOperation.mediate({\n context,\n operation: ActorAbstractPath.FACTORY.createPath(\n operation.object,\n ActorAbstractPath.FACTORY.createOneOrMorePath(\n ActorAbstractPath.FACTORY.createInv(predicate.path),\n ),\n operation.subject,\n operation.graph,\n ),\n });\n }\n // If (!sVar && !oVar)\n const variable = this.generateVariable();\n const results = ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({\n context,\n operation: ActorAbstractPath.FACTORY.createPath(operation.subject, predicate, variable, operation.graph),\n }));\n const bindingsStream = results.bindingsStream.transform({\n filter: item => operation.object.equals(item.get(variable)),\n transform(item, next, push) {\n const binding = operation.graph.termType === 'Variable' ?\n bindingsFactory.bindings([[ operation.graph, item.get(operation.graph)! ]]) :\n bindingsFactory.bindings();\n push(binding);\n next();\n },\n });\n return {\n type: 'bindings',\n bindingsStream,\n metadata: async() => ({\n ...await results.metadata(),\n variables: operation.graph.termType === 'Variable' ? [ operation.graph ] : [],\n }),\n };\n }\n}\n\nexport interface IActorQueryOperationPathOneOrMoreArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import { ActorAbstractPath } from '@comunica/actor-abstract-path';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n} from '@comunica/bus-query-operation';\nimport type { MediatorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { Bindings, IActionContext, IQueryOperationResult, IJoinEntry } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Path Seq Query Operation Actor.\n */\nexport class ActorQueryOperationPathSeq extends ActorAbstractPath {\n public readonly mediatorJoin: MediatorRdfJoin;\n\n public constructor(args: IActorQueryOperationPathSeq) {\n super(args, Algebra.types.SEQ);\n }\n\n public async runOperation(\n operationOriginal: Algebra.Path,\n context: IActionContext,\n ): Promise {\n const predicate = operationOriginal.predicate;\n\n let joiner: RDF.Term = operationOriginal.subject;\n const generatedVariableNames: RDF.Variable[] = [];\n const entries: IJoinEntry[] = await Promise.all(predicate.input\n .map((subPredicate, i) => {\n const nextJoiner = i === predicate.input.length - 1 ? operationOriginal.object : this.generateVariable(operationOriginal, `b${i}`);\n const operation = ActorAbstractPath.FACTORY\n .createPath(joiner, subPredicate, nextJoiner, operationOriginal.graph);\n const output = this.mediatorQueryOperation.mediate({\n context,\n operation,\n });\n\n joiner = nextJoiner;\n if (i < predicate.input.length - 1) {\n generatedVariableNames.push(nextJoiner);\n }\n\n return { output, operation };\n })\n .map(async({ output, operation }) => ({\n output: ActorQueryOperation.getSafeBindings(await output),\n operation,\n })));\n\n const join = ActorQueryOperation.getSafeBindings(await this.mediatorJoin\n .mediate({ type: 'inner', entries, context }));\n // Remove the generated variable from the bindings\n const bindingsStream = join.bindingsStream.transform({\n transform(item, next, push) {\n for (const generatedVariableName of generatedVariableNames) {\n item = item.delete(generatedVariableName);\n }\n push(item);\n next();\n },\n });\n\n // Remove the generated variable from the list of variables\n return {\n type: 'bindings',\n bindingsStream,\n async metadata() {\n const joinMetadata = await join.metadata();\n const variables = joinMetadata.variables.filter(variable => !generatedVariableNames\n .some(generatedVariableName => generatedVariableName.value === variable.value));\n return { ...joinMetadata, variables };\n },\n };\n }\n}\n\nexport interface IActorQueryOperationPathSeq extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for joining Bindings streams\n */\n mediatorJoin: MediatorRdfJoin;\n}\n","import { ActorAbstractPath } from '@comunica/actor-abstract-path';\nimport { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport type { Bindings, IQueryOperationResult, IActionContext } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { MultiTransformIterator, TransformIterator, EmptyIterator, BufferedIterator } from 'asynciterator';\nimport { termToString } from 'rdf-string';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Path ZeroOrMore Query Operation Actor.\n */\nexport class ActorQueryOperationPathZeroOrMore extends ActorAbstractPath {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationPathZeroOrMoreArgs) {\n super(args, Algebra.types.ZERO_OR_MORE_PATH);\n }\n\n public async runOperation(operation: Algebra.Path, context: IActionContext): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n\n const distinct = await this.isPathArbitraryLengthDistinct(context, operation);\n if (distinct.operation) {\n return distinct.operation;\n }\n\n context = distinct.context;\n\n const predicate = operation.predicate;\n const sources = this.getPathSources(predicate);\n\n const sVar = operation.subject.termType === 'Variable';\n const oVar = operation.object.termType === 'Variable';\n\n if (operation.subject.termType === 'Variable' && operation.object.termType === 'Variable') {\n // Query ?s ?p ?o, to get all possible namedNodes in de the db\n const predVar = this.generateVariable(operation);\n const single = this.assignPatternSources(ActorAbstractPath.FACTORY\n .createPattern(operation.subject, predVar, operation.object, operation.graph), sources);\n const results = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ context, operation: single }),\n );\n const subjectVar = operation.subject;\n const objectVar = operation.object;\n\n // Set with all namedNodes we have already started a predicate* search from\n const entities: Set = new Set();\n\n const termHashes = {};\n\n const bindingsStream: MultiTransformIterator = new MultiTransformIterator(\n results.bindingsStream,\n {\n multiTransform: (bindings: Bindings) => {\n // Get the subject and object of the triples (?s ?p ?o) and extract graph if it was a variable\n const subject: RDF.Term = bindings.get(subjectVar)!;\n const object: RDF.Term = bindings.get(objectVar)!;\n const graph: RDF.Term = operation.graph.termType === 'Variable' ?\n bindings.get(operation.graph)! :\n operation.graph;\n // Make a hash of namedNode + graph to remember from where we already started a search\n const subjectGraphHash = termToString(subject) + termToString(graph);\n const objectGraphHash = termToString(object) + termToString(graph);\n return new TransformIterator(\n async() => {\n // If no new namedNodes in this triple, return nothing\n if (entities.has(subjectGraphHash) && entities.has(objectGraphHash)) {\n return new EmptyIterator();\n }\n // Set up an iterator to which getSubjectAndObjectBindingsPredicateStar will push solutions\n const it = new BufferedIterator();\n const counter = { count: 0 };\n // If not started from this namedNode (subject in triple) in this graph, start a search\n if (!entities.has(subjectGraphHash)) {\n entities.add(subjectGraphHash);\n await this.getSubjectAndObjectBindingsPredicateStar(\n subjectVar,\n objectVar,\n subject,\n subject,\n predicate.path,\n graph,\n context,\n termHashes,\n {},\n it,\n counter,\n bindingsFactory,\n );\n }\n // If not started from this namedNode (object in triple) in this graph, start a search\n if (!entities.has(objectGraphHash)) {\n entities.add(objectGraphHash);\n await this.getSubjectAndObjectBindingsPredicateStar(\n subjectVar,\n objectVar,\n object,\n object,\n predicate.path,\n graph,\n context,\n termHashes,\n {},\n it,\n counter,\n bindingsFactory,\n );\n }\n return it.transform({\n transform(item, next, push) {\n // If the graph was a variable, fill in it's binding (we got it from the ?s ?p ?o binding)\n if (operation.graph.termType === 'Variable') {\n item = item.set(operation.graph, graph);\n }\n push(item);\n next();\n },\n });\n },\n );\n },\n },\n );\n const variables: RDF.Variable[] = operation.graph.termType === 'Variable' ?\n [ subjectVar, operation.object, operation.graph ] :\n [ subjectVar, operation.object ];\n return {\n type: 'bindings',\n bindingsStream,\n metadata: async() => ({ ...await results.metadata(), variables }),\n };\n }\n if (!sVar && !oVar) {\n const variable = this.generateVariable();\n const starEval = await this.getObjectsPredicateStarEval(\n operation.subject,\n predicate.path,\n variable,\n operation.graph,\n context,\n true,\n bindingsFactory,\n );\n // Check this\n const bindingsStream = starEval.bindingsStream.transform({\n filter: item => operation.object.equals(item.get(variable)),\n transform(item, next, push) {\n // Return graph binding if graph was a variable, otherwise empty binding\n const binding = operation.graph.termType === 'Variable' ?\n bindingsFactory.bindings([[ operation.graph, item.get(operation.graph)! ]]) :\n bindingsFactory.bindings();\n push(binding);\n next();\n },\n });\n return {\n type: 'bindings',\n bindingsStream,\n metadata: async() => ({\n ...await starEval.metadata(),\n variables: operation.graph.termType === 'Variable' ? [ operation.graph ] : [],\n }),\n };\n }\n // If (sVar || oVar)\n const subject = sVar ? operation.object : operation.subject;\n const value: RDF.Variable = (sVar ? operation.subject : operation.object);\n const pred = sVar ? ActorAbstractPath.FACTORY.createInv(predicate.path) : predicate.path;\n const starEval = await this.getObjectsPredicateStarEval(\n subject,\n pred,\n value,\n operation.graph,\n context,\n true,\n bindingsFactory,\n );\n const variables: RDF.Variable[] = operation.graph.termType === 'Variable' ? [ value, operation.graph ] : [ value ];\n return {\n type: 'bindings',\n bindingsStream: starEval.bindingsStream,\n metadata: async() => ({ ...await starEval.metadata(), variables }),\n };\n }\n}\n\nexport interface IActorQueryOperationPathZeroOrMoreArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import { ActorAbstractPath } from '@comunica/actor-abstract-path';\nimport { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type { Bindings, IQueryOperationResult, IActionContext, BindingsStream } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport {\n SingletonIterator,\n UnionIterator,\n} from 'asynciterator';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Path ZeroOrOne Query Operation Actor.\n */\nexport class ActorQueryOperationPathZeroOrOne extends ActorAbstractPath {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationPathZeroOrOneArgs) {\n super(args, Algebra.types.ZERO_OR_ONE_PATH);\n }\n\n public async runOperation(\n operation: Algebra.Path,\n context: IActionContext,\n ): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n const predicate = operation.predicate;\n const sources = this.getPathSources(predicate);\n\n const extra: Bindings[] = [];\n\n // Both subject and object non-variables\n if (operation.subject.termType !== 'Variable' &&\n operation.object.termType !== 'Variable' &&\n operation.subject.equals(operation.object)) {\n return {\n type: 'bindings',\n bindingsStream: new SingletonIterator(bindingsFactory.bindings()),\n metadata: () => Promise.resolve({\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: 1 },\n canContainUndefs: false,\n variables: [],\n }),\n };\n }\n\n // Check if we require a distinct path operation\n const distinct = await this.isPathArbitraryLengthDistinct(context, operation);\n if (distinct.operation) {\n return distinct.operation;\n }\n context = distinct.context;\n\n // Create an operator that resolve to the \"One\" part\n const bindingsOne = ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({\n context,\n operation: ActorAbstractPath.FACTORY\n .createPath(operation.subject, predicate.path, operation.object, operation.graph),\n }));\n\n // Determine the bindings stream based on the variable-ness of subject and object\n let bindingsStream: BindingsStream;\n if (operation.subject.termType === 'Variable' && operation.object.termType === 'Variable') {\n // Both subject and object are variables\n // To determine the \"Zero\" part, we\n // query ?s ?p ?o. FILTER ?s = ?0, to get all possible namedNodes in de the db\n const varP = this.generateVariable(operation);\n const bindingsZero = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({\n context,\n operation: ActorAbstractPath.FACTORY.createFilter(\n this.assignPatternSources(ActorAbstractPath.FACTORY\n .createPattern(operation.subject, varP, operation.object, operation.graph), sources),\n ActorAbstractPath.FACTORY.createOperatorExpression('=', [\n ActorAbstractPath.FACTORY.createTermExpression(operation.subject),\n ActorAbstractPath.FACTORY.createTermExpression(operation.object),\n ]),\n ),\n }),\n ).bindingsStream.map(bindings => bindings.delete(varP));\n bindingsStream = new UnionIterator([\n bindingsZero,\n bindingsOne.bindingsStream,\n ], { autoStart: false });\n } else {\n // If subject or object is not a variable, then determining the \"Zero\" part is simple.\n if (operation.subject.termType === 'Variable') {\n extra.push(bindingsFactory.bindings([[ operation.subject, operation.object ]]));\n }\n if (operation.object.termType === 'Variable') {\n extra.push(bindingsFactory.bindings([[ operation.object, operation.subject ]]));\n }\n\n bindingsStream = bindingsOne.bindingsStream.prepend(extra);\n }\n\n return {\n type: 'bindings',\n bindingsStream,\n metadata: bindingsOne.metadata,\n };\n }\n}\nexport interface IActorQueryOperationPathZeroOrOneArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport { BlankNodeBindingsScoped } from '@comunica/data-factory';\nimport type {\n Bindings,\n BindingsStream,\n IActionContext,\n IQueryOperationResult,\n IQueryOperationResultBindings,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport type { Algebra } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\n/**\n * A comunica Project Query Operation Actor.\n */\nexport class ActorQueryOperationProject extends ActorQueryOperationTypedMediated {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, 'project');\n }\n\n public async testOperation(_operation: Algebra.Project, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Project, context: IActionContext):\n Promise {\n // Resolve the input\n const output: IQueryOperationResultBindings = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ operation: operation.input, context }),\n );\n\n // Find all variables that should be deleted from the input stream.\n const outputMetadata = await output.metadata();\n const variables = operation.variables;\n const deleteVariables = outputMetadata.variables\n .filter(variable => !variables.some(subVariable => variable.value === subVariable.value));\n\n // Error if there are variables that are not bound in the input stream.\n const missingVariables = variables\n .filter(variable => !outputMetadata.variables.some(subVariable => variable.value === subVariable.value));\n if (missingVariables.length > 0) {\n // eslint-disable-next-line ts/restrict-template-expressions\n throw new Error(`Variables '${missingVariables.map(variable => `?${variable.value}`)}' are used in the projection result, but are not assigned.`);\n }\n\n // Make sure the project variables are the only variables that are present in the bindings.\n let bindingsStream: BindingsStream = deleteVariables.length === 0 ?\n output.bindingsStream :\n output.bindingsStream.map((bindings: Bindings) => {\n for (const deleteVariable of deleteVariables) {\n bindings = bindings.delete(deleteVariable);\n }\n return bindings;\n });\n\n // Make sure that blank nodes with same labels are not reused over different bindings, as required by SPARQL 1.1.\n // Required for the BNODE() function: https://www.w3.org/TR/sparql11-query/#func-bnode\n // When we have a scoped blank node, make sure the skolemized value is maintained.\n let blankNodeCounter = 0;\n bindingsStream = bindingsStream.map((bindings: Bindings) => {\n blankNodeCounter++;\n const scopedBlankNodesCache = new Map();\n return bindings.map((term) => {\n if (term instanceof BlankNodeBindingsScoped) {\n let scopedBlankNode = scopedBlankNodesCache.get(term.value);\n if (!scopedBlankNode) {\n scopedBlankNode = DF.blankNode(`${term.value}${blankNodeCounter}`);\n scopedBlankNodesCache.set(term.value, scopedBlankNode);\n }\n return scopedBlankNode;\n }\n return term;\n });\n });\n\n return {\n type: 'bindings',\n bindingsStream,\n metadata: async() => ({ ...outputMetadata, variables }),\n };\n }\n}\n","import type { MediatorHashBindings } from '@comunica/bus-hash-bindings';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type {\n Bindings,\n BindingsStream,\n IActionContext,\n IQueryOperationResult,\n IQueryOperationResultBindings,\n} from '@comunica/types';\nimport { LRUCache } from 'lru-cache';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Reduced Hash Query Operation Actor.\n */\nexport class ActorQueryOperationReducedHash extends ActorQueryOperationTypedMediated {\n public readonly mediatorHashBindings: MediatorHashBindings;\n public readonly cacheSize: number;\n\n public constructor(args: IActorQueryOperationReducedHashArgs) {\n super(args, 'reduced');\n }\n\n public async testOperation(_operation: Algebra.Reduced, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Reduced, context: IActionContext): Promise {\n const output: IQueryOperationResultBindings = ActorQueryOperation.getSafeBindings(\n await this.mediatorQueryOperation.mediate({ operation: operation.input, context }),\n );\n const bindingsStream: BindingsStream = output.bindingsStream.filter(await this.newHashFilter(context));\n return {\n type: 'bindings',\n bindingsStream,\n metadata: output.metadata,\n };\n }\n\n /**\n * Create a new distinct filter function.\n * This will maintain an internal hash datastructure so that every bindings object only returns true once.\n * @param context The action context.\n * @return {(bindings: Bindings) => boolean} A distinct filter for bindings.\n */\n public async newHashFilter(context: IActionContext): Promise<(bindings: Bindings) => boolean> {\n const { hashFunction } = await this.mediatorHashBindings.mediate({ allowHashCollisions: true, context });\n const hashes = new LRUCache({ max: this.cacheSize });\n return (bindings: Bindings) => {\n const hash: string = hashFunction(bindings);\n if (hashes.has(hash)) {\n return false;\n }\n hashes.set(hash, true);\n return true;\n };\n }\n}\n\nexport interface IActorQueryOperationReducedHashArgs extends IActorQueryOperationTypedMediatedArgs {\n mediatorHashBindings: MediatorHashBindings;\n /**\n * @range {integer}\n * @default {100}\n */\n cacheSize: number;\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { MediatorQuerySourceIdentify } from '@comunica/bus-query-source-identify';\nimport type { IActorTest } from '@comunica/core';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type { IActionContext, IQueryOperationResult, IQueryOperationResultBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { SingletonIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Service Query Operation Actor.\n * It unwraps the SERVICE operation and executes it on the given source.\n */\nexport class ActorQueryOperationService extends ActorQueryOperationTypedMediated {\n public readonly forceSparqlEndpoint: boolean;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n public readonly mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;\n\n public constructor(args: IActorQueryOperationServiceArgs) {\n super(args, 'service');\n }\n\n public async testOperation(operation: Algebra.Service, _context: IActionContext): Promise {\n if (operation.name.termType !== 'NamedNode') {\n throw new Error(`${this.name} can only query services by IRI, while a ${operation.name.termType} was given.`);\n }\n return true;\n }\n\n public async runOperation(operation: Algebra.Service, context: IActionContext):\n Promise {\n // Identify the SERVICE target as query source\n const { querySource } = await this.mediatorQuerySourceIdentify.mediate({\n querySourceUnidentified: {\n value: operation.name.value,\n type: this.forceSparqlEndpoint ? 'sparql' : undefined,\n },\n context,\n });\n\n // Attach the source to the operation, and execute\n let output: IQueryOperationResultBindings;\n try {\n output = ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate({\n operation: ActorQueryOperation.assignOperationSource(operation.input, querySource),\n context,\n }));\n } catch (error: unknown) {\n if (operation.silent) {\n // Emit a single empty binding\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n output = {\n bindingsStream: new SingletonIterator(bindingsFactory.bindings()),\n type: 'bindings',\n metadata: async() => ({\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: 1 },\n canContainUndefs: false,\n variables: [],\n }),\n };\n this.logWarn(context, `An error occurred when executing a SERVICE clause: ${( error).message}`);\n } else {\n throw error;\n }\n }\n\n return output;\n }\n}\n\nexport interface IActorQueryOperationServiceArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * If the SERVICE target should be assumed to be a SPARQL endpoint.\n * @default {false}\n */\n forceSparqlEndpoint: boolean;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n /**\n * The mediator for identifying query sources.\n */\n mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport type {\n IQueryOperationResult,\n IQueryOperationResultBindings,\n IQueryOperationResultQuads,\n IQueryOperationResultStream,\n IMetadata,\n IActionContext,\n} from '@comunica/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Slice Query Operation Actor.\n */\nexport class ActorQueryOperationSlice extends ActorQueryOperationTypedMediated {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, 'slice');\n }\n\n public async testOperation(_operation: Algebra.Slice, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Slice, context: IActionContext):\n Promise {\n // Add limit indicator to the context, which can be used for query planning\n // eslint-disable-next-line unicorn/explicit-length-check\n if (operation.length) {\n context = context.set(KeysQueryOperation.limitIndicator, operation.length);\n }\n\n // Resolve the input\n const output: IQueryOperationResult = await this.mediatorQueryOperation\n .mediate({ operation: operation.input, context });\n\n if (output.type === 'bindings') {\n const bindingsStream = this.sliceStream(output.bindingsStream, operation);\n return {\n type: 'bindings',\n bindingsStream,\n metadata: this.sliceMetadata(output, operation),\n };\n }\n\n if (output.type === 'quads') {\n const quadStream = this.sliceStream(output.quadStream, operation);\n return {\n type: 'quads',\n quadStream,\n metadata: this.sliceMetadata(output, operation),\n };\n }\n\n throw new Error(`Invalid query output type: Expected 'bindings' or 'quads' but got '${output.type}'`);\n }\n\n // Slice the stream based on the pattern values\n private sliceStream(stream: AsyncIterator, pattern: Algebra.Slice): AsyncIterator {\n // eslint-disable-next-line unicorn/explicit-length-check\n const hasLength: boolean = Boolean(pattern.length) || pattern.length === 0;\n const { start } = pattern;\n const end = hasLength ? pattern.start + pattern.length! - 1 : Number.POSITIVE_INFINITY;\n return stream.transform({ offset: start, limit: Math.max(end - start + 1, 0), autoStart: false });\n }\n\n // If we find metadata, apply slicing on the total number of items\n private sliceMetadata(\n output: IQueryOperationResultStream,\n pattern: Algebra.Slice,\n ): () => Promise> {\n // eslint-disable-next-line unicorn/explicit-length-check\n const hasLength: boolean = Boolean(pattern.length) || pattern.length === 0;\n return () => (<() => Promise>>output.metadata)()\n .then((subMetadata) => {\n const cardinality = { ...subMetadata.cardinality };\n if (Number.isFinite(cardinality.value)) {\n cardinality.value = Math.max(0, cardinality.value - pattern.start);\n if (hasLength) {\n cardinality.value = Math.min(cardinality.value, pattern.length!);\n }\n }\n return { ...subMetadata, cardinality };\n });\n }\n}\n","import type { IActionQueryOperation, IActorQueryOperationArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport { getMetadataBindings, getMetadataQuads } from '@comunica/metadata';\nimport type {\n IPhysicalQueryPlanLogger,\n IQueryOperationResult,\n IQuerySourceWrapper,\n} from '@comunica/types';\nimport { Algebra, Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Source Query Operation Actor.\n */\nexport class ActorQueryOperationSource extends ActorQueryOperation {\n public constructor(args: IActorQueryOperationArgs) {\n super(args);\n }\n\n public async test(action: IActionQueryOperation): Promise {\n if (!ActorQueryOperation.getOperationSource(action.operation)) {\n throw new Error(`Actor ${this.name} requires an operation with source annotation.`);\n }\n return { httpRequests: 1 };\n }\n\n public async run(action: IActionQueryOperation): Promise {\n // Log to physical plan\n const physicalQueryPlanLogger: IPhysicalQueryPlanLogger | undefined = action.context\n .get(KeysInitQuery.physicalQueryPlanLogger);\n if (physicalQueryPlanLogger) {\n physicalQueryPlanLogger.logOperation(\n action.operation.type,\n undefined,\n action.operation,\n action.context.get(KeysInitQuery.physicalQueryPlanNode),\n this.name,\n {},\n );\n action.context = action.context.set(KeysInitQuery.physicalQueryPlanNode, action.operation);\n }\n\n const sourceWrapper: IQuerySourceWrapper = ActorQueryOperation.getOperationSource(action.operation)!;\n const mergedContext = sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context;\n\n // Check if the operation is a CONSTRUCT query\n // We recurse because it may be wrapped in other operations such as SLICE and FROM\n let construct = false;\n Util.recurseOperation(action.operation, {\n construct(): boolean {\n construct = true;\n return false;\n },\n });\n // If so, delegate to queryQuads\n if (construct) {\n const quadStream = sourceWrapper.source.queryQuads(action.operation, mergedContext);\n const metadata = getMetadataQuads(quadStream);\n return {\n type: 'quads',\n quadStream,\n metadata,\n };\n }\n\n // eslint-disable-next-line ts/switch-exhaustiveness-check\n switch (action.operation.type) {\n case Algebra.types.ASK:\n return {\n type: 'boolean',\n execute: () => sourceWrapper.source.queryBoolean(action.operation, mergedContext),\n };\n case Algebra.types.COMPOSITE_UPDATE:\n case Algebra.types.DELETE_INSERT:\n case Algebra.types.LOAD:\n case Algebra.types.CLEAR:\n case Algebra.types.CREATE:\n case Algebra.types.DROP:\n case Algebra.types.ADD:\n case Algebra.types.MOVE:\n case Algebra.types.COPY:\n return {\n type: 'void',\n execute: () => sourceWrapper.source.queryVoid(action.operation, mergedContext),\n };\n }\n\n const bindingsStream = sourceWrapper.source.queryBindings(action.operation, mergedContext);\n const metadata = getMetadataBindings(bindingsStream);\n return {\n type: 'bindings',\n bindingsStream,\n metadata,\n };\n }\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { MediatorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { IActorTest } from '@comunica/core';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type {\n BindingsStream,\n IQueryOperationResultBindings,\n IActionContext,\n IQueryOperationResult,\n MetadataBindings,\n MetadataQuads,\n IQueryOperationResultQuads,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { UnionIterator } from 'asynciterator';\nimport { uniqTerms } from 'rdf-terms';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Union Query Operation Actor.\n */\nexport class ActorQueryOperationUnion extends ActorQueryOperationTypedMediated {\n public readonly mediatorRdfMetadataAccumulate: MediatorRdfMetadataAccumulate;\n\n public constructor(args: IActorQueryOperationUnionArgs) {\n super(args, 'union');\n }\n\n /**\n * Takes the union of the given double array variables.\n * Uniqueness is guaranteed.\n * @param {string[][]} variables Double array of variables to take the union of.\n * @return {string[]} The union of the given variables.\n */\n public static unionVariables(variables: RDF.Variable[][]): RDF.Variable[] {\n return uniqTerms(variables.flat());\n }\n\n /**\n * Takes the union of the given metadata array.\n * It will ensure that the cardinality metadata value is properly calculated.\n * @param {{[p: string]: any}[]} metadatas Array of metadata.\n * @param bindings If the union of the variables field should also be taken.\n * @param context The action context\n * @param mediatorRdfMetadataAccumulate Mediator for metadata accumulation\n * @return {{[p: string]: any}} Union of the metadata.\n */\n public static async unionMetadata<\n Bindings extends boolean,\n M extends (Bindings extends true ? MetadataBindings : MetadataQuads),\n >(\n metadatas: M[],\n bindings: Bindings,\n context: IActionContext,\n mediatorRdfMetadataAccumulate: MediatorRdfMetadataAccumulate,\n // eslint-disable-next-line function-paren-newline\n ): Promise {\n let accumulatedMetadata: M = (await mediatorRdfMetadataAccumulate\n .mediate({ mode: 'initialize', context })).metadata;\n\n // Accumulate cardinality\n for (const appendingMetadata of metadatas) {\n accumulatedMetadata = {\n ...appendingMetadata,\n ...(await mediatorRdfMetadataAccumulate\n .mediate({\n mode: 'append',\n accumulatedMetadata: accumulatedMetadata,\n appendingMetadata: appendingMetadata,\n context,\n })).metadata,\n };\n }\n\n // Create new metadata state\n accumulatedMetadata.state = new MetadataValidationState();\n\n // Propagate metadata invalidations\n const invalidateListener = (): void => accumulatedMetadata.state.invalidate();\n for (const metadata of metadatas) {\n metadata.state.addInvalidateListener(invalidateListener);\n }\n\n // Union variables\n if (bindings) {\n accumulatedMetadata.variables = ActorQueryOperationUnion\n .unionVariables(metadatas.map(metadata => metadata.variables));\n }\n\n return accumulatedMetadata;\n }\n\n public async testOperation(_operation: Algebra.Union, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Union, context: IActionContext):\n Promise {\n // Determine the type over which we are taking a union\n const outputsRaw = await Promise.all(operation.input\n .map(subOperation => this.mediatorQueryOperation.mediate({ operation: subOperation, context })));\n let outputType: string | undefined;\n for (const output of outputsRaw) {\n if (outputType === undefined) {\n outputType = output.type;\n } else if (outputType !== output.type) {\n throw new Error(`Unable to union ${outputType} and ${output.type}`);\n }\n }\n\n // Handle bindings\n if (outputType === 'bindings' || operation.input.length === 0) {\n const outputs: IQueryOperationResultBindings[] = outputsRaw.map(ActorQueryOperation.getSafeBindings);\n\n const bindingsStream: BindingsStream = new UnionIterator(outputs.map(\n (output: IQueryOperationResultBindings) => output.bindingsStream,\n ), { autoStart: false });\n\n const metadata: () => Promise = () => Promise.all(outputs.map(output => output.metadata()))\n .then(subMeta => ActorQueryOperationUnion\n .unionMetadata(subMeta, true, context, this.mediatorRdfMetadataAccumulate));\n return { type: 'bindings', bindingsStream, metadata };\n }\n\n // Handle quads\n if (outputType === 'quads') {\n const outputs: IQueryOperationResultQuads[] = outputsRaw.map(ActorQueryOperation.getSafeQuads);\n\n const quadStream = new UnionIterator(outputs.map(\n (output: IQueryOperationResultQuads) => output.quadStream,\n ), { autoStart: false });\n\n const metadata: () => Promise = () => Promise.all(outputs.map(output => output.metadata()))\n .then(subMeta => ActorQueryOperationUnion\n .unionMetadata(subMeta, false, context, this.mediatorRdfMetadataAccumulate));\n return { type: 'quads', quadStream, metadata };\n }\n\n // Throw otherwise\n throw new Error(`Unable to union ${outputType}`);\n }\n}\n\nexport interface IActorQueryOperationUnionArgs extends IActorQueryOperationTypedMediatedArgs {\n mediatorRdfMetadataAccumulate: MediatorRdfMetadataAccumulate;\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type {\n MediatorRdfUpdateQuads,\n} from '@comunica/bus-rdf-update-quads';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport type { Algebra } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor\n * that handles SPARQL clear operations.\n */\nexport class ActorQueryOperationClear extends ActorQueryOperationTypedMediated {\n public readonly mediatorUpdateQuads: MediatorRdfUpdateQuads;\n\n public constructor(args: IActorQueryOperationClearArgs) {\n super(args, 'clear');\n }\n\n public async testOperation(operation: Algebra.Clear, context: IActionContext): Promise {\n ActorQueryOperation.throwOnReadOnly(context);\n return true;\n }\n\n public async runOperation(operation: Algebra.Clear, context: IActionContext):\n Promise {\n // Delegate to update-quads bus\n let graphs: RDF.DefaultGraph | 'NAMED' | 'ALL' | RDF.NamedNode[];\n if (operation.source === 'DEFAULT') {\n graphs = DF.defaultGraph();\n } else if (typeof operation.source === 'string') {\n graphs = operation.source;\n } else {\n graphs = [ operation.source ];\n }\n const { execute } = await this.mediatorUpdateQuads.mediate({\n deleteGraphs: {\n graphs,\n requireExistence: !operation.silent,\n dropGraphs: false,\n },\n context,\n });\n\n return {\n type: 'void',\n execute,\n };\n }\n}\n\nexport interface IActorQueryOperationClearArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * The RDF Update Quads mediator\n */\n mediatorUpdateQuads: MediatorRdfUpdateQuads;\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Update CompositeUpdate Query Operation Actor.\n */\nexport class ActorQueryOperationUpdateCompositeUpdate\n extends ActorQueryOperationTypedMediated {\n public constructor(args: IActorQueryOperationTypedMediatedArgs) {\n super(args, 'compositeupdate');\n }\n\n public async testOperation(\n operation: Algebra.CompositeUpdate,\n context: IActionContext,\n ): Promise {\n ActorQueryOperation.throwOnReadOnly(context);\n return true;\n }\n\n public async runOperation(operationOriginal: Algebra.CompositeUpdate, context: IActionContext):\n Promise {\n const execute = (): Promise => (async(): Promise => {\n // Execute update operations in sequence\n for (const operation of operationOriginal.updates) {\n const subResult = ActorQueryOperation\n .getSafeVoid(await this.mediatorQueryOperation.mediate({ operation, context }));\n await subResult.execute();\n }\n })();\n\n return {\n type: 'void',\n execute,\n };\n }\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { MediatorRdfUpdateQuads } from '@comunica/bus-rdf-update-quads';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor that\n * handles SPARQL create operations.\n */\nexport class ActorQueryOperationCreate extends ActorQueryOperationTypedMediated {\n public readonly mediatorUpdateQuads: MediatorRdfUpdateQuads;\n\n public constructor(args: IActorQueryOperationCreateArgs) {\n super(args, 'create');\n }\n\n public async testOperation(operation: Algebra.Create, context: IActionContext): Promise {\n ActorQueryOperation.throwOnReadOnly(context);\n return true;\n }\n\n public async runOperation(operation: Algebra.Create, context: IActionContext):\n Promise {\n // Delegate to update-quads bus\n const { execute } = await this.mediatorUpdateQuads.mediate({\n createGraphs: {\n graphs: [ operation.source ],\n requireNonExistence: !operation.silent,\n },\n context,\n });\n\n return {\n type: 'void',\n execute,\n };\n }\n}\n\nexport interface IActorQueryOperationCreateArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * The RDF Update Quads mediator\n */\n mediatorUpdateQuads: MediatorRdfUpdateQuads;\n}\n","import { BindingsToQuadsIterator } from '@comunica/actor-query-operation-construct';\nimport { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperation,\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { MediatorRdfUpdateQuads } from '@comunica/bus-rdf-update-quads';\nimport type { IActorTest } from '@comunica/core';\nimport type { IQueryOperationResult, BindingsStream, IActionContext } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ArrayIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Update DeleteInsert Query Operation Actor.\n */\nexport class ActorQueryOperationUpdateDeleteInsert extends ActorQueryOperationTypedMediated {\n public readonly mediatorUpdateQuads: MediatorRdfUpdateQuads;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n protected blankNodeCounter = 0;\n\n public constructor(args: IActorQueryOperationUpdateDeleteInsertArgs) {\n super(args, 'deleteinsert');\n }\n\n public async testOperation(\n operation: Algebra.DeleteInsert,\n context: IActionContext,\n ): Promise {\n ActorQueryOperation.throwOnReadOnly(context);\n return true;\n }\n\n public async runOperation(operation: Algebra.DeleteInsert, context: IActionContext):\n Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n // Evaluate the where clause\n const whereBindings: BindingsStream = operation.where ?\n ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation\n .mediate({ operation: operation.where, context })).bindingsStream :\n new ArrayIterator([ bindingsFactory.bindings() ], { autoStart: false });\n\n // Construct triples using the result based on the pattern.\n let quadStreamInsert: AsyncIterator | undefined;\n let quadStreamDelete: AsyncIterator | undefined;\n if (operation.insert) {\n // Localize blank nodes in pattern, to avoid clashes across different INSERT/DELETE calls\n quadStreamInsert = new BindingsToQuadsIterator(\n operation.insert.map(BindingsToQuadsIterator.localizeQuad.bind(null, this.blankNodeCounter)),\n whereBindings.clone(),\n );\n this.blankNodeCounter++;\n }\n if (operation.delete) {\n // Localize blank nodes in pattern, to avoid clashes across different INSERT/DELETE calls\n quadStreamDelete = new BindingsToQuadsIterator(\n operation.delete.map(BindingsToQuadsIterator.localizeQuad.bind(null, this.blankNodeCounter)),\n whereBindings.clone(),\n );\n this.blankNodeCounter++;\n }\n\n // Evaluate the required modifications\n const { execute } = await this.mediatorUpdateQuads.mediate({\n quadStreamInsert,\n quadStreamDelete,\n context,\n });\n\n return {\n type: 'void',\n execute,\n };\n }\n}\n\nexport interface IActorQueryOperationUpdateDeleteInsertArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * The RDF Update Quads mediator\n */\n mediatorUpdateQuads: MediatorRdfUpdateQuads;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { MediatorRdfUpdateQuads } from '@comunica/bus-rdf-update-quads';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport type { Algebra } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor\n * that handles SPARQL drop operations.\n */\nexport class ActorQueryOperationDrop extends ActorQueryOperationTypedMediated {\n public readonly mediatorUpdateQuads: MediatorRdfUpdateQuads;\n\n public constructor(args: IActorQueryOperationDropArgs) {\n super(args, 'drop');\n }\n\n public async testOperation(operation: Algebra.Drop, context: IActionContext): Promise {\n ActorQueryOperation.throwOnReadOnly(context);\n return true;\n }\n\n public async runOperation(operation: Algebra.Drop, context: IActionContext):\n Promise {\n // Delegate to update-quads bus\n let graphs: RDF.DefaultGraph | 'NAMED' | 'ALL' | RDF.NamedNode[];\n if (operation.source === 'DEFAULT') {\n graphs = DF.defaultGraph();\n } else if (typeof operation.source === 'string') {\n graphs = operation.source;\n } else {\n graphs = [ operation.source ];\n }\n const { execute } = await this.mediatorUpdateQuads.mediate({\n deleteGraphs: {\n graphs,\n requireExistence: !operation.silent,\n dropGraphs: true,\n },\n context,\n });\n\n return {\n type: 'void',\n execute,\n };\n }\n}\n\nexport interface IActorQueryOperationDropArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * The RDF Update Quads mediator\n */\n mediatorUpdateQuads: MediatorRdfUpdateQuads;\n}\n","import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';\nimport type { MediatorQuerySourceIdentify } from '@comunica/bus-query-source-identify';\nimport type { MediatorRdfUpdateQuads } from '@comunica/bus-rdf-update-quads';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResult } from '@comunica/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { Factory } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor\n * that handles SPARQL load operations.\n */\nexport class ActorQueryOperationLoad extends ActorQueryOperationTypedMediated {\n public readonly mediatorUpdateQuads: MediatorRdfUpdateQuads;\n public readonly mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;\n\n private readonly factory: Factory;\n private readonly constructOperation: Algebra.Construct;\n\n public constructor(args: IActorQueryOperationLoadArgs) {\n super(args, 'load');\n this.factory = new Factory();\n }\n\n public async testOperation(operation: Algebra.Load, context: IActionContext): Promise {\n ActorQueryOperation.throwOnReadOnly(context);\n return true;\n }\n\n public async runOperation(operation: Algebra.Load, context: IActionContext):\n Promise {\n // Determine query source\n let subContext = context;\n if (operation.silent) {\n subContext = subContext.set(KeysInitQuery.lenient, true);\n }\n const { querySource } = await this.mediatorQuerySourceIdentify.mediate({\n querySourceUnidentified: { value: operation.source.value },\n context: subContext,\n });\n\n // Create CONSTRUCT query on the given source\n const output = ActorQueryOperationLoad.getSafeQuads(await this.mediatorQueryOperation.mediate({\n operation: this.factory.createConstruct(\n ActorQueryOperation.assignOperationSource(\n this.factory.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o')),\n querySource,\n ),\n [ this.factory.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o')) ],\n ),\n context: subContext,\n }));\n\n // Determine quad stream to insert\n let quadStream = output.quadStream;\n if (operation.destination) {\n quadStream = quadStream.map(quad => DF.quad(quad.subject, quad.predicate, quad.object, operation.destination));\n }\n\n // Insert quad stream\n const { execute } = await this.mediatorUpdateQuads.mediate({\n quadStreamInsert: quadStream,\n context,\n });\n\n return {\n type: 'void',\n execute,\n };\n }\n}\n\nexport interface IActorQueryOperationLoadArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * The RDF Update Quads mediator\n */\n mediatorUpdateQuads: MediatorRdfUpdateQuads;\n /**\n * Mediator for identifying load sources.\n */\n mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActionQueryOperation } from '@comunica/bus-query-operation';\nimport { ActorQueryOperationTyped } from '@comunica/bus-query-operation';\nimport type { IActorArgs, IActorTest } from '@comunica/core';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type {\n IQueryOperationResult,\n BindingsStream,\n Bindings,\n IActionContext,\n MetadataBindings,\n} from '@comunica/types';\nimport { ArrayIterator } from 'asynciterator';\nimport { DataFactory } from 'rdf-data-factory';\nimport type { Algebra } from 'sparqlalgebrajs';\n\nconst DF = new DataFactory();\n\n/**\n * A comunica Values Query Operation Actor.\n */\nexport class ActorQueryOperationValues extends ActorQueryOperationTyped {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryOperationUpdateDeleteInsertArgs) {\n super(args, 'values');\n }\n\n public async testOperation(_operation: Algebra.Values, _context: IActionContext): Promise {\n return true;\n }\n\n public async runOperation(operation: Algebra.Values, context: IActionContext):\n Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context);\n const bindingsStream: BindingsStream = new ArrayIterator(operation.bindings\n .map(x => bindingsFactory.bindings(Object.entries(x)\n .map(([ key, value ]) => [ DF.variable(key.slice(1)), value ]))));\n const variables = operation.variables;\n const metadata = (): Promise => Promise.resolve({\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: operation.bindings.length },\n canContainUndefs: operation.bindings.some(bindings => variables.some(variable => !(`?${variable.value}` in bindings))),\n variables,\n });\n return { type: 'bindings', bindingsStream, metadata };\n }\n}\n\nexport interface IActorQueryOperationUpdateDeleteInsertArgs extends\n IActorArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type { IActionQueryParse, IActorQueryParseArgs, IActorQueryParseOutput } from '@comunica/bus-query-parse';\nimport { ActorQueryParse } from '@comunica/bus-query-parse';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport { Converter } from 'graphql-to-sparql';\n\n/**\n * A comunica GraphQL SPARQL Parse Actor.\n */\nexport class ActorQueryParseGraphql extends ActorQueryParse {\n private readonly graphqlToSparql: Converter;\n\n public constructor(args: IActorQueryParseArgs) {\n super(args);\n this.graphqlToSparql = new Converter({ requireContext: true });\n }\n\n public async test(action: IActionQueryParse): Promise {\n if (action.queryFormat?.language !== 'graphql') {\n throw new Error('This actor can only parse GraphQL queries');\n }\n return true;\n }\n\n public async run(action: IActionQueryParse): Promise {\n const context: any = action.context.get(KeysInitQuery.jsonLdContext) || {};\n const options = {\n // eslint-disable-next-line ts/no-unnecessary-type-assertion\n singularizeVariables: action.context.get(KeysInitQuery.graphqlSingularizeVariables),\n };\n return { operation: await this.graphqlToSparql.graphqlToSparqlAlgebra(action.query, context, options) };\n }\n}\n","import type { IActionQueryParse, IActorQueryParseArgs, IActorQueryParseOutput } from '@comunica/bus-query-parse';\nimport { ActorQueryParse } from '@comunica/bus-query-parse';\nimport type { IActorTest } from '@comunica/core';\nimport { translate } from 'sparqlalgebrajs';\nimport { Parser as SparqlParser } from 'sparqljs';\n\n/**\n * A comunica Algebra SPARQL Parse Actor.\n */\nexport class ActorQueryParseSparql extends ActorQueryParse {\n public readonly prefixes: Record;\n\n public constructor(args: IActorQueryParseSparqlArgs) {\n super(args);\n this.prefixes = Object.freeze(this.prefixes);\n }\n\n public async test(action: IActionQueryParse): Promise {\n if (action.queryFormat && action.queryFormat.language !== 'sparql') {\n throw new Error('This actor can only parse SPARQL queries');\n }\n return true;\n }\n\n public async run(action: IActionQueryParse): Promise {\n const parser = new SparqlParser({ prefixes: this.prefixes, baseIRI: action.baseIRI, sparqlStar: true });\n const parsedSyntax = parser.parse(action.query);\n const baseIRI = parsedSyntax.type === 'query' ? parsedSyntax.base : undefined;\n return {\n baseIRI,\n operation: translate(parsedSyntax, {\n quads: true,\n prefixes: this.prefixes,\n blankToVariable: true,\n baseIRI: action.baseIRI,\n }),\n };\n }\n}\n\nexport interface IActorQueryParseSparqlArgs extends IActorQueryParseArgs {\n /**\n * Default prefixes to use\n * @range {json}\n * @default {{\n * \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\n * \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\",\n * \"owl\": \"http://www.w3.org/2002/07/owl#\",\n * \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n * \"dc\": \"http://purl.org/dc/terms/\",\n * \"dcterms\": \"http://purl.org/dc/terms/\",\n * \"dc11\": \"http://purl.org/dc/elements/1.1/\",\n * \"foaf\": \"http://xmlns.com/foaf/0.1/\",\n * \"geo\": \"http://www.w3.org/2003/01/geo/wgs84_pos#\",\n * \"dbpedia\": \"http://dbpedia.org/resource/\",\n * \"dbpedia-owl\": \"http://dbpedia.org/ontology/\",\n * \"dbpprop\": \"http://dbpedia.org/property/\",\n * \"schema\": \"http://schema.org/\",\n * \"skos\": \"http://www.w3.org/2008/05/skos#\"\n * }}\n */\n prefixes?: Record;\n}\n","import type {\n IActionQueryProcess,\n IActorQueryProcessOutput,\n IActorQueryProcessArgs,\n IQueryProcessSequential,\n} from '@comunica/bus-query-process';\nimport {\n ActorQueryProcess,\n} from '@comunica/bus-query-process';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport { ActionContextKey } from '@comunica/core';\n\n/**\n * A comunica Explain Logical Query Process Actor.\n */\nexport class ActorQueryProcessExplainLogical extends ActorQueryProcess {\n public readonly queryProcessor: IQueryProcessSequential;\n\n public constructor(args: IActorQueryProcessExplainLogicalArgs) {\n super(args);\n }\n\n public async test(action: IActionQueryProcess): Promise {\n if ((action.context.get(KeysInitQuery.explain) ||\n action.context.get(new ActionContextKey('explain'))) !== 'logical') {\n throw new Error(`${this.name} can only explain in 'logical' mode.`);\n }\n return true;\n }\n\n public async run(action: IActionQueryProcess): Promise {\n // Parse and optimize the query\n let { operation, context } = await this.queryProcessor.parse(action.query, action.context);\n ({ operation, context } = await this.queryProcessor.optimize(operation, context));\n\n return {\n result: {\n explain: true,\n type: 'logical',\n data: operation,\n },\n };\n }\n}\n\nexport interface IActorQueryProcessExplainLogicalArgs extends IActorQueryProcessArgs {\n queryProcessor: IQueryProcessSequential;\n}\n","import type {\n IActionQueryProcess,\n IActorQueryProcessOutput,\n IActorQueryProcessArgs,\n IQueryProcessSequential,\n} from '@comunica/bus-query-process';\nimport {\n ActorQueryProcess,\n} from '@comunica/bus-query-process';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport { ActionContextKey } from '@comunica/core';\n\n/**\n * A comunica Explain Parsed Query Process Actor.\n */\nexport class ActorQueryProcessExplainParsed extends ActorQueryProcess {\n public readonly queryProcessor: IQueryProcessSequential;\n\n public constructor(args: IActorQueryProcessExplainParsedArgs) {\n super(args);\n }\n\n public async test(action: IActionQueryProcess): Promise {\n if ((action.context.get(KeysInitQuery.explain) ||\n action.context.get(new ActionContextKey('explain'))) !== 'parsed') {\n throw new Error(`${this.name} can only explain in 'parsed' mode.`);\n }\n return true;\n }\n\n public async run(action: IActionQueryProcess): Promise {\n // Parse the query\n const { operation } = await this.queryProcessor.parse(action.query, action.context);\n\n return {\n result: {\n explain: true,\n type: 'parsed',\n data: operation,\n },\n };\n }\n}\n\nexport interface IActorQueryProcessExplainParsedArgs extends IActorQueryProcessArgs {\n queryProcessor: IQueryProcessSequential;\n}\n","import type {\n IActionQueryProcess,\n IActorQueryProcessOutput,\n IActorQueryProcessArgs,\n IQueryProcessSequential,\n} from '@comunica/bus-query-process';\nimport {\n ActorQueryProcess,\n} from '@comunica/bus-query-process';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport { ActionContextKey } from '@comunica/core';\nimport { MemoryPhysicalQueryPlanLogger } from './MemoryPhysicalQueryPlanLogger';\n\n/**\n * A comunica Explain Physical Query Process Actor.\n */\nexport class ActorQueryProcessExplainPhysical extends ActorQueryProcess {\n public readonly queryProcessor: IQueryProcessSequential;\n\n public constructor(args: IActorQueryProcessExplainPhysicalArgs) {\n super(args);\n }\n\n public async test(action: IActionQueryProcess): Promise {\n const mode = (action.context.get(KeysInitQuery.explain) || action.context.get(new ActionContextKey('explain')));\n if (mode !== 'physical' && mode !== 'physical-json') {\n throw new Error(`${this.name} can only explain in 'physical' or 'physical-json' mode.`);\n }\n return true;\n }\n\n public async run(action: IActionQueryProcess): Promise {\n // Run all query processing steps in sequence\n\n let { operation, context } = await this.queryProcessor.parse(action.query, action.context);\n ({ operation, context } = await this.queryProcessor.optimize(operation, context));\n\n // If we need a physical query plan, store a physical query plan logger in the context, and collect it after exec\n const physicalQueryPlanLogger = new MemoryPhysicalQueryPlanLogger();\n context = context.set(KeysInitQuery.physicalQueryPlanLogger, physicalQueryPlanLogger);\n\n const output = await this.queryProcessor.evaluate(operation, context);\n\n // Make sure the whole result is produced\n switch (output.type) {\n case 'bindings':\n await output.bindingsStream.toArray();\n break;\n case 'quads':\n await output.quadStream.toArray();\n break;\n case 'boolean':\n await output.execute();\n break;\n case 'void':\n await output.execute();\n break;\n }\n\n const mode: 'physical' | 'physical-json' = (action.context.get(KeysInitQuery.explain) ??\n action.context.getSafe(new ActionContextKey('explain')));\n return {\n result: {\n explain: true,\n type: mode,\n data: mode === 'physical' ? physicalQueryPlanLogger.toCompactString() : physicalQueryPlanLogger.toJson(),\n },\n };\n }\n}\n\nexport interface IActorQueryProcessExplainPhysicalArgs extends IActorQueryProcessArgs {\n queryProcessor: IQueryProcessSequential;\n}\n","import type { IPhysicalQueryPlanLogger, IPlanNode } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { termToString } from 'rdf-string';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A physical query plan logger that stores everything in memory.\n */\nexport class MemoryPhysicalQueryPlanLogger implements IPhysicalQueryPlanLogger {\n private readonly planNodes: Map;\n private rootNode: IPlanNode | undefined;\n\n public constructor() {\n this.planNodes = new Map();\n }\n\n public logOperation(\n logicalOperator: string,\n physicalOperator: string | undefined,\n node: any,\n parentNode: any,\n actor: string,\n metadata: any,\n ): void {\n const planNode: IPlanNode = {\n actor,\n logicalOperator,\n physicalOperator,\n rawNode: node,\n children: [],\n metadata,\n };\n this.planNodes.set(node, planNode);\n\n if (this.rootNode) {\n if (!parentNode) {\n throw new Error(`Detected more than one parent-less node`);\n }\n const planParentNode = this.planNodes.get(parentNode);\n if (!planParentNode) {\n throw new Error(`Could not find parent node`);\n }\n planParentNode.children.push(planNode);\n } else {\n if (parentNode) {\n throw new Error(`No root node has been set yet, while a parent is being referenced`);\n }\n this.rootNode = planNode;\n }\n }\n\n public stashChildren(node: any, filter?: (planNodeFilter: IPlanNode) => boolean): void {\n const planNode = this.planNodes.get(node);\n if (!planNode) {\n throw new Error(`Could not find plan node`);\n }\n planNode.children = filter ? planNode.children.filter(filter) : [];\n }\n\n public unstashChild(\n node: any,\n parentNode: any,\n ): void {\n const planNode = this.planNodes.get(node);\n if (planNode) {\n const planParentNode = this.planNodes.get(parentNode);\n if (!planParentNode) {\n throw new Error(`Could not find plan parent node`);\n }\n planParentNode.children.push(planNode);\n }\n }\n\n public appendMetadata(\n node: any,\n metadata: any,\n ): void {\n const planNode = this.planNodes.get(node);\n if (planNode) {\n planNode.metadata = {\n ...planNode.metadata,\n ...metadata,\n };\n }\n }\n\n public toJson(): IPlanNodeJson | Record {\n return this.rootNode ? this.planNodeToJson(this.rootNode) : {};\n }\n\n private planNodeToJson(node: IPlanNode): IPlanNodeJson {\n const data: IPlanNodeJson = {\n logical: node.logicalOperator,\n physical: node.physicalOperator,\n ...this.getLogicalMetadata(node.rawNode),\n ...this.compactMetadata(node.metadata),\n };\n\n if (node.children.length > 0) {\n data.children = node.children.map(child => this.planNodeToJson(child));\n }\n\n // Special case: compact children for bind joins.\n if (data.physical === 'bind' && data.children) {\n // Group children by query plan format\n const childrenGrouped: Record = {};\n for (const child of data.children) {\n const lastSubChild = child.children?.at(-1) ?? child;\n const key = this.getPlanHash(lastSubChild).join(',');\n if (!childrenGrouped[key]) {\n childrenGrouped[key] = [];\n }\n childrenGrouped[key].push(child);\n }\n\n // Compact query plan occurrences\n const childrenCompact: IPlanNodeJsonChildCompact[] = [];\n for (const children of Object.values(childrenGrouped)) {\n childrenCompact.push({\n occurrences: children.length,\n firstOccurrence: children[0],\n });\n }\n\n // Replace children with compacted representation\n data.childrenCompact = childrenCompact;\n delete data.children;\n }\n\n return data;\n }\n\n private getPlanHash(node: IPlanNodeJson): string[] {\n let entries = [ `${node.logical}-${node.physical}` ];\n if (node.children) {\n entries = [\n ...entries,\n ...node.children.flatMap(child => this.getPlanHash(child)),\n ];\n } else if (node.childrenCompact) {\n entries = [\n ...entries,\n ...node.childrenCompact.flatMap(child => this.getPlanHash(child.firstOccurrence)),\n ];\n }\n return entries;\n }\n\n private compactMetadata(metadata: any): any {\n return Object.fromEntries(Object.entries(metadata)\n .map(([ key, value ]) => [ key, this.compactMetadataValue(value) ]));\n }\n\n private compactMetadataValue(value: any): any {\n return value && typeof value === 'object' && 'termType' in value ? this.getLogicalMetadata(value) : value;\n }\n\n private getLogicalMetadata(rawNode: any): IPlanNodeJsonLogicalMetadata {\n const data: IPlanNodeJsonLogicalMetadata = {};\n\n if ('type' in rawNode) {\n const operation: Algebra.Operation = rawNode;\n\n if (operation.metadata?.scopedSource) {\n data.source = ( operation.metadata.scopedSource).source.toString();\n }\n\n // eslint-disable-next-line ts/switch-exhaustiveness-check\n switch (operation.type) {\n case 'pattern':\n data.pattern = this.quadToString(operation);\n break;\n case 'project':\n data.variables = operation.variables.map(variable => variable.value);\n break;\n }\n }\n\n return data;\n }\n\n private quadToString(quad: RDF.BaseQuad): string {\n return `${termToString(quad.subject)} ${termToString(quad.predicate)} ${termToString(quad.object)}${quad.graph.termType === 'DefaultGraph' ? '' : ` ${termToString(quad.graph)}`}`;\n }\n\n public toCompactString(): string {\n const node = this.toJson();\n const lines: string[] = [];\n const sources: Map = new Map();\n\n if ('logical' in node) {\n this.nodeToCompactString(lines, sources, '', node);\n } else {\n lines.push('Empty');\n }\n\n if (sources.size > 0) {\n lines.push('');\n lines.push('sources:');\n for (const [ key, id ] of sources.entries()) {\n lines.push(` ${id}: ${key}`);\n }\n }\n\n return lines.join('\\n');\n }\n\n public nodeToCompactString(\n lines: string[],\n sources: Map,\n indent: string,\n node: IPlanNodeJson,\n metadata?: string,\n ): void {\n let sourceId: number | undefined;\n if (node.source) {\n sourceId = sources.get(node.source);\n if (sourceId === undefined) {\n sourceId = sources.size;\n sources.set(node.source, sourceId);\n }\n }\n\n lines.push(`${\n indent}${\n node.logical}${\n node.physical ? `(${node.physical})` : ''}${\n node.pattern ? ` (${node.pattern})` : ''}${\n node.variables ? ` (${node.variables.join(',')})` : ''}${\n node.bindOperation ? ` bindOperation:(${node.bindOperation.pattern}) bindCardEst:${node.bindOperationCardinality.type === 'estimate' ? '~' : ''}${numberToString(node.bindOperationCardinality.value)}` : ''}${\n node.cardinality ? ` cardEst:${node.cardinality.type === 'estimate' ? '~' : ''}${numberToString(node.cardinality.value)}` : ''}${\n node.source ? ` src:${sourceId}` : ''}${\n node.cardinalityReal ? ` cardReal:${node.cardinalityReal}` : ''}${\n node.timeSelf ? ` timeSelf:${numberToString(node.timeSelf)}ms` : ''}${\n node.timeLife ? ` timeLife:${numberToString(node.timeLife)}ms` : ''}${\n metadata ? ` ${metadata}` : ''}`);\n for (const child of node.children ?? []) {\n this.nodeToCompactString(lines, sources, `${indent} `, child);\n }\n for (const child of node.childrenCompact ?? []) {\n this.nodeToCompactString(lines, sources, `${indent} `, child.firstOccurrence, `compacted-occurrences:${child.occurrences}`);\n }\n }\n}\n\nexport function numberToString(value: number): string {\n return value.toLocaleString('en-US', { minimumFractionDigits: 0, maximumFractionDigits: 3 });\n}\n\ninterface IPlanNodeJson extends IPlanNodeJsonLogicalMetadata {\n logical: string;\n physical?: string;\n [metadataKey: string]: any;\n children?: IPlanNodeJson[];\n childrenCompact?: IPlanNodeJsonChildCompact[];\n}\n\ninterface IPlanNodeJsonChildCompact {\n occurrences: number;\n firstOccurrence: IPlanNodeJson;\n}\n\ninterface IPlanNodeJsonLogicalMetadata {\n pattern?: string;\n source?: string;\n variables?: string[];\n cardinality?: RDF.QueryResultCardinality;\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorContextPreprocess } from '@comunica/bus-context-preprocess';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { MediatorOptimizeQueryOperation } from '@comunica/bus-optimize-query-operation';\nimport type { MediatorQueryOperation } from '@comunica/bus-query-operation';\nimport { materializeOperation } from '@comunica/bus-query-operation';\nimport type { MediatorQueryParse } from '@comunica/bus-query-parse';\nimport type {\n IActionQueryProcess,\n IActorQueryProcessOutput,\n IActorQueryProcessArgs,\n IQueryProcessSequential,\n IQueryProcessSequentialOutput,\n} from '@comunica/bus-query-process';\nimport {\n ActorQueryProcess,\n} from '@comunica/bus-query-process';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport { ActionContextKey } from '@comunica/core';\nimport type {\n IActionContext,\n IQueryOperationResult,\n QueryFormatType,\n} from '@comunica/types';\n\nimport type * as RDF from '@rdfjs/types';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Sequential Query Process Actor.\n */\nexport class ActorQueryProcessSequential extends ActorQueryProcess implements IQueryProcessSequential {\n public readonly mediatorContextPreprocess: MediatorContextPreprocess;\n public readonly mediatorQueryParse: MediatorQueryParse;\n public readonly mediatorOptimizeQueryOperation: MediatorOptimizeQueryOperation;\n public readonly mediatorQueryOperation: MediatorQueryOperation;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQueryProcessSequentialArgs) {\n super(args);\n }\n\n public async test(action: IActionQueryProcess): Promise {\n if (action.context.get(KeysInitQuery.explain) || action.context.get(new ActionContextKey('explain'))) {\n throw new Error(`${this.name} is not able to explain queries.`);\n }\n return true;\n }\n\n public async run(action: IActionQueryProcess): Promise {\n // Run all query processing steps in sequence\n let { operation, context } = await this.parse(action.query, action.context);\n ({ operation, context } = await this.optimize(operation, context));\n const output = await this.evaluate(operation, context);\n\n return { result: output };\n }\n\n public async parse(query: QueryFormatType, context: IActionContext): Promise {\n // Pre-processing the context\n context = (await this.mediatorContextPreprocess.mediate({ context, initialize: true })).context;\n\n // Parse query\n let operation: Algebra.Operation;\n if (typeof query === 'string') {\n // Save the original query string in the context\n context = context.set(KeysInitQuery.queryString, query);\n\n const baseIRI: string | undefined = context.get(KeysInitQuery.baseIRI);\n const queryFormat: RDF.QueryFormat = context.get(KeysInitQuery.queryFormat)!;\n const queryParseOutput = await this.mediatorQueryParse.mediate({ context, query, queryFormat, baseIRI });\n operation = queryParseOutput.operation;\n // Update the baseIRI in the context if the query modified it.\n if (queryParseOutput.baseIRI) {\n context = context.set(KeysInitQuery.baseIRI, queryParseOutput.baseIRI);\n }\n } else {\n operation = query;\n }\n\n // Apply initial bindings in context\n if (context.has(KeysInitQuery.initialBindings)) {\n const bindingsFactory = await BindingsFactory\n .create(this.mediatorMergeBindingsContext, context);\n operation = materializeOperation(operation, context.get(KeysInitQuery.initialBindings)!, bindingsFactory);\n\n // Delete the query string from the context, since our initial query might have changed\n context = context.delete(KeysInitQuery.queryString);\n }\n\n return { operation, context };\n }\n\n public async optimize(operation: Algebra.Operation, context: IActionContext): Promise {\n // Save initial query in context\n context = context.set(KeysInitQuery.query, operation);\n\n ({ operation, context } = await this.mediatorOptimizeQueryOperation.mediate({ context, operation }));\n\n // Save original query in context\n context = context.set(KeysInitQuery.query, operation);\n\n return { operation, context };\n }\n\n public async evaluate(operation: Algebra.Operation, context: IActionContext): Promise {\n const output = await this.mediatorQueryOperation.mediate({ context, operation });\n output.context = context;\n return output;\n }\n}\n\nexport interface IActorQueryProcessSequentialArgs extends IActorQueryProcessArgs {\n /**\n * The context processing combinator\n */\n mediatorContextPreprocess: MediatorContextPreprocess;\n /**\n * The query parse mediator\n */\n mediatorQueryParse: MediatorQueryParse;\n /**\n * The query operation optimize mediator\n */\n mediatorOptimizeQueryOperation: MediatorOptimizeQueryOperation;\n /**\n * The query operation mediator\n */\n mediatorQueryOperation: MediatorQueryOperation;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerializeFixedMediaTypes } from '@comunica/bus-query-result-serialize';\nimport type {\n IActionContext,\n IQueryOperationResultBindings,\n IQueryOperationResultBoolean,\n IQueryOperationResultQuads,\n} from '@comunica/types';\nimport { wrap } from 'asynciterator';\nimport * as RdfString from 'rdf-string';\nimport { Readable } from 'readable-stream';\n\n/**\n * A comunica JSON Query Result Serialize Actor.\n */\nexport class ActorQueryResultSerializeJson extends ActorQueryResultSerializeFixedMediaTypes {\n /**\n * @param args -\n * \\ @defaultNested {{\n * \"application/json\": 1.0\n * }} mediaTypePriorities\n * \\ @defaultNested {{\n * \"application/json\": \"https://comunica.linkeddatafragments.org/#results_JSON\"\n * }} mediaTypeFormats\n */\n public constructor(args: IActorQueryResultSerializeFixedMediaTypesArgs) {\n super(args);\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise {\n if (![ 'bindings', 'quads', 'boolean' ].includes(action.type)) {\n throw new Error('This actor can only handle bindings or quad streams.');\n }\n return true;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string, _context: IActionContext):\n Promise {\n const data = new Readable();\n data._read = () => {\n // Do nothing\n };\n\n if (action.type === 'bindings' || action.type === 'quads') {\n let stream = action.type === 'bindings' ?\n wrap(( action).bindingsStream)\n .map(element => JSON.stringify(Object.fromEntries([ ...element ]\n .map(([ key, value ]) => [ key.value, RdfString.termToString(value) ])))) :\n wrap(( action).quadStream)\n .map(element => JSON.stringify(RdfString.quadToStringQuad(element)));\n\n let empty = true;\n stream = stream.map((element) => {\n const ret = `${empty ? '' : ','}\\n${element}`;\n empty = false;\n return ret;\n }).prepend([ '[' ]).append([ '\\n]\\n' ]);\n\n data.wrap( stream);\n } else {\n try {\n data.push(`${JSON.stringify(await ( action).execute())}\\n`);\n data.push(null);\n } catch (error: unknown) {\n setTimeout(() => data.emit('error', error));\n }\n }\n\n return { data };\n }\n}\n","import type {\n IActorQueryResultSerializeArgs,\n IActorQueryResultSerializeOutput,\n IActionSparqlSerialize,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerialize } from '@comunica/bus-query-result-serialize';\nimport type {\n MediatorRdfSerializeHandle,\n MediatorRdfSerializeMediaTypeFormats,\n MediatorRdfSerializeMediaTypes,\n} from '@comunica/bus-rdf-serialize';\nimport type { IActorTest } from '@comunica/core';\nimport type { IActionContext, IQueryOperationResultQuads } from '@comunica/types';\n\n/**\n * A comunica RDF Query Result Serialize Actor.\n *\n * It serializes quad streams (for example resulting from a CONSTRUCT query)\n * to an RDF syntax.\n */\nexport class ActorQueryResultSerializeRdf extends ActorQueryResultSerialize\n implements IActorQueryResultSerializeRdfArgs {\n public readonly mediatorRdfSerialize: MediatorRdfSerializeHandle;\n public readonly mediatorMediaTypeCombiner: MediatorRdfSerializeMediaTypes;\n public readonly mediatorMediaTypeFormatCombiner: MediatorRdfSerializeMediaTypeFormats;\n\n public constructor(args: IActorQueryResultSerializeRdfArgs) {\n super(args);\n }\n\n public async testHandle(action: IActionSparqlSerialize, mediaType: string, context: IActionContext):\n Promise {\n // Check if we are provided with a quad stream\n if (action.type !== 'quads') {\n throw new Error(`Actor ${this.name} can only handle quad streams`);\n }\n\n // Check if the given media type can be handled\n const { mediaTypes } = await this.mediatorMediaTypeCombiner.mediate(\n { context, mediaTypes: true },\n );\n if (!(mediaType in mediaTypes)) {\n throw new Error(`Actor ${this.name} can not handle media type ${mediaType}. All available types: ${\n // eslint-disable-next-line ts/restrict-template-expressions\n Object.keys(mediaTypes)}`);\n }\n return true;\n }\n\n public async runHandle(action: IActionSparqlSerialize, mediaType: string, context: IActionContext):\n Promise {\n // Delegate handling to the mediator\n return (await this.mediatorRdfSerialize.mediate({\n context,\n handle: {\n context,\n quadStream: ( action).quadStream,\n },\n handleMediaType: mediaType,\n })).handle;\n }\n\n public async testMediaType(_context: IActionContext): Promise {\n return true;\n }\n\n public async getMediaTypes(context: IActionContext): Promise> {\n return (await this.mediatorMediaTypeCombiner.mediate({ context, mediaTypes: true })).mediaTypes;\n }\n\n public async testMediaTypeFormats(_context: IActionContext): Promise {\n return true;\n }\n\n public async getMediaTypeFormats(context: IActionContext): Promise> {\n return (await this.mediatorMediaTypeFormatCombiner.mediate({ context, mediaTypeFormats: true })).mediaTypeFormats;\n }\n}\n\nexport interface IActorQueryResultSerializeRdfArgs extends IActorQueryResultSerializeArgs {\n mediatorRdfSerialize: MediatorRdfSerializeHandle;\n mediatorMediaTypeCombiner: MediatorRdfSerializeMediaTypes;\n mediatorMediaTypeFormatCombiner: MediatorRdfSerializeMediaTypeFormats;\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerializeFixedMediaTypes } from '@comunica/bus-query-result-serialize';\nimport type {\n IActionContext,\n IQueryOperationResultBindings,\n IQueryOperationResultBoolean,\n IQueryOperationResultQuads,\n IQueryOperationResultVoid,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { wrap } from 'asynciterator';\nimport { termToString } from 'rdf-string';\nimport { Readable } from 'readable-stream';\n\n/**\n * A comunica Simple Sparql Serialize Actor.\n */\nexport class ActorQueryResultSerializeSimple extends ActorQueryResultSerializeFixedMediaTypes {\n /**\n * @param args -\n * \\ @defaultNested {{ \"simple\": 0.9 }} mediaTypePriorities\n * \\ @defaultNested {{ \"simple\": \"https://comunica.linkeddatafragments.org/#results_simple\" }} mediaTypeFormats\n */\n public constructor(args: IActorQueryResultSerializeFixedMediaTypesArgs) {\n super(args);\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise {\n if (![ 'bindings', 'quads', 'boolean', 'void' ].includes(action.type)) {\n throw new Error('This actor can only handle bindings streams, quad streams, booleans, or updates.');\n }\n return true;\n }\n\n protected static termToString(term: RDF.Term): string {\n return term.termType === 'Quad' ? termToString(term) : term.value;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string, _context: IActionContext):\n Promise {\n const data = new Readable();\n if (action.type === 'bindings') {\n data.wrap( (action).bindingsStream.map((bindings: RDF.Bindings) => `${[ ...bindings ].map(\n ([ key, value ]) => `?${key.value}: ${ActorQueryResultSerializeSimple.termToString(value)}`,\n ).join('\\n')}\\n\\n`));\n } else if (action.type === 'quads') {\n data.wrap( (action).quadStream.map(quad =>\n `subject: ${ActorQueryResultSerializeSimple.termToString(quad.subject)}\\n` +\n `predicate: ${ActorQueryResultSerializeSimple.termToString(quad.predicate)}\\n` +\n `object: ${ActorQueryResultSerializeSimple.termToString(quad.object)}\\n` +\n `graph: ${ActorQueryResultSerializeSimple.termToString(quad.graph)}\\n\\n`));\n } else {\n data.wrap( wrap(\n action.type === 'boolean' ?\n ( action).execute().then(value => [ `${value}\\n` ]) :\n (action).execute().then(() => [ 'ok\\n' ]),\n ));\n }\n\n return { data };\n }\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport {\n ActorQueryResultSerializeFixedMediaTypes,\n} from '@comunica/bus-query-result-serialize';\nimport type { Bindings, IActionContext, IQueryOperationResultBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { Readable } from 'readable-stream';\n\n/**\n * A comunica SPARQL CSV Query Result Serialize Actor.\n */\nexport class ActorQueryResultSerializeSparqlCsv extends ActorQueryResultSerializeFixedMediaTypes {\n /**\n * @param args -\n * \\ @defaultNested {{\n * \"text/csv\": 0.75\n * }} mediaTypePriorities\n * \\ @defaultNested {{\n * \"text/csv\": \"http://www.w3.org/ns/formats/SPARQL_Results_CSV\"\n * }} mediaTypeFormats\n */\n public constructor(args: IActorQueryResultSerializeFixedMediaTypesArgs) {\n super(args);\n }\n\n /**\n * Converts an RDF term to its CSV representation.\n * @param {RDF.Term} value An RDF term.\n * @return {string} A string representation of the given value.\n */\n public static bindingToCsvBindings(value?: RDF.Term): string {\n if (!value) {\n return '';\n }\n\n let stringValue = value.value;\n\n if (value.termType === 'Literal') {\n // This is a lossy representation, since language and datatype are not encoded in here.\n stringValue = `${stringValue}`;\n } else if (value.termType === 'BlankNode') {\n stringValue = `_:${stringValue}`;\n } else if (value.termType === 'Quad') {\n let object = ActorQueryResultSerializeSparqlCsv.bindingToCsvBindings(value.object);\n if (value.object.termType === 'Literal') {\n // If object is a literal, it must be put in quotes, and internal quotes must be escaped\n object = `\"${object.replaceAll('\"', '\"\"')}\"`;\n }\n stringValue = `<< ${ActorQueryResultSerializeSparqlCsv.bindingToCsvBindings(value.subject)} ${ActorQueryResultSerializeSparqlCsv.bindingToCsvBindings(value.predicate)} ${object} >>`;\n } else {\n stringValue = `<${stringValue}>`;\n }\n\n // If a value contains certain characters, put it between double quotes\n if (/[\",\\n\\r]/u.test(stringValue)) {\n // Within quote strings, \" is written using a pair of quotation marks \"\".\n stringValue = `\"${stringValue.replaceAll('\"', '\"\"')}\"`;\n }\n\n return stringValue;\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise {\n if (action.type !== 'bindings') {\n throw new Error('This actor can only handle bindings streams.');\n }\n return true;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string | undefined, _context: IActionContext):\n Promise {\n const bindingsAction = action;\n\n const data = new Readable();\n\n const metadata = await bindingsAction.metadata();\n\n // Write head\n data.push(`${metadata.variables.map(variable => variable.value).join(',')}\\r\\n`);\n\n // Write body\n data.wrap( bindingsAction.bindingsStream.map((bindings: Bindings) => `${metadata.variables\n .map(key => ActorQueryResultSerializeSparqlCsv.bindingToCsvBindings(bindings.get(key)))\n .join(',')}\\r\\n`));\n\n return { data };\n }\n}\n","import type { IActionHttp, IActorHttpOutput } from '@comunica/bus-http';\nimport type { ActorHttpInvalidateListenable } from '@comunica/bus-http-invalidate';\nimport type { Actor, IActionObserverArgs, IActorTest } from '@comunica/core';\nimport { ActionObserver } from '@comunica/core';\n\n/**\n * Observes HTTP actions, and maintains a counter of the number of requests.\n */\nexport class ActionObserverHttp extends ActionObserver {\n public readonly httpInvalidator: ActorHttpInvalidateListenable;\n public requests = 0;\n\n /* eslint-disable max-len */\n /**\n * @param args - @defaultNested {} bus\n */\n public constructor(args: IActionObserverHttpArgs) {\n super(args);\n this.bus.subscribeObserver(this);\n this.httpInvalidator.addInvalidateListener(() => {\n this.requests = 0;\n });\n }\n /* eslint-enable max-len */\n\n public onRun(\n _actor: Actor,\n _action: IActionHttp,\n _output: Promise,\n ): void {\n this.requests++;\n }\n}\n\nexport interface IActionObserverHttpArgs extends IActionObserverArgs {\n /* eslint-disable max-len */\n /**\n * An actor that listens to HTTP invalidation events\n * @default { a }\n */\n httpInvalidator: ActorHttpInvalidateListenable;\n /* eslint-enable max-len */\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerializeFixedMediaTypes } from '@comunica/bus-query-result-serialize';\nimport type {\n IActionContext,\n IQueryOperationResultBindings,\n IQueryOperationResultBoolean,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { wrap } from 'asynciterator';\nimport { Readable } from 'readable-stream';\nimport type { ActionObserverHttp } from './ActionObserverHttp';\n\n/**\n * A comunica sparql-results+xml Serialize Actor.\n */\nexport class ActorQueryResultSerializeSparqlJson extends ActorQueryResultSerializeFixedMediaTypes {\n private readonly emitMetadata: boolean;\n public readonly httpObserver: ActionObserverHttp;\n\n /* eslint-disable max-len */\n /**\n * @param args -\n * \\ @defaultNested {{\n * \"application/sparql-results+json\": 0.8\n * }} mediaTypePriorities\n * \\ @defaultNested {{\n * \"application/sparql-results+json\": \"http://www.w3.org/ns/formats/SPARQL_Results_JSON\"\n * }} mediaTypeFormats\n * \\ @defaultNested {true} emitMetadata\n * \\ @defaultNested { a } httpObserver\n */\n public constructor(args: IActorQueryResultSerializeSparqlJsonArgs) {\n super(args);\n }\n /* eslint-enable max-len */\n\n /**\n * Converts an RDF term to its JSON representation.\n * @param {RDF.Term} value An RDF term.\n * @return {any} A JSON object.\n */\n public static bindingToJsonBindings(value: RDF.Term): any {\n if (value.termType === 'Literal') {\n const literal: RDF.Literal = value;\n const jsonValue: any = { value: literal.value, type: 'literal' };\n const { language, datatype } = literal;\n if (language) {\n jsonValue['xml:lang'] = language;\n } else if (datatype && datatype.value !== 'http://www.w3.org/2001/XMLSchema#string') {\n jsonValue.datatype = datatype.value;\n }\n return jsonValue;\n }\n if (value.termType === 'BlankNode') {\n return { value: value.value, type: 'bnode' };\n }\n if (value.termType === 'Quad') {\n return {\n value: {\n subject: ActorQueryResultSerializeSparqlJson.bindingToJsonBindings(value.subject),\n predicate: ActorQueryResultSerializeSparqlJson.bindingToJsonBindings(value.predicate),\n object: ActorQueryResultSerializeSparqlJson.bindingToJsonBindings(value.object),\n },\n type: 'triple',\n };\n }\n return { value: value.value, type: 'uri' };\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise {\n if (![ 'bindings', 'boolean' ].includes(action.type)) {\n throw new Error('This actor can only handle bindings streams or booleans.');\n }\n return true;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string | undefined, _context: IActionContext):\n Promise {\n const data = new Readable();\n // Write head\n const head: any = {};\n if (action.type === 'bindings') {\n const metadata = await ( action).metadata();\n if (metadata.variables.length > 0) {\n head.vars = metadata.variables.map(variable => variable.value);\n }\n }\n data.push(`{\"head\": ${JSON.stringify(head)},\\n`);\n\n if (action.type === 'bindings') {\n const resultStream = ( action).bindingsStream;\n data.push('\"results\": { \"bindings\": [\\n');\n\n let first = true;\n\n function* end(cb: () => string): Generator {\n yield cb();\n }\n\n // Write bindings\n data.wrap(\n // JSON SPARQL results spec does not allow unbound variables and blank node bindings\n wrap(resultStream).map((bindings) => {\n const res = `${first ? '' : ',\\n'}${JSON.stringify(Object.fromEntries([ ...bindings ]\n .map(([ key, value ]) => [ key.value, ActorQueryResultSerializeSparqlJson.bindingToJsonBindings(value) ])))}`;\n first = false;\n return res;\n }).append(wrap(end(() => `\\n]}${this.emitMetadata ? `,\\n\"metadata\": { \"httpRequests\": ${this.httpObserver.requests} }` : ''}}\\n`))),\n );\n } else {\n data.wrap( wrap(( action).execute().then(value => [ `\"boolean\":${value}\\n}\\n` ])));\n }\n\n return { data };\n }\n}\n\nexport interface IActorQueryResultSerializeSparqlJsonArgs extends IActorQueryResultSerializeFixedMediaTypesArgs {\n emitMetadata: boolean;\n httpObserver: ActionObserverHttp;\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport {\n ActorQueryResultSerializeFixedMediaTypes,\n} from '@comunica/bus-query-result-serialize';\nimport type { IActionContext, IQueryOperationResultBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { termToString } from 'rdf-string-ttl';\nimport { Readable } from 'readable-stream';\n\n/**\n * A comunica SPARQL TSV Query Result Serialize Actor.\n */\nexport class ActorQueryResultSerializeSparqlTsv extends ActorQueryResultSerializeFixedMediaTypes {\n /**\n * @param args -\n * \\ @defaultNested {{\n * \"text/tab-separated-values\": 0.75\n * }} mediaTypePriorities\n * \\ @defaultNested {{\n * \"text/tab-separated-values\": \"http://www.w3.org/ns/formats/SPARQL_Results_TSV\"\n * }} mediaTypeFormats\n */\n public constructor(args: IActorQueryResultSerializeFixedMediaTypesArgs) {\n super(args);\n }\n\n /**\n * Converts an RDF term to its TSV representation.\n * @param {RDF.Term} value An RDF term.\n * @return {string} A string representation of the given value.\n */\n public static bindingToTsvBindings(value?: RDF.Term): string {\n if (!value) {\n return '';\n }\n\n // Escape tab, newline and carriage return characters\n return termToString(value)\n .replaceAll('\\t', '\\\\t')\n .replaceAll('\\n', '\\\\n')\n .replaceAll('\\r', '\\\\r');\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise {\n if (action.type !== 'bindings') {\n throw new Error('This actor can only handle bindings streams.');\n }\n return true;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string | undefined, _context: IActionContext):\n Promise {\n const bindingsAction = action;\n\n const data = new Readable();\n // Write head\n const metadata = await bindingsAction.metadata();\n data.push(`${metadata.variables.map((variable: RDF.Variable) => variable.value).join('\\t')}\\n`);\n\n // Write Bindings\n data.wrap( bindingsAction.bindingsStream.map((bindings: RDF.Bindings) => `${metadata.variables\n .map((key: RDF.Variable) => ActorQueryResultSerializeSparqlTsv\n .bindingToTsvBindings(bindings.get(key)))\n .join('\\t')}\\n`));\n\n return { data };\n }\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerializeFixedMediaTypes } from '@comunica/bus-query-result-serialize';\nimport type {\n IActionContext,\n IQueryOperationResultBindings,\n IQueryOperationResultBoolean,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { wrap } from 'asynciterator';\nimport { Readable } from 'readable-stream';\nimport { XmlSerializer, type IXmlNode } from './XmlSerializer';\n\n/**\n * A comunica sparql-results+xml Serialize Actor.\n */\nexport class ActorQueryResultSerializeSparqlXml extends ActorQueryResultSerializeFixedMediaTypes {\n /**\n * @param args -\n * \\ @defaultNested {{\n * \"application/sparql-results+xml\": 0.8\n * }} mediaTypePriorities\n * \\ @defaultNested {{\n * \"application/sparql-results+xml\": \"http://www.w3.org/ns/formats/SPARQL_Results_XML\"\n * }} mediaTypeFormats\n */\n public constructor(args: IActorQueryResultSerializeFixedMediaTypesArgs) {\n super(args);\n }\n\n /**\n * Converts an RDF term to its object-based XML representation.\n * @param {RDF.Term} value An RDF term.\n * @param {string} key A variable name, '?' must be included as a prefix.\n * @return {IXmlNode} An object-based XML tag.\n */\n public static bindingToXmlBindings(value: RDF.Term, key: RDF.Variable): IXmlNode {\n return { name: 'binding', attributes: { name: key.value }, children: [ this.valueToXmlValue(value) ]};\n }\n\n public static valueToXmlValue(value: RDF.Term): IXmlNode {\n let attributes;\n switch (value.termType) {\n case 'Literal':\n if (value.language) {\n attributes = { 'xml:lang': value.language };\n } else if (value.datatype && value.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string') {\n attributes = { datatype: value.datatype.value };\n } else {\n attributes = {};\n }\n return { name: 'literal', attributes, children: value.value };\n case 'BlankNode':\n return { name: 'bnode', children: value.value };\n case 'Quad':\n return {\n name: 'triple',\n children: [\n { name: 'subject', children: [ this.valueToXmlValue(value.subject) ]},\n { name: 'predicate', children: [ this.valueToXmlValue(value.predicate) ]},\n { name: 'object', children: [ this.valueToXmlValue(value.object) ]},\n ],\n };\n default:\n return { name: 'uri', children: value.value };\n }\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise {\n if (![ 'bindings', 'boolean' ].includes(action.type)) {\n throw new Error('This actor can only handle bindings streams or booleans.');\n }\n return true;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string, _context: IActionContext):\n Promise {\n const data = new Readable();\n data._read = () => {\n // Do nothing\n };\n\n const serializer = new XmlSerializer();\n const metadata = await ( action).metadata();\n\n data.push(XmlSerializer.header);\n data.push(serializer.open('sparql', { xmlns: 'http://www.w3.org/2005/sparql-results#' }));\n data.push(\n serializer.serializeNode({\n name: 'head',\n children: metadata.variables.map(variable => ({ name: 'variable', attributes: { name: variable.value }})),\n }),\n );\n\n if (action.type === 'bindings') {\n function* end(): Generator {\n yield serializer.close();\n yield serializer.close();\n }\n data.push(serializer.open('results'));\n const stream = wrap(( action).bindingsStream).map(\n (bindings: RDF.Bindings) => serializer.serializeNode({\n name: 'result',\n children: [ ...bindings ].map(\n ([ key, value ]) => ActorQueryResultSerializeSparqlXml.bindingToXmlBindings(value, key),\n ),\n }),\n ).append(wrap(end()));\n data.wrap( stream);\n } else {\n try {\n const result = await ( action).execute();\n data.push(serializer.serializeNode({ name: 'boolean', children: result.toString() }));\n data.push(serializer.close());\n setTimeout(() => data.push(null));\n } catch (error: unknown) {\n setTimeout(() => data.emit('error', error));\n }\n }\n\n return { data };\n }\n}\n","/**\n * A very simple XML serializer\n */\nexport class XmlSerializer {\n private readonly stack: string[] = [];\n\n public static header = `\\n`;\n\n public constructor() {}\n\n /**\n *\n * @param name should be a valid XML tag name\n * @param attributes keys should be valid attribute names\n */\n public open(name: string, attributes?: Record): string {\n const res = `${this.identation() + this.formatTag(name, attributes, 'open')}\\n`;\n this.stack.push(name);\n return res;\n }\n\n public close(): string {\n const name = this.stack.pop();\n if (name === undefined) {\n throw new Error('There is no tag left to close');\n }\n return `${this.identation() + this.formatTag(name, {}, 'close')}\\n`;\n }\n\n public serializeNode(node: IXmlNode): string {\n if (node.children === undefined) {\n return `${this.identation() + this.formatTag(node.name, node.attributes, 'self-closing')}\\n`;\n }\n if (typeof node.children === 'string') {\n return `${this.identation() + this.formatTag(node.name, node.attributes, 'open') + this.escape(node.children) + this.formatTag(node.name, {}, 'close')}\\n`;\n }\n const parts = [];\n parts.push(`${this.identation() + this.formatTag(node.name, node.attributes, 'open')}\\n`);\n this.stack.push(node.name);\n for (const child of node.children) {\n parts.push(this.serializeNode(child));\n }\n this.stack.pop();\n parts.push(`${this.identation() + this.formatTag(node.name, {}, 'close')}\\n`);\n return parts.join('');\n }\n\n private identation(): string {\n return this.stack.map(_ => ' ').join('');\n }\n\n private formatTag(\n name: string,\n attributes: Record | undefined,\n state: 'open' | 'close' | 'self-closing',\n ): string {\n // eslint-disable-next-line ts/restrict-template-expressions\n return `<${state === 'close' ? '/' : ''}${name}${Object.entries(attributes ?? {}).map(attr => ` ${attr[0]}=\"${this.escape(attr[1])}\"`)}${state === 'self-closing' ? '/' : ''}>`;\n }\n\n private escape(text: string): string {\n return text.replaceAll(/[\"&'<>]/gu, <(substring: string) => string> ((char: '\"' | '&' | '\\'' | '<' | '>') => {\n switch (char) {\n case '<': return '<';\n case '>': return '>';\n case '&': return '&';\n case '\\'': return ''';\n case '\"': return '"';\n }\n }));\n }\n}\n\nexport interface IXmlNode {\n name: string;\n attributes?: Record;\n children?: (IXmlNode[]) | string;\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerializeFixedMediaTypes } from '@comunica/bus-query-result-serialize';\nimport type {\n IActionContext,\n IQueryOperationResultBindings,\n IQueryOperationResultQuads,\n} from '@comunica/types';\nimport { wrap } from 'asynciterator';\nimport { Readable } from 'readable-stream';\nimport type { ActionObserverHttp } from './ActionObserverHttp';\n\nconst process: NodeJS.Process = require('process/');\n\n/**\n * Serializes SPARQL results for testing and debugging.\n */\nexport class ActorQueryResultSerializeStats extends ActorQueryResultSerializeFixedMediaTypes {\n public readonly httpObserver: ActionObserverHttp;\n\n /* eslint-disable max-len */\n /**\n * @param args -\n * \\ @defaultNested {{ \"stats\": 0.5 }} mediaTypePriorities\n * \\ @defaultNested {{ \"stats\": \"https://comunica.linkeddatafragments.org/#results_stats\" }} mediaTypeFormats\n * \\ @defaultNested { a } httpObserver\n */\n public constructor(args: IActorQueryResultSerializeStatsArgs) {\n super(args);\n }\n /* eslint-enable max-len */\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise {\n if (![ 'bindings', 'quads' ].includes(action.type)) {\n throw new Error('This actor can only handle bindings streams or quad streams.');\n }\n return true;\n }\n\n public pushHeader(data: Readable): void {\n const header: string = [ 'Result', 'Delay (ms)', 'HTTP requests',\n ].join(',');\n data.push(`${header}\\n`);\n }\n\n public createStat(startTime: number, result: number): string {\n const row: string = [ result, this.delay(startTime), this.httpObserver.requests,\n ].join(',');\n return `${row}\\n`;\n }\n\n public createFooter(startTime: number): string {\n const footer: string = [ 'TOTAL', this.delay(startTime), this.httpObserver.requests,\n ].join(',');\n return `${footer}\\n`;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string, _context: IActionContext):\n Promise {\n const data = new Readable();\n\n const resultStream = action.type === 'bindings' ?\n ( action).bindingsStream :\n ( action).quadStream;\n\n const startTime = this.now();\n let result = 1;\n\n function* end(cb: () => string): Generator {\n yield cb();\n }\n const stream = wrap(resultStream)\n .map(() => this.createStat(startTime, result++))\n .append(wrap(end(() => this.createFooter(startTime))));\n\n this.pushHeader(data);\n data.wrap( stream);\n\n return { data };\n }\n\n /* istanbul ignore next */\n public now(): number {\n // TODO: remove when we will drop support of Node 14\n if (typeof performance === 'undefined') {\n const time: [number, number] = process.hrtime();\n return time[0] * 1_000 + (time[1] / 1_000_000);\n }\n return performance.now();\n }\n\n public delay(startTime: number): number {\n return this.now() - startTime;\n }\n}\n\nexport interface IActorQueryResultSerializeStatsArgs extends IActorQueryResultSerializeFixedMediaTypesArgs {\n httpObserver: ActionObserverHttp;\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerializeFixedMediaTypes } from '@comunica/bus-query-result-serialize';\nimport type {\n Bindings,\n IActionContext,\n IQueryOperationResultBindings,\n IQueryOperationResultQuads,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport { termToString } from 'rdf-string';\nimport { getTerms, QUAD_TERM_NAMES } from 'rdf-terms';\nimport { Readable } from 'readable-stream';\n\nconst DF = new DataFactory();\nconst QUAD_TERM_NAMES_VARS = QUAD_TERM_NAMES.map(name => DF.variable(name));\n\n/**\n * A comunica Table Sparql Serialize Actor.\n */\nexport class ActorQueryResultSerializeTable extends ActorQueryResultSerializeFixedMediaTypes\n implements IActorQueryResultSerializeTableArgs {\n public readonly columnWidth: number;\n public readonly padding: string;\n\n /**\n * @param args -\n * \\ @defaultNested {{ \"table\": 0.6 }} mediaTypePriorities\n * \\ @defaultNested {{ \"table\": \"https://comunica.linkeddatafragments.org/#results_table\" }} mediaTypeFormats\n */\n public constructor(args: IActorQueryResultSerializeTableArgs) {\n super(args);\n this.padding = ActorQueryResultSerializeTable.repeat(' ', this.columnWidth);\n }\n\n public static repeat(str: string, count: number): string {\n return str.repeat(count);\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize, _context: IActionContext): Promise {\n if (![ 'bindings', 'quads' ].includes(action.type)) {\n throw new Error('This actor can only handle bindings or quad streams.');\n }\n return true;\n }\n\n public termToString(term: RDF.Term): string {\n return term.termType === 'Quad' ? termToString(term) : term.value;\n }\n\n public pad(str: string): string {\n if (str.length <= this.columnWidth) {\n return str + this.padding.slice(str.length);\n }\n return `${str.slice(0, this.columnWidth - 1)}…`;\n }\n\n public pushHeader(data: Readable, labels: RDF.Variable[]): void {\n const header: string = labels.map(label => this.pad(label.value)).join(' ');\n data.push(`${header}\\n${ActorQueryResultSerializeTable.repeat('-', header.length)}\\n`);\n }\n\n public createRow(labels: RDF.Variable[], bindings: Bindings): string {\n return `${labels\n .map(label => bindings.has(label) ? this.termToString(bindings.get(label)!) : '')\n .map(label => this.pad(label))\n .join(' ')}\\n`;\n }\n\n public async runHandle(action: IActionSparqlSerialize, _mediaType: string, _context: IActionContext):\n Promise {\n const data = new Readable();\n\n let resultStream: NodeJS.EventEmitter;\n if (action.type === 'bindings') {\n resultStream = (action).bindingsStream.map(\n bindings => this.createRow(labels, bindings),\n );\n const labels = (await (action).metadata()).variables;\n this.pushHeader(data, labels);\n } else {\n resultStream = (action).quadStream.map(quad => `${getTerms(quad).map(term => this.pad(this.termToString(term))).join(' ')}\\n`);\n this.pushHeader(data, QUAD_TERM_NAMES_VARS);\n }\n data.wrap( resultStream);\n\n return { data };\n }\n}\n\nexport interface IActorQueryResultSerializeTableArgs extends IActorQueryResultSerializeFixedMediaTypesArgs {\n /**\n * The table column width in number of characters\n * @range {integer}\n * @default {50}\n */\n columnWidth: number;\n}\n","import type {\n IActionSparqlSerialize,\n IActorQueryResultSerializeFixedMediaTypesArgs,\n IActorQueryResultSerializeOutput,\n} from '@comunica/bus-query-result-serialize';\nimport { ActorQueryResultSerializeFixedMediaTypes } from '@comunica/bus-query-result-serialize';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport { ActionContext } from '@comunica/core';\nimport type { IQueryOperationResultBindings, BindingsStream, IActionContext } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { Readable } from 'readable-stream';\nimport type { IConverterSettings, ISchema } from 'sparqljson-to-tree';\nimport { Converter } from 'sparqljson-to-tree';\n\n/**\n * A comunica Tree Query Result Serialize Actor.\n */\nexport class ActorQueryResultSerializeTree extends ActorQueryResultSerializeFixedMediaTypes\n implements IActorQueryResultSerializeFixedMediaTypesArgs {\n /**\n * @param args -\n * \\ @defaultNested {{ \"tree\": 0.5 }} mediaTypePriorities\n * \\ @defaultNested {{ \"tree\": \"https://comunica.linkeddatafragments.org/#results_tree\" }} mediaTypeFormats\n */\n public constructor(args: IActorQueryResultSerializeFixedMediaTypesArgs) {\n super(args);\n }\n\n /**\n *\n * @param {BindingsStream} bindingsStream\n * @param context\n * @param {IConverterSettings} converterSettings\n * @return {Promise}\n */\n public static async bindingsStreamToGraphQl(\n bindingsStream: BindingsStream,\n context: IActionContext | Record | undefined,\n converterSettings?: IConverterSettings,\n ): Promise {\n const actionContext: IActionContext = ActionContext.ensureActionContext(context);\n const converter: Converter = new Converter(converterSettings);\n const schema: ISchema = {\n singularizeVariables: actionContext.get(KeysInitQuery.graphqlSingularizeVariables) ?? {},\n };\n\n return converter.bindingsToTree(await bindingsStream.map((bindings: RDF.Bindings) =>\n Object.fromEntries([ ...bindings ]\n .map(([ key, value ]) => [ key.value, value ]))).toArray(), schema);\n }\n\n public override async testHandleChecked(action: IActionSparqlSerialize): Promise {\n if (action.type !== 'bindings') {\n throw new Error('This actor can only handle bindings streams.');\n }\n return true;\n }\n\n public async runHandle(\n action: IActionSparqlSerialize,\n _mediaType: string,\n ): Promise {\n const data = new Readable();\n data._read = () => {\n data._read = () => { /* Do nothing */ };\n ActorQueryResultSerializeTree.bindingsStreamToGraphQl(\n ( action).bindingsStream,\n action.context,\n { materializeRdfJsTerms: true },\n )\n .then((result: any) => {\n data.push(JSON.stringify(result, null, ' '));\n data.push(null);\n })\n .catch(error => data.emit('error', error));\n };\n\n return { data };\n }\n}\n","import { QuerySourceRdfJs } from '@comunica/actor-query-source-identify-rdfjs';\nimport { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type {\n IActionQuerySourceIdentifyHypermedia,\n IActorQuerySourceIdentifyHypermediaOutput,\n IActorQuerySourceIdentifyHypermediaArgs,\n IActorQuerySourceIdentifyHypermediaTest,\n} from '@comunica/bus-query-source-identify-hypermedia';\nimport { ActorQuerySourceIdentifyHypermedia } from '@comunica/bus-query-source-identify-hypermedia';\nimport { storeStream } from 'rdf-store-stream';\n\n/**\n * A comunica None Query Source Identify Hypermedia Actor.\n */\nexport class ActorQuerySourceIdentifyHypermediaNone extends ActorQuerySourceIdentifyHypermedia {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQuerySourceIdentifyHypermediaNoneArgs) {\n super(args, 'file');\n }\n\n public async testMetadata(\n _action: IActionQuerySourceIdentifyHypermedia,\n ): Promise {\n return { filterFactor: 0 };\n }\n\n public async run(action: IActionQuerySourceIdentifyHypermedia): Promise {\n this.logInfo(action.context, `Identified as file source: ${action.url}`);\n const source = new QuerySourceRdfJs(\n await storeStream(action.quads),\n await BindingsFactory.create(this.mediatorMergeBindingsContext, action.context),\n );\n source.toString = () => `QuerySourceRdfJs(${action.url})`;\n source.referenceValue = action.url;\n return { source };\n }\n}\n\nexport interface IActorQuerySourceIdentifyHypermediaNoneArgs extends IActorQuerySourceIdentifyHypermediaArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type {\n IActionQuerySourceIdentifyHypermedia,\n IActorQuerySourceIdentifyHypermediaOutput,\n IActorQuerySourceIdentifyHypermediaArgs,\n IActorQuerySourceIdentifyHypermediaTest,\n} from '@comunica/bus-query-source-identify-hypermedia';\nimport {\n ActorQuerySourceIdentifyHypermedia,\n} from '@comunica/bus-query-source-identify-hypermedia';\nimport type { MediatorRdfMetadata } from '@comunica/bus-rdf-metadata';\nimport type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActionContext } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { QuerySourceQpf } from './QuerySourceQpf';\n\n/**\n * A comunica QPF Query Source Identify Hypermedia Actor.\n */\nexport class ActorQuerySourceIdentifyHypermediaQpf extends ActorQuerySourceIdentifyHypermedia\n implements IActorQuerySourceIdentifyHypermediaQpfArgs {\n public readonly mediatorMetadata: MediatorRdfMetadata;\n public readonly mediatorMetadataExtract: MediatorRdfMetadataExtract;\n public readonly mediatorDereferenceRdf: MediatorDereferenceRdf;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n public readonly subjectUri: string;\n public readonly predicateUri: string;\n public readonly objectUri: string;\n public readonly graphUri?: string;\n public constructor(args: IActorQuerySourceIdentifyHypermediaQpfArgs) {\n super(args, 'qpf');\n }\n\n public override async test(\n action: IActionQuerySourceIdentifyHypermedia,\n ): Promise {\n if (action.forceSourceType && (action.forceSourceType !== 'qpf' && action.forceSourceType !== 'brtpf')) {\n throw new Error(`Actor ${this.name} is not able to handle source type ${action.forceSourceType}.`);\n }\n return this.testMetadata(action);\n }\n\n public async testMetadata(\n action: IActionQuerySourceIdentifyHypermedia,\n ): Promise {\n const { searchForm } = await this.createSource(\n action.url,\n action.metadata,\n action.context,\n action.forceSourceType === 'brtpf',\n );\n if (action.handledDatasets && action.handledDatasets[searchForm.dataset]) {\n throw new Error(`Actor ${this.name} can only be applied for the first page of a QPF dataset.`);\n }\n return { filterFactor: 1 };\n }\n\n /**\n * Look for the search form\n * @param {IActionRdfResolveHypermedia} action the metadata to look for the form.\n * @return {Promise} A promise resolving to a hypermedia form.\n */\n public async run(action: IActionQuerySourceIdentifyHypermedia): Promise {\n this.logInfo(action.context, `Identified as qpf source: ${action.url}`);\n const source = await this.createSource(\n action.url,\n action.metadata,\n action.context,\n action.forceSourceType === 'brtpf',\n action.quads,\n );\n return { source, dataset: source.searchForm.dataset };\n }\n\n protected async createSource(\n url: string,\n metadata: Record,\n context: IActionContext,\n bindingsRestricted: boolean,\n quads?: RDF.Stream,\n ): Promise {\n return new QuerySourceQpf(\n this.mediatorMetadata,\n this.mediatorMetadataExtract,\n this.mediatorDereferenceRdf,\n await BindingsFactory.create(this.mediatorMergeBindingsContext, context),\n this.subjectUri,\n this.predicateUri,\n this.objectUri,\n this.graphUri,\n url,\n metadata,\n bindingsRestricted,\n quads,\n );\n }\n}\n\nexport interface IActorQuerySourceIdentifyHypermediaQpfArgs extends IActorQuerySourceIdentifyHypermediaArgs {\n /**\n * The metadata mediator\n */\n mediatorMetadata: MediatorRdfMetadata;\n /**\n * The metadata extract mediator\n */\n mediatorMetadataExtract: MediatorRdfMetadataExtract;\n /**\n * The RDF dereference mediator\n */\n mediatorDereferenceRdf: MediatorDereferenceRdf;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n /**\n * The URI that should be interpreted as subject URI\n * @default {http://www.w3.org/1999/02/22-rdf-syntax-ns#subject}\n */\n subjectUri: string;\n /**\n * The URI that should be interpreted as predicate URI\n * @default {http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate}\n */\n predicateUri: string;\n /**\n * The URI that should be interpreted as object URI\n * @default {http://www.w3.org/1999/02/22-rdf-syntax-ns#object}\n */\n objectUri: string;\n /**\n * The URI that should be interpreted as graph URI\n * @default {http://www.w3.org/ns/sparql-service-description#graph}\n */\n graphUri?: string;\n}\n","import type { ISearchForm } from '@comunica/actor-rdf-metadata-extract-hydra-controls';\nimport type { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport { filterMatchingQuotedQuads, quadsToBindings } from '@comunica/bus-query-source-identify';\nimport type { MediatorRdfMetadata, IActorRdfMetadataOutput } from '@comunica/bus-rdf-metadata';\nimport type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport type {\n IQuerySource,\n BindingsStream,\n IActionContext,\n FragmentSelectorShape,\n IQueryBindingsOptions,\n MetadataBindings,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ArrayIterator, TransformIterator, wrap } from 'asynciterator';\nimport { DataFactory } from 'rdf-data-factory';\nimport { termToString } from 'rdf-string';\nimport { termToString as termToStringTtl } from 'rdf-string-ttl';\nimport {\n everyTermsNested,\n mapTerms,\n matchPattern,\n} from 'rdf-terms';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { Factory } from 'sparqlalgebrajs';\n\nconst AF = new Factory();\nconst DF = new DataFactory();\n\nexport class QuerySourceQpf implements IQuerySource {\n protected static readonly SELECTOR_SHAPE: FragmentSelectorShape = {\n type: 'operation',\n operation: {\n operationType: 'pattern',\n pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o'), DF.variable('g')),\n },\n variablesOptional: [\n DF.variable('s'),\n DF.variable('p'),\n DF.variable('o'),\n DF.variable('g'),\n ],\n };\n\n protected static readonly SELECTOR_SHAPE_BR: FragmentSelectorShape = {\n type: 'operation',\n operation: {\n operationType: 'pattern',\n pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o'), DF.variable('g')),\n },\n variablesOptional: [\n DF.variable('s'),\n DF.variable('p'),\n DF.variable('o'),\n DF.variable('g'),\n ],\n filterBindings: true,\n };\n\n public readonly searchForm: ISearchForm;\n\n private readonly mediatorMetadata: MediatorRdfMetadata;\n private readonly mediatorMetadataExtract: MediatorRdfMetadataExtract;\n private readonly mediatorDereferenceRdf: MediatorDereferenceRdf;\n private readonly bindingsFactory: BindingsFactory;\n\n public readonly referenceValue: string;\n private readonly subjectUri: string;\n private readonly predicateUri: string;\n private readonly objectUri: string;\n private readonly graphUri?: string;\n private readonly url: string;\n private readonly defaultGraph?: RDF.NamedNode;\n private readonly bindingsRestricted: boolean;\n private readonly cachedQuads: Record>;\n\n public constructor(\n mediatorMetadata: MediatorRdfMetadata,\n mediatorMetadataExtract: MediatorRdfMetadataExtract,\n mediatorDereferenceRdf: MediatorDereferenceRdf,\n bindingsFactory: BindingsFactory,\n subjectUri: string,\n predicateUri: string,\n objectUri: string,\n graphUri: string | undefined,\n url: string,\n metadata: Record,\n bindingsRestricted: boolean,\n initialQuads?: RDF.Stream,\n ) {\n this.referenceValue = url;\n this.mediatorMetadata = mediatorMetadata;\n this.mediatorMetadataExtract = mediatorMetadataExtract;\n this.mediatorDereferenceRdf = mediatorDereferenceRdf;\n this.bindingsFactory = bindingsFactory;\n this.subjectUri = subjectUri;\n this.predicateUri = predicateUri;\n this.objectUri = objectUri;\n this.graphUri = graphUri;\n this.url = url;\n this.bindingsRestricted = bindingsRestricted;\n this.cachedQuads = {};\n const searchForm = this.getSearchForm(metadata);\n if (!searchForm) {\n throw new Error('Illegal state: found no TPF/QPF search form anymore in metadata.');\n }\n this.searchForm = searchForm;\n this.defaultGraph = metadata.defaultGraph ? DF.namedNode(metadata.defaultGraph) : undefined;\n if (initialQuads) {\n let wrappedQuads: AsyncIterator = wrap(initialQuads);\n if (this.defaultGraph) {\n wrappedQuads = this.reverseMapQuadsToDefaultGraph(wrappedQuads);\n }\n wrappedQuads.setProperty('metadata', metadata);\n this.cacheQuads(wrappedQuads, DF.variable(''), DF.variable(''), DF.variable(''), DF.variable(''));\n }\n }\n\n public async getSelectorShape(): Promise {\n return this.bindingsRestricted ? QuerySourceQpf.SELECTOR_SHAPE_BR : QuerySourceQpf.SELECTOR_SHAPE;\n }\n\n public queryBindings(\n operation: Algebra.Operation,\n context: IActionContext,\n options?: IQueryBindingsOptions,\n ): BindingsStream {\n if (operation.type !== 'pattern') {\n throw new Error(`Attempted to pass non-pattern operation '${operation.type}' to QuerySourceQpf`);\n }\n\n const unionDefaultGraph = Boolean(context.get(KeysQueryOperation.unionDefaultGraph));\n\n // Create an async iterator from the matched quad stream\n let it = this.match(\n operation.subject,\n operation.predicate,\n operation.object,\n operation.graph,\n unionDefaultGraph,\n context,\n options,\n );\n\n it = filterMatchingQuotedQuads(operation, it);\n return quadsToBindings(it, operation, this.bindingsFactory, unionDefaultGraph);\n }\n\n /**\n * Get a first QPF search form.\n * @param {{[p: string]: any}} metadata A metadata object.\n * @return {ISearchForm} A search form, or null if none could be found.\n */\n public getSearchForm(metadata: Record): ISearchForm | undefined {\n if (!metadata.searchForms || !metadata.searchForms.values) {\n return;\n }\n\n // Find a quad pattern or triple pattern search form\n const { searchForms } = metadata;\n for (const searchForm of searchForms.values) {\n if (this.graphUri &&\n this.subjectUri in searchForm.mappings &&\n this.predicateUri in searchForm.mappings &&\n this.objectUri in searchForm.mappings &&\n this.graphUri in searchForm.mappings &&\n Object.keys(searchForm.mappings).length === 4) {\n return searchForm;\n }\n if (this.subjectUri in searchForm.mappings &&\n this.predicateUri in searchForm.mappings &&\n this.objectUri in searchForm.mappings &&\n Object.keys(searchForm.mappings).length === 3) {\n return searchForm;\n }\n }\n }\n\n /**\n * Create a QPF fragment IRI for the given quad pattern.\n * @param {ISearchForm} searchForm A search form.\n * @param {Term} subject A term.\n * @param {Term} predicate A term.\n * @param {Term} object A term.\n * @param {Term} graph A term.\n * @return {string} A URI.\n */\n public createFragmentUri(\n searchForm: ISearchForm,\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n ): string {\n const entries: Record = {};\n const input = [\n { uri: this.subjectUri, term: subject },\n { uri: this.predicateUri, term: predicate },\n { uri: this.objectUri, term: object },\n { uri: this.graphUri, term: graph },\n ];\n for (const entry of input) {\n // If bindingsRestricted, also pass variables, so the server knows how to bind values.\n if (entry.uri && (this.bindingsRestricted || (entry.term.termType !== 'Variable' &&\n (entry.term.termType !== 'Quad' || everyTermsNested(entry.term, value => value.termType !== 'Variable'))))) {\n entries[entry.uri] = termToString(entry.term);\n }\n }\n return searchForm.getUri(entries);\n }\n\n protected match(\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n unionDefaultGraph: boolean,\n context: IActionContext,\n options?: IQueryBindingsOptions,\n ): AsyncIterator {\n // If we are querying the default graph,\n // and the source has an overridden value for the default graph (such as QPF can provide),\n // we override the graph parameter with that value.\n let modifiedGraph = false;\n if (graph.termType === 'DefaultGraph') {\n if (this.defaultGraph) {\n modifiedGraph = true;\n graph = this.defaultGraph;\n } else if (Object.keys(this.searchForm.mappings).length === 4 && !this.defaultGraph) {\n // If the sd:defaultGraph is not declared on a QPF endpoint\n if (unionDefaultGraph) {\n // With union-default-graph, take union of graphs.\n graph = DF.variable('g');\n } else {\n // Without union-default-graph, the default graph must be empty.\n const quads = new ArrayIterator([], { autoStart: false });\n quads.setProperty('metadata', {\n requestTime: 0,\n cardinality: { type: 'exact', value: 0 },\n first: null,\n next: null,\n last: null,\n canContainUndefs: false,\n });\n return quads;\n }\n } else if (Object.keys(this.searchForm.mappings).length === 3) {\n // If have a TPF endpoint, set graph to variable so we could get the cached triples\n graph = DF.variable('g');\n }\n }\n\n // Try to emit from cache (skip if filtering bindings)\n if (!options?.filterBindings) {\n const cached = this.getCachedQuads(subject, predicate, object, graph);\n if (cached) {\n return cached;\n }\n }\n\n // Kickstart metadata collection, because the quads iterator is lazy\n // eslint-disable-next-line ts/no-this-alias\n const self = this;\n let quads: AsyncIterator;\n const dataStreamPromise = (async function() {\n let url: string = self.createFragmentUri(self.searchForm, subject, predicate, object, graph);\n\n // Handle bindings-restricted interfaces\n if (options?.filterBindings) {\n url = await self.getBindingsRestrictedLink(\n subject,\n predicate,\n object,\n graph,\n url,\n options.filterBindings,\n );\n }\n\n const dereferenceRdfOutput = await self.mediatorDereferenceRdf.mediate({ context, url });\n url = dereferenceRdfOutput.url;\n\n // Determine the metadata\n const rdfMetadataOuput: IActorRdfMetadataOutput = await self.mediatorMetadata.mediate(\n { context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples },\n );\n\n // Extract the metadata\n const { metadata } = await self.mediatorMetadataExtract\n .mediate({\n context,\n url,\n metadata: rdfMetadataOuput.metadata,\n requestTime: dereferenceRdfOutput.requestTime,\n });\n quads!.setProperty('metadata', { ...metadata, canContainUndefs: false, subsetOf: self.url });\n\n // While we could resolve this before metadata extraction, we do it afterwards to ensure metadata emission\n // before the end event is emitted.\n return rdfMetadataOuput.data;\n })();\n\n quads = new TransformIterator(async() => {\n const dataStream = await dataStreamPromise;\n\n // The server is free to send any data in its response (such as metadata),\n // including quads that do not match the given matter.\n // Therefore, we have to filter away all non-matching quads here.\n const actualDefaultGraph = DF.defaultGraph();\n let filteredOutput: AsyncIterator = wrap(dataStream)\n .transform({\n filter(quad: RDF.Quad) {\n if (matchPattern(quad, subject, predicate, object, graph)) {\n return true;\n }\n // Special case: if we are querying in the default graph, and we had an overridden default graph,\n // also accept that incoming triples may be defined in the actual default graph\n return modifiedGraph && matchPattern(quad, subject, predicate, object, actualDefaultGraph);\n },\n });\n if (modifiedGraph || graph.termType === 'Variable') {\n // Reverse-map the overridden default graph back to the actual default graph\n filteredOutput = this.reverseMapQuadsToDefaultGraph(filteredOutput);\n }\n\n return filteredOutput;\n }, { autoStart: false });\n\n // Skip cache if filtering bindings\n if (options?.filterBindings) {\n return quads;\n }\n\n this.cacheQuads(quads, subject, predicate, object, graph);\n return this.getCachedQuads(subject, predicate, object, graph)!;\n }\n\n /**\n * If we add bindings for brTPF, append it to the URL.\n * We have to hardcode this because brTPF doesn't expose a URL template for passing bindings.\n * @param subject The subject.\n * @param predicate The predicate.\n * @param object The object.\n * @param graph The graph.\n * @param url The original QPF URL.\n * @param filterBindings The bindings to restrict with.\n * @param filterBindings.bindings The bindings stream.\n * @param filterBindings.metadata The bindings metadata.\n * @protected\n */\n public async getBindingsRestrictedLink(\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n url: string,\n filterBindings: { bindings: BindingsStream; metadata: MetadataBindings },\n ): Promise {\n // Determine values\n const values: string[] = [];\n for (const binding of await filterBindings.bindings.toArray()) {\n const value: string[] = [ '(' ];\n for (const variable of filterBindings.metadata.variables) {\n const term = binding.get(variable);\n value.push(term ? termToStringTtl(term) : 'UNDEF');\n value.push(' ');\n }\n value.push(')');\n values.push(value.join(''));\n }\n\n if (values.length === 0) {\n // This is a hack to force an empty result page,\n // because the brTPF server returns a server error when passing 0 bindings.\n values.push('()');\n }\n\n // Append to URL (brTPF uses the SPARQL VALUES syntax, without the VALUES prefix)\n const valuesUrl = encodeURIComponent(`(${filterBindings.metadata.variables.map(variable => `?${variable.value}`).join(' ')}) { ${values.join(' ')} }`);\n return `${url}&values=${valuesUrl}`;\n }\n\n protected reverseMapQuadsToDefaultGraph(quads: AsyncIterator): AsyncIterator {\n const actualDefaultGraph = DF.defaultGraph();\n return quads.map(\n quad => mapTerms(\n quad,\n (term, key) => key === 'graph' && term.equals(this.defaultGraph) ? actualDefaultGraph : term,\n ),\n );\n }\n\n public getPatternId(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term): string {\n return JSON.stringify({\n s: subject.termType === 'Variable' ? '' : _termToString(subject),\n p: predicate.termType === 'Variable' ? '' : _termToString(predicate),\n o: object.termType === 'Variable' ? '' : _termToString(object),\n g: graph.termType === 'Variable' ? '' : _termToString(graph),\n });\n }\n\n protected cacheQuads(\n quads: AsyncIterator,\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n ): void {\n const patternId = this.getPatternId(subject, predicate, object, graph);\n this.cachedQuads[patternId] = quads.clone();\n }\n\n protected getCachedQuads(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term):\n AsyncIterator | undefined {\n const patternId = this.getPatternId(subject, predicate, object, graph);\n const quads = this.cachedQuads[patternId];\n if (quads) {\n return quads.clone();\n }\n }\n\n public queryQuads(\n _operation: Algebra.Operation,\n _context: IActionContext,\n ): AsyncIterator {\n throw new Error('queryQuads is not implemented in QuerySourceQpf');\n }\n\n public queryBoolean(\n _operation: Algebra.Ask,\n _context: IActionContext,\n ): Promise {\n throw new Error('queryBoolean is not implemented in QuerySourceQpf');\n }\n\n public queryVoid(\n _operation: Algebra.Update,\n _context: IActionContext,\n ): Promise {\n throw new Error('queryVoid is not implemented in QuerySourceQpf');\n }\n}\n\nfunction _termToString(term: RDF.Term): string {\n return term.termType === 'DefaultGraph' ?\n // Any character that cannot be present in a URL will do\n '|' :\n termToString(term);\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorHttp } from '@comunica/bus-http';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type {\n IActionQuerySourceIdentifyHypermedia,\n IActorQuerySourceIdentifyHypermediaOutput,\n IActorQuerySourceIdentifyHypermediaArgs,\n IActorQuerySourceIdentifyHypermediaTest,\n} from '@comunica/bus-query-source-identify-hypermedia';\nimport {\n ActorQuerySourceIdentifyHypermedia,\n} from '@comunica/bus-query-source-identify-hypermedia';\nimport { QuerySourceSparql } from './QuerySourceSparql';\n\n/**\n * A comunica SPARQL Query Source Identify Hypermedia Actor.\n */\nexport class ActorQuerySourceIdentifyHypermediaSparql extends ActorQuerySourceIdentifyHypermedia {\n public readonly mediatorHttp: MediatorHttp;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n public readonly checkUrlSuffix: boolean;\n public readonly forceHttpGet: boolean;\n public readonly cacheSize: number;\n public readonly bindMethod: BindMethod;\n public readonly countTimeout: number;\n\n public constructor(args: IActorQuerySourceIdentifyHypermediaSparqlArgs) {\n super(args, 'sparql');\n }\n\n public async testMetadata(\n action: IActionQuerySourceIdentifyHypermedia,\n ): Promise {\n if (!action.forceSourceType && !action.metadata.sparqlService &&\n !(this.checkUrlSuffix && action.url.endsWith('/sparql'))) {\n throw new Error(`Actor ${this.name} could not detect a SPARQL service description or URL ending on /sparql.`);\n }\n return { filterFactor: 1 };\n }\n\n public async run(action: IActionQuerySourceIdentifyHypermedia): Promise {\n this.logInfo(action.context, `Identified ${action.url} as sparql source with service URL: ${action.metadata.sparqlService || action.url}`);\n const source = new QuerySourceSparql(\n action.forceSourceType ? action.url : action.metadata.sparqlService || action.url,\n action.context,\n this.mediatorHttp,\n this.bindMethod,\n await BindingsFactory.create(this.mediatorMergeBindingsContext, action.context),\n this.forceHttpGet,\n this.cacheSize,\n this.countTimeout,\n );\n return { source };\n }\n}\n\nexport interface IActorQuerySourceIdentifyHypermediaSparqlArgs extends IActorQuerySourceIdentifyHypermediaArgs {\n /**\n * The HTTP mediator\n */\n mediatorHttp: MediatorHttp;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n /**\n * If URLs ending with '/sparql' should also be considered SPARQL endpoints.\n * @default {true}\n */\n checkUrlSuffix: boolean;\n /**\n * If non-update queries should be sent via HTTP GET instead of POST\n * @default {false}\n */\n forceHttpGet: boolean;\n /**\n * The cache size for COUNT queries.\n * @range {integer}\n * @default {1024}\n */\n cacheSize?: number;\n /**\n * The query operation for communicating bindings.\n * @default {values}\n */\n bindMethod: BindMethod;\n /**\n * Timeout in ms of how long count queries are allowed to take.\n * If the timeout is reached, an infinity cardinality is returned.\n * @default {3000}\n */\n countTimeout: number;\n}\n\nexport type BindMethod = 'values' | 'union' | 'filter';\n","import type { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorHttp } from '@comunica/bus-http';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type {\n IQuerySource,\n BindingsStream,\n IActionContext,\n FragmentSelectorShape,\n Bindings,\n MetadataBindings,\n IQueryBindingsOptions,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { wrap, TransformIterator } from 'asynciterator';\nimport { SparqlEndpointFetcher } from 'fetch-sparql-endpoint';\nimport { LRUCache } from 'lru-cache';\nimport { DataFactory } from 'rdf-data-factory';\nimport { Algebra, Factory, toSparql, Util } from 'sparqlalgebrajs';\nimport type { BindMethod } from './ActorQuerySourceIdentifyHypermediaSparql';\n\nconst AF = new Factory();\nconst DF = new DataFactory();\nconst VAR_COUNT = DF.variable('count');\nconst COUNT_INFINITY: RDF.QueryResultCardinality = { type: 'estimate', value: Number.POSITIVE_INFINITY };\n\nexport class QuerySourceSparql implements IQuerySource {\n protected static readonly SELECTOR_SHAPE: FragmentSelectorShape = {\n type: 'disjunction',\n children: [\n {\n type: 'operation',\n operation: { operationType: 'type', type: Algebra.types.PROJECT },\n joinBindings: true,\n },\n {\n type: 'operation',\n operation: { operationType: 'type', type: Algebra.types.CONSTRUCT },\n },\n {\n type: 'operation',\n operation: { operationType: 'type', type: Algebra.types.DESCRIBE },\n },\n {\n type: 'operation',\n operation: { operationType: 'type', type: Algebra.types.ASK },\n },\n {\n type: 'operation',\n operation: { operationType: 'type', type: Algebra.types.COMPOSITE_UPDATE },\n },\n ],\n };\n\n public readonly referenceValue: string;\n private readonly url: string;\n private readonly context: IActionContext;\n private readonly mediatorHttp: MediatorHttp;\n private readonly bindMethod: BindMethod;\n private readonly countTimeout: number;\n private readonly bindingsFactory: BindingsFactory;\n\n private readonly endpointFetcher: SparqlEndpointFetcher;\n private readonly cache: LRUCache | undefined;\n\n private lastSourceContext: IActionContext | undefined;\n\n public constructor(\n url: string,\n context: IActionContext,\n mediatorHttp: MediatorHttp,\n bindMethod: BindMethod,\n bindingsFactory: BindingsFactory,\n forceHttpGet: boolean,\n cacheSize: number,\n countTimeout: number,\n ) {\n this.referenceValue = url;\n this.url = url;\n this.context = context;\n this.mediatorHttp = mediatorHttp;\n this.bindMethod = bindMethod;\n this.bindingsFactory = bindingsFactory;\n this.endpointFetcher = new SparqlEndpointFetcher({\n method: forceHttpGet ? 'GET' : 'POST',\n fetch: (input: Request | string, init?: RequestInit) => this.mediatorHttp.mediate(\n { input, init, context: this.lastSourceContext! },\n ),\n prefixVariableQuestionMark: true,\n });\n this.cache = cacheSize > 0 ?\n new LRUCache({ max: cacheSize }) :\n undefined;\n this.countTimeout = countTimeout;\n }\n\n public async getSelectorShape(): Promise {\n return QuerySourceSparql.SELECTOR_SHAPE;\n }\n\n public queryBindings(\n operationIn: Algebra.Operation,\n context: IActionContext,\n options?: IQueryBindingsOptions,\n ): BindingsStream {\n // If bindings are passed, modify the operations\n let operationPromise: Promise;\n if (options?.joinBindings) {\n operationPromise = QuerySourceSparql.addBindingsToOperation(this.bindMethod, operationIn, options.joinBindings);\n } else {\n operationPromise = Promise.resolve(operationIn);\n }\n\n const bindings: BindingsStream = new TransformIterator(async() => {\n // Prepare queries\n const operation = await operationPromise;\n const variables: RDF.Variable[] = Util.inScopeVariables(operation);\n const queryString = context.get(KeysInitQuery.queryString);\n const selectQuery: string = !options?.joinBindings && queryString ?\n queryString :\n QuerySourceSparql.operationToSelectQuery(operation, variables);\n const canContainUndefs = QuerySourceSparql.operationCanContainUndefs(operation);\n\n return this.queryBindingsRemote(this.url, selectQuery, variables, context, canContainUndefs);\n }, { autoStart: false });\n this.attachMetadata(bindings, context, operationPromise);\n\n return bindings;\n }\n\n public queryQuads(operation: Algebra.Operation, context: IActionContext): AsyncIterator {\n this.lastSourceContext = this.context.merge(context);\n const rawStream = this.endpointFetcher.fetchTriples(\n this.url,\n context.get(KeysInitQuery.queryString) ?? QuerySourceSparql.operationToQuery(operation),\n );\n this.lastSourceContext = undefined;\n const quads = wrap(rawStream, { autoStart: false, maxBufferSize: Number.POSITIVE_INFINITY });\n this.attachMetadata(quads, context, Promise.resolve(operation.input));\n return quads;\n }\n\n public queryBoolean(operation: Algebra.Ask, context: IActionContext): Promise {\n this.lastSourceContext = this.context.merge(context);\n const promise = this.endpointFetcher.fetchAsk(\n this.url,\n context.get(KeysInitQuery.queryString) ?? QuerySourceSparql.operationToQuery(operation),\n );\n this.lastSourceContext = undefined;\n return promise;\n }\n\n public queryVoid(operation: Algebra.Update, context: IActionContext): Promise {\n this.lastSourceContext = this.context.merge(context);\n const promise = this.endpointFetcher.fetchUpdate(\n this.url,\n context.get(KeysInitQuery.queryString) ?? QuerySourceSparql.operationToQuery(operation),\n );\n this.lastSourceContext = undefined;\n return promise;\n }\n\n protected attachMetadata(\n target: AsyncIterator,\n context: IActionContext,\n operationPromise: Promise,\n ): void {\n // Emit metadata containing the estimated count\n let variablesCount: RDF.Variable[] = [];\n let canContainUndefs = false;\n // eslint-disable-next-line no-async-promise-executor,ts/no-misused-promises\n new Promise(async(resolve, reject) => {\n // Prepare queries\n let countQuery: string;\n try {\n const operation = await operationPromise;\n variablesCount = Util.inScopeVariables(operation);\n countQuery = QuerySourceSparql.operationToCountQuery(operation);\n canContainUndefs = QuerySourceSparql.operationCanContainUndefs(operation);\n\n const cachedCardinality = this.cache?.get(countQuery);\n if (cachedCardinality !== undefined) {\n return resolve(cachedCardinality);\n }\n\n const timeoutHandler = setTimeout(() => resolve(COUNT_INFINITY), this.countTimeout);\n const bindingsStream: BindingsStream = await this\n .queryBindingsRemote(this.url, countQuery, [ VAR_COUNT ], context, false);\n bindingsStream.on('data', (bindings: Bindings) => {\n clearTimeout(timeoutHandler);\n const count = bindings.get(VAR_COUNT);\n const cardinality: RDF.QueryResultCardinality = { type: 'estimate', value: Number.POSITIVE_INFINITY };\n if (count) {\n const cardinalityValue: number = Number.parseInt(count.value, 10);\n if (!Number.isNaN(cardinalityValue)) {\n cardinality.type = 'exact';\n cardinality.value = cardinalityValue;\n this.cache?.set(countQuery, cardinality);\n }\n }\n return resolve(cardinality);\n });\n bindingsStream.on('error', () => {\n clearTimeout(timeoutHandler);\n resolve(COUNT_INFINITY);\n });\n bindingsStream.on('end', () => {\n clearTimeout(timeoutHandler);\n resolve(COUNT_INFINITY);\n });\n } catch (error: unknown) {\n return reject(error);\n }\n })\n .then(cardinality => target.setProperty('metadata', {\n cardinality,\n canContainUndefs,\n variables: variablesCount,\n }))\n .catch(() => target.setProperty('metadata', {\n cardinality: COUNT_INFINITY,\n canContainUndefs,\n variables: variablesCount,\n }));\n }\n\n /**\n * Create an operation that includes the bindings from the given bindings stream.\n * @param bindMethod A method for adding bindings to an operation.\n * @param operation The operation to bind to.\n * @param addBindings The bindings to add.\n * @param addBindings.bindings The bindings stream.\n * @param addBindings.metadata The bindings metadata.\n */\n public static async addBindingsToOperation(\n bindMethod: BindMethod,\n operation: Algebra.Operation,\n addBindings: { bindings: BindingsStream; metadata: MetadataBindings },\n ): Promise {\n const bindings = await addBindings.bindings.toArray();\n\n switch (bindMethod) {\n case 'values':\n return AF.createJoin([\n AF.createValues(\n addBindings.metadata.variables,\n bindings.map(binding => Object.fromEntries([ ...binding ]\n .map(([ key, value ]) => [ `?${key.value}`, value ]))),\n ),\n operation,\n ], false);\n case 'union': { throw new Error('Not implemented yet: \"union\" case'); }\n case 'filter': { throw new Error('Not implemented yet: \"filter\" case'); }\n }\n }\n\n /**\n * Convert an operation to a select query for this pattern.\n * @param {Algebra.Operation} operation A query operation.\n * @param {RDF.Variable[]} variables The variables in scope for the operation.\n * @return {string} A select query string.\n */\n public static operationToSelectQuery(operation: Algebra.Operation, variables: RDF.Variable[]): string {\n return QuerySourceSparql.operationToQuery(AF.createProject(operation, variables));\n }\n\n /**\n * Convert an operation to a count query for the number of matching triples for this pattern.\n * @param {Algebra.Operation} operation A query operation.\n * @return {string} A count query string.\n */\n public static operationToCountQuery(operation: Algebra.Operation): string {\n return QuerySourceSparql.operationToQuery(AF.createProject(\n AF.createExtend(\n AF.createGroup(\n operation,\n [],\n [ AF.createBoundAggregate(\n DF.variable('var0'),\n 'count',\n AF.createWildcardExpression(),\n false,\n ) ],\n ),\n DF.variable('count'),\n AF.createTermExpression(DF.variable('var0')),\n ),\n [ DF.variable('count') ],\n ));\n }\n\n /**\n * Convert an operation to a query for this pattern.\n * @param {Algebra.Operation} operation A query operation.\n * @return {string} A query string.\n */\n public static operationToQuery(operation: Algebra.Operation): string {\n return toSparql(operation, { sparqlStar: true });\n }\n\n /**\n * Check if the given operation may produce undefined values.\n * @param operation\n */\n public static operationCanContainUndefs(operation: Algebra.Operation): boolean {\n let canContainUndefs = false;\n Util.recurseOperation(operation, {\n leftjoin(): boolean {\n canContainUndefs = true;\n return false;\n },\n values(values: Algebra.Values): boolean {\n canContainUndefs = values.bindings.some(bindings => values.variables.some(variable => !(`?${variable.value}` in bindings)));\n return false;\n },\n });\n return canContainUndefs;\n }\n\n /**\n * Send a SPARQL query to a SPARQL endpoint and retrieve its bindings as a stream.\n * @param {string} endpoint A SPARQL endpoint URL.\n * @param {string} query A SPARQL query string.\n * @param {RDF.Variable[]} variables The expected variables.\n * @param {IActionContext} context The source context.\n * @param canContainUndefs If the operation may contain undefined variables.\n * @return {BindingsStream} A stream of bindings.\n */\n public async queryBindingsRemote(\n endpoint: string,\n query: string,\n variables: RDF.Variable[],\n context: IActionContext,\n canContainUndefs: boolean,\n ): Promise {\n this.lastSourceContext = this.context.merge(context);\n const rawStream = await this.endpointFetcher.fetchBindings(endpoint, query);\n this.lastSourceContext = undefined;\n\n const it = wrap(rawStream, { autoStart: false, maxBufferSize: Number.POSITIVE_INFINITY })\n .map((rawData: Record) => this.bindingsFactory.bindings(variables\n .map((variable) => {\n const value = rawData[`?${variable.value}`];\n if (!canContainUndefs && !value) {\n it.emit('error', new Error(`The endpoint ${endpoint} failed to provide a binding for ${variable.value}.`));\n }\n return [ variable, value ];\n })));\n return it;\n }\n\n public toString(): string {\n return `QuerySourceSparql(${this.url})`;\n }\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport { ActorQuerySourceIdentify } from '@comunica/bus-query-source-identify';\nimport type {\n IActionQuerySourceIdentify,\n IActorQuerySourceIdentifyOutput,\n IActorQuerySourceIdentifyArgs,\n} from '@comunica/bus-query-source-identify';\nimport type { MediatorQuerySourceIdentifyHypermedia } from '@comunica/bus-query-source-identify-hypermedia';\nimport type { MediatorRdfMetadata } from '@comunica/bus-rdf-metadata';\nimport type { MediatorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { MediatorRdfResolveHypermediaLinks } from '@comunica/bus-rdf-resolve-hypermedia-links';\nimport type { MediatorRdfResolveHypermediaLinksQueue } from '@comunica/bus-rdf-resolve-hypermedia-links-queue';\nimport { KeysQuerySourceIdentify } from '@comunica/context-entries';\nimport { ActionContext } from '@comunica/core';\nimport type { IActorTest } from '@comunica/core';\nimport { QuerySourceHypermedia } from './QuerySourceHypermedia';\n\n/**\n * A comunica Hypermedia Query Source Identify Actor.\n */\nexport class ActorQuerySourceIdentifyHypermedia extends ActorQuerySourceIdentify {\n public readonly mediatorDereferenceRdf: MediatorDereferenceRdf;\n public readonly mediatorMetadata: MediatorRdfMetadata;\n public readonly mediatorMetadataExtract: MediatorRdfMetadataExtract;\n public readonly mediatorMetadataAccumulate: MediatorRdfMetadataAccumulate;\n public readonly mediatorQuerySourceIdentifyHypermedia: MediatorQuerySourceIdentifyHypermedia;\n public readonly mediatorRdfResolveHypermediaLinks: MediatorRdfResolveHypermediaLinks;\n public readonly mediatorRdfResolveHypermediaLinksQueue: MediatorRdfResolveHypermediaLinksQueue;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n public readonly cacheSize: number;\n public readonly maxIterators: number;\n public readonly aggregateTraversalStore: boolean;\n\n public constructor(args: IActorQuerySourceIdentifyHypermediaArgs) {\n super(args);\n }\n\n public async test(action: IActionQuerySourceIdentify): Promise {\n if (typeof action.querySourceUnidentified.value !== 'string') {\n throw new TypeError(`${this.name} requires a single query source with a URL value to be present in the context.`);\n }\n return true;\n }\n\n public async run(action: IActionQuerySourceIdentify): Promise {\n return {\n querySource: {\n source: new QuerySourceHypermedia(\n this.cacheSize,\n action.querySourceUnidentified.value,\n action.querySourceUnidentified.type,\n this.maxIterators,\n this.aggregateTraversalStore &&\n Boolean(action.querySourceUnidentified.context?.get(KeysQuerySourceIdentify.traverse)),\n {\n mediatorMetadata: this.mediatorMetadata,\n mediatorMetadataExtract: this.mediatorMetadataExtract,\n mediatorMetadataAccumulate: this.mediatorMetadataAccumulate,\n mediatorDereferenceRdf: this.mediatorDereferenceRdf,\n mediatorQuerySourceIdentifyHypermedia: this.mediatorQuerySourceIdentifyHypermedia,\n mediatorRdfResolveHypermediaLinks: this.mediatorRdfResolveHypermediaLinks,\n mediatorRdfResolveHypermediaLinksQueue: this.mediatorRdfResolveHypermediaLinksQueue,\n },\n warningMessage => this.logWarn(action.context, warningMessage),\n await BindingsFactory.create(this.mediatorMergeBindingsContext, action.context),\n ),\n context: action.querySourceUnidentified.context ?? new ActionContext(),\n },\n };\n }\n}\n\nexport interface IActorQuerySourceIdentifyHypermediaArgs extends IActorQuerySourceIdentifyArgs {\n /**\n * The maximum number of entries in the LRU cache, set to 0 to disable.\n * @range {integer}\n * @default {100}\n */\n cacheSize: number;\n /**\n * The maximum number of links that can be followed in parallel.\n * @default {64}\n */\n maxIterators: number;\n /**\n * If all discovered quads across all links from a traversal source should be indexed in an aggregated store,\n * to speed up later calls.\n * This only applies to sources annotated with KeysQuerySourceIdentify.traverse.\n * @default {true}\n */\n aggregateTraversalStore: boolean;\n /**\n * The RDF dereference mediator\n */\n mediatorDereferenceRdf: MediatorDereferenceRdf;\n /**\n * The metadata mediator\n */\n mediatorMetadata: MediatorRdfMetadata;\n /**\n * The metadata extract mediator\n */\n mediatorMetadataExtract: MediatorRdfMetadataExtract;\n /**\n * The metadata accumulate mediator\n */\n mediatorMetadataAccumulate?: MediatorRdfMetadataAccumulate;\n /**\n * The hypermedia resolve mediator\n */\n mediatorQuerySourceIdentifyHypermedia: MediatorQuerySourceIdentifyHypermedia;\n /**\n * The hypermedia links resolve mediator\n */\n mediatorRdfResolveHypermediaLinks: MediatorRdfResolveHypermediaLinks;\n /**\n * The hypermedia links queue resolve mediator\n */\n mediatorRdfResolveHypermediaLinksQueue: MediatorRdfResolveHypermediaLinksQueue;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type { ILink } from '@comunica/bus-rdf-resolve-hypermedia-links';\nimport type { ILinkQueue } from '@comunica/bus-rdf-resolve-hypermedia-links-queue';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type { IQuerySource, IActionContext, MetadataBindings, IQueryBindingsOptions } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator, BufferedIteratorOptions } from 'asynciterator';\nimport { BufferedIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\n\nexport abstract class LinkedRdfSourcesAsyncRdfIterator extends BufferedIterator {\n protected readonly operation: Algebra.Operation;\n protected readonly queryBindingsOptions: IQueryBindingsOptions | undefined;\n protected readonly context: IActionContext;\n\n private readonly cacheSize: number;\n protected readonly firstUrl: string;\n private readonly maxIterators: number;\n private readonly sourceStateGetter: SourceStateGetter;\n\n protected started = false;\n private readonly currentIterators: AsyncIterator[] = [];\n private iteratorsPendingCreation = 0;\n private iteratorsPendingTermination = 0;\n // eslint-disable-next-line unicorn/no-useless-undefined\n private accumulatedMetadata: Promise = Promise.resolve(undefined);\n private preflightMetadata: Promise | undefined;\n\n public constructor(\n cacheSize: number,\n operation: Algebra.Operation,\n queryBindingsOptions: IQueryBindingsOptions | undefined,\n context: IActionContext,\n firstUrl: string,\n maxIterators: number,\n sourceStateGetter: SourceStateGetter,\n options?: BufferedIteratorOptions,\n ) {\n super({ autoStart: false, ...options });\n this._reading = false;\n this.cacheSize = cacheSize;\n this.operation = operation;\n this.queryBindingsOptions = queryBindingsOptions;\n this.context = context;\n this.firstUrl = firstUrl;\n this.maxIterators = maxIterators;\n this.sourceStateGetter = sourceStateGetter;\n\n if (this.maxIterators <= 0) {\n throw new Error(`LinkedRdfSourcesAsyncRdfIterator.maxIterators must be larger than zero, but got ${this.maxIterators}`);\n }\n }\n\n /**\n * Start filling the buffer of this iterator.\n */\n public kickstart(): void {\n if (!this.started) {\n this._fillBufferAsync();\n }\n }\n\n public override getProperty

(propertyName: string, callback?: (value: P) => void): P | undefined {\n if (propertyName === 'metadata' && !this.started) {\n // If the iterator has not started yet, forcefully fetch the metadata from the source without starting the\n // iterator. This way, we keep the iterator lazy.\n if (!this.preflightMetadata) {\n this.preflightMetadata = new Promise((resolve, reject) => {\n this.sourceStateGetter({ url: this.firstUrl }, {})\n .then((sourceState) => {\n // Don't pass query options, as we don't want to consume any passed iterators\n const bindingsStream = sourceState.source.queryBindings(this.operation, this.context);\n bindingsStream.getProperty('metadata', (metadata: MetadataBindings) => {\n metadata.state = new MetadataValidationState();\n bindingsStream.destroy();\n this.accumulateMetadata(sourceState.metadata, metadata)\n .then((accumulatedMetadata) => {\n // Also merge fields that were not explicitly accumulated\n const returnMetadata = { ...sourceState.metadata, ...metadata, ...accumulatedMetadata };\n resolve(returnMetadata);\n })\n .catch(() => {\n resolve({\n ...sourceState.metadata,\n state: new MetadataValidationState(),\n });\n });\n });\n })\n .catch(reject);\n });\n }\n this.preflightMetadata\n .then(metadata => this.setProperty('metadata', metadata))\n .catch(() => {\n // Ignore errors\n });\n }\n return super.getProperty(propertyName, callback);\n }\n\n protected override _end(destroy?: boolean): void {\n // Close all running iterators\n for (const it of this.currentIterators) {\n it.destroy();\n }\n\n super._end(destroy);\n }\n\n /**\n * Get the internal link queue.\n * The returned instance must always be the same.\n */\n public abstract getLinkQueue(): Promise;\n\n /**\n * Determine the links to be followed from the current source given its metadata.\n * @param metadata The metadata of a source.\n */\n protected abstract getSourceLinks(metadata: Record): Promise;\n\n public override _read(count: number, done: () => void): void {\n if (this.started) {\n // Read from all current iterators\n for (const iterator of this.currentIterators) {\n while (count > 0) {\n const read = iterator.read();\n if (read === null) {\n break;\n } else {\n count--;\n this._push(read);\n }\n }\n if (count <= 0) {\n break;\n }\n }\n\n // Schedule new iterators if needed\n if (count >= 0 && this.canStartNewIterator()) {\n // We can safely ignore skip catching the error, since we are guaranteed to have\n // successfully got the source for this.firstUrl before.\n // eslint-disable-next-line ts/no-floating-promises\n this.sourceStateGetter({ url: this.firstUrl }, {})\n .then((sourceState) => {\n this.startIteratorsForNextUrls(sourceState.handledDatasets, false);\n done();\n });\n } else {\n done();\n }\n } else {\n // The first time this is called, prepare the first source\n this.started = true;\n\n // Await the source to be set, and start the source iterator\n this.sourceStateGetter({ url: this.firstUrl }, {})\n .then((sourceState) => {\n this.startIterator(sourceState);\n done();\n })\n // Destroy should be async because it can be called before it is listened to\n .catch(error => setTimeout(() => this.destroy(error)));\n }\n }\n\n protected canStartNewIterator(): boolean {\n return (this.currentIterators.length + this.iteratorsPendingCreation + this.iteratorsPendingTermination) <\n this.maxIterators && (!this.canStartNewIteratorConsiderReadable() || !this.readable);\n }\n\n protected canStartNewIteratorConsiderReadable(): boolean {\n return true;\n }\n\n protected areIteratorsRunning(): boolean {\n return (this.currentIterators.length + this.iteratorsPendingCreation + this.iteratorsPendingTermination) > 0;\n }\n\n /**\n * Append the fields from appendingMetadata into accumulatedMetadata.\n * @param accumulatedMetadata The fields to append to.\n * @param appendingMetadata The fields to append.\n * @protected\n */\n protected abstract accumulateMetadata(\n accumulatedMetadata: MetadataBindings,\n appendingMetadata: MetadataBindings,\n ): Promise;\n\n /**\n * Start a new iterator for the given source.\n * Once the iterator is done, it will either determine a new source, or it will close the linked iterator.\n * @param {ISourceState} startSource The start source state.\n */\n protected startIterator(startSource: ISourceState): void {\n // Delegate the quad pattern query to the given source\n try {\n const iterator = startSource.source.queryBindings(this.operation, this.context, this.queryBindingsOptions);\n this.currentIterators.push(iterator);\n let receivedEndEvent = false;\n let receivedMetadata = false;\n\n // Attach readers to the newly created iterator\n (iterator)._destination = this;\n iterator.on('error', (error: Error) => this.destroy(error));\n iterator.on('readable', () => this._fillBuffer());\n iterator.on('end', () => {\n this.currentIterators.splice(this.currentIterators.indexOf(iterator), 1);\n\n // Indicate that this iterator still needs to flush its next-links.\n // Without this, the linked iterator could sometimes be closed before next-links are obtained.\n receivedEndEvent = true;\n if (!receivedMetadata) {\n this.iteratorsPendingTermination++;\n }\n\n // If the metadata was already received, handle the next URL in the queue\n if (receivedMetadata) {\n this.startIteratorsForNextUrls(startSource.handledDatasets, true);\n }\n });\n\n // Listen for the metadata of the source\n // The metadata property is guaranteed to be set\n iterator.getProperty('metadata', (metadata: MetadataBindings) => {\n // Accumulate the metadata object\n this.accumulatedMetadata = this.accumulatedMetadata\n .then(previousMetadata => (async() => {\n if (!previousMetadata) {\n previousMetadata = startSource.metadata;\n }\n return this.accumulateMetadata(previousMetadata, metadata);\n })()\n .then((accumulatedMetadata) => {\n // Also merge fields that were not explicitly accumulated\n const returnMetadata = { ...startSource.metadata, ...metadata, ...accumulatedMetadata };\n\n // Create new metadata state\n returnMetadata.state = new MetadataValidationState();\n\n // Emit metadata, and invalidate any metadata that was set before\n this.updateMetadata(returnMetadata);\n\n // Invalidate any preflight metadata\n if (this.preflightMetadata) {\n this.preflightMetadata\n .then(metadataIn => metadataIn.state.invalidate())\n .catch(() => {\n // Ignore errors\n });\n }\n\n // Determine next urls, which will eventually become a next-next source.\n this.getSourceLinks(returnMetadata)\n .then((nextUrls: ILink[]) => Promise.all(nextUrls))\n .then(async(nextUrls: ILink[]) => {\n // Append all next URLs to our queue\n const linkQueue = await this.getLinkQueue();\n for (const nextUrl of nextUrls) {\n linkQueue.push(nextUrl, startSource.link);\n }\n\n receivedMetadata = true;\n if (receivedEndEvent) {\n this.iteratorsPendingTermination--;\n }\n\n this.startIteratorsForNextUrls(startSource.handledDatasets, true);\n }).catch(error => this.destroy(error));\n\n return returnMetadata;\n })).catch((error) => {\n this.destroy(error);\n return {};\n });\n });\n } catch (syncError: unknown) {\n this.destroy( syncError);\n }\n }\n\n protected updateMetadata(metadataNew: MetadataBindings): void {\n const metadataToInvalidate = this.getProperty('metadata');\n this.setProperty('metadata', metadataNew);\n metadataToInvalidate?.state.invalidate();\n }\n\n protected isRunning(): boolean {\n return !this.done;\n }\n\n /**\n * Check if a next URL is in the queue.\n * If yes, start a new iterator.\n * If no, close this iterator.\n * @param handledDatasets\n * @param canClose\n */\n protected startIteratorsForNextUrls(handledDatasets: Record, canClose: boolean): void {\n this.getLinkQueue()\n .then((linkQueue) => {\n // Create as many new iterators as possible\n while (this.canStartNewIterator() && this.isRunning()) {\n const nextLink = linkQueue.pop();\n if (nextLink) {\n this.iteratorsPendingCreation++;\n this.sourceStateGetter(nextLink, handledDatasets)\n .then((nextSourceState) => {\n this.iteratorsPendingCreation--;\n this.startIterator(nextSourceState);\n })\n .catch(error => this.emit('error', error));\n } else {\n break;\n }\n }\n\n // Close, only if no other iterators are still running\n if (canClose && this.isCloseable(linkQueue, true)) {\n this.close();\n }\n })\n .catch(error => this.destroy(error));\n }\n\n protected isCloseable(linkQueue: ILinkQueue, _requireQueueEmpty: boolean): boolean {\n return linkQueue.isEmpty() && !this.areIteratorsRunning();\n }\n}\n\n/**\n * The current state of a source.\n * This is needed for following links within a source.\n */\nexport interface ISourceState {\n /**\n * The link to this source.\n */\n link: ILink;\n /**\n * A source.\n */\n source: IQuerySource;\n /**\n * The source's initial metadata.\n */\n metadata: MetadataBindings;\n /**\n * All dataset identifiers that have been passed for this source.\n */\n handledDatasets: Record;\n}\n\nexport type SourceStateGetter = (link: ILink, handledDatasets: Record) => Promise;\n","import type { MediatorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { ILink, MediatorRdfResolveHypermediaLinks } from '@comunica/bus-rdf-resolve-hypermedia-links';\nimport type {\n ILinkQueue,\n MediatorRdfResolveHypermediaLinksQueue,\n} from '@comunica/bus-rdf-resolve-hypermedia-links-queue';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport type { IActionContext, IAggregatedStore, IQueryBindingsOptions, MetadataBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { DataFactory } from 'rdf-data-factory';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { Factory } from 'sparqlalgebrajs';\nimport type { SourceStateGetter, ISourceState } from './LinkedRdfSourcesAsyncRdfIterator';\nimport { LinkedRdfSourcesAsyncRdfIterator } from './LinkedRdfSourcesAsyncRdfIterator';\n\nconst DF = new DataFactory();\nconst AF = new Factory();\n\n/**\n * An quad iterator that can iterate over consecutive RDF sources\n * that are determined using the rdf-resolve-hypermedia-links bus.\n *\n * @see LinkedRdfSourcesAsyncRdfIterator\n */\nexport class MediatedLinkedRdfSourcesAsyncRdfIterator extends LinkedRdfSourcesAsyncRdfIterator {\n private readonly mediatorMetadataAccumulate: MediatorRdfMetadataAccumulate;\n private readonly mediatorRdfResolveHypermediaLinks: MediatorRdfResolveHypermediaLinks;\n private readonly mediatorRdfResolveHypermediaLinksQueue: MediatorRdfResolveHypermediaLinksQueue;\n private readonly forceSourceType?: string;\n private readonly handledUrls: Record;\n private readonly aggregatedStore: IAggregatedStore | undefined;\n private linkQueue: Promise | undefined;\n private wasForcefullyClosed = false;\n\n public constructor(\n cacheSize: number,\n operation: Algebra.Operation,\n queryBindingsOptions: IQueryBindingsOptions | undefined,\n context: IActionContext,\n forceSourceType: string | undefined,\n firstUrl: string,\n maxIterators: number,\n sourceStateGetter: SourceStateGetter,\n aggregatedStore: IAggregatedStore | undefined,\n mediatorMetadataAccumulate: MediatorRdfMetadataAccumulate,\n mediatorRdfResolveHypermediaLinks: MediatorRdfResolveHypermediaLinks,\n mediatorRdfResolveHypermediaLinksQueue: MediatorRdfResolveHypermediaLinksQueue,\n ) {\n super(\n cacheSize,\n operation,\n queryBindingsOptions,\n context,\n firstUrl,\n maxIterators,\n sourceStateGetter,\n // Buffersize must be infinite for an aggregated store because it must keep filling until there are no more\n // derived iterators in the aggregated store.\n aggregatedStore ? { maxBufferSize: Number.POSITIVE_INFINITY } : undefined,\n );\n this.forceSourceType = forceSourceType;\n this.mediatorMetadataAccumulate = mediatorMetadataAccumulate;\n this.mediatorRdfResolveHypermediaLinks = mediatorRdfResolveHypermediaLinks;\n this.mediatorRdfResolveHypermediaLinksQueue = mediatorRdfResolveHypermediaLinksQueue;\n this.handledUrls = { [firstUrl]: true };\n this.aggregatedStore = aggregatedStore;\n }\n\n // Mark the aggregated store as ended once we trigger the closing or destroying of this iterator.\n // We don't override _end, because that would mean that we have to wait\n // until the buffer of this iterator must be fully consumed, which will not always be the case.\n\n public override close(): void {\n if (!this.aggregatedStore) {\n super.close();\n return;\n }\n\n this.getLinkQueue()\n .then((linkQueue) => {\n if (this.isCloseable(linkQueue, false)) {\n // Wait a tick before ending the aggregatedStore, to ensure that pending match() calls to it have started.\n if (this.aggregatedStore) {\n setTimeout(() => this.aggregatedStore!.end());\n }\n super.close();\n } else {\n this.wasForcefullyClosed = true;\n }\n })\n .catch(error => super.destroy(error));\n }\n\n public override destroy(cause?: Error): void {\n if (!this.aggregatedStore) {\n super.destroy(cause);\n return;\n }\n\n this.getLinkQueue()\n .then((linkQueue) => {\n if (cause ?? this.isCloseable(linkQueue, false)) {\n // Wait a tick before ending the aggregatedStore, to ensure that pending match() calls to it have started.\n if (this.aggregatedStore) {\n setTimeout(() => this.aggregatedStore!.end());\n }\n super.destroy(cause);\n } else {\n this.wasForcefullyClosed = true;\n }\n })\n .catch(error => super.destroy(error));\n }\n\n protected override isCloseable(linkQueue: ILinkQueue, requireQueueEmpty: boolean): boolean {\n return (requireQueueEmpty ? linkQueue.isEmpty() : this.wasForcefullyClosed || linkQueue.isEmpty()) &&\n !this.areIteratorsRunning();\n }\n\n protected override canStartNewIterator(): boolean {\n // Also allow sub-iterators to be started if the aggregated store has at least one running iterator.\n // We need this because there are cases where these running iterators will be consumed before this linked iterator.\n return (!this.wasForcefullyClosed &&\n // eslint-disable-next-line ts/prefer-nullish-coalescing\n (this.aggregatedStore && this.aggregatedStore.hasRunningIterators())) || super.canStartNewIterator();\n }\n\n protected override canStartNewIteratorConsiderReadable(): boolean {\n return !this.aggregatedStore;\n }\n\n protected override isRunning(): boolean {\n // Same as above\n // eslint-disable-next-line ts/prefer-nullish-coalescing\n return (this.aggregatedStore && this.aggregatedStore.hasRunningIterators()) || !this.done;\n }\n\n public getLinkQueue(): Promise {\n if (!this.linkQueue) {\n this.linkQueue = this.mediatorRdfResolveHypermediaLinksQueue\n .mediate({ firstUrl: this.firstUrl, context: this.context })\n .then(result => result.linkQueue);\n }\n return this.linkQueue;\n }\n\n protected async getSourceLinks(metadata: Record): Promise {\n try {\n const { links } = await this.mediatorRdfResolveHypermediaLinks.mediate({ context: this.context, metadata });\n\n // Filter URLs to avoid cyclic next-page loops\n return links.filter((link) => {\n if (this.handledUrls[link.url]) {\n return false;\n }\n this.handledUrls[link.url] = true;\n return true;\n });\n } catch {\n // No next URLs may be available, for example when we've reached the end of a Hydra next-page sequence.\n return [];\n }\n }\n\n protected override startIterator(startSource: ISourceState): void {\n if (this.aggregatedStore && !this.aggregatedStore.containedSources.has(startSource.link.url)) {\n // A source that has been cached due to earlier query executions may not be part of the aggregated store yet.\n // In that case, we add all quads from that source to the aggregated store.\n this.aggregatedStore?.containedSources.add(startSource.link.url);\n const stream = startSource.source.queryBindings(\n AF.createPattern(\n DF.variable('s'),\n DF.variable('p'),\n DF.variable('o'),\n DF.variable('g'),\n ),\n this.context.set(KeysQueryOperation.unionDefaultGraph, true),\n ).map(bindings => DF.quad(\n bindings.get('s')!,\n bindings.get('p')!,\n bindings.get('o')!,\n bindings.get('g'),\n ));\n this.aggregatedStore.import( stream)\n .on('end', () => {\n super.startIterator(startSource);\n });\n } else {\n super.startIterator(startSource);\n }\n }\n\n public async accumulateMetadata(\n accumulatedMetadata: MetadataBindings,\n appendingMetadata: MetadataBindings,\n ): Promise {\n return (await this.mediatorMetadataAccumulate.mediate({\n mode: 'append',\n accumulatedMetadata,\n appendingMetadata,\n context: this.context,\n })).metadata;\n }\n\n protected override updateMetadata(metadataNew: MetadataBindings): void {\n super.updateMetadata(metadataNew);\n this.aggregatedStore?.setBaseMetadata(metadataNew, true);\n }\n}\n","import { QuerySourceRdfJs } from '@comunica/actor-query-source-identify-rdfjs';\nimport type { BindingsFactory } from '@comunica/bindings-factory';\nimport type { IActorDereferenceRdfOutput, MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport type { MediatorQuerySourceIdentifyHypermedia } from '@comunica/bus-query-source-identify-hypermedia';\nimport type { IActorRdfMetadataOutput, MediatorRdfMetadata } from '@comunica/bus-rdf-metadata';\nimport type { MediatorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { ILink, MediatorRdfResolveHypermediaLinks } from '@comunica/bus-rdf-resolve-hypermedia-links';\nimport type { MediatorRdfResolveHypermediaLinksQueue } from '@comunica/bus-rdf-resolve-hypermedia-links-queue';\nimport { KeysQuerySourceIdentify } from '@comunica/context-entries';\nimport type {\n BindingsStream,\n FragmentSelectorShape,\n IActionContext,\n IAggregatedStore,\n IQueryBindingsOptions,\n IQuerySource,\n MetadataBindings,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { TransformIterator } from 'asynciterator';\nimport { LRUCache } from 'lru-cache';\nimport { Readable } from 'readable-stream';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport type { ISourceState } from './LinkedRdfSourcesAsyncRdfIterator';\nimport { MediatedLinkedRdfSourcesAsyncRdfIterator } from './MediatedLinkedRdfSourcesAsyncRdfIterator';\nimport { StreamingStoreMetadata } from './StreamingStoreMetadata';\n\nexport class QuerySourceHypermedia implements IQuerySource {\n public readonly referenceValue: string;\n public readonly firstUrl: string;\n public readonly forceSourceType?: string;\n public readonly aggregateStore: boolean;\n public readonly mediators: IMediatorArgs;\n public readonly logWarning: (warningMessage: string) => void;\n public readonly bindingsFactory: BindingsFactory;\n\n /**\n * A cache for source URLs to source states.\n */\n public sourcesState: LRUCache>;\n\n private readonly cacheSize: number;\n private readonly maxIterators: number;\n\n public constructor(\n cacheSize: number,\n firstUrl: string,\n forceSourceType: string | undefined,\n maxIterators: number,\n aggregateStore: boolean,\n mediators: IMediatorArgs,\n logWarning: (warningMessage: string) => void,\n bindingsFactory: BindingsFactory,\n ) {\n this.referenceValue = firstUrl;\n this.cacheSize = cacheSize;\n this.firstUrl = firstUrl;\n this.forceSourceType = forceSourceType;\n this.maxIterators = maxIterators;\n this.mediators = mediators;\n this.aggregateStore = aggregateStore;\n this.logWarning = logWarning;\n this.bindingsFactory = bindingsFactory;\n this.sourcesState = new LRUCache>({ max: this.cacheSize });\n }\n\n public async getSelectorShape(context: IActionContext): Promise {\n const source = await this.getSourceCached({ url: this.firstUrl }, {}, context, this.getAggregateStore(context));\n return source.source.getSelectorShape(context);\n }\n\n public queryBindings(\n operation: Algebra.Operation,\n context: IActionContext,\n options?: IQueryBindingsOptions,\n ): BindingsStream {\n // Optimized match with aggregated store if enabled and started.\n const aggregatedStore: IAggregatedStore | undefined = this.getAggregateStore(context);\n if (aggregatedStore && operation.type === 'pattern' && aggregatedStore.started) {\n return new QuerySourceRdfJs(aggregatedStore, this.bindingsFactory).queryBindings(operation, context);\n }\n\n // Initialize the sources state on first call\n if (this.sourcesState.size === 0) {\n this.getSourceCached({ url: this.firstUrl }, {}, context, aggregatedStore)\n .catch(error => it.destroy(error));\n }\n\n const it: MediatedLinkedRdfSourcesAsyncRdfIterator = new MediatedLinkedRdfSourcesAsyncRdfIterator(\n this.cacheSize,\n operation,\n options,\n context,\n this.forceSourceType,\n this.firstUrl,\n this.maxIterators,\n (link, handledDatasets) => this.getSourceCached(link, handledDatasets, context, aggregatedStore),\n aggregatedStore,\n this.mediators.mediatorMetadataAccumulate,\n this.mediators.mediatorRdfResolveHypermediaLinks,\n this.mediators.mediatorRdfResolveHypermediaLinksQueue,\n );\n if (aggregatedStore) {\n aggregatedStore.started = true;\n\n // Kickstart this iterator when derived iterators are created from the aggregatedStore,\n // otherwise the traversal process will not start if this iterator is not the first one to be consumed.\n const listener = (): void => it.kickstart();\n aggregatedStore.addIteratorCreatedListener(listener);\n it.on('end', () => aggregatedStore.removeIteratorCreatedListener(listener));\n }\n\n return it;\n }\n\n public queryQuads(operation: Algebra.Operation, context: IActionContext): AsyncIterator {\n return new TransformIterator(async() => {\n const source = await this.getSourceCached({ url: this.firstUrl }, {}, context, this.getAggregateStore(context));\n return source.source.queryQuads(operation, context);\n });\n }\n\n public async queryBoolean(operation: Algebra.Ask, context: IActionContext): Promise {\n const source = await this.getSourceCached({ url: this.firstUrl }, {}, context, this.getAggregateStore(context));\n return await source.source.queryBoolean(operation, context);\n }\n\n public async queryVoid(operation: Algebra.Update, context: IActionContext): Promise {\n const source = await this.getSourceCached({ url: this.firstUrl }, {}, context, this.getAggregateStore(context));\n return await source.source.queryVoid(operation, context);\n }\n\n /**\n * Resolve a source for the given URL.\n * @param link A source link.\n * @param handledDatasets A hash of dataset identifiers that have already been handled.\n * @param context The action context.\n * @param aggregatedStore An optional aggregated store.\n */\n public async getSource(\n link: ILink,\n handledDatasets: Record,\n context: IActionContext,\n aggregatedStore: IAggregatedStore | undefined,\n ): Promise {\n // Include context entries from link\n if (link.context) {\n context = context.merge(link.context);\n }\n\n // Get the RDF representation of the given document\n let url = link.url;\n let quads: RDF.Stream;\n let metadata: Record;\n try {\n const dereferenceRdfOutput: IActorDereferenceRdfOutput = await this.mediators.mediatorDereferenceRdf\n .mediate({ context, url });\n url = dereferenceRdfOutput.url;\n\n // Determine the metadata\n const rdfMetadataOutput: IActorRdfMetadataOutput = await this.mediators.mediatorMetadata.mediate(\n { context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples },\n );\n\n rdfMetadataOutput.data.on('error', () => {\n // Silence errors in the data stream,\n // as they will be emitted again in the metadata stream,\n // and will result in a promise rejection anyways.\n // If we don't do this, we end up with an unhandled error message\n });\n\n metadata = (await this.mediators.mediatorMetadataExtract.mediate({\n context,\n url,\n // The problem appears to be conflicting metadata keys here\n metadata: rdfMetadataOutput.metadata,\n headers: dereferenceRdfOutput.headers,\n requestTime: dereferenceRdfOutput.requestTime,\n })).metadata;\n quads = rdfMetadataOutput.data;\n\n // Optionally filter the resulting data\n if (link.transform) {\n quads = await link.transform(quads);\n }\n } catch (error: unknown) {\n // Make sure that dereference errors are only emitted once an actor really needs the read quads\n // This for example allows SPARQL endpoints that error on service description fetching to still be source-forcible\n quads = new Readable();\n quads.read = () => {\n setTimeout(() => quads.emit('error', error));\n return null;\n };\n ({ metadata } = await this.mediators.mediatorMetadataAccumulate.mediate({ context, mode: 'initialize' }));\n\n // Log as warning, because the quads above may not always be consumed (e.g. for SPARQL endpoints),\n // so the user would not be notified of something going wrong otherwise.\n this.logWarning(`Metadata extraction for ${url} failed: ${( error).message}`);\n }\n\n // Aggregate all discovered quads into a store.\n aggregatedStore?.setBaseMetadata( metadata, false);\n aggregatedStore?.containedSources.add(link.url);\n aggregatedStore?.import(quads);\n\n // Determine the source\n const { source, dataset } = await this.mediators.mediatorQuerySourceIdentifyHypermedia.mediate({\n context,\n forceSourceType: link.url === this.firstUrl ? this.forceSourceType : undefined,\n handledDatasets,\n metadata,\n quads,\n url,\n });\n\n if (dataset) {\n // Mark the dataset as applied\n // This is needed to make sure that things like QPF search forms are only applied once,\n // and next page links are followed after that.\n handledDatasets[dataset] = true;\n }\n\n return { link, source, metadata: metadata, handledDatasets };\n }\n\n /**\n * Resolve a source for the given URL.\n * This will first try to retrieve the source from cache.\n * @param link A source ILink.\n * @param handledDatasets A hash of dataset identifiers that have already been handled.\n * @param context The action context.\n * @param aggregatedStore An optional aggregated store.\n */\n protected getSourceCached(\n link: ILink,\n handledDatasets: Record,\n context: IActionContext,\n aggregatedStore: IAggregatedStore | undefined,\n ): Promise {\n let source = this.sourcesState.get(link.url);\n if (source) {\n return source;\n }\n source = this.getSource(link, handledDatasets, context, aggregatedStore);\n if (link.url === this.firstUrl || aggregatedStore === undefined) {\n this.sourcesState.set(link.url, source);\n }\n return source;\n }\n\n public getAggregateStore(context: IActionContext): IAggregatedStore | undefined {\n let aggregatedStore: IAggregatedStore | undefined;\n if (this.aggregateStore) {\n const aggregatedStores: Map | undefined = context\n .get(KeysQuerySourceIdentify.hypermediaSourcesAggregatedStores);\n if (aggregatedStores) {\n aggregatedStore = aggregatedStores.get(this.firstUrl);\n if (!aggregatedStore) {\n aggregatedStore = new StreamingStoreMetadata(\n undefined,\n async(accumulatedMetadata, appendingMetadata) => \n (await this.mediators.mediatorMetadataAccumulate.mediate({\n mode: 'append',\n accumulatedMetadata,\n appendingMetadata,\n context,\n })).metadata,\n );\n aggregatedStores.set(this.firstUrl, aggregatedStore);\n }\n return aggregatedStore;\n }\n }\n }\n\n public toString(): string {\n return `QuerySourceHypermedia(${this.firstUrl})`;\n }\n}\n\nexport interface IMediatorArgs {\n mediatorDereferenceRdf: MediatorDereferenceRdf;\n mediatorMetadata: MediatorRdfMetadata;\n mediatorMetadataExtract: MediatorRdfMetadataExtract;\n mediatorMetadataAccumulate: MediatorRdfMetadataAccumulate;\n mediatorQuerySourceIdentifyHypermedia: MediatorQuerySourceIdentifyHypermedia;\n mediatorRdfResolveHypermediaLinks: MediatorRdfResolveHypermediaLinks;\n mediatorRdfResolveHypermediaLinksQueue: MediatorRdfResolveHypermediaLinksQueue;\n}\n","// eslint-disable-next-line import/no-nodejs-modules\nimport type { EventEmitter } from 'node:events';\nimport { ClosableTransformIterator } from '@comunica/bus-query-operation';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type { MetadataQuads, IAggregatedStore, MetadataBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { StreamingStore } from 'rdf-streaming-store';\n\n/**\n * A StreamingStore that returns an AsyncIterator with a valid MetadataQuads property.\n */\nexport class StreamingStoreMetadata extends StreamingStore implements IAggregatedStore {\n public started = false;\n public containedSources = new Set();\n public readonly runningIterators: Set> = new Set>();\n protected readonly iteratorCreatedListeners: Set<() => void> = new Set();\n protected readonly metadataAccumulator:\n (accumulatedMetadata: MetadataBindings, appendingMetadata: MetadataBindings) => Promise;\n\n protected baseMetadata: MetadataBindings = {\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: 0 },\n canContainUndefs: false,\n variables: [],\n };\n\n public constructor(\n store: RDF.Store | undefined,\n metadataAccumulator:\n (accumulatedMetadata: MetadataBindings, appendingMetadata: MetadataBindings) => Promise,\n ) {\n super(store);\n this.metadataAccumulator = metadataAccumulator;\n }\n\n public override import(stream: RDF.Stream): EventEmitter {\n if (!this.ended) {\n super.import(stream);\n }\n return stream;\n }\n\n public hasRunningIterators(): boolean {\n return this.runningIterators.size > 0;\n }\n\n public override match(\n subject?: RDF.Term | null,\n predicate?: RDF.Term | null,\n object?: RDF.Term | null,\n graph?: RDF.Term | null,\n ): AsyncIterator {\n // Wrap the raw stream in an AsyncIterator\n const rawStream = super.match(subject, predicate, object, graph);\n const iterator = new ClosableTransformIterator(\n rawStream,\n {\n autoStart: false,\n onClose: () => {\n // Running iterators are deleted once closed or destroyed\n this.runningIterators.delete(iterator);\n },\n },\n );\n\n // Expose the metadata property containing the cardinality\n let count = this.getStore().countQuads(subject!, predicate!, object!, graph!);\n const metadata: MetadataQuads = {\n state: new MetadataValidationState(),\n cardinality: {\n type: 'estimate',\n value: count,\n },\n canContainUndefs: false,\n };\n iterator.setProperty('metadata', metadata);\n iterator.setProperty('lastCount', count);\n\n // Every time a new quad is pushed into the iterator, update the metadata\n rawStream.on('quad', () => {\n iterator.setProperty('lastCount', ++count);\n this.updateMetadataState(iterator, count);\n });\n\n // Store all running iterators until they close or are destroyed\n this.runningIterators.add(iterator);\n\n // Invoke creation listeners\n for (const listener of this.iteratorCreatedListeners) {\n listener();\n }\n\n return iterator;\n }\n\n public setBaseMetadata(metadata: MetadataBindings, updateStates: boolean): void {\n this.baseMetadata = { ...metadata };\n this.baseMetadata.cardinality = { type: 'exact', value: 0 };\n\n if (updateStates) {\n for (const iterator of this.runningIterators) {\n const count: number = iterator.getProperty('lastCount')!;\n this.updateMetadataState(iterator, count);\n }\n }\n }\n\n protected updateMetadataState(iterator: AsyncIterator, count: number): void {\n // Append the given cardinality to the base metadata\n const metadataNew: MetadataBindings = {\n state: new MetadataValidationState(),\n cardinality: {\n type: 'estimate',\n value: count,\n },\n canContainUndefs: false,\n variables: [],\n };\n\n this.metadataAccumulator(this.baseMetadata, metadataNew)\n .then((accumulatedMetadata) => {\n accumulatedMetadata.state = new MetadataValidationState();\n\n // Set the new metadata, and invalidate the previous state\n const metadataToInvalidate = iterator.getProperty('metadata');\n iterator.setProperty('metadata', accumulatedMetadata);\n metadataToInvalidate?.state.invalidate();\n })\n .catch(() => {\n // Void errors\n });\n }\n\n public addIteratorCreatedListener(listener: () => void): void {\n this.iteratorCreatedListeners.add(listener);\n }\n\n public removeIteratorCreatedListener(listener: () => void): void {\n this.iteratorCreatedListeners.delete(listener);\n }\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type {\n IActionQuerySourceIdentify,\n IActorQuerySourceIdentifyOutput,\n IActorQuerySourceIdentifyArgs,\n} from '@comunica/bus-query-source-identify';\nimport { ActorQuerySourceIdentify } from '@comunica/bus-query-source-identify';\nimport type { IActorTest } from '@comunica/core';\nimport { ActionContext } from '@comunica/core';\nimport type * as RDF from '@rdfjs/types';\nimport { QuerySourceRdfJs } from './QuerySourceRdfJs';\n\n/**\n * A comunica RDFJS Query Source Identify Actor.\n */\nexport class ActorQuerySourceIdentifyRdfJs extends ActorQuerySourceIdentify {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorQuerySourceIdentifyRdfJsArgs) {\n super(args);\n }\n\n public async test(action: IActionQuerySourceIdentify): Promise {\n const source = action.querySourceUnidentified;\n if (source.type !== undefined && source.type !== 'rdfjs') {\n throw new Error(`${this.name} requires a single query source with rdfjs type to be present in the context.`);\n }\n if (typeof source.value === 'string' || !('match' in source.value)) {\n throw new Error(`${this.name} received an invalid rdfjs query source.`);\n }\n return true;\n }\n\n public async run(action: IActionQuerySourceIdentify): Promise {\n return {\n querySource: {\n source: new QuerySourceRdfJs(\n action.querySourceUnidentified.value,\n await BindingsFactory.create(this.mediatorMergeBindingsContext, action.context),\n ),\n context: action.querySourceUnidentified.context ?? new ActionContext(),\n },\n };\n }\n}\n\nexport interface IActorQuerySourceIdentifyRdfJsArgs extends IActorQuerySourceIdentifyArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type { BindingsFactory } from '@comunica/bindings-factory';\nimport { filterMatchingQuotedQuads, quadsToBindings } from '@comunica/bus-query-source-identify';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type { IQuerySource, BindingsStream, IActionContext, FragmentSelectorShape } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { AsyncIterator, wrap as wrapAsyncIterator } from 'asynciterator';\nimport { DataFactory } from 'rdf-data-factory';\nimport { someTermsNested, filterTermsNested, someTerms, uniqTerms } from 'rdf-terms';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { Factory } from 'sparqlalgebrajs';\nimport type { IRdfJsSourceExtended } from './IRdfJsSourceExtended';\n\nconst AF = new Factory();\nconst DF = new DataFactory();\n\nexport class QuerySourceRdfJs implements IQuerySource {\n protected static readonly SELECTOR_SHAPE: FragmentSelectorShape = {\n type: 'operation',\n operation: {\n operationType: 'pattern',\n pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o')),\n },\n variablesOptional: [\n DF.variable('s'),\n DF.variable('p'),\n DF.variable('o'),\n ],\n };\n\n public referenceValue: string | RDF.Source;\n protected readonly source: IRdfJsSourceExtended;\n private readonly bindingsFactory: BindingsFactory;\n\n public constructor(source: RDF.Source, bindingsFactory: BindingsFactory) {\n this.source = source;\n this.referenceValue = source;\n this.bindingsFactory = bindingsFactory;\n }\n\n public static nullifyVariables(term: RDF.Term | undefined, quotedTripleFiltering: boolean): RDF.Term | undefined {\n return !term || term.termType === 'Variable' || (!quotedTripleFiltering &&\n term.termType === 'Quad' && someTermsNested(term, value => value.termType === 'Variable')) ?\n undefined :\n term;\n }\n\n public static hasDuplicateVariables(pattern: RDF.BaseQuad): boolean {\n const variables = filterTermsNested(pattern, term => term.termType === 'Variable');\n return variables.length > 1 && uniqTerms(variables).length < variables.length;\n }\n\n public async getSelectorShape(): Promise {\n return QuerySourceRdfJs.SELECTOR_SHAPE;\n }\n\n public queryBindings(operation: Algebra.Operation, context: IActionContext): BindingsStream {\n if (operation.type !== 'pattern') {\n throw new Error(`Attempted to pass non-pattern operation '${operation.type}' to QuerySourceRdfJs`);\n }\n\n // Check if the source supports quoted triple filtering\n const quotedTripleFiltering = Boolean(this.source.features?.quotedTripleFiltering);\n\n // Create an async iterator from the matched quad stream\n const rawStream = this.source.match(\n QuerySourceRdfJs.nullifyVariables(operation.subject, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.predicate, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.object, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.graph, quotedTripleFiltering),\n );\n let it: AsyncIterator = rawStream instanceof AsyncIterator ?\n rawStream :\n wrapAsyncIterator(rawStream, { autoStart: false });\n\n // Perform post-match-filtering if the source does not support quoted triple filtering.\n if (!quotedTripleFiltering) {\n it = filterMatchingQuotedQuads(operation, it);\n }\n\n // Determine metadata\n if (!it.getProperty('metadata')) {\n this.setMetadata(it, operation)\n .catch(error => it.destroy(error));\n }\n\n return quadsToBindings(\n it,\n operation,\n this.bindingsFactory,\n Boolean(context.get(KeysQueryOperation.unionDefaultGraph)),\n );\n }\n\n protected async setMetadata(\n it: AsyncIterator,\n operation: Algebra.Pattern,\n ): Promise {\n // Check if the source supports quoted triple filtering\n const quotedTripleFiltering = Boolean(this.source.features?.quotedTripleFiltering);\n\n let cardinality: number;\n if (this.source.countQuads) {\n // If the source provides a dedicated method for determining cardinality, use that.\n cardinality = await this.source.countQuads(\n QuerySourceRdfJs.nullifyVariables(operation.subject, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.predicate, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.object, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.graph, quotedTripleFiltering),\n );\n } else {\n // Otherwise, fallback to a sub-optimal alternative where we just call match again to count the quads.\n // WARNING: we can NOT reuse the original data stream here,\n // because we may lose data elements due to things happening async.\n let i = 0;\n cardinality = await new Promise((resolve, reject) => {\n const matches = this.source.match(\n QuerySourceRdfJs.nullifyVariables(operation.subject, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.predicate, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.object, quotedTripleFiltering),\n QuerySourceRdfJs.nullifyVariables(operation.graph, quotedTripleFiltering),\n );\n matches.on('error', reject);\n matches.on('end', () => resolve(i));\n matches.on('data', () => i++);\n });\n }\n\n // If `match` would require filtering afterwards, our count will be an over-estimate.\n const wouldRequirePostFiltering = (!quotedTripleFiltering &&\n someTerms(operation, term => term.termType === 'Quad')) ||\n QuerySourceRdfJs.hasDuplicateVariables(operation);\n\n it.setProperty('metadata', {\n state: new MetadataValidationState(),\n cardinality: { type: wouldRequirePostFiltering ? 'estimate' : 'exact', value: cardinality },\n canContainUndefs: false,\n });\n }\n\n public queryQuads(\n _operation: Algebra.Operation,\n _context: IActionContext,\n ): AsyncIterator {\n throw new Error('queryQuads is not implemented in QuerySourceQpf');\n }\n\n public queryBoolean(\n _operation: Algebra.Ask,\n _context: IActionContext,\n ): Promise {\n throw new Error('queryBoolean is not implemented in QuerySourceQpf');\n }\n\n public queryVoid(\n _operation: Algebra.Update,\n _context: IActionContext,\n ): Promise {\n throw new Error('queryVoid is not implemented in QuerySourceQpf');\n }\n\n public toString(): string {\n return `QuerySourceRdfJs(${this.source.constructor.name})`;\n }\n}\n","import type {\n IActionQuerySourceIdentify,\n IActorQuerySourceIdentifyOutput,\n IActorQuerySourceIdentifyArgs,\n MediatorQuerySourceIdentify,\n} from '@comunica/bus-query-source-identify';\nimport { ActorQuerySourceIdentify } from '@comunica/bus-query-source-identify';\nimport type { IActionRdfParseHandle, MediatorRdfParseHandle } from '@comunica/bus-rdf-parse';\nimport type { IActorTest } from '@comunica/core';\nimport type {\n IQuerySourceSerialized,\n QuerySourceUnidentifiedExpanded,\n IActionContext,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { storeStream } from 'rdf-store-stream';\nimport { Readable } from 'readable-stream';\n\n/**\n * A comunica Serialized Query Source Identify Actor.\n */\nexport class ActorQuerySourceIdentifySerialized extends ActorQuerySourceIdentify {\n public readonly cacheSize: number;\n public readonly mediatorRdfParse: MediatorRdfParseHandle;\n public readonly mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;\n public constructor(args: IActorQuerySourceIdentifySerializedArgs) {\n super(args);\n }\n\n public async test(action: IActionQuerySourceIdentify): Promise {\n if (!this.isStringSource(action.querySourceUnidentified)) {\n throw new Error(`${this.name} requires a single query source with serialized type to be present in the context.`);\n }\n return true;\n }\n\n public async run(action: IActionQuerySourceIdentify): Promise {\n // Delegate source identification to the same bus again, by converting the string into an RDF/JS source\n return await this.mediatorQuerySourceIdentify.mediate({\n querySourceUnidentified: {\n type: 'rdfjs',\n value: await this.getRdfSource(action.context, action.querySourceUnidentified),\n context: action.querySourceUnidentified.context,\n },\n context: action.context,\n });\n }\n\n /**\n * Parses the string data source through the RDF parse bus, returning the RDF source.\n * @param context The run action context\n * @param source The source from the run action context\n * @returns Parsed RDF source that can be passed to quad pattern resolve mediator as an RDF/JS source\n */\n protected async getRdfSource(context: IActionContext, source: IQuerySourceSerialized): Promise {\n const textStream = new Readable({ objectMode: true });\n /* istanbul ignore next */\n textStream._read = () => {\n // Do nothing\n };\n textStream.push(source.value);\n textStream.push(null);\n\n const parseAction: IActionRdfParseHandle = {\n context,\n handle: {\n metadata: { baseIRI: source.baseIRI },\n data: textStream,\n context,\n },\n handleMediaType: source.mediaType,\n };\n\n const parseResult = await this.mediatorRdfParse.mediate(parseAction);\n return await storeStream(parseResult.handle.data);\n }\n\n private isStringSource(source: QuerySourceUnidentifiedExpanded): source is IQuerySourceSerialized {\n if (!('type' in source)) {\n if (!(typeof source.value === 'string')) {\n return false;\n }\n return 'mediaType' in source;\n }\n return source.type === 'serialized';\n }\n}\n\nexport interface IActorQuerySourceIdentifySerializedArgs extends IActorQuerySourceIdentifyArgs {\n /**\n * The quad pattern parser mediator.\n */\n mediatorRdfParse: MediatorRdfParseHandle;\n /**\n * The query source identify mediator.\n */\n mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;\n}\n","import type { IActionRdfJoinEntriesSort, IActorRdfJoinEntriesSortOutput } from '@comunica/bus-rdf-join-entries-sort';\nimport { ActorRdfJoinEntriesSort } from '@comunica/bus-rdf-join-entries-sort';\nimport type { IActorArgs, IActorTest } from '@comunica/core';\n\n/**\n * An actor that sorts join entries by increasing cardinality.\n */\nexport class ActorRdfJoinEntriesSortCardinality extends ActorRdfJoinEntriesSort {\n public constructor(\n args: IActorArgs,\n ) {\n super(args);\n }\n\n public async test(_action: IActionRdfJoinEntriesSort): Promise {\n return true;\n }\n\n public async run(action: IActionRdfJoinEntriesSort): Promise {\n const entries = [ ...action.entries ]\n .sort((entryLeft, entryRight) => entryLeft.metadata.cardinality.value - entryRight.metadata.cardinality.value);\n return { entries };\n }\n}\n","import type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { Bindings, MetadataBindings } from '@comunica/types';\nimport { HashJoin } from 'asyncjoin';\n\n/**\n * A comunica Hash RDF Join Actor.\n */\nexport class ActorRdfJoinHash extends ActorRdfJoin {\n public constructor(args: IActorRdfJoinArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'hash',\n limitEntries: 2,\n requiresVariableOverlap: true,\n });\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n let metadatas = await ActorRdfJoin.getMetadatas(action.entries);\n\n // Ensure the left build stream is the smallest\n if (metadatas[1].cardinality.value < metadatas[0].cardinality.value) {\n metadatas = [ metadatas[1], metadatas[0] ];\n action = { ...action, entries: [ action.entries[1], action.entries[0] ]};\n }\n\n const variables = ActorRdfJoin.overlappingVariables(metadatas);\n const join = new HashJoin(\n action.entries[0].output.bindingsStream,\n action.entries[1].output.bindingsStream,\n entry => ActorRdfJoin.hash(entry, variables),\n ActorRdfJoin.joinBindings,\n );\n return {\n result: {\n type: 'bindings',\n bindingsStream: join,\n metadata: async() => await this.constructResultMetadata(action.entries, metadatas, action.context),\n },\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n // Ensure the left build stream is the smallest\n if (metadatas[1].cardinality.value < metadatas[0].cardinality.value) {\n metadatas = [ metadatas[1], metadatas[0] ];\n }\n\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n return {\n iterations: metadatas[0].cardinality.value + metadatas[1].cardinality.value,\n persistedItems: metadatas[0].cardinality.value,\n blockingItems: metadatas[0].cardinality.value,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n };\n }\n}\n","import { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport type { IActionRdfJoin, IActorRdfJoinArgs, IActorRdfJoinOutputInner } from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin, ChunkedIterator } from '@comunica/bus-rdf-join';\nimport type { MediatorRdfJoinEntriesSort } from '@comunica/bus-rdf-join-entries-sort';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type {\n IJoinEntryWithMetadata,\n IQueryOperationResultBindings,\n IQuerySourceWrapper,\n MetadataBindings,\n IActionContext,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { UnionIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\nimport { Factory } from 'sparqlalgebrajs';\n\nconst AF = new Factory();\n\n/**\n * A comunica Inner Multi Bind Source RDF Join Actor.\n */\nexport class ActorRdfJoinMultiBindSource extends ActorRdfJoin {\n public readonly selectivityModifier: number;\n public readonly blockSize: number;\n public readonly mediatorJoinEntriesSort: MediatorRdfJoinEntriesSort;\n\n public constructor(args: IActorRdfJoinInnerMultiBindSourceArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'bind-source',\n canHandleUndefs: true,\n });\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n // Order the entries so we can pick the first one (usually the one with the lowest cardinality)\n const entriesUnsorted = await ActorRdfJoin.getEntriesWithMetadatas(action.entries);\n const entries = await this.sortJoinEntries(entriesUnsorted, action.context);\n\n this.logDebug(\n action.context,\n 'First entry for Bind Join Source: ',\n () => ({ entry: entries[0].operation, metadata: entries[0].metadata }),\n );\n\n // Close the non-smallest streams\n for (const [ i, element ] of entries.entries()) {\n if (i !== 0) {\n element.output.bindingsStream.close();\n }\n }\n\n // Take the stream with the lowest cardinality\n const smallestStream: IQueryOperationResultBindings = entries[0].output;\n const smallestMetadata = entries[0].metadata;\n const remainingEntries = [ ...entries ];\n remainingEntries.splice(0, 1);\n\n // Get source for remaining entries (guaranteed thanks to prior check in getJoinCoefficients())\n const sourceWrapper: IQuerySourceWrapper = ActorQueryOperation.getOperationSource(remainingEntries[0].operation)!;\n\n // Determine the operation to pass\n const operation = this.createOperationFromEntries(remainingEntries);\n\n // Slice the smallest stream into chunks according to the block size, so we avoid blocking too long.\n const chunkedStreams: AsyncIterator> = new ChunkedIterator(\n smallestStream.bindingsStream,\n this.blockSize,\n { autoStart: false },\n );\n\n // For each chunk, pass the query and the bindings to the source for execution\n const bindingsStream = new UnionIterator(chunkedStreams.map(chunk => sourceWrapper.source.queryBindings(\n operation,\n sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context,\n { joinBindings: { bindings: chunk, metadata: smallestMetadata }},\n )));\n\n return {\n result: {\n type: 'bindings',\n bindingsStream,\n metadata: () => this.constructResultMetadata(entries, entries.map(entry => entry.metadata), action.context),\n },\n physicalPlanMetadata: {\n bindIndex: entriesUnsorted.indexOf(entries[0]),\n },\n };\n }\n\n protected async sortJoinEntries(\n entries: IJoinEntryWithMetadata[],\n context: IActionContext,\n ): Promise {\n entries = await ActorRdfJoin.sortJoinEntries(this.mediatorJoinEntriesSort, entries, context);\n\n // Prioritize entries with modified operations, so these are not re-executed\n entries = entries.sort((entryLeft, entryRight) => {\n if (entryLeft.operationModified && !entryRight.operationModified) {\n return -1;\n }\n return 0;\n });\n\n return entries;\n }\n\n public async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n // Order the entries so we can pick the first one (usually the one with the lowest cardinality)\n const entries = await this.sortJoinEntries(action.entries\n .map((entry, i) => ({ ...entry, metadata: metadatas[i] })), action.context);\n metadatas = entries.map(entry => entry.metadata);\n\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n\n // Determine first stream and remaining ones\n const remainingEntries = [ ...entries ];\n const remainingRequestInitialTimes = [ ...requestInitialTimes ];\n const remainingRequestItemTimes = [ ...requestItemTimes ];\n remainingEntries.splice(0, 1);\n remainingRequestInitialTimes.splice(0, 1);\n remainingRequestItemTimes.splice(0, 1);\n\n // Reject binding on operations without sources\n const sources = remainingEntries.map(entry => ActorQueryOperation.getOperationSource(entry.operation));\n if (sources.some(source => !source)) {\n throw new Error(`Actor ${this.name} can not bind on remaining operations without source annotation`);\n }\n\n // Reject binding on operations with un-equal sources\n if (sources.some(source => source !== sources[0])) {\n throw new Error(`Actor ${this.name} can not bind on remaining operations with non-equal source annotation`);\n }\n\n // Reject if the source can not handle bindings\n const sourceWrapper: IQuerySourceWrapper = sources[0]!;\n const testingOperation = this.createOperationFromEntries(remainingEntries);\n const selectorShape = await sourceWrapper.source.getSelectorShape(action.context);\n if (!ActorQueryOperation\n .doesShapeAcceptOperation(selectorShape, testingOperation, { joinBindings: true })) {\n throw new Error(`Actor ${this.name} detected a source that can not handle passing down join bindings`);\n }\n\n // Determine selectivities of smallest entry with all other entries\n const selectivities = await Promise.all(remainingEntries\n .map(async entry => (await this.mediatorJoinSelectivity.mediate({\n entries: [ entries[0], entry ],\n context: action.context,\n })).selectivity * this.selectivityModifier));\n\n // Determine coefficients for remaining entries\n const cardinalityRemaining = remainingEntries\n .map((entry, i) => entry.metadata.cardinality.value * selectivities[i])\n .reduce((sum, element) => sum + element, 0);\n\n return {\n iterations: 1,\n persistedItems: metadatas[0].cardinality.value,\n blockingItems: metadatas[0].cardinality.value,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + cardinalityRemaining * requestItemTimes[1],\n };\n }\n\n public createOperationFromEntries(remainingEntries: IJoinEntryWithMetadata[]): Algebra.Operation {\n if (remainingEntries.length === 1) {\n return remainingEntries[0].operation;\n }\n return AF.createJoin(remainingEntries.map(entry => entry.operation), true);\n }\n}\n\nexport interface IActorRdfJoinInnerMultiBindSourceArgs extends IActorRdfJoinArgs {\n /**\n * Multiplier for selectivity values\n * @range {double}\n * @default {0.0001}\n */\n selectivityModifier: number;\n /**\n * The maximum amount of bindings to send to the source per block.\n * @default {16}\n */\n blockSize: number;\n /**\n * The join entries sort mediator\n */\n mediatorJoinEntriesSort: MediatorRdfJoinEntriesSort;\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { MediatorQueryOperation } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation, materializeOperation } from '@comunica/bus-query-operation';\nimport type {\n IActionRdfJoin,\n IActorRdfJoinOutputInner,\n IActorRdfJoinArgs,\n} from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { MediatorRdfJoinEntriesSort } from '@comunica/bus-rdf-join-entries-sort';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { Bindings, BindingsStream, IQueryOperationResultBindings, MetadataBindings } from '@comunica/types';\nimport { MultiTransformIterator, TransformIterator, UnionIterator } from 'asynciterator';\nimport { Factory, Algebra, Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Multi-way Bind RDF Join Actor.\n */\nexport class ActorRdfJoinMultiBind extends ActorRdfJoin {\n public readonly bindOrder: BindOrder;\n public readonly selectivityModifier: number;\n public readonly minMaxCardinalityRatio: number;\n public readonly mediatorJoinEntriesSort: MediatorRdfJoinEntriesSort;\n public readonly mediatorQueryOperation: MediatorQueryOperation;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public static readonly FACTORY = new Factory();\n\n public constructor(args: IActorRdfJoinMultiBindArgs) {\n // TODO: remove this fallback in the next major update\n if (args.minMaxCardinalityRatio === undefined) {\n args.minMaxCardinalityRatio = 50;\n }\n super(args, {\n logicalType: 'inner',\n physicalName: 'bind',\n canHandleUndefs: true,\n isLeaf: false,\n });\n }\n\n /**\n * Create a new bindings stream that takes every binding of the base stream\n * and binds it to the remaining patterns, evaluates those patterns, and emits all their bindings.\n *\n * @param bindOrder The order in which elements should be bound.\n * @param baseStream The base stream.\n * @param operations The operations to bind with each binding of the base stream.\n * @param operationBinder A callback to retrieve the bindings stream of bound operations.\n * @param optional If the original bindings should be emitted when the resulting bindings stream is empty.\n * @return {BindingsStream}\n */\n public static createBindStream(\n bindOrder: BindOrder,\n baseStream: BindingsStream,\n operations: Algebra.Operation[],\n operationBinder: (boundOperations: Algebra.Operation[], operationBindings: Bindings)\n => Promise,\n optional: boolean,\n bindingsFactory: BindingsFactory,\n ): BindingsStream {\n // Enable auto-start on sub-bindings during depth-first binding for best performance.\n const autoStartSubBindings = bindOrder === 'depth-first';\n\n // Create bindings function\n const binder = (bindings: Bindings): BindingsStream => {\n // We don't bind the filter because filters are always handled last,\n // and we need to avoid binding filters of sub-queries, which are to be handled first. (see spec test bind10)\n const subOperations = operations\n .map(operation => materializeOperation(operation, bindings, bindingsFactory, { bindFilter: true }));\n const bindingsMerger = (subBindings: Bindings): Bindings | undefined => subBindings.merge(bindings);\n return new TransformIterator(async() => (await operationBinder(subOperations, bindings))\n .transform({ map: bindingsMerger }), { maxBufferSize: 128, autoStart: autoStartSubBindings });\n };\n\n // Create an iterator that binds elements from the base stream in different orders\n switch (bindOrder) {\n case 'depth-first':\n return new MultiTransformIterator(baseStream, { autoStart: false, multiTransform: binder, optional });\n case 'breadth-first':\n return new UnionIterator(baseStream.transform({\n map: binder,\n optional,\n }), { autoStart: false });\n default:\n // eslint-disable-next-line ts/restrict-template-expressions\n throw new Error(`Received request for unknown bind order: ${bindOrder}`);\n }\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, action.context);\n\n // Order the entries so we can pick the first one (usually the one with the lowest cardinality)\n const entriesUnsorted = await ActorRdfJoin.getEntriesWithMetadatas(action.entries);\n const entries = await ActorRdfJoin.sortJoinEntries(this.mediatorJoinEntriesSort, entriesUnsorted, action.context);\n\n this.logDebug(\n action.context,\n 'First entry for Bind Join: ',\n () => ({ entry: entries[0].operation, metadata: entries[0].metadata }),\n );\n\n // Close the non-smallest streams\n for (const [ i, element ] of entries.entries()) {\n if (i !== 0) {\n element.output.bindingsStream.close();\n }\n }\n\n // Take the stream with the lowest cardinality\n const smallestStream: IQueryOperationResultBindings = entries[0].output;\n const remainingEntries = [ ...entries ];\n remainingEntries.splice(0, 1);\n\n // Bind the remaining patterns for each binding in the stream\n const subContext = action.context\n .set(KeysQueryOperation.joinLeftMetadata, entries[0].metadata)\n .set(KeysQueryOperation.joinRightMetadatas, remainingEntries.map(entry => entry.metadata));\n const bindingsStream: BindingsStream = ActorRdfJoinMultiBind.createBindStream(\n this.bindOrder,\n smallestStream.bindingsStream,\n remainingEntries.map(entry => entry.operation),\n async(operations: Algebra.Operation[], operationBindings: Bindings) => {\n // Send the materialized patterns to the mediator for recursive join evaluation.\n const operation = operations.length === 1 ?\n operations[0] :\n ActorRdfJoinMultiBind.FACTORY.createJoin(operations);\n const output = ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate(\n { operation, context: subContext?.set(KeysQueryOperation.joinBindings, operationBindings) },\n ));\n return output.bindingsStream;\n },\n false,\n bindingsFactory,\n );\n\n return {\n result: {\n type: 'bindings',\n bindingsStream,\n metadata: () => this.constructResultMetadata(entries, entries.map(entry => entry.metadata), action.context),\n },\n physicalPlanMetadata: {\n bindIndex: entriesUnsorted.indexOf(entries[0]),\n bindOperation: entries[0].operation,\n bindOperationCardinality: entries[0].metadata.cardinality,\n bindOrder: this.bindOrder,\n },\n };\n }\n\n public canBindWithOperation(operation: Algebra.Operation): boolean {\n let valid = true;\n Util.recurseOperation(operation, {\n [Algebra.types.EXTEND](): boolean {\n valid = false;\n return false;\n },\n [Algebra.types.GROUP](): boolean {\n valid = false;\n return false;\n },\n });\n\n return valid;\n }\n\n public async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n // Order the entries so we can pick the first one (usually the one with the lowest cardinality)\n const entries = await ActorRdfJoin.sortJoinEntries(this.mediatorJoinEntriesSort, action.entries\n .map((entry, i) => ({ ...entry, metadata: metadatas[i] })), action.context);\n metadatas = entries.map(entry => entry.metadata);\n\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n\n // Determine first stream and remaining ones\n const remainingEntries = [ ...entries ];\n const remainingRequestInitialTimes = [ ...requestInitialTimes ];\n const remainingRequestItemTimes = [ ...requestItemTimes ];\n remainingEntries.splice(0, 1);\n remainingRequestInitialTimes.splice(0, 1);\n remainingRequestItemTimes.splice(0, 1);\n\n // Reject binding on some operation types\n if (remainingEntries\n .some(entry => !this.canBindWithOperation(entry.operation))) {\n throw new Error(`Actor ${this.name} can not bind on Extend and Group operations`);\n }\n\n // Reject binding on modified operations, since using the output directly would be significantly more efficient.\n if (remainingEntries.some(entry => entry.operationModified)) {\n throw new Error(`Actor ${this.name} can not be used over remaining entries with modified operations`);\n }\n\n // Only run this actor if the smallest stream is significantly smaller than the largest stream.\n // We must use Math.max, because the last metadata is not necessarily the biggest, but it's the least preferred.\n if (metadatas[0].cardinality.value * this.minMaxCardinalityRatio >\n Math.max(...metadatas.map(metadata => metadata.cardinality.value))) {\n throw new Error(`Actor ${this.name} can only run if the smallest stream is much smaller than largest stream`);\n }\n\n // Determine selectivities of smallest entry with all other entries\n const selectivities = await Promise.all(remainingEntries\n .map(async entry => (await this.mediatorJoinSelectivity.mediate({\n entries: [ entries[0], entry ],\n context: action.context,\n })).selectivity * this.selectivityModifier));\n\n // Determine coefficients for remaining entries\n const cardinalityRemaining = remainingEntries\n .map((entry, i) => entry.metadata.cardinality.value * selectivities[i])\n .reduce((sum, element) => sum + element, 0);\n const receiveInitialCostRemaining = remainingRequestInitialTimes\n .reduce((sum, element) => sum + element, 0);\n const receiveItemCostRemaining = remainingRequestItemTimes\n .reduce((sum, element) => sum + element, 0);\n\n return {\n iterations: metadatas[0].cardinality.value * cardinalityRemaining,\n persistedItems: 0,\n blockingItems: 0,\n requestTime: requestInitialTimes[0] +\n metadatas[0].cardinality.value * (\n requestItemTimes[0] +\n receiveInitialCostRemaining +\n cardinalityRemaining * receiveItemCostRemaining\n ),\n };\n }\n}\n\nexport interface IActorRdfJoinMultiBindArgs extends IActorRdfJoinArgs {\n /**\n * The order in which elements should be bound\n * @default {depth-first}\n */\n bindOrder: BindOrder;\n /**\n * Multiplier for selectivity values\n * @range {double}\n * @default {0.0001}\n */\n selectivityModifier: number;\n /**\n * The number of times the smallest cardinality should fit in the maximum cardinality.\n * @range {double}\n * @default {50}\n */\n minMaxCardinalityRatio?: number;\n /**\n * The join entries sort mediator\n */\n mediatorJoinEntriesSort: MediatorRdfJoinEntriesSort;\n /**\n * The query operation mediator\n */\n mediatorQueryOperation: MediatorQueryOperation;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n\nexport type BindOrder = 'depth-first' | 'breadth-first';\n","import type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type { MetadataBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { ArrayIterator } from 'asynciterator';\n\n/**\n * A comunica Multi Empty RDF Join Actor.\n */\nexport class ActorRdfJoinMultiEmpty extends ActorRdfJoin {\n public constructor(args: IActorRdfJoinArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'multi-empty',\n canHandleUndefs: true,\n });\n }\n\n public override async test(action: IActionRdfJoin): Promise {\n if ((await ActorRdfJoin.getMetadatas(action.entries))\n .every(metadata => ActorRdfJoin.getCardinality(metadata).value > 0)) {\n throw new Error(`Actor ${this.name} can only join entries where at least one is empty`);\n }\n return super.test(action);\n }\n\n protected override async getOutput(action: IActionRdfJoin): Promise {\n // Close all entries\n for (const entry of action.entries) {\n entry.output.bindingsStream.close();\n }\n\n return {\n result: {\n bindingsStream: new ArrayIterator([], { autoStart: false }),\n metadata: async() => ({\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: 0 },\n canContainUndefs: false,\n variables: ActorRdfJoin.joinVariables(await ActorRdfJoin.getMetadatas(action.entries)),\n }),\n type: 'bindings',\n },\n };\n }\n\n protected async getJoinCoefficients(\n _action: IActionRdfJoin,\n _metadatas: MetadataBindings[],\n ): Promise {\n return {\n iterations: 0,\n persistedItems: 0,\n blockingItems: 0,\n requestTime: 0,\n };\n }\n}\n","import { bindingsToString } from '@comunica/bindings-factory';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport type {\n IActionRdfJoin,\n IActorRdfJoinArgs,\n MediatorRdfJoin,\n IActorRdfJoinOutputInner,\n} from '@comunica/bus-rdf-join';\nimport { ChunkedIterator, ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { MediatorRdfJoinEntriesSort } from '@comunica/bus-rdf-join-entries-sort';\nimport { KeysRdfJoin } from '@comunica/context-entries';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type {\n BindingsStream,\n IActionContext,\n IJoinEntry,\n IJoinEntryWithMetadata,\n IQuerySourceWrapper,\n MetadataBindings,\n} from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { UnionIterator } from 'asynciterator';\nimport { Factory } from 'sparqlalgebrajs';\n\n/**\n * A comunica Inner Multi Smallest Filter Bindings RDF Join Actor.\n */\nexport class ActorRdfJoinMultiSmallestFilterBindings extends ActorRdfJoin {\n public readonly selectivityModifier: number;\n public readonly blockSize: number;\n public readonly mediatorJoinEntriesSort: MediatorRdfJoinEntriesSort;\n public readonly mediatorJoin: MediatorRdfJoin;\n\n public static readonly FACTORY = new Factory();\n public constructor(args: IActorRdfJoinMultiSmallestFilterBindingsArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'multi-smallest-filter-bindings',\n limitEntries: 2,\n limitEntriesMin: true,\n isLeaf: false,\n });\n }\n\n /**\n * Order the given join entries using the join-entries-sort bus.\n * @param {IJoinEntryWithMetadata[]} entries An array of join entries.\n * @param context The action context.\n * @return {IJoinEntryWithMetadata[]} The sorted join entries.\n */\n public async sortJoinEntries(\n entries: IJoinEntryWithMetadata[],\n context: IActionContext,\n ): Promise<{ first: IJoinEntryWithMetadata; second: IJoinEntryWithMetadata; remaining: IJoinEntryWithMetadata[] }> {\n let { entries: entriesSorted } = await this.mediatorJoinEntriesSort.mediate({ entries, context });\n\n // Prioritize entries with modified operations, so these are not re-executed\n entriesSorted = entriesSorted.sort((entryLeft, entryRight) => {\n if (entryLeft.operationModified && !entryRight.operationModified) {\n return -1;\n }\n return 0;\n });\n\n const first = entriesSorted.splice(0, 1)[0];\n\n // Let second entry first be prioritized for sharing as many variables with first as possible,\n // then having the fewest variables,\n // and then having the lowest cardinality.\n let second: IJoinEntryWithMetadata | undefined;\n let secondIndex = -1;\n let secondSharedVariables = 0;\n for (const [ i, entry ] of entriesSorted.entries()) {\n const sharedVariables = first.metadata.variables\n .filter(variableFirst => entry.metadata.variables\n .some(variableSecond => variableFirst.equals(variableSecond))).length;\n if (!second || (sharedVariables > secondSharedVariables ||\n (sharedVariables === secondSharedVariables &&\n (entry.metadata.variables.length < second.metadata.variables.length ||\n (entry.metadata.variables.length === second.metadata.variables.length &&\n entry.metadata.cardinality.value < second.metadata.cardinality.value))))) {\n second = entry;\n secondIndex = i;\n secondSharedVariables = sharedVariables;\n }\n }\n\n if (secondSharedVariables === 0) {\n throw new Error(`Actor ${this.name} can only join with common variables`);\n }\n\n const remaining = entriesSorted;\n remaining.splice(secondIndex, 1);\n return { first, second: second!, remaining };\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n // Determine the two smallest streams by sorting (e.g. via cardinality)\n const entriesUnsorted = await ActorRdfJoin.getEntriesWithMetadatas([ ...action.entries ]);\n const { first, second: secondIn, remaining: remainingIn } = await this.sortJoinEntries(\n entriesUnsorted,\n action.context,\n );\n\n // Clone first stream, because we will use it twice\n const smallestStream1 = first.output.bindingsStream;\n first.output.bindingsStream = smallestStream1.clone();\n\n // Project the first stream on common variables, and filter out duplicates\n // The common variables array is guaranteed to be non-empty, due to the way the test of this actor is implemented.\n const commonVariables = first.metadata.variables\n .filter(variableFirst => secondIn.metadata.variables\n .some(variableSecond => variableFirst.equals(variableSecond)));\n const hashes: Record = {};\n const smallestStream1Projected: BindingsStream = smallestStream1.clone()\n .map(binding => binding.filter((value, key) =>\n commonVariables.some(commonVariable => commonVariable.equals(key))))\n .filter((binding) => {\n const hash: string = bindingsToString(binding);\n return !(hash in hashes) && (hashes[hash] = true);\n });\n\n // Slice the first stream into chunks according to the block size, so we avoid blocking too long.\n const chunkedStreams: AsyncIterator> = new ChunkedIterator(\n smallestStream1Projected,\n this.blockSize,\n { autoStart: false },\n );\n\n // Push down bindings of first stream when querying for second stream\n const sourceWrapper: IQuerySourceWrapper = ActorQueryOperation.getOperationSource(secondIn.operation)!;\n const secondStream = new UnionIterator(chunkedStreams.map(chunk => sourceWrapper.source.queryBindings(\n secondIn.operation,\n sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context,\n { filterBindings: { bindings: chunk, metadata: first.metadata }},\n )));\n const second: IJoinEntry = {\n output: {\n type: 'bindings',\n bindingsStream: secondStream,\n metadata: secondIn.output.metadata,\n },\n operation: secondIn.operation,\n operationModified: true,\n };\n\n // Destroy the unused original second stream\n secondIn.output.bindingsStream.destroy();\n\n // Join the two selected streams\n const joinedEntry: IJoinEntry = {\n output: ActorQueryOperation.getSafeBindings(await this.mediatorJoin\n .mediate({\n type: action.type,\n entries: [ first, second ],\n context: action.context.set(KeysRdfJoin.lastPhysicalJoin, this.physicalName),\n })),\n operation: ActorRdfJoinMultiSmallestFilterBindings.FACTORY\n .createJoin([ first.operation, second.operation ], false),\n operationModified: true,\n };\n\n // And then join the result with the remaining streams\n const remaining: IJoinEntry[] = remainingIn;\n remaining.unshift(joinedEntry);\n\n return {\n result: await this.mediatorJoin.mediate({\n type: action.type,\n entries: remaining,\n context: action.context,\n }),\n physicalPlanMetadata: {\n firstIndex: entriesUnsorted.indexOf(first),\n secondIndex: entriesUnsorted.indexOf(secondIn),\n },\n };\n }\n\n public async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n // Avoid infinite recursion\n if (action.context.get(KeysRdfJoin.lastPhysicalJoin) === this.physicalName) {\n throw new Error(`Actor ${this.name} can not be called recursively`);\n }\n\n metadatas = [ ...metadatas ];\n // Determine the two smallest streams by sorting (e.g. via cardinality)\n const { first, second, remaining } = await this.sortJoinEntries(action.entries\n .map((entry, i) => ({ ...entry, metadata: metadatas[i] })), action.context);\n\n // Only pass if the second entry accepts filterBindings\n const sourceWrapper: IQuerySourceWrapper | undefined = ActorQueryOperation.getOperationSource(second.operation);\n if (!sourceWrapper) {\n throw new Error(`Actor ${this.name} can only process if entries[1] has a source`);\n }\n const testingOperation = second.operation;\n const selectorShape = await sourceWrapper.source.getSelectorShape(action.context);\n if (!ActorQueryOperation\n .doesShapeAcceptOperation(selectorShape, testingOperation, { filterBindings: true })) {\n throw new Error(`Actor ${this.name} can only process if entries[1] accept filterBindings`);\n }\n\n // Determine cost coefficients\n metadatas = [ first.metadata, second.metadata, ...remaining.map(remain => remain.metadata) ];\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n const { selectivity } = await this.mediatorJoinSelectivity.mediate({\n entries: [ first, second ],\n context: action.context,\n });\n const cardinalityRemaining = remaining\n .reduce((mul, remain) => mul * remain.metadata.cardinality.value * this.selectivityModifier, 1);\n\n return {\n iterations: selectivity * this.selectivityModifier *\n second.metadata.cardinality.value * cardinalityRemaining,\n persistedItems: first.metadata.cardinality.value,\n blockingItems: first.metadata.cardinality.value,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + cardinalityRemaining * requestItemTimes[1],\n };\n }\n}\n\nexport interface IActorRdfJoinMultiSmallestFilterBindingsArgs extends IActorRdfJoinArgs {\n /**\n * Multiplier for selectivity values\n * @range {double}\n * @default {0.0001}\n */\n selectivityModifier: number;\n /**\n * The maximum amount of bindings to send to the source per block.\n * @default {64}\n */\n blockSize: number;\n /**\n * The join entries sort mediator\n */\n mediatorJoinEntriesSort: MediatorRdfJoinEntriesSort;\n /**\n * A mediator for joining Bindings streams\n */\n mediatorJoin: MediatorRdfJoin;\n}\n","import {\n ActorQueryOperation,\n} from '@comunica/bus-query-operation';\nimport type {\n IActionRdfJoin,\n IActorRdfJoinOutputInner,\n IActorRdfJoinArgs,\n MediatorRdfJoin,\n} from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { MediatorRdfJoinEntriesSort } from '@comunica/bus-rdf-join-entries-sort';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { MetadataBindings, IJoinEntry, IActionContext, IJoinEntryWithMetadata } from '@comunica/types';\nimport { Factory } from 'sparqlalgebrajs';\n\n/**\n * A Multi Smallest RDF Join Actor.\n * It accepts 3 or more streams, joins the smallest two, and joins the result with the remaining streams.\n */\nexport class ActorRdfJoinMultiSmallest extends ActorRdfJoin {\n public readonly mediatorJoinEntriesSort: MediatorRdfJoinEntriesSort;\n public readonly mediatorJoin: MediatorRdfJoin;\n\n public static readonly FACTORY = new Factory();\n\n public constructor(args: IActorRdfJoinMultiSmallestArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'multi-smallest',\n limitEntries: 3,\n limitEntriesMin: true,\n canHandleUndefs: true,\n isLeaf: false,\n });\n }\n\n /**\n * Order the given join entries using the join-entries-sort bus.\n * @param {IJoinEntryWithMetadata[]} entries An array of join entries.\n * @param context The action context.\n * @return {IJoinEntryWithMetadata[]} The sorted join entries.\n */\n public async sortJoinEntries(\n entries: IJoinEntryWithMetadata[],\n context: IActionContext,\n ): Promise {\n return (await this.mediatorJoinEntriesSort.mediate({ entries, context })).entries;\n }\n\n protected async getOutput(action: IActionRdfJoin): Promise {\n // Determine the two smallest streams by sorting (e.g. via cardinality)\n const entries: IJoinEntry[] = await this.sortJoinEntries(\n await ActorRdfJoin.getEntriesWithMetadatas([ ...action.entries ]),\n action.context,\n );\n const smallestEntry1 = entries[0];\n const smallestEntry2 = entries[1];\n entries.splice(0, 2);\n\n // Join the two selected streams, and then join the result with the remaining streams\n const firstEntry: IJoinEntry = {\n output: ActorQueryOperation.getSafeBindings(await this.mediatorJoin\n .mediate({ type: action.type, entries: [ smallestEntry1, smallestEntry2 ], context: action.context })),\n operation: ActorRdfJoinMultiSmallest.FACTORY\n .createJoin([ smallestEntry1.operation, smallestEntry2.operation ], false),\n };\n entries.push(firstEntry);\n return {\n result: await this.mediatorJoin.mediate({\n type: action.type,\n entries,\n context: action.context,\n }),\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n metadatas = [ ...metadatas ];\n // Determine the two smallest streams by sorting (e.g. via cardinality)\n const entriesWithMetadata = await this.sortJoinEntries(action.entries\n .map((entry, i) => ({ ...entry, metadata: metadatas[i] })), action.context);\n metadatas = entriesWithMetadata.map(entry => entry.metadata);\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n\n return {\n iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value *\n metadatas.slice(2).reduce((acc, metadata) => acc * metadata.cardinality.value, 1),\n persistedItems: 0,\n blockingItems: 0,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1] +\n metadatas.slice(2).reduce((sum, metadata, i) => sum + requestInitialTimes.slice(2)[i] +\n metadata.cardinality.value * requestItemTimes.slice(2)[i], 0),\n };\n }\n}\n\nexport interface IActorRdfJoinMultiSmallestArgs extends IActorRdfJoinArgs {\n /**\n * The join entries sort mediator\n */\n mediatorJoinEntriesSort: MediatorRdfJoinEntriesSort;\n /**\n * A mediator for joining Bindings streams\n */\n mediatorJoin: MediatorRdfJoin;\n}\n","import type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { Bindings, MetadataBindings } from '@comunica/types';\nimport { NestedLoopJoin } from 'asyncjoin';\n\n/**\n * A comunica NestedLoop RDF Join Actor.\n */\nexport class ActorRdfJoinNestedLoop extends ActorRdfJoin {\n public constructor(args: IActorRdfJoinArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'nested-loop',\n limitEntries: 2,\n canHandleUndefs: true,\n });\n }\n\n protected async getOutput(action: IActionRdfJoin): Promise {\n const join = new NestedLoopJoin(\n action.entries[0].output.bindingsStream,\n action.entries[1].output.bindingsStream,\n ActorRdfJoin.joinBindings,\n { autoStart: false },\n );\n return {\n result: {\n type: 'bindings',\n bindingsStream: join,\n metadata: async() => await this.constructResultMetadata(\n action.entries,\n await ActorRdfJoin.getMetadatas(action.entries),\n action.context,\n ),\n },\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n return {\n iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value,\n persistedItems: 0,\n blockingItems: 0,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n };\n }\n}\n","import { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport { MetadataValidationState } from '@comunica/metadata';\nimport type * as RDF from '@rdfjs/types';\nimport { ArrayIterator } from 'asynciterator';\n\n/**\n * A comunica None RDF Join Actor.\n */\nexport class ActorRdfJoinNone extends ActorRdfJoin {\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorRdfJoinNoneArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'none',\n limitEntries: 0,\n });\n }\n\n public override async test(action: IActionRdfJoin): Promise {\n // Allow joining of one or zero streams\n if (action.entries.length > 0) {\n throw new Error(`Actor ${this.name} can only join zero entries`);\n }\n return await this.getJoinCoefficients();\n }\n\n protected async getOutput(action: IActionRdfJoin): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, action.context);\n return {\n result: {\n bindingsStream: new ArrayIterator([ bindingsFactory.bindings() ], { autoStart: false }),\n metadata: () => Promise.resolve({\n state: new MetadataValidationState(),\n cardinality: { type: 'exact', value: 1 },\n canContainUndefs: false,\n variables: [],\n }),\n type: 'bindings',\n },\n };\n }\n\n protected async getJoinCoefficients(): Promise {\n return {\n iterations: 0,\n persistedItems: 0,\n blockingItems: 0,\n requestTime: 0,\n };\n }\n}\n\nexport interface IActorRdfJoinNoneArgs extends IActorRdfJoinArgs {\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n}\n","import type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\n\n/**\n * A comunica Single RDF Join Actor.\n */\nexport class ActorRdfJoinSingle extends ActorRdfJoin {\n public constructor(args: IActorRdfJoinArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'single',\n limitEntries: 1,\n });\n this.includeInLogs = false;\n }\n\n public override async test(action: IActionRdfJoin): Promise {\n // Allow joining of one or zero streams\n if (action.entries.length !== 1) {\n throw new Error(`Actor ${this.name} can only join a single entry`);\n }\n return await this.getJoinCoefficients();\n }\n\n protected async getOutput(action: IActionRdfJoin): Promise {\n return {\n result: action.entries[0].output,\n };\n }\n\n protected async getJoinCoefficients(): Promise {\n return {\n iterations: 0,\n persistedItems: 0,\n blockingItems: 0,\n requestTime: 0,\n };\n }\n}\n","import type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { Bindings, MetadataBindings } from '@comunica/types';\nimport { SymmetricHashJoin } from 'asyncjoin';\n\n/**\n * A comunica Hash RDF Join Actor.\n */\nexport class ActorRdfJoinSymmetricHash extends ActorRdfJoin {\n public constructor(args: IActorRdfJoinSymmetricHashArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'symmetric-hash',\n limitEntries: 2,\n requiresVariableOverlap: true,\n });\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n const metadatas = await ActorRdfJoin.getMetadatas(action.entries);\n const variables = ActorRdfJoin.overlappingVariables(metadatas);\n const join = new SymmetricHashJoin(\n action.entries[0].output.bindingsStream,\n action.entries[1].output.bindingsStream,\n entry => ActorRdfJoinSymmetricHash.hash(entry, variables),\n ActorRdfJoin.joinBindings,\n );\n return {\n result: {\n type: 'bindings',\n bindingsStream: join,\n metadata: async() => await this.constructResultMetadata(action.entries, metadatas, action.context),\n },\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n return {\n iterations: metadatas[0].cardinality.value + metadatas[1].cardinality.value,\n persistedItems: metadatas[0].cardinality.value + metadatas[1].cardinality.value,\n blockingItems: 0,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n };\n }\n}\n\nexport interface IActorRdfJoinSymmetricHashArgs extends IActorRdfJoinArgs {\n}\n","import { ClosableTransformIterator } from '@comunica/bus-query-operation';\nimport type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport {\n ActorRdfJoin,\n} from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { MetadataBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { BindingsIndex } from './BindingsIndex';\n\n/**\n * A comunica Minus Hash RDF Join Actor.\n */\nexport class ActorRdfJoinMinusHashUndef extends ActorRdfJoin {\n public constructor(args: IActorRdfJoinArgs) {\n super(args, {\n logicalType: 'minus',\n physicalName: 'hash-undef',\n limitEntries: 2,\n canHandleUndefs: true,\n });\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n const buffer = action.entries[1].output;\n const output = action.entries[0].output;\n\n const metadatas = await ActorRdfJoin.getMetadatas(action.entries);\n const commonVariables: RDF.Variable[] = ActorRdfJoin.overlappingVariables(metadatas);\n if (commonVariables.length > 0) {\n /**\n * To assure we've filtered all B (`buffer`) values from A (`output`) we wait until we've fetched all values of B.\n * Then we save these triples in `index` and use it to filter our A-stream.\n */\n const index: BindingsIndex = new BindingsIndex(commonVariables);\n const bindingsStream = new ClosableTransformIterator(async() => {\n await new Promise((resolve) => {\n buffer.bindingsStream.on('data', data => index.add(data));\n buffer.bindingsStream.on('end', resolve);\n buffer.bindingsStream.on('error', (error) => {\n bindingsStream.emit('error', error);\n });\n });\n return output.bindingsStream.filter(data => !index.contains(data));\n }, {\n autoStart: false,\n onClose() {\n buffer.bindingsStream.destroy();\n output.bindingsStream.destroy();\n },\n });\n return {\n result: {\n type: 'bindings',\n bindingsStream,\n async metadata() {\n const bufferMetadata = await output.metadata();\n const outputMetadata = await output.metadata();\n return {\n ...outputMetadata,\n canContainUndefs: bufferMetadata.canContainUndefs || outputMetadata.canContainUndefs,\n };\n },\n },\n };\n }\n // Destroy the buffer stream since it is not needed when\n // there are no common variables.\n buffer.bindingsStream.destroy();\n return {\n result: output,\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n return {\n // Slightly increase iteration cost, as operations in our BindingsIndex do not happen in constant time\n // This enables the mediator to favor other minus actors,\n // while this one will only be selected when streams contain undefs.\n iterations: (metadatas[0].cardinality.value + metadatas[1].cardinality.value) * 1.01,\n persistedItems: metadatas[0].cardinality.value,\n blockingItems: metadatas[0].cardinality.value,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n };\n }\n}\n","import type { Bindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { termToString } from 'rdf-string';\n\n/**\n * A simple efficient tree-based index for maintaining bindings,\n * and checking whether or not a bindings is contained in this index.\n *\n * This will consider bindings with a variable term or a missing term\n * as a 'match-all' with other terms.\n */\nexport class BindingsIndex {\n private readonly keys: RDF.Variable[];\n private readonly data: IDataIndex = {};\n\n public constructor(keys: RDF.Variable[]) {\n this.keys = keys;\n }\n\n protected static hashTerm(term: RDF.Term | undefined): string {\n return term && term.termType !== 'Variable' ? termToString(term) : '';\n }\n\n /**\n * Add the given bindings to the index.\n * @param {Bindings} bindings A bindings.\n */\n public add(bindings: Bindings): void {\n if (this.isBindingsValid(bindings)) {\n let dataIt = this.data;\n for (const key of this.keys) {\n const dataKey = BindingsIndex.hashTerm(bindings.get(key));\n let subDataIt = dataIt[dataKey];\n if (!subDataIt) {\n subDataIt = dataIt[dataKey] = {};\n }\n dataIt = subDataIt;\n }\n }\n }\n\n /**\n * Check if the given bindings is contained in this index.\n * @param {Bindings} bindings A bindings.\n * @return {boolean} If it exists in the index.\n */\n public contains(bindings: Bindings): boolean {\n // Always return false if the bindings contain none of the expected keys\n if (!this.isBindingsValid(bindings)) {\n return false;\n }\n\n return this.containsRecursive(bindings, this.keys, [ this.data ]);\n }\n\n protected isBindingsValid(bindings: Bindings): boolean {\n let validKeys = false;\n for (const key of this.keys) {\n if (bindings.get(key)) {\n validKeys = true;\n break;\n }\n }\n return validKeys;\n }\n\n protected containsRecursive(bindings: Bindings, keys: RDF.Variable[], dataIndexes: IDataIndex[]): boolean {\n if (keys.length === 0) {\n return true;\n }\n\n let key: RDF.Variable;\n // eslint-disable-next-line prefer-const\n [ key, ...keys ] = keys;\n for (const data of dataIndexes) {\n // If the index contained a variable, all terms will match.\n const dataKey = BindingsIndex.hashTerm(bindings.get(key));\n if (dataKey) {\n // Check the entry for the term, and the variable term.\n const subDatas = [ data[dataKey], data[''] ].filter(Boolean);\n if (subDatas.length === 0) {\n continue;\n }\n if (this.containsRecursive(bindings, keys, subDatas)) {\n return true;\n }\n } else {\n // Iterate over all entries\n let subDatas = Object.keys(data).map(subKey => data[subKey]);\n if (subDatas.length === 0) {\n subDatas = [{}];\n }\n if (this.containsRecursive(bindings, keys, subDatas)) {\n return true;\n }\n }\n }\n return false;\n }\n}\n\nexport interface IDataIndex {\n [key: string]: IDataIndex;\n}\n","import { ClosableTransformIterator } from '@comunica/bus-query-operation';\nimport type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport {\n ActorRdfJoin,\n} from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { MetadataBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\n\n/**\n * A comunica Minus Hash RDF Join Actor.\n */\nexport class ActorRdfJoinMinusHash extends ActorRdfJoin {\n public constructor(args: IActorRdfJoinArgs) {\n super(args, {\n logicalType: 'minus',\n physicalName: 'hash',\n limitEntries: 2,\n });\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n const buffer = action.entries[1].output;\n const output = action.entries[0].output;\n\n const metadatas = await ActorRdfJoin.getMetadatas(action.entries);\n const commonVariables: RDF.Variable[] = ActorRdfJoin.overlappingVariables(metadatas);\n if (commonVariables.length > 0) {\n /**\n * To assure we've filtered all B (`buffer`) values from A (`output`) we wait until we've fetched all values of B.\n * Then we save these triples in `index` and use it to filter our A-stream.\n */\n const index: Record = {};\n const bindingsStream = new ClosableTransformIterator(async() => {\n await new Promise((resolve) => {\n buffer.bindingsStream.on('data', (data) => {\n index[ActorRdfJoin.hashNonClashing(data, commonVariables)] = true;\n });\n buffer.bindingsStream.on('end', resolve);\n buffer.bindingsStream.on('error', (error) => {\n bindingsStream.emit('error', error);\n });\n });\n return output.bindingsStream.filter(data => !index[ActorRdfJoin.hashNonClashing(data, commonVariables)]);\n }, {\n autoStart: false,\n onClose() {\n buffer.bindingsStream.destroy();\n output.bindingsStream.destroy();\n },\n });\n return {\n result: {\n type: 'bindings',\n bindingsStream,\n metadata: output.metadata,\n },\n };\n }\n // Destroy the buffer stream since it is not needed when\n // there are no common variables.\n buffer.bindingsStream.destroy();\n return {\n result: output,\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n return {\n iterations: metadatas[0].cardinality.value + metadatas[1].cardinality.value,\n persistedItems: metadatas[0].cardinality.value,\n blockingItems: metadatas[0].cardinality.value,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n };\n }\n}\n","import type { BindOrder } from '@comunica/actor-rdf-join-inner-multi-bind';\nimport { ActorRdfJoinMultiBind } from '@comunica/actor-rdf-join-inner-multi-bind';\nimport { BindingsFactory } from '@comunica/bindings-factory';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { MediatorQueryOperation } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { Bindings, BindingsStream, MetadataBindings } from '@comunica/types';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Optional Bind RDF Join Actor.\n */\nexport class ActorRdfJoinOptionalBind extends ActorRdfJoin {\n public readonly bindOrder: BindOrder;\n public readonly selectivityModifier: number;\n public readonly mediatorQueryOperation: MediatorQueryOperation;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n public constructor(args: IActorRdfJoinOptionalBindArgs) {\n super(args, {\n logicalType: 'optional',\n physicalName: 'bind',\n limitEntries: 2,\n canHandleUndefs: true,\n isLeaf: false,\n });\n }\n\n protected async getOutput(action: IActionRdfJoin): Promise {\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, action.context);\n // Close the right stream, since we don't need that one\n action.entries[1].output.bindingsStream.close();\n\n // Bind the right pattern for each binding in the stream\n const subContext = action.context\n .set(KeysQueryOperation.joinLeftMetadata, await action.entries[0].output.metadata())\n .set(KeysQueryOperation.joinRightMetadatas, [ await action.entries[1].output.metadata() ]);\n const bindingsStream: BindingsStream = ActorRdfJoinMultiBind.createBindStream(\n this.bindOrder,\n action.entries[0].output.bindingsStream,\n [ action.entries[1].operation ],\n async(operations: Algebra.Operation[], operationBindings: Bindings) => {\n // Send the materialized patterns to the mediator for recursive join evaluation.\n // Length of operations will always be 1\n const operation = operations[0];\n const output = ActorQueryOperation.getSafeBindings(await this.mediatorQueryOperation.mediate(\n { operation, context: subContext?.set(KeysQueryOperation.joinBindings, operationBindings) },\n ));\n return output.bindingsStream;\n },\n true,\n bindingsFactory,\n );\n\n return {\n result: {\n type: 'bindings',\n bindingsStream,\n metadata: async() => await this.constructResultMetadata(\n action.entries,\n await ActorRdfJoin.getMetadatas(action.entries),\n action.context,\n { canContainUndefs: true },\n ),\n },\n };\n }\n\n public async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n // This actor only works well with common variables\n if (ActorRdfJoin.overlappingVariables(metadatas).length === 0) {\n throw new Error(`Actor ${this.name} only join entries with at least one common variable`);\n }\n\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n\n // Reject binding on some operation types\n if (action.entries[1].operation.type === Algebra.types.EXTEND ||\n action.entries[1].operation.type === Algebra.types.GROUP) {\n throw new Error(`Actor ${this.name} can not bind on Extend and Group operations`);\n }\n\n // Determine selectivity of join\n const selectivity = (await this.mediatorJoinSelectivity.mediate({\n entries: action.entries,\n context: action.context,\n })).selectivity * this.selectivityModifier;\n\n return {\n iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value * selectivity,\n persistedItems: 0,\n blockingItems: 0,\n requestTime: requestInitialTimes[0] +\n metadatas[0].cardinality.value * (\n requestItemTimes[0] +\n requestInitialTimes[1] +\n selectivity * metadatas[1].cardinality.value * requestItemTimes[1]\n ),\n };\n }\n}\n\nexport interface IActorRdfJoinOptionalBindArgs extends IActorRdfJoinArgs {\n /**\n * The order in which elements should be bound\n * @default {depth-first}\n */\n bindOrder: BindOrder;\n /**\n * Multiplier for selectivity values\n * @range {double}\n * @default {0.000001}\n */\n selectivityModifier: number;\n /**\n * The query operation mediator\n */\n mediatorQueryOperation: MediatorQueryOperation;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n}\n","import { ClosableTransformIterator } from '@comunica/bus-query-operation';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport type {\n IActionRdfJoin,\n IActorRdfJoinArgs,\n IActorRdfJoinOutputInner,\n} from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { BindingsStream, MetadataBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { UnionIterator, ArrayIterator, MultiTransformIterator, BufferedIterator } from 'asynciterator';\nimport { termToString } from 'rdf-string';\nimport { BindingsIndexDef } from './BindingsIndexDef';\nimport { BindingsIndexUndef } from './BindingsIndexUndef';\nimport type { IBindingsIndex } from './IBindingsIndex';\n\n/**\n * A comunica Optional Hash RDF Join Actor.\n */\nexport class ActorRdfJoinOptionalHash extends ActorRdfJoin {\n private readonly blocking: boolean;\n\n public constructor(args: IActorRdfJoinOptionalHashArgs) {\n super(args, {\n logicalType: 'optional',\n physicalName: `hash-${args.canHandleUndefs ? 'undef' : 'def'}-${args.blocking ? 'blocking' : 'nonblocking'}`,\n limitEntries: 2,\n canHandleUndefs: args.canHandleUndefs,\n requiresVariableOverlap: true,\n });\n }\n\n public static constructIndex(undef: boolean, commonVariables: RDF.Variable[]): IBindingsIndex {\n return undef ?\n new BindingsIndexUndef(\n commonVariables,\n (term: RDF.Term | undefined) => term && term.termType !== 'Variable' ? termToString(term) : '',\n ) :\n new BindingsIndexDef(commonVariables, ActorRdfJoin.hashNonClashing);\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n const buffer = action.entries[1].output;\n const output = action.entries[0].output;\n\n const metadatas = await ActorRdfJoin.getMetadatas(action.entries);\n const commonVariables: RDF.Variable[] = ActorRdfJoin.overlappingVariables(metadatas);\n\n let bindingsStream: BindingsStream;\n if (this.blocking) {\n // -- Blocking optional ---\n\n bindingsStream = new ClosableTransformIterator(async() => {\n // We index all bindings from the right-hand OPTIONAL iterator first in a blocking manner.\n const index: IBindingsIndex = ActorRdfJoinOptionalHash\n .constructIndex(this.canHandleUndefs, commonVariables);\n await new Promise((resolve) => {\n buffer.bindingsStream.on('data', (bindings) => {\n const iterator = index.getFirst(bindings) ?? index.put(bindings, []);\n iterator.push(bindings);\n });\n buffer.bindingsStream.on('end', resolve);\n buffer.bindingsStream.on('error', (error) => {\n bindingsStream.emit('error', error);\n });\n });\n\n // Start our left-hand iterator and try to join with the index\n return new MultiTransformIterator(\n output.bindingsStream,\n {\n multiTransform: (bindings: RDF.Bindings): AsyncIterator => new ArrayIterator(\n (index.get(bindings).flat())\n .map(indexBindings => ActorRdfJoin.joinBindings(bindings, indexBindings))\n .filter(b => b !== null),\n { autoStart: false },\n ),\n optional: true,\n autoStart: false,\n },\n );\n }, {\n autoStart: false,\n onClose() {\n buffer.bindingsStream.destroy();\n output.bindingsStream.destroy();\n },\n });\n } else {\n // -- Non-blocking optional ---\n // This can be slightly slower than the blocking one above, due to the streaming overhead.\n\n bindingsStream = new ClosableTransformIterator(async() => {\n // We index all bindings from the right-hand OPTIONAL iterator.\n // They are indexed with iterator values, so our main stream can already get started.\n const index: IBindingsIndex> = ActorRdfJoinOptionalHash\n .constructIndex(this.canHandleUndefs, commonVariables);\n let indexActive = true;\n buffer.bindingsStream.on('data', (bindings) => {\n const iterator = index.getFirst(bindings) ??\n index.put(bindings, new BufferedIterator({ autoStart: false }));\n ( iterator)._push(bindings);\n });\n buffer.bindingsStream.on('end', () => {\n for (const iterator of index.values()) {\n iterator.close();\n }\n indexActive = false;\n });\n buffer.bindingsStream.on('error', (error) => {\n bindingsStream.emit('error', error);\n });\n\n // Start our left-hand iterator and try to join with the index\n return new MultiTransformIterator(\n output.bindingsStream,\n {\n multiTransform: (bindings: RDF.Bindings): AsyncIterator => {\n // Find iterators from the index\n let iterators: AsyncIterator[] = index.get(bindings);\n\n // If no index entry was found, set an empty iterator.\n // If we index has been closed already, don't modify the index, but just use an empty dummy iterator.\n if (iterators.length === 0) {\n if (indexActive) {\n iterators = [ index.put(bindings, new BufferedIterator({ autoStart: false })) ];\n } else {\n iterators = [];\n }\n }\n\n // Merge all iterators in a single one,\n // and clone each one to make sure we can still use them in the future.\n const iterator = new UnionIterator(iterators.map(it => it.clone()), { autoStart: false });\n return iterator.map(indexBindings => ActorRdfJoin.joinBindings(bindings, indexBindings));\n },\n optional: true,\n autoStart: false,\n },\n );\n }, {\n autoStart: false,\n onClose() {\n buffer.bindingsStream.destroy();\n output.bindingsStream.destroy();\n },\n });\n }\n\n return {\n result: {\n type: 'bindings',\n bindingsStream,\n metadata: async() => await this.constructResultMetadata(\n action.entries,\n await ActorRdfJoin.getMetadatas(action.entries),\n action.context,\n { canContainUndefs: true },\n ),\n },\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n let iterations = metadatas[0].cardinality.value + metadatas[1].cardinality.value;\n if (!this.canHandleUndefs) {\n // Our non-undef implementation is slightly more performant.\n iterations *= 0.8;\n }\n if (this.blocking) {\n // Our blocking implementation is slightly more performant.\n iterations *= 0.9;\n }\n return {\n iterations,\n persistedItems: metadatas[0].cardinality.value,\n blockingItems: this.blocking ? metadatas[0].cardinality.value : 0,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n };\n }\n}\n\nexport interface IActorRdfJoinOptionalHashArgs extends IActorRdfJoinArgs {\n /**\n * If this actor can handle undefined values.\n * If false, performance will be slightly better.\n */\n canHandleUndefs: boolean;\n /**\n * If the join will block when collecting the optional stream.\n * If true, performance will be better.\n */\n blocking: boolean;\n}\n","import type * as RDF from '@rdfjs/types';\nimport type { IBindingsIndex } from './IBindingsIndex';\n\n/**\n * A simple efficient hash-based index for maintaining bindings,\n * and checking whether or not a bindings is contained in this index.\n *\n * This can not handle bindings with undefined values.\n */\nexport class BindingsIndexDef implements IBindingsIndex {\n private readonly keys: RDF.Variable[];\n private readonly hashFn: (term: RDF.Bindings, keys: RDF.Variable[]) => string;\n private readonly index: Record;\n\n public constructor(keys: RDF.Variable[], hashFn: (term: RDF.Bindings, keys: RDF.Variable[]) => string) {\n this.keys = keys;\n this.hashFn = hashFn;\n this.index = {};\n }\n\n public put(bindings: RDF.Bindings, value: V): V {\n return this.index[this.hashFn(bindings, this.keys)] = value;\n }\n\n public get(bindings: RDF.Bindings): V[] {\n const v = this.getFirst(bindings);\n return v ? [ v ] : [];\n }\n\n public getFirst(bindings: RDF.Bindings): V | undefined {\n return this.index[this.hashFn(bindings, this.keys)];\n }\n\n public values(): V[] {\n return Object.values(this.index);\n }\n}\n","import type { Bindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport type { IBindingsIndex } from './IBindingsIndex';\n\n/**\n * A simple efficient tree-based index for maintaining bindings,\n * and checking whether or not a bindings is contained in this index.\n *\n * This will consider bindings with a variable term or an undefined term\n * as a 'match-all' with other terms.\n */\nexport class BindingsIndexUndef implements IBindingsIndex {\n private readonly keys: RDF.Variable[];\n private readonly data: IDataIndex = {};\n private readonly hashFn: (term: RDF.Term | undefined) => string;\n\n public constructor(keys: RDF.Variable[], hashFn: (term: RDF.Term | undefined) => string) {\n this.keys = keys;\n this.hashFn = hashFn;\n }\n\n /**\n * Add the given bindings to the index.\n * @param {Bindings} bindings A bindings.\n * @param {V} value The value to put.\n */\n public put(bindings: Bindings, value: V): V {\n if (this.isBindingsValid(bindings)) {\n let dataIt: IDataIndex | V = this.data;\n for (let i = 0; i < this.keys.length; i++) {\n const key = this.keys[i];\n const dataKey = this.hashFn(bindings.get(key));\n let subDataIt: IDataIndex | V | undefined = (> dataIt)[dataKey];\n if (!subDataIt) {\n subDataIt = ((> dataIt))[dataKey] = i === this.keys.length - 1 ? value : {};\n }\n dataIt = subDataIt;\n }\n }\n return value;\n }\n\n protected isBindingsValid(bindings: Bindings): boolean {\n let validKeys = false;\n for (const key of this.keys) {\n if (bindings.has(key)) {\n validKeys = true;\n break;\n }\n }\n return validKeys;\n }\n\n /**\n * Get the value of the given bindings is contained in this index.\n * @param {Bindings} bindings A bindings.\n * @return {V[]} The values.\n */\n public get(bindings: Bindings): V[] {\n // Always return undefined if the bindings contain none of the expected keys\n if (!this.isBindingsValid(bindings)) {\n return [];\n }\n\n return this.getRecursive(bindings, this.keys, [ this.data ]);\n }\n\n protected getRecursive(bindings: Bindings | undefined, keys: RDF.Variable[], dataIndexes: IDataIndex[]): V[] {\n if (keys.length === 0) {\n return dataIndexes;\n }\n\n let key: RDF.Variable;\n // eslint-disable-next-line prefer-const\n [ key, ...keys ] = keys;\n const matchingRecursive: V[][] = [];\n for (const data of dataIndexes) {\n // If the index contained a variable, all terms will match.\n const dataKey = this.hashFn(bindings?.get(key));\n if (dataKey) {\n // Check the entry for the term, and the variable term.\n const subDatas = []> [ data[dataKey], data[''] ].filter(Boolean);\n if (subDatas.length === 0) {\n continue;\n }\n matchingRecursive.push(this.getRecursive(bindings, keys, subDatas));\n } else {\n // Iterate over all entries\n const subDatas = []> Object.values(data);\n if (subDatas.length === 0) {\n continue;\n }\n matchingRecursive.push(this.getRecursive(bindings, keys, subDatas));\n }\n }\n return matchingRecursive.flat();\n }\n\n /**\n * Get the first value of the given bindings is contained in this index.\n * @param {Bindings} bindings A bindings.\n * @return {V | undefined} The value.\n */\n public getFirst(bindings: Bindings): V | undefined {\n // Always return undefined if the bindings contain none of the expected keys\n if (!this.isBindingsValid(bindings)) {\n return undefined;\n }\n\n return this.getRecursiveFirst(bindings, this.keys, [ this.data ]);\n }\n\n protected getRecursiveFirst(bindings: Bindings, keys: RDF.Variable[], dataIndexes: IDataIndex[]): V | undefined {\n if (keys.length === 0) {\n return dataIndexes[0];\n }\n\n let key: RDF.Variable;\n // eslint-disable-next-line prefer-const\n [ key, ...keys ] = keys;\n for (const data of dataIndexes) {\n // If the index contained a variable, all terms will match.\n const dataKey = this.hashFn(bindings.get(key));\n if (dataKey) {\n // Check the entry for the term, and the variable term.\n const subDatas = []> [ data[dataKey], data[''] ].filter(Boolean);\n if (subDatas.length === 0) {\n continue;\n }\n const ret = this.getRecursiveFirst(bindings, keys, subDatas);\n if (ret) {\n return ret;\n }\n } else {\n // Iterate over all entries\n const subDatas = []> Object.values(data);\n if (subDatas.length === 0) {\n continue;\n }\n const ret = this.getRecursiveFirst(bindings, keys, subDatas);\n if (ret) {\n return ret;\n }\n }\n }\n return undefined;\n }\n\n public values(): V[] {\n return this.keys.length === 0 ? [] : this.getRecursive(undefined, this.keys, [ this.data ]);\n }\n}\n\nexport interface IDataIndex {\n [key: string]: IDataIndex | V;\n}\n","import type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs } from '@comunica/bus-rdf-join';\nimport {\n ActorRdfJoin,\n} from '@comunica/bus-rdf-join';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { Bindings, MetadataBindings } from '@comunica/types';\nimport { NestedLoopJoin } from 'asyncjoin';\n\n/**\n * A comunica Optional Nested Loop RDF Join Actor.\n */\nexport class ActorRdfJoinOptionalNestedLoop extends ActorRdfJoin {\n public constructor(args: IActorRdfJoinArgs) {\n super(args, {\n logicalType: 'optional',\n physicalName: 'nested-loop',\n limitEntries: 2,\n canHandleUndefs: true,\n });\n }\n\n public async getOutput(action: IActionRdfJoin): Promise {\n const join = new NestedLoopJoin(\n action.entries[0].output.bindingsStream,\n action.entries[1].output.bindingsStream,\n ActorRdfJoin.joinBindings,\n { optional: true, autoStart: false },\n );\n return {\n result: {\n type: 'bindings',\n bindingsStream: join,\n metadata: async() => await this.constructResultMetadata(\n action.entries,\n await ActorRdfJoin.getMetadatas(action.entries),\n action.context,\n { canContainUndefs: true },\n ),\n },\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n metadatas: MetadataBindings[],\n ): Promise {\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n return {\n iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value,\n persistedItems: 0,\n blockingItems: 0,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n };\n }\n}\n","import type { IActionRdfJoinSelectivity, IActorRdfJoinSelectivityOutput } from '@comunica/bus-rdf-join-selectivity';\nimport { ActorRdfJoinSelectivity } from '@comunica/bus-rdf-join-selectivity';\nimport type { IActorArgs } from '@comunica/core';\nimport type { IMediatorTypeAccuracy } from '@comunica/mediatortype-accuracy';\nimport { Algebra, Util } from 'sparqlalgebrajs';\n\n/**\n * A comunica Variable Counting RDF Join Selectivity Actor.\n * Based on the \"variable counting predicates\" heuristic from\n * \"SPARQL basic graph pattern optimization using selectivity estimation.\"\n */\nexport class ActorRdfJoinSelectivityVariableCounting extends ActorRdfJoinSelectivity {\n // Calculated as sum of unbound join type costs times 2 (best-case)\n public static MAX_PAIRWISE_COST = 41 * 2;\n\n public constructor(\n args: IActorArgs,\n ) {\n super(args);\n }\n\n public async test(_action: IActionRdfJoinSelectivity): Promise {\n return { accuracy: 0.5 };\n }\n\n public static getPatternCost(pattern: Algebra.Pattern | Algebra.Path): number {\n let cost = 1;\n if (pattern.subject.termType === 'Variable') {\n cost += 4;\n }\n if (pattern.predicate.termType === 'Variable' || pattern.type === Algebra.types.PATH) {\n cost += 1;\n }\n if (pattern.object.termType === 'Variable') {\n cost += 2;\n }\n if (pattern.graph.termType === 'Variable') {\n cost += 1;\n }\n return cost / 9;\n }\n\n public static getJoinTypes(\n operation1: Algebra.Pattern | Algebra.Path,\n operation2: Algebra.Pattern | Algebra.Path,\n ): JoinTypes[] {\n const joinTypes: JoinTypes[] = [];\n\n // Check operation1.subject\n if (operation1.subject.termType === 'Variable') {\n if (operation1.subject.equals(operation2.subject)) {\n joinTypes.push(JoinTypes.unboundSS);\n }\n if (operation2.type === 'pattern' && operation1.subject.equals(operation2.predicate)) {\n joinTypes.push(JoinTypes.unboundSP);\n }\n if (operation1.subject.equals(operation2.object)) {\n joinTypes.push(JoinTypes.unboundSO);\n }\n if (operation1.subject.equals(operation2.graph)) {\n joinTypes.push(JoinTypes.unboundSG);\n }\n } else {\n if (operation1.subject.equals(operation2.subject)) {\n joinTypes.push(JoinTypes.boundSS);\n }\n if (operation2.type === 'pattern' && operation1.subject.equals(operation2.predicate)) {\n joinTypes.push(JoinTypes.boundSP);\n }\n if (operation1.subject.equals(operation2.object)) {\n joinTypes.push(JoinTypes.boundSO);\n }\n if (operation1.subject.equals(operation2.graph)) {\n joinTypes.push(JoinTypes.boundSG);\n }\n }\n\n // Check operation1.predicate\n if (operation1.type === 'pattern') {\n if (operation1.predicate.termType === 'Variable') {\n if (operation1.predicate.equals(operation2.subject)) {\n joinTypes.push(JoinTypes.unboundPS);\n }\n if (operation2.type === 'pattern' && operation1.predicate.equals(operation2.predicate)) {\n joinTypes.push(JoinTypes.unboundPP);\n }\n if (operation1.predicate.equals(operation2.object)) {\n joinTypes.push(JoinTypes.unboundPO);\n }\n if (operation1.predicate.equals(operation2.graph)) {\n joinTypes.push(JoinTypes.unboundPG);\n }\n } else {\n if (operation1.predicate.equals(operation2.subject)) {\n joinTypes.push(JoinTypes.boundPS);\n }\n if (operation2.type === 'pattern' && operation1.predicate.equals(operation2.predicate)) {\n joinTypes.push(JoinTypes.boundPP);\n }\n if (operation1.predicate.equals(operation2.object)) {\n joinTypes.push(JoinTypes.boundPO);\n }\n if (operation1.predicate.equals(operation2.graph)) {\n joinTypes.push(JoinTypes.boundPG);\n }\n }\n }\n\n // Check operation1.object\n if (operation1.object.termType === 'Variable') {\n if (operation1.object.equals(operation2.subject)) {\n joinTypes.push(JoinTypes.unboundOS);\n }\n if (operation2.type === 'pattern' && operation1.object.equals(operation2.predicate)) {\n joinTypes.push(JoinTypes.unboundOP);\n }\n if (operation1.object.equals(operation2.object)) {\n joinTypes.push(JoinTypes.unboundOO);\n }\n if (operation1.object.equals(operation2.graph)) {\n joinTypes.push(JoinTypes.unboundOG);\n }\n } else {\n if (operation1.object.equals(operation2.subject)) {\n joinTypes.push(JoinTypes.boundOS);\n }\n if (operation2.type === 'pattern' && operation1.object.equals(operation2.predicate)) {\n joinTypes.push(JoinTypes.boundOP);\n }\n if (operation1.object.equals(operation2.object)) {\n joinTypes.push(JoinTypes.boundOO);\n }\n if (operation1.object.equals(operation2.graph)) {\n joinTypes.push(JoinTypes.boundOG);\n }\n }\n\n // Check operation1.graph\n if (operation1.graph.termType === 'Variable') {\n if (operation1.graph.equals(operation2.subject)) {\n joinTypes.push(JoinTypes.unboundGS);\n }\n if (operation2.type === 'pattern' && operation1.graph.equals(operation2.predicate)) {\n joinTypes.push(JoinTypes.unboundGP);\n }\n if (operation1.graph.equals(operation2.object)) {\n joinTypes.push(JoinTypes.unboundGO);\n }\n if (operation1.graph.equals(operation2.graph)) {\n joinTypes.push(JoinTypes.unboundGG);\n }\n } else {\n if (operation1.graph.equals(operation2.subject)) {\n joinTypes.push(JoinTypes.boundGS);\n }\n if (operation2.type === 'pattern' && operation1.graph.equals(operation2.predicate)) {\n joinTypes.push(JoinTypes.boundGP);\n }\n if (operation1.graph.equals(operation2.object)) {\n joinTypes.push(JoinTypes.boundGO);\n }\n if (operation1.graph.equals(operation2.graph)) {\n joinTypes.push(JoinTypes.boundGG);\n }\n }\n\n return joinTypes;\n }\n\n public static getOperationsPairwiseJoinCost(\n operation1: Algebra.Pattern | Algebra.Path,\n operation2: Algebra.Pattern | Algebra.Path,\n ): number {\n let cost = ActorRdfJoinSelectivityVariableCounting.MAX_PAIRWISE_COST;\n\n for (const joinType of ActorRdfJoinSelectivityVariableCounting.getJoinTypes(operation1, operation2)) {\n switch (joinType) {\n case JoinTypes.boundSS:\n cost -= 2 * 2;\n break;\n case JoinTypes.boundSP:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundSO:\n cost -= 1 * 2;\n break;\n case JoinTypes.boundSG:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundPS:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundPP:\n // Special case: patterns with equal (bound) predicates have the highest cost\n return 1;\n case JoinTypes.boundPO:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundPG:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundOS:\n cost -= 1 * 2;\n break;\n case JoinTypes.boundOP:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundOO:\n cost -= 1 * 2;\n break;\n case JoinTypes.boundOG:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundGS:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundGP:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundGO:\n cost -= 3 * 2;\n break;\n case JoinTypes.boundGG:\n cost -= 3 * 2;\n break;\n case JoinTypes.unboundSS:\n cost -= 2;\n break;\n case JoinTypes.unboundSP:\n cost -= 3;\n break;\n case JoinTypes.unboundSO:\n cost -= 1;\n break;\n case JoinTypes.unboundSG:\n cost -= 3;\n break;\n case JoinTypes.unboundPS:\n cost -= 3;\n break;\n case JoinTypes.unboundPP:\n cost -= 3;\n break;\n case JoinTypes.unboundPO:\n cost -= 3;\n break;\n case JoinTypes.unboundPG:\n cost -= 3;\n break;\n case JoinTypes.unboundOS:\n cost -= 1;\n break;\n case JoinTypes.unboundOP:\n cost -= 3;\n break;\n case JoinTypes.unboundOO:\n cost -= 1;\n break;\n case JoinTypes.unboundOG:\n cost -= 3;\n break;\n case JoinTypes.unboundGS:\n cost -= 3;\n break;\n case JoinTypes.unboundGP:\n cost -= 3;\n break;\n case JoinTypes.unboundGO:\n cost -= 3;\n break;\n case JoinTypes.unboundGG:\n cost -= 3;\n break;\n }\n }\n\n return cost / ActorRdfJoinSelectivityVariableCounting.MAX_PAIRWISE_COST;\n }\n\n public static getOperationsJoinCost(operations: Algebra.Operation[]): number {\n // Determine all operations that select values (patterns and paths)\n const patterns: (Algebra.Pattern | Algebra.Path)[] = [];\n for (const operation of operations) {\n Util.recurseOperation(operation, {\n [Algebra.types.PATTERN](pattern: Algebra.Pattern): boolean {\n patterns.push(pattern);\n return false;\n },\n [Algebra.types.PATH](path: Algebra.Path): boolean {\n patterns.push(path);\n return false;\n },\n });\n }\n\n // Determine pairwise costs\n let totalCost = 0;\n let costEntries = 0;\n for (const pattern1 of patterns) {\n for (const pattern2 of patterns) {\n if (pattern1 !== pattern2) {\n totalCost += ActorRdfJoinSelectivityVariableCounting.getOperationsPairwiseJoinCost(pattern1, pattern2);\n costEntries++;\n }\n }\n }\n\n // If there are no overlapping patterns, the cost is 1\n if (costEntries === 0) {\n return 1;\n }\n\n // Combine all pairwise costs, and multiply with costs of each pattern separately\n return totalCost / costEntries * patterns\n .reduce((factor, pattern) => factor * ActorRdfJoinSelectivityVariableCounting.getPatternCost(pattern), 1);\n }\n\n public async run(action: IActionRdfJoinSelectivity): Promise {\n if (action.entries.length <= 1) {\n return { selectivity: 1 };\n }\n return {\n selectivity: ActorRdfJoinSelectivityVariableCounting\n .getOperationsJoinCost(action.entries.map(entry => entry.operation)),\n };\n }\n}\n\nexport enum JoinTypes {\n boundSS,\n boundSP,\n boundSO,\n boundSG,\n boundPS,\n boundPP,\n boundPO,\n boundPG,\n boundOS,\n boundOP,\n boundOO,\n boundOG,\n boundGS,\n boundGP,\n boundGO,\n boundGG,\n\n unboundSS,\n unboundSP,\n unboundSO,\n unboundSG,\n unboundPS,\n unboundPP,\n unboundPO,\n unboundPG,\n unboundOS,\n unboundOP,\n unboundOO,\n unboundOG,\n unboundGS,\n unboundGP,\n unboundGO,\n unboundGG,\n}\n","import type {\n IActionRdfMetadataAccumulate,\n IActorRdfMetadataAccumulateOutput,\n IActorRdfMetadataAccumulateArgs,\n} from '@comunica/bus-rdf-metadata-accumulate';\nimport { ActorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica CanContainUndefs RDF Metadata Accumulate Actor.\n */\nexport class ActorRdfMetadataAccumulateCanContainUndefs extends ActorRdfMetadataAccumulate {\n public constructor(args: IActorRdfMetadataAccumulateArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataAccumulate): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataAccumulate): Promise {\n // Return default value on initialize\n if (action.mode === 'initialize') {\n return { metadata: { canContainUndefs: false }};\n }\n\n // Otherwise, attempt to increment existing value\n let canContainUndefs = action.accumulatedMetadata.canContainUndefs;\n if (action.appendingMetadata.canContainUndefs) {\n canContainUndefs = true;\n }\n return { metadata: { canContainUndefs }};\n }\n}\n","import type {\n IActionRdfMetadataAccumulate,\n IActorRdfMetadataAccumulateOutput,\n IActorRdfMetadataAccumulateArgs,\n} from '@comunica/bus-rdf-metadata-accumulate';\nimport { ActorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { IActorTest } from '@comunica/core';\nimport type { QueryResultCardinality } from '@comunica/types';\n\n/**\n * A comunica Cardinality RDF Metadata Accumulate Actor.\n */\nexport class ActorRdfMetadataAccumulateCardinality extends ActorRdfMetadataAccumulate {\n public constructor(args: IActorRdfMetadataAccumulateArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataAccumulate): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataAccumulate): Promise {\n // Return default value on initialize\n if (action.mode === 'initialize') {\n return { metadata: { cardinality: { type: 'exact', value: 0 }}};\n }\n\n // Otherwise, attempt to update existing value\n const cardinality: QueryResultCardinality = { ...action.accumulatedMetadata.cardinality };\n\n if (cardinality.dataset) {\n if (action.appendingMetadata.cardinality.dataset) {\n // If the accumulated cardinality is dataset-wide\n if (cardinality.dataset !== action.appendingMetadata.cardinality.dataset &&\n action.appendingMetadata.subsetOf === cardinality.dataset) {\n // If the appending cardinality refers to the subset of a dataset,\n // use the cardinality of the subset.\n return { metadata: { cardinality: action.appendingMetadata.cardinality }};\n }\n if (cardinality.dataset === action.appendingMetadata.cardinality.dataset) {\n // If the appending cardinality is for the same dataset,\n // keep the accumulated cardinality unchanged.\n return { metadata: { cardinality }};\n }\n // If the appending cardinality refers to another dataset,\n // remove the dataset scopes.\n delete cardinality.dataset;\n } else {\n // If the appending cardinality refers to a dataset subset,\n // keep the accumulated cardinality unchanged.\n return { metadata: { cardinality }};\n }\n }\n\n if (!action.appendingMetadata.cardinality || !Number.isFinite(action.appendingMetadata.cardinality.value)) {\n // We're already at infinite, so ignore any later metadata\n cardinality.type = 'estimate';\n cardinality.value = Number.POSITIVE_INFINITY;\n } else {\n if (action.appendingMetadata.cardinality.type === 'estimate') {\n cardinality.type = 'estimate';\n }\n cardinality.value += action.appendingMetadata.cardinality.value;\n }\n\n return { metadata: { cardinality }};\n }\n}\n","import type {\n IActionRdfMetadataAccumulate,\n IActorRdfMetadataAccumulateOutput,\n IActorRdfMetadataAccumulateArgs,\n} from '@comunica/bus-rdf-metadata-accumulate';\nimport { ActorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica PageSize RDF Metadata Accumulate Actor.\n */\nexport class ActorRdfMetadataAccumulatePageSize extends ActorRdfMetadataAccumulate {\n public constructor(args: IActorRdfMetadataAccumulateArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataAccumulate): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataAccumulate): Promise {\n // Return nothing on initialize\n if (action.mode === 'initialize') {\n return { metadata: {}};\n }\n\n // Otherwise, attempt to increment existing value\n return {\n metadata: {\n ...('pageSize' in action.accumulatedMetadata) || ('pageSize' in action.appendingMetadata) ?\n {\n pageSize: (action.accumulatedMetadata.pageSize ?? 0) + (action.appendingMetadata.pageSize ?? 0),\n } :\n {},\n },\n };\n }\n}\n","import type {\n IActionRdfMetadataAccumulate,\n IActorRdfMetadataAccumulateOutput,\n IActorRdfMetadataAccumulateArgs,\n} from '@comunica/bus-rdf-metadata-accumulate';\nimport { ActorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica RequestTime RDF Metadata Accumulate Actor.\n */\nexport class ActorRdfMetadataAccumulateRequestTime extends ActorRdfMetadataAccumulate {\n public constructor(args: IActorRdfMetadataAccumulateArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataAccumulate): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataAccumulate): Promise {\n // Return nothing on initialize\n if (action.mode === 'initialize') {\n return { metadata: {}};\n }\n\n // Otherwise, attempt to increment existing value\n return {\n metadata: {\n ...('requestTime' in action.accumulatedMetadata) || ('requestTime' in action.appendingMetadata) ?\n {\n requestTime: (action.accumulatedMetadata.requestTime ?? 0) + (action.appendingMetadata.requestTime ?? 0),\n } :\n {},\n },\n };\n }\n}\n","import type { IActionRdfMetadata, IActorRdfMetadataArgs, IActorRdfMetadataOutput } from '@comunica/bus-rdf-metadata';\nimport { ActorRdfMetadata } from '@comunica/bus-rdf-metadata';\nimport type { IActorTest } from '@comunica/core';\nimport { Readable } from 'readable-stream';\n\n/**\n * A comunica All RDF Metadata Actor.\n */\nexport class ActorRdfMetadataAll extends ActorRdfMetadata {\n public constructor(args: IActorRdfMetadataArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadata): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadata): Promise {\n const data: Readable = new Readable({ objectMode: true });\n const metadata: Readable = new Readable({ objectMode: true });\n\n // Forward errors (attach them immediately as they could arrive earlier)\n action.quads.on('error', (error) => {\n data.emit('error', error);\n metadata.emit('error', error);\n });\n\n // Terminate both streams on-end\n action.quads.on('end', () => {\n data.push(null);\n metadata.push(null);\n });\n\n const read: (size: number) => void = data._read = metadata._read = (size) => {\n while (size > 0) {\n const item = action.quads.read();\n if (item === null) {\n return action.quads.once('readable', () => read(size));\n }\n size--;\n data.push(item);\n metadata.push(item);\n }\n };\n\n return { data, metadata };\n }\n}\n","import type {\n IActionRdfMetadataExtract,\n IActorRdfMetadataExtractArgs,\n IActorRdfMetadataExtractOutput,\n} from '@comunica/bus-rdf-metadata-extract';\nimport { ActorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica Allow HTTP Methods RDF Metadata Extract Actor.\n */\nexport class ActorRdfMetadataExtractAllowHttpMethods extends ActorRdfMetadataExtract {\n public constructor(args: IActorRdfMetadataExtractArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataExtract): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataExtract): Promise {\n const metadata: Record = {};\n if (action.headers?.get('allow')) {\n metadata.allowHttpMethods = action.headers.get('allow')?.split(/, */u);\n }\n return { metadata };\n }\n}\n","import type {\n IActionRdfMetadataExtract,\n IActorRdfMetadataExtractOutput,\n IActorRdfMetadataExtractArgs,\n} from '@comunica/bus-rdf-metadata-extract';\nimport { ActorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActorTest } from '@comunica/core';\nimport type * as RDF from '@rdfjs/types';\nimport type { UriTemplate } from 'uritemplate';\nimport { parse as parseUriTemplate } from 'uritemplate';\n\n/**\n * An RDF Metadata Extract Actor that extracts all Hydra controls from the metadata stream.\n */\nexport class ActorRdfMetadataExtractHydraControls extends ActorRdfMetadataExtract {\n public static readonly HYDRA: string = 'http://www.w3.org/ns/hydra/core#';\n public static readonly LINK_TYPES: string[] = [ 'first', 'next', 'previous', 'last' ];\n protected readonly parsedUriTemplateCache: Record = {};\n\n public constructor(args: IActorRdfMetadataExtractArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataExtract): Promise {\n return true;\n }\n\n /**\n * Collect all Hydra page links from the given Hydra properties object.\n * @param pageUrl The page URL in which the Hydra properties are defined.\n * @param hydraProperties The collected Hydra properties.\n * @return The Hydra links\n */\n public getLinks(pageUrl: string, hydraProperties: Record>):\n Record {\n return Object.fromEntries(ActorRdfMetadataExtractHydraControls.LINK_TYPES.map((link) => {\n // First check the correct hydra:next, then the deprecated hydra:nextPage\n const links = hydraProperties[link] || hydraProperties[`${link}Page`];\n const linkTargets = links && links[pageUrl];\n return [ link, linkTargets && linkTargets.length > 0 ? [ linkTargets[0] ] : [] ];\n }));\n }\n\n /**\n * Parse a URI template, or retrieve it from a cache.\n * @param {string} template A URI template string.\n * @return {} A parsed URI template object.\n */\n public parseUriTemplateCached(template: string): UriTemplate {\n const cachedUriTemplate: UriTemplate = this.parsedUriTemplateCache[template];\n if (cachedUriTemplate) {\n return cachedUriTemplate;\n }\n\n return this.parsedUriTemplateCache[template] = parseUriTemplate(template);\n }\n\n /**\n * Collect all search forms from the given Hydra properties object.\n * @param hydraProperties The collected Hydra properties.\n * @return The search forms.\n */\n public getSearchForms(hydraProperties: Record>): ISearchForms {\n const searchFormData: Record = hydraProperties.search;\n const searchForms: ISearchForm[] = [];\n if (searchFormData) {\n for (const dataset in searchFormData) {\n for (const searchFormId of searchFormData[dataset]) {\n const searchTemplates = (hydraProperties.template || {})[searchFormId] || [];\n\n // Parse the template\n if (searchTemplates.length !== 1) {\n throw new Error(`Expected 1 hydra:template for ${searchFormId}`);\n }\n const template: string = searchTemplates[0];\n const searchTemplate: UriTemplate = this.parseUriTemplateCached(template);\n\n // Parse the template mappings\n const mappings: Record = Object\n .fromEntries(((hydraProperties.mapping || {})[searchFormId] || [])\n .map((mapping) => {\n const variable = ((hydraProperties.variable || {})[mapping] || [])[0];\n const property = ((hydraProperties.property || {})[mapping] || [])[0];\n if (!variable) {\n throw new Error(`Expected a hydra:variable for ${mapping}`);\n }\n if (!property) {\n throw new Error(`Expected a hydra:property for ${mapping}`);\n }\n return [ property, variable ];\n }));\n\n // Gets the URL of the Triple Pattern Fragment with the given triple pattern\n const getUri = (entries: Record): string => searchTemplate\n .expand(Object.fromEntries(Object.keys(entries).map(key => [ mappings[key], entries[key] ])));\n\n searchForms.push({ dataset, template, mappings, getUri });\n }\n }\n }\n return { values: searchForms };\n }\n\n /**\n * Collect all hydra properties from a given metadata stream\n * in a nice convenient nested hash (property / subject / objects).\n * @param {RDF.Stream} metadata\n * @return The collected Hydra properties.\n */\n public getHydraProperties(metadata: RDF.Stream): Promise>> {\n return new Promise((resolve, reject) => {\n metadata.on('error', reject);\n\n // Collect all hydra properties in a nice convenient nested hash (property / subject / objects).\n const hydraProperties: Record> = {};\n metadata.on('data', (quad) => {\n if (quad.predicate.value.startsWith(ActorRdfMetadataExtractHydraControls.HYDRA)) {\n const property = quad.predicate.value.slice(ActorRdfMetadataExtractHydraControls.HYDRA.length);\n const subjectProperties = hydraProperties[property] || (hydraProperties[property] = {});\n const objects = subjectProperties[quad.subject.value] || (subjectProperties[quad.subject.value] = []);\n objects.push(quad.object.value);\n }\n });\n\n metadata.on('end', () => resolve(hydraProperties));\n });\n }\n\n public async run(action: IActionRdfMetadataExtract): Promise {\n const metadata: IActorRdfMetadataExtractOutput['metadata'] = {};\n const hydraProperties = await this.getHydraProperties(action.metadata);\n Object.assign(metadata, this.getLinks(action.url, hydraProperties));\n metadata.searchForms = this.getSearchForms(hydraProperties);\n return { metadata };\n }\n}\n\nexport interface ISearchForm {\n /**\n * The dataset in which the search form is defined.\n */\n dataset: string;\n /**\n * The URI template containing Hydra variables.\n */\n template: string;\n /**\n * The mappings.\n * With as keys the Hydra properties,\n * and as values the Hydra variables\n */\n mappings: Record;\n\n /**\n * Instantiate a uri based on the given Hydra variable values.\n * @param entries Entries with as keys Hydra properties,\n * and as values Hydra variable values.\n * @return {string} The instantiated URI\n */\n getUri: (entries: Record) => string;\n}\n\nexport interface ISearchForms {\n /**\n * All available search forms.\n */\n values: ISearchForm[];\n}\n","import type {\n IActionRdfMetadataExtract,\n IActorRdfMetadataExtractOutput,\n IActorRdfMetadataExtractArgs,\n} from '@comunica/bus-rdf-metadata-extract';\nimport { ActorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * An RDF Metadata Extract Actor that extracts total items counts from a metadata stream based on the given predicates.\n */\nexport class ActorRdfMetadataExtractHydraCount extends ActorRdfMetadataExtract\n implements IActorRdfParseFixedMediaTypesArgs {\n public readonly predicates: string[];\n\n public constructor(args: IActorRdfParseFixedMediaTypesArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataExtract): Promise {\n return true;\n }\n\n public run(action: IActionRdfMetadataExtract): Promise {\n return new Promise((resolve, reject) => {\n // Forward errors\n action.metadata.on('error', reject);\n\n // Immediately resolve when a value has been found.\n action.metadata.on('data', (quad) => {\n if (this.predicates.includes(quad.predicate.value)) {\n resolve({\n metadata: {\n cardinality: {\n type: 'estimate',\n value: Number.parseInt(quad.object.value, 10),\n dataset: quad.subject.value,\n },\n },\n });\n }\n });\n\n // If no value has been found, assume infinity.\n action.metadata.on('end', () => {\n resolve({ metadata: { cardinality: { type: 'estimate', value: 0 }}});\n });\n });\n }\n}\n\nexport interface IActorRdfParseFixedMediaTypesArgs extends IActorRdfMetadataExtractArgs {\n /**\n * A predicate that provides a count estimate\n * @default {http://www.w3.org/ns/hydra/core#totalItems}\n * @default {http://rdfs.org/ns/void#triples}\n */\n predicates: string[];\n}\n","import type {\n IActionRdfMetadataExtract,\n IActorRdfMetadataExtractOutput,\n IActorRdfMetadataExtractArgs,\n} from '@comunica/bus-rdf-metadata-extract';\nimport { ActorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica Hydra Pagesize RDF Metadata Extract Actor.\n */\nexport class ActorRdfMetadataExtractHydraPagesize extends ActorRdfMetadataExtract {\n public readonly predicates: string[];\n\n public constructor(args: IActorRdfMetadataExtractHydraPagesizeArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataExtract): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataExtract): Promise {\n return new Promise((resolve, reject) => {\n // Forward errors\n action.metadata.on('error', reject);\n\n // Immediately resolve when a value has been found.\n action.metadata.on('data', (quad) => {\n if (this.predicates.includes(quad.predicate.value)) {\n resolve({ metadata: { pageSize: Number.parseInt(quad.object.value, 10) }});\n }\n });\n\n // If no value has been found, don't define the pageSize value.\n action.metadata.on('end', () => {\n resolve({ metadata: {}});\n });\n });\n }\n}\n\nexport interface IActorRdfMetadataExtractHydraPagesizeArgs extends IActorRdfMetadataExtractArgs {\n /**\n * A predicate that provides the page size\n * @default {http://www.w3.org/ns/hydra/core#itemsPerPage}\n */\n predicates: string[];\n}\n","import type {\n IActionRdfMetadataExtract,\n IActorRdfMetadataExtractOutput,\n IActorRdfMetadataExtractArgs,\n} from '@comunica/bus-rdf-metadata-extract';\nimport { ActorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica Patch SPARQL Update RDF Metadata Extract Actor.\n */\nexport class ActorRdfMetadataExtractPatchSparqlUpdate extends ActorRdfMetadataExtract {\n public constructor(args: IActorRdfMetadataExtractArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataExtract): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataExtract): Promise {\n const metadata: IActorRdfMetadataExtractOutput['metadata'] = {};\n // The ms-author-via header is added for backwards-compatibility with old Solid servers\n if (\n action.headers?.get('accept-patch')?.includes('application/sparql-update') ??\n action.headers?.get('ms-author-via')?.includes('SPARQL')\n ) {\n metadata.patchSparqlUpdate = true;\n }\n return { metadata };\n }\n}\n","import type {\n IActionRdfMetadataExtract,\n IActorRdfMetadataExtractOutput,\n IActorRdfMetadataExtractArgs,\n} from '@comunica/bus-rdf-metadata-extract';\nimport { ActorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica PUT Accepted RDF Metadata Extract Actor.\n */\nexport class ActorRdfMetadataExtractPutAccepted extends ActorRdfMetadataExtract {\n public constructor(args: IActorRdfMetadataExtractArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataExtract): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataExtract): Promise {\n const metadata: IActorRdfMetadataExtractOutput['metadata'] = {};\n if (action.headers?.get('accept-put')) {\n metadata.putAccepted = action.headers.get('accept-put')?.split(/, */u);\n }\n return { metadata };\n }\n}\n","import type {\n IActionRdfMetadataExtract,\n IActorRdfMetadataExtractOutput,\n IActorRdfMetadataExtractArgs,\n} from '@comunica/bus-rdf-metadata-extract';\nimport { ActorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActorTest } from '@comunica/core';\n\n/**\n * A comunica Request Time RDF Metadata Extract Actor.\n */\nexport class ActorRdfMetadataExtractRequestTime extends ActorRdfMetadataExtract {\n public constructor(args: IActorRdfMetadataExtractArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataExtract): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataExtract): Promise {\n return { metadata: { requestTime: action.requestTime }};\n }\n}\n","import type {\n IActionRdfMetadataExtract,\n IActorRdfMetadataExtractOutput,\n IActorRdfMetadataExtractArgs,\n} from '@comunica/bus-rdf-metadata-extract';\nimport { ActorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport type { IActorTest } from '@comunica/core';\nimport { resolve as resolveIri } from 'relative-to-absolute-iri';\n\n/**\n * A comunica RDF Metadata Extract Actor for SPARQL service descriptions.\n */\nexport class ActorRdfMetadataExtractSparqlService extends ActorRdfMetadataExtract {\n private readonly inferHttpsEndpoint: boolean;\n\n public constructor(args: IActorRdfMetadataExtractSparqlServiceArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfMetadataExtract): Promise {\n return true;\n }\n\n public async run(action: IActionRdfMetadataExtract): Promise {\n return new Promise((resolve, reject) => {\n // Forward errors\n action.metadata.on('error', reject);\n\n // Immediately resolve when a SPARQL service endpoint URL has been found\n const metadata: any = {};\n action.metadata.on('data', (quad) => {\n if (quad.predicate.value === 'http://www.w3.org/ns/sparql-service-description#endpoint' &&\n (quad.subject.termType === 'BlankNode' || quad.subject.value === action.url)) {\n metadata.sparqlService = quad.object.termType === 'Literal' ?\n resolveIri(quad.object.value, action.url) :\n quad.object.value;\n\n // Fix a common mistake in SPARQL endpoint setups where HTTPS SD's refer to a non-existing HTTP API\n if (this.inferHttpsEndpoint &&\n action.url.startsWith('https') && !metadata.sparqlService.startsWith('https')) {\n metadata.sparqlService = metadata.sparqlService.replace('http:', 'https:');\n }\n } else if (quad.predicate.value === 'http://www.w3.org/ns/sparql-service-description#defaultGraph') {\n metadata.defaultGraph = quad.object.value;\n }\n });\n\n // If no value has been found, emit nothing.\n action.metadata.on('end', () => {\n resolve({ metadata });\n });\n });\n }\n}\n\nexport interface IActorRdfMetadataExtractSparqlServiceArgs extends IActorRdfMetadataExtractArgs {\n /**\n * If HTTPS endpoints should be forcefully used if the original URL was HTTPS-based\n * @default {true}\n */\n inferHttpsEndpoint: boolean;\n}\n","import type { IActionRdfMetadata, IActorRdfMetadataArgs, IActorRdfMetadataOutput } from '@comunica/bus-rdf-metadata';\nimport { ActorRdfMetadata } from '@comunica/bus-rdf-metadata';\nimport type { IActorTest } from '@comunica/core';\nimport type * as RDF from '@rdfjs/types';\nimport { Readable } from 'readable-stream';\n\n/**\n * An RDF Metadata Actor that splits off the metadata based on the existence of a 'foaf:primaryTopic' link.\n * Only non-triple quad streams are supported.\n */\nexport class ActorRdfMetadataPrimaryTopic extends ActorRdfMetadata {\n private readonly metadataToData: boolean;\n private readonly dataToMetadataOnInvalidMetadataGraph: boolean;\n\n public constructor(args: IActorRdfMetadataPrimaryTopicArgs) {\n super(args);\n }\n\n public async test(action: IActionRdfMetadata): Promise {\n if (action.triples) {\n throw new Error('This actor only supports non-triple quad streams.');\n }\n return true;\n }\n\n public async run(action: IActionRdfMetadata): Promise {\n const data: Readable = new Readable({ objectMode: true });\n const metadata: Readable = new Readable({ objectMode: true });\n\n // Delay attachment of listeners until the data or metadata stream is being read.\n const attachListeners = (): void => {\n // Attach listeners only once\n data._read = metadata._read = () => {\n // Do nothing\n };\n\n // Forward errors\n action.quads.on('error', (error) => {\n data.emit('error', error);\n metadata.emit('error', error);\n });\n\n // First pass over data to categorize in graphs,\n // and to detect the primaryTopic triple.\n const graphs: Record = {};\n let endpointIdentifier: string | undefined;\n const primaryTopics: Record = {};\n action.quads.on('data', (quad) => {\n if (quad.predicate.value === 'http://rdfs.org/ns/void#subset' &&\n quad.object.value === action.url) {\n endpointIdentifier = quad.subject.value;\n } else if (quad.predicate.value === 'http://xmlns.com/foaf/0.1/primaryTopic') {\n primaryTopics[quad.object.value] = quad.subject.value;\n }\n let quads: RDF.Quad[] = graphs[quad.graph.value];\n if (!quads) {\n quads = graphs[quad.graph.value] = [];\n }\n quads.push(quad);\n });\n\n // When the stream has finished,\n // determine the appropriate metadata graph,\n // and emit all quads to the appropriate streams.\n action.quads.on('end', () => {\n const metadataGraph: string | undefined = endpointIdentifier ? primaryTopics[endpointIdentifier] : undefined;\n for (const graphName in graphs) {\n if (graphName === metadataGraph) {\n for (const quad of graphs[graphName]) {\n metadata.push(quad);\n }\n // Also emit metadata to data if requested\n if (this.metadataToData) {\n for (const quad of graphs[graphName]) {\n data.push(quad);\n }\n }\n } else {\n for (const quad of graphs[graphName]) {\n data.push(quad);\n }\n if (!metadataGraph && this.dataToMetadataOnInvalidMetadataGraph) {\n for (const quad of graphs[graphName]) {\n metadata.push(quad);\n }\n }\n }\n }\n data.push(null);\n metadata.push(null);\n });\n };\n data._read = metadata._read = () => {\n attachListeners();\n };\n\n return { data, metadata };\n }\n}\n\nexport interface IActorRdfMetadataPrimaryTopicArgs extends IActorRdfMetadataArgs {\n /**\n * If detected metadata triples should also be emitted as data triples\n * @default {false}\n */\n metadataToData: boolean;\n /**\n * If all data should also be seen as metadata when no metadata graph was detected\n * @default {true}\n */\n dataToMetadataOnInvalidMetadataGraph: boolean;\n}\n","import type {\n IActionRdfParseHtml,\n IActorRdfParseHtmlArgs,\n IActorRdfParseHtmlOutput,\n} from '@comunica/bus-rdf-parse-html';\nimport { ActorRdfParseHtml } from '@comunica/bus-rdf-parse-html';\nimport type { IActorTest } from '@comunica/core';\nimport { MicrodataRdfParser } from 'microdata-rdf-streaming-parser';\n\n/**\n * A comunica Microdata RDF Parse Html Actor.\n */\nexport class ActorRdfParseHtmlMicrodata extends ActorRdfParseHtml {\n public constructor(args: IActorRdfParseHtmlArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfParseHtml): Promise {\n return true;\n }\n\n public async run(action: IActionRdfParseHtml): Promise {\n const mediaType = action.headers ? action.headers.get('content-type') : null;\n const xmlMode = mediaType?.includes('xml');\n\n const htmlParseListener = new MicrodataRdfParser({ baseIRI: action.baseIRI, xmlMode });\n htmlParseListener.on('error', action.error);\n htmlParseListener.on('data', action.emit);\n // eslint-disable-next-line ts/unbound-method\n const onTagEndOld = htmlParseListener.onEnd;\n htmlParseListener.onEnd = () => {\n onTagEndOld.call(htmlParseListener);\n action.end();\n };\n return { htmlParseListener };\n }\n}\n","import type {\n IActionRdfParseHtml,\n IActorRdfParseHtmlOutput,\n IActorRdfParseHtmlArgs,\n} from '@comunica/bus-rdf-parse-html';\nimport { ActorRdfParseHtml } from '@comunica/bus-rdf-parse-html';\nimport type { IActorTest } from '@comunica/core';\nimport { RdfaParser } from 'rdfa-streaming-parser';\n\n/**\n * A comunica RDFa RDF Parse Html Actor.\n */\nexport class ActorRdfParseHtmlRdfa extends ActorRdfParseHtml {\n public constructor(args: IActorRdfParseHtmlArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfParseHtml): Promise {\n return true;\n }\n\n public async run(action: IActionRdfParseHtml): Promise {\n const mediaType = action.headers ? action.headers.get('content-type') : null;\n const language = (action.headers && action.headers.get('content-language')) ?? undefined;\n const profile = mediaType && mediaType.includes('xml') ? 'xhtml' : 'html';\n\n const htmlParseListener = new RdfaParser({ baseIRI: action.baseIRI, profile, language });\n htmlParseListener.on('error', action.error);\n htmlParseListener.on('data', action.emit);\n // eslint-disable-next-line ts/unbound-method\n const onTagEndOld = htmlParseListener.onEnd;\n htmlParseListener.onEnd = () => {\n onTagEndOld.call(htmlParseListener);\n action.end();\n };\n return { htmlParseListener };\n }\n}\n","import type { MediatorRdfParseHandle, MediatorRdfParseMediaTypes } from '@comunica/bus-rdf-parse';\nimport type {\n IActionRdfParseHtml,\n IActorRdfParseHtmlOutput,\n IActorRdfParseHtmlArgs,\n} from '@comunica/bus-rdf-parse-html';\nimport { ActorRdfParseHtml } from '@comunica/bus-rdf-parse-html';\nimport type { IActorTest } from '@comunica/core';\nimport { HtmlScriptListener } from './HtmlScriptListener';\n\n/**\n * A HTML script RDF Parse actor that listens on the 'rdf-parse' bus.\n *\n * It is able to extract and parse any RDF serialization from script tags in HTML files\n * and announce the presence of them by media type.\n */\nexport class ActorRdfParseHtmlScript extends ActorRdfParseHtml {\n private readonly mediatorRdfParseMediatypes: MediatorRdfParseMediaTypes;\n private readonly mediatorRdfParseHandle: MediatorRdfParseHandle;\n\n public constructor(args: IActorRdfParseHtmlScriptArgs) {\n super(args);\n }\n\n public async test(_action: IActionRdfParseHtml): Promise {\n return true;\n }\n\n public async run(action: IActionRdfParseHtml): Promise {\n const supportedTypes: Record = (await this.mediatorRdfParseMediatypes\n .mediate({ context: action.context, mediaTypes: true })).mediaTypes;\n const htmlParseListener = new HtmlScriptListener(\n this.mediatorRdfParseHandle,\n action.emit,\n action.error,\n action.end,\n supportedTypes,\n action.context,\n action.baseIRI,\n action.headers,\n );\n return { htmlParseListener };\n }\n}\n\nexport interface IActorRdfParseHtmlScriptArgs extends IActorRdfParseHtmlArgs {\n /**\n * The RDF Parse mediator for collecting media types\n */\n mediatorRdfParseMediatypes: MediatorRdfParseMediaTypes;\n /**\n * The RDF Parse mediator for handling parsing\n */\n mediatorRdfParseHandle: MediatorRdfParseHandle;\n}\n","import type { MediatorRdfParseHandle } from '@comunica/bus-rdf-parse';\nimport type { IHtmlParseListener } from '@comunica/bus-rdf-parse-html';\nimport { KeysRdfParseHtmlScript } from '@comunica/context-entries';\nimport type { IActionContext } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { Readable } from 'readable-stream';\nimport { resolve as resolveIri } from 'relative-to-absolute-iri';\n\n/**\n * An HTML parse listeners that detects `.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. )\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","'use strict'\n\nvar COMPATIBLE_ENCODING_PATTERN = /^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i\nvar WS_TRIM_PATTERN = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g\nvar WS_CHAR_PATTERN = /\\s|\\uFEFF|\\xA0/\nvar WS_FOLD_PATTERN = /\\r?\\n[\\x20\\x09]+/g\nvar DELIMITER_PATTERN = /[;,\"]/\nvar WS_DELIMITER_PATTERN = /[;,\"]|\\s/\n\n/**\n * Token character pattern\n * @type {RegExp}\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nvar TOKEN_PATTERN = /^[!#$%&'*+\\-\\.^_`|~\\da-zA-Z]+$/\n\nvar STATE = {\n IDLE: 1 << 0,\n URI: 1 << 1,\n ATTR: 1 << 2,\n}\n\nfunction trim( value ) {\n return value.replace( WS_TRIM_PATTERN, '' )\n}\n\nfunction hasWhitespace( value ) {\n return WS_CHAR_PATTERN.test( value )\n}\n\nfunction skipWhitespace( value, offset ) {\n while( hasWhitespace( value[offset] ) ) {\n offset++\n }\n return offset\n}\n\nfunction needsQuotes( value ) {\n return WS_DELIMITER_PATTERN.test( value ) ||\n !TOKEN_PATTERN.test( value )\n}\n\n/**\n * Shallow compares two objects to check if their properties match.\n * @param {object} object1 First object to compare.\n * @param {object} object2 Second object to compare.\n * @returns {boolean} Do the objects have matching properties.\n */\nfunction shallowCompareObjects( object1, object2 ) {\n return (\n Object.keys( object1 ).length === Object.keys( object2 ).length &&\n Object.keys( object1 ).every(\n ( key ) => key in object2 && object1[ key ] === object2[ key ]\n )\n );\n}\n\nclass Link {\n\n /**\n * Link\n * @constructor\n * @param {String} [value]\n * @returns {Link}\n */\n constructor( value ) {\n\n /** @type {Array} URI references */\n this.refs = []\n\n if( value ) {\n this.parse( value )\n }\n\n }\n\n /**\n * Get refs with given relation type\n * @param {String} value\n * @returns {Array}\n */\n rel( value ) {\n\n var links = []\n var type = value.toLowerCase()\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( typeof this.refs[ i ].rel === 'string' && this.refs[ i ].rel.toLowerCase() === type ) {\n links.push( this.refs[ i ] )\n }\n }\n\n return links\n\n }\n\n /**\n * Get refs where given attribute has a given value\n * @param {String} attr\n * @param {String} value\n * @returns {Array}\n */\n get( attr, value ) {\n\n attr = attr.toLowerCase()\n value = value.toLowerCase()\n\n var links = []\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( typeof this.refs[ i ][ attr ] === 'string' && this.refs[ i ][ attr ].toLowerCase() === value ) {\n links.push( this.refs[ i ] )\n }\n }\n\n return links\n\n }\n\n /** Sets a reference. */\n set( link ) {\n this.refs.push( link )\n return this\n }\n\n /**\n * Sets a reference if a reference with similar properties isn’t already set.\n */\n setUnique( link ) {\n\n if( !this.refs.some(( ref ) => shallowCompareObjects( ref, link )) ) {\n this.refs.push( link )\n }\n\n return this\n\n }\n\n has( attr, value ) {\n\n attr = attr.toLowerCase()\n value = value.toLowerCase()\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( typeof this.refs[ i ][ attr ] === 'string' && this.refs[ i ][ attr ].toLowerCase() === value ) {\n return true\n }\n }\n\n return false\n\n }\n\n parse( value, offset ) {\n\n offset = offset || 0\n value = offset ? value.slice( offset ) : value\n\n // Trim & unfold folded lines\n value = trim( value ).replace( WS_FOLD_PATTERN, '' )\n\n var state = STATE.IDLE\n var length = value.length\n var offset = 0\n var ref = null\n\n while( offset < length ) {\n if( state === STATE.IDLE ) {\n if( hasWhitespace( value[offset] ) ) {\n offset++\n continue\n } else if( value[offset] === '<' ) {\n if( ref != null ) {\n ref.rel != null ?\n this.refs.push( ...Link.expandRelations( ref ) ) :\n this.refs.push( ref )\n }\n var end = value.indexOf( '>', offset )\n if( end === -1 ) throw new Error( 'Expected end of URI delimiter at offset ' + offset )\n ref = { uri: value.slice( offset + 1, end ) }\n // this.refs.push( ref )\n offset = end\n state = STATE.URI\n } else {\n throw new Error( 'Unexpected character \"' + value[offset] + '\" at offset ' + offset )\n }\n offset++\n } else if( state === STATE.URI ) {\n if( hasWhitespace( value[offset] ) ) {\n offset++\n continue\n } else if( value[offset] === ';' ) {\n state = STATE.ATTR\n offset++\n } else if( value[offset] === ',' ) {\n state = STATE.IDLE\n offset++\n } else {\n throw new Error( 'Unexpected character \"' + value[offset] + '\" at offset ' + offset )\n }\n } else if( state === STATE.ATTR ) {\n if( value[offset] ===';' || hasWhitespace( value[offset] ) ) {\n offset++\n continue\n }\n var end = value.indexOf( '=', offset )\n if( end === -1 ) end = value.indexOf( ';', offset )\n if( end === -1 ) end = value.length\n var attr = trim( value.slice( offset, end ) ).toLowerCase()\n var attrValue = ''\n offset = end + 1\n offset = skipWhitespace( value, offset )\n if( value[offset] === '\"' ) {\n offset++\n while( offset < length ) {\n if( value[offset] === '\"' ) {\n offset++; break\n }\n if( value[offset] === '\\\\' ) {\n offset++\n }\n attrValue += value[offset]\n offset++\n }\n } else {\n var end = offset + 1\n while( !DELIMITER_PATTERN.test( value[end] ) && end < length ) {\n end++\n }\n attrValue = value.slice( offset, end )\n offset = end\n }\n if( ref[ attr ] && Link.isSingleOccurenceAttr( attr ) ) {\n // Ignore multiples of attributes which may only appear once\n } else if( attr[ attr.length - 1 ] === '*' ) {\n ref[ attr ] = Link.parseExtendedValue( attrValue )\n } else {\n attrValue = attr === 'type' ?\n attrValue.toLowerCase() : attrValue\n if( ref[ attr ] != null ) {\n if( Array.isArray( ref[ attr ] ) ) {\n ref[ attr ].push( attrValue )\n } else {\n ref[ attr ] = [ ref[ attr ], attrValue ]\n }\n } else {\n ref[ attr ] = attrValue\n }\n }\n switch( value[offset] ) {\n case ',': state = STATE.IDLE; break\n case ';': state = STATE.ATTR; break\n }\n offset++\n } else {\n throw new Error( 'Unknown parser state \"' + state + '\"' )\n }\n }\n\n if( ref != null ) {\n ref.rel != null ?\n this.refs.push( ...Link.expandRelations( ref ) ) :\n this.refs.push( ref )\n }\n\n ref = null\n\n return this\n\n }\n\n toString() {\n\n var refs = []\n var link = ''\n var ref = null\n\n for( var i = 0; i < this.refs.length; i++ ) {\n ref = this.refs[i]\n link = Object.keys( this.refs[i] ).reduce( function( link, attr ) {\n if( attr === 'uri' ) return link\n return link + '; ' + Link.formatAttribute( attr, ref[ attr ] )\n }, '<' + ref.uri + '>' )\n refs.push( link )\n }\n\n return refs.join( ', ' )\n\n }\n\n}\n\n/**\n * Determines whether an encoding can be\n * natively handled with a `Buffer`\n * @param {String} value\n * @returns {Boolean}\n */\nLink.isCompatibleEncoding = function( value ) {\n return COMPATIBLE_ENCODING_PATTERN.test( value )\n}\n\nLink.parse = function( value, offset ) {\n return new Link().parse( value, offset )\n}\n\nLink.isSingleOccurenceAttr = function( attr ) {\n return attr === 'rel' || attr === 'type' || attr === 'media' ||\n attr === 'title' || attr === 'title*'\n}\n\nLink.isTokenAttr = function( attr ) {\n return attr === 'rel' || attr === 'type' || attr === 'anchor'\n}\n\nLink.escapeQuotes = function( value ) {\n return value.replace( /\"/g, '\\\\\"' )\n}\n\nLink.expandRelations = function( ref ) {\n var rels = ref.rel.split( ' ' )\n return rels.map( function( rel ) {\n var value = Object.assign( {}, ref )\n value.rel = rel\n return value\n })\n}\n\n/**\n * Parses an extended value and attempts to decode it\n * @internal\n * @param {String} value\n * @return {Object}\n */\nLink.parseExtendedValue = function( value ) {\n var parts = /([^']+)?(?:'([^']*)')?(.+)/.exec( value )\n return {\n language: parts[2].toLowerCase(),\n encoding: Link.isCompatibleEncoding( parts[1] ) ?\n null : parts[1].toLowerCase(),\n value: Link.isCompatibleEncoding( parts[1] ) ?\n decodeURIComponent( parts[3] ) : parts[3]\n }\n}\n\n/**\n * Format a given extended attribute and it's value\n * @param {String} attr\n * @param {Object} data\n * @return {String}\n */\nLink.formatExtendedAttribute = function( attr, data ) {\n\n var encoding = ( data.encoding || 'utf-8' ).toUpperCase()\n var language = data.language || 'en'\n\n var encodedValue = ''\n\n if( Buffer.isBuffer( data.value ) && Link.isCompatibleEncoding( encoding ) ) {\n encodedValue = data.value.toString( encoding )\n } else if( Buffer.isBuffer( data.value ) ) {\n encodedValue = data.value.toString( 'hex' )\n .replace( /[0-9a-f]{2}/gi, '%$1' )\n } else {\n encodedValue = encodeURIComponent( data.value )\n }\n\n return attr + '=' + encoding + '\\'' +\n language + '\\'' + encodedValue\n\n}\n\n/**\n * Format a given attribute and it's value\n * @param {String} attr\n * @param {String|Object} value\n * @return {String}\n */\nLink.formatAttribute = function( attr, value ) {\n\n if( Array.isArray( value ) ) {\n return value.map(( item ) => {\n return Link.formatAttribute( attr, item )\n }).join( '; ' )\n }\n\n if( attr[ attr.length - 1 ] === '*' || typeof value !== 'string' ) {\n return Link.formatExtendedAttribute( attr, value )\n }\n\n if( Link.isTokenAttr( attr ) ) {\n value = needsQuotes( value ) ?\n '\"' + Link.escapeQuotes( value ) + '\"' :\n Link.escapeQuotes( value )\n } else if( needsQuotes( value ) ) {\n value = encodeURIComponent( value )\n // We don't need to escape <,> <;> within quotes\n value = value\n .replace( /%20/g, ' ' )\n .replace( /%2C/g, ',' )\n .replace( /%3B/g, ';' )\n\n value = '\"' + value + '\"'\n }\n\n return attr + '=' + value\n\n}\n\nmodule.exports = Link\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar DELETE = 'delete';\n\n// Constants describing the size of trie nodes.\nvar SHIFT = 5; // Resulted in best performance after ______?\nvar SIZE = 1 << SHIFT;\nvar MASK = SIZE - 1;\n\n// A consistent shared value representing \"not set\" which equals nothing other\n// than itself, and nothing that could be provided externally.\nvar NOT_SET = {};\n\n// Boolean references, Rough equivalent of `bool &`.\nfunction MakeRef() {\n return { value: false };\n}\n\nfunction SetRef(ref) {\n if (ref) {\n ref.value = true;\n }\n}\n\n// A function which returns a value representing an \"owner\" for transient writes\n// to tries. The return value will only ever equal itself, and will not equal\n// the return of any subsequent call of this function.\nfunction OwnerID() {}\n\nfunction ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n}\n\nfunction wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction wholeSlice(begin, end, size) {\n return (\n ((begin === 0 && !isNeg(begin)) ||\n (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size))\n );\n}\n\nfunction resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n}\n\nfunction resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n}\n\nfunction resolveIndex(index, size, defaultIndex) {\n // Sanitize indices using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n return index === undefined\n ? defaultIndex\n : isNeg(index)\n ? size === Infinity\n ? size\n : Math.max(0, size + index) | 0\n : size === undefined || size === index\n ? index\n : Math.min(size, index) | 0;\n}\n\nfunction isNeg(value) {\n // Account for -0 which is negative, but not less than 0.\n return value < 0 || (value === 0 && 1 / value === -Infinity);\n}\n\nvar IS_COLLECTION_SYMBOL = '@@__IMMUTABLE_ITERABLE__@@';\n\nfunction isCollection(maybeCollection) {\n return Boolean(maybeCollection && maybeCollection[IS_COLLECTION_SYMBOL]);\n}\n\nvar IS_KEYED_SYMBOL = '@@__IMMUTABLE_KEYED__@@';\n\nfunction isKeyed(maybeKeyed) {\n return Boolean(maybeKeyed && maybeKeyed[IS_KEYED_SYMBOL]);\n}\n\nvar IS_INDEXED_SYMBOL = '@@__IMMUTABLE_INDEXED__@@';\n\nfunction isIndexed(maybeIndexed) {\n return Boolean(maybeIndexed && maybeIndexed[IS_INDEXED_SYMBOL]);\n}\n\nfunction isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n}\n\nvar Collection = function Collection(value) {\n return isCollection(value) ? value : Seq(value);\n};\n\nvar KeyedCollection = /*@__PURE__*/(function (Collection) {\n function KeyedCollection(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n if ( Collection ) KeyedCollection.__proto__ = Collection;\n KeyedCollection.prototype = Object.create( Collection && Collection.prototype );\n KeyedCollection.prototype.constructor = KeyedCollection;\n\n return KeyedCollection;\n}(Collection));\n\nvar IndexedCollection = /*@__PURE__*/(function (Collection) {\n function IndexedCollection(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n if ( Collection ) IndexedCollection.__proto__ = Collection;\n IndexedCollection.prototype = Object.create( Collection && Collection.prototype );\n IndexedCollection.prototype.constructor = IndexedCollection;\n\n return IndexedCollection;\n}(Collection));\n\nvar SetCollection = /*@__PURE__*/(function (Collection) {\n function SetCollection(value) {\n return isCollection(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n if ( Collection ) SetCollection.__proto__ = Collection;\n SetCollection.prototype = Object.create( Collection && Collection.prototype );\n SetCollection.prototype.constructor = SetCollection;\n\n return SetCollection;\n}(Collection));\n\nCollection.Keyed = KeyedCollection;\nCollection.Indexed = IndexedCollection;\nCollection.Set = SetCollection;\n\nvar IS_SEQ_SYMBOL = '@@__IMMUTABLE_SEQ__@@';\n\nfunction isSeq(maybeSeq) {\n return Boolean(maybeSeq && maybeSeq[IS_SEQ_SYMBOL]);\n}\n\nvar IS_RECORD_SYMBOL = '@@__IMMUTABLE_RECORD__@@';\n\nfunction isRecord(maybeRecord) {\n return Boolean(maybeRecord && maybeRecord[IS_RECORD_SYMBOL]);\n}\n\nfunction isImmutable(maybeImmutable) {\n return isCollection(maybeImmutable) || isRecord(maybeImmutable);\n}\n\nvar IS_ORDERED_SYMBOL = '@@__IMMUTABLE_ORDERED__@@';\n\nfunction isOrdered(maybeOrdered) {\n return Boolean(maybeOrdered && maybeOrdered[IS_ORDERED_SYMBOL]);\n}\n\nvar ITERATE_KEYS = 0;\nvar ITERATE_VALUES = 1;\nvar ITERATE_ENTRIES = 2;\n\nvar REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nvar ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\nvar Iterator = function Iterator(next) {\n this.next = next;\n};\n\nIterator.prototype.toString = function toString () {\n return '[Iterator]';\n};\n\nIterator.KEYS = ITERATE_KEYS;\nIterator.VALUES = ITERATE_VALUES;\nIterator.ENTRIES = ITERATE_ENTRIES;\n\nIterator.prototype.inspect = Iterator.prototype.toSource = function () {\n return this.toString();\n};\nIterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n};\n\nfunction iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult\n ? (iteratorResult.value = value)\n : (iteratorResult = {\n value: value,\n done: false,\n });\n return iteratorResult;\n}\n\nfunction iteratorDone() {\n return { value: undefined, done: true };\n}\n\nfunction hasIterator(maybeIterable) {\n if (Array.isArray(maybeIterable)) {\n // IE11 trick as it does not support `Symbol.iterator`\n return true;\n }\n\n return !!getIteratorFn(maybeIterable);\n}\n\nfunction isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n}\n\nfunction getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n}\n\nfunction getIteratorFn(iterable) {\n var iteratorFn =\n iterable &&\n ((REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nfunction isEntriesIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.entries;\n}\n\nfunction isKeysIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.keys;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isArrayLike(value) {\n if (Array.isArray(value) || typeof value === 'string') {\n return true;\n }\n\n return (\n value &&\n typeof value === 'object' &&\n Number.isInteger(value.length) &&\n value.length >= 0 &&\n (value.length === 0\n ? // Only {length: 0} is considered Array-like.\n Object.keys(value).length === 1\n : // An object is only Array-like if it has a property where the last value\n // in the array-like may be found (which could be undefined).\n value.hasOwnProperty(value.length - 1))\n );\n}\n\nvar Seq = /*@__PURE__*/(function (Collection) {\n function Seq(value) {\n return value === undefined || value === null\n ? emptySequence()\n : isImmutable(value)\n ? value.toSeq()\n : seqFromValue(value);\n }\n\n if ( Collection ) Seq.__proto__ = Collection;\n Seq.prototype = Object.create( Collection && Collection.prototype );\n Seq.prototype.constructor = Seq;\n\n Seq.prototype.toSeq = function toSeq () {\n return this;\n };\n\n Seq.prototype.toString = function toString () {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function cacheResult () {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function __iterate (fn, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n while (i !== size) {\n var entry = cache[reverse ? size - ++i : i++];\n if (fn(entry[1], entry[0], this) === false) {\n break;\n }\n }\n return i;\n }\n return this.__iterateUncached(fn, reverse);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function __iterator (type, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var entry = cache[reverse ? size - ++i : i++];\n return iteratorValue(type, entry[0], entry[1]);\n });\n }\n return this.__iteratorUncached(type, reverse);\n };\n\n return Seq;\n}(Collection));\n\nvar KeyedSeq = /*@__PURE__*/(function (Seq) {\n function KeyedSeq(value) {\n return value === undefined || value === null\n ? emptySequence().toKeyedSeq()\n : isCollection(value)\n ? isKeyed(value)\n ? value.toSeq()\n : value.fromEntrySeq()\n : isRecord(value)\n ? value.toSeq()\n : keyedSeqFromValue(value);\n }\n\n if ( Seq ) KeyedSeq.__proto__ = Seq;\n KeyedSeq.prototype = Object.create( Seq && Seq.prototype );\n KeyedSeq.prototype.constructor = KeyedSeq;\n\n KeyedSeq.prototype.toKeyedSeq = function toKeyedSeq () {\n return this;\n };\n\n return KeyedSeq;\n}(Seq));\n\nvar IndexedSeq = /*@__PURE__*/(function (Seq) {\n function IndexedSeq(value) {\n return value === undefined || value === null\n ? emptySequence()\n : isCollection(value)\n ? isKeyed(value)\n ? value.entrySeq()\n : value.toIndexedSeq()\n : isRecord(value)\n ? value.toSeq().entrySeq()\n : indexedSeqFromValue(value);\n }\n\n if ( Seq ) IndexedSeq.__proto__ = Seq;\n IndexedSeq.prototype = Object.create( Seq && Seq.prototype );\n IndexedSeq.prototype.constructor = IndexedSeq;\n\n IndexedSeq.of = function of (/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function toIndexedSeq () {\n return this;\n };\n\n IndexedSeq.prototype.toString = function toString () {\n return this.__toString('Seq [', ']');\n };\n\n return IndexedSeq;\n}(Seq));\n\nvar SetSeq = /*@__PURE__*/(function (Seq) {\n function SetSeq(value) {\n return (\n isCollection(value) && !isAssociative(value) ? value : IndexedSeq(value)\n ).toSetSeq();\n }\n\n if ( Seq ) SetSeq.__proto__ = Seq;\n SetSeq.prototype = Object.create( Seq && Seq.prototype );\n SetSeq.prototype.constructor = SetSeq;\n\n SetSeq.of = function of (/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function toSetSeq () {\n return this;\n };\n\n return SetSeq;\n}(Seq));\n\nSeq.isSeq = isSeq;\nSeq.Keyed = KeyedSeq;\nSeq.Set = SetSeq;\nSeq.Indexed = IndexedSeq;\n\nSeq.prototype[IS_SEQ_SYMBOL] = true;\n\n// #pragma Root Sequences\n\nvar ArraySeq = /*@__PURE__*/(function (IndexedSeq) {\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n if ( IndexedSeq ) ArraySeq.__proto__ = IndexedSeq;\n ArraySeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ArraySeq.prototype.constructor = ArraySeq;\n\n ArraySeq.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function __iterate (fn, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n while (i !== size) {\n var ii = reverse ? size - ++i : i++;\n if (fn(array[ii], ii, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ArraySeq.prototype.__iterator = function __iterator (type, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var ii = reverse ? size - ++i : i++;\n return iteratorValue(type, ii, array[ii]);\n });\n };\n\n return ArraySeq;\n}(IndexedSeq));\n\nvar ObjectSeq = /*@__PURE__*/(function (KeyedSeq) {\n function ObjectSeq(object) {\n var keys = Object.keys(object).concat(\n Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []\n );\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n if ( KeyedSeq ) ObjectSeq.__proto__ = KeyedSeq;\n ObjectSeq.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ObjectSeq.prototype.constructor = ObjectSeq;\n\n ObjectSeq.prototype.get = function get (key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function has (key) {\n return hasOwnProperty.call(this._object, key);\n };\n\n ObjectSeq.prototype.__iterate = function __iterate (fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n while (i !== size) {\n var key = keys[reverse ? size - ++i : i++];\n if (fn(object[key], key, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ObjectSeq.prototype.__iterator = function __iterator (type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var key = keys[reverse ? size - ++i : i++];\n return iteratorValue(type, key, object[key]);\n });\n };\n\n return ObjectSeq;\n}(KeyedSeq));\nObjectSeq.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar CollectionSeq = /*@__PURE__*/(function (IndexedSeq) {\n function CollectionSeq(collection) {\n this._collection = collection;\n this.size = collection.length || collection.size;\n }\n\n if ( IndexedSeq ) CollectionSeq.__proto__ = IndexedSeq;\n CollectionSeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n CollectionSeq.prototype.constructor = CollectionSeq;\n\n CollectionSeq.prototype.__iterateUncached = function __iterateUncached (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n CollectionSeq.prototype.__iteratorUncached = function __iteratorUncached (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n return CollectionSeq;\n}(IndexedSeq));\n\n// # pragma Helper functions\n\nvar EMPTY_SEQ;\n\nfunction emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n}\n\nfunction keyedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq.fromEntrySeq();\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of [k, v] entries, or keyed object: ' +\n value\n );\n}\n\nfunction indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq;\n }\n throw new TypeError(\n 'Expected Array or collection object of values: ' + value\n );\n}\n\nfunction seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return isEntriesIterable(value)\n ? seq.fromEntrySeq()\n : isKeysIterable(value)\n ? seq.toSetSeq()\n : seq;\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of values, or keyed object: ' + value\n );\n}\n\nfunction maybeIndexedSeqFromValue(value) {\n return isArrayLike(value)\n ? new ArraySeq(value)\n : hasIterator(value)\n ? new CollectionSeq(value)\n : undefined;\n}\n\nvar IS_MAP_SYMBOL = '@@__IMMUTABLE_MAP__@@';\n\nfunction isMap(maybeMap) {\n return Boolean(maybeMap && maybeMap[IS_MAP_SYMBOL]);\n}\n\nfunction isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n}\n\nfunction isValueObject(maybeValue) {\n return Boolean(\n maybeValue &&\n typeof maybeValue.equals === 'function' &&\n typeof maybeValue.hashCode === 'function'\n );\n}\n\n/**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections are Value Objects: they implement `equals()`\n * and `hashCode()`.\n */\nfunction is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (\n typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function'\n ) {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n return !!(\n isValueObject(valueA) &&\n isValueObject(valueB) &&\n valueA.equals(valueB)\n );\n}\n\nvar imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2\n ? Math.imul\n : function imul(a, b) {\n a |= 0; // int\n b |= 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0)) | 0; // int\n };\n\n// v8 has an optimization for storing 31-bit signed numbers.\n// Values which have either 00 or 11 as the high order bits qualify.\n// This function drops the highest order bit in a signed number, maintaining\n// the sign bit.\nfunction smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xbfffffff);\n}\n\nvar defaultValueOf = Object.prototype.valueOf;\n\nfunction hash(o) {\n if (o == null) {\n return hashNullish(o);\n }\n\n if (typeof o.hashCode === 'function') {\n // Drop any high bits from accidentally long hash codes.\n return smi(o.hashCode(o));\n }\n\n var v = valueOf(o);\n\n if (v == null) {\n return hashNullish(v);\n }\n\n switch (typeof v) {\n case 'boolean':\n // The hash values for built-in constants are a 1 value for each 5-byte\n // shift region expect for the first, which encodes the value. This\n // reduces the odds of a hash collision for these common values.\n return v ? 0x42108421 : 0x42108420;\n case 'number':\n return hashNumber(v);\n case 'string':\n return v.length > STRING_HASH_CACHE_MIN_STRLEN\n ? cachedHashString(v)\n : hashString(v);\n case 'object':\n case 'function':\n return hashJSObj(v);\n case 'symbol':\n return hashSymbol(v);\n default:\n if (typeof v.toString === 'function') {\n return hashString(v.toString());\n }\n throw new Error('Value type ' + typeof v + ' cannot be hashed.');\n }\n}\n\nfunction hashNullish(nullish) {\n return nullish === null ? 0x42108422 : /* undefined */ 0x42108423;\n}\n\n// Compress arbitrarily large numbers into smi hashes.\nfunction hashNumber(n) {\n if (n !== n || n === Infinity) {\n return 0;\n }\n var hash = n | 0;\n if (hash !== n) {\n hash ^= n * 0xffffffff;\n }\n while (n > 0xffffffff) {\n n /= 0xffffffff;\n hash ^= n;\n }\n return smi(hash);\n}\n\nfunction cachedHashString(string) {\n var hashed = stringHashCache[string];\n if (hashed === undefined) {\n hashed = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hashed;\n }\n return hashed;\n}\n\n// http://jsperf.com/hashing-strings\nfunction hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hashed = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hashed = (31 * hashed + string.charCodeAt(ii)) | 0;\n }\n return smi(hashed);\n}\n\nfunction hashSymbol(sym) {\n var hashed = symbolMap[sym];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = nextHash();\n\n symbolMap[sym] = hashed;\n\n return hashed;\n}\n\nfunction hashJSObj(obj) {\n var hashed;\n if (usingWeakMap) {\n hashed = weakMap.get(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = obj[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n if (!canDefineProperty) {\n hashed = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = getIENodeHash(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = nextHash();\n\n if (usingWeakMap) {\n weakMap.set(obj, hashed);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: hashed,\n });\n } else if (\n obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable\n ) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function () {\n return this.constructor.prototype.propertyIsEnumerable.apply(\n this,\n arguments\n );\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hashed;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hashed;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hashed;\n}\n\n// Get references to ES5 object methods.\nvar isExtensible = Object.isExtensible;\n\n// True if Object.defineProperty works as expected. IE8 fails this test.\nvar canDefineProperty = (function () {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n})();\n\n// IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n// and avoid memory leaks from the IE cloneNode bug.\nfunction getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n}\n\nfunction valueOf(obj) {\n return obj.valueOf !== defaultValueOf && typeof obj.valueOf === 'function'\n ? obj.valueOf(obj)\n : obj;\n}\n\nfunction nextHash() {\n var nextHash = ++_objHashUID;\n if (_objHashUID & 0x40000000) {\n _objHashUID = 0;\n }\n return nextHash;\n}\n\n// If possible, use a WeakMap.\nvar usingWeakMap = typeof WeakMap === 'function';\nvar weakMap;\nif (usingWeakMap) {\n weakMap = new WeakMap();\n}\n\nvar symbolMap = Object.create(null);\n\nvar _objHashUID = 0;\n\nvar UID_HASH_KEY = '__immutablehash__';\nif (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n}\n\nvar STRING_HASH_CACHE_MIN_STRLEN = 16;\nvar STRING_HASH_CACHE_MAX_SIZE = 255;\nvar STRING_HASH_CACHE_SIZE = 0;\nvar stringHashCache = {};\n\nvar ToKeyedSequence = /*@__PURE__*/(function (KeyedSeq) {\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n if ( KeyedSeq ) ToKeyedSequence.__proto__ = KeyedSeq;\n ToKeyedSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ToKeyedSequence.prototype.constructor = ToKeyedSequence;\n\n ToKeyedSequence.prototype.get = function get (key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function has (key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function valueSeq () {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function reverse () {\n var this$1$1 = this;\n\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function () { return this$1$1._iter.toSeq().reverse(); };\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function () { return this$1$1._iter.toSeq().map(mapper, context); };\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v, k) { return fn(v, k, this$1$1); }, reverse);\n };\n\n ToKeyedSequence.prototype.__iterator = function __iterator (type, reverse) {\n return this._iter.__iterator(type, reverse);\n };\n\n return ToKeyedSequence;\n}(KeyedSeq));\nToKeyedSequence.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar ToIndexedSequence = /*@__PURE__*/(function (IndexedSeq) {\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( IndexedSeq ) ToIndexedSequence.__proto__ = IndexedSeq;\n ToIndexedSequence.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ToIndexedSequence.prototype.constructor = ToIndexedSequence;\n\n ToIndexedSequence.prototype.includes = function includes (value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(this);\n return this._iter.__iterate(\n function (v) { return fn(v, reverse ? this$1$1.size - ++i : i++, this$1$1); },\n reverse\n );\n };\n\n ToIndexedSequence.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var i = 0;\n reverse && ensureSize(this);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(\n type,\n reverse ? this$1$1.size - ++i : i++,\n step.value,\n step\n );\n });\n };\n\n return ToIndexedSequence;\n}(IndexedSeq));\n\nvar ToSetSequence = /*@__PURE__*/(function (SetSeq) {\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( SetSeq ) ToSetSequence.__proto__ = SetSeq;\n ToSetSequence.prototype = Object.create( SetSeq && SetSeq.prototype );\n ToSetSequence.prototype.constructor = ToSetSequence;\n\n ToSetSequence.prototype.has = function has (key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v) { return fn(v, v, this$1$1); }, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(type, step.value, step.value, step);\n });\n };\n\n return ToSetSequence;\n}(SetSeq));\n\nvar FromEntriesSequence = /*@__PURE__*/(function (KeyedSeq) {\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n if ( KeyedSeq ) FromEntriesSequence.__proto__ = KeyedSeq;\n FromEntriesSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n FromEntriesSequence.prototype.constructor = FromEntriesSequence;\n\n FromEntriesSequence.prototype.entrySeq = function entrySeq () {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (entry) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return fn(\n indexedCollection ? entry.get(1) : entry[1],\n indexedCollection ? entry.get(0) : entry[0],\n this$1$1\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return iteratorValue(\n type,\n indexedCollection ? entry.get(0) : entry[0],\n indexedCollection ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n return FromEntriesSequence;\n}(KeyedSeq));\n\nToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\nfunction flipFactory(collection) {\n var flipSequence = makeSequence(collection);\n flipSequence._iter = collection;\n flipSequence.size = collection.size;\n flipSequence.flip = function () { return collection; };\n flipSequence.reverse = function () {\n var reversedSequence = collection.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function () { return collection.reverse(); };\n return reversedSequence;\n };\n flipSequence.has = function (key) { return collection.includes(key); };\n flipSequence.includes = function (key) { return collection.has(key); };\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(function (v, k) { return fn(k, v, this$1$1) !== false; }, reverse);\n };\n flipSequence.__iteratorUncached = function (type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = collection.__iterator(type, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return collection.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n };\n return flipSequence;\n}\n\nfunction mapFactory(collection, mapper, context) {\n var mappedSequence = makeSequence(collection);\n mappedSequence.size = collection.size;\n mappedSequence.has = function (key) { return collection.has(key); };\n mappedSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v === NOT_SET\n ? notSetValue\n : mapper.call(context, v, key, collection);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(\n function (v, k, c) { return fn(mapper.call(context, v, k, c), k, this$1$1) !== false; },\n reverse\n );\n };\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, collection),\n step\n );\n });\n };\n return mappedSequence;\n}\n\nfunction reverseFactory(collection, useKeys) {\n var this$1$1 = this;\n\n var reversedSequence = makeSequence(collection);\n reversedSequence._iter = collection;\n reversedSequence.size = collection.size;\n reversedSequence.reverse = function () { return collection; };\n if (collection.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(collection);\n flipSequence.reverse = function () { return collection.flip(); };\n return flipSequence;\n };\n }\n reversedSequence.get = function (key, notSetValue) { return collection.get(useKeys ? key : -1 - key, notSetValue); };\n reversedSequence.has = function (key) { return collection.has(useKeys ? key : -1 - key); };\n reversedSequence.includes = function (value) { return collection.includes(value); };\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(collection);\n return collection.__iterate(\n function (v, k) { return fn(v, useKeys ? k : reverse ? this$1$1.size - ++i : i++, this$1$1); },\n !reverse\n );\n };\n reversedSequence.__iterator = function (type, reverse) {\n var i = 0;\n reverse && ensureSize(collection);\n var iterator = collection.__iterator(ITERATE_ENTRIES, !reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n return iteratorValue(\n type,\n useKeys ? entry[0] : reverse ? this$1$1.size - ++i : i++,\n entry[1],\n step\n );\n });\n };\n return reversedSequence;\n}\n\nfunction filterFactory(collection, predicate, context, useKeys) {\n var filterSequence = makeSequence(collection);\n if (useKeys) {\n filterSequence.has = function (key) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, collection);\n };\n filterSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, collection)\n ? v\n : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, collection)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n };\n return filterSequence;\n}\n\nfunction countByFactory(collection, grouper, context) {\n var groups = Map().asMutable();\n collection.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, collection), 0, function (a) { return a + 1; });\n });\n return groups.asImmutable();\n}\n\nfunction groupByFactory(collection, grouper, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = (isOrdered(collection) ? OrderedMap() : Map()).asMutable();\n collection.__iterate(function (v, k) {\n groups.update(\n grouper.call(context, v, k, collection),\n function (a) { return ((a = a || []), a.push(isKeyedIter ? [k, v] : v), a); }\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); }).asImmutable();\n}\n\nfunction partitionFactory(collection, predicate, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = [[], []];\n collection.__iterate(function (v, k) {\n groups[predicate.call(context, v, k, collection) ? 1 : 0].push(\n isKeyedIter ? [k, v] : v\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); });\n}\n\nfunction sliceFactory(collection, begin, end, useKeys) {\n var originalSize = collection.size;\n\n if (wholeSlice(begin, end, originalSize)) {\n return collection;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this collection's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(collection.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(collection);\n\n // If collection.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size =\n sliceSize === 0 ? sliceSize : (collection.size && sliceSize) || undefined;\n\n if (!useKeys && isSeq(collection) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize\n ? collection.get(index + resolvedBegin, notSetValue)\n : notSetValue;\n };\n }\n\n sliceSeq.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return (\n fn(v, useKeys ? k : iterations - 1, this$1$1) !== false &&\n iterations !== sliceSize\n );\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function (type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n if (sliceSize === 0) {\n return new Iterator(iteratorDone);\n }\n var iterator = collection.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function () {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES || step.done) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n }\n return iteratorValue(type, iterations - 1, step.value[1], step);\n });\n };\n\n return sliceSeq;\n}\n\nfunction takeWhileFactory(collection, predicate, context) {\n var takeSequence = makeSequence(collection);\n takeSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n collection.__iterate(\n function (v, k, c) { return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$1$1); }\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function () {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$1$1)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n}\n\nfunction skipWhileFactory(collection, predicate, context, useKeys) {\n var skipSequence = makeSequence(collection);\n skipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function () {\n var step;\n var k;\n var v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n }\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$1$1));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n}\n\nfunction concatFactory(collection, values) {\n var isKeyedCollection = isKeyed(collection);\n var iters = [collection]\n .concat(values)\n .map(function (v) {\n if (!isCollection(v)) {\n v = isKeyedCollection\n ? keyedSeqFromValue(v)\n : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedCollection) {\n v = KeyedCollection(v);\n }\n return v;\n })\n .filter(function (v) { return v.size !== 0; });\n\n if (iters.length === 0) {\n return collection;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (\n singleton === collection ||\n (isKeyedCollection && isKeyed(singleton)) ||\n (isIndexed(collection) && isIndexed(singleton))\n ) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedCollection) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(collection)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(function (sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n }, 0);\n return concatSeq;\n}\n\nfunction flattenFactory(collection, depth, useKeys) {\n var flatSequence = makeSequence(collection);\n flatSequence.__iterateUncached = function (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {\n iter.__iterate(function (v, k) {\n if ((!depth || currentDepth < depth) && isCollection(v)) {\n flatDeep(v, currentDepth + 1);\n } else {\n iterations++;\n if (fn(v, useKeys ? k : iterations - 1, flatSequence) === false) {\n stopped = true;\n }\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(collection, 0);\n return iterations;\n };\n flatSequence.__iteratorUncached = function (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function () {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isCollection(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n };\n return flatSequence;\n}\n\nfunction flatMapFactory(collection, mapper, context) {\n var coerce = collectionClass(collection);\n return collection\n .toSeq()\n .map(function (v, k) { return coerce(mapper.call(context, v, k, collection)); })\n .flatten(true);\n}\n\nfunction interposeFactory(collection, separator) {\n var interposedSequence = makeSequence(collection);\n interposedSequence.size = collection.size && collection.size * 2 - 1;\n interposedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(\n function (v) { return (!iterations || fn(separator, iterations++, this$1$1) !== false) &&\n fn(v, iterations++, this$1$1) !== false; },\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function () {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2\n ? iteratorValue(type, iterations++, separator)\n : iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n}\n\nfunction sortFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedCollection = isKeyed(collection);\n var index = 0;\n var entries = collection\n .toSeq()\n .map(function (v, k) { return [k, v, index++, mapper ? mapper(v, k, collection) : v]; })\n .valueSeq()\n .toArray();\n entries\n .sort(function (a, b) { return comparator(a[3], b[3]) || a[2] - b[2]; })\n .forEach(\n isKeyedCollection\n ? function (v, i) {\n entries[i].length = 2;\n }\n : function (v, i) {\n entries[i] = v[1];\n }\n );\n return isKeyedCollection\n ? KeyedSeq(entries)\n : isIndexed(collection)\n ? IndexedSeq(entries)\n : SetSeq(entries);\n}\n\nfunction maxFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = collection\n .toSeq()\n .map(function (v, k) { return [v, mapper(v, k, collection)]; })\n .reduce(function (a, b) { return (maxCompare(comparator, a[1], b[1]) ? b : a); });\n return entry && entry[0];\n }\n return collection.reduce(function (a, b) { return (maxCompare(comparator, a, b) ? b : a); });\n}\n\nfunction maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (\n (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) ||\n comp > 0\n );\n}\n\nfunction zipWithFactory(keyIter, zipper, iters, zipAll) {\n var zipSequence = makeSequence(keyIter);\n var sizes = new ArraySeq(iters).map(function (i) { return i.size; });\n zipSequence.size = zipAll ? sizes.max() : sizes.min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function (fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function (type, reverse) {\n var iterators = iters.map(\n function (i) { return ((i = Collection(i)), getIterator(reverse ? i.reverse() : i)); }\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function () {\n var steps;\n if (!isDone) {\n steps = iterators.map(function (i) { return i.next(); });\n isDone = zipAll ? steps.every(function (s) { return s.done; }) : steps.some(function (s) { return s.done; });\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(\n null,\n steps.map(function (s) { return s.value; })\n )\n );\n });\n };\n return zipSequence;\n}\n\n// #pragma Helper Functions\n\nfunction reify(iter, seq) {\n return iter === seq ? iter : isSeq(iter) ? seq : iter.constructor(seq);\n}\n\nfunction validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n}\n\nfunction collectionClass(collection) {\n return isKeyed(collection)\n ? KeyedCollection\n : isIndexed(collection)\n ? IndexedCollection\n : SetCollection;\n}\n\nfunction makeSequence(collection) {\n return Object.create(\n (isKeyed(collection)\n ? KeyedSeq\n : isIndexed(collection)\n ? IndexedSeq\n : SetSeq\n ).prototype\n );\n}\n\nfunction cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n }\n return Seq.prototype.cacheResult.call(this);\n}\n\nfunction defaultComparator(a, b) {\n if (a === undefined && b === undefined) {\n return 0;\n }\n\n if (a === undefined) {\n return 1;\n }\n\n if (b === undefined) {\n return -1;\n }\n\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\nfunction arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n}\n\nfunction invariant(condition, error) {\n if (!condition) { throw new Error(error); }\n}\n\nfunction assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n}\n\nfunction coerceKeyPath(keyPath) {\n if (isArrayLike(keyPath) && typeof keyPath !== 'string') {\n return keyPath;\n }\n if (isOrdered(keyPath)) {\n return keyPath.toArray();\n }\n throw new TypeError(\n 'Invalid keyPath: expected Ordered Collection or Array: ' + keyPath\n );\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isPlainObject(value) {\n // The base prototype's toString deals with Argument objects and native namespaces like Math\n if (\n !value ||\n typeof value !== 'object' ||\n toString.call(value) !== '[object Object]'\n ) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n\n // Iteratively going up the prototype chain is needed for cross-realm environments (differing contexts, iframes, etc)\n var parentProto = proto;\n var nextProto = Object.getPrototypeOf(proto);\n while (nextProto !== null) {\n parentProto = nextProto;\n nextProto = Object.getPrototypeOf(parentProto);\n }\n return parentProto === proto;\n}\n\n/**\n * Returns true if the value is a potentially-persistent data structure, either\n * provided by Immutable.js or a plain Array or Object.\n */\nfunction isDataStructure(value) {\n return (\n typeof value === 'object' &&\n (isImmutable(value) || Array.isArray(value) || isPlainObject(value))\n );\n}\n\nfunction quoteString(value) {\n try {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n } catch (_ignoreError) {\n return JSON.stringify(value);\n }\n}\n\nfunction has(collection, key) {\n return isImmutable(collection)\n ? collection.has(key)\n : isDataStructure(collection) && hasOwnProperty.call(collection, key);\n}\n\nfunction get(collection, key, notSetValue) {\n return isImmutable(collection)\n ? collection.get(key, notSetValue)\n : !has(collection, key)\n ? notSetValue\n : typeof collection.get === 'function'\n ? collection.get(key)\n : collection[key];\n}\n\nfunction shallowCopy(from) {\n if (Array.isArray(from)) {\n return arrCopy(from);\n }\n var to = {};\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n return to;\n}\n\nfunction remove(collection, key) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.remove) {\n throw new TypeError(\n 'Cannot update immutable value without .remove() method: ' + collection\n );\n }\n return collection.remove(key);\n }\n if (!hasOwnProperty.call(collection, key)) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n if (Array.isArray(collectionCopy)) {\n collectionCopy.splice(key, 1);\n } else {\n delete collectionCopy[key];\n }\n return collectionCopy;\n}\n\nfunction set(collection, key, value) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.set) {\n throw new TypeError(\n 'Cannot update immutable value without .set() method: ' + collection\n );\n }\n return collection.set(key, value);\n }\n if (hasOwnProperty.call(collection, key) && value === collection[key]) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n collectionCopy[key] = value;\n return collectionCopy;\n}\n\nfunction updateIn$1(collection, keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeeply(\n isImmutable(collection),\n collection,\n coerceKeyPath(keyPath),\n 0,\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? notSetValue : updatedValue;\n}\n\nfunction updateInDeeply(\n inImmutable,\n existing,\n keyPath,\n i,\n notSetValue,\n updater\n) {\n var wasNotSet = existing === NOT_SET;\n if (i === keyPath.length) {\n var existingValue = wasNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n if (!wasNotSet && !isDataStructure(existing)) {\n throw new TypeError(\n 'Cannot update within non-data-structure value in path [' +\n keyPath.slice(0, i).map(quoteString) +\n ']: ' +\n existing\n );\n }\n var key = keyPath[i];\n var nextExisting = wasNotSet ? NOT_SET : get(existing, key, NOT_SET);\n var nextUpdated = updateInDeeply(\n nextExisting === NOT_SET ? inImmutable : isImmutable(nextExisting),\n nextExisting,\n keyPath,\n i + 1,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting\n ? existing\n : nextUpdated === NOT_SET\n ? remove(existing, key)\n : set(\n wasNotSet ? (inImmutable ? emptyMap() : {}) : existing,\n key,\n nextUpdated\n );\n}\n\nfunction setIn$1(collection, keyPath, value) {\n return updateIn$1(collection, keyPath, NOT_SET, function () { return value; });\n}\n\nfunction setIn(keyPath, v) {\n return setIn$1(this, keyPath, v);\n}\n\nfunction removeIn(collection, keyPath) {\n return updateIn$1(collection, keyPath, function () { return NOT_SET; });\n}\n\nfunction deleteIn(keyPath) {\n return removeIn(this, keyPath);\n}\n\nfunction update$1(collection, key, notSetValue, updater) {\n return updateIn$1(collection, [key], notSetValue, updater);\n}\n\nfunction update(key, notSetValue, updater) {\n return arguments.length === 1\n ? key(this)\n : update$1(this, key, notSetValue, updater);\n}\n\nfunction updateIn(keyPath, notSetValue, updater) {\n return updateIn$1(this, keyPath, notSetValue, updater);\n}\n\nfunction merge$1() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeIntoKeyedWith(this, iters);\n}\n\nfunction mergeWith$1(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n if (typeof merger !== 'function') {\n throw new TypeError('Invalid merger function: ' + merger);\n }\n return mergeIntoKeyedWith(this, iters, merger);\n}\n\nfunction mergeIntoKeyedWith(collection, collections, merger) {\n var iters = [];\n for (var ii = 0; ii < collections.length; ii++) {\n var collection$1 = KeyedCollection(collections[ii]);\n if (collection$1.size !== 0) {\n iters.push(collection$1);\n }\n }\n if (iters.length === 0) {\n return collection;\n }\n if (\n collection.toSeq().size === 0 &&\n !collection.__ownerID &&\n iters.length === 1\n ) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function (collection) {\n var mergeIntoCollection = merger\n ? function (value, key) {\n update$1(collection, key, NOT_SET, function (oldVal) { return oldVal === NOT_SET ? value : merger(oldVal, value, key); }\n );\n }\n : function (value, key) {\n collection.set(key, value);\n };\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoCollection);\n }\n });\n}\n\nfunction merge(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeWithSources(collection, sources);\n}\n\nfunction mergeWith(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeWithSources(collection, sources, merger);\n}\n\nfunction mergeDeep$1(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(collection, sources);\n}\n\nfunction mergeDeepWith$1(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeDeepWithSources(collection, sources, merger);\n}\n\nfunction mergeDeepWithSources(collection, sources, merger) {\n return mergeWithSources(collection, sources, deepMergerWith(merger));\n}\n\nfunction mergeWithSources(collection, sources, merger) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot merge into non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n return typeof merger === 'function' && collection.mergeWith\n ? collection.mergeWith.apply(collection, [ merger ].concat( sources ))\n : collection.merge\n ? collection.merge.apply(collection, sources)\n : collection.concat.apply(collection, sources);\n }\n var isArray = Array.isArray(collection);\n var merged = collection;\n var Collection = isArray ? IndexedCollection : KeyedCollection;\n var mergeItem = isArray\n ? function (value) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged.push(value);\n }\n : function (value, key) {\n var hasVal = hasOwnProperty.call(merged, key);\n var nextVal =\n hasVal && merger ? merger(merged[key], value, key) : value;\n if (!hasVal || nextVal !== merged[key]) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged[key] = nextVal;\n }\n };\n for (var i = 0; i < sources.length; i++) {\n Collection(sources[i]).forEach(mergeItem);\n }\n return merged;\n}\n\nfunction deepMergerWith(merger) {\n function deepMerger(oldValue, newValue, key) {\n return isDataStructure(oldValue) &&\n isDataStructure(newValue) &&\n areMergeable(oldValue, newValue)\n ? mergeWithSources(oldValue, [newValue], deepMerger)\n : merger\n ? merger(oldValue, newValue, key)\n : newValue;\n }\n return deepMerger;\n}\n\n/**\n * It's unclear what the desired behavior is for merging two collections that\n * fall into separate categories between keyed, indexed, or set-like, so we only\n * consider them mergeable if they fall into the same category.\n */\nfunction areMergeable(oldDataStructure, newDataStructure) {\n var oldSeq = Seq(oldDataStructure);\n var newSeq = Seq(newDataStructure);\n // This logic assumes that a sequence can only fall into one of the three\n // categories mentioned above (since there's no `isSetLike()` method).\n return (\n isIndexed(oldSeq) === isIndexed(newSeq) &&\n isKeyed(oldSeq) === isKeyed(newSeq)\n );\n}\n\nfunction mergeDeep() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeDeepWithSources(this, iters);\n}\n\nfunction mergeDeepWith(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(this, iters, merger);\n}\n\nfunction mergeIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeWithSources(m, iters); });\n}\n\nfunction mergeDeepIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeDeepWithSources(m, iters); }\n );\n}\n\nfunction withMutations(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n}\n\nfunction asMutable() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n}\n\nfunction asImmutable() {\n return this.__ensureOwner();\n}\n\nfunction wasAltered() {\n return this.__altered;\n}\n\nvar Map = /*@__PURE__*/(function (KeyedCollection) {\n function Map(value) {\n return value === undefined || value === null\n ? emptyMap()\n : isMap(value) && !isOrdered(value)\n ? value\n : emptyMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( KeyedCollection ) Map.__proto__ = KeyedCollection;\n Map.prototype = Object.create( KeyedCollection && KeyedCollection.prototype );\n Map.prototype.constructor = Map;\n\n Map.of = function of () {\n var keyValues = [], len = arguments.length;\n while ( len-- ) keyValues[ len ] = arguments[ len ];\n\n return emptyMap().withMutations(function (map) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function toString () {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function get (k, notSetValue) {\n return this._root\n ? this._root.get(0, undefined, k, notSetValue)\n : notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function set (k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.remove = function remove (k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteAll = function deleteAll (keys) {\n var collection = Collection(keys);\n\n if (collection.size === 0) {\n return this;\n }\n\n return this.withMutations(function (map) {\n collection.forEach(function (key) { return map.remove(key); });\n });\n };\n\n Map.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n Map.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (map) {\n map.forEach(function (value, key) {\n map.set(key, mapper.call(context, value, key, this$1$1));\n });\n });\n };\n\n // @pragma Mutability\n\n Map.prototype.__iterator = function __iterator (type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n this._root &&\n this._root.iterate(function (entry) {\n iterations++;\n return fn(entry[1], entry[0], this$1$1);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n return Map;\n}(KeyedCollection));\n\nMap.isMap = isMap;\n\nvar MapPrototype = Map.prototype;\nMapPrototype[IS_MAP_SYMBOL] = true;\nMapPrototype[DELETE] = MapPrototype.remove;\nMapPrototype.removeAll = MapPrototype.deleteAll;\nMapPrototype.setIn = setIn;\nMapPrototype.removeIn = MapPrototype.deleteIn = deleteIn;\nMapPrototype.update = update;\nMapPrototype.updateIn = updateIn;\nMapPrototype.merge = MapPrototype.concat = merge$1;\nMapPrototype.mergeWith = mergeWith$1;\nMapPrototype.mergeDeep = mergeDeep;\nMapPrototype.mergeDeepWith = mergeDeepWith;\nMapPrototype.mergeIn = mergeIn;\nMapPrototype.mergeDeepIn = mergeDeepIn;\nMapPrototype.withMutations = withMutations;\nMapPrototype.wasAltered = wasAltered;\nMapPrototype.asImmutable = asImmutable;\nMapPrototype['@@transducer/init'] = MapPrototype.asMutable = asMutable;\nMapPrototype['@@transducer/step'] = function (result, arr) {\n return result.set(arr[0], arr[1]);\n};\nMapPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\n// #pragma Trie Nodes\n\nvar ArrayMapNode = function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n};\n\nArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n};\n\nvar BitmapIndexedNode = function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n};\n\nBitmapIndexedNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = 1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK);\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0\n ? notSetValue\n : this.nodes[popCount(bitmap & (bit - 1))].get(\n shift + SHIFT,\n keyHash,\n key,\n notSetValue\n );\n};\n\nBitmapIndexedNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (\n exists &&\n !newNode &&\n nodes.length === 2 &&\n isLeafNode(nodes[idx ^ 1])\n ) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? (newNode ? bitmap : bitmap ^ bit) : bitmap | bit;\n var newNodes = exists\n ? newNode\n ? setAt(nodes, idx, newNode, isEditable)\n : spliceOut(nodes, idx, isEditable)\n : spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n};\n\nvar HashArrayMapNode = function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n};\n\nHashArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node\n ? node.get(shift + SHIFT, keyHash, key, notSetValue)\n : notSetValue;\n};\n\nHashArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setAt(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n};\n\nvar HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n};\n\nHashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nHashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n};\n\nvar ValueNode = function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n};\n\nValueNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n};\n\nValueNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n};\n\n// #pragma Iterators\n\nArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate =\n function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n };\n\nBitmapIndexedNode.prototype.iterate = HashArrayMapNode.prototype.iterate =\n function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n };\n\n// eslint-disable-next-line no-unused-vars\nValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n};\n\nvar MapIterator = /*@__PURE__*/(function (Iterator) {\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n if ( Iterator ) MapIterator.__proto__ = Iterator;\n MapIterator.prototype = Object.create( Iterator && Iterator.prototype );\n MapIterator.prototype.constructor = MapIterator;\n\n MapIterator.prototype.next = function next () {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex = (void 0);\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(\n type,\n node.entries[this._reverse ? maxIndex - index : index]\n );\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n return MapIterator;\n}(Iterator));\n\nfunction mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n}\n\nfunction mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev,\n };\n}\n\nfunction makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_MAP;\nfunction emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n}\n\nfunction updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef();\n var didAlter = MakeRef();\n newRoot = updateNode(\n map._root,\n map.__ownerID,\n 0,\n undefined,\n k,\n v,\n didChangeSize,\n didAlter\n );\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? (v === NOT_SET ? -1 : 1) : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n}\n\nfunction updateNode(\n node,\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n}\n\nfunction isLeafNode(node) {\n return (\n node.constructor === ValueNode || node.constructor === HashCollisionNode\n );\n}\n\nfunction mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes =\n idx1 === idx2\n ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)]\n : ((newNode = new ValueNode(ownerID, keyHash, entry)),\n idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n}\n\nfunction createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n}\n\nfunction packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n}\n\nfunction expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n}\n\nfunction popCount(x) {\n x -= (x >> 1) & 0x55555555;\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n}\n\nfunction setAt(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n}\n\nfunction spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n}\n\nfunction spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n}\n\nvar MAX_ARRAY_MAP_SIZE = SIZE / 4;\nvar MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\nvar MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\nvar IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';\n\nfunction isList(maybeList) {\n return Boolean(maybeList && maybeList[IS_LIST_SYMBOL]);\n}\n\nvar List = /*@__PURE__*/(function (IndexedCollection) {\n function List(value) {\n var empty = emptyList();\n if (value === undefined || value === null) {\n return empty;\n }\n if (isList(value)) {\n return value;\n }\n var iter = IndexedCollection(value);\n var size = iter.size;\n if (size === 0) {\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n return empty.withMutations(function (list) {\n list.setSize(size);\n iter.forEach(function (v, i) { return list.set(i, v); });\n });\n }\n\n if ( IndexedCollection ) List.__proto__ = IndexedCollection;\n List.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n List.prototype.constructor = List;\n\n List.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function toString () {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function get (index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function set (index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function remove (index) {\n return !this.has(index)\n ? this\n : index === 0\n ? this.shift()\n : index === this.size - 1\n ? this.pop()\n : this.splice(index, 1);\n };\n\n List.prototype.insert = function insert (index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function push (/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function (list) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function pop () {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function unshift (/*...values*/) {\n var values = arguments;\n return this.withMutations(function (list) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function shift () {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.concat = function concat (/*...collections*/) {\n var arguments$1 = arguments;\n\n var seqs = [];\n for (var i = 0; i < arguments.length; i++) {\n var argument = arguments$1[i];\n var seq = IndexedCollection(\n typeof argument !== 'string' && hasIterator(argument)\n ? argument\n : [argument]\n );\n if (seq.size !== 0) {\n seqs.push(seq);\n }\n }\n if (seqs.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && seqs.length === 1) {\n return this.constructor(seqs[0]);\n }\n return this.withMutations(function (list) {\n seqs.forEach(function (seq) { return seq.forEach(function (value) { return list.push(value); }); });\n });\n };\n\n List.prototype.setSize = function setSize (size) {\n return setListBounds(this, 0, size);\n };\n\n List.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (list) {\n for (var i = 0; i < this$1$1.size; i++) {\n list.set(i, mapper.call(context, list.get(i), i, this$1$1));\n }\n });\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function slice (begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function __iterator (type, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n return new Iterator(function () {\n var value = values();\n return value === DONE\n ? iteratorDone()\n : iteratorValue(type, reverse ? --index : index++, value);\n });\n };\n\n List.prototype.__iterate = function __iterate (fn, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, reverse ? --index : index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyList();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeList(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n ownerID,\n this.__hash\n );\n };\n\n return List;\n}(IndexedCollection));\n\nList.isList = isList;\n\nvar ListPrototype = List.prototype;\nListPrototype[IS_LIST_SYMBOL] = true;\nListPrototype[DELETE] = ListPrototype.remove;\nListPrototype.merge = ListPrototype.concat;\nListPrototype.setIn = setIn;\nListPrototype.deleteIn = ListPrototype.removeIn = deleteIn;\nListPrototype.update = update;\nListPrototype.updateIn = updateIn;\nListPrototype.mergeIn = mergeIn;\nListPrototype.mergeDeepIn = mergeDeepIn;\nListPrototype.withMutations = withMutations;\nListPrototype.wasAltered = wasAltered;\nListPrototype.asImmutable = asImmutable;\nListPrototype['@@transducer/init'] = ListPrototype.asMutable = asMutable;\nListPrototype['@@transducer/step'] = function (result, arr) {\n return result.push(arr);\n};\nListPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nvar VNode = function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n};\n\n// TODO: seems like these methods are very similar\n\nVNode.prototype.removeBefore = function removeBefore (ownerID, level, index) {\n if (index === level ? 1 << level : this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild =\n oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n};\n\nVNode.prototype.removeAfter = function removeAfter (ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild =\n oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n};\n\nvar DONE = {};\n\nfunction iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0\n ? iterateLeaf(node, offset)\n : iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n while (true) {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx],\n level - SHIFT,\n offset + (idx << level)\n );\n }\n };\n }\n}\n\nfunction makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n}\n\nvar EMPTY_LIST;\nfunction emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n}\n\nfunction updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function (list) {\n index < 0\n ? setListBounds(list, index).set(0, value)\n : setListBounds(list, 0, index + 1).set(index, value);\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef();\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(\n newRoot,\n list.__ownerID,\n list._level,\n index,\n value,\n didAlter\n );\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n}\n\nfunction updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(\n lowerNode,\n ownerID,\n level - SHIFT,\n index,\n value,\n didAlter\n );\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n if (didAlter) {\n SetRef(didAlter);\n }\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n}\n\nfunction editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n}\n\nfunction listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n}\n\nfunction setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin |= 0;\n }\n if (end !== undefined) {\n end |= 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity =\n end === undefined\n ? oldCapacity\n : end < 0\n ? oldCapacity + end\n : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [undefined, newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail =\n newTailOffset < oldTailOffset\n ? listNodeFor(list, newCapacity - 1)\n : newTailOffset > oldTailOffset\n ? new VNode([], owner)\n : oldTail;\n\n // Merge Tail into tree.\n if (\n oldTail &&\n newTailOffset > oldTailOffset &&\n newOrigin < oldCapacity &&\n oldTail.array.length\n ) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if ((beginIndex !== newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(\n owner,\n newLevel,\n newTailOffset - offsetShift\n );\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n}\n\nfunction getTailOffset(size) {\n return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;\n}\n\nvar OrderedMap = /*@__PURE__*/(function (Map) {\n function OrderedMap(value) {\n return value === undefined || value === null\n ? emptyOrderedMap()\n : isOrderedMap(value)\n ? value\n : emptyOrderedMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( Map ) OrderedMap.__proto__ = Map;\n OrderedMap.prototype = Object.create( Map && Map.prototype );\n OrderedMap.prototype.constructor = OrderedMap;\n\n OrderedMap.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function toString () {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function get (k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n this.__altered = true;\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function set (k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function remove (k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._list.__iterate(\n function (entry) { return entry && fn(entry[1], entry[0], this$1$1); },\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function __iterator (type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return emptyOrderedMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n return OrderedMap;\n}(Map));\n\nOrderedMap.isOrderedMap = isOrderedMap;\n\nOrderedMap.prototype[IS_ORDERED_SYMBOL] = true;\nOrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\nfunction makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n omap.__altered = false;\n return omap;\n}\n\nvar EMPTY_ORDERED_MAP;\nfunction emptyOrderedMap() {\n return (\n EMPTY_ORDERED_MAP ||\n (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()))\n );\n}\n\nfunction updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) {\n // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function (entry, idx) { return entry !== undefined && i !== idx; });\n newMap = newList\n .toKeyedSeq()\n .map(function (entry) { return entry[0]; })\n .flip()\n .toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n omap.__altered = true;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n}\n\nvar IS_STACK_SYMBOL = '@@__IMMUTABLE_STACK__@@';\n\nfunction isStack(maybeStack) {\n return Boolean(maybeStack && maybeStack[IS_STACK_SYMBOL]);\n}\n\nvar Stack = /*@__PURE__*/(function (IndexedCollection) {\n function Stack(value) {\n return value === undefined || value === null\n ? emptyStack()\n : isStack(value)\n ? value\n : emptyStack().pushAll(value);\n }\n\n if ( IndexedCollection ) Stack.__proto__ = IndexedCollection;\n Stack.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n Stack.prototype.constructor = Stack;\n\n Stack.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function toString () {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function get (index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function peek () {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function push (/*...values*/) {\n var arguments$1 = arguments;\n\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments$1[ii],\n next: head,\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function pushAll (iter) {\n iter = IndexedCollection(iter);\n if (iter.size === 0) {\n return this;\n }\n if (this.size === 0 && isStack(iter)) {\n return iter;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.__iterate(function (value) {\n newSize++;\n head = {\n value: value,\n next: head,\n };\n }, /* reverse */ true);\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function pop () {\n return this.slice(1);\n };\n\n Stack.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyStack();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterate(\n function (v, k) { return fn(v, k, this$1$1); },\n reverse\n );\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function __iterator (type, reverse) {\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterator(type, reverse);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function () {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n return Stack;\n}(IndexedCollection));\n\nStack.isStack = isStack;\n\nvar StackPrototype = Stack.prototype;\nStackPrototype[IS_STACK_SYMBOL] = true;\nStackPrototype.shift = StackPrototype.pop;\nStackPrototype.unshift = StackPrototype.push;\nStackPrototype.unshiftAll = StackPrototype.pushAll;\nStackPrototype.withMutations = withMutations;\nStackPrototype.wasAltered = wasAltered;\nStackPrototype.asImmutable = asImmutable;\nStackPrototype['@@transducer/init'] = StackPrototype.asMutable = asMutable;\nStackPrototype['@@transducer/step'] = function (result, arr) {\n return result.unshift(arr);\n};\nStackPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nfunction makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_STACK;\nfunction emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n}\n\nvar IS_SET_SYMBOL = '@@__IMMUTABLE_SET__@@';\n\nfunction isSet(maybeSet) {\n return Boolean(maybeSet && maybeSet[IS_SET_SYMBOL]);\n}\n\nfunction isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n}\n\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isCollection(b) ||\n (a.size !== undefined && b.size !== undefined && a.size !== b.size) ||\n (a.__hash !== undefined &&\n b.__hash !== undefined &&\n a.__hash !== b.__hash) ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return (\n b.every(function (v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done\n );\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function (v, k) {\n if (\n notAssociative\n ? !a.has(v)\n : flipped\n ? !is(v, a.get(k, NOT_SET))\n : !is(a.get(k, NOT_SET), v)\n ) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n}\n\nfunction mixin(ctor, methods) {\n var keyCopier = function (key) {\n ctor.prototype[key] = methods[key];\n };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n}\n\nfunction toJS(value) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (!isCollection(value)) {\n if (!isDataStructure(value)) {\n return value;\n }\n value = Seq(value);\n }\n if (isKeyed(value)) {\n var result$1 = {};\n value.__iterate(function (v, k) {\n result$1[k] = toJS(v);\n });\n return result$1;\n }\n var result = [];\n value.__iterate(function (v) {\n result.push(toJS(v));\n });\n return result;\n}\n\nvar Set = /*@__PURE__*/(function (SetCollection) {\n function Set(value) {\n return value === undefined || value === null\n ? emptySet()\n : isSet(value) && !isOrdered(value)\n ? value\n : emptySet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( SetCollection ) Set.__proto__ = SetCollection;\n Set.prototype = Object.create( SetCollection && SetCollection.prototype );\n Set.prototype.constructor = Set;\n\n Set.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n Set.intersect = function intersect (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.intersect.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.union = function union (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.union.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.prototype.toString = function toString () {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function has (value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function add (value) {\n return updateSet(this, this._map.set(value, value));\n };\n\n Set.prototype.remove = function remove (value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function clear () {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n // keep track if the set is altered by the map function\n var didChanges = false;\n\n var newMap = updateSet(\n this,\n this._map.mapEntries(function (ref) {\n var v = ref[1];\n\n var mapped = mapper.call(context, v, v, this$1$1);\n\n if (mapped !== v) {\n didChanges = true;\n }\n\n return [mapped, mapped];\n }, context)\n );\n\n return didChanges ? newMap : this;\n };\n\n Set.prototype.union = function union () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n iters = iters.filter(function (x) { return x.size !== 0; });\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function (set) {\n for (var ii = 0; ii < iters.length; ii++) {\n if (typeof iters[ii] === 'string') {\n set.add(iters[ii]);\n } else {\n SetCollection(iters[ii]).forEach(function (value) { return set.add(value); });\n }\n }\n });\n };\n\n Set.prototype.intersect = function intersect () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (!iters.every(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.subtract = function subtract () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (iters.some(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function wasAltered () {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._map.__iterate(function (k) { return fn(k, k, this$1$1); }, reverse);\n };\n\n Set.prototype.__iterator = function __iterator (type, reverse) {\n return this._map.__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return this.__empty();\n }\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n return Set;\n}(SetCollection));\n\nSet.isSet = isSet;\n\nvar SetPrototype = Set.prototype;\nSetPrototype[IS_SET_SYMBOL] = true;\nSetPrototype[DELETE] = SetPrototype.remove;\nSetPrototype.merge = SetPrototype.concat = SetPrototype.union;\nSetPrototype.withMutations = withMutations;\nSetPrototype.asImmutable = asImmutable;\nSetPrototype['@@transducer/init'] = SetPrototype.asMutable = asMutable;\nSetPrototype['@@transducer/step'] = function (result, arr) {\n return result.add(arr);\n};\nSetPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nSetPrototype.__empty = emptySet;\nSetPrototype.__make = makeSet;\n\nfunction updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map\n ? set\n : newMap.size === 0\n ? set.__empty()\n : set.__make(newMap);\n}\n\nfunction makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_SET;\nfunction emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n}\n\n/**\n * Returns a lazy seq of nums from start (inclusive) to end\n * (exclusive), by step, where start defaults to 0, step to 1, and end to\n * infinity. When start is equal to end, returns empty list.\n */\nvar Range = /*@__PURE__*/(function (IndexedSeq) {\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n if ( IndexedSeq ) Range.__proto__ = IndexedSeq;\n Range.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Range.prototype.constructor = Range;\n\n Range.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Range []';\n }\n return (\n 'Range [ ' +\n this._start +\n '...' +\n this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]'\n );\n };\n\n Range.prototype.get = function get (index, notSetValue) {\n return this.has(index)\n ? this._start + wrapIndex(this, index) * this._step\n : notSetValue;\n };\n\n Range.prototype.includes = function includes (searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return (\n possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex)\n );\n };\n\n Range.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(\n this.get(begin, this._end),\n this.get(end, this._end),\n this._step\n );\n };\n\n Range.prototype.indexOf = function indexOf (searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index;\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n while (i !== size) {\n if (fn(value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n value += reverse ? -step : step;\n }\n return i;\n };\n\n Range.prototype.__iterator = function __iterator (type, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var v = value;\n value += reverse ? -step : step;\n return iteratorValue(type, reverse ? size - ++i : i++, v);\n });\n };\n\n Range.prototype.equals = function equals (other) {\n return other instanceof Range\n ? this._start === other._start &&\n this._end === other._end &&\n this._step === other._step\n : deepEqual(this, other);\n };\n\n return Range;\n}(IndexedSeq));\n\nvar EMPTY_RANGE;\n\nfunction getIn$1(collection, searchKeyPath, notSetValue) {\n var keyPath = coerceKeyPath(searchKeyPath);\n var i = 0;\n while (i !== keyPath.length) {\n collection = get(collection, keyPath[i++], NOT_SET);\n if (collection === NOT_SET) {\n return notSetValue;\n }\n }\n return collection;\n}\n\nfunction getIn(searchKeyPath, notSetValue) {\n return getIn$1(this, searchKeyPath, notSetValue);\n}\n\nfunction hasIn$1(collection, keyPath) {\n return getIn$1(collection, keyPath, NOT_SET) !== NOT_SET;\n}\n\nfunction hasIn(searchKeyPath) {\n return hasIn$1(this, searchKeyPath);\n}\n\nfunction toObject() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function (v, k) {\n object[k] = v;\n });\n return object;\n}\n\n// Note: all of these methods are deprecated.\nCollection.isIterable = isCollection;\nCollection.isKeyed = isKeyed;\nCollection.isIndexed = isIndexed;\nCollection.isAssociative = isAssociative;\nCollection.isOrdered = isOrdered;\n\nCollection.Iterator = Iterator;\n\nmixin(Collection, {\n // ### Conversion to other types\n\n toArray: function toArray() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n var useTuples = isKeyed(this);\n var i = 0;\n this.__iterate(function (v, k) {\n // Keyed collections produce an array of tuples.\n array[i++] = useTuples ? [k, v] : v;\n });\n return array;\n },\n\n toIndexedSeq: function toIndexedSeq() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function toJS$1() {\n return toJS(this);\n },\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function toMap() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: toObject,\n\n toOrderedMap: function toOrderedMap() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function toOrderedSet() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function toSet() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function toSetSeq() {\n return new ToSetSequence(this);\n },\n\n toSeq: function toSeq() {\n return isIndexed(this)\n ? this.toIndexedSeq()\n : isKeyed(this)\n ? this.toKeyedSeq()\n : this.toSetSeq();\n },\n\n toStack: function toStack() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function toList() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n // ### Common JavaScript methods and properties\n\n toString: function toString() {\n return '[Collection]';\n },\n\n __toString: function __toString(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return (\n head +\n ' ' +\n this.toSeq().map(this.__toStringMapper).join(', ') +\n ' ' +\n tail\n );\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function concat() {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return reify(this, concatFactory(this, values));\n },\n\n includes: function includes(searchValue) {\n return this.some(function (value) { return is(value, searchValue); });\n },\n\n entries: function entries() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function every(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function (v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n partition: function partition(predicate, context) {\n return partitionFactory(this, predicate, context);\n },\n\n find: function find(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function forEach(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function join(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function (v) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function keys() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function map(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function reduce$1(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n false\n );\n },\n\n reduceRight: function reduceRight(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n true\n );\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function some(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = false;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n returnValue = true;\n return false;\n }\n });\n return returnValue;\n },\n\n sort: function sort(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function values() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n // ### More sequential methods\n\n butLast: function butLast() {\n return this.slice(0, -1);\n },\n\n isEmpty: function isEmpty() {\n return this.size !== undefined ? this.size === 0 : !this.some(function () { return true; });\n },\n\n count: function count(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function countBy(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function equals(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function entrySeq() {\n var collection = this;\n if (collection._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(collection._cache);\n }\n var entriesSequence = collection.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function () { return collection.toSeq(); };\n return entriesSequence;\n },\n\n filterNot: function filterNot(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function findEntry(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function findKey(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function findLast(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function findLastEntry(predicate, context, notSetValue) {\n return this.toKeyedSeq()\n .reverse()\n .findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function findLastKey(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function first(notSetValue) {\n return this.find(returnTrue, null, notSetValue);\n },\n\n flatMap: function flatMap(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function fromEntrySeq() {\n return new FromEntriesSequence(this);\n },\n\n get: function get(searchKey, notSetValue) {\n return this.find(function (_, key) { return is(key, searchKey); }, undefined, notSetValue);\n },\n\n getIn: getIn,\n\n groupBy: function groupBy(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function has(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: hasIn,\n\n isSubset: function isSubset(iter) {\n iter = typeof iter.includes === 'function' ? iter : Collection(iter);\n return this.every(function (value) { return iter.includes(value); });\n },\n\n isSuperset: function isSuperset(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Collection(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function keyOf(searchValue) {\n return this.findKey(function (value) { return is(value, searchValue); });\n },\n\n keySeq: function keySeq() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function last(notSetValue) {\n return this.toSeq().reverse().first(notSetValue);\n },\n\n lastKeyOf: function lastKeyOf(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function max(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function maxBy(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function min(comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator\n );\n },\n\n minBy: function minBy(mapper, comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator,\n mapper\n );\n },\n\n rest: function rest() {\n return this.slice(1);\n },\n\n skip: function skip(amount) {\n return amount === 0 ? this : this.slice(Math.max(0, amount));\n },\n\n skipLast: function skipLast(amount) {\n return amount === 0 ? this : this.slice(0, -Math.max(0, amount));\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function skipUntil(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function sortBy(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function take(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function takeLast(amount) {\n return this.slice(-Math.max(0, amount));\n },\n\n takeWhile: function takeWhile(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function takeUntil(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n update: function update(fn) {\n return fn(this);\n },\n\n valueSeq: function valueSeq() {\n return this.toIndexedSeq();\n },\n\n // ### Hashable Object\n\n hashCode: function hashCode() {\n return this.__hash || (this.__hash = hashCollection(this));\n },\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n});\n\nvar CollectionPrototype = Collection.prototype;\nCollectionPrototype[IS_COLLECTION_SYMBOL] = true;\nCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.values;\nCollectionPrototype.toJSON = CollectionPrototype.toArray;\nCollectionPrototype.__toStringMapper = quoteString;\nCollectionPrototype.inspect = CollectionPrototype.toSource = function () {\n return this.toString();\n};\nCollectionPrototype.chain = CollectionPrototype.flatMap;\nCollectionPrototype.contains = CollectionPrototype.includes;\n\nmixin(KeyedCollection, {\n // ### More sequential methods\n\n flip: function flip() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function mapEntries(mapper, context) {\n var this$1$1 = this;\n\n var iterations = 0;\n return reify(\n this,\n this.toSeq()\n .map(function (v, k) { return mapper.call(context, [k, v], iterations++, this$1$1); })\n .fromEntrySeq()\n );\n },\n\n mapKeys: function mapKeys(mapper, context) {\n var this$1$1 = this;\n\n return reify(\n this,\n this.toSeq()\n .flip()\n .map(function (k, v) { return mapper.call(context, k, v, this$1$1); })\n .flip()\n );\n },\n});\n\nvar KeyedCollectionPrototype = KeyedCollection.prototype;\nKeyedCollectionPrototype[IS_KEYED_SYMBOL] = true;\nKeyedCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.entries;\nKeyedCollectionPrototype.toJSON = toObject;\nKeyedCollectionPrototype.__toStringMapper = function (v, k) { return quoteString(k) + ': ' + quoteString(v); };\n\nmixin(IndexedCollection, {\n // ### Conversion to other types\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, false);\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function findIndex(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function indexOf(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function lastIndexOf(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function splice(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum || 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1\n ? spliced\n : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n // ### More collection methods\n\n findLastIndex: function findLastIndex(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function first(notSetValue) {\n return this.get(0, notSetValue);\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function get(index, notSetValue) {\n index = wrapIndex(this, index);\n return index < 0 ||\n this.size === Infinity ||\n (this.size !== undefined && index > this.size)\n ? notSetValue\n : this.find(function (_, key) { return key === index; }, undefined, notSetValue);\n },\n\n has: function has(index) {\n index = wrapIndex(this, index);\n return (\n index >= 0 &&\n (this.size !== undefined\n ? this.size === Infinity || index < this.size\n : this.indexOf(index) !== -1)\n );\n },\n\n interpose: function interpose(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function interleave(/*...collections*/) {\n var collections = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, collections);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * collections.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function keySeq() {\n return Range(0, this.size);\n },\n\n last: function last(notSetValue) {\n return this.get(-1, notSetValue);\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function zip(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections));\n },\n\n zipAll: function zipAll(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections, true));\n },\n\n zipWith: function zipWith(zipper /*, ...collections */) {\n var collections = arrCopy(arguments);\n collections[0] = this;\n return reify(this, zipWithFactory(this, zipper, collections));\n },\n});\n\nvar IndexedCollectionPrototype = IndexedCollection.prototype;\nIndexedCollectionPrototype[IS_INDEXED_SYMBOL] = true;\nIndexedCollectionPrototype[IS_ORDERED_SYMBOL] = true;\n\nmixin(SetCollection, {\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function get(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function includes(value) {\n return this.has(value);\n },\n\n // ### More sequential methods\n\n keySeq: function keySeq() {\n return this.valueSeq();\n },\n});\n\nvar SetCollectionPrototype = SetCollection.prototype;\nSetCollectionPrototype.has = CollectionPrototype.includes;\nSetCollectionPrototype.contains = SetCollectionPrototype.includes;\nSetCollectionPrototype.keys = SetCollectionPrototype.values;\n\n// Mixin subclasses\n\nmixin(KeyedSeq, KeyedCollectionPrototype);\nmixin(IndexedSeq, IndexedCollectionPrototype);\nmixin(SetSeq, SetCollectionPrototype);\n\n// #pragma Helper functions\n\nfunction reduce(collection, reducer, reduction, context, useFirst, reverse) {\n assertNotInfinite(collection.size);\n collection.__iterate(function (v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n }, reverse);\n return reduction;\n}\n\nfunction keyMapper(v, k) {\n return k;\n}\n\nfunction entryMapper(v, k) {\n return [k, v];\n}\n\nfunction not(predicate) {\n return function () {\n return !predicate.apply(this, arguments);\n };\n}\n\nfunction neg(predicate) {\n return function () {\n return -predicate.apply(this, arguments);\n };\n}\n\nfunction defaultZipper() {\n return arrCopy(arguments);\n}\n\nfunction defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n}\n\nfunction hashCollection(collection) {\n if (collection.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(collection);\n var keyed = isKeyed(collection);\n var h = ordered ? 1 : 0;\n var size = collection.__iterate(\n keyed\n ? ordered\n ? function (v, k) {\n h = (31 * h + hashMerge(hash(v), hash(k))) | 0;\n }\n : function (v, k) {\n h = (h + hashMerge(hash(v), hash(k))) | 0;\n }\n : ordered\n ? function (v) {\n h = (31 * h + hash(v)) | 0;\n }\n : function (v) {\n h = (h + hash(v)) | 0;\n }\n );\n return murmurHashOfSize(size, h);\n}\n\nfunction murmurHashOfSize(size, h) {\n h = imul(h, 0xcc9e2d51);\n h = imul((h << 15) | (h >>> -15), 0x1b873593);\n h = imul((h << 13) | (h >>> -13), 5);\n h = ((h + 0xe6546b64) | 0) ^ size;\n h = imul(h ^ (h >>> 16), 0x85ebca6b);\n h = imul(h ^ (h >>> 13), 0xc2b2ae35);\n h = smi(h ^ (h >>> 16));\n return h;\n}\n\nfunction hashMerge(a, b) {\n return (a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2))) | 0; // int\n}\n\nvar OrderedSet = /*@__PURE__*/(function (Set) {\n function OrderedSet(value) {\n return value === undefined || value === null\n ? emptyOrderedSet()\n : isOrderedSet(value)\n ? value\n : emptyOrderedSet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( Set ) OrderedSet.__proto__ = Set;\n OrderedSet.prototype = Object.create( Set && Set.prototype );\n OrderedSet.prototype.constructor = OrderedSet;\n\n OrderedSet.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function toString () {\n return this.__toString('OrderedSet {', '}');\n };\n\n return OrderedSet;\n}(Set));\n\nOrderedSet.isOrderedSet = isOrderedSet;\n\nvar OrderedSetPrototype = OrderedSet.prototype;\nOrderedSetPrototype[IS_ORDERED_SYMBOL] = true;\nOrderedSetPrototype.zip = IndexedCollectionPrototype.zip;\nOrderedSetPrototype.zipWith = IndexedCollectionPrototype.zipWith;\nOrderedSetPrototype.zipAll = IndexedCollectionPrototype.zipAll;\n\nOrderedSetPrototype.__empty = emptyOrderedSet;\nOrderedSetPrototype.__make = makeOrderedSet;\n\nfunction makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_ORDERED_SET;\nfunction emptyOrderedSet() {\n return (\n EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()))\n );\n}\n\nvar PairSorting = {\n LeftThenRight: -1,\n RightThenLeft: +1,\n};\n\nfunction throwOnInvalidDefaultValues(defaultValues) {\n if (isRecord(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.'\n );\n }\n\n if (isImmutable(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.'\n );\n }\n\n if (defaultValues === null || typeof defaultValues !== 'object') {\n throw new Error(\n 'Can not call `Record` with a non-object as default values. Use a plain javascript object instead.'\n );\n }\n}\n\nvar Record = function Record(defaultValues, name) {\n var hasInitialized;\n\n throwOnInvalidDefaultValues(defaultValues);\n\n var RecordType = function Record(values) {\n var this$1$1 = this;\n\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n var indices = (RecordTypePrototype._indices = {});\n // Deprecated: left to attempt not to break any external code which\n // relies on a ._name property existing on record instances.\n // Use Record.getDescriptiveName() instead\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n for (var i = 0; i < keys.length; i++) {\n var propName = keys[i];\n indices[propName] = i;\n if (RecordTypePrototype[propName]) {\n /* eslint-disable no-console */\n typeof console === 'object' &&\n console.warn &&\n console.warn(\n 'Cannot define ' +\n recordName(this) +\n ' with property \"' +\n propName +\n '\" since that property name is part of the Record API.'\n );\n /* eslint-enable no-console */\n } else {\n setProp(RecordTypePrototype, propName);\n }\n }\n }\n this.__ownerID = undefined;\n this._values = List().withMutations(function (l) {\n l.setSize(this$1$1._keys.length);\n KeyedCollection(values).forEach(function (v, k) {\n l.set(this$1$1._indices[k], v === this$1$1._defaultValues[k] ? undefined : v);\n });\n });\n return this;\n };\n\n var RecordTypePrototype = (RecordType.prototype =\n Object.create(RecordPrototype));\n RecordTypePrototype.constructor = RecordType;\n\n if (name) {\n RecordType.displayName = name;\n }\n\n return RecordType;\n};\n\nRecord.prototype.toString = function toString () {\n var str = recordName(this) + ' { ';\n var keys = this._keys;\n var k;\n for (var i = 0, l = keys.length; i !== l; i++) {\n k = keys[i];\n str += (i ? ', ' : '') + k + ': ' + quoteString(this.get(k));\n }\n return str + ' }';\n};\n\nRecord.prototype.equals = function equals (other) {\n return (\n this === other ||\n (isRecord(other) && recordSeq(this).equals(recordSeq(other)))\n );\n};\n\nRecord.prototype.hashCode = function hashCode () {\n return recordSeq(this).hashCode();\n};\n\n// @pragma Access\n\nRecord.prototype.has = function has (k) {\n return this._indices.hasOwnProperty(k);\n};\n\nRecord.prototype.get = function get (k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var index = this._indices[k];\n var value = this._values.get(index);\n return value === undefined ? this._defaultValues[k] : value;\n};\n\n// @pragma Modification\n\nRecord.prototype.set = function set (k, v) {\n if (this.has(k)) {\n var newValues = this._values.set(\n this._indices[k],\n v === this._defaultValues[k] ? undefined : v\n );\n if (newValues !== this._values && !this.__ownerID) {\n return makeRecord(this, newValues);\n }\n }\n return this;\n};\n\nRecord.prototype.remove = function remove (k) {\n return this.set(k);\n};\n\nRecord.prototype.clear = function clear () {\n var newValues = this._values.clear().setSize(this._keys.length);\n\n return this.__ownerID ? this : makeRecord(this, newValues);\n};\n\nRecord.prototype.wasAltered = function wasAltered () {\n return this._values.wasAltered();\n};\n\nRecord.prototype.toSeq = function toSeq () {\n return recordSeq(this);\n};\n\nRecord.prototype.toJS = function toJS$1 () {\n return toJS(this);\n};\n\nRecord.prototype.entries = function entries () {\n return this.__iterator(ITERATE_ENTRIES);\n};\n\nRecord.prototype.__iterator = function __iterator (type, reverse) {\n return recordSeq(this).__iterator(type, reverse);\n};\n\nRecord.prototype.__iterate = function __iterate (fn, reverse) {\n return recordSeq(this).__iterate(fn, reverse);\n};\n\nRecord.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newValues = this._values.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._values = newValues;\n return this;\n }\n return makeRecord(this, newValues, ownerID);\n};\n\nRecord.isRecord = isRecord;\nRecord.getDescriptiveName = recordName;\nvar RecordPrototype = Record.prototype;\nRecordPrototype[IS_RECORD_SYMBOL] = true;\nRecordPrototype[DELETE] = RecordPrototype.remove;\nRecordPrototype.deleteIn = RecordPrototype.removeIn = deleteIn;\nRecordPrototype.getIn = getIn;\nRecordPrototype.hasIn = CollectionPrototype.hasIn;\nRecordPrototype.merge = merge$1;\nRecordPrototype.mergeWith = mergeWith$1;\nRecordPrototype.mergeIn = mergeIn;\nRecordPrototype.mergeDeep = mergeDeep;\nRecordPrototype.mergeDeepWith = mergeDeepWith;\nRecordPrototype.mergeDeepIn = mergeDeepIn;\nRecordPrototype.setIn = setIn;\nRecordPrototype.update = update;\nRecordPrototype.updateIn = updateIn;\nRecordPrototype.withMutations = withMutations;\nRecordPrototype.asMutable = asMutable;\nRecordPrototype.asImmutable = asImmutable;\nRecordPrototype[ITERATOR_SYMBOL] = RecordPrototype.entries;\nRecordPrototype.toJSON = RecordPrototype.toObject =\n CollectionPrototype.toObject;\nRecordPrototype.inspect = RecordPrototype.toSource = function () {\n return this.toString();\n};\n\nfunction makeRecord(likeRecord, values, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._values = values;\n record.__ownerID = ownerID;\n return record;\n}\n\nfunction recordName(record) {\n return record.constructor.displayName || record.constructor.name || 'Record';\n}\n\nfunction recordSeq(record) {\n return keyedSeqFromValue(record._keys.map(function (k) { return [k, record.get(k)]; }));\n}\n\nfunction setProp(prototype, name) {\n try {\n Object.defineProperty(prototype, name, {\n get: function () {\n return this.get(name);\n },\n set: function (value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n },\n });\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n}\n\n/**\n * Returns a lazy Seq of `value` repeated `times` times. When `times` is\n * undefined, returns an infinite sequence of `value`.\n */\nvar Repeat = /*@__PURE__*/(function (IndexedSeq) {\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n if ( IndexedSeq ) Repeat.__proto__ = IndexedSeq;\n Repeat.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Repeat.prototype.constructor = Repeat;\n\n Repeat.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function includes (searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function slice (begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size)\n ? this\n : new Repeat(\n this._value,\n resolveEnd(end, size) - resolveBegin(begin, size)\n );\n };\n\n Repeat.prototype.reverse = function reverse () {\n return this;\n };\n\n Repeat.prototype.indexOf = function indexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var i = 0;\n while (i !== size) {\n if (fn(this._value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n }\n return i;\n };\n\n Repeat.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var size = this.size;\n var i = 0;\n return new Iterator(function () { return i === size\n ? iteratorDone()\n : iteratorValue(type, reverse ? size - ++i : i++, this$1$1._value); }\n );\n };\n\n Repeat.prototype.equals = function equals (other) {\n return other instanceof Repeat\n ? is(this._value, other._value)\n : deepEqual(other);\n };\n\n return Repeat;\n}(IndexedSeq));\n\nvar EMPTY_REPEAT;\n\nfunction fromJS(value, converter) {\n return fromJSWith(\n [],\n converter || defaultConverter,\n value,\n '',\n converter && converter.length > 2 ? [] : undefined,\n { '': value }\n );\n}\n\nfunction fromJSWith(stack, converter, value, key, keyPath, parentValue) {\n if (\n typeof value !== 'string' &&\n !isImmutable(value) &&\n (isArrayLike(value) || hasIterator(value) || isPlainObject(value))\n ) {\n if (~stack.indexOf(value)) {\n throw new TypeError('Cannot convert circular structure to Immutable');\n }\n stack.push(value);\n keyPath && key !== '' && keyPath.push(key);\n var converted = converter.call(\n parentValue,\n key,\n Seq(value).map(function (v, k) { return fromJSWith(stack, converter, v, k, keyPath, value); }\n ),\n keyPath && keyPath.slice()\n );\n stack.pop();\n keyPath && keyPath.pop();\n return converted;\n }\n return value;\n}\n\nfunction defaultConverter(k, v) {\n // Effectively the opposite of \"Collection.toSeq()\"\n return isIndexed(v) ? v.toList() : isKeyed(v) ? v.toMap() : v.toSet();\n}\n\nvar version = \"4.3.5\";\n\nvar Immutable = {\n version: version,\n\n Collection: Collection,\n // Note: Iterable is deprecated\n Iterable: Collection,\n\n Seq: Seq,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n PairSorting: PairSorting,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS,\n hash: hash,\n\n isImmutable: isImmutable,\n isCollection: isCollection,\n isKeyed: isKeyed,\n isIndexed: isIndexed,\n isAssociative: isAssociative,\n isOrdered: isOrdered,\n isValueObject: isValueObject,\n isPlainObject: isPlainObject,\n isSeq: isSeq,\n isList: isList,\n isMap: isMap,\n isOrderedMap: isOrderedMap,\n isStack: isStack,\n isSet: isSet,\n isOrderedSet: isOrderedSet,\n isRecord: isRecord,\n\n get: get,\n getIn: getIn$1,\n has: has,\n hasIn: hasIn$1,\n merge: merge,\n mergeDeep: mergeDeep$1,\n mergeWith: mergeWith,\n mergeDeepWith: mergeDeepWith$1,\n remove: remove,\n removeIn: removeIn,\n set: set,\n setIn: setIn$1,\n update: update$1,\n updateIn: updateIn$1,\n};\n\n// Note: Iterable is deprecated\nvar Iterable = Collection;\n\nexport default Immutable;\nexport { Collection, Iterable, List, Map, OrderedMap, OrderedSet, PairSorting, Range, Record, Repeat, Seq, Set, Stack, fromJS, get, getIn$1 as getIn, has, hasIn$1 as hasIn, hash, is, isAssociative, isCollection, isImmutable, isIndexed, isKeyed, isList, isMap, isOrdered, isOrderedMap, isOrderedSet, isPlainObject, isRecord, isSeq, isSet, isStack, isValueObject, merge, mergeDeep$1 as mergeDeep, mergeDeepWith$1 as mergeDeepWith, mergeWith, remove, removeIn, set, setIn$1 as setIn, update$1 as update, updateIn$1 as updateIn, version };\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/ContextParser\"), exports);\n__exportStar(require(\"./lib/ErrorCoded\"), exports);\n__exportStar(require(\"./lib/FetchDocumentLoader\"), exports);\n__exportStar(require(\"./lib/IDocumentLoader\"), exports);\n__exportStar(require(\"./lib/JsonLdContext\"), exports);\n__exportStar(require(\"./lib/JsonLdContextNormalized\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextParser = void 0;\nrequire(\"cross-fetch/polyfill\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst FetchDocumentLoader_1 = require(\"./FetchDocumentLoader\");\nconst JsonLdContextNormalized_1 = require(\"./JsonLdContextNormalized\");\nconst Util_1 = require(\"./Util\");\n/**\n * Parses JSON-LD contexts.\n */\nclass ContextParser {\n constructor(options) {\n options = options || {};\n this.documentLoader = options.documentLoader || new FetchDocumentLoader_1.FetchDocumentLoader();\n this.documentCache = {};\n this.validateContext = !options.skipValidation;\n this.expandContentTypeToBase = !!options.expandContentTypeToBase;\n this.remoteContextsDepthLimit = options.remoteContextsDepthLimit || 32;\n this.redirectSchemaOrgHttps = 'redirectSchemaOrgHttps' in options ? !!options.redirectSchemaOrgHttps : true;\n }\n /**\n * Validate the given @language value.\n * An error will be thrown if it is invalid.\n * @param value An @language value.\n * @param {boolean} strictRange If the string value should be strictly checked against a regex.\n * @param {string} errorCode The error code to emit on errors.\n * @return {boolean} If validation passed.\n * Can only be false if strictRange is false and the string value did not pass the regex.\n */\n static validateLanguage(value, strictRange, errorCode) {\n if (typeof value !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(value)}'`, errorCode);\n }\n if (!Util_1.Util.REGEX_LANGUAGE_TAG.test(value)) {\n if (strictRange) {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(value)}'`, errorCode);\n }\n else {\n return false;\n }\n }\n return true;\n }\n /**\n * Validate the given @direction value.\n * An error will be thrown if it is invalid.\n * @param value An @direction value.\n * @param {boolean} strictValues If the string value should be strictly checked against a regex.\n * @return {boolean} If validation passed.\n * Can only be false if strictRange is false and the string value did not pass the regex.\n */\n static validateDirection(value, strictValues) {\n if (typeof value !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n }\n if (!Util_1.Util.REGEX_DIRECTION_TAG.test(value)) {\n if (strictValues) {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n }\n else {\n return false;\n }\n }\n return true;\n }\n /**\n * Add an @id term for all @reverse terms.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n */\n idifyReverseTerms(context) {\n for (const key of Object.keys(context)) {\n let value = context[key];\n if (value && typeof value === 'object') {\n if (value['@reverse'] && !value['@id']) {\n if (typeof value['@reverse'] !== 'string' || Util_1.Util.isValidKeyword(value['@reverse'])) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${value['@reverse']}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n value = context[key] = Object.assign(Object.assign({}, value), { '@id': value['@reverse'] });\n value['@id'] = value['@reverse'];\n if (Util_1.Util.isPotentialKeyword(value['@reverse'])) {\n delete value['@reverse'];\n }\n else {\n value['@reverse'] = true;\n }\n }\n }\n }\n return context;\n }\n /**\n * Expand all prefixed terms in the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {boolean} expandContentTypeToBase If @type inside the context may be expanded\n * via @base if @vocab is set to null.\n * @param {string[]} keys Optional set of keys from the context to expand. If left undefined, all\n * keys in the context will be expanded.\n */\n expandPrefixedTerms(context, expandContentTypeToBase, keys) {\n const contextRaw = context.getContextRaw();\n for (const key of (keys || Object.keys(contextRaw))) {\n // Only expand allowed keys\n if (Util_1.Util.EXPAND_KEYS_BLACKLIST.indexOf(key) < 0 && !Util_1.Util.isReservedInternalKeyword(key)) {\n // Error if we try to alias a keyword to something else.\n const keyValue = contextRaw[key];\n if (Util_1.Util.isPotentialKeyword(key) && Util_1.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(key) >= 0) {\n if (key !== '@type' || typeof contextRaw[key] === 'object'\n && !(contextRaw[key]['@protected'] || contextRaw[key]['@container'] === '@set')) {\n throw new ErrorCoded_1.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n }\n }\n // Error if we try to alias to an illegal keyword\n if (Util_1.Util.ALIAS_RANGE_BLACKLIST.indexOf(Util_1.Util.getContextValueId(keyValue)) >= 0) {\n throw new ErrorCoded_1.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.INVALID_KEYWORD_ALIAS);\n }\n // Error if this term was marked as prefix as well\n if (keyValue && Util_1.Util.isPotentialKeyword(Util_1.Util.getContextValueId(keyValue))\n && keyValue['@prefix'] === true) {\n throw new ErrorCoded_1.ErrorCoded(`Tried to use keyword aliases as prefix: '${key}': '${JSON.stringify(keyValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n // Loop because prefixes might be nested\n while (Util_1.Util.isPrefixValue(contextRaw[key])) {\n const value = contextRaw[key];\n let changed = false;\n if (typeof value === 'string') {\n contextRaw[key] = context.expandTerm(value, true);\n changed = changed || value !== contextRaw[key];\n }\n else {\n const id = value['@id'];\n const type = value['@type'];\n // If @id is missing, don't allow @id to be added if @prefix: true and key not being a valid IRI.\n const canAddIdEntry = !('@prefix' in value) || Util_1.Util.isValidIri(key);\n if ('@id' in value) {\n // Use @id value for expansion\n if (id !== undefined && id !== null && typeof id === 'string') {\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': context.expandTerm(id, true) });\n changed = changed || id !== contextRaw[key]['@id'];\n }\n }\n else if (!Util_1.Util.isPotentialKeyword(key) && canAddIdEntry) {\n // Add an explicit @id value based on the expanded key value\n const newId = context.expandTerm(key, true);\n if (newId !== key) {\n // Don't set @id if expansion failed\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': newId });\n changed = true;\n }\n }\n if (type && typeof type === 'string' && type !== '@vocab'\n && (!value['@container'] || !value['@container']['@type'])\n && canAddIdEntry) {\n // First check @vocab, then fallback to @base\n let expandedType = context.expandTerm(type, true);\n if (expandContentTypeToBase && type === expandedType) {\n expandedType = context.expandTerm(type, false);\n }\n if (expandedType !== type) {\n changed = true;\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@type': expandedType });\n }\n }\n }\n if (!changed) {\n break;\n }\n }\n }\n }\n }\n /**\n * Normalize the @language entries in the given context to lowercase.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} parseOptions The parsing options.\n */\n normalize(context, { processingMode, normalizeLanguageTags }) {\n // Lowercase language keys in 1.0\n if (normalizeLanguageTags || processingMode === 1.0) {\n for (const key of Object.keys(context)) {\n if (key === '@language' && typeof context[key] === 'string') {\n context[key] = context[key].toLowerCase();\n }\n else {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (typeof value['@language'] === 'string') {\n const lowercase = value['@language'].toLowerCase();\n if (lowercase !== value['@language']) {\n context[key] = Object.assign(Object.assign({}, value), { '@language': lowercase });\n }\n }\n }\n }\n }\n }\n }\n /**\n * Convert all @container strings and array values to hash-based values.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n */\n containersToHash(context) {\n for (const key of Object.keys(context)) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (typeof value['@container'] === 'string') {\n context[key] = Object.assign(Object.assign({}, value), { '@container': { [value['@container']]: true } });\n }\n else if (Array.isArray(value['@container'])) {\n const newValue = {};\n for (const containerValue of value['@container']) {\n newValue[containerValue] = true;\n }\n context[key] = Object.assign(Object.assign({}, value), { '@container': newValue });\n }\n }\n }\n }\n /**\n * Normalize and apply context-level @protected terms onto each term separately.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {number} processingMode The processing mode.\n */\n applyScopedProtected(context, { processingMode }, expandOptions) {\n if (processingMode && processingMode >= 1.1) {\n if (context['@protected']) {\n for (const key of Object.keys(context)) {\n if (Util_1.Util.isReservedInternalKeyword(key)) {\n continue;\n }\n if (!Util_1.Util.isPotentialKeyword(key) && !Util_1.Util.isTermProtected(context, key)) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (!('@protected' in context[key])) {\n // Mark terms with object values as protected if they don't have an @protected: false annotation\n context[key] = Object.assign(Object.assign({}, context[key]), { '@protected': true });\n }\n }\n else {\n // Convert string-based term values to object-based values with @protected: true\n context[key] = {\n '@id': value,\n '@protected': true,\n };\n if (Util_1.Util.isSimpleTermDefinitionPrefix(value, expandOptions)) {\n context[key] = Object.assign(Object.assign({}, context[key]), { '@prefix': true });\n }\n }\n }\n }\n delete context['@protected'];\n }\n }\n }\n /**\n * Check if the given context inheritance does not contain any overrides of protected terms.\n * @param {IJsonLdContextNormalizedRaw} contextBefore The context that may contain some protected terms.\n * @param {IJsonLdContextNormalizedRaw} contextAfter A new context that is being applied on the first one.\n * @param {IExpandOptions} expandOptions Options that are needed for any expansions during this validation.\n * @param {string[]} keys Optional set of keys from the context to validate. If left undefined, all\n * keys defined in contextAfter will be checked.\n */\n validateKeywordRedefinitions(contextBefore, contextAfter, expandOptions, keys) {\n for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(contextAfter))) {\n if (Util_1.Util.isTermProtected(contextBefore, key)) {\n // The entry in the context before will always be in object-mode\n // If the new entry is in string-mode, convert it to object-mode\n // before checking if it is identical.\n if (typeof contextAfter[key] === 'string') {\n contextAfter[key] = { '@id': contextAfter[key], '@protected': true };\n }\n else {\n // We modify this deliberately,\n // as we need it for the value comparison (they must be identical modulo '@protected')),\n // and for the fact that this new value will override the first one.\n contextAfter[key] = Object.assign(Object.assign({}, contextAfter[key]), { '@protected': true });\n }\n // Error if they are not identical\n if (!Util_1.Util.deepEqual(contextBefore[key], contextAfter[key])) {\n throw new ErrorCoded_1.ErrorCoded(`Attempted to override the protected keyword ${key} from ${JSON.stringify(Util_1.Util.getContextValueId(contextBefore[key]))} to ${JSON.stringify(Util_1.Util.getContextValueId(contextAfter[key]))}`, ErrorCoded_1.ERROR_CODES.PROTECTED_TERM_REDEFINITION);\n }\n }\n }\n }\n /**\n * Validate the entries of the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} options The parse options.\n */\n validate(context, { processingMode }) {\n for (const key of Object.keys(context)) {\n // Ignore reserved internal keywords.\n if (Util_1.Util.isReservedInternalKeyword(key)) {\n continue;\n }\n // Do not allow empty term\n if (key === '') {\n throw new ErrorCoded_1.ErrorCoded(`The empty term is not allowed, got: '${key}': '${JSON.stringify(context[key])}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n const value = context[key];\n const valueType = typeof value;\n // First check if the key is a keyword\n if (Util_1.Util.isPotentialKeyword(key)) {\n switch (key.substr(1)) {\n case 'vocab':\n if (value !== null && valueType !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @vocab IRI: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n }\n break;\n case 'base':\n if (value !== null && valueType !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @base IRI: ${context[key]}`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_IRI);\n }\n break;\n case 'language':\n if (value !== null) {\n ContextParser.validateLanguage(value, true, ErrorCoded_1.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);\n }\n break;\n case 'version':\n if (value !== null && valueType !== 'number') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @version number: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n }\n break;\n case 'direction':\n if (value !== null) {\n ContextParser.validateDirection(value, true);\n }\n break;\n case 'propagate':\n if (processingMode === 1.0) {\n throw new ErrorCoded_1.ErrorCoded(`Found an illegal @propagate keyword: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n if (value !== null && valueType !== 'boolean') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @propagate value: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_PROPAGATE_VALUE);\n }\n break;\n }\n // Don't allow keywords to be overridden\n if (Util_1.Util.isValidKeyword(key) && Util_1.Util.isValidKeyword(Util_1.Util.getContextValueId(value))) {\n throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${Util_1.Util\n .getContextValueId(value)}'`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n }\n continue;\n }\n // Otherwise, consider the key a term\n if (value !== null) {\n switch (valueType) {\n case 'string':\n if (Util_1.Util.getPrefix(value, context) === key) {\n throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n }\n if (Util_1.Util.isValidIriWeak(key)) {\n if (value === '@type') {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n else if (Util_1.Util.isValidIri(value) && value !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n break;\n case 'object':\n if (!Util_1.Util.isCompactIri(key) && !('@id' in value)\n && (value['@type'] === '@id' ? !context['@base'] : !context['@vocab'])) {\n throw new ErrorCoded_1.ErrorCoded(`Missing @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n for (const objectKey of Object.keys(value)) {\n const objectValue = value[objectKey];\n if (!objectValue) {\n continue;\n }\n switch (objectKey) {\n case '@id':\n if (Util_1.Util.isValidKeyword(objectValue)\n && objectValue !== '@type' && objectValue !== '@id' && objectValue !== '@graph' && objectValue !== '@nest') {\n throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n if (Util_1.Util.isValidIriWeak(key)) {\n if (objectValue === '@type') {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n else if (Util_1.Util.isValidIri(objectValue)\n && objectValue !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n if (typeof objectValue !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Detected non-string @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n if (Util_1.Util.getPrefix(objectValue, context) === key) {\n throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n }\n break;\n case '@type':\n if (value['@container'] === '@type' && objectValue !== '@id' && objectValue !== '@vocab') {\n throw new ErrorCoded_1.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n if (typeof objectValue !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n if (objectValue !== '@id' && objectValue !== '@vocab'\n && (processingMode === 1.0 || objectValue !== '@json')\n && (processingMode === 1.0 || objectValue !== '@none')\n && (objectValue[0] === '_' || !Util_1.Util.isValidIri(objectValue))) {\n throw new ErrorCoded_1.ErrorCoded(`A context @type must be an absolute IRI, found: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n break;\n case '@reverse':\n if (typeof objectValue === 'string' && value['@id'] && value['@id'] !== objectValue) {\n throw new ErrorCoded_1.ErrorCoded(`Found non-matching @id and @reverse term values in '${key}':\\\n'${objectValue}' and '${value['@id']}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n if ('@nest' in value) {\n throw new ErrorCoded_1.ErrorCoded(`@nest is not allowed in the reverse property '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n break;\n case '@container':\n if (processingMode === 1.0) {\n if (Object.keys(objectValue).length > 1\n || Util_1.Util.CONTAINERS_1_0.indexOf(Object.keys(objectValue)[0]) < 0) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${Object.keys(objectValue)}') in 1.0, \\\nmust be only one of ${Util_1.Util.CONTAINERS_1_0.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n }\n }\n for (const containerValue of Object.keys(objectValue)) {\n if (containerValue === '@list' && value['@reverse']) {\n throw new ErrorCoded_1.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n if (Util_1.Util.CONTAINERS.indexOf(containerValue) < 0) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${containerValue}'), \\\nmust be one of ${Util_1.Util.CONTAINERS.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n }\n }\n break;\n case '@language':\n ContextParser.validateLanguage(objectValue, true, ErrorCoded_1.ERROR_CODES.INVALID_LANGUAGE_MAPPING);\n break;\n case '@direction':\n ContextParser.validateDirection(objectValue, true);\n break;\n case '@prefix':\n if (objectValue !== null && typeof objectValue !== 'boolean') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @prefix boolean in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_PREFIX_VALUE);\n }\n if (!('@id' in value) && !Util_1.Util.isValidIri(key)) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid @prefix definition for '${key}' ('${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n break;\n case '@index':\n if (processingMode === 1.0 || !value['@container'] || !value['@container']['@index']) {\n throw new ErrorCoded_1.ErrorCoded(`Attempt to add illegal key to value object: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n break;\n case '@nest':\n if (Util_1.Util.isPotentialKeyword(objectValue) && objectValue !== '@nest') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @nest value in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_NEST_VALUE);\n }\n }\n }\n break;\n default:\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term value: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n }\n }\n }\n /**\n * Apply the @base context entry to the given context under certain circumstances.\n * @param context A context.\n * @param options Parsing options.\n * @param inheritFromParent If the @base value from the parent context can be inherited.\n * @return The given context.\n */\n applyBaseEntry(context, options, inheritFromParent) {\n // In some special cases, this can be a string, so ignore those.\n if (typeof context === 'string') {\n return context;\n }\n // Give priority to @base in the parent context\n if (inheritFromParent && !('@base' in context) && options.parentContext\n && typeof options.parentContext === 'object' && '@base' in options.parentContext) {\n context['@base'] = options.parentContext['@base'];\n if (options.parentContext['@__baseDocument']) {\n context['@__baseDocument'] = true;\n }\n }\n // Override the base IRI if provided.\n if (options.baseIRI && !options.external) {\n if (!('@base' in context)) {\n // The context base is the document base\n context['@base'] = options.baseIRI;\n context['@__baseDocument'] = true;\n }\n else if (context['@base'] !== null && typeof context['@base'] === 'string'\n && !Util_1.Util.isValidIri(context['@base'])) {\n // The context base is relative to the document base\n context['@base'] = (0, relative_to_absolute_iri_1.resolve)(context['@base'], options.parentContext && options.parentContext['@base'] || options.baseIRI);\n }\n }\n return context;\n }\n /**\n * Resolve relative context IRIs, or return full IRIs as-is.\n * @param {string} contextIri A context IRI.\n * @param {string} baseIRI A base IRI.\n * @return {string} The normalized context IRI.\n */\n normalizeContextIri(contextIri, baseIRI) {\n if (!Util_1.Util.isValidIri(contextIri)) {\n try {\n contextIri = (0, relative_to_absolute_iri_1.resolve)(contextIri, baseIRI);\n }\n catch (_a) {\n throw new Error(`Invalid context IRI: ${contextIri}`);\n }\n }\n // TODO: Temporary workaround for fixing schema.org CORS issues (https://github.com/schemaorg/schemaorg/issues/2578#issuecomment-652324465)\n if (this.redirectSchemaOrgHttps && contextIri.startsWith('http://schema.org')) {\n contextIri = 'https://schema.org/';\n }\n return contextIri;\n }\n /**\n * Parse scoped contexts in the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} options Parsing options.\n * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n * @param {string[]} keys Optional set of keys from the context to parseInnerContexts of. If left undefined, all\n * keys in the context will be iterated over.\n */\n async parseInnerContexts(context, options, keys) {\n for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(context))) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if ('@context' in value && value['@context'] !== null && !options.ignoreScopedContexts) {\n // Simulate a processing based on the parent context to check if there are any (potential errors).\n // Honestly, I find it a bit weird to do this here, as the context may be unused,\n // and the final effective context may differ based on any other embedded/scoped contexts.\n // But hey, it's part of the spec, so we have no choice...\n // https://w3c.github.io/json-ld-api/#h-note-10\n if (this.validateContext) {\n try {\n const parentContext = Object.assign(Object.assign({}, context), { [key]: Object.assign({}, context[key]) });\n delete parentContext[key]['@context'];\n await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, parentContext, ignoreProtection: true, ignoreRemoteScopedContexts: true, ignoreScopedContexts: true }));\n }\n catch (e) {\n throw new ErrorCoded_1.ErrorCoded(e.message, ErrorCoded_1.ERROR_CODES.INVALID_SCOPED_CONTEXT);\n }\n }\n context[key] = Object.assign(Object.assign({}, value), { '@context': (await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, minimalProcessing: true, ignoreRemoteScopedContexts: true, parentContext: context })))\n .getContextRaw() });\n }\n }\n }\n return context;\n }\n async parse(context, options = {}, \n // These options are only for internal use on recursive calls and should not be used by\n // libraries consuming this function\n internalOptions = {}) {\n const { baseIRI, parentContext, external, processingMode = ContextParser.DEFAULT_PROCESSING_MODE, normalizeLanguageTags, ignoreProtection, minimalProcessing, } = options;\n const remoteContexts = options.remoteContexts || {};\n // Avoid remote context overflows\n if (Object.keys(remoteContexts).length >= this.remoteContextsDepthLimit) {\n throw new ErrorCoded_1.ErrorCoded('Detected an overflow in remote context inclusions: ' + Object.keys(remoteContexts), ErrorCoded_1.ERROR_CODES.CONTEXT_OVERFLOW);\n }\n if (context === null || context === undefined) {\n // Don't allow context nullification and there are protected terms\n if (!ignoreProtection && parentContext && Util_1.Util.hasProtectedTerms(parentContext)) {\n throw new ErrorCoded_1.ErrorCoded('Illegal context nullification when terms are protected', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);\n }\n // Context that are explicitly set to null are empty.\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(this.applyBaseEntry({}, options, false));\n }\n else if (typeof context === 'string') {\n const contextIri = this.normalizeContextIri(context, baseIRI);\n const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n if (overriddenLoad) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(overriddenLoad);\n }\n const parsedStringContext = await this.parse(await this.load(contextIri), Object.assign(Object.assign({}, options), { baseIRI: contextIri, external: true, remoteContexts: Object.assign(Object.assign({}, remoteContexts), { [contextIri]: true }) }));\n this.applyBaseEntry(parsedStringContext.getContextRaw(), options, true);\n return parsedStringContext;\n }\n else if (Array.isArray(context)) {\n // As a performance consideration, first load all external contexts in parallel.\n const contextIris = [];\n const contexts = await Promise.all(context.map((subContext, i) => {\n if (typeof subContext === 'string') {\n const contextIri = this.normalizeContextIri(subContext, baseIRI);\n contextIris[i] = contextIri;\n const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n if (overriddenLoad) {\n return overriddenLoad;\n }\n return this.load(contextIri);\n }\n else {\n return subContext;\n }\n }));\n // Don't apply inheritance logic on minimal processing\n if (minimalProcessing) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(contexts);\n }\n const reducedContexts = await contexts.reduce((accContextPromise, contextEntry, i) => accContextPromise\n .then((accContext) => this.parse(contextEntry, Object.assign(Object.assign({}, options), { baseIRI: contextIris[i] || options.baseIRI, external: !!contextIris[i] || options.external, parentContext: accContext.getContextRaw(), remoteContexts: contextIris[i] ? Object.assign(Object.assign({}, remoteContexts), { [contextIris[i]]: true }) : remoteContexts }), \n // @ts-expect-error: This third argument causes a type error because we have hidden it from consumers\n {\n skipValidation: i < contexts.length - 1,\n })), Promise.resolve(new JsonLdContextNormalized_1.JsonLdContextNormalized(parentContext || {})));\n // Override the base IRI if provided.\n this.applyBaseEntry(reducedContexts.getContextRaw(), options, true);\n return reducedContexts;\n }\n else if (typeof context === 'object') {\n if ('@context' in context) {\n return await this.parse(context['@context'], options);\n }\n // Make a deep clone of the given context, to avoid modifying it.\n context = Object.assign({}, context);\n // According to the JSON-LD spec, @base must be ignored from external contexts.\n if (external) {\n delete context['@base'];\n }\n // Override the base IRI if provided.\n this.applyBaseEntry(context, options, true);\n // Hashify container entries\n // Do this before protected term validation as that influences term format\n this.containersToHash(context);\n // Don't perform any other modifications if only minimal processing is needed.\n if (minimalProcessing) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(context);\n }\n // In JSON-LD 1.1, load @import'ed context prior to processing.\n let importContext = {};\n if ('@import' in context) {\n if (processingMode >= 1.1) {\n // Only accept string values\n if (typeof context['@import'] !== 'string') {\n throw new ErrorCoded_1.ErrorCoded('An @import value must be a string, but got ' + typeof context['@import'], ErrorCoded_1.ERROR_CODES.INVALID_IMPORT_VALUE);\n }\n // Load context\n importContext = await this.loadImportContext(this.normalizeContextIri(context['@import'], baseIRI));\n delete context['@import'];\n }\n else {\n throw new ErrorCoded_1.ErrorCoded('Context importing is not supported in JSON-LD 1.0', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n }\n this.applyScopedProtected(importContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n const newContext = Object.assign(importContext, context);\n // Handle terms (before protection checks)\n this.idifyReverseTerms(newContext);\n this.normalize(newContext, { processingMode, normalizeLanguageTags });\n this.applyScopedProtected(newContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n const keys = Object.keys(newContext);\n const overlappingKeys = [];\n if (typeof parentContext === 'object') {\n // Merge different parts of the final context in order\n for (const key in parentContext) {\n if (key in newContext) {\n overlappingKeys.push(key);\n }\n else {\n newContext[key] = parentContext[key];\n }\n }\n }\n // Parse inner contexts with minimal processing\n await this.parseInnerContexts(newContext, options, keys);\n const newContextWrapped = new JsonLdContextNormalized_1.JsonLdContextNormalized(newContext);\n // In JSON-LD 1.1, @vocab can be relative to @vocab in the parent context, or a compact IRI.\n if ((newContext && newContext['@version'] || ContextParser.DEFAULT_PROCESSING_MODE) >= 1.1\n && ((context['@vocab'] && typeof context['@vocab'] === 'string') || context['@vocab'] === '')) {\n if (parentContext && '@vocab' in parentContext && context['@vocab'].indexOf(':') < 0) {\n newContext['@vocab'] = parentContext['@vocab'] + context['@vocab'];\n }\n else if (Util_1.Util.isCompactIri(context['@vocab']) || context['@vocab'] in newContext) {\n // @vocab is a compact IRI or refers exactly to a prefix\n newContext['@vocab'] = newContextWrapped.expandTerm(context['@vocab'], true);\n }\n }\n this.expandPrefixedTerms(newContextWrapped, this.expandContentTypeToBase, keys);\n // In JSON-LD 1.1, check if we are not redefining any protected keywords\n if (!ignoreProtection && parentContext && processingMode >= 1.1) {\n this.validateKeywordRedefinitions(parentContext, newContext, JsonLdContextNormalized_1.defaultExpandOptions, overlappingKeys);\n }\n if (this.validateContext && !internalOptions.skipValidation) {\n this.validate(newContext, { processingMode });\n }\n return newContextWrapped;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Tried parsing a context that is not a string, array or object, but got ${context}`, ErrorCoded_1.ERROR_CODES.INVALID_LOCAL_CONTEXT);\n }\n }\n /**\n * Fetch the given URL as a raw JSON-LD context.\n * @param url An URL.\n * @return A promise resolving to a raw JSON-LD context.\n */\n async load(url) {\n // First try to retrieve the context from cache\n const cached = this.documentCache[url];\n if (cached) {\n return cached;\n }\n // If not in cache, load it\n let document;\n try {\n document = await this.documentLoader.load(url);\n }\n catch (e) {\n throw new ErrorCoded_1.ErrorCoded(`Failed to load remote context ${url}: ${e.message}`, ErrorCoded_1.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED);\n }\n // Validate the context\n if (!('@context' in document)) {\n throw new ErrorCoded_1.ErrorCoded(`Missing @context in remote context at ${url}`, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n }\n return this.documentCache[url] = document['@context'];\n }\n /**\n * Override the given context that may be loaded.\n *\n * This will check whether or not the url is recursively being loaded.\n * @param url An URL.\n * @param options Parsing options.\n * @return An overridden context, or null.\n * Optionally an error can be thrown if a cyclic context is detected.\n */\n getOverriddenLoad(url, options) {\n if (url in (options.remoteContexts || {})) {\n if (options.ignoreRemoteScopedContexts) {\n return url;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded('Detected a cyclic context inclusion of ' + url, ErrorCoded_1.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION);\n }\n }\n return null;\n }\n /**\n * Load an @import'ed context.\n * @param importContextIri The full URI of an @import value.\n */\n async loadImportContext(importContextIri) {\n // Load the context - and do a deep clone since we are about to mutate it\n let importContext = await this.load(importContextIri);\n // Require the context to be a non-array object\n if (typeof importContext !== 'object' || Array.isArray(importContext)) {\n throw new ErrorCoded_1.ErrorCoded('An imported context must be a single object: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n }\n // Error if the context contains another @import\n if ('@import' in importContext) {\n throw new ErrorCoded_1.ErrorCoded('An imported context can not import another context: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n importContext = Object.assign({}, importContext);\n // Containers have to be converted into hash values the same way as for the importing context\n // Otherwise context validation will fail for container values\n this.containersToHash(importContext);\n return importContext;\n }\n}\nContextParser.DEFAULT_PROCESSING_MODE = 1.1;\nexports.ContextParser = ContextParser;\n//# sourceMappingURL=ContextParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ERROR_CODES = exports.ErrorCoded = void 0;\n/**\n * An error that has a certain error code.\n *\n * The error code can be any string.\n * All standardized error codes are listed in {@link ERROR_CODES}.\n */\nclass ErrorCoded extends Error {\n /* istanbul ignore next */\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\nexports.ErrorCoded = ErrorCoded;\n/**\n * All standardized JSON-LD error codes.\n * @see https://w3c.github.io/json-ld-api/#dom-jsonlderrorcode\n */\n// tslint:disable:object-literal-sort-keys\nvar ERROR_CODES;\n(function (ERROR_CODES) {\n ERROR_CODES[\"COLLIDING_KEYWORDS\"] = \"colliding keywords\";\n ERROR_CODES[\"CONFLICTING_INDEXES\"] = \"conflicting indexes\";\n ERROR_CODES[\"CYCLIC_IRI_MAPPING\"] = \"cyclic IRI mapping\";\n ERROR_CODES[\"INVALID_ID_VALUE\"] = \"invalid @id value\";\n ERROR_CODES[\"INVALID_INDEX_VALUE\"] = \"invalid @index value\";\n ERROR_CODES[\"INVALID_NEST_VALUE\"] = \"invalid @nest value\";\n ERROR_CODES[\"INVALID_PREFIX_VALUE\"] = \"invalid @prefix value\";\n ERROR_CODES[\"INVALID_PROPAGATE_VALUE\"] = \"invalid @propagate value\";\n ERROR_CODES[\"INVALID_REVERSE_VALUE\"] = \"invalid @reverse value\";\n ERROR_CODES[\"INVALID_IMPORT_VALUE\"] = \"invalid @import value\";\n ERROR_CODES[\"INVALID_VERSION_VALUE\"] = \"invalid @version value\";\n ERROR_CODES[\"INVALID_BASE_IRI\"] = \"invalid base IRI\";\n ERROR_CODES[\"INVALID_CONTAINER_MAPPING\"] = \"invalid container mapping\";\n ERROR_CODES[\"INVALID_CONTEXT_ENTRY\"] = \"invalid context entry\";\n ERROR_CODES[\"INVALID_CONTEXT_NULLIFICATION\"] = \"invalid context nullification\";\n ERROR_CODES[\"INVALID_DEFAULT_LANGUAGE\"] = \"invalid default language\";\n ERROR_CODES[\"INVALID_INCLUDED_VALUE\"] = \"invalid @included value\";\n ERROR_CODES[\"INVALID_IRI_MAPPING\"] = \"invalid IRI mapping\";\n ERROR_CODES[\"INVALID_JSON_LITERAL\"] = \"invalid JSON literal\";\n ERROR_CODES[\"INVALID_KEYWORD_ALIAS\"] = \"invalid keyword alias\";\n ERROR_CODES[\"INVALID_LANGUAGE_MAP_VALUE\"] = \"invalid language map value\";\n ERROR_CODES[\"INVALID_LANGUAGE_MAPPING\"] = \"invalid language mapping\";\n ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_STRING\"] = \"invalid language-tagged string\";\n ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_VALUE\"] = \"invalid language-tagged value\";\n ERROR_CODES[\"INVALID_LOCAL_CONTEXT\"] = \"invalid local context\";\n ERROR_CODES[\"INVALID_REMOTE_CONTEXT\"] = \"invalid remote context\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY\"] = \"invalid reverse property\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY_MAP\"] = \"invalid reverse property map\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY_VALUE\"] = \"invalid reverse property value\";\n ERROR_CODES[\"INVALID_SCOPED_CONTEXT\"] = \"invalid scoped context\";\n ERROR_CODES[\"INVALID_SCRIPT_ELEMENT\"] = \"invalid script element\";\n ERROR_CODES[\"INVALID_SET_OR_LIST_OBJECT\"] = \"invalid set or list object\";\n ERROR_CODES[\"INVALID_TERM_DEFINITION\"] = \"invalid term definition\";\n ERROR_CODES[\"INVALID_TYPE_MAPPING\"] = \"invalid type mapping\";\n ERROR_CODES[\"INVALID_TYPE_VALUE\"] = \"invalid type value\";\n ERROR_CODES[\"INVALID_TYPED_VALUE\"] = \"invalid typed value\";\n ERROR_CODES[\"INVALID_VALUE_OBJECT\"] = \"invalid value object\";\n ERROR_CODES[\"INVALID_VALUE_OBJECT_VALUE\"] = \"invalid value object value\";\n ERROR_CODES[\"INVALID_VOCAB_MAPPING\"] = \"invalid vocab mapping\";\n ERROR_CODES[\"IRI_CONFUSED_WITH_PREFIX\"] = \"IRI confused with prefix\";\n ERROR_CODES[\"KEYWORD_REDEFINITION\"] = \"keyword redefinition\";\n ERROR_CODES[\"LOADING_DOCUMENT_FAILED\"] = \"loading document failed\";\n ERROR_CODES[\"LOADING_REMOTE_CONTEXT_FAILED\"] = \"loading remote context failed\";\n ERROR_CODES[\"MULTIPLE_CONTEXT_LINK_HEADERS\"] = \"multiple context link headers\";\n ERROR_CODES[\"PROCESSING_MODE_CONFLICT\"] = \"processing mode conflict\";\n ERROR_CODES[\"PROTECTED_TERM_REDEFINITION\"] = \"protected term redefinition\";\n ERROR_CODES[\"CONTEXT_OVERFLOW\"] = \"context overflow\";\n ERROR_CODES[\"INVALID_BASE_DIRECTION\"] = \"invalid base direction\";\n ERROR_CODES[\"RECURSIVE_CONTEXT_INCLUSION\"] = \"recursive context inclusion\";\n ERROR_CODES[\"INVALID_STREAMING_KEY_ORDER\"] = \"invalid streaming key order\";\n /**\n * JSON-LD-star\n */\n ERROR_CODES[\"INVALID_EMBEDDED_NODE\"] = \"invalid embedded node\";\n ERROR_CODES[\"INVALID_ANNOTATION\"] = \"invalid annotation\";\n})(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));\n//# sourceMappingURL=ErrorCoded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchDocumentLoader = void 0;\nrequire(\"cross-fetch/polyfill\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Loads documents via the fetch API.\n */\nclass FetchDocumentLoader {\n constructor(fetcher) {\n this.fetcher = fetcher;\n }\n async load(url) {\n const response = await (this.fetcher || fetch)(url, { headers: new Headers({ accept: 'application/ld+json' }) });\n if (response.ok && response.headers) {\n let mediaType = response.headers.get('Content-Type');\n if (mediaType) {\n const colonPos = mediaType.indexOf(';');\n if (colonPos > 0) {\n mediaType = mediaType.substr(0, colonPos);\n }\n }\n if (mediaType === 'application/ld+json') {\n // Return JSON-LD if proper content type was returned\n return (await response.json());\n }\n else {\n // Check for alternate link for a non-JSON-LD response\n if (response.headers.has('Link')) {\n let alternateUrl;\n response.headers.forEach((value, key) => {\n if (key === 'link') {\n const linkHeader = (0, http_link_header_1.parse)(value);\n for (const link of linkHeader.get('type', 'application/ld+json')) {\n if (link.rel === 'alternate') {\n if (alternateUrl) {\n throw new Error('Multiple JSON-LD alternate links were found on ' + url);\n }\n alternateUrl = (0, relative_to_absolute_iri_1.resolve)(link.uri, url);\n }\n }\n }\n });\n if (alternateUrl) {\n return this.load(alternateUrl);\n }\n }\n throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, ErrorCoded_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n }\n else {\n throw new Error(response.statusText || `Status code: ${response.status}`);\n }\n }\n}\nexports.FetchDocumentLoader = FetchDocumentLoader;\n//# sourceMappingURL=FetchDocumentLoader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDocumentLoader.js.map","\"use strict\";\n// tslint:disable:max-line-length\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=JsonLdContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultExpandOptions = exports.JsonLdContextNormalized = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst Util_1 = require(\"./Util\");\n/**\n * A class exposing operations over a normalized JSON-LD context.\n */\nclass JsonLdContextNormalized {\n constructor(contextRaw) {\n this.contextRaw = contextRaw;\n }\n /**\n * @return The raw inner context.\n */\n getContextRaw() {\n return this.contextRaw;\n }\n /**\n * Expand the term or prefix of the given term if it has one,\n * otherwise return the term as-is.\n *\n * This will try to expand the IRI as much as possible.\n *\n * Iff in vocab-mode, then other references to other terms in the context can be used,\n * such as to `myTerm`:\n * ```\n * {\n * \"myTerm\": \"http://example.org/myLongTerm\"\n * }\n * ```\n *\n * @param {string} term A term that is an URL or a prefixed URL.\n * @param {boolean} expandVocab If the term is a predicate or type and should be expanded based on @vocab,\n * otherwise it is considered a regular term that is expanded based on @base.\n * @param {IExpandOptions} options Options that define the way how expansion must be done.\n * @return {string} The expanded term, the term as-is, or null if it was explicitly disabled in the context.\n * @throws If the term is aliased to an invalid value (not a string, IRI or keyword).\n */\n expandTerm(term, expandVocab, options = exports.defaultExpandOptions) {\n const contextValue = this.contextRaw[term];\n // Immediately return if the term was disabled in the context\n if (contextValue === null || (contextValue && contextValue['@id'] === null)) {\n return null;\n }\n // Check the @id\n let validIriMapping = true;\n if (contextValue && expandVocab) {\n const value = Util_1.Util.getContextValueId(contextValue);\n if (value && value !== term) {\n if (typeof value !== 'string' || (!Util_1.Util.isValidIri(value) && !Util_1.Util.isValidKeyword(value))) {\n // Don't mark this mapping as invalid if we have an unknown keyword, but of the correct form.\n if (!Util_1.Util.isPotentialKeyword(value)) {\n validIriMapping = false;\n }\n }\n else {\n return value;\n }\n }\n }\n // Check if the term is prefixed\n const prefix = Util_1.Util.getPrefix(term, this.contextRaw);\n const vocab = this.contextRaw['@vocab'];\n const vocabRelative = (!!vocab || vocab === '') && vocab.indexOf(':') < 0;\n const base = this.contextRaw['@base'];\n const potentialKeyword = Util_1.Util.isPotentialKeyword(term);\n if (prefix) {\n const contextPrefixValue = this.contextRaw[prefix];\n const value = Util_1.Util.getContextValueId(contextPrefixValue);\n if (value) {\n if (typeof contextPrefixValue === 'string' || !options.allowPrefixForcing) {\n // If we have a simple term definition,\n // check the last character of the prefix to determine whether or not it is a prefix.\n // Validate that prefix ends with gen-delim character, unless @prefix is true\n if (!Util_1.Util.isSimpleTermDefinitionPrefix(value, options)) {\n // Treat the term as an absolute IRI\n return term;\n }\n }\n else {\n // If we have an expanded term definition, default to @prefix: false\n if (value[0] !== '_' && !potentialKeyword && !contextPrefixValue['@prefix'] && !(term in this.contextRaw)) {\n // Treat the term as an absolute IRI\n return term;\n }\n }\n return value + term.substr(prefix.length + 1);\n }\n }\n else if (expandVocab && ((vocab || vocab === '') || (options.allowVocabRelativeToBase && (base && vocabRelative)))\n && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n if (vocabRelative) {\n if (options.allowVocabRelativeToBase) {\n return ((vocab || base) ? (0, relative_to_absolute_iri_1.resolve)(vocab, base) : '') + term;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Relative vocab expansion for term '${term}' with vocab '${vocab}' is not allowed.`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n }\n }\n else {\n return vocab + term;\n }\n }\n else if (!expandVocab && base && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n return (0, relative_to_absolute_iri_1.resolve)(term, base);\n }\n // Return the term as-is, unless we discovered an invalid IRI mapping for this term in the context earlier.\n if (validIriMapping) {\n return term;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Invalid IRI mapping found for context entry '${term}': '${JSON.stringify(contextValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n /**\n * Compact the given term using @base, @vocab, an aliased term, or a prefixed term.\n *\n * This will try to compact the IRI as much as possible.\n *\n * @param {string} iri An IRI to compact.\n * @param {boolean} vocab If the term is a predicate or type and should be compacted based on @vocab,\n * otherwise it is considered a regular term that is compacted based on @base.\n * @return {string} The compacted term or the IRI as-is.\n */\n compactIri(iri, vocab) {\n // Try @vocab compacting\n if (vocab && this.contextRaw['@vocab'] && iri.startsWith(this.contextRaw['@vocab'])) {\n return iri.substr(this.contextRaw['@vocab'].length);\n }\n // Try @base compacting\n if (!vocab && this.contextRaw['@base'] && iri.startsWith(this.contextRaw['@base'])) {\n return iri.substr(this.contextRaw['@base'].length);\n }\n // Loop over all terms in the context\n // This will try to prefix as short as possible.\n // Once a fully compacted alias is found, return immediately, as we can not go any shorter.\n const shortestPrefixing = { prefix: '', suffix: iri };\n for (const key in this.contextRaw) {\n const value = this.contextRaw[key];\n if (value && !Util_1.Util.isPotentialKeyword(key)) {\n const contextIri = Util_1.Util.getContextValueId(value);\n if (iri.startsWith(contextIri)) {\n const suffix = iri.substr(contextIri.length);\n if (!suffix) {\n if (vocab) {\n // Immediately return on compacted alias\n return key;\n }\n }\n else if (suffix.length < shortestPrefixing.suffix.length) {\n // Overwrite the shortest prefix\n shortestPrefixing.prefix = key;\n shortestPrefixing.suffix = suffix;\n }\n }\n }\n }\n // Return the shortest prefix\n if (shortestPrefixing.prefix) {\n return shortestPrefixing.prefix + ':' + shortestPrefixing.suffix;\n }\n return iri;\n }\n}\nexports.JsonLdContextNormalized = JsonLdContextNormalized;\nexports.defaultExpandOptions = {\n allowPrefixForcing: true,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: true,\n};\n//# sourceMappingURL=JsonLdContextNormalized.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nclass Util {\n /**\n * Check if the given term is a valid compact IRI.\n * Otherwise, it may be an IRI.\n * @param {string} term A term.\n * @return {boolean} If it is a compact IRI.\n */\n static isCompactIri(term) {\n return term.indexOf(':') > 0 && !(term && term[0] === '#');\n }\n /**\n * Get the prefix from the given term.\n * @see https://json-ld.org/spec/latest/json-ld/#compact-iris\n * @param {string} term A term that is an URL or a prefixed URL.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @return {string} The prefix or null.\n */\n static getPrefix(term, context) {\n // Do not consider relative IRIs starting with a hash as compact IRIs\n if (term && term[0] === '#') {\n return null;\n }\n const separatorPos = term.indexOf(':');\n if (separatorPos >= 0) {\n // Suffix can not begin with two slashes\n if (term.length > separatorPos + 1\n && term.charAt(separatorPos + 1) === '/'\n && term.charAt(separatorPos + 2) === '/') {\n return null;\n }\n const prefix = term.substr(0, separatorPos);\n // Prefix can not be an underscore (this is a blank node)\n if (prefix === '_') {\n return null;\n }\n // Prefix must match a term in the active context\n if (context[prefix]) {\n return prefix;\n }\n }\n return null;\n }\n /**\n * From a given context entry value, get the string value, or the @id field.\n * @param contextValue A value for a term in a context.\n * @return {string} The id value, or null.\n */\n static getContextValueId(contextValue) {\n if (contextValue === null || typeof contextValue === 'string') {\n return contextValue;\n }\n const id = contextValue['@id'];\n return id ? id : null;\n }\n /**\n * Check if the given simple term definition (string-based value of a context term)\n * should be considered a prefix.\n * @param value A simple term definition value.\n * @param options Options that define the way how expansion must be done.\n */\n static isSimpleTermDefinitionPrefix(value, options) {\n return !Util.isPotentialKeyword(value)\n && (options.allowPrefixNonGenDelims || (typeof value === 'string' && (value[0] === '_' || Util.isPrefixIriEndingWithGenDelim(value))));\n }\n /**\n * Check if the given keyword is of the keyword format \"@\"1*ALPHA.\n * @param {string} keyword A potential keyword.\n * @return {boolean} If the given keyword is of the keyword format.\n */\n static isPotentialKeyword(keyword) {\n return typeof keyword === 'string' && Util.KEYWORD_REGEX.test(keyword);\n }\n /**\n * Check if the given prefix ends with a gen-delim character.\n * @param {string} prefixIri A prefix IRI.\n * @return {boolean} If the given prefix IRI is valid.\n */\n static isPrefixIriEndingWithGenDelim(prefixIri) {\n return Util.ENDS_WITH_GEN_DELIM.test(prefixIri);\n }\n /**\n * Check if the given context value can be a prefix value.\n * @param value A context value.\n * @return {boolean} If it can be a prefix value.\n */\n static isPrefixValue(value) {\n return value && (typeof value === 'string' || (value && typeof value === 'object'));\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return Boolean(iri && Util.IRI_REGEX.test(iri));\n }\n /**\n * Check if the given IRI is valid, this includes the possibility of being a relative IRI.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIriWeak(iri) {\n return !!iri && iri[0] !== ':' && Util.IRI_REGEX_WEAK.test(iri);\n }\n /**\n * Check if the given keyword is a defined according to the JSON-LD specification.\n * @param {string} keyword A potential keyword.\n * @return {boolean} If the given keyword is valid.\n */\n static isValidKeyword(keyword) {\n return Util.VALID_KEYWORDS[keyword];\n }\n /**\n * Check if the given term is protected in the context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {string} key A context term.\n * @return {boolean} If the given term has an @protected flag.\n */\n static isTermProtected(context, key) {\n const value = context[key];\n return !(typeof value === 'string') && value && value['@protected'];\n }\n /**\n * Check if the given context has at least one protected term.\n * @param context A context.\n * @return If the context has a protected term.\n */\n static hasProtectedTerms(context) {\n for (const key of Object.keys(context)) {\n if (Util.isTermProtected(context, key)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check if the given key is an internal reserved keyword.\n * @param key A context key.\n */\n static isReservedInternalKeyword(key) {\n return key.startsWith('@__');\n }\n /**\n * Check if two objects are deepEqual to on another.\n * @param object1 The first object to test.\n * @param object2 The second object to test.\n */\n static deepEqual(object1, object2) {\n const objKeys1 = Object.keys(object1);\n const objKeys2 = Object.keys(object2);\n if (objKeys1.length !== objKeys2.length)\n return false;\n return objKeys1.every((key) => {\n const value1 = object1[key];\n const value2 = object2[key];\n return (value1 === value2) || (value1 !== null &&\n value2 !== null &&\n typeof value1 === \"object\" &&\n typeof value2 === \"object\" &&\n this.deepEqual(value1, value2));\n });\n }\n ;\n}\n// Regex for valid IRIs\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`#]*(#[^#]*)?$/;\n// Weaker regex for valid IRIs, this includes relative IRIs\nUtil.IRI_REGEX_WEAK = /(?::[^:])|\\//;\n// Regex for keyword form\nUtil.KEYWORD_REGEX = /^@[a-z]+$/i;\n// Regex to see if an IRI ends with a gen-delim character (see RFC 3986)\nUtil.ENDS_WITH_GEN_DELIM = /[:/?#\\[\\]@]$/;\n// Regex for language tags\nUtil.REGEX_LANGUAGE_TAG = /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/;\n// Regex for base directions\nUtil.REGEX_DIRECTION_TAG = /^(ltr)|(rtl)$/;\n// All known valid JSON-LD keywords\n// @see https://www.w3.org/TR/json-ld11/#keywords\nUtil.VALID_KEYWORDS = {\n '@annotation': true,\n '@base': true,\n '@container': true,\n '@context': true,\n '@direction': true,\n '@graph': true,\n '@id': true,\n '@import': true,\n '@included': true,\n '@index': true,\n '@json': true,\n '@language': true,\n '@list': true,\n '@nest': true,\n '@none': true,\n '@prefix': true,\n '@propagate': true,\n '@protected': true,\n '@reverse': true,\n '@set': true,\n '@type': true,\n '@value': true,\n '@version': true,\n '@vocab': true,\n};\n// Keys in the contexts that will not be expanded based on the base IRI\nUtil.EXPAND_KEYS_BLACKLIST = [\n '@base',\n '@vocab',\n '@language',\n '@version',\n '@direction',\n];\n// Keys in the contexts that may not be aliased from\nUtil.ALIAS_DOMAIN_BLACKLIST = [\n '@container',\n '@graph',\n '@id',\n '@index',\n '@list',\n '@nest',\n '@none',\n '@prefix',\n '@reverse',\n '@set',\n '@type',\n '@value',\n '@version',\n];\n// Keys in the contexts that may not be aliased to\nUtil.ALIAS_RANGE_BLACKLIST = [\n '@context',\n '@preserve',\n];\n// All valid @container values\nUtil.CONTAINERS = [\n '@list',\n '@set',\n '@index',\n '@language',\n '@graph',\n '@id',\n '@type',\n];\n// All valid @container values under processing mode 1.0\nUtil.CONTAINERS_1_0 = [\n '@list',\n '@set',\n '@index',\n];\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(typeof self !== 'undefined' ? self : this);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/JsonLdParser\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextTree = void 0;\n/**\n * A tree structure that holds all contexts,\n * based on their position in the JSON object.\n *\n * Positions are identified by a path of keys.\n */\nclass ContextTree {\n constructor() {\n this.subTrees = {};\n }\n getContext(keys) {\n if (keys.length > 0) {\n const [head, ...tail] = keys;\n const subTree = this.subTrees[head];\n if (subTree) {\n const subContext = subTree.getContext(tail);\n if (subContext) {\n return subContext.then(({ context, depth }) => ({ context, depth: depth + 1 }));\n }\n }\n }\n return this.context ? this.context.then((context) => ({ context, depth: 0 })) : null;\n }\n setContext(keys, context) {\n if (keys.length === 0) {\n this.context = context;\n }\n else {\n const [head, ...tail] = keys;\n let subTree = this.subTrees[head];\n if (!subTree) {\n subTree = this.subTrees[head] = new ContextTree();\n }\n subTree.setContext(tail, context);\n }\n }\n removeContext(path) {\n this.setContext(path, null);\n }\n}\nexports.ContextTree = ContextTree;\n//# sourceMappingURL=ContextTree.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonLdParser = void 0;\n// tslint:disable-next-line:no-var-requires\nconst Parser = require('@bergos/jsonparse');\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst EntryHandlerArrayValue_1 = require(\"./entryhandler/EntryHandlerArrayValue\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\nconst EntryHandlerInvalidFallback_1 = require(\"./entryhandler/EntryHandlerInvalidFallback\");\nconst EntryHandlerPredicate_1 = require(\"./entryhandler/EntryHandlerPredicate\");\nconst EntryHandlerKeywordContext_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordContext\");\nconst EntryHandlerKeywordGraph_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordGraph\");\nconst EntryHandlerKeywordId_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordId\");\nconst EntryHandlerKeywordIncluded_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordIncluded\");\nconst EntryHandlerKeywordNest_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordNest\");\nconst EntryHandlerKeywordType_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordType\");\nconst EntryHandlerKeywordUnknownFallback_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordUnknownFallback\");\nconst EntryHandlerKeywordValue_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordValue\");\nconst ParsingContext_1 = require(\"./ParsingContext\");\nconst Util_1 = require(\"./Util\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst EntryHandlerKeywordAnnotation_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordAnnotation\");\n/**\n * A stream transformer that parses JSON-LD (text) streams to an {@link RDF.Stream}.\n */\nclass JsonLdParser extends readable_stream_1.Transform {\n constructor(options) {\n super({ readableObjectMode: true });\n options = options || {};\n this.options = options;\n this.parsingContext = new ParsingContext_1.ParsingContext(Object.assign({ parser: this }, options));\n this.util = new Util_1.Util({ dataFactory: options.dataFactory, parsingContext: this.parsingContext });\n this.jsonParser = new Parser();\n this.contextJobs = [];\n this.typeJobs = [];\n this.contextAwaitingJobs = [];\n this.lastDepth = 0;\n this.lastKeys = [];\n this.lastOnValueJob = Promise.resolve();\n this.attachJsonParserListeners();\n this.on('end', () => {\n if (typeof this.jsonParser.mode !== 'undefined') {\n this.emit('error', new Error('Unclosed document'));\n }\n });\n }\n /**\n * Construct a JsonLdParser from the given HTTP response.\n *\n * This will throw an error if no valid JSON response is received\n * (application/ld+json, application/json, or something+json).\n *\n * For raw JSON responses, exactly one link header pointing to a JSON-LD context is required.\n *\n * This method is not responsible for handling redirects.\n *\n * @param baseIRI The URI of the received response.\n * @param mediaType The received content type.\n * @param headers Optional HTTP headers.\n * @param options Optional parser options.\n */\n static fromHttpResponse(baseIRI, mediaType, headers, options) {\n let context;\n let wellKnownMediaTypes = ['application/activity+json'];\n if (options && options.wellKnownMediaTypes) {\n wellKnownMediaTypes = options.wellKnownMediaTypes;\n }\n // Special cases when receiving something else than the JSON-LD media type or the wellKnownMediaTypes\n if (mediaType !== 'application/ld+json' && !wellKnownMediaTypes.includes(mediaType)) {\n // Only accept JSON or JSON extension types\n if (mediaType !== 'application/json' && !mediaType.endsWith('+json')) {\n throw new jsonld_context_parser_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n // We need exactly one JSON-LD context in the link header\n if (headers && headers.has('Link')) {\n headers.forEach((value, key) => {\n if (key === 'link') {\n const linkHeader = (0, http_link_header_1.parse)(value);\n for (const link of linkHeader.get('rel', 'http://www.w3.org/ns/json-ld#context')) {\n if (context) {\n throw new jsonld_context_parser_1.ErrorCoded('Multiple JSON-LD context link headers were found on ' + baseIRI, jsonld_context_parser_1.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);\n }\n context = link.uri;\n }\n }\n });\n }\n if (!context && !(options === null || options === void 0 ? void 0 : options.ignoreMissingContextLinkHeader)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Missing context link header for media type ${mediaType} on ${baseIRI}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n }\n // Check if the streaming profile is present\n let streamingProfile;\n if (headers && headers.has('Content-Type')) {\n const contentType = headers.get('Content-Type');\n const match = /; *profile=([^\"]*)/.exec(contentType);\n if (match && match[1] === 'http://www.w3.org/ns/json-ld#streaming') {\n streamingProfile = true;\n }\n }\n return new JsonLdParser(Object.assign({ baseIRI,\n context,\n streamingProfile }, options ? options : {}));\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n if ('pipe' in stream) {\n stream.on('error', (error) => parsed.emit('error', error));\n const parsed = stream.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n else {\n const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n }\n _transform(chunk, encoding, callback) {\n this.jsonParser.write(chunk);\n this.lastOnValueJob\n .then(() => callback(), (error) => callback(error));\n }\n /**\n * Start a new job for parsing the given value.\n *\n * This will let the first valid {@link IEntryHandler} handle the entry.\n *\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n let flushStacks = true;\n // When we go up the stack, emit all unidentified values\n // We need to do this before the new job, because the new job may require determined values from the flushed jobs.\n if (lastDepthCheck && depth < this.lastDepth) {\n // Check if we had any RDF lists that need to be terminated with an rdf:nil\n const listPointer = this.parsingContext.listPointerStack[this.lastDepth];\n if (listPointer) {\n // Terminate the list if the had at least one value\n if (listPointer.value) {\n this.push(this.util.dataFactory.quad(listPointer.value, this.util.rdfRest, this.util.rdfNil, this.util.getDefaultGraph()));\n }\n // Add the list id to the id stack, so it can be used higher up in the stack\n listPointer.listId.listHead = true;\n this.parsingContext.idStack[listPointer.listRootDepth + 1] = [listPointer.listId];\n this.parsingContext.listPointerStack.splice(this.lastDepth, 1);\n }\n // Flush the buffer for lastDepth\n // If the parent key is a special type of container, postpone flushing until that parent is handled.\n if (await EntryHandlerContainer_1.EntryHandlerContainer.isBufferableContainerHandler(this.parsingContext, this.lastKeys, this.lastDepth)) {\n this.parsingContext.pendingContainerFlushBuffers\n .push({ depth: this.lastDepth, keys: this.lastKeys.slice(0, this.lastKeys.length) });\n flushStacks = false;\n }\n else {\n await this.flushBuffer(this.lastDepth, this.lastKeys);\n }\n }\n const key = await this.util.unaliasKeyword(keys[depth], keys, depth);\n const parentKey = await this.util.unaliasKeywordParent(keys, depth);\n this.parsingContext.emittedStack[depth] = true;\n let handleKey = true;\n // Keywords inside @reverse is not allowed apart from @context\n if (jsonld_context_parser_1.Util.isValidKeyword(key) && parentKey === '@reverse' && key !== '@context') {\n this.emit('error', new jsonld_context_parser_1.ErrorCoded(`Found the @id '${value}' inside an @reverse property`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_MAP));\n }\n // Skip further processing if one of the parent nodes are invalid.\n // We use the validationStack to reuse validation results that were produced before with common key stacks.\n let inProperty = false;\n if (this.parsingContext.validationStack.length > 1) {\n inProperty = this.parsingContext.validationStack[this.parsingContext.validationStack.length - 1].property;\n }\n for (let i = Math.max(1, this.parsingContext.validationStack.length - 1); i < keys.length - 1; i++) {\n const validationResult = this.parsingContext.validationStack[i]\n || (this.parsingContext.validationStack[i] = await this.validateKey(keys.slice(0, i + 1), i, inProperty));\n if (!validationResult.valid) {\n this.parsingContext.emittedStack[depth] = false;\n handleKey = false;\n break;\n }\n else if (!inProperty && validationResult.property) {\n inProperty = true;\n }\n }\n // Skip further processing if this node is part of a literal\n if (await this.util.isLiteral(keys, depth)) {\n handleKey = false;\n }\n // Get handler\n if (handleKey) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n const testResult = await entryHandler.test(this.parsingContext, this.util, key, keys, depth);\n if (testResult) {\n // Pass processing over to the handler\n await entryHandler.handle(this.parsingContext, this.util, key, keys, value, depth, testResult);\n // Flag that this depth is processed\n if (entryHandler.isStackProcessor()) {\n this.parsingContext.processingStack[depth] = true;\n }\n break;\n }\n }\n }\n // Validate value indexes on the root.\n if (depth === 0 && Array.isArray(value)) {\n await this.util.validateValueIndexes(value);\n }\n // When we go up the stack, flush the old stack\n if (flushStacks && depth < this.lastDepth) {\n // Reset our stacks\n this.flushStacks(this.lastDepth);\n }\n this.lastDepth = depth;\n this.lastKeys = keys;\n // Clear the keyword cache at this depth, and everything underneath.\n this.parsingContext.unaliasedKeywordCacheStack.splice(depth - 1);\n }\n /**\n * Flush the processing stacks at the given depth.\n * @param {number} depth A depth.\n */\n flushStacks(depth) {\n this.parsingContext.processingStack.splice(depth, 1);\n this.parsingContext.processingType.splice(depth, 1);\n this.parsingContext.emittedStack.splice(depth, 1);\n this.parsingContext.idStack.splice(depth, 1);\n this.parsingContext.graphStack.splice(depth + 1, 1);\n this.parsingContext.graphContainerTermStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n this.parsingContext.validationStack.splice(depth - 1, 2);\n this.parsingContext.literalStack.splice(depth, this.parsingContext.literalStack.length - depth);\n this.parsingContext.annotationsBuffer.splice(depth, 1);\n // TODO: just like the literal stack, splice all other stack until the end as well?\n }\n /**\n * Flush buffers for the given depth.\n *\n * This should be called after the last entry at a given depth was processed.\n *\n * @param {number} depth A depth.\n * @param {any[]} keys A stack of keys.\n * @return {Promise} A promise resolving if flushing is done.\n */\n async flushBuffer(depth, keys) {\n let subjects = this.parsingContext.idStack[depth];\n const subjectsWasDefined = !!subjects;\n if (!subjectsWasDefined) {\n subjects = this.parsingContext.idStack[depth] = [this.util.dataFactory.blankNode()];\n }\n // Flush values at this level\n const valueBuffer = this.parsingContext.unidentifiedValuesBuffer[depth];\n if (valueBuffer) {\n for (const subject of subjects) {\n const depthOffsetGraph = await this.util.getDepthOffsetGraph(depth, keys);\n const graphs = (this.parsingContext.graphStack[depth] || depthOffsetGraph >= 0)\n ? this.parsingContext.idStack[depth - depthOffsetGraph - 1]\n : [await this.util.getGraphContainerValue(keys, depth)];\n if (graphs) {\n for (const graph of graphs) {\n // Flush values to stream if the graph @id is known\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of valueBuffer) {\n this.util.emitQuadChecked(depth, subject, bufferedValue.predicate, bufferedValue.object, graph, bufferedValue.reverse, bufferedValue.isEmbedded);\n }\n }\n }\n else {\n // Place the values in the graphs buffer if the graph @id is not yet known\n const subGraphBuffer = this.parsingContext.getUnidentifiedGraphBufferSafe(depth - await this.util.getDepthOffsetGraph(depth, keys) - 1);\n for (const bufferedValue of valueBuffer) {\n if (bufferedValue.reverse) {\n subGraphBuffer.push({\n object: subject,\n predicate: bufferedValue.predicate,\n subject: bufferedValue.object,\n isEmbedded: bufferedValue.isEmbedded,\n });\n }\n else {\n subGraphBuffer.push({\n object: bufferedValue.object,\n predicate: bufferedValue.predicate,\n subject,\n isEmbedded: bufferedValue.isEmbedded,\n });\n }\n }\n }\n }\n this.parsingContext.unidentifiedValuesBuffer.splice(depth, 1);\n this.parsingContext.literalStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n }\n // Flush graphs at this level\n const graphBuffer = this.parsingContext.unidentifiedGraphsBuffer[depth];\n if (graphBuffer) {\n for (const subject of subjects) {\n // A @graph statement at the root without @id relates to the default graph,\n // unless there are top-level properties,\n // others relate to blank nodes.\n const graph = depth === 1 && subject.termType === 'BlankNode'\n && !this.parsingContext.topLevelProperties ? this.util.getDefaultGraph() : subject;\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of graphBuffer) {\n this.parsingContext.emitQuad(depth, this.util.dataFactory.quad(bufferedValue.subject, bufferedValue.predicate, bufferedValue.object, graph));\n }\n }\n this.parsingContext.unidentifiedGraphsBuffer.splice(depth, 1);\n }\n // Push unhandled annotations up the stack as nested annotations\n const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n if (annotationsBuffer) {\n // Throw an error if we reach the top, and still have annotations\n if (annotationsBuffer.length > 0 && depth === 1) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Annotations can not be made on top-level nodes`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Pass the annotations buffer up one level in the stack\n const annotationsBufferParent = this.parsingContext.getAnnotationsBufferSafe(depth - 1);\n for (const annotation of annotationsBuffer) {\n annotationsBufferParent.push(annotation);\n }\n delete this.parsingContext.annotationsBuffer[depth];\n }\n }\n /**\n * Check if at least one {@link IEntryHandler} validates the entry to true.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth A depth.\n * @param {boolean} inProperty If the current depth is part of a valid property node.\n * @return {Promise<{ valid: boolean, property: boolean }>} A promise resolving to true or false.\n */\n async validateKey(keys, depth, inProperty) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n if (await entryHandler.validate(this.parsingContext, this.util, keys, depth, inProperty)) {\n return { valid: true, property: inProperty || entryHandler.isPropertyHandler() };\n }\n }\n return { valid: false, property: false };\n }\n /**\n * Attach all required listeners to the JSON parser.\n *\n * This should only be called once.\n */\n attachJsonParserListeners() {\n // Listen to json parser events\n this.jsonParser.onValue = (value) => {\n const depth = this.jsonParser.stack.length;\n const keys = (new Array(depth + 1).fill(0)).map((v, i) => {\n return i === depth ? this.jsonParser.key : this.jsonParser.stack[i].key;\n });\n if (!this.isParsingContextInner(depth)) { // Don't parse inner nodes inside @context\n const valueJobCb = () => this.newOnValueJob(keys, value, depth, true);\n if (!this.parsingContext.streamingProfile\n && !this.parsingContext.contextTree.getContext(keys.slice(0, -1))) {\n // If an out-of-order context is allowed,\n // we have to buffer everything.\n // We store jobs for @context's and @type's separately,\n // because at the end, we have to process them first.\n // We also handle @type because these *could* introduce a type-scoped context.\n if (keys[depth] === '@context') {\n let jobs = this.contextJobs[depth];\n if (!jobs) {\n jobs = this.contextJobs[depth] = [];\n }\n jobs.push(valueJobCb);\n }\n else {\n this.contextAwaitingJobs.push({ job: valueJobCb, keys, depth });\n }\n }\n else {\n // Make sure that our value jobs are chained synchronously\n this.lastOnValueJob = this.lastOnValueJob.then(valueJobCb);\n }\n // Execute all buffered jobs on deeper levels\n if (!this.parsingContext.streamingProfile && depth === 0) {\n this.lastOnValueJob = this.lastOnValueJob\n .then(() => this.executeBufferedJobs());\n }\n }\n };\n this.jsonParser.onError = (error) => {\n this.emit('error', error);\n };\n }\n /**\n * Check if the parser is currently parsing an element that is part of an @context entry.\n * @param {number} depth A depth.\n * @return {boolean} A boolean.\n */\n isParsingContextInner(depth) {\n for (let i = depth; i > 0; i--) {\n if (this.jsonParser.stack[i - 1].key === '@context') {\n return true;\n }\n }\n return false;\n }\n /**\n * Execute all buffered jobs.\n * @return {Promise} A promise resolving if all jobs are finished.\n */\n async executeBufferedJobs() {\n // Handle context jobs\n for (const jobs of this.contextJobs) {\n if (jobs) {\n for (const job of jobs) {\n await job();\n }\n }\n }\n // Clear the keyword cache.\n this.parsingContext.unaliasedKeywordCacheStack.splice(0);\n const contextAwaitingJobs = [];\n for (const job of this.contextAwaitingJobs) {\n if ((await this.util.unaliasKeyword(job.keys[job.depth], job.keys, job.depth, true)) === '@type'\n || typeof job.keys[job.depth] === 'number' && (await this.util.unaliasKeyword(job.keys[job.depth - 1], job.keys, job.depth - 1, true)) === '@type') { // Also capture @type with array values\n // Remove @type from keys, because we want it to apply to parent later on\n this.typeJobs.push({ job: job.job, keys: job.keys.slice(0, job.keys.length - 1) });\n }\n else {\n contextAwaitingJobs.push(job);\n }\n }\n // Handle non-context jobs\n for (const job of contextAwaitingJobs) {\n // Check if we have a type (with possible type-scoped context) that should be handled before.\n // We check all possible parent nodes for the current job, from root to leaves.\n if (this.typeJobs.length > 0) {\n // First collect all applicable type jobs\n const applicableTypeJobs = [];\n const applicableTypeJobIds = [];\n for (let i = 0; i < this.typeJobs.length; i++) {\n const typeJob = this.typeJobs[i];\n if (Util_1.Util.isPrefixArray(typeJob.keys, job.keys)) {\n applicableTypeJobs.push(typeJob);\n applicableTypeJobIds.push(i);\n }\n }\n // Next, sort the jobs from short to long key length (to ensure types higher up in the tree to be handled first)\n const sortedTypeJobs = applicableTypeJobs.sort((job1, job2) => job1.keys.length - job2.keys.length);\n // Finally, execute the jobs in order\n for (const typeJob of sortedTypeJobs) {\n await typeJob.job();\n }\n // Remove the executed type jobs\n // Sort first, so we can efficiently splice\n const sortedApplicableTypeJobIds = applicableTypeJobIds.sort().reverse();\n for (const jobId of sortedApplicableTypeJobIds) {\n this.typeJobs.splice(jobId, 1);\n }\n }\n await job.job();\n }\n }\n}\nJsonLdParser.DEFAULT_PROCESSING_MODE = '1.1';\nJsonLdParser.ENTRY_HANDLERS = [\n new EntryHandlerArrayValue_1.EntryHandlerArrayValue(),\n new EntryHandlerKeywordContext_1.EntryHandlerKeywordContext(),\n new EntryHandlerKeywordId_1.EntryHandlerKeywordId(),\n new EntryHandlerKeywordIncluded_1.EntryHandlerKeywordIncluded(),\n new EntryHandlerKeywordGraph_1.EntryHandlerKeywordGraph(),\n new EntryHandlerKeywordNest_1.EntryHandlerKeywordNest(),\n new EntryHandlerKeywordType_1.EntryHandlerKeywordType(),\n new EntryHandlerKeywordValue_1.EntryHandlerKeywordValue(),\n new EntryHandlerKeywordAnnotation_1.EntryHandlerKeywordAnnotation(),\n new EntryHandlerContainer_1.EntryHandlerContainer(),\n new EntryHandlerKeywordUnknownFallback_1.EntryHandlerKeywordUnknownFallback(),\n new EntryHandlerPredicate_1.EntryHandlerPredicate(),\n new EntryHandlerInvalidFallback_1.EntryHandlerInvalidFallback(),\n];\nexports.JsonLdParser = JsonLdParser;\n//# sourceMappingURL=JsonLdParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsingContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst ErrorCoded_1 = require(\"jsonld-context-parser/lib/ErrorCoded\");\nconst ContextTree_1 = require(\"./ContextTree\");\nconst JsonLdParser_1 = require(\"./JsonLdParser\");\n/**\n * Data holder for parsing information.\n */\nclass ParsingContext {\n constructor(options) {\n // Initialize settings\n this.contextParser = new jsonld_context_parser_1.ContextParser({ documentLoader: options.documentLoader, skipValidation: options.skipContextValidation });\n this.streamingProfile = !!options.streamingProfile;\n this.baseIRI = options.baseIRI;\n this.produceGeneralizedRdf = !!options.produceGeneralizedRdf;\n this.allowSubjectList = !!options.allowSubjectList;\n this.processingMode = options.processingMode || JsonLdParser_1.JsonLdParser.DEFAULT_PROCESSING_MODE;\n this.strictValues = !!options.strictValues;\n this.validateValueIndexes = !!options.validateValueIndexes;\n this.defaultGraph = options.defaultGraph;\n this.rdfDirection = options.rdfDirection;\n this.normalizeLanguageTags = options.normalizeLanguageTags;\n this.streamingProfileAllowOutOfOrderPlainType = options.streamingProfileAllowOutOfOrderPlainType;\n this.rdfstar = options.rdfstar !== false;\n this.rdfstarReverseInEmbedded = options.rdfstarReverseInEmbedded;\n this.topLevelProperties = false;\n this.activeProcessingMode = parseFloat(this.processingMode);\n // Initialize stacks\n this.processingStack = [];\n this.processingType = [];\n this.emittedStack = [];\n this.idStack = [];\n this.graphStack = [];\n this.graphContainerTermStack = [];\n this.listPointerStack = [];\n this.contextTree = new ContextTree_1.ContextTree();\n this.literalStack = [];\n this.validationStack = [];\n this.unaliasedKeywordCacheStack = [];\n this.jsonLiteralStack = [];\n this.unidentifiedValuesBuffer = [];\n this.unidentifiedGraphsBuffer = [];\n this.annotationsBuffer = [];\n this.pendingContainerFlushBuffers = [];\n this.parser = options.parser;\n if (options.context) {\n this.rootContext = this.parseContext(options.context);\n this.rootContext.then((context) => this.validateContext(context));\n }\n else {\n this.rootContext = Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(this.baseIRI ? { '@base': this.baseIRI, '@__baseDocument': true } : {}));\n }\n }\n /**\n * Parse the given context with the configured options.\n * @param {JsonLdContext} context A context to parse.\n * @param {JsonLdContextNormalized} parentContext An optional parent context.\n * @param {boolean} ignoreProtection If @protected term checks should be ignored.\n * @return {Promise} A promise resolving to the parsed context.\n */\n async parseContext(context, parentContext, ignoreProtection) {\n return this.contextParser.parse(context, {\n baseIRI: this.baseIRI,\n ignoreProtection,\n normalizeLanguageTags: this.normalizeLanguageTags,\n parentContext,\n processingMode: this.activeProcessingMode,\n });\n }\n /**\n * Check if the given context is valid.\n * If not, an error will be thrown.\n * @param {JsonLdContextNormalized} context A context.\n */\n validateContext(context) {\n const activeVersion = context.getContextRaw()['@version'];\n if (activeVersion) {\n if (this.activeProcessingMode && activeVersion > this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD version '${activeVersion}' under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.PROCESSING_MODE_CONFLICT);\n }\n else {\n if (this.activeProcessingMode && activeVersion < this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid JSON-LD version ${activeVersion} under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n }\n this.activeProcessingMode = activeVersion;\n }\n }\n }\n /**\n * Get the context at the given path.\n * @param {keys} keys The path of keys to get the context at.\n * @param {number} offset The path offset, defaults to 1.\n * @return {Promise} A promise resolving to a context.\n */\n async getContext(keys, offset = 1) {\n const keysOriginal = keys;\n // Ignore array keys at the end\n while (typeof keys[keys.length - 1] === 'number') {\n keys = keys.slice(0, keys.length - 1);\n }\n // Handle offset on keys\n if (offset) {\n keys = keys.slice(0, -offset);\n }\n // Determine the closest context\n const contextData = await this.getContextPropagationAware(keys);\n const context = contextData.context;\n // Process property-scoped contexts (high-to-low)\n let contextRaw = context.getContextRaw();\n for (let i = contextData.depth; i < keysOriginal.length - offset; i++) {\n const key = keysOriginal[i];\n const contextKeyEntry = contextRaw[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n const scopedContext = (await this.parseContext(contextKeyEntry, contextRaw, true)).getContextRaw();\n const propagate = !(key in scopedContext)\n || scopedContext[key]['@context']['@propagate']; // Propagation is true by default\n if (propagate !== false || i === keysOriginal.length - 1 - offset) {\n contextRaw = Object.assign({}, scopedContext);\n // Clean up final context\n delete contextRaw['@propagate'];\n contextRaw[key] = Object.assign({}, contextRaw[key]);\n if ('@id' in contextKeyEntry) {\n contextRaw[key]['@id'] = contextKeyEntry['@id'];\n }\n delete contextRaw[key]['@context'];\n if (propagate !== false) {\n this.contextTree.setContext(keysOriginal.slice(0, i + offset), Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw)));\n }\n }\n }\n }\n return new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw);\n }\n /**\n * Get the context at the given path.\n * Non-propagating contexts will be skipped,\n * unless the context at that exact depth is retrieved.\n *\n * This ONLY takes into account context propagation logic,\n * so this should usually not be called directly,\n * call {@link #getContext} instead.\n *\n * @param keys The path of keys to get the context at.\n * @return {Promise<{ context: JsonLdContextNormalized, depth: number }>} A context and its depth.\n */\n async getContextPropagationAware(keys) {\n const originalDepth = keys.length;\n let contextData = null;\n let hasApplicablePropertyScopedContext;\n do {\n hasApplicablePropertyScopedContext = false;\n if (contextData && '@__propagateFallback' in contextData.context.getContextRaw()) {\n // If a propagation fallback context has been set,\n // fallback to that context and retry for the same depth.\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized(contextData.context.getContextRaw()['@__propagateFallback']);\n }\n else {\n if (contextData) {\n // If we had a previous iteration, jump to the parent of context depth.\n // We must do this because once we get here, last context had propagation disabled,\n // so we check its first parent instead.\n keys = keys.slice(0, contextData.depth - 1);\n }\n contextData = await this.contextTree.getContext(keys) || { context: await this.rootContext, depth: 0 };\n }\n // Allow non-propagating contexts to propagate one level deeper\n // if it defines a property-scoped context that is applicable for the current key.\n // @see https://w3c.github.io/json-ld-api/tests/toRdf-manifest#tc012\n const lastKey = keys[keys.length - 1];\n if (lastKey in contextData.context.getContextRaw()) {\n const lastKeyValue = contextData.context.getContextRaw()[lastKey];\n if (lastKeyValue && typeof lastKeyValue === 'object' && '@context' in lastKeyValue) {\n hasApplicablePropertyScopedContext = true;\n }\n }\n } while (contextData.depth > 0 // Root context has a special case\n && contextData.context.getContextRaw()['@propagate'] === false // Stop loop if propagation is true\n && contextData.depth !== originalDepth // Stop loop if requesting exact depth of non-propagating\n && !hasApplicablePropertyScopedContext);\n // Special case for root context that does not allow propagation.\n // Fallback to empty context in that case.\n if (contextData.depth === 0\n && contextData.context.getContextRaw()['@propagate'] === false\n && contextData.depth !== originalDepth) {\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized({});\n }\n return contextData;\n }\n /**\n * Start a new job for parsing the given value.\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n await this.parser.newOnValueJob(keys, value, depth, lastDepthCheck);\n }\n /**\n * Flush the pending container flush buffers\n * @return {boolean} If any pending buffers were flushed.\n */\n async handlePendingContainerFlushBuffers() {\n if (this.pendingContainerFlushBuffers.length > 0) {\n for (const pendingFlushBuffer of this.pendingContainerFlushBuffers) {\n await this.parser.flushBuffer(pendingFlushBuffer.depth, pendingFlushBuffer.keys);\n this.parser.flushStacks(pendingFlushBuffer.depth);\n }\n this.pendingContainerFlushBuffers.splice(0, this.pendingContainerFlushBuffers.length);\n return true;\n }\n else {\n return false;\n }\n }\n /**\n * Emit the given quad into the output stream.\n * @param {number} depth The depth the quad was generated at.\n * @param {Quad} quad A quad to emit.\n */\n emitQuad(depth, quad) {\n if (depth === 1) {\n this.topLevelProperties = true;\n }\n this.parser.push(quad);\n }\n /**\n * Emit the given error into the output stream.\n * @param {Error} error An error to emit.\n */\n emitError(error) {\n this.parser.emit('error', error);\n }\n /**\n * Emit the given context into the output stream under the 'context' event.\n * @param {JsonLdContext} context A context to emit.\n */\n emitContext(context) {\n this.parser.emit('context', context);\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedValuesBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedValuesBuffer}.\n */\n getUnidentifiedValueBufferSafe(depth) {\n let buffer = this.unidentifiedValuesBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedValuesBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedGraphsBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedGraphsBuffer}.\n */\n getUnidentifiedGraphBufferSafe(depth) {\n let buffer = this.unidentifiedGraphsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedGraphsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.annotationsBuffer}.\n * @param {number} depth A depth.\n * @return {} An element of {@link ParsingContext.annotationsBuffer}.\n */\n getAnnotationsBufferSafe(depth) {\n let buffer = this.annotationsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.annotationsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * @return IExpandOptions The expand options for the active processing mode.\n */\n getExpandOptions() {\n return ParsingContext.EXPAND_OPTIONS[this.activeProcessingMode];\n }\n /**\n * Shift the stack at the given offset to the given depth.\n *\n * This will override anything in the stack at `depth`,\n * and this will remove anything at `depth + depthOffset`\n *\n * @param depth The target depth.\n * @param depthOffset The origin depth, relative to `depth`.\n */\n shiftStack(depth, depthOffset) {\n // Copy the id stack value up one level so that the next job can access the id.\n const deeperIdStack = this.idStack[depth + depthOffset];\n if (deeperIdStack) {\n this.idStack[depth] = deeperIdStack;\n this.emittedStack[depth] = true;\n delete this.idStack[depth + depthOffset];\n }\n // Shorten key stack\n if (this.pendingContainerFlushBuffers.length) {\n for (const buffer of this.pendingContainerFlushBuffers) {\n if (buffer.depth >= depth + depthOffset) {\n buffer.depth -= depthOffset;\n buffer.keys.splice(depth, depthOffset);\n }\n }\n }\n // Splice stacks\n if (this.unidentifiedValuesBuffer[depth + depthOffset]) {\n this.unidentifiedValuesBuffer[depth] = this.unidentifiedValuesBuffer[depth + depthOffset];\n delete this.unidentifiedValuesBuffer[depth + depthOffset];\n }\n if (this.annotationsBuffer[depth + depthOffset - 1]) {\n if (!this.annotationsBuffer[depth - 1]) {\n this.annotationsBuffer[depth - 1] = [];\n }\n this.annotationsBuffer[depth - 1] = [\n ...this.annotationsBuffer[depth - 1],\n ...this.annotationsBuffer[depth + depthOffset - 1],\n ];\n delete this.annotationsBuffer[depth + depthOffset - 1];\n }\n // TODO: also do the same for other stacks\n }\n}\nParsingContext.EXPAND_OPTIONS = {\n 1.0: {\n allowPrefixForcing: false,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: false,\n },\n 1.1: {\n allowPrefixForcing: true,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: true,\n },\n};\nexports.ParsingContext = ParsingContext;\n//# sourceMappingURL=ParsingContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\n// tslint:disable-next-line:no-var-requires\nconst canonicalizeJson = require('canonicalize');\n/**\n * Utility functions and methods.\n */\nclass Util {\n constructor(options) {\n this.parsingContext = options.parsingContext;\n this.dataFactory = options.dataFactory || new rdf_data_factory_1.DataFactory();\n this.rdfFirst = this.dataFactory.namedNode(Util.RDF + 'first');\n this.rdfRest = this.dataFactory.namedNode(Util.RDF + 'rest');\n this.rdfNil = this.dataFactory.namedNode(Util.RDF + 'nil');\n this.rdfType = this.dataFactory.namedNode(Util.RDF + 'type');\n this.rdfJson = this.dataFactory.namedNode(Util.RDF + 'JSON');\n }\n /**\n * Helper function to get the value of a context entry,\n * or fallback to a certain value.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} contextKey A pre-defined JSON-LD key in context entries.\n * @param {string} key A context entry key.\n * @param {string} fallback A fallback value for when the given contextKey\n * could not be found in the value with the given key.\n * @return {string} The value of the given contextKey in the entry behind key in the given context,\n * or the given fallback value.\n */\n static getContextValue(context, contextKey, key, fallback) {\n const entry = context.getContextRaw()[key];\n if (!entry) {\n return fallback;\n }\n const type = entry[contextKey];\n return type === undefined ? fallback : type;\n }\n /**\n * Get the container type of the given key in the context.\n *\n * Should any context-scoping bugs should occur related to this in the future,\n * it may be required to increase the offset from the depth at which the context is retrieved by one (to 2).\n * This is because containers act 2 levels deep.\n *\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The container type.\n */\n static getContextValueContainer(context, key) {\n return Util.getContextValue(context, '@container', key, { '@set': true });\n }\n /**\n * Get the value type of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueType(context, key) {\n const valueType = Util.getContextValue(context, '@type', key, null);\n if (valueType === '@none') {\n return null;\n }\n return valueType;\n }\n /**\n * Get the language of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueLanguage(context, key) {\n return Util.getContextValue(context, '@language', key, context.getContextRaw()['@language'] || null);\n }\n /**\n * Get the direction of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueDirection(context, key) {\n return Util.getContextValue(context, '@direction', key, context.getContextRaw()['@direction'] || null);\n }\n /**\n * Check if the given key in the context is a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {boolean} If the context value has a @reverse key.\n */\n static isContextValueReverse(context, key) {\n return !!Util.getContextValue(context, '@reverse', key, null);\n }\n /**\n * Get the @index of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The index.\n */\n static getContextValueIndex(context, key) {\n return Util.getContextValue(context, '@index', key, context.getContextRaw()['@index'] || null);\n }\n /**\n * Check if the given key refers to a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The property key.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property must be reversed.\n */\n static isPropertyReverse(context, key, parentKey) {\n // '!==' is needed because reversed properties in a @reverse container should cancel each other out.\n return parentKey === '@reverse' !== Util.isContextValueReverse(context, key);\n }\n /**\n * Check if the given key exists inside an embedded node as direct child.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property is embedded.\n */\n static isPropertyInEmbeddedNode(parentKey) {\n return parentKey === '@id';\n }\n /**\n * Check if the given key exists inside an annotation object as direct child.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property is an annotation.\n */\n static isPropertyInAnnotationObject(parentKey) {\n return parentKey === '@annotation';\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return iri !== null && jsonld_context_parser_1.Util.isValidIri(iri);\n }\n /**\n * Check if the given first array (needle) is a prefix of the given second array (haystack).\n * @param needle An array to check if it is a prefix.\n * @param haystack An array to look in.\n */\n static isPrefixArray(needle, haystack) {\n if (needle.length > haystack.length) {\n return false;\n }\n for (let i = 0; i < needle.length; i++) {\n if (needle[i] !== haystack[i]) {\n return false;\n }\n }\n return true;\n }\n /**\n * Make sure that @id-@index pairs are equal over all array values.\n * Reject otherwise.\n * @param {any[]} value An array value.\n * @return {Promise} A promise rejecting if conflicts are present.\n */\n async validateValueIndexes(value) {\n if (this.parsingContext.validateValueIndexes) {\n const indexHashes = {};\n for (const entry of value) {\n if (entry && typeof entry === 'object') {\n const id = entry['@id'];\n const index = entry['@index'];\n if (id && index) {\n const existingIndexValue = indexHashes[id];\n if (existingIndexValue && existingIndexValue !== index) {\n throw new jsonld_context_parser_1.ErrorCoded(`Conflicting @index value for ${id}`, jsonld_context_parser_1.ERROR_CODES.CONFLICTING_INDEXES);\n }\n indexHashes[id] = index;\n }\n }\n }\n }\n }\n /**\n * Convert a given JSON value to an RDF term.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param value A JSON value.\n * @param {number} depth The depth the value is at.\n * @param {string[]} keys The path of keys.\n * @return {Promise} An RDF term array.\n */\n async valueToTerm(context, key, value, depth, keys) {\n // Skip further processing if we have an @type: @json\n if (Util.getContextValueType(context, key) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(value), this.rdfJson)];\n }\n const type = typeof value;\n switch (type) {\n case 'object':\n // Skip if we have a null or undefined object\n if (value === null || value === undefined) {\n return [];\n }\n // Special case for arrays\n if (Array.isArray(value)) {\n // We handle arrays at value level so we can emit earlier, so this is handled already when we get here.\n // Empty context-based lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if ('@list' in Util.getContextValueContainer(context, key)) {\n if (value.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n await this.validateValueIndexes(value);\n return [];\n }\n // Handle property-scoped contexts\n context = await this.getContextSelfOrPropertyScoped(context, key);\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], (await this.parsingContext.getContext(keys, 0)).getContextRaw());\n }\n // In all other cases, we have a hash\n value = await this.unaliasKeywords(value, keys, depth, context); // Un-alias potential keywords in this hash\n if ('@value' in value) {\n let val;\n let valueLanguage;\n let valueDirection;\n let valueType;\n let valueIndex; // We don't use the index, but we need to check its type for spec-compliance\n for (key in value) {\n const subValue = value[key];\n switch (key) {\n case '@value':\n val = subValue;\n break;\n case '@language':\n valueLanguage = subValue;\n break;\n case '@direction':\n valueDirection = subValue;\n break;\n case '@type':\n valueType = subValue;\n break;\n case '@index':\n valueIndex = subValue;\n break;\n case '@annotation':\n // This keyword is allowed, but is processed like normal nodes\n break;\n default:\n throw new jsonld_context_parser_1.ErrorCoded(`Unknown value entry '${key}' in @value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n }\n // Skip further processing if we have an @type: @json\n if (await this.unaliasKeyword(valueType, keys, depth, true, context) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(val), this.rdfJson)];\n }\n // Validate @value\n if (val === null) {\n return [];\n }\n if (typeof val === 'object') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@value' can not be an object, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT_VALUE);\n }\n // Validate @index\n if (this.parsingContext.validateValueIndexes && valueIndex && typeof valueIndex !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@index' must be a string, got '${JSON.stringify(valueIndex)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE);\n }\n // Validate @language and @direction\n if (valueLanguage) {\n if (typeof val !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`When an '@language' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_VALUE);\n }\n if (!jsonld_context_parser_1.ContextParser.validateLanguage(valueLanguage, this.parsingContext.strictValues, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_STRING)) {\n return [];\n }\n // Language tags are always normalized to lowercase in 1.0.\n if (this.parsingContext.normalizeLanguageTags || this.parsingContext.activeProcessingMode === 1.0) {\n valueLanguage = valueLanguage.toLowerCase();\n }\n }\n if (valueDirection) {\n if (typeof val !== 'string') {\n throw new Error(`When an '@direction' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`);\n }\n if (!jsonld_context_parser_1.ContextParser.validateDirection(valueDirection, this.parsingContext.strictValues)) {\n return [];\n }\n }\n // Check @language and @direction\n if (valueLanguage && valueDirection && this.parsingContext.rdfDirection) {\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have '@language', '@direction' and '@type' in a value: '${JSON\n .stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueLanguage) { // Check @language\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@language' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return [this.dataFactory.literal(val, valueLanguage)];\n }\n else if (valueDirection && this.parsingContext.rdfDirection) { // Check @direction\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@direction' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueType) { // Validate @type\n if (typeof valueType !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n const typeTerm = this.createVocabOrBaseTerm(context, valueType);\n if (!typeTerm) {\n throw new jsonld_context_parser_1.ErrorCoded(`Invalid '@type' value, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n if (typeTerm.termType !== 'NamedNode') {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal value type (${typeTerm.termType}): ${valueType}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n return [this.dataFactory.literal(val, typeTerm)];\n }\n // We don't pass the context, because context-based things like @language should be ignored\n return await this.valueToTerm(new jsonld_context_parser_1.JsonLdContextNormalized({}), key, val, depth, keys);\n }\n else if ('@set' in value) {\n // No other entries are allow in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n // No need to do anything here, this is handled at the deeper level.\n return [];\n }\n else if ('@list' in value) {\n // No other entries are allowed in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n const listValue = value[\"@list\"];\n // We handle lists at value level so we can emit earlier, so this is handled already when we get here.\n // Empty anonymous lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if (Array.isArray(listValue)) {\n if (listValue.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n else {\n // We only have a single list element here, so emit this directly as single element\n return await this.valueToTerm(await this.parsingContext.getContext(keys), key, listValue, depth - 1, keys.slice(0, -1));\n }\n }\n else if ('@reverse' in value && typeof value['@reverse'] === 'boolean') {\n // We handle reverse properties at value level so we can emit earlier,\n // so this is handled already when we get here.\n return [];\n }\n else if ('@graph' in Util.getContextValueContainer(await this.parsingContext.getContext(keys), key)) {\n // We are processing a graph container\n const graphContainerEntries = this.parsingContext.graphContainerTermStack[depth + 1];\n return graphContainerEntries ? Object.values(graphContainerEntries) : [this.dataFactory.blankNode()];\n }\n else if (\"@id\" in value) {\n // Use deeper context if the value node contains other properties next to @id.\n if (Object.keys(value).length > 1) {\n context = await this.parsingContext.getContext(keys, 0);\n }\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], context.getContextRaw());\n }\n if (value[\"@type\"] === '@vocab') {\n return this.nullableTermToArray(this.createVocabOrBaseTerm(context, value[\"@id\"]));\n }\n else {\n const valueId = value[\"@id\"];\n let valueTerm;\n if (typeof valueId === 'object') {\n if (this.parsingContext.rdfstar) {\n valueTerm = this.parsingContext.idStack[depth + 1][0];\n }\n else {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE);\n }\n }\n else {\n valueTerm = this.resourceToTerm(context, valueId);\n }\n return this.nullableTermToArray(valueTerm);\n }\n }\n else {\n // Only make a blank node if at least one triple was emitted at the value's level.\n if (this.parsingContext.emittedStack[depth + 1]\n || (value && typeof value === 'object' && Object.keys(value).length === 0)) {\n return (this.parsingContext.idStack[depth + 1]\n || (this.parsingContext.idStack[depth + 1] = [this.dataFactory.blankNode()]));\n }\n else {\n return [];\n }\n }\n case 'string':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, null));\n case 'boolean':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, Boolean(value).toString(), this.dataFactory.namedNode(Util.XSD_BOOLEAN)));\n case 'number':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, this.dataFactory.namedNode(value % 1 === 0 && value < 1e21 ? Util.XSD_INTEGER : Util.XSD_DOUBLE)));\n default:\n this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${type}`));\n return [];\n }\n }\n /**\n * If the context defines a property-scoped context for the given key,\n * that context will be returned.\n * Otherwise, the given context will be returned as-is.\n *\n * This should be used for valueToTerm cases that are not objects.\n * @param context A context.\n * @param key A JSON key.\n */\n async getContextSelfOrPropertyScoped(context, key) {\n const contextKeyEntry = context.getContextRaw()[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n context = await this.parsingContext.parseContext(contextKeyEntry, context.getContextRaw(), true);\n }\n return context;\n }\n /**\n * If the given term is null, return an empty array, otherwise return an array with the single given term.\n * @param term A term.\n */\n nullableTermToArray(term) {\n return term ? [term] : [];\n }\n /**\n * Convert a given JSON key to an RDF predicate term,\n * based on @vocab.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node.\n */\n predicateToTerm(context, key) {\n const expanded = context.expandTerm(key, true, this.parsingContext.getExpandOptions());\n // Immediately return if the predicate was disabled in the context\n if (!expanded) {\n return null;\n }\n // Check if the predicate is a blank node\n if (expanded[0] === '_' && expanded[1] === ':') {\n if (this.parsingContext.produceGeneralizedRdf) {\n return this.dataFactory.blankNode(expanded.substr(2));\n }\n else {\n return null;\n }\n }\n // Check if the predicate is a valid IRI\n if (Util.isValidIri(expanded)) {\n return this.dataFactory.namedNode(expanded);\n }\n else {\n if (expanded && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid predicate IRI: ${expanded}`, jsonld_context_parser_1.ERROR_CODES.INVALID_IRI_MAPPING));\n }\n else {\n return null;\n }\n }\n return null;\n }\n /**\n * Convert a given JSON key to an RDF resource term or blank node,\n * based on @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n resourceToTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const iri = context.expandTerm(key, false, this.parsingContext.getExpandOptions());\n if (!Util.isValidIri(iri)) {\n if (iri && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new Error(`Invalid resource IRI: ${iri}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(iri);\n }\n /**\n * Convert a given JSON key to an RDF resource term.\n * It will do this based on the @vocab,\n * and fallback to @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n createVocabOrBaseTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const expandOptions = this.parsingContext.getExpandOptions();\n let expanded = context.expandTerm(key, true, expandOptions);\n if (expanded === key) {\n expanded = context.expandTerm(key, false, expandOptions);\n }\n if (!Util.isValidIri(expanded)) {\n if (expanded && this.parsingContext.strictValues && !expanded.startsWith('@')) {\n this.parsingContext.emitError(new Error(`Invalid term IRI: ${expanded}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(expanded);\n }\n /**\n * Ensure that the given value becomes a string.\n * @param {string | number} value A string or number.\n * @param {NamedNode} datatype The intended datatype.\n * @return {string} The returned string.\n */\n intToString(value, datatype) {\n if (typeof value === 'number') {\n if (Number.isFinite(value)) {\n const isInteger = value % 1 === 0;\n if (isInteger && (!datatype || datatype.value !== Util.XSD_DOUBLE)) {\n return Number(value).toString();\n }\n else {\n return value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n }\n }\n else {\n return value > 0 ? 'INF' : '-INF';\n }\n }\n else {\n return value;\n }\n }\n /**\n * Convert a given JSON string value to an RDF term.\n * @param {number} depth The current stack depth.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param {string} value A JSON value.\n * @param {NamedNode} defaultDatatype The default datatype for the given value.\n * @return {RDF.Term} An RDF term or null.\n */\n stringValueToTerm(depth, context, key, value, defaultDatatype) {\n // Check the datatype from the context\n const contextType = Util.getContextValueType(context, key);\n if (contextType) {\n if (contextType === '@id') {\n if (!defaultDatatype) {\n return this.resourceToTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else if (contextType === '@vocab') {\n if (!defaultDatatype) {\n return this.createVocabOrBaseTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else {\n defaultDatatype = this.dataFactory.namedNode(contextType);\n }\n }\n // If we don't find such a datatype, check the language from the context\n if (!defaultDatatype) {\n const contextLanguage = Util.getContextValueLanguage(context, key);\n const contextDirection = Util.getContextValueDirection(context, key);\n if (contextDirection && this.parsingContext.rdfDirection) {\n return this.createLanguageDirectionLiteral(depth, this.intToString(value, defaultDatatype), contextLanguage, contextDirection);\n }\n else {\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), contextLanguage);\n }\n }\n // If all else fails, make a literal based on the default content type\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), defaultDatatype);\n }\n /**\n * Create a literal for the given value with the given language and direction.\n * Auxiliary quads may be emitted.\n * @param {number} depth The current stack depth.\n * @param {string} value A string value.\n * @param {string} language A language tag.\n * @param {string} direction A direction.\n * @return {Term} An RDF term.\n */\n createLanguageDirectionLiteral(depth, value, language, direction) {\n if (this.parsingContext.rdfDirection === 'i18n-datatype') {\n // Create a datatyped literal, by encoding the language and direction into https://www.w3.org/ns/i18n#.\n if (!language) {\n language = '';\n }\n return this.dataFactory.literal(value, this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${language}_${direction}`));\n }\n else {\n // Reify the literal.\n const valueNode = this.dataFactory.blankNode();\n const graph = this.getDefaultGraph();\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'value'), this.dataFactory.literal(value), graph));\n if (language) {\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'language'), this.dataFactory.literal(language), graph));\n }\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'direction'), this.dataFactory.literal(direction), graph));\n return valueNode;\n }\n }\n /**\n * Stringify the given JSON object to a canonical JSON string.\n * @param value Any valid JSON value.\n * @return {string} A canonical JSON string.\n */\n valueToJsonString(value) {\n return canonicalizeJson(value);\n }\n /**\n * If the key is not a keyword, try to check if it is an alias for a keyword,\n * and if so, un-alias it.\n * @param {string} key A key, can be falsy.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth to\n * @param {boolean} disableCache If the cache should be disabled\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise} A promise resolving to the key itself, or another key.\n */\n async unaliasKeyword(key, keys, depth, disableCache, context) {\n // Numbers can not be an alias\n if (Number.isInteger(key)) {\n return key;\n }\n // Try to grab from cache if it was already un-aliased before.\n if (!disableCache) {\n const cachedUnaliasedKeyword = this.parsingContext.unaliasedKeywordCacheStack[depth];\n if (cachedUnaliasedKeyword) {\n return cachedUnaliasedKeyword;\n }\n }\n if (!jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n context = context || await this.parsingContext.getContext(keys);\n let unliased = context.getContextRaw()[key];\n if (unliased && typeof unliased === 'object') {\n unliased = unliased['@id'];\n }\n if (jsonld_context_parser_1.Util.isValidKeyword(unliased)) {\n key = unliased;\n }\n }\n return disableCache ? key : (this.parsingContext.unaliasedKeywordCacheStack[depth] = key);\n }\n /**\n * Unalias the keyword of the parent.\n * This adds a safety check if no parent exist.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @return {Promise} A promise resolving to the parent key, or another key.\n */\n async unaliasKeywordParent(keys, depth) {\n return await this.unaliasKeyword(depth > 0 && keys[depth - 1], keys, depth - 1);\n }\n /**\n * Un-alias all keywords in the given hash.\n * @param {{[p: string]: any}} hash A hash object.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth.\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise<{[p: string]: any}>} A promise resolving to the new hash.\n */\n async unaliasKeywords(hash, keys, depth, context) {\n const newHash = {};\n for (const key in hash) {\n newHash[await this.unaliasKeyword(key, keys, depth + 1, true, context)] = hash[key];\n }\n return newHash;\n }\n /**\n * Check if we are processing a literal (including JSON literals) at the given depth.\n * This will also check higher levels,\n * because if a parent is a literal,\n * then the deeper levels are definitely a literal as well.\n * @param {any[]} keys The keys.\n * @param {number} depth The depth.\n * @return {boolean} If we are processing a literal.\n */\n async isLiteral(keys, depth) {\n for (let i = depth; i >= 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@annotation') {\n // Literals may have annotations, which require processing of inner nodes.\n return false;\n }\n if (this.parsingContext.literalStack[i] || this.parsingContext.jsonLiteralStack[i]) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check how many parents should be skipped for checking the @graph for the given node.\n *\n * @param {number} depth The depth of the node.\n * @param {any[]} keys An array of keys.\n * @return {number} The graph depth offset.\n */\n async getDepthOffsetGraph(depth, keys) {\n for (let i = depth - 1; i > 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@graph') {\n // Skip further processing if we are already in an @graph-@id or @graph-@index container\n const containers = (await EntryHandlerContainer_1.EntryHandlerContainer.getContainerHandler(this.parsingContext, keys, i)).containers;\n if (EntryHandlerContainer_1.EntryHandlerContainer.isComplexGraphContainer(containers)) {\n return -1;\n }\n return depth - i - 1;\n }\n }\n return -1;\n }\n /**\n * Check if the given subject is of a valid type.\n * This should be called when applying @reverse'd properties.\n * @param {Term} subject A subject.\n */\n validateReverseSubject(subject) {\n if (subject.termType === 'Literal') {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal literal in subject position: ${subject.value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n /**\n * Get the default graph.\n * @return {Term} An RDF term.\n */\n getDefaultGraph() {\n return this.parsingContext.defaultGraph || this.dataFactory.defaultGraph();\n }\n /**\n * Get the current graph, while taking into account a graph that can be defined via @container: @graph.\n * If not within a graph container, the default graph will be returned.\n * @param keys The current keys.\n * @param depth The current depth.\n */\n async getGraphContainerValue(keys, depth) {\n // Default to default graph\n let graph = this.getDefaultGraph();\n // Check if we are in an @container: @graph.\n const { containers, depth: depthContainer } = await EntryHandlerContainer_1.EntryHandlerContainer\n .getContainerHandler(this.parsingContext, keys, depth);\n if ('@graph' in containers) {\n // Get the graph from the stack.\n const graphContainerIndex = EntryHandlerContainer_1.EntryHandlerContainer.getContainerGraphIndex(containers, depthContainer, keys);\n const entry = this.parsingContext.graphContainerTermStack[depthContainer];\n graph = entry ? entry[graphContainerIndex] : null;\n // Set the graph in the stack if none has been set yet.\n if (!graph) {\n let graphId = null;\n if ('@id' in containers) {\n const keyUnaliased = await this.getContainerKey(keys[depthContainer], keys, depthContainer);\n if (keyUnaliased !== null) {\n graphId = await this.resourceToTerm(await this.parsingContext.getContext(keys), keyUnaliased);\n }\n }\n if (!graphId) {\n graphId = this.dataFactory.blankNode();\n }\n if (!this.parsingContext.graphContainerTermStack[depthContainer]) {\n this.parsingContext.graphContainerTermStack[depthContainer] = {};\n }\n graph = this.parsingContext.graphContainerTermStack[depthContainer][graphContainerIndex] = graphId;\n }\n }\n return graph;\n }\n /**\n * Get the properties depth for retrieving properties.\n *\n * Typically, the properties depth will be identical to the given depth.\n *\n * The following exceptions apply:\n * * When the parent is @reverse, the depth is decremented by one.\n * * When @nest parents are found, the depth is decremented by the number of @nest parents.\n * If in combination with the exceptions above an intermediary array is discovered,\n * the depth is also decremented by this number of arrays.\n *\n * @param keys The current key chain.\n * @param depth The current depth.\n */\n async getPropertiesDepth(keys, depth) {\n let lastValidDepth = depth;\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n const parentKey = await this.unaliasKeyword(keys[i], keys, i);\n if (parentKey === '@reverse') {\n return i;\n }\n else if (parentKey === '@nest') {\n lastValidDepth = i;\n }\n else {\n return lastValidDepth;\n }\n }\n }\n return lastValidDepth;\n }\n /**\n * Get the key for the current container entry.\n * @param key A key, can be falsy.\n * @param keys The key chain.\n * @param depth The current depth to get the key from.\n * @return Promise resolving to the key.\n * Null will be returned for @none entries, with aliasing taken into account.\n */\n async getContainerKey(key, keys, depth) {\n const keyUnaliased = await this.unaliasKeyword(key, keys, depth);\n return keyUnaliased === '@none' ? null : keyUnaliased;\n }\n /**\n * Check if no reverse properties are present in embedded nodes.\n * @param key The current key.\n * @param reverse If a reverse property is active.\n * @param isEmbedded If we're in an embedded node.\n */\n validateReverseInEmbeddedNode(key, reverse, isEmbedded) {\n if (isEmbedded && reverse && !this.parsingContext.rdfstarReverseInEmbedded) {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal reverse property in embedded node in ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n }\n }\n /**\n * Emit a quad, with checks.\n * @param depth The current depth.\n * @param subject S\n * @param predicate P\n * @param object O\n * @param graph G\n * @param reverse If a reverse property is active.\n * @param isEmbedded If we're in an embedded node.\n */\n emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded) {\n // Create a quad\n let quad;\n if (reverse) {\n this.validateReverseSubject(object);\n quad = this.dataFactory.quad(object, predicate, subject, graph);\n }\n else {\n quad = this.dataFactory.quad(subject, predicate, object, graph);\n }\n // Emit the quad, unless it was created in an embedded node\n if (isEmbedded) {\n // Embedded nodes don't inherit the active graph\n if (quad.graph.termType !== 'DefaultGraph') {\n quad = this.dataFactory.quad(quad.subject, quad.predicate, quad.object);\n }\n // Multiple embedded nodes are not allowed\n if (this.parsingContext.idStack[depth - 1]) {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal multiple properties in an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n }\n this.parsingContext.idStack[depth - 1] = [quad];\n }\n else {\n this.parsingContext.emitQuad(depth, quad);\n }\n // Flush annotations\n const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n if (annotationsBuffer) {\n for (const annotation of annotationsBuffer) {\n this.emitAnnotation(depth, quad, annotation);\n }\n delete this.parsingContext.annotationsBuffer[depth];\n }\n }\n // This is a separate function to enable recursion\n emitAnnotation(depth, quad, annotation) {\n // Construct annotation quad\n let annotationQuad;\n if (annotation.reverse) {\n this.validateReverseSubject(annotation.object);\n annotationQuad = this.dataFactory.quad(annotation.object, annotation.predicate, quad);\n }\n else {\n annotationQuad = this.dataFactory.quad(quad, annotation.predicate, annotation.object);\n }\n // Emit annotated quad\n this.parsingContext.emitQuad(depth, annotationQuad);\n // Also emit nested annotations\n for (const nestedAnnotation of annotation.nestedAnnotations) {\n this.emitAnnotation(depth, annotationQuad, nestedAnnotation);\n }\n }\n}\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_BOOLEAN = Util.XSD + 'boolean';\nUtil.XSD_INTEGER = Util.XSD + 'integer';\nUtil.XSD_DOUBLE = Util.XSD + 'double';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIdentifier = void 0;\n/**\n * Container handler for @id.\n *\n * It assumes that the current key is the identifier of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerIdentifier {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n let id;\n // First check if the child node already has a defined id.\n if (parsingContext.emittedStack[depth + 1] && parsingContext.idStack[depth + 1]) {\n // Use the existing identifier\n id = parsingContext.idStack[depth + 1][0];\n }\n else {\n // Create the identifier\n const keyUnaliased = await util.getContainerKey(keys[depth], keys, depth);\n const maybeId = keyUnaliased !== null\n ? await util.resourceToTerm(await parsingContext.getContext(keys), keys[depth])\n : util.dataFactory.blankNode();\n // Do nothing if the id is invalid\n if (!maybeId) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n return;\n }\n id = maybeId;\n // Insert the id into the stack so that buffered children can make us of it.\n parsingContext.idStack[depth + 1] = [id];\n }\n // Insert the id into the stack so that parents can make use of it.\n // Insert it as an array because multiple id container entries may exist\n let ids = parsingContext.idStack[depth];\n if (!ids) {\n ids = parsingContext.idStack[depth] = [];\n }\n // Only insert the term if it does not exist yet in the array.\n if (!ids.some((term) => term.equals(id))) {\n ids.push(id);\n }\n // Flush any pending flush buffers\n if (!await parsingContext.handlePendingContainerFlushBuffers()) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n }\n}\nexports.ContainerHandlerIdentifier = ContainerHandlerIdentifier;\n//# sourceMappingURL=ContainerHandlerIdentifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIndex = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @index.\n *\n * This will ignore the current key and add this entry to the parent node.\n */\nclass ContainerHandlerIndex {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n const graphContainer = '@graph' in containers;\n // Check if the container is a property-based container by checking if there is a valid @index.\n const context = await parsingContext.getContext(keys);\n const indexKey = keys[depth - 1];\n const indexPropertyRaw = Util_1.Util.getContextValueIndex(context, indexKey);\n if (indexPropertyRaw) {\n // Validate the @index value\n if (jsonld_context_parser_1.Util.isPotentialKeyword(indexPropertyRaw)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Keywords can not be used as @index value, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n if (typeof indexPropertyRaw !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`@index values must be strings, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n // When @index is used, values must be node values, unless @type: @id is defined in the context\n if (typeof value !== 'object') {\n // Error if we don't have @type: @id\n if (Util_1.Util.getContextValueType(context, indexKey) !== '@id') {\n throw new jsonld_context_parser_1.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n // Add an @id to the stack, so our expanded @index value can make use of it\n const id = util.resourceToTerm(context, value);\n if (id) {\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n // Expand the @index value\n const indexProperty = util.createVocabOrBaseTerm(context, indexPropertyRaw);\n if (indexProperty) {\n const indexValues = await util.valueToTerm(context, indexPropertyRaw, await util.getContainerKey(keys[depth], keys, depth), depth, keys);\n if (graphContainer) {\n // When we're in a graph container, attach the index to the graph identifier\n const graphId = await util.getGraphContainerValue(keys, depth + 1);\n for (const indexValue of indexValues) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(graphId, indexProperty, indexValue, util.getDefaultGraph()));\n }\n }\n else {\n // Otherwise, attach the index to the node identifier\n for (const indexValue of indexValues) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, indexProperty, indexValue, false, false, false);\n }\n }\n }\n }\n const depthOffset = graphContainer ? 2 : 1;\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - depthOffset), value, depth - depthOffset, true);\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerIndex = ContainerHandlerIndex;\n//# sourceMappingURL=ContainerHandlerIndex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerLanguage = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Container handler for @language.\n *\n * It assumes that the current key is the language of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerLanguage {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n const language = await util.getContainerKey(keys[depth], keys, depth);\n if (Array.isArray(value)) {\n // No type-checking needed, will be handled on each value when this handler is called recursively.\n value = value.map((subValue) => ({ '@value': subValue, '@language': language }));\n }\n else {\n if (typeof value !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(value)}', but expected string`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);\n }\n value = { '@value': value, '@language': language };\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerLanguage = ContainerHandlerLanguage;\n//# sourceMappingURL=ContainerHandlerLanguage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerType = void 0;\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @type.\n *\n * This will add this entry to the parent node, and use the current key as an rdf:type value.\n */\nclass ContainerHandlerType {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n if (typeof value === 'string') {\n // Determine the @type of the container\n const context = await parsingContext.getContext(keys);\n const containerTypeType = Util_1.Util.getContextValueType(context, keys[depth - 1]);\n // String values refer to node references\n const id = containerTypeType === '@vocab'\n ? await util.createVocabOrBaseTerm(context, value)\n : await util.resourceToTerm(context, value);\n if (id) {\n // Handle the value of this node as @id, which will also cause the predicate from above to be emitted.\n const subValue = { '@id': id.termType === 'NamedNode' ? id.value : value };\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), subValue, depth - 1, true);\n // Set the id in the stack so it can be used for the rdf:type handling later on\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n else {\n // Other values are handled by handling them as a proper job\n // Check needed for cases where entries don't have an explicit @id\n const entryHasIdentifier = !!parsingContext.idStack[depth + 1];\n // Handle the value of this node, which will also cause the predicate from above to be emitted.\n if (!entryHasIdentifier) {\n delete parsingContext.idStack[depth]; // Force new (blank node) identifier\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n if (!entryHasIdentifier) {\n parsingContext.idStack[depth + 1] = parsingContext.idStack[depth]; // Copy the id to the child node, for @type\n }\n }\n // Identify the type to emit.\n const keyOriginal = await util.getContainerKey(keys[depth], keys, depth);\n const type = keyOriginal !== null\n ? util.createVocabOrBaseTerm(await parsingContext.getContext(keys), keyOriginal)\n : null;\n if (type) {\n // Push the type to the stack using the rdf:type predicate\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, util.rdfType, type, false, false, false);\n }\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n}\nexports.ContainerHandlerType = ContainerHandlerType;\n//# sourceMappingURL=ContainerHandlerType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerArrayValue = void 0;\nconst Util_1 = require(\"../Util\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Handles values that are part of an array.\n */\nclass EntryHandlerArrayValue {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n return typeof keys[depth] === 'number';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n // Check if we have an anonymous list\n if (parentKey === '@list') {\n // Our value is part of an array\n // Determine the list root key\n let listRootKey = null;\n let listRootDepth = 0;\n for (let i = depth - 2; i > 0; i--) {\n const keyOption = keys[i];\n if (typeof keyOption === 'string' || typeof keyOption === 'number') {\n listRootDepth = i;\n listRootKey = keyOption;\n break;\n }\n }\n if (listRootKey !== null) {\n // Emit the given objects as list elements\n const values = await util.valueToTerm(await parsingContext.getContext(keys), listRootKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n }\n }\n else if (parentKey === '@set') {\n // Our value is part of a set, so we just add it to the parent-parent\n await parsingContext.newOnValueJob(keys.slice(0, -2), value, depth - 2, false);\n }\n else if (parentKey !== undefined && parentKey !== '@type') {\n // Buffer our value using the parent key as predicate\n // Determine the first parent key that is *not* an array key\n // This is needed in case we have an @list container with nested arrays,\n // where each of them should produce nested RDF lists.\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') {\n parentKey = await util.unaliasKeyword(keys[i], keys, i);\n break;\n }\n }\n // Check if the predicate is marked as an @list in the context\n const parentContext = await parsingContext.getContext(keys.slice(0, -1));\n if ('@list' in Util_1.Util.getContextValueContainer(parentContext, parentKey)) {\n // Our value is part of an array\n // Emit the given objects as list elements\n parsingContext.emittedStack[depth + 1] = true; // Ensure the creation of bnodes for empty nodes\n const values = await util.valueToTerm(await parsingContext.getContext(keys), parentKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, -1), depth - 1);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, -1), depth - 1);\n }\n }\n else {\n // Copy the stack values up one level so that the next job can access them.\n parsingContext.shiftStack(depth, 1);\n // Execute the job one level higher\n await parsingContext.newOnValueJob(keys.slice(0, -1), value, depth - 1, false);\n // Remove any defined contexts at this level to avoid it to propagate to the next array element.\n parsingContext.contextTree.removeContext(keys.slice(0, -1));\n }\n }\n }\n async handleListElement(parsingContext, util, value, valueOriginal, depth, listRootKeys, listRootDepth) {\n // Buffer our value as an RDF list using the listRootKey as predicate\n let listPointer = parsingContext.listPointerStack[depth];\n if (valueOriginal !== null && (await util.unaliasKeywords(valueOriginal, listRootKeys, depth))['@value'] !== null) {\n if (!listPointer || !listPointer.value) {\n const linkTerm = util.dataFactory.blankNode();\n listPointer = { value: linkTerm, listRootDepth, listId: linkTerm };\n }\n else {\n // rdf:rest links are always emitted before the next element,\n // as the blank node identifier is only created at that point.\n // Because of this reason, the final rdf:nil is emitted when the stack depth is decreased.\n const newLinkTerm = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfRest, newLinkTerm, util.getDefaultGraph()));\n // Update the list pointer for the next element\n listPointer.value = newLinkTerm;\n }\n // Emit a list element for the current value\n // Omit rdf:first if the value is invalid\n if (value) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfFirst, value, util.getDefaultGraph()));\n }\n }\n else {\n // A falsy list element if found.\n // Mark it as an rdf:nil list until another valid list element comes in\n if (!listPointer) {\n listPointer = { listRootDepth, listId: util.rdfNil };\n }\n }\n parsingContext.listPointerStack[depth] = listPointer;\n // Error if an annotation was defined\n if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside a list`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n}\nexports.EntryHandlerArrayValue = EntryHandlerArrayValue;\n//# sourceMappingURL=EntryHandlerArrayValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerContainer = void 0;\nconst ContainerHandlerIdentifier_1 = require(\"../containerhandler/ContainerHandlerIdentifier\");\nconst ContainerHandlerIndex_1 = require(\"../containerhandler/ContainerHandlerIndex\");\nconst ContainerHandlerLanguage_1 = require(\"../containerhandler/ContainerHandlerLanguage\");\nconst ContainerHandlerType_1 = require(\"../containerhandler/ContainerHandlerType\");\nconst Util_1 = require(\"../Util\");\n/**\n * Handles values that are part of a container type (like @index),\n * as specified by {@link IContainerHandler}.\n */\nclass EntryHandlerContainer {\n /**\n * Check fit the given container is a simple @graph container.\n * Concretely, it will check if no @index or @id is active as well.\n * @param containers A container hash.\n */\n static isSimpleGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length === 2) || Object.keys(containers).length === 1);\n }\n /**\n * Check fit the given container is a complex @graph container.\n * Concretely, it will check if @index or @id is active as well next to @graph.\n * @param containers A container hash.\n */\n static isComplexGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length > 2)\n || (!('@set' in containers) && Object.keys(containers).length > 1));\n }\n /**\n * Create an graph container index that can be used for identifying a graph term inside the graphContainerTermStack.\n * @param containers The applicable containers.\n * @param depth The container depth.\n * @param keys The array of keys.\n * @return The graph index.\n */\n static getContainerGraphIndex(containers, depth, keys) {\n let isSimpleGraphContainer = EntryHandlerContainer.isSimpleGraphContainer(containers);\n let index = '';\n for (let i = depth; i < keys.length; i++) {\n if (!isSimpleGraphContainer || typeof keys[i] === 'number') {\n index += ':' + keys[i];\n }\n // Only allow a second 'real' key if in a non-simple graph container.\n if (!isSimpleGraphContainer && typeof keys[i] !== 'number') {\n isSimpleGraphContainer = true;\n }\n }\n return index;\n }\n /**\n * Return the applicable container type at the given depth.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise<{ containers: {[typeName: string]: boolean}, depth: number, fallback: boolean }>}\n * All applicable containers for the given depth,\n * the `depth` of the container root (can change when arrays are in the key chain),\n * and the `fallback` flag that indicates if the default container type was returned\n * (i.e., no dedicated container type is defined).\n */\n static async getContainerHandler(parsingContext, keys, depth) {\n const fallback = {\n containers: { '@set': true },\n depth,\n fallback: true,\n };\n // A flag that is enabled when @graph container should be tested in next iteration\n let checkGraphContainer = false;\n // Iterate from deeper to higher\n const context = await parsingContext.getContext(keys, 2);\n for (let i = depth - 1; i >= 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n // @graph containers without any other types are one level less deep, and require special handling\n const containersSelf = Util_1.Util.getContextValue(context, '@container', keys[i], false);\n if (containersSelf && EntryHandlerContainer.isSimpleGraphContainer(containersSelf)) {\n return {\n containers: containersSelf,\n depth: i + 1,\n fallback: false,\n };\n }\n const containersParent = Util_1.Util.getContextValue(context, '@container', keys[i - 1], false);\n if (!containersParent) { // If we have the fallback container value\n if (checkGraphContainer) {\n // Return false if we were already expecting a @graph-@id of @graph-@index container\n return fallback;\n }\n // Check parent-parent, we may be in a @graph-@id of @graph-@index container, which have two levels\n checkGraphContainer = true;\n }\n else {\n // We had an invalid container next iteration, so we now have to check if we were in an @graph container\n const graphContainer = '@graph' in containersParent;\n // We're in a regular container\n for (const containerHandleName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containersParent[containerHandleName]) {\n if (graphContainer) {\n // Only accept graph containers if their combined handlers can handle them.\n if (EntryHandlerContainer.CONTAINER_HANDLERS[containerHandleName].canCombineWithGraph()) {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n else {\n return fallback;\n }\n }\n else {\n // Only accept if we were not expecting a @graph-@id of @graph-@index container\n if (checkGraphContainer) {\n return fallback;\n }\n else {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n }\n }\n }\n // Fail if no valid container handlers were found\n return fallback;\n }\n }\n }\n return fallback;\n }\n /**\n * Check if we are handling a value at the given depth\n * that is part of something that should be handled as a container,\n * AND if this container should be buffered, so that it can be handled by a dedicated container handler.\n *\n * For instance, any container with @graph will NOT be buffered.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise} If we are in the scope of a container handler.\n */\n static async isBufferableContainerHandler(parsingContext, keys, depth) {\n const handler = await EntryHandlerContainer.getContainerHandler(parsingContext, keys, depth);\n return !handler.fallback && !('@graph' in handler.containers);\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return !!await this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n const containers = Util_1.Util.getContextValueContainer(await parsingContext.getContext(keys, 2), keys[depth - 1]);\n for (const containerName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containers[containerName]) {\n return {\n containers,\n handler: EntryHandlerContainer.CONTAINER_HANDLERS[containerName],\n };\n }\n }\n return null;\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n return testResult.handler.handle(testResult.containers, parsingContext, util, keys, value, depth);\n }\n}\nEntryHandlerContainer.CONTAINER_HANDLERS = {\n '@id': new ContainerHandlerIdentifier_1.ContainerHandlerIdentifier(),\n '@index': new ContainerHandlerIndex_1.ContainerHandlerIndex(),\n '@language': new ContainerHandlerLanguage_1.ContainerHandlerLanguage(),\n '@type': new ContainerHandlerType_1.ContainerHandlerType(),\n};\nexports.EntryHandlerContainer = EntryHandlerContainer;\n//# sourceMappingURL=EntryHandlerContainer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerInvalidFallback = void 0;\n/**\n * A catch-all for properties, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerInvalidFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return true;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerInvalidFallback = EntryHandlerInvalidFallback;\n//# sourceMappingURL=EntryHandlerInvalidFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerPredicate = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../Util\");\n/**\n * Interprets keys as predicates.\n * The most common case in JSON-LD processing.\n */\nclass EntryHandlerPredicate {\n /**\n * Handle the given predicate-object by either emitting it,\n * or by placing it in the appropriate stack for later emission when no @graph and/or @id has been defined.\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {Util} util A utility instance.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @param {Term} predicate The predicate.\n * @param {Term} object The object.\n * @param {boolean} reverse If the property is reversed.\n * @param {boolean} isEmbedded If the property exists in an embedded node as direct child.\n * @param {boolean} isAnnotation If the property exists in an annotation object.\n * @return {Promise} A promise resolving when handling is done.\n */\n static async handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation) {\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n const depthOffsetGraph = await util.getDepthOffsetGraph(depth, keys);\n const depthPropertiesGraph = depth - depthOffsetGraph;\n const subjects = parsingContext.idStack[depthProperties];\n if (subjects && !isAnnotation) {\n // Emit directly if the @id was already defined\n for (const subject of subjects) {\n // Check if we're in a @graph context\n const atGraph = depthOffsetGraph >= 0;\n if (atGraph) {\n const graphs = parsingContext.idStack[depthPropertiesGraph - 1];\n if (graphs) {\n for (const graph of graphs) {\n // Emit our quad if graph @id is known\n util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n }\n }\n else {\n // Buffer our triple if graph @id is not known yet.\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1).push({ subject: object, predicate, object: subject, isEmbedded });\n }\n else {\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1)\n .push({ subject, predicate, object, isEmbedded });\n }\n }\n }\n else {\n // Emit if no @graph was applicable\n const graph = await util.getGraphContainerValue(keys, depthProperties);\n util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n }\n }\n }\n else {\n // Buffer until our @id becomes known, or we go up the stack\n if (reverse) {\n util.validateReverseSubject(object);\n }\n // Either push to the annotations or the actual value buffer\n if (isAnnotation) {\n // Only add to buffer if rdfstar is enabled\n if (parsingContext.rdfstar) {\n // Error if an @id was defined\n if (parsingContext.idStack[depth]) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${parsingContext.idStack[depth][0].value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Error if we're in an embedded node\n for (let i = 0; i < depth; i++) {\n if (await util.unaliasKeyword(keys[i], keys, i) === '@id') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n // Store new annotation in the buffer\n const annotationsBuffer = parsingContext.getAnnotationsBufferSafe(depthProperties);\n const newAnnotation = { predicate, object, reverse, nestedAnnotations: [], depth: depthProperties };\n annotationsBuffer.push(newAnnotation);\n // Check in the buffer if any annotations were defined at a deeper depth,\n // if so, they are considered nested annotations.\n for (let i = annotationsBuffer.length - 2; i >= 0; i--) {\n // We iterate in reverse order, to enable easy item removal from the back.\n const existingAnnotation = annotationsBuffer[i];\n if (existingAnnotation.depth > depthProperties) {\n newAnnotation.nestedAnnotations.push(existingAnnotation);\n annotationsBuffer.splice(i, 1);\n }\n }\n }\n }\n else {\n parsingContext.getUnidentifiedValueBufferSafe(depthProperties).push({ predicate, object, reverse, isEmbedded });\n }\n }\n }\n isPropertyHandler() {\n return true;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = keys[depth];\n if (key) {\n const context = await parsingContext.getContext(keys);\n if (!parsingContext.jsonLiteralStack[depth] && await util.predicateToTerm(context, keys[depth])) {\n // If this valid predicate is of type @json, mark it so in the stack so that no deeper handling of nodes occurs.\n if (Util_1.Util.getContextValueType(context, key) === '@json') {\n parsingContext.jsonLiteralStack[depth + 1] = true;\n }\n return true;\n }\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return keys[depth];\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n const keyOriginal = keys[depth];\n const context = await parsingContext.getContext(keys);\n const predicate = await util.predicateToTerm(context, key);\n if (predicate) {\n const objects = await util.valueToTerm(context, key, value, depth, keys);\n if (objects.length) {\n for (let object of objects) {\n // Based on parent key, check if reverse, embedded, and annotation.\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n let parentDepthOffset = 0;\n while (parentKey === '@reverse' || typeof parentKey === 'number') {\n // Check parent of parent when checking while we're in an array or in @reverse\n if (typeof parentKey === 'number') {\n parentDepthOffset++;\n }\n else {\n depth--;\n }\n parentKey = await util.unaliasKeywordParent(keys, depth - parentDepthOffset);\n }\n const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n if (value) {\n // Special case if our term was defined as an @list, but does not occur in an array,\n // In that case we just emit it as an RDF list with a single element.\n const listValueContainer = '@list' in Util_1.Util.getContextValueContainer(context, key);\n if (listValueContainer || value['@list']) {\n if (((listValueContainer && !Array.isArray(value) && !value['@list'])\n || (value['@list'] && !Array.isArray(value['@list'])))\n && object !== util.rdfNil) {\n const listPointer = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfRest, util.rdfNil, util.getDefaultGraph()));\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfFirst, object, util.getDefaultGraph()));\n object = listPointer;\n }\n // Lists are not allowed in @reverse'd properties\n if (reverse && !parsingContext.allowSubjectList) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal list value in subject position at ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n }\n await EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation);\n }\n }\n }\n }\n}\nexports.EntryHandlerPredicate = EntryHandlerPredicate;\n//# sourceMappingURL=EntryHandlerPredicate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeyword = void 0;\n/**\n * An abstract keyword entry handler.\n */\nclass EntryHandlerKeyword {\n constructor(keyword) {\n this.keyword = keyword;\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return key === this.keyword;\n }\n}\nexports.EntryHandlerKeyword = EntryHandlerKeyword;\n//# sourceMappingURL=EntryHandlerKeyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordAnnotation = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Handles @annotation entries.\n */\nclass EntryHandlerKeywordAnnotation extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@annotation');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Validate value\n if (typeof value === 'string' || (typeof value === 'object' && value['@value'])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal annotation value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Rest of the processing is done as regular nodes\n }\n}\nexports.EntryHandlerKeywordAnnotation = EntryHandlerKeywordAnnotation;\n//# sourceMappingURL=EntryHandlerKeywordAnnotation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @context entries.\n */\nclass EntryHandlerKeywordContext extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@context');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Error if an out-of-order context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (parsingContext.processingStack[depth]\n || parsingContext.processingType[depth]\n || parsingContext.idStack[depth] !== undefined)) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // Find the parent context to inherit from.\n // We actually request a context for the current depth (with fallback to parent)\n // because we want to take into account any property-scoped contexts that are defined for this depth.\n const parentContext = parsingContext.getContext(keys);\n // Set the context for this scope\n const context = parsingContext.parseContext(value, (await parentContext).getContextRaw());\n parsingContext.contextTree.setContext(keys.slice(0, -1), context);\n parsingContext.emitContext(value);\n await parsingContext.validateContext(await context);\n }\n}\nexports.EntryHandlerKeywordContext = EntryHandlerKeywordContext;\n//# sourceMappingURL=EntryHandlerKeywordContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordGraph = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordGraph extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@graph');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // The current identifier identifies a graph for the deeper level.\n parsingContext.graphStack[depth + 1] = true;\n }\n}\nexports.EntryHandlerKeywordGraph = EntryHandlerKeywordGraph;\n//# sourceMappingURL=EntryHandlerKeywordGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordId = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @id entries.\n */\nclass EntryHandlerKeywordId extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@id');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'string') {\n // JSON-LD-star allows @id object values\n if (parsingContext.rdfstar && typeof value === 'object') {\n const valueKeys = Object.keys(value);\n if (valueKeys.length === 1 && valueKeys[0] === '@id') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid embedded node without property with @id ${value['@id']}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE));\n }\n }\n else {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE));\n }\n return;\n }\n // Determine the canonical place for this id.\n // For example, @nest parents should be ignored.\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n // Error if an @id for this node already existed.\n if (parsingContext.idStack[depthProperties] !== undefined) {\n if (parsingContext.idStack[depthProperties][0].listHead) {\n // Error if an @list was already defined for this node\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${keys[depth - 1]}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT));\n }\n else {\n // Otherwise, the previous id was just because of an @id entry.\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found duplicate @ids '${parsingContext\n .idStack[depthProperties][0].value}' and '${value}'`, jsonld_context_parser_1.ERROR_CODES.COLLIDING_KEYWORDS));\n }\n }\n // Error if an annotation was defined\n if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n for (const annotation of parsingContext.annotationsBuffer[depth]) {\n if (annotation.depth === depth) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n }\n // Save our @id on the stack\n parsingContext.idStack[depthProperties] = util.nullableTermToArray(await util.resourceToTerm(await parsingContext.getContext(keys), value));\n }\n}\nexports.EntryHandlerKeywordId = EntryHandlerKeywordId;\n//# sourceMappingURL=EntryHandlerKeywordId.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordIncluded = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @included entries.\n */\nclass EntryHandlerKeywordIncluded extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@included');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @included '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n const valueUnliased = await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys));\n if ('@value' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n if ('@list' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordIncluded = EntryHandlerKeywordIncluded;\n//# sourceMappingURL=EntryHandlerKeywordIncluded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordNest = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @nest entries.\n */\nclass EntryHandlerKeywordNest extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@nest');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found invalid @nest entry for '${key}': '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n if ('@value' in await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys))) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an invalid @value node for '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordNest = EntryHandlerKeywordNest;\n//# sourceMappingURL=EntryHandlerKeywordNest.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordType = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../../Util\");\nconst EntryHandlerPredicate_1 = require(\"../EntryHandlerPredicate\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordType extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@type');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keyOriginal = keys[depth];\n // The current identifier identifies an rdf:type predicate.\n // But we only emit it once the node closes,\n // as it's possible that the @type is used to identify the datatype of a literal, which we ignore here.\n const context = await parsingContext.getContext(keys);\n const predicate = util.rdfType;\n const parentKey = await util.unaliasKeywordParent(keys, depth);\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n // Handle multiple values if the value is an array\n const elements = Array.isArray(value) ? value : [value];\n for (const element of elements) {\n if (typeof element !== 'string') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @type '${element}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPE_VALUE));\n }\n const type = util.createVocabOrBaseTerm(context, element);\n if (type) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, type, reverse, isEmbedded, isAnnotation);\n }\n }\n // Collect type-scoped contexts if they exist\n let scopedContext = Promise.resolve(context);\n let hasTypedScopedContext = false;\n for (const element of elements.sort()) { // Spec requires lexicographical ordering\n const typeContext = Util_1.Util.getContextValue(context, '@context', element, null);\n if (typeContext) {\n hasTypedScopedContext = true;\n scopedContext = scopedContext.then((c) => parsingContext.parseContext(typeContext, c.getContextRaw()));\n }\n }\n // Error if an out-of-order type-scoped context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (hasTypedScopedContext || !parsingContext.streamingProfileAllowOutOfOrderPlainType)\n && (parsingContext.processingStack[depth] || parsingContext.idStack[depth])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order type-scoped context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // If at least least one type-scoped context applies, set them in the tree.\n if (hasTypedScopedContext) {\n // Do not propagate by default\n scopedContext = scopedContext.then((c) => {\n // Set the original context at this depth as a fallback\n // This is needed when a context was already defined at the given depth,\n // and this context needs to remain accessible from child nodes when propagation is disabled.\n if (c.getContextRaw()['@propagate'] !== true) {\n return new jsonld_context_parser_1.JsonLdContextNormalized(Object.assign(Object.assign({}, c.getContextRaw()), { '@propagate': false, '@__propagateFallback': context.getContextRaw() }));\n }\n return c;\n });\n // Set the new context in the context tree\n parsingContext.contextTree.setContext(keys.slice(0, keys.length - 1), scopedContext);\n }\n // Flag that type has been processed at this depth\n parsingContext.processingType[depth] = true;\n }\n}\nexports.EntryHandlerKeywordType = EntryHandlerKeywordType;\n//# sourceMappingURL=EntryHandlerKeywordType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordUnknownFallback = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * A catch-all for keywords, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerKeywordUnknownFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = await util.unaliasKeyword(keys[depth], keys, depth);\n if (jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n // Don't emit anything inside free-floating lists\n if (!inProperty) {\n if (key === '@list') {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return jsonld_context_parser_1.Util.isPotentialKeyword(key);\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keywordType = EntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES[key];\n if (keywordType !== undefined) {\n if (keywordType && typeof value !== keywordType.type) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid value type for '${key}' with value '${value}'`, keywordType.errorCode));\n }\n }\n else if (parsingContext.strictValues) {\n parsingContext.emitError(new Error(`Unknown keyword '${key}' with value '${value}'`));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nEntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES = {\n '@index': { type: 'string', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE },\n '@list': null,\n '@reverse': { type: 'object', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_VALUE },\n '@set': null,\n '@value': null,\n};\nexports.EntryHandlerKeywordUnknownFallback = EntryHandlerKeywordUnknownFallback;\n//# sourceMappingURL=EntryHandlerKeywordUnknownFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordValue = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @value entries.\n */\nclass EntryHandlerKeywordValue extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@value');\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n // If this is @value, mark it so in the stack so that no deeper handling of nodes occurs.\n const key = keys[depth];\n if (key && !parsingContext.literalStack[depth] && await this.test(parsingContext, util, key, keys, depth)) {\n parsingContext.literalStack[depth] = true;\n }\n return super.validate(parsingContext, util, keys, depth, inProperty);\n }\n async test(parsingContext, util, key, keys, depth) {\n return await util.unaliasKeyword(keys[depth], keys.slice(0, keys.length - 1), depth - 1, true) === '@value';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // If the value is valid, indicate that we are processing a literal.\n // The actual value will be determined at the parent level when the @value is part of an object,\n // because we may want to take into account additional entries such as @language.\n // See {@link Util.valueToTerm}\n // Indicate that we are processing a literal, and that no later predicates should be parsed at this depth.\n parsingContext.literalStack[depth] = true;\n // Void any buffers that we may have accumulated up until now\n delete parsingContext.unidentifiedValuesBuffer[depth];\n delete parsingContext.unidentifiedGraphsBuffer[depth];\n // Indicate that we have not emitted at this depth\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordValue = EntryHandlerKeywordValue;\n//# sourceMappingURL=EntryHandlerKeywordValue.js.map","/* jshint esversion: 6 */\n/* jslint node: true */\n'use strict';\n\nmodule.exports = function serialize (object) {\n if (object === null || typeof object !== 'object' || object.toJSON != null) {\n return JSON.stringify(object);\n }\n\n if (Array.isArray(object)) {\n return '[' + object.reduce((t, cv, ci) => {\n const comma = ci === 0 ? '' : ',';\n const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n return t + comma + serialize(value);\n }, '') + ']';\n }\n\n return '{' + Object.keys(object).sort().reduce((t, cv, ci) => {\n if (object[cv] === undefined ||\n typeof object[cv] === 'symbol') {\n return t;\n }\n const comma = t.length === 0 ? '' : ',';\n return t + comma + serialize(cv) + ':' + serialize(object[cv]);\n }, '') + '}';\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/JsonLdSerializer\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonLdSerializer = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst SeparatorType_1 = require(\"./SeparatorType\");\nconst Util_1 = require(\"./Util\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A stream transformer that transforms an {@link RDF.Stream} into a JSON-LD (text) stream.\n */\nclass JsonLdSerializer extends readable_stream_1.Transform {\n constructor(options = {}) {\n super({ objectMode: true });\n this.indentation = 0;\n this.options = options;\n // Parse the context\n if (this.options.baseIRI && !this.options.context) {\n this.options.context = { '@base': this.options.baseIRI };\n }\n if (this.options.context) {\n this.originalContext = this.options.context;\n this.context = new jsonld_context_parser_1.ContextParser().parse(this.options.context, { baseIRI: this.options.baseIRI });\n }\n else {\n this.context = Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized({}));\n }\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {NodeJS.EventEmitter} A quad stream.\n */\n import(stream) {\n const output = new readable_stream_1.PassThrough({ objectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new JsonLdSerializer(this.options));\n return parsed;\n }\n /**\n * Transforms a quad into the text stream.\n * @param {Quad} quad An RDF quad.\n * @param {string} encoding An (ignored) encoding.\n * @param {module:stream.internal.TransformCallback} callback Callback that is invoked when the transformation is done\n * @private\n */\n _transform(quad, encoding, callback) {\n this.context.then((context) => {\n this.transformQuad(quad, context);\n callback();\n }).catch(callback);\n }\n /**\n * Construct a list in an RDF.Term object that can be used\n * inside a quad's object to write into the serializer\n * as a list using the @list keyword.\n * @param {RDF.Quad_Object[]} values A list of values, can be empty.\n * @return {RDF.Quad_Object} A term that should be used in the object position of the quad that is written to the serializer.\n */\n async list(values) {\n const context = await this.context;\n return {\n '@list': values.map((value) => Util_1.Util.termToValue(value, context, this.options)),\n };\n }\n /**\n * Called when the incoming stream is closed.\n * @param {module:stream.internal.TransformCallback} callback Callback that is invoked when the flushing is done.\n * @private\n */\n _flush(callback) {\n // If the stream was empty, ensure that we push the opening array\n if (!this.opened) {\n this.pushDocumentStart();\n }\n if (this.lastPredicate) {\n this.endPredicate();\n }\n if (this.lastSubject) {\n this.endSubject();\n }\n if (this.lastGraph && this.lastGraph.termType !== 'DefaultGraph') {\n this.endGraph();\n }\n this.endDocument();\n return callback(null, null);\n }\n /**\n * Transforms a quad into the text stream.\n * @param {Quad} quad An RDF quad.\n * @param {JsonLdContextNormalized} context A context for compacting.\n */\n transformQuad(quad, context) {\n // Open the array before the first quad\n if (!this.opened) {\n this.pushDocumentStart();\n }\n // Check if the subject equals the last named graph\n // In that case, we can reuse the already-existing @id node\n const lastGraphMatchesSubject = this.lastGraph && this.lastGraph.termType !== 'DefaultGraph'\n && this.lastGraph.equals(quad.subject);\n // Write graph\n if (!lastGraphMatchesSubject && (!this.lastGraph || !quad.graph.equals(this.lastGraph))) {\n // Check if the named graph equals the last subject\n // In that case, we can reuse the already-existing @id node\n let lastSubjectMatchesGraph = quad.graph.termType !== 'DefaultGraph'\n && this.lastSubject && this.lastSubject.equals(quad.graph);\n if (this.lastGraph) {\n if (this.lastGraph.termType !== 'DefaultGraph') {\n // The last graph was named\n this.endPredicate();\n this.endSubject();\n this.endGraph(true);\n lastSubjectMatchesGraph = false; // Special-case to avoid deeper nesting\n }\n else {\n // The last graph was default\n if (!lastSubjectMatchesGraph) {\n this.endPredicate();\n this.endSubject(true);\n }\n else {\n this.endPredicate(true);\n this.lastSubject = null;\n }\n }\n }\n // Push the graph\n if (quad.graph.termType !== 'DefaultGraph') {\n if (!lastSubjectMatchesGraph) {\n this.pushId(quad.graph, true, context);\n }\n this.pushSeparator(this.options.space\n ? SeparatorType_1.SeparatorType.GRAPH_FIELD_NONCOMPACT : SeparatorType_1.SeparatorType.GRAPH_FIELD_COMPACT);\n this.indentation++;\n }\n this.lastGraph = quad.graph;\n }\n // Write subject\n if (!this.lastSubject || !quad.subject.equals(this.lastSubject)) {\n if (lastGraphMatchesSubject) {\n this.endPredicate();\n this.endSubject();\n this.indentation--;\n this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_END_COMMA);\n this.lastGraph = quad.graph;\n }\n else {\n if (this.lastSubject) {\n this.endPredicate();\n this.endSubject(true);\n }\n // Open a new node for the new subject\n this.pushId(quad.subject, true, context);\n }\n this.lastSubject = quad.subject;\n }\n // Write predicate\n if (!this.lastPredicate || !quad.predicate.equals(this.lastPredicate)) {\n if (this.lastPredicate) {\n this.endPredicate(true);\n }\n // Open a new array for the new predicate\n this.pushPredicate(quad.predicate, context);\n }\n // Write the object value\n this.pushObject(quad.object, context);\n }\n pushDocumentStart() {\n this.opened = true;\n if (this.originalContext && !this.options.excludeContext) {\n this.pushSeparator(SeparatorType_1.SeparatorType.OBJECT_START);\n this.indentation++;\n this.pushSeparator(SeparatorType_1.SeparatorType.CONTEXT_FIELD);\n this.pushIndented(JSON.stringify(this.originalContext, null, this.options.space) + ',');\n this.pushSeparator(this.options.space\n ? SeparatorType_1.SeparatorType.GRAPH_FIELD_NONCOMPACT : SeparatorType_1.SeparatorType.GRAPH_FIELD_COMPACT);\n this.indentation++;\n }\n else {\n this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_START);\n this.indentation++;\n }\n }\n /**\n * Push the given term as an @id field.\n * @param {Term} term An RDF term.\n * @param startOnNewLine If `{` should start on a new line\n * @param {JsonLdContextNormalized} context The context.\n */\n pushId(term, startOnNewLine, context) {\n if (term.termType === 'Quad') {\n this.pushNestedQuad(term, true, context);\n }\n else {\n const subjectValue = term.termType === 'BlankNode'\n ? '_:' + term.value : context.compactIri(term.value, false);\n if (startOnNewLine) {\n this.pushSeparator(SeparatorType_1.SeparatorType.OBJECT_START);\n }\n else {\n this.push(SeparatorType_1.SeparatorType.OBJECT_START.label);\n if (this.options.space) {\n this.push('\\n');\n }\n }\n this.indentation++;\n this.pushIndented(this.options.space ? `\"@id\": \"${subjectValue}\",` : `\"@id\":\"${subjectValue}\",`);\n }\n }\n /**\n * Push the given predicate field.\n * @param {Term} predicate An RDF term.\n * @param {JsonLdContextNormalized} context The context.\n */\n pushPredicate(predicate, context) {\n let property = predicate.value;\n // Convert rdf:type into @type if not disabled.\n if (!this.options.useRdfType && property === Util_1.Util.RDF_TYPE) {\n property = '@type';\n this.objectOptions = Object.assign(Object.assign({}, this.options), { compactIds: true, vocab: true });\n }\n // Open array for following objects\n const compactedProperty = context.compactIri(property, true);\n this.pushIndented(this.options.space ? `\"${compactedProperty}\": [` : `\"${compactedProperty}\":[`);\n this.indentation++;\n this.lastPredicate = predicate;\n }\n /**\n * Push the given object value.\n * @param {Term} object An RDF term.\n * @param {JsonLdContextNormalized} context The context.\n */\n pushObject(object, context) {\n // Add a comma if we already had an object for this predicate\n if (!this.hadObjectForPredicate) {\n this.hadObjectForPredicate = true;\n }\n else {\n this.pushSeparator(SeparatorType_1.SeparatorType.COMMA);\n }\n // Handle nested quad\n if (object.termType === 'Quad') {\n const lastLastSubject = this.lastSubject;\n const lastLastPredicate = this.lastPredicate;\n this.hadObjectForPredicate = false;\n this.pushNestedQuad(object, false, context);\n this.endSubject(false); // Terminate identifier node of nested quad again, since we won't attach additional information to it.\n this.hadObjectForPredicate = true;\n this.lastPredicate = lastLastPredicate;\n this.lastSubject = lastLastSubject;\n return;\n }\n // Convert the object into a value and push it\n let value;\n try {\n if (object['@list']) {\n value = object;\n }\n else {\n value = Util_1.Util.termToValue(object, context, this.objectOptions || this.options);\n }\n }\n catch (e) {\n return this.emit('error', e);\n }\n this.pushIndented(JSON.stringify(value, null, this.options.space));\n }\n pushNestedQuad(nestedQuad, commaAfterSubject, context) {\n // Start a nested quad\n this.pushSeparator(SeparatorType_1.SeparatorType.OBJECT_START);\n this.indentation++;\n this.pushIndented(this.options.space ? `\"@id\": ` : `\"@id\":`, false);\n // Print the nested quad\n if (nestedQuad.graph.termType !== 'DefaultGraph') {\n this.emit('error', new Error(`Found a nested quad with the non-default graph: ${nestedQuad.graph.value}`));\n }\n this.pushId(nestedQuad.subject, false, context);\n this.pushPredicate(nestedQuad.predicate, context);\n this.pushObject(nestedQuad.object, context);\n this.endPredicate(false);\n this.endSubject(commaAfterSubject);\n }\n endDocument() {\n this.opened = false;\n if (this.originalContext && !this.options.excludeContext) {\n this.indentation--;\n this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_END);\n this.indentation--;\n this.pushSeparator(SeparatorType_1.SeparatorType.OBJECT_END);\n }\n else {\n this.indentation--;\n this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_END);\n }\n }\n /**\n * Push the end of a predicate and reset the buffers.\n * @param {boolean} comma If a comma should be appended.\n */\n endPredicate(comma) {\n // Close the predicate array\n this.indentation--;\n this.pushSeparator(comma ? SeparatorType_1.SeparatorType.ARRAY_END_COMMA : SeparatorType_1.SeparatorType.ARRAY_END);\n // Reset object buffer\n this.hadObjectForPredicate = false;\n this.objectOptions = null;\n // Reset predicate buffer\n this.lastPredicate = null;\n }\n /**\n * Push the end of a subject and reset the buffers.\n * @param {boolean} comma If a comma should be appended.\n */\n endSubject(comma) {\n // Close the last subject's node;\n this.indentation--;\n this.pushSeparator(comma ? SeparatorType_1.SeparatorType.OBJECT_END_COMMA : SeparatorType_1.SeparatorType.OBJECT_END);\n // Reset subject buffer\n this.lastSubject = null;\n }\n /**\n * Push the end of a graph and reset the buffers.\n * @param {boolean} comma If a comma should be appended.\n */\n endGraph(comma) {\n // Close the graph array\n this.indentation--;\n this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_END);\n // Close the graph id node\n this.indentation--;\n this.pushSeparator(comma ? SeparatorType_1.SeparatorType.OBJECT_END_COMMA : SeparatorType_1.SeparatorType.OBJECT_END);\n // Reset graph buffer\n this.lastGraph = null;\n }\n /**\n * Puh the given separator.\n * @param {SeparatorType} type A type of separator.\n */\n pushSeparator(type) {\n this.pushIndented(type.label);\n }\n /**\n * An indentation-aware variant of {@link #push}.\n * All strings that are pushed here will be prefixed by {@link #indentation} amount of spaces.\n * @param {string} data A string.\n * @param pushNewLine If a newline should be pushed afterwards.\n */\n pushIndented(data, pushNewLine = true) {\n const prefix = this.getIndentPrefix();\n const lines = data.split('\\n').map((line) => prefix + line).join('\\n');\n this.push(lines);\n if (this.options.space && pushNewLine) {\n this.push('\\n');\n }\n }\n /**\n * @return {string} Get the current indentation prefix based on {@link #indentation}.\n */\n getIndentPrefix() {\n return this.options.space ? this.options.space.repeat(this.indentation) : '';\n }\n}\nexports.JsonLdSerializer = JsonLdSerializer;\n//# sourceMappingURL=JsonLdSerializer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeparatorType = void 0;\n/**\n * A type of JSON separator.\n */\nclass SeparatorType {\n constructor(label) {\n this.label = label;\n }\n}\nexports.SeparatorType = SeparatorType;\nSeparatorType.COMMA = new SeparatorType(',');\nSeparatorType.OBJECT_START = new SeparatorType('{');\nSeparatorType.OBJECT_END = new SeparatorType('}');\nSeparatorType.OBJECT_END_COMMA = new SeparatorType('},');\nSeparatorType.ARRAY_START = new SeparatorType('[');\nSeparatorType.ARRAY_END = new SeparatorType(']');\nSeparatorType.ARRAY_END_COMMA = new SeparatorType('],');\nSeparatorType.GRAPH_FIELD_NONCOMPACT = new SeparatorType('\"@graph\": [');\nSeparatorType.GRAPH_FIELD_COMPACT = new SeparatorType('\"@graph\":[');\nSeparatorType.CONTEXT_FIELD = new SeparatorType('\"@context\":');\n//# sourceMappingURL=SeparatorType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Utility functions and methods.\n */\nclass Util {\n /**\n * Convert an RDF term to a JSON value.\n * @param {Term} term An RDF term.\n * @param {JsonLdContextNormalized} context The context.\n * @param {ITermToValueOptions} options Conversion options.\n * @return {any} A JSON value.\n */\n static termToValue(term, context, options = {\n compactIds: false,\n useNativeTypes: false,\n }) {\n switch (term.termType) {\n case 'NamedNode':\n const compacted = context.compactIri(term.value, options.vocab);\n return options.compactIds ? compacted : { '@id': compacted };\n case 'DefaultGraph':\n return options.compactIds ? term.value : { '@id': term.value };\n case 'BlankNode':\n const id = `_:${term.value}`;\n return options.compactIds ? id : { '@id': id };\n case 'Literal':\n // Handle JSON datatype\n if (term.datatype.value === Util.RDF_JSON) {\n let parsedJson;\n try {\n parsedJson = JSON.parse(term.value);\n }\n catch (e) {\n throw new jsonld_context_parser_1.ErrorCoded('Invalid JSON literal: ' + e.message, jsonld_context_parser_1.ERROR_CODES.INVALID_JSON_LITERAL);\n }\n return {\n '@value': parsedJson,\n '@type': '@json',\n };\n }\n // Handle rdfDirection: i18n-datatype\n if (options.rdfDirection === 'i18n-datatype' && term.datatype.value.startsWith(Util.I18N)) {\n const [language, direction] = term.datatype.value\n .substr(Util.I18N.length, term.datatype.value.length)\n .split('_');\n return Object.assign(Object.assign({ '@value': term.value }, language ? { '@language': language } : {}), direction ? { '@direction': direction } : {});\n }\n const stringType = term.datatype.value === Util.XSD_STRING;\n const rawValue = {\n '@value': !stringType && options.useNativeTypes\n ? Util.stringToNativeType(term.value, term.datatype.value) : term.value,\n };\n if (term.language) {\n return Object.assign(Object.assign({}, rawValue), { '@language': term.language });\n }\n else if (!stringType && typeof rawValue['@value'] === 'string') {\n return Object.assign(Object.assign({}, rawValue), { '@type': term.datatype.value });\n }\n else {\n return rawValue;\n }\n }\n }\n /**\n * Convert a string term to a native type.\n * If no conversion is possible, the original string will be returned.\n * @param {string} value An RDF term's string value.\n * @param {string} type\n * @return {any}\n */\n static stringToNativeType(value, type) {\n if (type.startsWith(Util.XSD)) {\n const xsdType = type.substr(Util.XSD.length);\n switch (xsdType) {\n case 'boolean':\n if (value === 'true') {\n return true;\n }\n else if (value === 'false') {\n return false;\n }\n throw new Error(`Invalid xsd:boolean value '${value}'`);\n case 'integer':\n case 'number':\n case 'int':\n case 'byte':\n case 'long':\n const parsedInt = parseInt(value, 10);\n if (isNaN(parsedInt)) {\n throw new Error(`Invalid xsd:integer value '${value}'`);\n }\n return parsedInt;\n case 'float':\n case 'double':\n const parsedFloat = parseFloat(value);\n if (isNaN(parsedFloat)) {\n throw new Error(`Invalid xsd:float value '${value}'`);\n }\n return parsedFloat;\n }\n }\n return value;\n }\n}\nexports.Util = Util;\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_STRING = Util.XSD + 'string';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nUtil.RDF_TYPE = Util.RDF + 'type';\nUtil.RDF_JSON = Util.RDF + 'JSON';\nUtil.I18N = 'https://www.w3.org/ns/i18n#';\n//# sourceMappingURL=Util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/propertyhandler/IItemPropertyHandler\"), exports);\n__exportStar(require(\"./lib/propertyhandler/ItemPropertyHandlerContent\"), exports);\n__exportStar(require(\"./lib/propertyhandler/ItemPropertyHandlerNumber\"), exports);\n__exportStar(require(\"./lib/propertyhandler/ItemPropertyHandlerTime\"), exports);\n__exportStar(require(\"./lib/propertyhandler/ItemPropertyHandlerUrl\"), exports);\n__exportStar(require(\"./lib/IHtmlParseListener\"), exports);\n__exportStar(require(\"./lib/IItemScope\"), exports);\n__exportStar(require(\"./lib/IVocabRegistry\"), exports);\n__exportStar(require(\"./lib/MicrodataRdfParser\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IHtmlParseListener.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IItemScope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IVocabRegistry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MicrodataRdfParser = void 0;\nconst htmlparser2_1 = require(\"htmlparser2\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst ItemPropertyHandlerContent_1 = require(\"./propertyhandler/ItemPropertyHandlerContent\");\nconst ItemPropertyHandlerNumber_1 = require(\"./propertyhandler/ItemPropertyHandlerNumber\");\nconst ItemPropertyHandlerTime_1 = require(\"./propertyhandler/ItemPropertyHandlerTime\");\nconst ItemPropertyHandlerUrl_1 = require(\"./propertyhandler/ItemPropertyHandlerUrl\");\nconst Util_1 = require(\"./Util\");\nconst VOCAB_REGISTRY_DEFAULT = require(\"./vocab-registry-default.json\");\n/**\n * A stream transformer that parses Microdata (text) streams to an {@link RDF.Stream}.\n */\nclass MicrodataRdfParser extends readable_stream_1.Transform {\n constructor(options) {\n super({ readableObjectMode: true });\n // Stacks, where the key is the current depth.\n this.itemScopeStack = [];\n this.textBufferStack = [];\n // Variables for managing itemrefs.\n this.isEmittingReferences = false;\n this.pendingItemRefsDomain = {};\n this.pendingItemRefsRangeFinalized = {};\n // eslint-disable-next-line lines-between-class-members\n this.pendingItemRefsRangeCollecting = {};\n options = options || {};\n this.options = options;\n this.util = new Util_1.Util(options.dataFactory, options.baseIRI);\n this.defaultGraph = options.defaultGraph || this.util.dataFactory.defaultGraph();\n this.htmlParseListener = options.htmlParseListener;\n this.vocabRegistry = options.vocabRegistry || VOCAB_REGISTRY_DEFAULT;\n this.parser = this.initializeParser(!!options.xmlMode);\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new MicrodataRdfParser(this.options));\n return parsed;\n }\n _transform(chunk, encoding, callback) {\n this.parser.write(chunk.toString());\n callback();\n }\n _flush(callback) {\n this.parser.end();\n callback();\n }\n /**\n * Get the current item scope for the current depth.\n * This will skip all undefined item scopes.\n * @param parent If we should start looking one level higher in the stack.\n */\n getItemScope(parent) {\n let parentTagI = this.itemScopeStack.length - (parent ? 2 : 1);\n while (parentTagI > 0 && !this.itemScopeStack[parentTagI]) {\n parentTagI--;\n }\n return this.itemScopeStack[parentTagI];\n }\n /**\n * Get the current stack depth.\n */\n getDepth() {\n return this.itemScopeStack.length;\n }\n onTagOpen(name, attributes) {\n if (!this.isEmittingReferences) {\n // If the tag has an 'id', start collecting the whole stack in the item reference buffer\n if ('id' in attributes) {\n const id = attributes.id;\n this.pendingItemRefsRangeCollecting[id] = {\n events: [],\n counter: 0,\n ids: [],\n };\n }\n // Store this event in all collecting item reference buffers\n for (const buffer of Object.values(this.pendingItemRefsRangeCollecting)) {\n buffer.counter++;\n buffer.events.push({ type: 'open', name, attributes });\n }\n }\n // Ensure the text buffer stack is in line with the stack depth\n this.textBufferStack.push(undefined);\n // Processing steps based on https://w3c.github.io/microdata-rdf/#rdf-conversion-algorithm\n // 1. Determine the current item scope\n let itemScope;\n if ('itemscope' in attributes) {\n // Create a new item scope\n let subject;\n if (this.emittingReferencesItemScopeIdGenerator) {\n subject = this.emittingReferencesItemScopeIdGenerator();\n }\n else {\n subject = 'itemid' in attributes && this.util.createSubject(attributes.itemid) ||\n this.util.dataFactory.blankNode();\n // Store the genererated id in all collecting item reference buffers\n for (const buffer of Object.values(this.pendingItemRefsRangeCollecting)) {\n buffer.ids.push(subject);\n }\n }\n itemScope = { subject };\n // If the id was reused from a reference, block any new triples to be generated from it\n if (this.isEmittingReferences) {\n itemScope.blockEmission = true;\n }\n // Inherit vocab from parent item scope\n const parentItemScope = this.getItemScope();\n if (parentItemScope && parentItemScope.vocab) {\n itemScope.vocab = parentItemScope.vocab;\n }\n // 2. Push any changes to the item scope to the stack\n this.itemScopeStack.push(itemScope);\n }\n else {\n // Determine the parent item scope\n itemScope = this.getItemScope();\n // 2. Push any changes to the item scope to the stack\n this.itemScopeStack.push(undefined);\n }\n // If we have a valid item scope, process the current node\n if (itemScope) {\n // 3. Handle item types\n if ('itemtype' in attributes) {\n for (const type of this.util.createVocabIris(attributes.itemtype, itemScope, false)) {\n // 4. Vocab identifier is the first valid item\n if (!itemScope.vocab) {\n // 5. Modify vocab based on registry\n itemScope.vocab = this.util.deriveVocab(type.value, this.vocabRegistry);\n }\n // Emit item type\n if (!itemScope.blockEmission) {\n this.emitTriple(itemScope.subject, this.util.dataFactory.namedNode(`${Util_1.Util.RDF}type`), type);\n }\n }\n }\n // Save language in item scope\n if ('lang' in attributes) {\n itemScope.language = attributes.lang;\n }\n if ('xml:lang' in attributes) {\n itemScope.language = attributes['xml:lang'];\n }\n // Handle itemrefs (only if we also had an itemscope)\n // If we have an itemref, store it in our domain buffer.\n if ('itemscope' in attributes &&\n !this.isEmittingReferences && 'itemref' in attributes) {\n for (const reference of attributes.itemref.split(/\\s+/u)) {\n if (!(reference in this.pendingItemRefsDomain)) {\n this.pendingItemRefsDomain[reference] = [];\n }\n this.pendingItemRefsDomain[reference].push(itemScope);\n this.tryToEmitReferences(reference, itemScope);\n }\n }\n }\n // 6. Handle item properties\n if ('itemprop' in attributes) {\n this.handleItemProperties(attributes.itemprop, false, itemScope, name, attributes);\n }\n // Handle reverse item properties\n // https://w3c.github.io/microdata-rdf/#reverse-itemprop\n if ('itemprop-reverse' in attributes) {\n this.handleItemProperties(attributes['itemprop-reverse'], true, itemScope, name, attributes);\n }\n }\n onText(data) {\n // Store this event in all collecting item reference buffers\n if (!this.isEmittingReferences) {\n for (const buffer of Object.values(this.pendingItemRefsRangeCollecting)) {\n buffer.events.push({ type: 'text', data });\n }\n }\n // Save the text inside all item scopes that need to collect text\n for (const textBuffer of this.textBufferStack) {\n if (textBuffer) {\n textBuffer.push(data);\n }\n }\n }\n onTagClose() {\n // Store this event in all collecting item reference buffers\n if (!this.isEmittingReferences) {\n for (const [reference, buffer] of Object.entries(this.pendingItemRefsRangeCollecting)) {\n buffer.counter--;\n buffer.events.push({ type: 'close' });\n // Once the counter becomes zero, the tag is fully buffered, so we finalize it.\n if (buffer.counter === 0) {\n this.pendingItemRefsRangeFinalized[reference] = buffer;\n delete this.pendingItemRefsRangeCollecting[reference];\n // Try to emit this reference with buffered domain items\n this.tryToEmitReferences(reference);\n }\n }\n }\n // Emit all triples that were determined in the active tag\n const itemScope = this.getItemScope(true);\n if (itemScope) {\n const depth = this.getDepth();\n if (itemScope.predicates && depth in itemScope.predicates) {\n for (const [predicateKey, predicates] of Object.entries(itemScope.predicates[depth])) {\n // First check if we have a child item scope, otherwise get the text content\n // Safely cast textBufferStack, as it is always defined when itemScope.predicates is defined.\n const object = this.util.createLiteral(this.textBufferStack[depth].join(''), itemScope);\n this.emitPredicateTriples(itemScope, predicates, object, predicateKey === 'reverse');\n delete itemScope.predicates[depth][predicateKey];\n }\n }\n }\n // Remove the active tag from the stack\n this.itemScopeStack.pop();\n this.textBufferStack.pop();\n }\n onEnd() {\n // Nothing important should happen here.\n }\n /**\n * Initialize a new HtmlParser.\n * @param xmlMode If the parser should be setup in strict mode.\n */\n initializeParser(xmlMode) {\n return new htmlparser2_1.Parser({\n onclosetag: () => {\n try {\n this.onTagClose();\n if (this.htmlParseListener) {\n this.htmlParseListener.onTagClose();\n }\n }\n catch (error) {\n this.emit('error', error);\n }\n },\n onend: () => {\n try {\n this.onEnd();\n if (this.htmlParseListener) {\n this.htmlParseListener.onEnd();\n }\n }\n catch (error) {\n this.emit('error', error);\n }\n },\n onopentag: (name, attributes) => {\n try {\n this.onTagOpen(name, attributes);\n if (this.htmlParseListener) {\n this.htmlParseListener.onTagOpen(name, attributes);\n }\n }\n catch (error) {\n this.emit('error', error);\n }\n },\n ontext: (data) => {\n try {\n this.onText(data);\n if (this.htmlParseListener) {\n this.htmlParseListener.onText(data);\n }\n }\n catch (error) {\n this.emit('error', error);\n }\n },\n }, {\n decodeEntities: true,\n recognizeSelfClosing: true,\n xmlMode,\n });\n }\n /**\n * Handle the given item properties.\n * @param itempropValue The value of itemprop or itemprop-reverse.\n * @param reverse If the item properties are reversed (itemprop-reverse).\n * @param itemScope The current item scope.\n * @param tagName The current tag name.\n * @param tagAttributes The current tag attributes.\n */\n handleItemProperties(itempropValue, reverse, itemScope, tagName, tagAttributes) {\n const parentItemScope = this.getItemScope(true);\n if (parentItemScope) {\n // Set predicates in the scope, and handle them on tag close.\n const depth = this.getDepth();\n const predicates = this.util.createVocabIris(itempropValue, parentItemScope, true);\n if (!parentItemScope.predicates) {\n parentItemScope.predicates = {};\n }\n if (!parentItemScope.predicates[depth]) {\n parentItemScope.predicates[depth] = {};\n }\n const predicatesKey = reverse ? 'reverse' : 'forward';\n parentItemScope.predicates[depth][predicatesKey] = predicates;\n // Append rdf:type predicate if vocabulary expansion applies\n for (const vocabularyExpansionType of this.util.getVocabularyExpansionType(itempropValue, parentItemScope, this.vocabRegistry)) {\n predicates.push(vocabularyExpansionType);\n }\n // Check if a property handler that applies, forcefully use that as predicate value.\n // But DON'T call handlers in this prop is a direct (nested) itemscope.\n if (itemScope && 'itemscope' in tagAttributes) {\n this.emitPredicateTriples(parentItemScope, predicates, itemScope.subject, reverse);\n // Finalize the predicates, so text values do not apply to them.\n delete parentItemScope.predicates[depth][predicatesKey];\n }\n else {\n for (const handler of MicrodataRdfParser.ITEM_PROPERTY_HANDLERS) {\n if (handler.canHandle(tagName, tagAttributes)) {\n const object = handler.getObject(tagAttributes, this.util, parentItemScope);\n this.emitPredicateTriples(parentItemScope, predicates, object, reverse);\n // Finalize the predicates, so text values do not apply to them.\n delete parentItemScope.predicates[depth][predicatesKey];\n }\n }\n }\n // If no valid handler was found, indicate that we should collect text at this depth.\n if (parentItemScope.predicates[depth][predicatesKey]) {\n this.textBufferStack[depth] = [];\n }\n }\n }\n /**\n * Emit the given object for the given predicates.\n * @param itemScope The current item scope.\n * @param predicates An array of predicates.\n * @param object An object.\n * @param reverse If the triples should be reversed.\n */\n emitPredicateTriples(itemScope, predicates, object, reverse) {\n if (!itemScope.blockEmission) {\n for (const predicate of predicates) {\n if (reverse) {\n // Literals can not exist in subject position, so they must be ignored.\n if (object.termType !== 'Literal') {\n this.emitTriple(object, predicate, itemScope.subject);\n }\n }\n else {\n this.emitTriple(itemScope.subject, predicate, object);\n }\n }\n }\n }\n /**\n * Emit the given triple to the stream.\n * @param {Quad_Subject} subject A subject term.\n * @param {Quad_Predicate} predicate A predicate term.\n * @param {Quad_Object} object An object term.\n */\n emitTriple(subject, predicate, object) {\n this.push(this.util.dataFactory.quad(subject, predicate, object, this.defaultGraph));\n }\n /**\n * Attempt to emit all pending itemrefs for the given reference.\n * @param reference An item reference id.\n * @param itemScopeDomain An optional item scope. If defined, only refs from this scope will be emitted.\n */\n tryToEmitReferences(reference, itemScopeDomain) {\n const range = this.pendingItemRefsRangeFinalized[reference];\n if (range) {\n // Determine the item scope domains to emit\n let applicableItemScopes;\n if (itemScopeDomain) {\n applicableItemScopes = [itemScopeDomain];\n // Remove the item from the pending array\n // Element is guaranteed to exist in buffer\n const itemScopeDomainIndex = this.pendingItemRefsDomain[reference].indexOf(itemScopeDomain);\n this.pendingItemRefsDomain[reference].splice(itemScopeDomainIndex, 1);\n }\n else {\n applicableItemScopes = this.pendingItemRefsDomain[reference];\n // Remove all items from the pending array\n delete this.pendingItemRefsDomain[reference];\n }\n if (applicableItemScopes) {\n // Save the stack state\n const itemScopeStackOld = this.itemScopeStack;\n const textBufferStackOld = this.textBufferStack;\n this.isEmittingReferences = true;\n // For all applicable item scopes, emit the buffered events.\n for (const itemScope of applicableItemScopes) {\n this.itemScopeStack = [itemScope];\n this.textBufferStack = [undefined];\n const pendingIds = [...range.ids];\n this.emittingReferencesItemScopeIdGenerator = () => pendingIds.shift();\n for (const event of range.events) {\n switch (event.type) {\n case 'open':\n this.onTagOpen(event.name, event.attributes);\n break;\n case 'text':\n this.onText(event.data);\n break;\n case 'close':\n this.onTagClose();\n break;\n }\n }\n }\n // Restore the stack state\n this.emittingReferencesItemScopeIdGenerator = undefined;\n this.itemScopeStack = itemScopeStackOld;\n this.textBufferStack = textBufferStackOld;\n this.isEmittingReferences = false;\n }\n }\n }\n}\nexports.MicrodataRdfParser = MicrodataRdfParser;\nMicrodataRdfParser.ITEM_PROPERTY_HANDLERS = [\n new ItemPropertyHandlerContent_1.ItemPropertyHandlerContent(),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('a', 'href'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('area', 'href'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('audio', 'src'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('embed', 'src'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('iframe', 'src'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('img', 'src'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('link', 'href'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('object', 'data'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('source', 'src'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('track', 'src'),\n new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('video', 'src'),\n new ItemPropertyHandlerNumber_1.ItemPropertyHandlerNumber('data', 'value'),\n new ItemPropertyHandlerNumber_1.ItemPropertyHandlerNumber('meter', 'value'),\n new ItemPropertyHandlerTime_1.ItemPropertyHandlerTime(),\n];\n//# sourceMappingURL=MicrodataRdfParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * A collection of utility functions.\n */\nclass Util {\n constructor(dataFactory, baseIRI) {\n this.dataFactory = dataFactory || new rdf_data_factory_1.DataFactory();\n this.baseIRI = baseIRI || '';\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return Util.IRI_REGEX.test(iri);\n }\n /**\n * Create vocab terms for the given terms attribute.\n *\n * Relative IRIs will be based on the active vocab or baseIRI if `allowRelativeIris` is true.\n *\n * @param {string} terms An attribute value.\n * @param {IItemScope} itemScope The active item scope.\n * @param {boolean} allowRelativeIris If relative IRIs are allowed.\n * @return {Term[]} The IRI terms.\n */\n createVocabIris(terms, itemScope, allowRelativeIris) {\n return terms.split(/\\s+/u)\n .filter(term => !!term)\n .map(property => {\n if (!Util.isValidIri(property)) {\n if (!allowRelativeIris) {\n return;\n }\n property = `${itemScope.vocab || `${this.baseIRI}#`}${property}`;\n }\n return this.dataFactory.namedNode(property);\n })\n .filter(term => !!term);\n }\n /**\n * Get the predicates for which the given itemprop value should cause vocabulary expansion.\n * @param terms An attribute value.\n * @param itemScope The active item scope.\n * @param vocabRegistry The active vocabulary registry.\n */\n getVocabularyExpansionType(terms, itemScope, vocabRegistry) {\n // Check the presence of subPropertyOf or equivalentProperty\n const parts = terms.split(/\\s+/u);\n if (parts.includes('subPropertyOf') || parts.includes('equivalentProperty')) {\n return [this.dataFactory.namedNode(`${Util.RDF}type`)];\n }\n // Check in the item scope's vocab\n if (itemScope.vocab && itemScope.vocab in vocabRegistry && vocabRegistry[itemScope.vocab].properties) {\n let predicates = [];\n for (const [property, expansions] of Object\n .entries(vocabRegistry[itemScope.vocab].properties)) {\n if (parts.includes(property)) {\n predicates = [...Object.values(expansions).map(iri => this.dataFactory.namedNode(iri))];\n }\n }\n return predicates;\n }\n return [];\n }\n /**\n * Create a named node for the given term, which can be relative to the document base.\n * @param {string} iri A term string.\n * @return {Term} An RDF term, or undefined if invalid.\n */\n createSubject(iri) {\n if (!Util.isValidIri(iri)) {\n try {\n iri = (0, relative_to_absolute_iri_1.resolve)(iri, this.baseIRI);\n }\n catch (_a) {\n return;\n }\n }\n return this.dataFactory.namedNode(iri);\n }\n /**\n * Create a new literal node.\n * @param {string} literal The literal value.\n * @param {IActiveTag} activeTag The current active tag.\n * @return {Literal} A new literal node.\n */\n createLiteral(literal, activeTag) {\n return this.dataFactory.literal(literal, activeTag.language);\n }\n /**\n * Determine the vocab IRI from a given type IRI.\n * @link https://w3c.github.io/microdata-rdf/#property-uri-generation\n * @param typeIri A type IRI.\n * @param vocabRegistry The active vocabulary registry.\n */\n deriveVocab(typeIri, vocabRegistry) {\n let vocab;\n // First check if we find a prefix in the vocab registry\n for (const uriPrefix in vocabRegistry) {\n if (typeIri.startsWith(uriPrefix)) {\n vocab = uriPrefix;\n // Append fragment if prefix does not end with a slash\n if (!vocab.endsWith('/')) {\n vocab += '#';\n }\n break;\n }\n }\n // If no match was found, remove the last path segment from the URI\n if (!vocab) {\n const hashPos = typeIri.indexOf('#');\n if (hashPos > 0) {\n vocab = typeIri.slice(0, hashPos + 1);\n }\n else {\n vocab = (0, relative_to_absolute_iri_1.resolve)('.', typeIri);\n }\n }\n return vocab;\n }\n}\nexports.Util = Util;\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.RDFA = 'http://www.w3.org/ns/rdfa#';\nUtil.IRI_REGEX = /^([A-Za-z][\\d+-.A-Za-z]*|_):[^ \"<>[\\\\\\]`{|}]*$/u;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IItemPropertyHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ItemPropertyHandlerContent = void 0;\n/**\n * Handler for an item property with the 'content' attribute.\n */\nclass ItemPropertyHandlerContent {\n canHandle(tagName, attributes) {\n return 'content' in attributes;\n }\n getObject(attributes, util, itemScope) {\n return util.createLiteral(attributes.content, itemScope);\n }\n}\nexports.ItemPropertyHandlerContent = ItemPropertyHandlerContent;\n//# sourceMappingURL=ItemPropertyHandlerContent.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ItemPropertyHandlerNumber = void 0;\nconst Util_1 = require(\"../Util\");\n/**\n * Handler for an item property with a number attribute.\n */\nclass ItemPropertyHandlerNumber {\n constructor(tagName, attributeName) {\n this.tagName = tagName;\n this.attributeName = attributeName;\n }\n canHandle(tagName, attributes) {\n return this.tagName === tagName && this.attributeName in attributes;\n }\n getObject(attributes, util, itemScope) {\n const value = attributes[this.attributeName];\n let datatype;\n if (!Number.isNaN(Number.parseInt(value, 10)) && !value.includes('.')) {\n datatype = `${Util_1.Util.XSD}integer`;\n }\n else if (!Number.isNaN(Number.parseFloat(value))) {\n datatype = `${Util_1.Util.XSD}double`;\n }\n return util.dataFactory.literal(value, datatype && util.dataFactory.namedNode(datatype));\n }\n}\nexports.ItemPropertyHandlerNumber = ItemPropertyHandlerNumber;\n//# sourceMappingURL=ItemPropertyHandlerNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ItemPropertyHandlerTime = void 0;\nconst Util_1 = require(\"../Util\");\n/**\n * Handler for an item property for time tags.\n */\nclass ItemPropertyHandlerTime {\n canHandle(tagName, attributes) {\n return tagName === 'time' && 'datetime' in attributes;\n }\n getObject(attributes, util, itemScope) {\n const value = attributes.datetime;\n let datatype;\n for (const entry of ItemPropertyHandlerTime.TIME_REGEXES) {\n if (entry.regex.test(value)) {\n datatype = util.dataFactory.namedNode(Util_1.Util.XSD + entry.type);\n break;\n }\n }\n return util.dataFactory.literal(value, datatype);\n }\n}\nexports.ItemPropertyHandlerTime = ItemPropertyHandlerTime;\nItemPropertyHandlerTime.TIME_REGEXES = [\n {\n regex: /^-?P(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(\\.\\d)?S)?)?$/u,\n type: 'duration',\n },\n {\n regex: /^\\d+-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d((Z?)|([+-]\\d\\d:\\d\\d))$/u,\n type: 'dateTime',\n },\n { regex: /^\\d+-\\d\\d-\\d\\dZ?$/u, type: 'date' },\n { regex: /^\\d\\d:\\d\\d:\\d\\d((Z?)|([+-]\\d\\d:\\d\\d))$/u, type: 'time' },\n { regex: /^\\d+-\\d\\d$/u, type: 'gYearMonth' },\n { regex: /^\\d+$/u, type: 'gYear' },\n];\n//# sourceMappingURL=ItemPropertyHandlerTime.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ItemPropertyHandlerUrl = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Handler for an item property with a URL attribute.\n */\nclass ItemPropertyHandlerUrl {\n constructor(tagName, attributeName) {\n this.tagName = tagName;\n this.attributeName = attributeName;\n }\n canHandle(tagName, attributes) {\n return this.tagName === tagName && this.attributeName in attributes;\n }\n getObject(attributes, util, itemScope) {\n return util.dataFactory.namedNode((0, relative_to_absolute_iri_1.resolve)(attributes[this.attributeName], util.baseIRI));\n }\n}\nexports.ItemPropertyHandlerUrl = ItemPropertyHandlerUrl;\n//# sourceMappingURL=ItemPropertyHandlerUrl.js.map","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","const RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n XSD = 'http://www.w3.org/2001/XMLSchema#',\n SWAP = 'http://www.w3.org/2000/10/swap/';\n\nexport default {\n xsd: {\n decimal: `${XSD}decimal`,\n boolean: `${XSD}boolean`,\n double: `${XSD}double`,\n integer: `${XSD}integer`,\n string: `${XSD}string`,\n },\n rdf: {\n type: `${RDF}type`,\n nil: `${RDF}nil`,\n first: `${RDF}first`,\n rest: `${RDF}rest`,\n langString: `${RDF}langString`,\n },\n owl: {\n sameAs: 'http://www.w3.org/2002/07/owl#sameAs',\n },\n r: {\n forSome: `${SWAP}reify#forSome`,\n forAll: `${SWAP}reify#forAll`,\n },\n log: {\n implies: `${SWAP}log#implies`,\n },\n};\n","// **N3Lexer** tokenizes N3 documents.\nimport queueMicrotask from 'queue-microtask';\nimport namespaces from './IRIs';\n\nconst { xsd } = namespaces;\n\n// Regular expression and replacement string to escape N3 strings\nconst escapeSequence = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\([^])/g;\nconst escapeReplacements = {\n '\\\\': '\\\\', \"'\": \"'\", '\"': '\"',\n 'n': '\\n', 'r': '\\r', 't': '\\t', 'f': '\\f', 'b': '\\b',\n '_': '_', '~': '~', '.': '.', '-': '-', '!': '!', '$': '$', '&': '&',\n '(': '(', ')': ')', '*': '*', '+': '+', ',': ',', ';': ';', '=': '=',\n '/': '/', '?': '?', '#': '#', '@': '@', '%': '%',\n};\nconst illegalIriChars = /[\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]/;\n\nconst lineModeRegExps = {\n _iri: true,\n _unescapedIri: true,\n _simpleQuotedString: true,\n _langcode: true,\n _blank: true,\n _newline: true,\n _comment: true,\n _whitespace: true,\n _endOfFile: true,\n};\nconst invalidRegExp = /$0^/;\n\n// ## Constructor\nexport default class N3Lexer {\n constructor(options) {\n // ## Regular expressions\n // It's slightly faster to have these as properties than as in-scope variables\n this._iri = /^<((?:[^ <>{}\\\\]|\\\\[uU])+)>[ \\t]*/; // IRI with escape sequences; needs sanity check after unescaping\n this._unescapedIri = /^<([^\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]*)>[ \\t]*/; // IRI without escape sequences; no unescaping\n this._simpleQuotedString = /^\"([^\"\\\\\\r\\n]*)\"(?=[^\"])/; // string without escape sequences\n this._simpleApostropheString = /^'([^'\\\\\\r\\n]*)'(?=[^'])/;\n this._langcode = /^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\\-])/i;\n this._prefix = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:(?=[#\\s<])/;\n this._prefixed = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:((?:(?:[0-:A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])(?:(?:[\\.\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])*(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~]))?)?)(?:[ \\t]+|(?=\\.?[,;!\\^\\s#()\\[\\]\\{\\}\"'<>]))/;\n this._variable = /^\\?(?:(?:[A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?=[.,;!\\^\\s#()\\[\\]\\{\\}\"'<>])/;\n this._blank = /^_:((?:[0-9A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?:[ \\t]+|(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>]))/;\n this._number = /^[\\-+]?(?:(\\d+\\.\\d*|\\.?\\d+)[eE][\\-+]?|\\d*(\\.)?)\\d+(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>])/;\n this._boolean = /^(?:true|false)(?=[.,;\\s#()\\[\\]\\{\\}\"'<>])/;\n this._keyword = /^@[a-z]+(?=[\\s#<:])/i;\n this._sparqlKeyword = /^(?:PREFIX|BASE|GRAPH)(?=[\\s#<])/i;\n this._shortPredicates = /^a(?=[\\s#()\\[\\]\\{\\}\"'<>])/;\n this._newline = /^[ \\t]*(?:#[^\\n\\r]*)?(?:\\r\\n|\\n|\\r)[ \\t]*/;\n this._comment = /#([^\\n\\r]*)/;\n this._whitespace = /^[ \\t]+/;\n this._endOfFile = /^(?:#[^\\n\\r]*)?$/;\n options = options || {};\n\n // In line mode (N-Triples or N-Quads), only simple features may be parsed\n if (this._lineMode = !!options.lineMode) {\n this._n3Mode = false;\n // Don't tokenize special literals\n for (const key in this) {\n if (!(key in lineModeRegExps) && this[key] instanceof RegExp)\n this[key] = invalidRegExp;\n }\n }\n // When not in line mode, enable N3 functionality by default\n else {\n this._n3Mode = options.n3 !== false;\n }\n // Don't output comment tokens by default\n this._comments = !!options.comments;\n // Cache the last tested closing position of long literals\n this._literalClosingPos = 0;\n }\n\n // ## Private methods\n\n // ### `_tokenizeToEnd` tokenizes as for as possible, emitting tokens through the callback\n _tokenizeToEnd(callback, inputFinished) {\n // Continue parsing as far as possible; the loop will return eventually\n let input = this._input;\n let currentLineLength = input.length;\n while (true) {\n // Count and skip whitespace lines\n let whiteSpaceMatch, comment;\n while (whiteSpaceMatch = this._newline.exec(input)) {\n // Try to find a comment\n if (this._comments && (comment = this._comment.exec(whiteSpaceMatch[0])))\n emitToken('comment', comment[1], '', this._line, whiteSpaceMatch[0].length);\n // Advance the input\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n currentLineLength = input.length;\n this._line++;\n }\n // Skip whitespace on current line\n if (!whiteSpaceMatch && (whiteSpaceMatch = this._whitespace.exec(input)))\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n\n // Stop for now if we're at the end\n if (this._endOfFile.test(input)) {\n // If the input is finished, emit EOF\n if (inputFinished) {\n // Try to find a final comment\n if (this._comments && (comment = this._comment.exec(input)))\n emitToken('comment', comment[1], '', this._line, input.length);\n input = null;\n emitToken('eof', '', '', this._line, 0);\n }\n return this._input = input;\n }\n\n // Look for specific token types based on the first character\n const line = this._line, firstChar = input[0];\n let type = '', value = '', prefix = '',\n match = null, matchLength = 0, inconclusive = false;\n switch (firstChar) {\n case '^':\n // We need at least 3 tokens lookahead to distinguish ^^ and ^^pre:fixed\n if (input.length < 3)\n break;\n // Try to match a type\n else if (input[1] === '^') {\n this._previousMarker = '^^';\n // Move to type IRI or prefixed name\n input = input.substr(2);\n if (input[0] !== '<') {\n inconclusive = true;\n break;\n }\n }\n // If no type, it must be a path expression\n else {\n if (this._n3Mode) {\n matchLength = 1;\n type = '^';\n }\n break;\n }\n // Fall through in case the type is an IRI\n case '<':\n // Try to find a full IRI without escape sequences\n if (match = this._unescapedIri.exec(input))\n type = 'IRI', value = match[1];\n // Try to find a full IRI with escape sequences\n else if (match = this._iri.exec(input)) {\n value = this._unescape(match[1]);\n if (value === null || illegalIriChars.test(value))\n return reportSyntaxError(this);\n type = 'IRI';\n }\n // Try to find a nested triple\n else if (input.length > 1 && input[1] === '<')\n type = '<<', matchLength = 2;\n // Try to find a backwards implication arrow\n else if (this._n3Mode && input.length > 1 && input[1] === '=')\n type = 'inverse', matchLength = 2, value = '>';\n break;\n\n case '>':\n if (input.length > 1 && input[1] === '>')\n type = '>>', matchLength = 2;\n break;\n\n case '_':\n // Try to find a blank node. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a blank node.\n // Therefore, try inserting a space if we're at the end of the input.\n if ((match = this._blank.exec(input)) ||\n inputFinished && (match = this._blank.exec(`${input} `)))\n type = 'blank', prefix = '_', value = match[1];\n break;\n\n case '\"':\n // Try to find a literal without escape sequences\n if (match = this._simpleQuotedString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n break;\n\n case \"'\":\n if (!this._lineMode) {\n // Try to find a literal without escape sequences\n if (match = this._simpleApostropheString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n }\n break;\n\n case '?':\n // Try to find a variable\n if (this._n3Mode && (match = this._variable.exec(input)))\n type = 'var', value = match[0];\n break;\n\n case '@':\n // Try to find a language code\n if (this._previousMarker === 'literal' && (match = this._langcode.exec(input)))\n type = 'langcode', value = match[1];\n // Try to find a keyword\n else if (match = this._keyword.exec(input))\n type = match[0];\n break;\n\n case '.':\n // Try to find a dot as punctuation\n if (input.length === 1 ? inputFinished : (input[1] < '0' || input[1] > '9')) {\n type = '.';\n matchLength = 1;\n break;\n }\n // Fall through to numerical case (could be a decimal dot)\n\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n case '+':\n case '-':\n // Try to find a number. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a number.\n // Therefore, try inserting a space if we're at the end of the input.\n if (match = this._number.exec(input) ||\n inputFinished && (match = this._number.exec(`${input} `))) {\n type = 'literal', value = match[0];\n prefix = (typeof match[1] === 'string' ? xsd.double :\n (typeof match[2] === 'string' ? xsd.decimal : xsd.integer));\n }\n break;\n\n case 'B':\n case 'b':\n case 'p':\n case 'P':\n case 'G':\n case 'g':\n // Try to find a SPARQL-style keyword\n if (match = this._sparqlKeyword.exec(input))\n type = match[0].toUpperCase();\n else\n inconclusive = true;\n break;\n\n case 'f':\n case 't':\n // Try to match a boolean\n if (match = this._boolean.exec(input))\n type = 'literal', value = match[0], prefix = xsd.boolean;\n else\n inconclusive = true;\n break;\n\n case 'a':\n // Try to find an abbreviated predicate\n if (match = this._shortPredicates.exec(input))\n type = 'abbreviation', value = 'a';\n else\n inconclusive = true;\n break;\n\n case '=':\n // Try to find an implication arrow or equals sign\n if (this._n3Mode && input.length > 1) {\n type = 'abbreviation';\n if (input[1] !== '>')\n matchLength = 1, value = '=';\n else\n matchLength = 2, value = '>';\n }\n break;\n\n case '!':\n if (!this._n3Mode)\n break;\n case ',':\n case ';':\n case '[':\n case ']':\n case '(':\n case ')':\n case '}':\n if (!this._lineMode) {\n matchLength = 1;\n type = firstChar;\n }\n break;\n case '{':\n // We need at least 2 tokens lookahead to distinguish \"{|\" and \"{ \"\n if (!this._lineMode && input.length >= 2) {\n // Try to find a quoted triple annotation start\n if (input[1] === '|')\n type = '{|', matchLength = 2;\n else\n type = firstChar, matchLength = 1;\n }\n break;\n case '|':\n // We need 2 tokens lookahead to parse \"|}\"\n // Try to find a quoted triple annotation end\n if (input.length >= 2 && input[1] === '}')\n type = '|}', matchLength = 2;\n break;\n\n default:\n inconclusive = true;\n }\n\n // Some first characters do not allow an immediate decision, so inspect more\n if (inconclusive) {\n // Try to find a prefix\n if ((this._previousMarker === '@prefix' || this._previousMarker === 'PREFIX') &&\n (match = this._prefix.exec(input)))\n type = 'prefix', value = match[1] || '';\n // Try to find a prefixed name. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a prefixed name.\n // Therefore, try inserting a space if we're at the end of the input.\n else if ((match = this._prefixed.exec(input)) ||\n inputFinished && (match = this._prefixed.exec(`${input} `)))\n type = 'prefixed', prefix = match[1] || '', value = this._unescape(match[2]);\n }\n\n // A type token is special: it can only be emitted after an IRI or prefixed name is read\n if (this._previousMarker === '^^') {\n switch (type) {\n case 'prefixed': type = 'type'; break;\n case 'IRI': type = 'typeIRI'; break;\n default: type = '';\n }\n }\n\n // What if nothing of the above was found?\n if (!type) {\n // We could be in streaming mode, and then we just wait for more input to arrive.\n // Otherwise, a syntax error has occurred in the input.\n // One exception: error on an unaccounted linebreak (= not inside a triple-quoted literal).\n if (inputFinished || (!/^'''|^\"\"\"/.test(input) && /\\n|\\r/.test(input)))\n return reportSyntaxError(this);\n else\n return this._input = input;\n }\n\n // Emit the parsed token\n const length = matchLength || match[0].length;\n const token = emitToken(type, value, prefix, line, length);\n this.previousToken = token;\n this._previousMarker = type;\n\n // Advance to next part to tokenize\n input = input.substr(length, input.length);\n }\n\n // Emits the token through the callback\n function emitToken(type, value, prefix, line, length) {\n const start = input ? currentLineLength - input.length : currentLineLength;\n const end = start + length;\n const token = { type, value, prefix, line, start, end };\n callback(null, token);\n return token;\n }\n // Signals the syntax error through the callback\n function reportSyntaxError(self) { callback(self._syntaxError(/^\\S*/.exec(input)[0])); }\n }\n\n // ### `_unescape` replaces N3 escape codes by their corresponding characters\n _unescape(item) {\n let invalid = false;\n const replaced = item.replace(escapeSequence, (sequence, unicode4, unicode8, escapedChar) => {\n // 4-digit unicode character\n if (typeof unicode4 === 'string')\n return String.fromCharCode(Number.parseInt(unicode4, 16));\n // 8-digit unicode character\n if (typeof unicode8 === 'string') {\n let charCode = Number.parseInt(unicode8, 16);\n return charCode <= 0xFFFF ? String.fromCharCode(Number.parseInt(unicode8, 16)) :\n String.fromCharCode(0xD800 + ((charCode -= 0x10000) >> 10), 0xDC00 + (charCode & 0x3FF));\n }\n // fixed escape sequence\n if (escapedChar in escapeReplacements)\n return escapeReplacements[escapedChar];\n // invalid escape sequence\n invalid = true;\n return '';\n });\n return invalid ? null : replaced;\n }\n\n // ### `_parseLiteral` parses a literal into an unescaped value\n _parseLiteral(input) {\n // Ensure we have enough lookahead to identify triple-quoted strings\n if (input.length >= 3) {\n // Identify the opening quote(s)\n const opening = input.match(/^(?:\"\"\"|\"|'''|'|)/)[0];\n const openingLength = opening.length;\n\n // Find the next candidate closing quotes\n let closingPos = Math.max(this._literalClosingPos, openingLength);\n while ((closingPos = input.indexOf(opening, closingPos)) > 0) {\n // Count backslashes right before the closing quotes\n let backslashCount = 0;\n while (input[closingPos - backslashCount - 1] === '\\\\')\n backslashCount++;\n\n // An even number of backslashes (in particular 0)\n // means these are actual, non-escaped closing quotes\n if (backslashCount % 2 === 0) {\n // Extract and unescape the value\n const raw = input.substring(openingLength, closingPos);\n const lines = raw.split(/\\r\\n|\\r|\\n/).length - 1;\n const matchLength = closingPos + openingLength;\n // Only triple-quoted strings can be multi-line\n if (openingLength === 1 && lines !== 0 ||\n openingLength === 3 && this._lineMode)\n break;\n this._line += lines;\n return { value: this._unescape(raw), matchLength };\n }\n closingPos++;\n }\n this._literalClosingPos = input.length - openingLength + 1;\n }\n return { value: '', matchLength: 0 };\n }\n\n // ### `_syntaxError` creates a syntax error for the given issue\n _syntaxError(issue) {\n this._input = null;\n const err = new Error(`Unexpected \"${issue}\" on line ${this._line}.`);\n err.context = {\n token: undefined,\n line: this._line,\n previousToken: this.previousToken,\n };\n return err;\n }\n\n // ### Strips off any starting UTF BOM mark.\n _readStartingBom(input) {\n return input.startsWith('\\ufeff') ? input.substr(1) : input;\n }\n\n // ## Public methods\n\n // ### `tokenize` starts the transformation of an N3 document into an array of tokens.\n // The input can be a string or a stream.\n tokenize(input, callback) {\n this._line = 1;\n\n // If the input is a string, continuously emit tokens through the callback until the end\n if (typeof input === 'string') {\n this._input = this._readStartingBom(input);\n // If a callback was passed, asynchronously call it\n if (typeof callback === 'function')\n queueMicrotask(() => this._tokenizeToEnd(callback, true));\n // If no callback was passed, tokenize synchronously and return\n else {\n const tokens = [];\n let error;\n this._tokenizeToEnd((e, t) => e ? (error = e) : tokens.push(t), true);\n if (error) throw error;\n return tokens;\n }\n }\n // Otherwise, the input must be a stream\n else {\n this._pendingBuffer = null;\n if (typeof input.setEncoding === 'function')\n input.setEncoding('utf8');\n // Adds the data chunk to the buffer and parses as far as possible\n input.on('data', data => {\n if (this._input !== null && data.length !== 0) {\n // Prepend any previous pending writes\n if (this._pendingBuffer) {\n data = Buffer.concat([this._pendingBuffer, data]);\n this._pendingBuffer = null;\n }\n // Hold if the buffer ends in an incomplete unicode sequence\n if (data[data.length - 1] & 0x80) {\n this._pendingBuffer = data;\n }\n // Otherwise, tokenize as far as possible\n else {\n // Only read a BOM at the start\n if (typeof this._input === 'undefined')\n this._input = this._readStartingBom(typeof data === 'string' ? data : data.toString());\n else\n this._input += data;\n this._tokenizeToEnd(callback, false);\n }\n }\n });\n // Parses until the end\n input.on('end', () => {\n if (typeof this._input === 'string')\n this._tokenizeToEnd(callback, true);\n });\n input.on('error', callback);\n }\n }\n}\n","// N3.js implementations of the RDF/JS core data types\n// See https://github.com/rdfjs/representation-task-force/blob/master/interface-spec.md\n\nimport namespaces from './IRIs';\n\nconst { rdf, xsd } = namespaces;\n\n// eslint-disable-next-line prefer-const\nlet DEFAULTGRAPH;\nlet _blankNodeCounter = 0;\n\nconst escapedLiteral = /^\"(.*\".*)(?=\"[^\"]*$)/;\n\n// ## DataFactory singleton\nconst DataFactory = {\n namedNode,\n blankNode,\n variable,\n literal,\n defaultGraph,\n quad,\n triple: quad,\n};\nexport default DataFactory;\n\n// ## Term constructor\nexport class Term {\n constructor(id) {\n this.id = id;\n }\n\n // ### The value of this term\n get value() {\n return this.id;\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both terms were created by this library,\n // equality can be computed through ids\n if (other instanceof Term)\n return this.id === other.id;\n // Otherwise, compare term type and value\n return !!other && this.termType === other.termType &&\n this.value === other.value;\n }\n\n // ### Implement hashCode for Immutable.js, since we implement `equals`\n // https://immutable-js.com/docs/v4.0.0/ValueObject/#hashCode()\n hashCode() {\n return 0;\n }\n\n // ### Returns a plain object representation of this term\n toJSON() {\n return {\n termType: this.termType,\n value: this.value,\n };\n }\n}\n\n\n// ## NamedNode constructor\nexport class NamedNode extends Term {\n // ### The term type of this term\n get termType() {\n return 'NamedNode';\n }\n}\n\n// ## Literal constructor\nexport class Literal extends Term {\n // ### The term type of this term\n get termType() {\n return 'Literal';\n }\n\n // ### The text value of this literal\n get value() {\n return this.id.substring(1, this.id.lastIndexOf('\"'));\n }\n\n // ### The language of this literal\n get language() {\n // Find the last quotation mark (e.g., '\"abc\"@en-us')\n const id = this.id;\n let atPos = id.lastIndexOf('\"') + 1;\n // If \"@\" it follows, return the remaining substring; empty otherwise\n return atPos < id.length && id[atPos++] === '@' ? id.substr(atPos).toLowerCase() : '';\n }\n\n // ### The datatype IRI of this literal\n get datatype() {\n return new NamedNode(this.datatypeString);\n }\n\n // ### The datatype string of this literal\n get datatypeString() {\n // Find the last quotation mark (e.g., '\"abc\"^^http://ex.org/types#t')\n const id = this.id, dtPos = id.lastIndexOf('\"') + 1;\n const char = dtPos < id.length ? id[dtPos] : '';\n // If \"^\" it follows, return the remaining substring\n return char === '^' ? id.substr(dtPos + 2) :\n // If \"@\" follows, return rdf:langString; xsd:string otherwise\n (char !== '@' ? xsd.string : rdf.langString);\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both literals were created by this library,\n // equality can be computed through ids\n if (other instanceof Literal)\n return this.id === other.id;\n // Otherwise, compare term type, value, language, and datatype\n return !!other && !!other.datatype &&\n this.termType === other.termType &&\n this.value === other.value &&\n this.language === other.language &&\n this.datatype.value === other.datatype.value;\n }\n\n toJSON() {\n return {\n termType: this.termType,\n value: this.value,\n language: this.language,\n datatype: { termType: 'NamedNode', value: this.datatypeString },\n };\n }\n}\n\n// ## BlankNode constructor\nexport class BlankNode extends Term {\n constructor(name) {\n super(`_:${name}`);\n }\n\n // ### The term type of this term\n get termType() {\n return 'BlankNode';\n }\n\n // ### The name of this blank node\n get value() {\n return this.id.substr(2);\n }\n}\n\nexport class Variable extends Term {\n constructor(name) {\n super(`?${name}`);\n }\n\n // ### The term type of this term\n get termType() {\n return 'Variable';\n }\n\n // ### The name of this variable\n get value() {\n return this.id.substr(1);\n }\n}\n\n// ## DefaultGraph constructor\nexport class DefaultGraph extends Term {\n constructor() {\n super('');\n return DEFAULTGRAPH || this;\n }\n\n // ### The term type of this term\n get termType() {\n return 'DefaultGraph';\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both terms were created by this library,\n // equality can be computed through strict equality;\n // otherwise, compare term types.\n return (this === other) || (!!other && (this.termType === other.termType));\n }\n}\n\n// ## DefaultGraph singleton\nDEFAULTGRAPH = new DefaultGraph();\n\n// ### Constructs a term from the given internal string ID\n// The third 'nested' parameter of this function is to aid\n// with recursion over nested terms. It should not be used\n// by consumers of this library.\n// See https://github.com/rdfjs/N3.js/pull/311#discussion_r1061042725\nexport function termFromId(id, factory, nested) {\n factory = factory || DataFactory;\n\n // Falsy value or empty string indicate the default graph\n if (!id)\n return factory.defaultGraph();\n\n // Identify the term type based on the first character\n switch (id[0]) {\n case '?':\n return factory.variable(id.substr(1));\n case '_':\n return factory.blankNode(id.substr(2));\n case '\"':\n // Shortcut for internal literals\n if (factory === DataFactory)\n return new Literal(id);\n // Literal without datatype or language\n if (id[id.length - 1] === '\"')\n return factory.literal(id.substr(1, id.length - 2));\n // Literal with datatype or language\n const endPos = id.lastIndexOf('\"', id.length - 1);\n return factory.literal(id.substr(1, endPos - 1),\n id[endPos + 1] === '@' ? id.substr(endPos + 2)\n : factory.namedNode(id.substr(endPos + 3)));\n case '[':\n id = JSON.parse(id);\n break;\n default:\n if (!nested || !Array.isArray(id)) {\n return factory.namedNode(id);\n }\n }\n return factory.quad(\n termFromId(id[0], factory, true),\n termFromId(id[1], factory, true),\n termFromId(id[2], factory, true),\n id[3] && termFromId(id[3], factory, true)\n );\n}\n\n// ### Constructs an internal string ID from the given term or ID string\n// The third 'nested' parameter of this function is to aid\n// with recursion over nested terms. It should not be used\n// by consumers of this library.\n// See https://github.com/rdfjs/N3.js/pull/311#discussion_r1061042725\nexport function termToId(term, nested) {\n if (typeof term === 'string')\n return term;\n if (term instanceof Term && term.termType !== 'Quad')\n return term.id;\n if (!term)\n return DEFAULTGRAPH.id;\n\n // Term instantiated with another library\n switch (term.termType) {\n case 'NamedNode': return term.value;\n case 'BlankNode': return `_:${term.value}`;\n case 'Variable': return `?${term.value}`;\n case 'DefaultGraph': return '';\n case 'Literal': return `\"${term.value}\"${\n term.language ? `@${term.language}` :\n (term.datatype && term.datatype.value !== xsd.string ? `^^${term.datatype.value}` : '')}`;\n case 'Quad':\n const res = [\n termToId(term.subject, true),\n termToId(term.predicate, true),\n termToId(term.object, true),\n ];\n if (term.graph && term.graph.termType !== 'DefaultGraph') {\n res.push(termToId(term.graph, true));\n }\n return nested ? res : JSON.stringify(res);\n default: throw new Error(`Unexpected termType: ${term.termType}`);\n }\n}\n\n\n// ## Quad constructor\nexport class Quad extends Term {\n constructor(subject, predicate, object, graph) {\n super('');\n this._subject = subject;\n this._predicate = predicate;\n this._object = object;\n this._graph = graph || DEFAULTGRAPH;\n }\n\n // ### The term type of this term\n get termType() {\n return 'Quad';\n }\n\n get subject() {\n return this._subject;\n }\n\n get predicate() {\n return this._predicate;\n }\n\n get object() {\n return this._object;\n }\n\n get graph() {\n return this._graph;\n }\n\n // ### Returns a plain object representation of this quad\n toJSON() {\n return {\n termType: this.termType,\n subject: this._subject.toJSON(),\n predicate: this._predicate.toJSON(),\n object: this._object.toJSON(),\n graph: this._graph.toJSON(),\n };\n }\n\n // ### Returns whether this object represents the same quad as the other\n equals(other) {\n return !!other && this._subject.equals(other.subject) &&\n this._predicate.equals(other.predicate) &&\n this._object.equals(other.object) &&\n this._graph.equals(other.graph);\n }\n}\nexport { Quad as Triple };\n\n// ### Escapes the quotes within the given literal\nexport function escapeQuotes(id) {\n return id.replace(escapedLiteral, (_, quoted) => `\"${quoted.replace(/\"/g, '\"\"')}`);\n}\n\n// ### Unescapes the quotes within the given literal\nexport function unescapeQuotes(id) {\n return id.replace(escapedLiteral, (_, quoted) => `\"${quoted.replace(/\"\"/g, '\"')}`);\n}\n\n// ### Creates an IRI\nfunction namedNode(iri) {\n return new NamedNode(iri);\n}\n\n// ### Creates a blank node\nfunction blankNode(name) {\n return new BlankNode(name || `n3-${_blankNodeCounter++}`);\n}\n\n// ### Creates a literal\nfunction literal(value, languageOrDataType) {\n // Create a language-tagged string\n if (typeof languageOrDataType === 'string')\n return new Literal(`\"${value}\"@${languageOrDataType.toLowerCase()}`);\n\n // Automatically determine datatype for booleans and numbers\n let datatype = languageOrDataType ? languageOrDataType.value : '';\n if (datatype === '') {\n // Convert a boolean\n if (typeof value === 'boolean')\n datatype = xsd.boolean;\n // Convert an integer or double\n else if (typeof value === 'number') {\n if (Number.isFinite(value))\n datatype = Number.isInteger(value) ? xsd.integer : xsd.double;\n else {\n datatype = xsd.double;\n if (!Number.isNaN(value))\n value = value > 0 ? 'INF' : '-INF';\n }\n }\n }\n\n // Create a datatyped literal\n return (datatype === '' || datatype === xsd.string) ?\n new Literal(`\"${value}\"`) :\n new Literal(`\"${value}\"^^${datatype}`);\n}\n\n// ### Creates a variable\nfunction variable(name) {\n return new Variable(name);\n}\n\n// ### Returns the default graph\nfunction defaultGraph() {\n return DEFAULTGRAPH;\n}\n\n// ### Creates a quad\nfunction quad(subject, predicate, object, graph) {\n return new Quad(subject, predicate, object, graph);\n}\n","// **N3Parser** parses N3 documents.\nimport N3Lexer from './N3Lexer';\nimport N3DataFactory from './N3DataFactory';\nimport namespaces from './IRIs';\n\nlet blankNodePrefix = 0;\n\n// ## Constructor\nexport default class N3Parser {\n constructor(options) {\n this._contextStack = [];\n this._graph = null;\n\n // Set the document IRI\n options = options || {};\n this._setBase(options.baseIRI);\n options.factory && initDataFactory(this, options.factory);\n\n // Set supported features depending on the format\n const format = (typeof options.format === 'string') ?\n options.format.match(/\\w*$/)[0].toLowerCase() : '',\n isTurtle = /turtle/.test(format), isTriG = /trig/.test(format),\n isNTriples = /triple/.test(format), isNQuads = /quad/.test(format),\n isN3 = this._n3Mode = /n3/.test(format),\n isLineMode = isNTriples || isNQuads;\n if (!(this._supportsNamedGraphs = !(isTurtle || isN3)))\n this._readPredicateOrNamedGraph = this._readPredicate;\n // Support triples in other graphs\n this._supportsQuads = !(isTurtle || isTriG || isNTriples || isN3);\n // Support nesting of triples\n this._supportsRDFStar = format === '' || /star|\\*$/.test(format);\n // Disable relative IRIs in N-Triples or N-Quads mode\n if (isLineMode)\n this._resolveRelativeIRI = iri => { return null; };\n this._blankNodePrefix = typeof options.blankNodePrefix !== 'string' ? '' :\n options.blankNodePrefix.replace(/^(?!_:)/, '_:');\n this._lexer = options.lexer || new N3Lexer({ lineMode: isLineMode, n3: isN3 });\n // Disable explicit quantifiers by default\n this._explicitQuantifiers = !!options.explicitQuantifiers;\n }\n\n // ## Static class methods\n\n // ### `_resetBlankNodePrefix` restarts blank node prefix identification\n static _resetBlankNodePrefix() {\n blankNodePrefix = 0;\n }\n\n // ## Private methods\n\n // ### `_setBase` sets the base IRI to resolve relative IRIs\n _setBase(baseIRI) {\n if (!baseIRI) {\n this._base = '';\n this._basePath = '';\n }\n else {\n // Remove fragment if present\n const fragmentPos = baseIRI.indexOf('#');\n if (fragmentPos >= 0)\n baseIRI = baseIRI.substr(0, fragmentPos);\n // Set base IRI and its components\n this._base = baseIRI;\n this._basePath = baseIRI.indexOf('/') < 0 ? baseIRI :\n baseIRI.replace(/[^\\/?]*(?:\\?.*)?$/, '');\n baseIRI = baseIRI.match(/^(?:([a-z][a-z0-9+.-]*:))?(?:\\/\\/[^\\/]*)?/i);\n this._baseRoot = baseIRI[0];\n this._baseScheme = baseIRI[1];\n }\n }\n\n // ### `_saveContext` stores the current parsing context\n // when entering a new scope (list, blank node, formula)\n _saveContext(type, graph, subject, predicate, object) {\n const n3Mode = this._n3Mode;\n this._contextStack.push({\n type,\n subject, predicate, object, graph,\n inverse: n3Mode ? this._inversePredicate : false,\n blankPrefix: n3Mode ? this._prefixes._ : '',\n quantified: n3Mode ? this._quantified : null,\n });\n // The settings below only apply to N3 streams\n if (n3Mode) {\n // Every new scope resets the predicate direction\n this._inversePredicate = false;\n // In N3, blank nodes are scoped to a formula\n // (using a dot as separator, as a blank node label cannot start with it)\n this._prefixes._ = (this._graph ? `${this._graph.value}.` : '.');\n // Quantifiers are scoped to a formula\n this._quantified = Object.create(this._quantified);\n }\n }\n\n // ### `_restoreContext` restores the parent context\n // when leaving a scope (list, blank node, formula)\n _restoreContext(type, token) {\n // Obtain the previous context\n const context = this._contextStack.pop();\n if (!context || context.type !== type)\n return this._error(`Unexpected ${token.type}`, token);\n\n // Restore the quad of the previous context\n this._subject = context.subject;\n this._predicate = context.predicate;\n this._object = context.object;\n this._graph = context.graph;\n\n // Restore N3 context settings\n if (this._n3Mode) {\n this._inversePredicate = context.inverse;\n this._prefixes._ = context.blankPrefix;\n this._quantified = context.quantified;\n }\n }\n\n // ### `_readInTopContext` reads a token when in the top context\n _readInTopContext(token) {\n switch (token.type) {\n // If an EOF token arrives in the top context, signal that we're done\n case 'eof':\n if (this._graph !== null)\n return this._error('Unclosed graph', token);\n delete this._prefixes._;\n return this._callback(null, null, this._prefixes);\n // It could be a prefix declaration\n case 'PREFIX':\n this._sparqlStyle = true;\n case '@prefix':\n return this._readPrefix;\n // It could be a base declaration\n case 'BASE':\n this._sparqlStyle = true;\n case '@base':\n return this._readBaseIRI;\n // It could be a graph\n case '{':\n if (this._supportsNamedGraphs) {\n this._graph = '';\n this._subject = null;\n return this._readSubject;\n }\n case 'GRAPH':\n if (this._supportsNamedGraphs)\n return this._readNamedGraphLabel;\n // Otherwise, the next token must be a subject\n default:\n return this._readSubject(token);\n }\n }\n\n // ### `_readEntity` reads an IRI, prefixed name, blank node, or variable\n _readEntity(token, quantifier) {\n let value;\n switch (token.type) {\n // Read a relative or absolute IRI\n case 'IRI':\n case 'typeIRI':\n const iri = this._resolveIRI(token.value);\n if (iri === null)\n return this._error('Invalid IRI', token);\n value = this._namedNode(iri);\n break;\n // Read a prefixed name\n case 'type':\n case 'prefixed':\n const prefix = this._prefixes[token.prefix];\n if (prefix === undefined)\n return this._error(`Undefined prefix \"${token.prefix}:\"`, token);\n value = this._namedNode(prefix + token.value);\n break;\n // Read a blank node\n case 'blank':\n value = this._blankNode(this._prefixes[token.prefix] + token.value);\n break;\n // Read a variable\n case 'var':\n value = this._variable(token.value.substr(1));\n break;\n // Everything else is not an entity\n default:\n return this._error(`Expected entity but got ${token.type}`, token);\n }\n // In N3 mode, replace the entity if it is quantified\n if (!quantifier && this._n3Mode && (value.id in this._quantified))\n value = this._quantified[value.id];\n return value;\n }\n\n // ### `_readSubject` reads a quad's subject\n _readSubject(token) {\n this._predicate = null;\n switch (token.type) {\n case '[':\n // Start a new quad with a new blank node as subject\n this._saveContext('blank', this._graph,\n this._subject = this._blankNode(), null, null);\n return this._readBlankNodeHead;\n case '(':\n // Start a new list\n this._saveContext('list', this._graph, this.RDF_NIL, null, null);\n this._subject = null;\n return this._readListItem;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph,\n this._graph = this._blankNode(), null, null);\n return this._readSubject;\n case '}':\n // No subject; the graph in which we are reading is closed instead\n return this._readPunctuation(token);\n case '@forSome':\n if (!this._n3Mode)\n return this._error('Unexpected \"@forSome\"', token);\n this._subject = null;\n this._predicate = this.N3_FORSOME;\n this._quantifier = this._blankNode;\n return this._readQuantifierList;\n case '@forAll':\n if (!this._n3Mode)\n return this._error('Unexpected \"@forAll\"', token);\n this._subject = null;\n this._predicate = this.N3_FORALL;\n this._quantifier = this._variable;\n return this._readQuantifierList;\n case 'literal':\n if (!this._n3Mode)\n return this._error('Unexpected literal', token);\n\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n return this._completeSubjectLiteral;\n }\n else\n this._subject = this._literal(token.value, this._namedNode(token.prefix));\n\n break;\n case '<<':\n if (!this._supportsRDFStar)\n return this._error('Unexpected RDF* syntax', token);\n this._saveContext('<<', this._graph, null, null, null);\n this._graph = null;\n return this._readSubject;\n default:\n // Read the subject entity\n if ((this._subject = this._readEntity(token)) === undefined)\n return;\n // In N3 mode, the subject might be a path\n if (this._n3Mode)\n return this._getPathReader(this._readPredicateOrNamedGraph);\n }\n\n // The next token must be a predicate,\n // or, if the subject was actually a graph IRI, a named graph\n return this._readPredicateOrNamedGraph;\n }\n\n // ### `_readPredicate` reads a quad's predicate\n _readPredicate(token) {\n const type = token.type;\n switch (type) {\n case 'inverse':\n this._inversePredicate = true;\n case 'abbreviation':\n this._predicate = this.ABBREVIATIONS[token.value];\n break;\n case '.':\n case ']':\n case '}':\n // Expected predicate didn't come, must have been trailing semicolon\n if (this._predicate === null)\n return this._error(`Unexpected ${type}`, token);\n this._subject = null;\n return type === ']' ? this._readBlankNodeTail(token) : this._readPunctuation(token);\n case ';':\n // Additional semicolons can be safely ignored\n return this._predicate !== null ? this._readPredicate :\n this._error('Expected predicate but got ;', token);\n case '[':\n if (this._n3Mode) {\n // Start a new quad with a new blank node as subject\n this._saveContext('blank', this._graph, this._subject,\n this._subject = this._blankNode(), null);\n return this._readBlankNodeHead;\n }\n case 'blank':\n if (!this._n3Mode)\n return this._error('Disallowed blank node as predicate', token);\n default:\n if ((this._predicate = this._readEntity(token)) === undefined)\n return;\n }\n // The next token must be an object\n return this._readObject;\n }\n\n // ### `_readObject` reads a quad's object\n _readObject(token) {\n switch (token.type) {\n case 'literal':\n // Regular literal, can still get a datatype or language\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n return this._readDataTypeOrLang;\n }\n // Pre-datatyped string literal (prefix stores the datatype)\n else\n this._object = this._literal(token.value, this._namedNode(token.prefix));\n break;\n case '[':\n // Start a new quad with a new blank node as subject\n this._saveContext('blank', this._graph, this._subject, this._predicate,\n this._subject = this._blankNode());\n return this._readBlankNodeHead;\n case '(':\n // Start a new list\n this._saveContext('list', this._graph, this._subject, this._predicate, this.RDF_NIL);\n this._subject = null;\n return this._readListItem;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph, this._subject, this._predicate,\n this._graph = this._blankNode());\n return this._readSubject;\n case '<<':\n if (!this._supportsRDFStar)\n return this._error('Unexpected RDF* syntax', token);\n this._saveContext('<<', this._graph, this._subject, this._predicate, null);\n this._graph = null;\n return this._readSubject;\n default:\n // Read the object entity\n if ((this._object = this._readEntity(token)) === undefined)\n return;\n // In N3 mode, the object might be a path\n if (this._n3Mode)\n return this._getPathReader(this._getContextEndReader());\n }\n return this._getContextEndReader();\n }\n\n // ### `_readPredicateOrNamedGraph` reads a quad's predicate, or a named graph\n _readPredicateOrNamedGraph(token) {\n return token.type === '{' ? this._readGraph(token) : this._readPredicate(token);\n }\n\n // ### `_readGraph` reads a graph\n _readGraph(token) {\n if (token.type !== '{')\n return this._error(`Expected graph but got ${token.type}`, token);\n // The \"subject\" we read is actually the GRAPH's label\n this._graph = this._subject, this._subject = null;\n return this._readSubject;\n }\n\n // ### `_readBlankNodeHead` reads the head of a blank node\n _readBlankNodeHead(token) {\n if (token.type === ']') {\n this._subject = null;\n return this._readBlankNodeTail(token);\n }\n else {\n this._predicate = null;\n return this._readPredicate(token);\n }\n }\n\n // ### `_readBlankNodeTail` reads the end of a blank node\n _readBlankNodeTail(token) {\n if (token.type !== ']')\n return this._readBlankNodePunctuation(token);\n\n // Store blank node quad\n if (this._subject !== null)\n this._emit(this._subject, this._predicate, this._object, this._graph);\n\n // Restore the parent context containing this blank node\n const empty = this._predicate === null;\n this._restoreContext('blank', token);\n // If the blank node was the object, restore previous context and read punctuation\n if (this._object !== null)\n return this._getContextEndReader();\n // If the blank node was the predicate, continue reading the object\n else if (this._predicate !== null)\n return this._readObject;\n // If the blank node was the subject, continue reading the predicate\n else\n // If the blank node was empty, it could be a named graph label\n return empty ? this._readPredicateOrNamedGraph : this._readPredicateAfterBlank;\n }\n\n // ### `_readPredicateAfterBlank` reads a predicate after an anonymous blank node\n _readPredicateAfterBlank(token) {\n switch (token.type) {\n case '.':\n case '}':\n // No predicate is coming if the triple is terminated here\n this._subject = null;\n return this._readPunctuation(token);\n default:\n return this._readPredicate(token);\n }\n }\n\n // ### `_readListItem` reads items from a list\n _readListItem(token) {\n let item = null, // The item of the list\n list = null, // The list itself\n next = this._readListItem; // The next function to execute\n const previousList = this._subject, // The previous list that contains this list\n stack = this._contextStack, // The stack of parent contexts\n parent = stack[stack.length - 1]; // The parent containing the current list\n\n switch (token.type) {\n case '[':\n // Stack the current list quad and start a new quad with a blank node as subject\n this._saveContext('blank', this._graph,\n list = this._blankNode(), this.RDF_FIRST,\n this._subject = item = this._blankNode());\n next = this._readBlankNodeHead;\n break;\n case '(':\n // Stack the current list quad and start a new list\n this._saveContext('list', this._graph,\n list = this._blankNode(), this.RDF_FIRST, this.RDF_NIL);\n this._subject = null;\n break;\n case ')':\n // Closing the list; restore the parent context\n this._restoreContext('list', token);\n // If this list is contained within a parent list, return the membership quad here.\n // This will be ` rdf:first .`.\n if (stack.length !== 0 && stack[stack.length - 1].type === 'list')\n this._emit(this._subject, this._predicate, this._object, this._graph);\n // Was this list the parent's subject?\n if (this._predicate === null) {\n // The next token is the predicate\n next = this._readPredicate;\n // No list tail if this was an empty list\n if (this._subject === this.RDF_NIL)\n return next;\n }\n // The list was in the parent context's object\n else {\n next = this._getContextEndReader();\n // No list tail if this was an empty list\n if (this._object === this.RDF_NIL)\n return next;\n }\n // Close the list by making the head nil\n list = this.RDF_NIL;\n break;\n case 'literal':\n // Regular literal, can still get a datatype or language\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n next = this._readListItemDataTypeOrLang;\n }\n // Pre-datatyped string literal (prefix stores the datatype)\n else {\n item = this._literal(token.value, this._namedNode(token.prefix));\n next = this._getContextEndReader();\n }\n break;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph, this._subject, this._predicate,\n this._graph = this._blankNode());\n return this._readSubject;\n default:\n if ((item = this._readEntity(token)) === undefined)\n return;\n }\n\n // Create a new blank node if no item head was assigned yet\n if (list === null)\n this._subject = list = this._blankNode();\n\n // Is this the first element of the list?\n if (previousList === null) {\n // This list is either the subject or the object of its parent\n if (parent.predicate === null)\n parent.subject = list;\n else\n parent.object = list;\n }\n else {\n // Continue the previous list with the current list\n this._emit(previousList, this.RDF_REST, list, this._graph);\n }\n // If an item was read, add it to the list\n if (item !== null) {\n // In N3 mode, the item might be a path\n if (this._n3Mode && (token.type === 'IRI' || token.type === 'prefixed')) {\n // Create a new context to add the item's path\n this._saveContext('item', this._graph, list, this.RDF_FIRST, item);\n this._subject = item, this._predicate = null;\n // _readPath will restore the context and output the item\n return this._getPathReader(this._readListItem);\n }\n // Output the item\n this._emit(list, this.RDF_FIRST, item, this._graph);\n }\n return next;\n }\n\n // ### `_readDataTypeOrLang` reads an _optional_ datatype or language\n _readDataTypeOrLang(token) {\n return this._completeObjectLiteral(token, false);\n }\n\n\n // ### `_readListItemDataTypeOrLang` reads an _optional_ datatype or language in a list\n _readListItemDataTypeOrLang(token) {\n return this._completeObjectLiteral(token, true);\n }\n\n // ### `_completeLiteral` completes a literal with an optional datatype or language\n _completeLiteral(token) {\n // Create a simple string literal by default\n let literal = this._literal(this._literalValue);\n\n switch (token.type) {\n // Create a datatyped literal\n case 'type':\n case 'typeIRI':\n const datatype = this._readEntity(token);\n if (datatype === undefined) return; // No datatype means an error occurred\n literal = this._literal(this._literalValue, datatype);\n token = null;\n break;\n // Create a language-tagged string\n case 'langcode':\n literal = this._literal(this._literalValue, token.value);\n token = null;\n break;\n }\n\n return { token, literal };\n }\n\n // Completes a literal in subject position\n _completeSubjectLiteral(token) {\n this._subject = this._completeLiteral(token).literal;\n return this._readPredicateOrNamedGraph;\n }\n\n // Completes a literal in object position\n _completeObjectLiteral(token, listItem) {\n const completed = this._completeLiteral(token);\n if (!completed)\n return;\n this._object = completed.literal;\n\n // If this literal was part of a list, write the item\n // (we could also check the context stack, but passing in a flag is faster)\n if (listItem)\n this._emit(this._subject, this.RDF_FIRST, this._object, this._graph);\n // If the token was consumed, continue with the rest of the input\n if (completed.token === null)\n return this._getContextEndReader();\n // Otherwise, consume the token now\n else {\n this._readCallback = this._getContextEndReader();\n return this._readCallback(completed.token);\n }\n }\n\n // ### `_readFormulaTail` reads the end of a formula\n _readFormulaTail(token) {\n if (token.type !== '}')\n return this._readPunctuation(token);\n\n // Store the last quad of the formula\n if (this._subject !== null)\n this._emit(this._subject, this._predicate, this._object, this._graph);\n\n // Restore the parent context containing this formula\n this._restoreContext('formula', token);\n // If the formula was the subject, continue reading the predicate.\n // If the formula was the object, read punctuation.\n return this._object === null ? this._readPredicate : this._getContextEndReader();\n }\n\n // ### `_readPunctuation` reads punctuation between quads or quad parts\n _readPunctuation(token) {\n let next, graph = this._graph;\n const subject = this._subject, inversePredicate = this._inversePredicate;\n switch (token.type) {\n // A closing brace ends a graph\n case '}':\n if (this._graph === null)\n return this._error('Unexpected graph closing', token);\n if (this._n3Mode)\n return this._readFormulaTail(token);\n this._graph = null;\n // A dot just ends the statement, without sharing anything with the next\n case '.':\n this._subject = null;\n next = this._contextStack.length ? this._readSubject : this._readInTopContext;\n if (inversePredicate) this._inversePredicate = false;\n break;\n // Semicolon means the subject is shared; predicate and object are different\n case ';':\n next = this._readPredicate;\n break;\n // Comma means both the subject and predicate are shared; the object is different\n case ',':\n next = this._readObject;\n break;\n // {| means that the current triple is annotated with predicate-object pairs.\n case '{|':\n if (!this._supportsRDFStar)\n return this._error('Unexpected RDF* syntax', token);\n // Continue using the last triple as quoted triple subject for the predicate-object pairs.\n const predicate = this._predicate, object = this._object;\n this._subject = this._quad(subject, predicate, object, this.DEFAULTGRAPH);\n next = this._readPredicate;\n break;\n // |} means that the current quoted triple in annotation syntax is finalized.\n case '|}':\n if (this._subject.termType !== 'Quad')\n return this._error('Unexpected asserted triple closing', token);\n this._subject = null;\n next = this._readPunctuation;\n break;\n default:\n // An entity means this is a quad (only allowed if not already inside a graph)\n if (this._supportsQuads && this._graph === null && (graph = this._readEntity(token)) !== undefined) {\n next = this._readQuadPunctuation;\n break;\n }\n return this._error(`Expected punctuation to follow \"${this._object.id}\"`, token);\n }\n // A quad has been completed now, so return it\n if (subject !== null) {\n const predicate = this._predicate, object = this._object;\n if (!inversePredicate)\n this._emit(subject, predicate, object, graph);\n else\n this._emit(object, predicate, subject, graph);\n }\n return next;\n }\n\n // ### `_readBlankNodePunctuation` reads punctuation in a blank node\n _readBlankNodePunctuation(token) {\n let next;\n switch (token.type) {\n // Semicolon means the subject is shared; predicate and object are different\n case ';':\n next = this._readPredicate;\n break;\n // Comma means both the subject and predicate are shared; the object is different\n case ',':\n next = this._readObject;\n break;\n default:\n return this._error(`Expected punctuation to follow \"${this._object.id}\"`, token);\n }\n // A quad has been completed now, so return it\n this._emit(this._subject, this._predicate, this._object, this._graph);\n return next;\n }\n\n // ### `_readQuadPunctuation` reads punctuation after a quad\n _readQuadPunctuation(token) {\n if (token.type !== '.')\n return this._error('Expected dot to follow quad', token);\n return this._readInTopContext;\n }\n\n // ### `_readPrefix` reads the prefix of a prefix declaration\n _readPrefix(token) {\n if (token.type !== 'prefix')\n return this._error('Expected prefix to follow @prefix', token);\n this._prefix = token.value;\n return this._readPrefixIRI;\n }\n\n // ### `_readPrefixIRI` reads the IRI of a prefix declaration\n _readPrefixIRI(token) {\n if (token.type !== 'IRI')\n return this._error(`Expected IRI to follow prefix \"${this._prefix}:\"`, token);\n const prefixNode = this._readEntity(token);\n this._prefixes[this._prefix] = prefixNode.value;\n this._prefixCallback(this._prefix, prefixNode);\n return this._readDeclarationPunctuation;\n }\n\n // ### `_readBaseIRI` reads the IRI of a base declaration\n _readBaseIRI(token) {\n const iri = token.type === 'IRI' && this._resolveIRI(token.value);\n if (!iri)\n return this._error('Expected valid IRI to follow base declaration', token);\n this._setBase(iri);\n return this._readDeclarationPunctuation;\n }\n\n // ### `_readNamedGraphLabel` reads the label of a named graph\n _readNamedGraphLabel(token) {\n switch (token.type) {\n case 'IRI':\n case 'blank':\n case 'prefixed':\n return this._readSubject(token), this._readGraph;\n case '[':\n return this._readNamedGraphBlankLabel;\n default:\n return this._error('Invalid graph label', token);\n }\n }\n\n // ### `_readNamedGraphLabel` reads a blank node label of a named graph\n _readNamedGraphBlankLabel(token) {\n if (token.type !== ']')\n return this._error('Invalid graph label', token);\n this._subject = this._blankNode();\n return this._readGraph;\n }\n\n // ### `_readDeclarationPunctuation` reads the punctuation of a declaration\n _readDeclarationPunctuation(token) {\n // SPARQL-style declarations don't have punctuation\n if (this._sparqlStyle) {\n this._sparqlStyle = false;\n return this._readInTopContext(token);\n }\n\n if (token.type !== '.')\n return this._error('Expected declaration to end with a dot', token);\n return this._readInTopContext;\n }\n\n // Reads a list of quantified symbols from a @forSome or @forAll statement\n _readQuantifierList(token) {\n let entity;\n switch (token.type) {\n case 'IRI':\n case 'prefixed':\n if ((entity = this._readEntity(token, true)) !== undefined)\n break;\n default:\n return this._error(`Unexpected ${token.type}`, token);\n }\n // Without explicit quantifiers, map entities to a quantified entity\n if (!this._explicitQuantifiers)\n this._quantified[entity.id] = this._quantifier(this._blankNode().value);\n // With explicit quantifiers, output the reified quantifier\n else {\n // If this is the first item, start a new quantifier list\n if (this._subject === null)\n this._emit(this._graph || this.DEFAULTGRAPH, this._predicate,\n this._subject = this._blankNode(), this.QUANTIFIERS_GRAPH);\n // Otherwise, continue the previous list\n else\n this._emit(this._subject, this.RDF_REST,\n this._subject = this._blankNode(), this.QUANTIFIERS_GRAPH);\n // Output the list item\n this._emit(this._subject, this.RDF_FIRST, entity, this.QUANTIFIERS_GRAPH);\n }\n return this._readQuantifierPunctuation;\n }\n\n // Reads punctuation from a @forSome or @forAll statement\n _readQuantifierPunctuation(token) {\n // Read more quantifiers\n if (token.type === ',')\n return this._readQuantifierList;\n // End of the quantifier list\n else {\n // With explicit quantifiers, close the quantifier list\n if (this._explicitQuantifiers) {\n this._emit(this._subject, this.RDF_REST, this.RDF_NIL, this.QUANTIFIERS_GRAPH);\n this._subject = null;\n }\n // Read a dot\n this._readCallback = this._getContextEndReader();\n return this._readCallback(token);\n }\n }\n\n // ### `_getPathReader` reads a potential path and then resumes with the given function\n _getPathReader(afterPath) {\n this._afterPath = afterPath;\n return this._readPath;\n }\n\n // ### `_readPath` reads a potential path\n _readPath(token) {\n switch (token.type) {\n // Forward path\n case '!': return this._readForwardPath;\n // Backward path\n case '^': return this._readBackwardPath;\n // Not a path; resume reading where we left off\n default:\n const stack = this._contextStack, parent = stack.length && stack[stack.length - 1];\n // If we were reading a list item, we still need to output it\n if (parent && parent.type === 'item') {\n // The list item is the remaining subejct after reading the path\n const item = this._subject;\n // Switch back to the context of the list\n this._restoreContext('item', token);\n // Output the list item\n this._emit(this._subject, this.RDF_FIRST, item, this._graph);\n }\n return this._afterPath(token);\n }\n }\n\n // ### `_readForwardPath` reads a '!' path\n _readForwardPath(token) {\n let subject, predicate;\n const object = this._blankNode();\n // The next token is the predicate\n if ((predicate = this._readEntity(token)) === undefined)\n return;\n // If we were reading a subject, replace the subject by the path's object\n if (this._predicate === null)\n subject = this._subject, this._subject = object;\n // If we were reading an object, replace the subject by the path's object\n else\n subject = this._object, this._object = object;\n // Emit the path's current quad and read its next section\n this._emit(subject, predicate, object, this._graph);\n return this._readPath;\n }\n\n // ### `_readBackwardPath` reads a '^' path\n _readBackwardPath(token) {\n const subject = this._blankNode();\n let predicate, object;\n // The next token is the predicate\n if ((predicate = this._readEntity(token)) === undefined)\n return;\n // If we were reading a subject, replace the subject by the path's subject\n if (this._predicate === null)\n object = this._subject, this._subject = subject;\n // If we were reading an object, replace the subject by the path's subject\n else\n object = this._object, this._object = subject;\n // Emit the path's current quad and read its next section\n this._emit(subject, predicate, object, this._graph);\n return this._readPath;\n }\n\n // ### `_readRDFStarTailOrGraph` reads the graph of a nested RDF* quad or the end of a nested RDF* triple\n _readRDFStarTailOrGraph(token) {\n if (token.type !== '>>') {\n // An entity means this is a quad (only allowed if not already inside a graph)\n if (this._supportsQuads && this._graph === null && (this._graph = this._readEntity(token)) !== undefined)\n return this._readRDFStarTail;\n return this._error(`Expected >> to follow \"${this._object.id}\"`, token);\n }\n return this._readRDFStarTail(token);\n }\n\n // ### `_readRDFStarTail` reads the end of a nested RDF* triple\n _readRDFStarTail(token) {\n if (token.type !== '>>')\n return this._error(`Expected >> but got ${token.type}`, token);\n // Read the quad and restore the previous context\n const quad = this._quad(this._subject, this._predicate, this._object,\n this._graph || this.DEFAULTGRAPH);\n this._restoreContext('<<', token);\n // If the triple was the subject, continue by reading the predicate.\n if (this._subject === null) {\n this._subject = quad;\n return this._readPredicate;\n }\n // If the triple was the object, read context end.\n else {\n this._object = quad;\n return this._getContextEndReader();\n }\n }\n\n // ### `_getContextEndReader` gets the next reader function at the end of a context\n _getContextEndReader() {\n const contextStack = this._contextStack;\n if (!contextStack.length)\n return this._readPunctuation;\n\n switch (contextStack[contextStack.length - 1].type) {\n case 'blank':\n return this._readBlankNodeTail;\n case 'list':\n return this._readListItem;\n case 'formula':\n return this._readFormulaTail;\n case '<<':\n return this._readRDFStarTailOrGraph;\n }\n }\n\n // ### `_emit` sends a quad through the callback\n _emit(subject, predicate, object, graph) {\n this._callback(null, this._quad(subject, predicate, object, graph || this.DEFAULTGRAPH));\n }\n\n // ### `_error` emits an error message through the callback\n _error(message, token) {\n const err = new Error(`${message} on line ${token.line}.`);\n err.context = {\n token: token,\n line: token.line,\n previousToken: this._lexer.previousToken,\n };\n this._callback(err);\n this._callback = noop;\n }\n\n // ### `_resolveIRI` resolves an IRI against the base path\n _resolveIRI(iri) {\n return /^[a-z][a-z0-9+.-]*:/i.test(iri) ? iri : this._resolveRelativeIRI(iri);\n }\n\n // ### `_resolveRelativeIRI` resolves an IRI against the base path,\n // assuming that a base path has been set and that the IRI is indeed relative\n _resolveRelativeIRI(iri) {\n // An empty relative IRI indicates the base IRI\n if (!iri.length)\n return this._base;\n // Decide resolving strategy based in the first character\n switch (iri[0]) {\n // Resolve relative fragment IRIs against the base IRI\n case '#': return this._base + iri;\n // Resolve relative query string IRIs by replacing the query string\n case '?': return this._base.replace(/(?:\\?.*)?$/, iri);\n // Resolve root-relative IRIs at the root of the base IRI\n case '/':\n // Resolve scheme-relative IRIs to the scheme\n return (iri[1] === '/' ? this._baseScheme : this._baseRoot) + this._removeDotSegments(iri);\n // Resolve all other IRIs at the base IRI's path\n default:\n // Relative IRIs cannot contain a colon in the first path segment\n return (/^[^/:]*:/.test(iri)) ? null : this._removeDotSegments(this._basePath + iri);\n }\n }\n\n // ### `_removeDotSegments` resolves './' and '../' path segments in an IRI as per RFC3986\n _removeDotSegments(iri) {\n // Don't modify the IRI if it does not contain any dot segments\n if (!/(^|\\/)\\.\\.?($|[/#?])/.test(iri))\n return iri;\n\n // Start with an imaginary slash before the IRI in order to resolve trailing './' and '../'\n const length = iri.length;\n let result = '', i = -1, pathStart = -1, segmentStart = 0, next = '/';\n\n while (i < length) {\n switch (next) {\n // The path starts with the first slash after the authority\n case ':':\n if (pathStart < 0) {\n // Skip two slashes before the authority\n if (iri[++i] === '/' && iri[++i] === '/')\n // Skip to slash after the authority\n while ((pathStart = i + 1) < length && iri[pathStart] !== '/')\n i = pathStart;\n }\n break;\n // Don't modify a query string or fragment\n case '?':\n case '#':\n i = length;\n break;\n // Handle '/.' or '/..' path segments\n case '/':\n if (iri[i + 1] === '.') {\n next = iri[++i + 1];\n switch (next) {\n // Remove a '/.' segment\n case '/':\n result += iri.substring(segmentStart, i - 1);\n segmentStart = i + 1;\n break;\n // Remove a trailing '/.' segment\n case undefined:\n case '?':\n case '#':\n return result + iri.substring(segmentStart, i) + iri.substr(i + 1);\n // Remove a '/..' segment\n case '.':\n next = iri[++i + 1];\n if (next === undefined || next === '/' || next === '?' || next === '#') {\n result += iri.substring(segmentStart, i - 2);\n // Try to remove the parent path from result\n if ((segmentStart = result.lastIndexOf('/')) >= pathStart)\n result = result.substr(0, segmentStart);\n // Remove a trailing '/..' segment\n if (next !== '/')\n return `${result}/${iri.substr(i + 1)}`;\n segmentStart = i + 1;\n }\n }\n }\n }\n next = iri[++i];\n }\n return result + iri.substring(segmentStart);\n }\n\n // ## Public methods\n\n // ### `parse` parses the N3 input and emits each parsed quad through the callback\n parse(input, quadCallback, prefixCallback) {\n // The read callback is the next function to be executed when a token arrives.\n // We start reading in the top context.\n this._readCallback = this._readInTopContext;\n this._sparqlStyle = false;\n this._prefixes = Object.create(null);\n this._prefixes._ = this._blankNodePrefix ? this._blankNodePrefix.substr(2)\n : `b${blankNodePrefix++}_`;\n this._prefixCallback = prefixCallback || noop;\n this._inversePredicate = false;\n this._quantified = Object.create(null);\n\n // Parse synchronously if no quad callback is given\n if (!quadCallback) {\n const quads = [];\n let error;\n this._callback = (e, t) => { e ? (error = e) : t && quads.push(t); };\n this._lexer.tokenize(input).every(token => {\n return this._readCallback = this._readCallback(token);\n });\n if (error) throw error;\n return quads;\n }\n\n // Parse asynchronously otherwise, executing the read callback when a token arrives\n this._callback = quadCallback;\n this._lexer.tokenize(input, (error, token) => {\n if (error !== null)\n this._callback(error), this._callback = noop;\n else if (this._readCallback)\n this._readCallback = this._readCallback(token);\n });\n }\n}\n\n// The empty function\nfunction noop() {}\n\n// Initializes the parser with the given data factory\nfunction initDataFactory(parser, factory) {\n // Set factory methods\n const namedNode = factory.namedNode;\n parser._namedNode = namedNode;\n parser._blankNode = factory.blankNode;\n parser._literal = factory.literal;\n parser._variable = factory.variable;\n parser._quad = factory.quad;\n parser.DEFAULTGRAPH = factory.defaultGraph();\n\n // Set common named nodes\n parser.RDF_FIRST = namedNode(namespaces.rdf.first);\n parser.RDF_REST = namedNode(namespaces.rdf.rest);\n parser.RDF_NIL = namedNode(namespaces.rdf.nil);\n parser.N3_FORALL = namedNode(namespaces.r.forAll);\n parser.N3_FORSOME = namedNode(namespaces.r.forSome);\n parser.ABBREVIATIONS = {\n 'a': namedNode(namespaces.rdf.type),\n '=': namedNode(namespaces.owl.sameAs),\n '>': namedNode(namespaces.log.implies),\n };\n parser.QUANTIFIERS_GRAPH = namedNode('urn:n3:quantifiers');\n}\ninitDataFactory(N3Parser.prototype, N3DataFactory);\n","// **N3Util** provides N3 utility functions.\n\nimport N3DataFactory from './N3DataFactory';\n\n// Tests whether the given term represents an IRI\nexport function isNamedNode(term) {\n return !!term && term.termType === 'NamedNode';\n}\n\n// Tests whether the given term represents a blank node\nexport function isBlankNode(term) {\n return !!term && term.termType === 'BlankNode';\n}\n\n// Tests whether the given term represents a literal\nexport function isLiteral(term) {\n return !!term && term.termType === 'Literal';\n}\n\n// Tests whether the given term represents a variable\nexport function isVariable(term) {\n return !!term && term.termType === 'Variable';\n}\n\n// Tests whether the given term represents the default graph\nexport function isDefaultGraph(term) {\n return !!term && term.termType === 'DefaultGraph';\n}\n\n// Tests whether the given quad is in the default graph\nexport function inDefaultGraph(quad) {\n return isDefaultGraph(quad.graph);\n}\n\n// Creates a function that prepends the given IRI to a local name\nexport function prefix(iri, factory) {\n return prefixes({ '': iri.value || iri }, factory)('');\n}\n\n// Creates a function that allows registering and expanding prefixes\nexport function prefixes(defaultPrefixes, factory) {\n // Add all of the default prefixes\n const prefixes = Object.create(null);\n for (const prefix in defaultPrefixes)\n processPrefix(prefix, defaultPrefixes[prefix]);\n // Set the default factory if none was specified\n factory = factory || N3DataFactory;\n\n // Registers a new prefix (if an IRI was specified)\n // or retrieves a function that expands an existing prefix (if no IRI was specified)\n function processPrefix(prefix, iri) {\n // Create a new prefix if an IRI is specified or the prefix doesn't exist\n if (typeof iri === 'string') {\n // Create a function that expands the prefix\n const cache = Object.create(null);\n prefixes[prefix] = local => {\n return cache[local] || (cache[local] = factory.namedNode(iri + local));\n };\n }\n else if (!(prefix in prefixes)) {\n throw new Error(`Unknown prefix: ${prefix}`);\n }\n return prefixes[prefix];\n }\n return processPrefix;\n}\n","// **N3Writer** writes N3 documents.\nimport namespaces from './IRIs';\nimport { default as N3DataFactory, Term } from './N3DataFactory';\nimport { isDefaultGraph } from './N3Util';\n\nconst DEFAULTGRAPH = N3DataFactory.defaultGraph();\n\nconst { rdf, xsd } = namespaces;\n\n// Characters in literals that require escaping\nconst escape = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019\\ud800-\\udbff]/,\n escapeAll = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019]|[\\ud800-\\udbff][\\udc00-\\udfff]/g,\n escapedCharacters = {\n '\\\\': '\\\\\\\\', '\"': '\\\\\"', '\\t': '\\\\t',\n '\\n': '\\\\n', '\\r': '\\\\r', '\\b': '\\\\b', '\\f': '\\\\f',\n };\n\n// ## Placeholder class to represent already pretty-printed terms\nclass SerializedTerm extends Term {\n // Pretty-printed nodes are not equal to any other node\n // (e.g., [] does not equal [])\n equals(other) {\n return other === this;\n }\n}\n\n// ## Constructor\nexport default class N3Writer {\n constructor(outputStream, options) {\n // ### `_prefixRegex` matches a prefixed name or IRI that begins with one of the added prefixes\n this._prefixRegex = /$0^/;\n\n // Shift arguments if the first argument is not a stream\n if (outputStream && typeof outputStream.write !== 'function')\n options = outputStream, outputStream = null;\n options = options || {};\n this._lists = options.lists;\n\n // If no output stream given, send the output as string through the end callback\n if (!outputStream) {\n let output = '';\n this._outputStream = {\n write(chunk, encoding, done) { output += chunk; done && done(); },\n end: done => { done && done(null, output); },\n };\n this._endStream = true;\n }\n else {\n this._outputStream = outputStream;\n this._endStream = options.end === undefined ? true : !!options.end;\n }\n\n // Initialize writer, depending on the format\n this._subject = null;\n if (!(/triple|quad/i).test(options.format)) {\n this._lineMode = false;\n this._graph = DEFAULTGRAPH;\n this._prefixIRIs = Object.create(null);\n options.prefixes && this.addPrefixes(options.prefixes);\n if (options.baseIRI) {\n this._baseMatcher = new RegExp(`^${escapeRegex(options.baseIRI)\n }${options.baseIRI.endsWith('/') ? '' : '[#?]'}`);\n this._baseLength = options.baseIRI.length;\n }\n }\n else {\n this._lineMode = true;\n this._writeQuad = this._writeQuadLine;\n }\n }\n\n // ## Private methods\n\n // ### Whether the current graph is the default graph\n get _inDefaultGraph() {\n return DEFAULTGRAPH.equals(this._graph);\n }\n\n // ### `_write` writes the argument to the output stream\n _write(string, callback) {\n this._outputStream.write(string, 'utf8', callback);\n }\n\n // ### `_writeQuad` writes the quad to the output stream\n _writeQuad(subject, predicate, object, graph, done) {\n try {\n // Write the graph's label if it has changed\n if (!graph.equals(this._graph)) {\n // Close the previous graph and start the new one\n this._write((this._subject === null ? '' : (this._inDefaultGraph ? '.\\n' : '\\n}\\n')) +\n (DEFAULTGRAPH.equals(graph) ? '' : `${this._encodeIriOrBlank(graph)} {\\n`));\n this._graph = graph;\n this._subject = null;\n }\n // Don't repeat the subject if it's the same\n if (subject.equals(this._subject)) {\n // Don't repeat the predicate if it's the same\n if (predicate.equals(this._predicate))\n this._write(`, ${this._encodeObject(object)}`, done);\n // Same subject, different predicate\n else\n this._write(`;\\n ${\n this._encodePredicate(this._predicate = predicate)} ${\n this._encodeObject(object)}`, done);\n }\n // Different subject; write the whole quad\n else\n this._write(`${(this._subject === null ? '' : '.\\n') +\n this._encodeSubject(this._subject = subject)} ${\n this._encodePredicate(this._predicate = predicate)} ${\n this._encodeObject(object)}`, done);\n }\n catch (error) { done && done(error); }\n }\n\n // ### `_writeQuadLine` writes the quad to the output stream as a single line\n _writeQuadLine(subject, predicate, object, graph, done) {\n // Write the quad without prefixes\n delete this._prefixMatch;\n this._write(this.quadToString(subject, predicate, object, graph), done);\n }\n\n // ### `quadToString` serializes a quad as a string\n quadToString(subject, predicate, object, graph) {\n return `${this._encodeSubject(subject)} ${\n this._encodeIriOrBlank(predicate)} ${\n this._encodeObject(object)\n }${graph && graph.value ? ` ${this._encodeIriOrBlank(graph)} .\\n` : ' .\\n'}`;\n }\n\n // ### `quadsToString` serializes an array of quads as a string\n quadsToString(quads) {\n return quads.map(t => {\n return this.quadToString(t.subject, t.predicate, t.object, t.graph);\n }).join('');\n }\n\n // ### `_encodeSubject` represents a subject\n _encodeSubject(entity) {\n return entity.termType === 'Quad' ?\n this._encodeQuad(entity) : this._encodeIriOrBlank(entity);\n }\n\n // ### `_encodeIriOrBlank` represents an IRI or blank node\n _encodeIriOrBlank(entity) {\n // A blank node or list is represented as-is\n if (entity.termType !== 'NamedNode') {\n // If it is a list head, pretty-print it\n if (this._lists && (entity.value in this._lists))\n entity = this.list(this._lists[entity.value]);\n return 'id' in entity ? entity.id : `_:${entity.value}`;\n }\n let iri = entity.value;\n // Use relative IRIs if requested and possible\n if (this._baseMatcher && this._baseMatcher.test(iri))\n iri = iri.substr(this._baseLength);\n // Escape special characters\n if (escape.test(iri))\n iri = iri.replace(escapeAll, characterReplacer);\n // Try to represent the IRI as prefixed name\n const prefixMatch = this._prefixRegex.exec(iri);\n return !prefixMatch ? `<${iri}>` :\n (!prefixMatch[1] ? iri : this._prefixIRIs[prefixMatch[1]] + prefixMatch[2]);\n }\n\n // ### `_encodeLiteral` represents a literal\n _encodeLiteral(literal) {\n // Escape special characters\n let value = literal.value;\n if (escape.test(value))\n value = value.replace(escapeAll, characterReplacer);\n\n // Write a language-tagged literal\n if (literal.language)\n return `\"${value}\"@${literal.language}`;\n\n // Write dedicated literals per data type\n if (this._lineMode) {\n // Only abbreviate strings in N-Triples or N-Quads\n if (literal.datatype.value === xsd.string)\n return `\"${value}\"`;\n }\n else {\n // Use common datatype abbreviations in Turtle or TriG\n switch (literal.datatype.value) {\n case xsd.string:\n return `\"${value}\"`;\n case xsd.boolean:\n if (value === 'true' || value === 'false')\n return value;\n break;\n case xsd.integer:\n if (/^[+-]?\\d+$/.test(value))\n return value;\n break;\n case xsd.decimal:\n if (/^[+-]?\\d*\\.\\d+$/.test(value))\n return value;\n break;\n case xsd.double:\n if (/^[+-]?(?:\\d+\\.\\d*|\\.?\\d+)[eE][+-]?\\d+$/.test(value))\n return value;\n break;\n }\n }\n\n // Write a regular datatyped literal\n return `\"${value}\"^^${this._encodeIriOrBlank(literal.datatype)}`;\n }\n\n // ### `_encodePredicate` represents a predicate\n _encodePredicate(predicate) {\n return predicate.value === rdf.type ? 'a' : this._encodeIriOrBlank(predicate);\n }\n\n // ### `_encodeObject` represents an object\n _encodeObject(object) {\n switch (object.termType) {\n case 'Quad':\n return this._encodeQuad(object);\n case 'Literal':\n return this._encodeLiteral(object);\n default:\n return this._encodeIriOrBlank(object);\n }\n }\n\n // ### `_encodeQuad` encodes an RDF* quad\n _encodeQuad({ subject, predicate, object, graph }) {\n return `<<${\n this._encodeSubject(subject)} ${\n this._encodePredicate(predicate)} ${\n this._encodeObject(object)}${\n isDefaultGraph(graph) ? '' : ` ${this._encodeIriOrBlank(graph)}`}>>`;\n }\n\n // ### `_blockedWrite` replaces `_write` after the writer has been closed\n _blockedWrite() {\n throw new Error('Cannot write because the writer has been closed.');\n }\n\n // ### `addQuad` adds the quad to the output stream\n addQuad(subject, predicate, object, graph, done) {\n // The quad was given as an object, so shift parameters\n if (object === undefined)\n this._writeQuad(subject.subject, subject.predicate, subject.object, subject.graph, predicate);\n // The optional `graph` parameter was not provided\n else if (typeof graph === 'function')\n this._writeQuad(subject, predicate, object, DEFAULTGRAPH, graph);\n // The `graph` parameter was provided\n else\n this._writeQuad(subject, predicate, object, graph || DEFAULTGRAPH, done);\n }\n\n // ### `addQuads` adds the quads to the output stream\n addQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `addPrefix` adds the prefix to the output stream\n addPrefix(prefix, iri, done) {\n const prefixes = {};\n prefixes[prefix] = iri;\n this.addPrefixes(prefixes, done);\n }\n\n // ### `addPrefixes` adds the prefixes to the output stream\n addPrefixes(prefixes, done) {\n // Ignore prefixes if not supported by the serialization\n if (!this._prefixIRIs)\n return done && done();\n\n // Write all new prefixes\n let hasPrefixes = false;\n for (let prefix in prefixes) {\n let iri = prefixes[prefix];\n if (typeof iri !== 'string')\n iri = iri.value;\n hasPrefixes = true;\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null, this._graph = '';\n }\n // Store and write the prefix\n this._prefixIRIs[iri] = (prefix += ':');\n this._write(`@prefix ${prefix} <${iri}>.\\n`);\n }\n // Recreate the prefix matcher\n if (hasPrefixes) {\n let IRIlist = '', prefixList = '';\n for (const prefixIRI in this._prefixIRIs) {\n IRIlist += IRIlist ? `|${prefixIRI}` : prefixIRI;\n prefixList += (prefixList ? '|' : '') + this._prefixIRIs[prefixIRI];\n }\n IRIlist = escapeRegex(IRIlist, /[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n this._prefixRegex = new RegExp(`^(?:${prefixList})[^\\/]*$|` +\n `^(${IRIlist})([_a-zA-Z][\\\\-_a-zA-Z0-9]*)$`);\n }\n // End a prefix block with a newline\n this._write(hasPrefixes ? '\\n' : '', done);\n }\n\n // ### `blank` creates a blank node with the given content\n blank(predicate, object) {\n let children = predicate, child, length;\n // Empty blank node\n if (predicate === undefined)\n children = [];\n // Blank node passed as blank(Term(\"predicate\"), Term(\"object\"))\n else if (predicate.termType)\n children = [{ predicate: predicate, object: object }];\n // Blank node passed as blank({ predicate: predicate, object: object })\n else if (!('length' in predicate))\n children = [predicate];\n\n switch (length = children.length) {\n // Generate an empty blank node\n case 0:\n return new SerializedTerm('[]');\n // Generate a non-nested one-triple blank node\n case 1:\n child = children[0];\n if (!(child.object instanceof SerializedTerm))\n return new SerializedTerm(`[ ${this._encodePredicate(child.predicate)} ${\n this._encodeObject(child.object)} ]`);\n // Generate a multi-triple or nested blank node\n default:\n let contents = '[';\n // Write all triples in order\n for (let i = 0; i < length; i++) {\n child = children[i];\n // Write only the object is the predicate is the same as the previous\n if (child.predicate.equals(predicate))\n contents += `, ${this._encodeObject(child.object)}`;\n // Otherwise, write the predicate and the object\n else {\n contents += `${(i ? ';\\n ' : '\\n ') +\n this._encodePredicate(child.predicate)} ${\n this._encodeObject(child.object)}`;\n predicate = child.predicate;\n }\n }\n return new SerializedTerm(`${contents}\\n]`);\n }\n }\n\n // ### `list` creates a list node with the given content\n list(elements) {\n const length = elements && elements.length || 0, contents = new Array(length);\n for (let i = 0; i < length; i++)\n contents[i] = this._encodeObject(elements[i]);\n return new SerializedTerm(`(${contents.join(' ')})`);\n }\n\n // ### `end` signals the end of the output stream\n end(done) {\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null;\n }\n // Disallow further writing\n this._write = this._blockedWrite;\n\n // Try to end the underlying stream, ensuring done is called exactly one time\n let singleDone = done && ((error, result) => { singleDone = null, done(error, result); });\n if (this._endStream) {\n try { return this._outputStream.end(singleDone); }\n catch (error) { /* error closing stream */ }\n }\n singleDone && singleDone();\n }\n}\n\n// Replaces a character by its escaped version\nfunction characterReplacer(character) {\n // Replace a single character by its escaped version\n let result = escapedCharacters[character];\n if (result === undefined) {\n // Replace a single character with its 4-bit unicode escape sequence\n if (character.length === 1) {\n result = character.charCodeAt(0).toString(16);\n result = '\\\\u0000'.substr(0, 6 - result.length) + result;\n }\n // Replace a surrogate pair with its 8-bit unicode escape sequence\n else {\n result = ((character.charCodeAt(0) - 0xD800) * 0x400 +\n character.charCodeAt(1) + 0x2400).toString(16);\n result = '\\\\U00000000'.substr(0, 10 - result.length) + result;\n }\n }\n return result;\n}\n\nfunction escapeRegex(regex) {\n return regex.replace(/[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n}\n","// **N3Store** objects store N3 quads by graph in memory.\nimport { Readable } from 'readable-stream';\nimport { default as N3DataFactory, termToId, termFromId } from './N3DataFactory';\nimport namespaces from './IRIs';\nimport { isDefaultGraph } from './N3Util';\n\n// ## Constructor\nexport default class N3Store {\n constructor(quads, options) {\n // The number of quads is initially zero\n this._size = 0;\n // `_graphs` contains subject, predicate, and object indexes per graph\n this._graphs = Object.create(null);\n // `_ids` maps entities such as `http://xmlns.com/foaf/0.1/name` to numbers,\n // saving memory by using only numbers as keys in `_graphs`\n this._id = 0;\n this._ids = Object.create(null);\n this._entities = Object.create(null); // inverse of `_ids`\n // `_blankNodeIndex` is the index of the last automatically named blank node\n this._blankNodeIndex = 0;\n\n // Shift parameters if `quads` is not given\n if (!options && quads && !quads[0])\n options = quads, quads = null;\n options = options || {};\n this._factory = options.factory || N3DataFactory;\n\n // Add quads if passed\n if (quads)\n this.addQuads(quads);\n }\n\n _termFromId(id, factory) {\n if (id[0] === '.') {\n const entities = this._entities;\n const terms = id.split('.');\n const q = this._factory.quad(\n this._termFromId(entities[terms[1]]),\n this._termFromId(entities[terms[2]]),\n this._termFromId(entities[terms[3]]),\n terms[4] && this._termFromId(entities[terms[4]])\n );\n return q;\n }\n return termFromId(id, factory);\n }\n\n _termToNumericId(term) {\n if (term.termType === 'Quad') {\n const s = this._termToNumericId(term.subject),\n p = this._termToNumericId(term.predicate),\n o = this._termToNumericId(term.object);\n let g;\n\n return s && p && o && (isDefaultGraph(term.graph) || (g = this._termToNumericId(term.graph))) &&\n this._ids[g ? `.${s}.${p}.${o}.${g}` : `.${s}.${p}.${o}`];\n }\n return this._ids[termToId(term)];\n }\n\n _termToNewNumericId(term) {\n // This assumes that no graph term is present - we may wish to error if there is one\n const str = term && term.termType === 'Quad' ?\n `.${this._termToNewNumericId(term.subject)}.${this._termToNewNumericId(term.predicate)}.${this._termToNewNumericId(term.object)}${\n isDefaultGraph(term.graph) ? '' : `.${this._termToNewNumericId(term.graph)}`\n }`\n : termToId(term);\n\n return this._ids[str] || (this._ids[this._entities[++this._id] = str] = this._id);\n }\n\n // ## Public properties\n\n // ### `size` returns the number of quads in the store\n get size() {\n // Return the quad count if if was cached\n let size = this._size;\n if (size !== null)\n return size;\n\n // Calculate the number of quads by counting to the deepest level\n size = 0;\n const graphs = this._graphs;\n let subjects, subject;\n for (const graphKey in graphs)\n for (const subjectKey in (subjects = graphs[graphKey].subjects))\n for (const predicateKey in (subject = subjects[subjectKey]))\n size += Object.keys(subject[predicateKey]).length;\n return this._size = size;\n }\n\n // ## Private methods\n\n // ### `_addToIndex` adds a quad to a three-layered index.\n // Returns if the index has changed, if the entry did not already exist.\n _addToIndex(index0, key0, key1, key2) {\n // Create layers as necessary\n const index1 = index0[key0] || (index0[key0] = {});\n const index2 = index1[key1] || (index1[key1] = {});\n // Setting the key to _any_ value signals the presence of the quad\n const existed = key2 in index2;\n if (!existed)\n index2[key2] = null;\n return !existed;\n }\n\n // ### `_removeFromIndex` removes a quad from a three-layered index\n _removeFromIndex(index0, key0, key1, key2) {\n // Remove the quad from the index\n const index1 = index0[key0], index2 = index1[key1];\n delete index2[key2];\n\n // Remove intermediary index layers if they are empty\n for (const key in index2) return;\n delete index1[key1];\n for (const key in index1) return;\n delete index0[key0];\n }\n\n // ### `_findInIndex` finds a set of quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n // `name0`, `name1`, and `name2` are the names of the keys at each level,\n // used when reconstructing the resulting quad\n // (for instance: _subject_, _predicate_, and _object_).\n // Finally, `graphId` will be the graph of the created quads.\n *_findInIndex(index0, key0, key1, key2, name0, name1, name2, graphId) {\n let tmp, index1, index2;\n const entityKeys = this._entities;\n const graph = this._termFromId(graphId, this._factory);\n const parts = { subject: null, predicate: null, object: null };\n\n // If a key is specified, use only that part of index 0.\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (const value0 in index0) {\n if (index1 = index0[value0]) {\n parts[name0] = this._termFromId(entityKeys[value0], this._factory);\n // If a key is specified, use only that part of index 1.\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (const value1 in index1) {\n if (index2 = index1[value1]) {\n parts[name1] = this._termFromId(entityKeys[value1], this._factory);\n // If a key is specified, use only that part of index 2, if it exists.\n const values = key2 ? (key2 in index2 ? [key2] : []) : Object.keys(index2);\n // Create quads for all items found in index 2.\n for (let l = 0; l < values.length; l++) {\n parts[name2] = this._termFromId(entityKeys[values[l]], this._factory);\n yield this._factory.quad(parts.subject, parts.predicate, parts.object, graph);\n }\n }\n }\n }\n }\n }\n\n // ### `_loop` executes the callback on all keys of index 0\n _loop(index0, callback) {\n for (const key0 in index0)\n callback(key0);\n }\n\n // ### `_loopByKey0` executes the callback on all keys of a certain entry in index 0\n _loopByKey0(index0, key0, callback) {\n let index1, key1;\n if (index1 = index0[key0]) {\n for (key1 in index1)\n callback(key1);\n }\n }\n\n // ### `_loopByKey1` executes the callback on given keys of all entries in index 0\n _loopByKey1(index0, key1, callback) {\n let key0, index1;\n for (key0 in index0) {\n index1 = index0[key0];\n if (index1[key1])\n callback(key0);\n }\n }\n\n // ### `_loopBy2Keys` executes the callback on given keys of certain entries in index 2\n _loopBy2Keys(index0, key0, key1, callback) {\n let index1, index2, key2;\n if ((index1 = index0[key0]) && (index2 = index1[key1])) {\n for (key2 in index2)\n callback(key2);\n }\n }\n\n // ### `_countInIndex` counts matching quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n _countInIndex(index0, key0, key1, key2) {\n let count = 0, tmp, index1, index2;\n\n // If a key is specified, count only that part of index 0\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (const value0 in index0) {\n if (index1 = index0[value0]) {\n // If a key is specified, count only that part of index 1\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (const value1 in index1) {\n if (index2 = index1[value1]) {\n // If a key is specified, count the quad if it exists\n if (key2) (key2 in index2) && count++;\n // Otherwise, count all quads\n else count += Object.keys(index2).length;\n }\n }\n }\n }\n return count;\n }\n\n // ### `_getGraphs` returns an array with the given graph,\n // or all graphs if the argument is null or undefined.\n _getGraphs(graph) {\n if (!isString(graph))\n return this._graphs;\n const graphs = {};\n graphs[graph] = this._graphs[graph];\n return graphs;\n }\n\n // ### `_uniqueEntities` returns a function that accepts an entity ID\n // and passes the corresponding entity to callback if it hasn't occurred before.\n _uniqueEntities(callback) {\n const uniqueIds = Object.create(null);\n return id => {\n if (!(id in uniqueIds)) {\n uniqueIds[id] = true;\n callback(this._termFromId(this._entities[id], this._factory));\n }\n };\n }\n\n // ## Public methods\n\n // ### `add` adds the specified quad to the dataset.\n // Returns the dataset instance it was called on.\n // Existing quads, as defined in Quad.equals, will be ignored.\n add(quad) {\n this.addQuad(quad);\n return this;\n }\n\n // ### `addQuad` adds a new quad to the store.\n // Returns if the quad index has changed, if the quad did not already exist.\n addQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n graph = subject.graph, object = subject.object,\n predicate = subject.predicate, subject = subject.subject;\n\n // Convert terms to internal string representation\n graph = termToId(graph);\n\n // Find the graph that will contain the triple\n let graphItem = this._graphs[graph];\n // Create the graph if it doesn't exist yet\n if (!graphItem) {\n graphItem = this._graphs[graph] = { subjects: {}, predicates: {}, objects: {} };\n // Freezing a graph helps subsequent `add` performance,\n // and properties will never be modified anyway\n Object.freeze(graphItem);\n }\n\n // Since entities can often be long IRIs, we avoid storing them in every index.\n // Instead, we have a separate index that maps entities to numbers,\n // which are then used as keys in the other indexes.\n subject = this._termToNewNumericId(subject);\n predicate = this._termToNewNumericId(predicate);\n object = this._termToNewNumericId(object);\n\n const changed = this._addToIndex(graphItem.subjects, subject, predicate, object);\n this._addToIndex(graphItem.predicates, predicate, object, subject);\n this._addToIndex(graphItem.objects, object, subject, predicate);\n\n // The cached quad count is now invalid\n this._size = null;\n return changed;\n }\n\n // ### `addQuads` adds multiple quads to the store\n addQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `delete` removes the specified quad from the dataset.\n // Returns the dataset instance it was called on.\n delete(quad) {\n this.removeQuad(quad);\n return this;\n }\n\n // ### `has` determines whether a dataset includes a certain quad or quad pattern.\n has(subjectOrQuad, predicate, object, graph) {\n if (subjectOrQuad && subjectOrQuad.subject)\n ({ subject: subjectOrQuad, predicate, object, graph } = subjectOrQuad);\n return !this.readQuads(subjectOrQuad, predicate, object, graph).next().done;\n }\n\n // ### `import` adds a stream of quads to the store\n import(stream) {\n stream.on('data', quad => { this.addQuad(quad); });\n return stream;\n }\n\n // ### `removeQuad` removes a quad from the store if it exists\n removeQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n graph = subject.graph, object = subject.object,\n predicate = subject.predicate, subject = subject.subject;\n\n // Convert terms to internal string representation\n graph = termToId(graph);\n\n // Find internal identifiers for all components\n // and verify the quad exists.\n const graphs = this._graphs;\n let graphItem, subjects, predicates;\n if (!(subject = subject && this._termToNumericId(subject)) || !(predicate = predicate && this._termToNumericId(predicate)) ||\n !(object = object && this._termToNumericId(object)) || !(graphItem = graphs[graph]) ||\n !(subjects = graphItem.subjects[subject]) ||\n !(predicates = subjects[predicate]) ||\n !(object in predicates))\n return false;\n\n // Remove it from all indexes\n this._removeFromIndex(graphItem.subjects, subject, predicate, object);\n this._removeFromIndex(graphItem.predicates, predicate, object, subject);\n this._removeFromIndex(graphItem.objects, object, subject, predicate);\n if (this._size !== null) this._size--;\n\n // Remove the graph if it is empty\n for (subject in graphItem.subjects) return true;\n delete graphs[graph];\n return true;\n }\n\n // ### `removeQuads` removes multiple quads from the store\n removeQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.removeQuad(quads[i]);\n }\n\n // ### `remove` removes a stream of quads from the store\n remove(stream) {\n stream.on('data', quad => { this.removeQuad(quad); });\n return stream;\n }\n\n // ### `removeMatches` removes all matching quads from the store\n // Setting any field to `undefined` or `null` indicates a wildcard.\n removeMatches(subject, predicate, object, graph) {\n const stream = new Readable({ objectMode: true });\n\n stream._read = () => {\n for (const quad of this.readQuads(subject, predicate, object, graph))\n stream.push(quad);\n stream.push(null);\n };\n\n return this.remove(stream);\n }\n\n // ### `deleteGraph` removes all triples with the given graph from the store\n deleteGraph(graph) {\n return this.removeMatches(null, null, null, graph);\n }\n\n // ### `getQuads` returns an array of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getQuads(subject, predicate, object, graph) {\n return [...this.readQuads(subject, predicate, object, graph)];\n }\n\n // ### `readQuads` returns an generator of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n *readQuads(subject, predicate, object, graph) {\n // Convert terms to internal string representation\n graph = graph && termToId(graph);\n\n const graphs = this._getGraphs(graph);\n let content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the object index will be the fastest\n yield* this._findInIndex(content.objects, objectId, subjectId, predicateId,\n 'object', 'subject', 'predicate', graphId);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n yield* this._findInIndex(content.subjects, subjectId, predicateId, null,\n 'subject', 'predicate', 'object', graphId);\n }\n else if (predicateId)\n // If only predicate and possibly object are given, the predicate index will be the fastest\n yield* this._findInIndex(content.predicates, predicateId, objectId, null,\n 'predicate', 'object', 'subject', graphId);\n else if (objectId)\n // If only object is given, the object index will be the fastest\n yield* this._findInIndex(content.objects, objectId, null, null,\n 'object', 'subject', 'predicate', graphId);\n else\n // If nothing is given, iterate subjects and predicates first\n yield* this._findInIndex(content.subjects, null, null, null,\n 'subject', 'predicate', 'object', graphId);\n }\n }\n }\n\n // ### `match` returns a new dataset that is comprised of all quads in the current instance matching the given arguments.\n // The logic described in Quad Matching is applied for each quad in this dataset to check if it should be included in the output dataset.\n // Note: This method always returns a new DatasetCore, even if that dataset contains no quads.\n // Note: Since a DatasetCore is an unordered set, the order of the quads within the returned sequence is arbitrary.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n // For backwards compatibility, the object return also implements the Readable stream interface.\n match(subject, predicate, object, graph) {\n return new DatasetCoreAndReadableStream(this, subject, predicate, object, graph);\n }\n\n // ### `countQuads` returns the number of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n countQuads(subject, predicate, object, graph) {\n // Convert terms to internal string representation\n graph = graph && termToId(graph);\n\n const graphs = this._getGraphs(graph);\n let count = 0, content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return 0;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subject) {\n if (object)\n // If subject and object are given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n count += this._countInIndex(content.subjects, subjectId, predicateId, objectId);\n }\n else if (predicate) {\n // If only predicate and possibly object are given, the predicate index will be the fastest\n count += this._countInIndex(content.predicates, predicateId, objectId, subjectId);\n }\n else {\n // If only object is possibly given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n }\n }\n }\n return count;\n }\n\n // ### `forEach` executes the callback on all quads.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forEach(callback, subject, predicate, object, graph) {\n this.some(quad => {\n callback(quad);\n return false;\n }, subject, predicate, object, graph);\n }\n\n // ### `every` executes the callback on all quads,\n // and returns `true` if it returns truthy for all them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n every(callback, subject, predicate, object, graph) {\n let some = false;\n const every = !this.some(quad => {\n some = true;\n return !callback(quad);\n }, subject, predicate, object, graph);\n return some && every;\n }\n\n // ### `some` executes the callback on all quads,\n // and returns `true` if it returns truthy for any of them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n some(callback, subject, predicate, object, graph) {\n for (const quad of this.readQuads(subject, predicate, object, graph))\n if (callback(quad))\n return true;\n return false;\n }\n\n // ### `getSubjects` returns all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getSubjects(predicate, object, graph) {\n const results = [];\n this.forSubjects(s => { results.push(s); }, predicate, object, graph);\n return results;\n }\n\n // ### `forSubjects` executes the callback on all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forSubjects(callback, predicate, object, graph) {\n // Convert terms to internal string representation\n graph = graph && termToId(graph);\n\n const graphs = this._getGraphs(graph);\n let content, predicateId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (predicate && !(predicateId = this._termToNumericId(predicate)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (predicateId) {\n if (objectId)\n // If predicate and object are given, the POS index is best.\n this._loopBy2Keys(content.predicates, predicateId, objectId, callback);\n else\n // If only predicate is given, the SPO index is best.\n this._loopByKey1(content.subjects, predicateId, callback);\n }\n else if (objectId)\n // If only object is given, the OSP index is best.\n this._loopByKey0(content.objects, objectId, callback);\n else\n // If no params given, iterate all the subjects\n this._loop(content.subjects, callback);\n }\n }\n }\n\n // ### `getPredicates` returns all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getPredicates(subject, object, graph) {\n const results = [];\n this.forPredicates(p => { results.push(p); }, subject, object, graph);\n return results;\n }\n\n // ### `forPredicates` executes the callback on all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forPredicates(callback, subject, object, graph) {\n // Convert terms to internal string representation\n graph = graph && termToId(graph);\n\n const graphs = this._getGraphs(graph);\n let content, subjectId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n object && !(objectId = this._termToNumericId(object)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the OSP index is best.\n this._loopBy2Keys(content.objects, objectId, subjectId, callback);\n else\n // If only subject is given, the SPO index is best.\n this._loopByKey0(content.subjects, subjectId, callback);\n }\n else if (objectId)\n // If only object is given, the POS index is best.\n this._loopByKey1(content.predicates, objectId, callback);\n else\n // If no params given, iterate all the predicates.\n this._loop(content.predicates, callback);\n }\n }\n }\n\n // ### `getObjects` returns all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getObjects(subject, predicate, graph) {\n const results = [];\n this.forObjects(o => { results.push(o); }, subject, predicate, graph);\n return results;\n }\n\n // ### `forObjects` executes the callback on all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forObjects(callback, subject, predicate, graph) {\n // Convert terms to internal string representation\n graph = graph && termToId(graph);\n\n const graphs = this._getGraphs(graph);\n let content, subjectId, predicateId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (subject && !(subjectId = this._termToNumericId(subject)) ||\n predicate && !(predicateId = this._termToNumericId(predicate)))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (predicateId)\n // If subject and predicate are given, the SPO index is best.\n this._loopBy2Keys(content.subjects, subjectId, predicateId, callback);\n else\n // If only subject is given, the OSP index is best.\n this._loopByKey1(content.objects, subjectId, callback);\n }\n else if (predicateId)\n // If only predicate is given, the POS index is best.\n this._loopByKey0(content.predicates, predicateId, callback);\n else\n // If no params given, iterate all the objects.\n this._loop(content.objects, callback);\n }\n }\n }\n\n // ### `getGraphs` returns all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getGraphs(subject, predicate, object) {\n const results = [];\n this.forGraphs(g => { results.push(g); }, subject, predicate, object);\n return results;\n }\n\n // ### `forGraphs` executes the callback on all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forGraphs(callback, subject, predicate, object) {\n for (const graph in this._graphs) {\n this.some(quad => {\n callback(quad.graph);\n return true; // Halt iteration of some()\n }, subject, predicate, object, graph);\n }\n }\n\n // ### `createBlankNode` creates a new blank node, returning its name\n createBlankNode(suggestedName) {\n let name, index;\n // Generate a name based on the suggested name\n if (suggestedName) {\n name = suggestedName = `_:${suggestedName}`, index = 1;\n while (this._ids[name])\n name = suggestedName + index++;\n }\n // Generate a generic blank node name\n else {\n do { name = `_:b${this._blankNodeIndex++}`; }\n while (this._ids[name]);\n }\n // Add the blank node to the entities, avoiding the generation of duplicates\n this._ids[name] = ++this._id;\n this._entities[this._id] = name;\n return this._factory.blankNode(name.substr(2));\n }\n\n // ### `extractLists` finds and removes all list triples\n // and returns the items per list.\n extractLists({ remove = false, ignoreErrors = false } = {}) {\n const lists = {}; // has scalar keys so could be a simple Object\n const onError = ignoreErrors ? (() => true) :\n ((node, message) => { throw new Error(`${node.value} ${message}`); });\n\n // Traverse each list from its tail\n const tails = this.getQuads(null, namespaces.rdf.rest, namespaces.rdf.nil, null);\n const toRemove = remove ? [...tails] : [];\n tails.forEach(tailQuad => {\n const items = []; // the members found as objects of rdf:first quads\n let malformed = false; // signals whether the current list is malformed\n let head; // the head of the list (_:b1 in above example)\n let headPos; // set to subject or object when head is set\n const graph = tailQuad.graph; // make sure list is in exactly one graph\n\n // Traverse the list from tail to end\n let current = tailQuad.subject;\n while (current && !malformed) {\n const objectQuads = this.getQuads(null, null, current, null);\n const subjectQuads = this.getQuads(current, null, null, null);\n let quad, first = null, rest = null, parent = null;\n\n // Find the first and rest of this list node\n for (let i = 0; i < subjectQuads.length && !malformed; i++) {\n quad = subjectQuads[i];\n if (!quad.graph.equals(graph))\n malformed = onError(current, 'not confined to single graph');\n else if (head)\n malformed = onError(current, 'has non-list arcs out');\n\n // one rdf:first\n else if (quad.predicate.value === namespaces.rdf.first) {\n if (first)\n malformed = onError(current, 'has multiple rdf:first arcs');\n else\n toRemove.push(first = quad);\n }\n\n // one rdf:rest\n else if (quad.predicate.value === namespaces.rdf.rest) {\n if (rest)\n malformed = onError(current, 'has multiple rdf:rest arcs');\n else\n toRemove.push(rest = quad);\n }\n\n // alien triple\n else if (objectQuads.length)\n malformed = onError(current, 'can\\'t be subject and object');\n else {\n head = quad; // e.g. { (1 2 3) :p :o }\n headPos = 'subject';\n }\n }\n\n // { :s :p (1 2) } arrives here with no head\n // { (1 2) :p :o } arrives here with head set to the list.\n for (let i = 0; i < objectQuads.length && !malformed; ++i) {\n quad = objectQuads[i];\n if (head)\n malformed = onError(current, 'can\\'t have coreferences');\n // one rdf:rest\n else if (quad.predicate.value === namespaces.rdf.rest) {\n if (parent)\n malformed = onError(current, 'has incoming rdf:rest arcs');\n else\n parent = quad;\n }\n else {\n head = quad; // e.g. { :s :p (1 2) }\n headPos = 'object';\n }\n }\n\n // Store the list item and continue with parent\n if (!first)\n malformed = onError(current, 'has no list head');\n else\n items.unshift(first.object);\n current = parent && parent.subject;\n }\n\n // Don't remove any quads if the list is malformed\n if (malformed)\n remove = false;\n // Store the list under the value of its head\n else if (head)\n lists[head[headPos].value] = items;\n });\n\n // Remove list quads if requested\n if (remove)\n this.removeQuads(toRemove);\n return lists;\n }\n\n // ### Store is an iterable.\n // Can be used where iterables are expected: for...of loops, array spread operator,\n // `yield*`, and destructuring assignment (order is not guaranteed).\n *[Symbol.iterator]() {\n yield* this.readQuads();\n }\n}\n\n// Determines whether the argument is a string\nfunction isString(s) {\n return typeof s === 'string' || s instanceof String;\n}\n\n/**\n * A class that implements both DatasetCore and Readable.\n */\nclass DatasetCoreAndReadableStream extends Readable {\n constructor(n3Store, subject, predicate, object, graph) {\n super({ objectMode: true });\n Object.assign(this, { n3Store, subject, predicate, object, graph });\n }\n\n get filtered() {\n if (!this._filtered) {\n const { n3Store, graph, object, predicate, subject } = this;\n const newStore = this._filtered = new N3Store({ factory: n3Store._factory });\n for (const quad of n3Store.readQuads(subject, predicate, object, graph))\n newStore.addQuad(quad);\n }\n return this._filtered;\n }\n\n get size() {\n return this.filtered.size;\n }\n\n _read() {\n for (const quad of this)\n this.push(quad);\n this.push(null);\n }\n\n add(quad) {\n return this.filtered.add(quad);\n }\n\n delete(quad) {\n return this.filtered.delete(quad);\n }\n\n has(quad) {\n return this.filtered.has(quad);\n }\n\n match(subject, predicate, object, graph) {\n return new DatasetCoreAndReadableStream(this.filtered, subject, predicate, object, graph);\n }\n\n *[Symbol.iterator]() {\n yield* this._filtered || this.n3Store.readQuads(this.subject, this.predicate, this.object, this.graph);\n }\n}\n","// **N3StreamParser** parses a text stream into a quad stream.\nimport { Transform } from 'readable-stream';\nimport N3Parser from './N3Parser';\n\n// ## Constructor\nexport default class N3StreamParser extends Transform {\n constructor(options) {\n super({ decodeStrings: true });\n this._readableState.objectMode = true;\n\n // Set up parser with dummy stream to obtain `data` and `end` callbacks\n const parser = new N3Parser(options);\n let onData, onEnd;\n parser.parse({\n on: (event, callback) => {\n switch (event) {\n case 'data': onData = callback; break;\n case 'end': onEnd = callback; break;\n }\n },\n },\n // Handle quads by pushing them down the pipeline\n (error, quad) => { error && this.emit('error', error) || quad && this.push(quad); },\n // Emit prefixes through the `prefix` event\n (prefix, uri) => { this.emit('prefix', prefix, uri); }\n );\n\n // Implement Transform methods through parser callbacks\n this._transform = (chunk, encoding, done) => { onData(chunk); done(); };\n this._flush = done => { onEnd(); done(); };\n }\n\n // ### Parses a stream of strings\n import(stream) {\n stream.on('data', chunk => { this.write(chunk); });\n stream.on('end', () => { this.end(); });\n stream.on('error', error => { this.emit('error', error); });\n return this;\n }\n}\n","// **N3StreamWriter** serializes a quad stream into a text stream.\nimport { Transform } from 'readable-stream';\nimport N3Writer from './N3Writer';\n\n// ## Constructor\nexport default class N3StreamWriter extends Transform {\n constructor(options) {\n super({ encoding: 'utf8', writableObjectMode: true });\n\n // Set up writer with a dummy stream object\n const writer = this._writer = new N3Writer({\n write: (quad, encoding, callback) => { this.push(quad); callback && callback(); },\n end: callback => { this.push(null); callback && callback(); },\n }, options);\n\n // Implement Transform methods on top of writer\n this._transform = (quad, encoding, done) => { writer.addQuad(quad, done); };\n this._flush = done => { writer.end(done); };\n }\n\n// ### Serializes a stream of quads\n import(stream) {\n stream.on('data', quad => { this.write(quad); });\n stream.on('end', () => { this.end(); });\n stream.on('error', error => { this.emit('error', error); });\n stream.on('prefix', (prefix, iri) => { this._writer.addPrefix(prefix, iri); });\n return this;\n }\n}\n","import Lexer from './N3Lexer';\nimport Parser from './N3Parser';\nimport Writer from './N3Writer';\nimport Store from './N3Store';\nimport StreamParser from './N3StreamParser';\nimport StreamWriter from './N3StreamWriter';\nimport * as Util from './N3Util';\n\nimport {\n default as DataFactory,\n\n Term,\n NamedNode,\n Literal,\n BlankNode,\n Variable,\n DefaultGraph,\n Quad,\n Triple,\n\n termFromId,\n termToId,\n} from './N3DataFactory';\n\n// Named exports\nexport {\n Lexer,\n Parser,\n Writer,\n Store,\n StreamParser,\n StreamWriter,\n Util,\n\n DataFactory,\n\n Term,\n NamedNode,\n Literal,\n BlankNode,\n Variable,\n DefaultGraph,\n Quad,\n Triple,\n\n termFromId,\n termToId,\n};\n\n// Export all named exports as a default object for backward compatibility\nexport default {\n Lexer,\n Parser,\n Writer,\n Store,\n StreamParser,\n StreamWriter,\n Util,\n\n DataFactory,\n\n Term,\n NamedNode,\n Literal,\n BlankNode,\n Variable,\n DefaultGraph,\n Quad,\n Triple,\n\n termFromId,\n termToId,\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","(function() {\n var root;\n\n\tif (typeof window === 'object' && window) {\n\t\troot = window;\n\t} else {\n\t\troot = global;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = root.Promise ? root.Promise : Promise;\n\t} else if (!root.Promise) {\n\t\troot.Promise = Promise;\n\t}\n\n\t// Use polyfill for setImmediate for performance gains\n\tvar asap = root.setImmediate || function(fn) { setTimeout(fn, 1); };\n\n\t// Polyfill for Function.prototype.bind\n\tfunction bind(fn, thisArg) {\n\t\treturn function() {\n\t\t\tfn.apply(thisArg, arguments);\n\t\t}\n\t}\n\n\tvar isArray = Array.isArray || function(value) { return Object.prototype.toString.call(value) === \"[object Array]\" };\n\n\tfunction Promise(fn) {\n\t\tif (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');\n\t\tif (typeof fn !== 'function') throw new TypeError('not a function');\n\t\tthis._state = null;\n\t\tthis._value = null;\n\t\tthis._deferreds = []\n\n\t\tdoResolve(fn, bind(resolve, this), bind(reject, this))\n\t}\n\n\tfunction handle(deferred) {\n\t\tvar me = this;\n\t\tif (this._state === null) {\n\t\t\tthis._deferreds.push(deferred);\n\t\t\treturn\n\t\t}\n\t\tasap(function() {\n\t\t\tvar cb = me._state ? deferred.onFulfilled : deferred.onRejected\n\t\t\tif (cb === null) {\n\t\t\t\t(me._state ? deferred.resolve : deferred.reject)(me._value);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar ret;\n\t\t\ttry {\n\t\t\t\tret = cb(me._value);\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tdeferred.reject(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdeferred.resolve(ret);\n\t\t})\n\t}\n\n\tfunction resolve(newValue) {\n\t\ttry { //Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n\t\t\tif (newValue === this) throw new TypeError('A promise cannot be resolved with itself.');\n\t\t\tif (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n\t\t\t\tvar then = newValue.then;\n\t\t\t\tif (typeof then === 'function') {\n\t\t\t\t\tdoResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._state = true;\n\t\t\tthis._value = newValue;\n\t\t\tfinale.call(this);\n\t\t} catch (e) { reject.call(this, e); }\n\t}\n\n\tfunction reject(newValue) {\n\t\tthis._state = false;\n\t\tthis._value = newValue;\n\t\tfinale.call(this);\n\t}\n\n\tfunction finale() {\n\t\tfor (var i = 0, len = this._deferreds.length; i < len; i++) {\n\t\t\thandle.call(this, this._deferreds[i]);\n\t\t}\n\t\tthis._deferreds = null;\n\t}\n\n\tfunction Handler(onFulfilled, onRejected, resolve, reject){\n\t\tthis.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n\t\tthis.onRejected = typeof onRejected === 'function' ? onRejected : null;\n\t\tthis.resolve = resolve;\n\t\tthis.reject = reject;\n\t}\n\n\t/**\n\t * Take a potentially misbehaving resolver function and make sure\n\t * onFulfilled and onRejected are only called once.\n\t *\n\t * Makes no guarantees about asynchrony.\n\t */\n\tfunction doResolve(fn, onFulfilled, onRejected) {\n\t\tvar done = false;\n\t\ttry {\n\t\t\tfn(function (value) {\n\t\t\t\tif (done) return;\n\t\t\t\tdone = true;\n\t\t\t\tonFulfilled(value);\n\t\t\t}, function (reason) {\n\t\t\t\tif (done) return;\n\t\t\t\tdone = true;\n\t\t\t\tonRejected(reason);\n\t\t\t})\n\t\t} catch (ex) {\n\t\t\tif (done) return;\n\t\t\tdone = true;\n\t\t\tonRejected(ex);\n\t\t}\n\t}\n\n\tPromise.prototype['catch'] = function (onRejected) {\n\t\treturn this.then(null, onRejected);\n\t};\n\n\tPromise.prototype.then = function(onFulfilled, onRejected) {\n\t\tvar me = this;\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\thandle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n\t\t})\n\t};\n\n\tPromise.all = function () {\n\t\tvar args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\n\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tif (args.length === 0) return resolve([]);\n\t\t\tvar remaining = args.length;\n\t\t\tfunction res(i, val) {\n\t\t\t\ttry {\n\t\t\t\t\tif (val && (typeof val === 'object' || typeof val === 'function')) {\n\t\t\t\t\t\tvar then = val.then;\n\t\t\t\t\t\tif (typeof then === 'function') {\n\t\t\t\t\t\t\tthen.call(val, function (val) { res(i, val) }, reject);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\targs[i] = val;\n\t\t\t\t\tif (--remaining === 0) {\n\t\t\t\t\t\tresolve(args);\n\t\t\t\t\t}\n\t\t\t\t} catch (ex) {\n\t\t\t\t\treject(ex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i = 0; i < args.length; i++) {\n\t\t\t\tres(i, args[i]);\n\t\t\t}\n\t\t});\n\t};\n\n\tPromise.resolve = function (value) {\n\t\tif (value && typeof value === 'object' && value.constructor === Promise) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn new Promise(function (resolve) {\n\t\t\tresolve(value);\n\t\t});\n\t};\n\n\tPromise.reject = function (value) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\treject(value);\n\t\t});\n\t};\n\n\tPromise.race = function (values) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tfor(var i = 0, len = values.length; i < len; i++) {\n\t\t\t\tvalues[i].then(resolve, reject);\n\t\t\t}\n\t\t});\n\t};\n})();","/*! queue-microtask. MIT License. Feross Aboukhadijeh */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/BlankNode\"), exports);\n__exportStar(require(\"./lib/DataFactory\"), exports);\n__exportStar(require(\"./lib/DefaultGraph\"), exports);\n__exportStar(require(\"./lib/Literal\"), exports);\n__exportStar(require(\"./lib/NamedNode\"), exports);\n__exportStar(require(\"./lib/Quad\"), exports);\n__exportStar(require(\"./lib/Variable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n constructor(value) {\n this.termType = 'BlankNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'BlankNode' && other.value === this.value;\n }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\nconst BlankNode_1 = require(\"./BlankNode\");\nconst DefaultGraph_1 = require(\"./DefaultGraph\");\nconst Literal_1 = require(\"./Literal\");\nconst NamedNode_1 = require(\"./NamedNode\");\nconst Quad_1 = require(\"./Quad\");\nconst Variable_1 = require(\"./Variable\");\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n constructor(options) {\n this.blankNodeCounter = 0;\n options = options || {};\n this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n }\n /**\n * @param value The IRI for the named node.\n * @return A new instance of NamedNode.\n * @see NamedNode\n */\n namedNode(value) {\n return new NamedNode_1.NamedNode(value);\n }\n /**\n * @param value The optional blank node identifier.\n * @return A new instance of BlankNode.\n * If the `value` parameter is undefined a new identifier\n * for the blank node is generated for each call.\n * @see BlankNode\n */\n blankNode(value) {\n return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n }\n /**\n * @param value The literal value.\n * @param languageOrDatatype The optional language or datatype.\n * If `languageOrDatatype` is a NamedNode,\n * then it is used for the value of `NamedNode.datatype`.\n * Otherwise `languageOrDatatype` is used for the value\n * of `NamedNode.language`.\n * @return A new instance of Literal.\n * @see Literal\n */\n literal(value, languageOrDatatype) {\n return new Literal_1.Literal(value, languageOrDatatype);\n }\n /**\n * This method is optional.\n * @param value The variable name\n * @return A new instance of Variable.\n * @see Variable\n */\n variable(value) {\n return new Variable_1.Variable(value);\n }\n /**\n * @return An instance of DefaultGraph.\n */\n defaultGraph() {\n return DefaultGraph_1.DefaultGraph.INSTANCE;\n }\n /**\n * @param subject The quad subject term.\n * @param predicate The quad predicate term.\n * @param object The quad object term.\n * @param graph The quad graph term.\n * @return A new instance of Quad.\n * @see Quad\n */\n quad(subject, predicate, object, graph) {\n return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n }\n /**\n * Create a deep copy of the given term using this data factory.\n * @param original An RDF term.\n * @return A deep copy of the given term.\n */\n fromTerm(original) {\n // TODO: remove nasty any casts when this TS bug has been fixed:\n // https://github.com/microsoft/TypeScript/issues/26933\n switch (original.termType) {\n case 'NamedNode':\n return this.namedNode(original.value);\n case 'BlankNode':\n return this.blankNode(original.value);\n case 'Literal':\n if (original.language) {\n return this.literal(original.value, original.language);\n }\n if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n return this.literal(original.value, this.fromTerm(original.datatype));\n }\n return this.literal(original.value);\n case 'Variable':\n return this.variable(original.value);\n case 'DefaultGraph':\n return this.defaultGraph();\n case 'Quad':\n return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n }\n }\n /**\n * Create a deep copy of the given quad using this data factory.\n * @param original An RDF quad.\n * @return A deep copy of the given quad.\n */\n fromQuad(original) {\n return this.fromTerm(original);\n }\n /**\n * Reset the internal blank node counter.\n */\n resetBlankNodeCounter() {\n this.blankNodeCounter = 0;\n }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n constructor() {\n this.termType = 'DefaultGraph';\n this.value = '';\n // Private constructor\n }\n equals(other) {\n return !!other && other.termType === 'DefaultGraph';\n }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\nconst NamedNode_1 = require(\"./NamedNode\");\n/**\n * A term that represents an RDF literal, containing a string with an optional language tag or datatype.\n */\nclass Literal {\n constructor(value, languageOrDatatype) {\n this.termType = 'Literal';\n this.value = value;\n if (typeof languageOrDatatype === 'string') {\n this.language = languageOrDatatype;\n this.datatype = Literal.RDF_LANGUAGE_STRING;\n }\n else if (languageOrDatatype) {\n this.language = '';\n this.datatype = languageOrDatatype;\n }\n else {\n this.language = '';\n this.datatype = Literal.XSD_STRING;\n }\n }\n equals(other) {\n return !!other && other.termType === 'Literal' && other.value === this.value &&\n other.language === this.language && this.datatype.equals(other.datatype);\n }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n constructor(value) {\n this.termType = 'NamedNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'NamedNode' && other.value === this.value;\n }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n constructor(subject, predicate, object, graph) {\n this.termType = 'Quad';\n this.value = '';\n this.subject = subject;\n this.predicate = predicate;\n this.object = object;\n this.graph = graph;\n }\n equals(other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n this.subject.equals(other.subject) &&\n this.predicate.equals(other.predicate) &&\n this.object.equals(other.object) &&\n this.graph.equals(other.graph);\n }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n constructor(value) {\n this.termType = 'Variable';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'Variable' && other.value === this.value;\n }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/RdfIsomorphic\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTermGrounded = exports.termToSignature = exports.quadToSignature = exports.sha1hex = exports.hashTerm = exports.hashTerms = exports.getGraphBlankNodes = exports.uniqGraph = exports.deindexGraph = exports.indexGraph = exports.getQuadsWithoutBlankNodes = exports.getQuadsWithBlankNodes = exports.hasValue = exports.hashValues = exports.getBijectionInner = exports.getBijection = exports.isomorphic = void 0;\nconst hash_js_1 = require(\"hash.js\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst rdf_terms_1 = require(\"rdf-terms\");\n/**\n * Determines if the two given graphs are isomorphic.\n *\n * @param {Quad[]} graphA An array of quads, order is not important.\n * @param {Quad[]} graphB An array of quads, order is not important.\n * @return {boolean} If the two given graphs are isomorphic.\n */\nfunction isomorphic(graphA, graphB) {\n return !!getBijection(graphA, graphB);\n}\nexports.isomorphic = isomorphic;\n/**\n * Calculate a hash of graphA blank nodes to graphB blank nodes.\n * This represents a bijection from graphA's blank nodes to graphB's blank nodes.\n *\n * @param {Quad[]} graphA An array of quads, order is not important.\n * @param {Quad[]} graphB An array of quads, order is not important.\n * @return {IBijection} A hash representing a bijection, or null if none could be found.\n */\nfunction getBijection(graphA, graphB) {\n // Check if all (non-blanknode-containing) quads in the two graphs are equal.\n // We do this by creating a hash-based index for both graphs.\n const nonBlankIndexA = indexGraph(getQuadsWithoutBlankNodes(graphA));\n const nonBlankIndexB = indexGraph(getQuadsWithoutBlankNodes(graphB));\n if (Object.keys(nonBlankIndexA).length !== Object.keys(nonBlankIndexB).length) {\n return null;\n }\n for (const key in nonBlankIndexA) {\n if (nonBlankIndexA[key] !== nonBlankIndexB[key]) {\n return null;\n }\n }\n // Pre-process data that needs to be present in each iteration of getBijectionInner.\n const blankQuadsA = uniqGraph(getQuadsWithBlankNodes(graphA));\n const blankQuadsB = uniqGraph(getQuadsWithBlankNodes(graphB));\n const blankNodesA = getGraphBlankNodes(graphA);\n const blankNodesB = getGraphBlankNodes(graphB);\n return getBijectionInner(blankQuadsA, blankQuadsB, blankNodesA, blankNodesB);\n}\nexports.getBijection = getBijection;\nfunction getBijectionInner(blankQuadsA, blankQuadsB, blankNodesA, blankNodesB, groundedHashesA, groundedHashesB) {\n if (!groundedHashesA) {\n groundedHashesA = {};\n }\n if (!groundedHashesB) {\n groundedHashesB = {};\n }\n // Hash every term based on the signature of the quads if appears in.\n const [hashesA, ungroundedHashesA] = hashTerms(blankQuadsA, blankNodesA, groundedHashesA);\n const [hashesB, ungroundedHashesB] = hashTerms(blankQuadsB, blankNodesB, groundedHashesB);\n // Break quickly if a graph contains a grounded node that is not contained in the other graph.\n if (Object.keys(hashesA).length !== Object.keys(hashesB).length) {\n return null;\n }\n for (const hashKeyA in hashesA) {\n if (!hasValue(hashesB, hashesA[hashKeyA])) {\n return null;\n }\n }\n // Map the blank nodes from graph A to the blank nodes of graph B using the created hashes.\n // Grounded hashes will also be equal, but not needed here, we will need them in the next recursion\n // (as we only recurse on grounded nodes).\n let bijection = {};\n for (const blankNodeA of blankNodesA) {\n const blankNodeAString = rdf_string_1.termToString(blankNodeA);\n const blankNodeAHash = ungroundedHashesA[blankNodeAString];\n for (const blankNodeBString in ungroundedHashesB) {\n if (ungroundedHashesB[blankNodeBString] === blankNodeAHash) {\n bijection[blankNodeAString] = blankNodeBString;\n delete ungroundedHashesB[blankNodeBString];\n break;\n }\n }\n }\n // Check if all nodes from graph A and B are present in the bijection,\n // if not, speculatively mark pairs with matching ungrounded hashes as bijected, and recurse.\n if (!arraysEqual(Object.keys(bijection).sort(), blankNodesA.map(rdf_string_1.termToString).sort())\n || !arraysEqual(hashValues(bijection).sort(), blankNodesB.map(rdf_string_1.termToString).sort())) {\n // I have not yet been able to find any pathological cases where this code is reached.\n // This may be removable, but let's wait until someone proves that.\n bijection = null;\n for (const blankNodeA of blankNodesA) {\n // Only replace ungrounded node hashes\n const blankNodeAString = rdf_string_1.termToString(blankNodeA);\n if (!hashesA[blankNodeAString]) {\n for (const blankNodeB of blankNodesB) {\n // Only replace ungrounded node hashes\n const blankNodeBString = rdf_string_1.termToString(blankNodeB);\n if (!hashesB[blankNodeBString]) {\n if (ungroundedHashesA[blankNodeAString] === ungroundedHashesB[blankNodeBString]) {\n const hash = sha1hex(blankNodeAString);\n bijection = getBijectionInner(blankQuadsA, blankQuadsB, blankNodesA, blankNodesB, Object.assign(Object.assign({}, hashesA), { [blankNodeAString]: hash }), Object.assign(Object.assign({}, hashesB), { [blankNodeBString]: hash }));\n }\n }\n }\n }\n }\n }\n return bijection;\n}\nexports.getBijectionInner = getBijectionInner;\nfunction arraysEqual(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (let i = array1.length; i--;) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Get all values from the given hash\n * @param hash A hash.\n * @return {any[]} The array of values.\n */\nfunction hashValues(hash) {\n const arr = [];\n for (const e in hash) {\n arr.push(hash[e]);\n }\n return arr;\n}\nexports.hashValues = hashValues;\n/**\n * Check if the given hash contains the given value.\n * @param hash A hash.\n * @param {string} value A value.\n * @return {boolean} If it contains the value.\n */\nfunction hasValue(hash, value) {\n for (const hashValue in hash) {\n if (hash[hashValue] === value) {\n return true;\n }\n }\n return false;\n}\nexports.hasValue = hasValue;\n/**\n * Get all quads with blank nodes.\n * @param {Quad[]} graph An array of quads.\n * @return {Quad[]} An array of quads with blank nodes\n */\nfunction getQuadsWithBlankNodes(graph) {\n return graph.filter((quad) => rdf_terms_1.someTerms(quad, (value) => {\n return value.termType === 'BlankNode'\n || (value.termType === 'Quad' && rdf_terms_1.getTermsNested(value).some(term => term.termType === 'BlankNode'));\n }));\n}\nexports.getQuadsWithBlankNodes = getQuadsWithBlankNodes;\n/**\n * Get all quads without blank nodes.\n * @param {Quad[]} graph An array of quads.\n * @return {Quad[]} An array of quads without blank nodes\n */\nfunction getQuadsWithoutBlankNodes(graph) {\n return graph.filter((quad) => rdf_terms_1.everyTerms(quad, (value) => {\n return value.termType !== 'BlankNode'\n && !(value.termType === 'Quad' && rdf_terms_1.getTermsNested(value).some(term => term.termType === 'BlankNode'));\n }));\n}\nexports.getQuadsWithoutBlankNodes = getQuadsWithoutBlankNodes;\n/**\n * Create a hash-based index of the given graph.\n * @param {Quad[]} graph An array of quads, the order does not matter.\n * @return {{[p: string]: boolean}} A hash-based datastructure representing the graph.\n */\nfunction indexGraph(graph) {\n const index = {};\n for (const quad of graph) {\n index[JSON.stringify(rdf_string_1.quadToStringQuad(quad))] = true;\n }\n return index;\n}\nexports.indexGraph = indexGraph;\n/**\n * Create a graph from the given hash-based index.\n * @param {{[p: string]: boolean}} indexedGraph A hash-based datastructure representing the graph.\n * @return {Quad[]} An array of quads, the order does not matter.\n */\nfunction deindexGraph(indexedGraph) {\n return Object.keys(indexedGraph).map((str) => rdf_string_1.stringQuadToQuad(JSON.parse(str)));\n}\nexports.deindexGraph = deindexGraph;\n/**\n * Unique-ify the given RDF graph based on strict equality.\n * The output graph will consist of new quad and term instances.\n * @param {Quad[]} graph An input graph.\n * @return {Quad[]} The input graph without duplicates.\n */\nfunction uniqGraph(graph) {\n return deindexGraph(indexGraph(graph));\n}\nexports.uniqGraph = uniqGraph;\n/**\n * Find all blank nodes in the given graph.\n * @param {Quad[]} graph An array of quads.\n * @return {BlankNode[]} A list of (unique) blank nodes.\n */\nfunction getGraphBlankNodes(graph) {\n return rdf_terms_1.uniqTerms(graph.map((quad) => rdf_terms_1.getBlankNodes(rdf_terms_1.getTermsNested(quad)))\n .reduce((acc, val) => acc.concat(val), []));\n}\nexports.getGraphBlankNodes = getGraphBlankNodes;\n/**\n * Create term hashes for the given set of quads and blank node terms.\n *\n * @param {Quad[]} quads A set of quads.\n * @param {Term[]} terms Blank node terms.\n * @param {ITermHash} groundedHashes Grounded term hashes that are used to create more specific signatures\n * of other terms, because they are based on non-blank nodes and grounded blank nodes.\n * @return {[ITermHash]} A tuple of grounded and ungrounded hashes.\n */\nfunction hashTerms(quads, terms, groundedHashes) {\n const hashes = Object.assign({}, groundedHashes);\n const ungroundedHashes = {};\n let hashNeeded = true;\n // Iteratively mark nodes as grounded.\n // If a node is marked as grounded, then the next iteration can lead to new grounded states\n while (hashNeeded) {\n const initialGroundedNodesCount = Object.keys(hashes).length;\n for (const term of terms) {\n const termString = rdf_string_1.termToString(term);\n if (!hashes[termString]) {\n const [grounded, hash] = hashTerm(term, quads, hashes);\n if (grounded) {\n hashes[termString] = hash;\n }\n ungroundedHashes[termString] = hash;\n }\n }\n // All terms that have a unique hash at this point can be marked as grounded\n const uniques = {};\n for (const termKey in ungroundedHashes) {\n const hash = ungroundedHashes[termKey];\n if (uniques[hash] === undefined) {\n uniques[hash] = termKey;\n }\n else {\n uniques[hash] = false;\n }\n }\n for (const hash in uniques) {\n const value = uniques[hash];\n if (value) {\n hashes[value] = hash;\n }\n }\n // Check if the loop needs to terminate\n hashNeeded = initialGroundedNodesCount !== Object.keys(hashes).length;\n }\n return [hashes, ungroundedHashes];\n}\nexports.hashTerms = hashTerms;\n/**\n * Generate a hash for the given term based on the signature of the quads it appears in.\n *\n * Signatures are made up of grounded terms in quads that are associated with a term,\n * i.e., everything except for ungrounded blank nodes.\n * The hash is created by hashing a sorted list of each quad's signature,\n * where each quad signature is a concatenation of the signature of all grounded terms.\n *\n * Terms are considered grounded if they are a member in the given hash AND if they are not the given term.\n *\n * @param {Term} term The term to get the hash around.\n * @param {Quad[]} quads The quads to include in the hashing.\n * @param {ITermHash} hashes A grounded term hash object.\n * @return {[boolean , string]} A tuple indicating if the given term is grounded in all the given quads, and the hash.\n */\nfunction hashTerm(term, quads, hashes) {\n const quadSignatures = [];\n let grounded = true;\n for (const quad of quads) {\n const terms = rdf_terms_1.getTermsNested(quad);\n if (terms.some((quadTerm) => quadTerm.equals(term))) {\n quadSignatures.push(quadToSignature(quad, hashes, term));\n for (const quadTerm of terms) {\n if (!isTermGrounded(quadTerm, hashes) && !quadTerm.equals(term)) {\n grounded = false;\n }\n }\n }\n }\n const hash = sha1hex(quadSignatures.sort().join(''));\n return [grounded, hash];\n}\nexports.hashTerm = hashTerm;\n/**\n * Create a hash using sha1 as a hex digest.\n * @param {string | Buffer | NodeJS.TypedArray | DataView} data Something to hash.\n * @return {string} A hash string.\n */\nfunction sha1hex(data) {\n return hash_js_1.sha1().update(data).digest('hex');\n}\nexports.sha1hex = sha1hex;\n/**\n * Convert the given quad to a string signature so that it can be used in the hash structure.\n * @param {Quad} quad A quad.\n * @param {ITermHash} hashes A grounded term hash object.\n * @param {Term} term A target term to compare with.\n * @return {string} A string signature.\n */\nfunction quadToSignature(quad, hashes, term) {\n return rdf_terms_1.getTerms(quad).map((quadTerm) => termToSignature(quadTerm, hashes, term)).join('|');\n}\nexports.quadToSignature = quadToSignature;\n/**\n * Convert the given term to a string signature so that it can be used in the hash structure.\n * @param {Term} term A term.\n * @param {ITermHash} hashes A grounded term hash object.\n * @param {Term} target A target term to compare with.\n * @return {string} A string signature.\n */\nfunction termToSignature(term, hashes, target) {\n if (term.equals(target)) {\n return '@self';\n }\n else if (term.termType === 'BlankNode') {\n return hashes[rdf_string_1.termToString(term)] || '@blank';\n }\n else if (term.termType === 'Quad') {\n return `<${quadToSignature(term, hashes, target)}>`;\n }\n else {\n return rdf_string_1.termToString(term);\n }\n}\nexports.termToSignature = termToSignature;\n/**\n * Check if a term is grounded.\n *\n * A term is grounded if it is not a blank node\n * or if it included in the given hash of grounded nodes.\n *\n * @param {Term} term A term.\n * @param {ITermHash} hashes A grounded term hash object.\n * @return {boolean} If the given term is grounded.\n */\nfunction isTermGrounded(term, hashes) {\n return (term.termType !== 'BlankNode'\n && !(term.termType === 'Quad' && rdf_terms_1.getTermsNested(term).some(subTerm => !isTermGrounded(subTerm, hashes)))) || !!hashes[rdf_string_1.termToString(term)];\n}\nexports.isTermGrounded = isTermGrounded;\n//# sourceMappingURL=RdfIsomorphic.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSupportedJavaScriptPrimitives = exports.getSupportedRdfDatatypes = exports.getTermRaw = exports.toRdf = exports.fromRdf = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst handler_1 = require(\"./lib/handler\");\nconst Translator_1 = require(\"./lib/Translator\");\n__exportStar(require(\"./lib/handler\"), exports);\n__exportStar(require(\"./lib/ITypeHandler\"), exports);\n__exportStar(require(\"./lib/Translator\"), exports);\nconst DF = new rdf_data_factory_1.DataFactory();\n// Construct translator with built-in handlers\nconst translator = new Translator_1.Translator();\ntranslator.registerHandler(new handler_1.TypeHandlerString(), handler_1.TypeHandlerString.TYPES.map(t => DF.namedNode(t)), ['string']);\ntranslator.registerHandler(new handler_1.TypeHandlerBoolean(), [handler_1.TypeHandlerBoolean.TYPE].map(t => DF.namedNode(t)), ['boolean']);\ntranslator.registerHandler(new handler_1.TypeHandlerNumberDouble(), handler_1.TypeHandlerNumberDouble.TYPES.map(t => DF.namedNode(t)), ['number']);\ntranslator.registerHandler(new handler_1.TypeHandlerNumberInteger(), handler_1.TypeHandlerNumberInteger.TYPES.map(t => DF.namedNode(t)), ['number']);\ntranslator.registerHandler(new handler_1.TypeHandlerDate(), handler_1.TypeHandlerDate.TYPES.map(t => DF.namedNode(t)), ['object']);\n/**\n * Convert the given RDF literal to an JavaScript primitive.\n * @param {Literal} literal An RDF literal value.\n * @param {boolean} validate If the literal value should be validated against the datatype.\n * @return {any} A JavaScript primitive value.\n */\nfunction fromRdf(literal, validate) {\n return translator.fromRdf(literal, validate);\n}\nexports.fromRdf = fromRdf;\n/**\n * Convert the given JavaScript primitive to an RDF literal.\n * @param value A JavaScript primitive value.\n * @param options Options for RDF conversion. May also be a data factory.\n * @return {Literal} An RDF literal value.\n */\nfunction toRdf(value, options) {\n // Backwards-compatibility to accept data factory as option arg.\n if (options && 'namedNode' in options) {\n options = { dataFactory: options };\n }\n // Set default data factory\n options = options || {};\n if (options && !options.dataFactory) {\n options.dataFactory = DF;\n }\n return translator.toRdf(value, options);\n}\nexports.toRdf = toRdf;\n/**\n * Get the raw value of the given term.\n * If it is a literal, {@link fromRdf} will be called.\n * Otherwise {@link .value} will be returned.\n * @param {Term} term Any RDF term.\n * @param {boolean} validate If the literal value should be validated against the datatype.\n * @return {any} A JavaScript primitive value.\n */\nfunction getTermRaw(term, validate) {\n if (term.termType === 'Literal') {\n return fromRdf(term, validate);\n }\n return term.value;\n}\nexports.getTermRaw = getTermRaw;\n/**\n * @return {NamedNode[]} An array of all supported RDF datatypes.\n */\nfunction getSupportedRdfDatatypes() {\n return translator.getSupportedRdfDatatypes();\n}\nexports.getSupportedRdfDatatypes = getSupportedRdfDatatypes;\n/**\n * @return {string[]} An array of all supported JavaScript types.\n */\nfunction getSupportedJavaScriptPrimitives() {\n return translator.getSupportedJavaScriptPrimitives();\n}\nexports.getSupportedJavaScriptPrimitives = getSupportedJavaScriptPrimitives;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ITypeHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Translator = void 0;\n/**\n * Translates between an RDF literal and a JavaScript primitive.\n */\nclass Translator {\n constructor() {\n this.supportedRdfDatatypes = [];\n this.fromRdfHandlers = {};\n this.toRdfHandlers = {};\n }\n static incorrectRdfDataType(literal) {\n throw new Error(`Invalid RDF ${literal.datatype.value} value: '${literal.value}'`);\n }\n registerHandler(handler, rdfDatatypes, javaScriptDataTypes) {\n for (const rdfDatatype of rdfDatatypes) {\n this.supportedRdfDatatypes.push(rdfDatatype);\n this.fromRdfHandlers[rdfDatatype.value] = handler;\n }\n for (const javaScriptDataType of javaScriptDataTypes) {\n let existingToRdfHandlers = this.toRdfHandlers[javaScriptDataType];\n if (!existingToRdfHandlers) {\n this.toRdfHandlers[javaScriptDataType] = existingToRdfHandlers = [];\n }\n existingToRdfHandlers.push(handler);\n }\n }\n fromRdf(literal, validate) {\n const handler = this.fromRdfHandlers[literal.datatype.value];\n if (handler) {\n return handler.fromRdf(literal, validate);\n }\n else {\n return literal.value;\n }\n }\n toRdf(value, options) {\n const handlers = this.toRdfHandlers[typeof value];\n if (handlers) {\n for (const handler of handlers) {\n const ret = handler.toRdf(value, options);\n if (ret) {\n return ret;\n }\n }\n }\n throw new Error(`Invalid JavaScript value: '${value}'`);\n }\n /**\n * @return {NamedNode[]} An array of all supported RDF datatypes.\n */\n getSupportedRdfDatatypes() {\n return this.supportedRdfDatatypes;\n }\n /**\n * @return {string[]} An array of all supported JavaScript types.\n */\n getSupportedJavaScriptPrimitives() {\n return Object.keys(this.toRdfHandlers);\n }\n}\nexports.Translator = Translator;\n//# sourceMappingURL=Translator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerBoolean = void 0;\nconst Translator_1 = require(\"../Translator\");\n/**\n * Translates booleans.\n */\nclass TypeHandlerBoolean {\n fromRdf(literal, validate) {\n switch (literal.value) {\n case 'true':\n return true;\n case 'false':\n return false;\n case '1':\n return true;\n case '0':\n return false;\n }\n if (validate) {\n Translator_1.Translator.incorrectRdfDataType(literal);\n }\n return false;\n }\n toRdf(value, { datatype, dataFactory }) {\n return dataFactory.literal(value ? 'true' : 'false', datatype || dataFactory.namedNode(TypeHandlerBoolean.TYPE));\n }\n}\nTypeHandlerBoolean.TYPE = 'http://www.w3.org/2001/XMLSchema#boolean';\nexports.TypeHandlerBoolean = TypeHandlerBoolean;\n//# sourceMappingURL=TypeHandlerBoolean.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerDate = void 0;\nconst Translator_1 = require(\"../Translator\");\n/**\n * Translates dates.\n */\nclass TypeHandlerDate {\n fromRdf(literal, validate) {\n if (validate && !literal.value.match(TypeHandlerDate\n .VALIDATORS[literal.datatype.value.substr(33, literal.datatype.value.length)])) {\n Translator_1.Translator.incorrectRdfDataType(literal);\n }\n switch (literal.datatype.value) {\n case 'http://www.w3.org/2001/XMLSchema#gDay':\n return new Date(0, 0, parseInt(literal.value, 10));\n case 'http://www.w3.org/2001/XMLSchema#gMonthDay':\n const partsMonthDay = literal.value.split('-');\n return new Date(0, parseInt(partsMonthDay[0], 10) - 1, parseInt(partsMonthDay[1], 10));\n case 'http://www.w3.org/2001/XMLSchema#gYear':\n return new Date(literal.value + '-01-01');\n case 'http://www.w3.org/2001/XMLSchema#gYearMonth':\n return new Date(literal.value + '-01');\n default:\n return new Date(literal.value);\n }\n }\n toRdf(value, { datatype, dataFactory }) {\n datatype = datatype || dataFactory.namedNode(TypeHandlerDate.TYPES[0]);\n // Assume date values\n if (!(value instanceof Date)) {\n return null;\n }\n const date = value;\n let valueString;\n switch (datatype.value) {\n case 'http://www.w3.org/2001/XMLSchema#gDay':\n valueString = String(date.getUTCDate());\n break;\n case 'http://www.w3.org/2001/XMLSchema#gMonthDay':\n valueString = (date.getUTCMonth() + 1) + '-' + date.getUTCDate();\n break;\n case 'http://www.w3.org/2001/XMLSchema#gYear':\n valueString = String(date.getUTCFullYear());\n break;\n case 'http://www.w3.org/2001/XMLSchema#gYearMonth':\n valueString = date.getUTCFullYear() + '-' + (date.getUTCMonth() + 1);\n break;\n case 'http://www.w3.org/2001/XMLSchema#date':\n valueString = date.toISOString().replace(/T.*$/, '');\n break;\n default:\n valueString = date.toISOString();\n }\n return dataFactory.literal(valueString, datatype);\n }\n}\nTypeHandlerDate.TYPES = [\n 'http://www.w3.org/2001/XMLSchema#dateTime',\n 'http://www.w3.org/2001/XMLSchema#date',\n 'http://www.w3.org/2001/XMLSchema#gDay',\n 'http://www.w3.org/2001/XMLSchema#gMonthDay',\n 'http://www.w3.org/2001/XMLSchema#gYear',\n 'http://www.w3.org/2001/XMLSchema#gYearMonth',\n];\nTypeHandlerDate.VALIDATORS = {\n date: /^[0-9]+-[0-9][0-9]-[0-9][0-9]Z?$/,\n dateTime: /^[0-9]+-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9](\\.[0-9][0-9][0-9])?((Z?)|([\\+-][0-9][0-9]:[0-9][0-9]))$/,\n gDay: /^[0-9]+$/,\n gMonthDay: /^[0-9]+-[0-9][0-9]$/,\n gYear: /^[0-9]+$/,\n gYearMonth: /^[0-9]+-[0-9][0-9]$/,\n};\nexports.TypeHandlerDate = TypeHandlerDate;\n//# sourceMappingURL=TypeHandlerDate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerNumberDouble = void 0;\nconst Translator_1 = require(\"../Translator\");\n/**\n * Translates double numbers.\n */\nclass TypeHandlerNumberDouble {\n fromRdf(literal, validate) {\n const parsed = parseFloat(literal.value);\n if (validate) {\n if (isNaN(parsed)) {\n Translator_1.Translator.incorrectRdfDataType(literal);\n }\n // TODO: validate more\n }\n return parsed;\n }\n toRdf(value, { datatype, dataFactory }) {\n datatype = datatype || dataFactory.namedNode(TypeHandlerNumberDouble.TYPES[0]);\n if (isNaN(value)) {\n return dataFactory.literal('NaN', datatype);\n }\n if (!isFinite(value)) {\n return dataFactory.literal(value > 0 ? 'INF' : '-INF', datatype);\n }\n if (value % 1 === 0) {\n return null;\n }\n return dataFactory.literal(value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E'), datatype);\n }\n}\nTypeHandlerNumberDouble.TYPES = [\n 'http://www.w3.org/2001/XMLSchema#double',\n 'http://www.w3.org/2001/XMLSchema#decimal',\n 'http://www.w3.org/2001/XMLSchema#float',\n];\nexports.TypeHandlerNumberDouble = TypeHandlerNumberDouble;\n//# sourceMappingURL=TypeHandlerNumberDouble.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerNumberInteger = void 0;\nconst Translator_1 = require(\"../Translator\");\n/**\n * Translates integer numbers.\n */\nclass TypeHandlerNumberInteger {\n fromRdf(literal, validate) {\n const parsed = parseInt(literal.value, 10);\n if (validate) {\n if (isNaN(parsed) || literal.value.indexOf('.') >= 0) {\n Translator_1.Translator.incorrectRdfDataType(literal);\n }\n // TODO: validate more\n }\n return parsed;\n }\n toRdf(value, { datatype, dataFactory }) {\n return dataFactory.literal(String(value), datatype\n || (value <= TypeHandlerNumberInteger.MAX_INT && value >= TypeHandlerNumberInteger.MIN_INT\n ? dataFactory.namedNode(TypeHandlerNumberInteger.TYPES[0])\n : dataFactory.namedNode(TypeHandlerNumberInteger.TYPES[1])));\n }\n}\nTypeHandlerNumberInteger.TYPES = [\n 'http://www.w3.org/2001/XMLSchema#integer',\n 'http://www.w3.org/2001/XMLSchema#long',\n 'http://www.w3.org/2001/XMLSchema#int',\n 'http://www.w3.org/2001/XMLSchema#byte',\n 'http://www.w3.org/2001/XMLSchema#short',\n 'http://www.w3.org/2001/XMLSchema#negativeInteger',\n 'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n 'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n 'http://www.w3.org/2001/XMLSchema#positiveInteger',\n 'http://www.w3.org/2001/XMLSchema#unsignedByte',\n 'http://www.w3.org/2001/XMLSchema#unsignedInt',\n 'http://www.w3.org/2001/XMLSchema#unsignedLong',\n 'http://www.w3.org/2001/XMLSchema#unsignedShort',\n];\nTypeHandlerNumberInteger.MAX_INT = 2147483647;\nTypeHandlerNumberInteger.MIN_INT = -2147483648;\nexports.TypeHandlerNumberInteger = TypeHandlerNumberInteger;\n//# sourceMappingURL=TypeHandlerNumberInteger.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerString = void 0;\n/**\n * Translates strings.\n */\nclass TypeHandlerString {\n fromRdf(literal) {\n return literal.value;\n }\n toRdf(value, { datatype, dataFactory }) {\n return dataFactory.literal(value, datatype);\n }\n}\nTypeHandlerString.TYPES = [\n 'http://www.w3.org/2001/XMLSchema#string',\n 'http://www.w3.org/2001/XMLSchema#normalizedString',\n 'http://www.w3.org/2001/XMLSchema#anyURI',\n 'http://www.w3.org/2001/XMLSchema#base64Binary',\n 'http://www.w3.org/2001/XMLSchema#language',\n 'http://www.w3.org/2001/XMLSchema#Name',\n 'http://www.w3.org/2001/XMLSchema#NCName',\n 'http://www.w3.org/2001/XMLSchema#NMTOKEN',\n 'http://www.w3.org/2001/XMLSchema#token',\n 'http://www.w3.org/2001/XMLSchema#hexBinary',\n 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString',\n 'http://www.w3.org/2001/XMLSchema#time',\n 'http://www.w3.org/2001/XMLSchema#duration',\n];\nexports.TypeHandlerString = TypeHandlerString;\n//# sourceMappingURL=TypeHandlerString.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./TypeHandlerBoolean\"), exports);\n__exportStar(require(\"./TypeHandlerDate\"), exports);\n__exportStar(require(\"./TypeHandlerNumberDouble\"), exports);\n__exportStar(require(\"./TypeHandlerNumberInteger\"), exports);\n__exportStar(require(\"./TypeHandlerString\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStream = void 0;\nconst rdf_stores_1 = require(\"rdf-stores\");\n/**\n * Import all quads in the given stream into a new RDF store.\n *\n * The whole stream will be consumed for this,\n * and the promise will resolve once the stream's end event is emitted.\n *\n * @param {Stream} stream An RDF stream containing the quads to import into the store.\n * @return {Promise>} A promise resolving to an RDF store.\n */\nfunction storeStream(stream) {\n const store = rdf_stores_1.RdfStore.createDefault();\n return new Promise((resolve, reject) => store.import(stream)\n .on('error', reject)\n .once('end', () => resolve(store)));\n}\nexports.storeStream = storeStream;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/dataset/DatasetCoreWrapper\"), exports);\n__exportStar(require(\"./lib/dictionary/ITermDictionary\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryNumberMap\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryNumberRecord\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryNumberRecordFullTerms\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryQuoted\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryQuotedIndexed\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryQuotedReferential\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionarySymbol\"), exports);\n__exportStar(require(\"./lib/index/IRdfStoreIndex\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedMap\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedMapQuoted\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedMapRecursive\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedMapRecursiveQuoted\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedRecord\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedRecordQuoted\"), exports);\n__exportStar(require(\"./lib/IRdfStoreOptions\"), exports);\n__exportStar(require(\"./lib/OrderUtils\"), exports);\n__exportStar(require(\"./lib/PatternTerm\"), exports);\n__exportStar(require(\"./lib/RdfStore\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IRdfStoreOptions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.arePatternsQuoted = exports.quadHasVariables = exports.quadToPattern = exports.encodeOptionalTerms = exports.orderQuadComponents = exports.getComponentOrderScore = exports.getBestIndex = exports.QUAD_TERM_NAMES_INVERSE = void 0;\nconst rdf_terms_1 = require(\"rdf-terms\");\nexports.QUAD_TERM_NAMES_INVERSE = Object.fromEntries(rdf_terms_1.QUAD_TERM_NAMES.map((value, key) => [value, key]));\n/**\n * Determine the best suitable order's index among the given orders for the given quad pattern.\n * @param componentOrders Possible orders of quad components.\n * @param quadPattern A quad pattern.\n */\nfunction getBestIndex(componentOrders, quadPattern) {\n if (componentOrders.length === 1 || quadPattern.every(term => term !== undefined)) {\n return 0;\n }\n // Determine the quad component names for which we require a defined lookup\n const definedQuadComponentNames = [];\n for (let quadComponentId = 0; quadComponentId < rdf_terms_1.QUAD_TERM_NAMES.length; quadComponentId++) {\n if (quadPattern[quadComponentId]) {\n definedQuadComponentNames.push(rdf_terms_1.QUAD_TERM_NAMES[quadComponentId]);\n }\n }\n // Score indexes by how well they match to the index\n const scoredIndexes = componentOrders.map((componentOrder, index) => {\n const score = getComponentOrderScore(componentOrder, definedQuadComponentNames);\n return { score, index };\n });\n // Sort the indexes, and pick the first one\n return scoredIndexes.sort((scoredLeft, scoredRight) => scoredRight.score - scoredLeft.score)[0].index;\n}\nexports.getBestIndex = getBestIndex;\n/**\n * Determine the score of the given partial component order in the given component order.\n * @param componentOrder A quad component order.\n * @param partialComponentOrder A partial quad component order that originates from a quad pattern.\n */\nfunction getComponentOrderScore(componentOrder, partialComponentOrder) {\n return componentOrder\n .map((order, i) => partialComponentOrder.includes(order) ? componentOrder.length - i : 0)\n .reduce((acc, add) => acc + add, 0);\n}\nexports.getComponentOrderScore = getComponentOrderScore;\n/**\n * Order a quad pattern's terms based on the given component order.\n * @param desiredComponentOrder The desired order of components.\n * @param quadPattern A quad pattern.\n */\nfunction orderQuadComponents(desiredComponentOrder, quadPattern) {\n return desiredComponentOrder.map(desiredComponent => {\n const desiredComponentIndex = exports.QUAD_TERM_NAMES_INVERSE[desiredComponent];\n return quadPattern[desiredComponentIndex];\n });\n}\nexports.orderQuadComponents = orderQuadComponents;\n/**\n * Encode the given array of quad terms.\n * @param terms Non-encoded quad terms.\n * @param dictionary A dictionary\n * @return array An array of encoded terms.\n * The array will be undefined if at least one of the patterns does not occur within the dictionary.\n */\nfunction encodeOptionalTerms(terms, dictionary) {\n const encodedTerms = terms.map(term => {\n if (term) {\n if (term.termType === 'Quad' && quadHasVariables(term)) {\n return;\n }\n const encodedTerm = dictionary.encodeOptional(term);\n if (encodedTerm === undefined) {\n return 'none';\n }\n return encodedTerm;\n }\n return term;\n });\n if (encodedTerms.includes('none')) {\n return undefined;\n }\n return encodedTerms;\n}\nexports.encodeOptionalTerms = encodeOptionalTerms;\n/**\n * Convert a quad patter to a `QuadPatternTerms` type.\n * @param subject The subject.\n * @param predicate The predicate.\n * @param object The object.\n * @param graph The graph.\n * @param quotedPatterns If the index supports quoted triple filtering.\n * @return Tuple A tuple of QuadPatternTerms\n * and a boolean indicating if post-filtering will be needed on quoted triples.\n * This boolean can only be true if `quotedPatterns` is false, and a quoted triple pattern was present.\n */\nfunction quadToPattern(subject, predicate, object, graph, quotedPatterns) {\n let requireQuotedTripleFiltering = false;\n const quadPatternTerms = [subject || undefined, predicate || undefined, object || undefined, graph || undefined]\n .map(term => {\n if (term) {\n if (term.termType === 'Variable') {\n return;\n }\n if (term.termType === 'Quad') {\n if (quotedPatterns) {\n return term;\n }\n requireQuotedTripleFiltering = true;\n return;\n }\n }\n return term;\n });\n return [quadPatternTerms, requireQuotedTripleFiltering];\n}\nexports.quadToPattern = quadToPattern;\n/**\n * Check if the given quad contains variables, even in deeply nested quoted triples.\n * @param currentTerm The quad pattern term.\n */\nfunction quadHasVariables(currentTerm) {\n for (const component of rdf_terms_1.QUAD_TERM_NAMES) {\n const subTerm = currentTerm[component];\n if (subTerm.termType === 'Variable' || (subTerm.termType === 'Quad' && quadHasVariables(subTerm))) {\n return true;\n }\n }\n return false;\n}\nexports.quadHasVariables = quadHasVariables;\n/**\n * Create a boolean array indicating which terms are quoted triple patterns.\n * @param terms An array of terms.\n */\nfunction arePatternsQuoted(terms) {\n return terms.map(term => (term === null || term === void 0 ? void 0 : term.termType) === 'Quad' && quadHasVariables(term));\n}\nexports.arePatternsQuoted = arePatternsQuoted;\n//# sourceMappingURL=OrderUtils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=PatternTerm.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStore = void 0;\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst DatasetCoreWrapper_1 = require(\"./dataset/DatasetCoreWrapper\");\nconst TermDictionaryNumberRecordFullTerms_1 = require(\"./dictionary/TermDictionaryNumberRecordFullTerms\");\nconst TermDictionaryQuotedIndexed_1 = require(\"./dictionary/TermDictionaryQuotedIndexed\");\nconst RdfStoreIndexNestedMapQuoted_1 = require(\"./index/RdfStoreIndexNestedMapQuoted\");\nconst OrderUtils_1 = require(\"./OrderUtils\");\n/**\n * An RDF store allows quads to be stored and fetched, based on one or more customizable indexes.\n */\nclass RdfStore {\n constructor(options) {\n this.features = { quotedTripleFiltering: true };\n this._size = 0;\n this.options = options;\n this.dataFactory = options.dataFactory;\n this.dictionary = options.dictionary;\n this.indexesWrapped = RdfStore.constructIndexesWrapped(options);\n this.indexesWrappedComponentOrders = this.indexesWrapped.map(indexThis => indexThis.componentOrder);\n }\n /**\n * Create an RDF store with default settings.\n * Concretely, this store stores triples in GSPO, GPOS, and GOSP order,\n * and makes use of in-memory number dictionary encoding.\n */\n static createDefault() {\n return new RdfStore({\n indexCombinations: RdfStore.DEFAULT_INDEX_COMBINATIONS,\n indexConstructor: subOptions => new RdfStoreIndexNestedMapQuoted_1.RdfStoreIndexNestedMapQuoted(subOptions),\n dictionary: new TermDictionaryQuotedIndexed_1.TermDictionaryQuotedIndexed(new TermDictionaryNumberRecordFullTerms_1.TermDictionaryNumberRecordFullTerms()),\n dataFactory: new rdf_data_factory_1.DataFactory(),\n });\n }\n /**\n * Internal helper to create index objects.\n * @param options The RDF store options object.\n */\n static constructIndexesWrapped(options) {\n const indexes = [];\n if (options.indexCombinations.length === 0) {\n throw new Error('At least one index combination is required');\n }\n for (const componentOrder of options.indexCombinations) {\n if (!RdfStore.isCombinationValid(componentOrder)) {\n throw new Error(`Invalid index combination: ${componentOrder}`);\n }\n indexes.push({\n index: options.indexConstructor(options),\n componentOrder,\n componentOrderInverse: Object.fromEntries(componentOrder.map((value, key) => [value, key])),\n });\n }\n return indexes;\n }\n /**\n * Check if a given quad term order is valid.\n * @param combination A quad term order.\n */\n static isCombinationValid(combination) {\n for (const quadTermName of rdf_terms_1.QUAD_TERM_NAMES) {\n if (!combination.includes(quadTermName)) {\n return false;\n }\n }\n return combination.length === 4;\n }\n /**\n * The number of quads in this store.\n */\n get size() {\n return this._size;\n }\n /**\n * Add a quad to the store.\n * @param quad An RDF quad.\n * @return boolean If the quad was not yet present in the index.\n */\n addQuad(quad) {\n const quadEncoded = [\n this.dictionary.encode(quad.subject),\n this.dictionary.encode(quad.predicate),\n this.dictionary.encode(quad.object),\n this.dictionary.encode(quad.graph),\n ];\n let newQuad = false;\n for (const indexWrapped of this.indexesWrapped) {\n // Before sending the quad to the index, make sure its components are ordered corresponding to the index's order.\n newQuad = indexWrapped.index\n .set((0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadEncoded), true);\n }\n if (newQuad) {\n this._size++;\n return true;\n }\n return false;\n }\n /**\n * Remove a quad from the store.\n * @param quad An RDF quad.\n * @return boolean If the quad was present in the index.\n */\n removeQuad(quad) {\n const quadEncoded = [\n this.dictionary.encodeOptional(quad.subject),\n this.dictionary.encodeOptional(quad.predicate),\n this.dictionary.encodeOptional(quad.object),\n this.dictionary.encodeOptional(quad.graph),\n ];\n // We can quickly return false if the quad is not present in the dictionary\n // eslint-disable-next-line unicorn/no-useless-undefined\n if (quadEncoded.includes(undefined)) {\n return false;\n }\n let wasPresent = false;\n for (const indexWrapped of this.indexesWrapped) {\n // Before sending the quad to the index, make sure its components are ordered corresponding to the index's order.\n wasPresent = indexWrapped.index\n .remove((0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadEncoded));\n if (!wasPresent) {\n break;\n }\n }\n if (wasPresent) {\n this._size--;\n return true;\n }\n return false;\n }\n /**\n * Removes all streamed quads.\n * @param stream A stream of quads\n */\n remove(stream) {\n stream.on('data', quad => this.removeQuad(quad));\n return stream;\n }\n /**\n * All quads matching the pattern will be removed.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n removeMatches(subject, predicate, object, graph) {\n return this.remove(this.match(subject, predicate, object, graph));\n }\n /**\n * Deletes the given named graph.\n * @param graph The graph term or string to match.\n */\n deleteGraph(graph) {\n if (typeof graph === 'string') {\n graph = this.dataFactory.namedNode(graph);\n }\n return this.removeMatches(undefined, undefined, undefined, graph);\n }\n /**\n * Import the given stream of quads into the store.\n * @param stream A stream of RDF quads.\n */\n import(stream) {\n stream.on('data', (quad) => this.addQuad(quad));\n return stream;\n }\n /**\n * Returns a generator producing all quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n *readQuads(subject, predicate, object, graph) {\n // Check if our dictionary and our indexes have quoted pattern support\n const indexesSupportQuotedPatterns = Boolean(this.dictionary.features.quotedTriples) &&\n Object.values(this.indexesWrapped).every(wrapped => wrapped.index.features.quotedTripleFiltering);\n // Construct a quad pattern array\n const [quadComponents, requireQuotedTripleFiltering] = (0, OrderUtils_1.quadToPattern)(subject, predicate, object, graph, indexesSupportQuotedPatterns);\n // Determine the best index for this pattern\n const indexWrapped = this.indexesWrapped[(0, OrderUtils_1.getBestIndex)(this.indexesWrappedComponentOrders, quadComponents)];\n // Re-order the quad pattern based on this best index's component order\n const quadComponentsOrdered = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadComponents);\n // Call the best index's find method.\n // eslint-disable-next-line unicorn/no-array-callback-reference\n for (const decomposedQuad of indexWrapped.index.find(quadComponentsOrdered)) {\n // De-order the resulting quad components into the normal SPOG order for quad creation.\n const quad = this.dataFactory.quad(decomposedQuad[indexWrapped.componentOrderInverse.subject], decomposedQuad[indexWrapped.componentOrderInverse.predicate], decomposedQuad[indexWrapped.componentOrderInverse.object], decomposedQuad[indexWrapped.componentOrderInverse.graph]);\n if (requireQuotedTripleFiltering) {\n if ((0, rdf_terms_1.matchPattern)(quad, subject, predicate, object, graph)) {\n yield quad;\n }\n }\n else {\n yield quad;\n }\n }\n }\n /**\n * Returns an array containing all quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n getQuads(subject, predicate, object, graph) {\n return [...this.readQuads(subject, predicate, object, graph)];\n }\n /**\n * Returns a stream that produces all quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n match(subject, predicate, object, graph) {\n return (0, asynciterator_1.wrap)(this.readQuads(subject, predicate, object, graph));\n }\n /**\n * Returns the exact cardinality of the quads matching the pattern.\n * @param subject The optional subject.\n * @param predicate The optional predicate.\n * @param object The optional object.\n * @param graph The optional graph.\n */\n countQuads(subject, predicate, object, graph) {\n // Check if our dictionary and our indexes have quoted pattern support\n const indexesSupportQuotedPatterns = Boolean(this.dictionary.features.quotedTriples) &&\n Object.values(this.indexesWrapped).every(wrapped => wrapped.index.features.quotedTripleFiltering);\n // Construct a quad pattern array\n const [quadComponents] = (0, OrderUtils_1.quadToPattern)(subject, predicate, object, graph, indexesSupportQuotedPatterns);\n // Optimize all-variables pattern\n if (quadComponents.every(quadComponent => quadComponent === undefined)) {\n return this.size;\n }\n // Determine the best index for this pattern\n const indexWrapped = this.indexesWrapped[(0, OrderUtils_1.getBestIndex)(this.indexesWrappedComponentOrders, quadComponents)];\n // Re-order the quad pattern based on this best index's component order\n const quadComponentsOrdered = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadComponents);\n // Call the best index's count method.\n return indexWrapped.index.count(quadComponentsOrdered);\n }\n /**\n * Wrap this store inside a DatasetCore interface.\n * Any mutations in either this store or the wrapper will propagate to each other.\n */\n asDataset() {\n return new DatasetCoreWrapper_1.DatasetCoreWrapper(this);\n }\n}\nRdfStore.DEFAULT_INDEX_COMBINATIONS = [\n ['graph', 'subject', 'predicate', 'object'],\n ['graph', 'predicate', 'object', 'subject'],\n ['graph', 'object', 'subject', 'predicate'],\n];\nexports.RdfStore = RdfStore;\n//# sourceMappingURL=RdfStore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DatasetCoreWrapper = void 0;\nconst RdfStore_1 = require(\"../RdfStore\");\n/**\n * A DatasetCoreWrapper exposes an RdfStore inside an RDF.DatasetCore.\n */\nclass DatasetCoreWrapper {\n constructor(store) {\n this.store = store;\n }\n get size() {\n return this.store.size;\n }\n add(quad) {\n this.store.addQuad(quad);\n return this;\n }\n delete(quad) {\n this.store.removeQuad(quad);\n return this;\n }\n has(quad) {\n // eslint-disable-next-line no-unreachable-loop\n for (const result of this.store.readQuads(quad.subject, quad.predicate, quad.object, quad.graph)) {\n return true;\n }\n return false;\n }\n match(subject, predicate, object, graph) {\n const newStore = new RdfStore_1.RdfStore(this.store.options);\n for (const quad of this.store.readQuads(subject, predicate, object, graph)) {\n newStore.addQuad(quad);\n }\n return new DatasetCoreWrapper(newStore);\n }\n [Symbol.iterator]() {\n return this.store.readQuads();\n }\n}\nexports.DatasetCoreWrapper = DatasetCoreWrapper;\n//# sourceMappingURL=DatasetCoreWrapper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ITermDictionary.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryNumberMap = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Map.\n */\nclass TermDictionaryNumberMap {\n constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.lastId = 0;\n this.dictionary = new Map();\n this.reverseDictionary = new Map();\n this.features = { quotedTriples: false };\n this.dataFactory = dataFactory;\n }\n encode(term) {\n const key = (0, rdf_string_1.termToString)(term);\n let encoded = this.dictionary.get(key);\n if (encoded === undefined) {\n encoded = this.lastId++;\n this.dictionary.set(key, encoded);\n this.reverseDictionary.set(encoded, key);\n }\n return encoded;\n }\n encodeOptional(term) {\n const key = (0, rdf_string_1.termToString)(term);\n return this.dictionary.get(key);\n }\n decode(encoding) {\n const string = this.reverseDictionary.get(encoding);\n if (string === undefined) {\n throw new Error(`The value ${encoding} is not present in this dictionary`);\n }\n return (0, rdf_string_1.stringToTerm)(string, this.dataFactory);\n }\n encodings() {\n return this.reverseDictionary.keys();\n }\n findQuotedTriples(quotedTriplePattern) {\n throw new Error('findQuotedTriples is not supported');\n }\n findQuotedTriplesEncoded(quotedTriplePattern) {\n throw new Error('findQuotedTriplesEncoded is not supported');\n }\n}\nexports.TermDictionaryNumberMap = TermDictionaryNumberMap;\n//# sourceMappingURL=TermDictionaryNumberMap.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryNumberRecord = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Record.\n */\nclass TermDictionaryNumberRecord {\n constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.lastId = 0;\n this.dictionary = {};\n this.reverseDictionary = {};\n this.features = { quotedTriples: false };\n this.dataFactory = dataFactory;\n }\n encode(term) {\n const key = (0, rdf_string_1.termToString)(term);\n let encoded = this.dictionary[key];\n if (encoded === undefined) {\n encoded = this.lastId++;\n this.dictionary[key] = encoded;\n this.reverseDictionary[encoded] = key;\n }\n return encoded;\n }\n encodeOptional(term) {\n const key = (0, rdf_string_1.termToString)(term);\n return this.dictionary[key];\n }\n decode(encoding) {\n const string = this.reverseDictionary[encoding];\n if (string === undefined) {\n throw new Error(`The value ${encoding} is not present in this dictionary`);\n }\n return (0, rdf_string_1.stringToTerm)(string, this.dataFactory);\n }\n *encodings() {\n for (const key of Object.keys(this.reverseDictionary)) {\n yield Number.parseInt(key, 10);\n }\n }\n findQuotedTriples(quotedTriplePattern) {\n throw new Error('findQuotedTriples is not supported');\n }\n findQuotedTriplesEncoded(quotedTriplePattern) {\n throw new Error('findQuotedTriplesEncoded is not supported');\n }\n}\nexports.TermDictionaryNumberRecord = TermDictionaryNumberRecord;\n//# sourceMappingURL=TermDictionaryNumberRecord.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryNumberRecordFullTerms = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Record.\n * The reverse dictionary will store full RDF term objects,\n * resulting in slightly better query performance at the cost of slightly higher memory usage.\n */\nclass TermDictionaryNumberRecordFullTerms {\n constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.lastId = 0;\n this.dictionary = {};\n this.reverseDictionary = {};\n this.features = { quotedTriples: false };\n this.dataFactory = dataFactory;\n }\n encode(term) {\n const key = (0, rdf_string_1.termToString)(term);\n let encoded = this.dictionary[key];\n if (encoded === undefined) {\n encoded = this.lastId++;\n this.dictionary[key] = encoded;\n this.reverseDictionary[encoded] = term;\n }\n return encoded;\n }\n encodeOptional(term) {\n const key = (0, rdf_string_1.termToString)(term);\n return this.dictionary[key];\n }\n decode(encoding) {\n const string = this.reverseDictionary[encoding];\n if (string === undefined) {\n throw new Error(`The value ${encoding} is not present in this dictionary`);\n }\n return string;\n }\n *encodings() {\n for (const key of Object.keys(this.reverseDictionary)) {\n yield Number.parseInt(key, 10);\n }\n }\n findQuotedTriples(quotedTriplePattern) {\n throw new Error('findQuotedTriples is not supported');\n }\n findQuotedTriplesEncoded(quotedTriplePattern) {\n throw new Error('findQuotedTriplesEncoded is not supported');\n }\n}\nexports.TermDictionaryNumberRecordFullTerms = TermDictionaryNumberRecordFullTerms;\n//# sourceMappingURL=TermDictionaryNumberRecordFullTerms.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryQuoted = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_terms_1 = require(\"rdf-terms\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms and quoted triples are stored in separate dictionaries.\n *\n * Finding quoted triples is done by iterating over all quoted triples, and filtering by the matching ones.\n */\nclass TermDictionaryQuoted {\n constructor(plainTermDictionary, quotedTriplesDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.features = { quotedTriples: true };\n this.plainTermDictionary = plainTermDictionary;\n this.quotedTriplesDictionary = quotedTriplesDictionary;\n this.dataFactory = dataFactory;\n }\n encode(term) {\n if (term.termType === 'Quad') {\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return TermDictionaryQuoted.BITMASK | (1 + this.quotedTriplesDictionary.encode(term));\n }\n return this.plainTermDictionary.encode(term);\n }\n encodeOptional(term) {\n if (term.termType === 'Quad') {\n const encoding = this.quotedTriplesDictionary.encodeOptional(term);\n if (encoding === undefined) {\n return encoding;\n }\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return TermDictionaryQuoted.BITMASK | (1 + encoding);\n }\n return this.plainTermDictionary.encodeOptional(term);\n }\n decode(encoding) {\n if (TermDictionaryQuoted.BITMASK & encoding) {\n // Term comes from the quoted triples dictionary\n const encodingBase = (~TermDictionaryQuoted.BITMASK & encoding) - 1;\n return this.quotedTriplesDictionary.decode(encodingBase);\n }\n // Term comes from the plain terms dictionary\n return this.plainTermDictionary.decode(encoding);\n }\n *encodings() {\n for (const encoding of this.plainTermDictionary.encodings()) {\n yield encoding;\n }\n for (const encoding of this.quotedTriplesDictionary.encodings()) {\n yield TermDictionaryQuoted.BITMASK | (1 + encoding);\n }\n }\n *findQuotedTriples(quotedTriplePattern) {\n for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n yield this.decode(termEncoded);\n }\n }\n *findQuotedTriplesEncoded(quotedTriplePattern) {\n for (let encodedQuotedTriple of this.quotedTriplesDictionary.encodings()) {\n encodedQuotedTriple = TermDictionaryQuoted.BITMASK | (1 + encodedQuotedTriple);\n const quotedTriple = this.decode(encodedQuotedTriple);\n if ((0, rdf_terms_1.matchPattern)(quotedTriple, quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph)) {\n yield encodedQuotedTriple;\n }\n }\n }\n}\nTermDictionaryQuoted.BITMASK = 1 << 31;\nexports.TermDictionaryQuoted = TermDictionaryQuoted;\n//# sourceMappingURL=TermDictionaryQuoted.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryQuotedIndexed = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst RdfStoreIndexNestedMap_1 = require(\"../index/RdfStoreIndexNestedMap\");\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms are stored in a regular dictionary.\n * Quoted triples are stored separately using an index, which is backed the same dictionary.\n *\n * Finding quoted triples is done through indexed lookups.\n */\nclass TermDictionaryQuotedIndexed {\n constructor(rawTermDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.quotedTriplesDictionary = [];\n this.features = { quotedTriples: true };\n this.plainTermDictionary = rawTermDictionary;\n const subIndexOpts = {\n // Not required\n indexCombinations: [],\n // Not required\n indexConstructor: undefined,\n dictionary: this,\n dataFactory,\n };\n this.quotedTriplesReverseDictionaries = [\n new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n ];\n this.dataFactory = dataFactory;\n }\n encode(term) {\n if (term.termType === 'Quad') {\n return this.encodeQuotedTriple(term, false);\n }\n return this.plainTermDictionary.encode(term);\n }\n encodeQuotedTriple(quad, optional) {\n // Only quoted triples are supported\n if (quad.graph.termType !== 'DefaultGraph') {\n throw new Error('Encoding of quoted quads outside of the default graph is not allowed');\n }\n // Check if the quad was already encoded\n const encodedTripleOptional = (0, OrderUtils_1.encodeOptionalTerms)([quad.subject, quad.predicate, quad.object, quad.graph], this);\n const id = encodedTripleOptional && encodedTripleOptional.every(encoded => encoded !== undefined) ?\n this.quotedTriplesReverseDictionaries[0].getEncoded(encodedTripleOptional) :\n undefined;\n // Return the encoding if we found one\n if (id !== undefined || optional) {\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return (id === undefined ? undefined : TermDictionaryQuotedIndexed.BITMASK | id);\n }\n // If the quad was not encoded yet, add a new entry for it in the dictionary.\n const encodedTriple = [\n this.encode(quad.subject),\n this.encode(quad.predicate),\n this.encode(quad.object),\n ];\n const encodingBase = this.quotedTriplesDictionary.length + 1;\n this.quotedTriplesDictionary.push(encodedTriple);\n const encodedGraph = this.encode(this.dataFactory.defaultGraph());\n this.quotedTriplesReverseDictionaries[0].set([\n encodedTriple[0],\n encodedTriple[1],\n encodedTriple[2],\n encodedGraph,\n ], encodingBase);\n this.quotedTriplesReverseDictionaries[1].set([\n encodedTriple[1],\n encodedTriple[2],\n encodedTriple[0],\n encodedGraph,\n ], encodingBase);\n this.quotedTriplesReverseDictionaries[2].set([\n encodedTriple[2],\n encodedTriple[0],\n encodedTriple[1],\n encodedGraph,\n ], encodingBase);\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return TermDictionaryQuotedIndexed.BITMASK | encodingBase;\n }\n encodeOptional(term) {\n if (term.termType === 'Quad') {\n return this.encodeQuotedTriple(term, true);\n }\n return this.plainTermDictionary.encodeOptional(term);\n }\n decode(encoding) {\n if (TermDictionaryQuotedIndexed.BITMASK & encoding) {\n // Term comes from the quoted triples dictionary\n const encodingBase = (~TermDictionaryQuotedIndexed.BITMASK & encoding) - 1;\n if (encodingBase >= this.quotedTriplesDictionary.length) {\n throw new Error(`The value ${encoding} is not present in the quoted triples range of the dictionary`);\n }\n const encodedTerms = this.quotedTriplesDictionary[encodingBase];\n return this.dataFactory.quad(this.decode(encodedTerms[0]), this.decode(encodedTerms[1]), this.decode(encodedTerms[2]));\n }\n // Term comes from the plain terms dictionary\n return this.plainTermDictionary.decode(encoding);\n }\n *encodings() {\n for (const encoding of this.plainTermDictionary.encodings()) {\n yield encoding;\n }\n for (const encoding of this.quotedTriplesDictionary.keys()) {\n yield TermDictionaryQuotedIndexed.BITMASK | (1 + encoding);\n }\n }\n *findQuotedTriples(quotedTriplePattern) {\n for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n yield this.decode(termEncoded);\n }\n }\n *findQuotedTriplesEncoded(quotedTriplePattern) {\n const [patternIn, requireQuotedTripleFiltering] = (0, OrderUtils_1.quadToPattern)(quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph, true);\n // Find all matching terms iteratively\n for (const termS of this.patternToIterable(patternIn[0])) {\n for (const termP of this.patternToIterable(patternIn[1])) {\n for (const termO of this.patternToIterable(patternIn[2])) {\n for (const termG of this.patternToIterable(patternIn[3])) {\n // Find all terms matching the pattern from the reverse indexes\n // We select the reverse index according to the current triple pattern\n if ((termS && termP) || (!termP && !termO)) {\n // SPO\n const pattern = [termS, termP, termO, termG];\n for (const termEncoded of this.quotedTriplesReverseDictionaries[0].findEncoded(pattern, patternIn)) {\n yield TermDictionaryQuotedIndexed.BITMASK |\n this.quotedTriplesReverseDictionaries[0].getEncoded(termEncoded);\n }\n }\n else if (!termS && termP) {\n // POS\n const pattern = [termP, termO, termS, termG];\n for (const termEncoded of this.quotedTriplesReverseDictionaries[1].findEncoded(pattern, patternIn)) {\n yield TermDictionaryQuotedIndexed.BITMASK |\n this.quotedTriplesReverseDictionaries[1].getEncoded(termEncoded);\n }\n }\n else {\n // OSP\n const pattern = [termO, termS, termP, termG];\n for (const termEncoded of this.quotedTriplesReverseDictionaries[2].findEncoded(pattern, patternIn)) {\n yield TermDictionaryQuotedIndexed.BITMASK |\n this.quotedTriplesReverseDictionaries[2].getEncoded(termEncoded);\n }\n }\n }\n }\n }\n }\n }\n /**\n * Helper function to convert a term to an iterator over encoded terms.\n * @param patternTerm A term.\n * @protected\n */\n *patternToIterable(patternTerm) {\n // If the term is another quoted quad, recursively find other quoted triples\n if ((patternTerm === null || patternTerm === void 0 ? void 0 : patternTerm.termType) === 'Quad') {\n yield* this.findQuotedTriplesEncoded(patternTerm);\n return;\n }\n // Undefined terms indicate a variable\n if (patternTerm === undefined) {\n // eslint-disable-next-line unicorn/no-useless-undefined\n yield undefined;\n return;\n }\n // Defined terms indicate a precise match\n const enc = this.encodeOptional(patternTerm);\n if (enc === undefined) {\n return;\n }\n yield enc;\n }\n}\nTermDictionaryQuotedIndexed.BITMASK = 1 << 31;\nexports.TermDictionaryQuotedIndexed = TermDictionaryQuotedIndexed;\n//# sourceMappingURL=TermDictionaryQuotedIndexed.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryQuotedReferential = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms and quoted triples are stored in separate dictionaries,\n * but quoted triples are encoded using encodings from the plain term dictionary.\n *\n * Finding quoted triples is done by iterating over all quoted triples, and filtering by the matching ones.\n */\nclass TermDictionaryQuotedReferential {\n constructor(plainTermDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.quotedTriplesDictionary = [];\n this.quotedTriplesReverseDictionary = {};\n this.features = { quotedTriples: true };\n this.plainTermDictionary = plainTermDictionary;\n this.dataFactory = dataFactory;\n }\n encode(term) {\n if (term.termType === 'Quad') {\n return this.encodeQuotedTriple(term, false);\n }\n return this.plainTermDictionary.encode(term);\n }\n encodeQuotedTriple(quad, optional) {\n var _a;\n // Only quoted triples are supported\n if (quad.graph.termType !== 'DefaultGraph') {\n throw new Error('Encoding of quoted quads outside of the default graph is not allowed');\n }\n // Check if the quad was already encoded\n const encodedTripleOptional = (_a = (0, OrderUtils_1.encodeOptionalTerms)([quad.subject, quad.predicate, quad.object, undefined], this)) === null || _a === void 0 ? void 0 : _a.slice(0, 3);\n const id = encodedTripleOptional && encodedTripleOptional.every(encoded => encoded !== undefined) ?\n this.quotedTriplesReverseDictionary[encodedTripleOptional.join(TermDictionaryQuotedReferential.SEPARATOR)] :\n undefined;\n // Return the encoding if we found one\n if (id !== undefined || optional) {\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return (id === undefined ? undefined : TermDictionaryQuotedReferential.BITMASK | id);\n }\n // If the quad was not encoded yet, add a new entry for it in the dictionary.\n const encodedTriple = [\n this.encode(quad.subject),\n this.encode(quad.predicate),\n this.encode(quad.object),\n ];\n const encodingBase = this.quotedTriplesDictionary.length + 1;\n this.quotedTriplesDictionary.push(encodedTriple);\n this.quotedTriplesReverseDictionary[encodedTriple.join(TermDictionaryQuotedReferential.SEPARATOR)] = encodingBase;\n // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n return TermDictionaryQuotedReferential.BITMASK | encodingBase;\n }\n encodeOptional(term) {\n if (term.termType === 'Quad') {\n return this.encodeQuotedTriple(term, true);\n }\n return this.plainTermDictionary.encodeOptional(term);\n }\n decode(encoding) {\n if (TermDictionaryQuotedReferential.BITMASK & encoding) {\n // Term comes from the quoted triples dictionary\n const encodingBase = (~TermDictionaryQuotedReferential.BITMASK & encoding) - 1;\n if (encodingBase >= this.quotedTriplesDictionary.length) {\n throw new Error(`The value ${encoding} is not present in the quoted triples range of the dictionary`);\n }\n const encodedTerms = this.quotedTriplesDictionary[encodingBase];\n return this.dataFactory.quad(this.decode(encodedTerms[0]), this.decode(encodedTerms[1]), this.decode(encodedTerms[2]));\n }\n // Term comes from the plain terms dictionary\n return this.plainTermDictionary.decode(encoding);\n }\n *encodings() {\n for (const encoding of this.plainTermDictionary.encodings()) {\n yield encoding;\n }\n for (const encoding of this.quotedTriplesDictionary.keys()) {\n yield TermDictionaryQuotedReferential.BITMASK | (1 + encoding);\n }\n }\n *findQuotedTriples(quotedTriplePattern) {\n for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n yield this.decode(termEncoded);\n }\n }\n *findQuotedTriplesEncoded(quotedTriplePattern) {\n for (let encodedQuotedTriple of this.quotedTriplesDictionary.keys()) {\n encodedQuotedTriple = TermDictionaryQuotedReferential.BITMASK | (1 + encodedQuotedTriple);\n const quotedTriple = this.decode(encodedQuotedTriple);\n if ((0, rdf_terms_1.matchPattern)(quotedTriple, quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph)) {\n yield encodedQuotedTriple;\n }\n }\n }\n}\nTermDictionaryQuotedReferential.BITMASK = 1 << 31;\nTermDictionaryQuotedReferential.SEPARATOR = '_';\nexports.TermDictionaryQuotedReferential = TermDictionaryQuotedReferential;\n//# sourceMappingURL=TermDictionaryQuotedReferential.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionarySymbol = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A term dictionary that encodes and decodes using symbols.\n */\nclass TermDictionarySymbol {\n constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n this.features = { quotedTriples: false };\n this.dataFactory = dataFactory;\n }\n encode(term) {\n return Symbol.for(`rdf::${(0, rdf_string_1.termToString)(term)}`);\n }\n encodeOptional(term) {\n return this.encode(term);\n }\n decode(encoding) {\n const string = Symbol.keyFor(encoding);\n if (string === undefined) {\n throw new Error(`The value ${String(encoding)} is not present in this dictionary`);\n }\n return (0, rdf_string_1.stringToTerm)(string.slice(5), this.dataFactory);\n }\n encodings() {\n throw new Error('encodings is not supported');\n }\n findQuotedTriples(quotedTriplePattern) {\n throw new Error('findQuotedTriples is not supported');\n }\n findQuotedTriplesEncoded(quotedTriplePattern) {\n throw new Error('findQuotedTriplesEncoded is not supported');\n }\n}\nexports.TermDictionarySymbol = TermDictionarySymbol;\n//# sourceMappingURL=TermDictionarySymbol.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IRdfStoreIndex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedMap = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * An RDF store index that is implemented using nested Maps.\n */\nclass RdfStoreIndexNestedMap {\n constructor(options) {\n this.features = {\n quotedTripleFiltering: false,\n };\n this.dictionary = options.dictionary;\n this.nestedMap = new Map();\n }\n set(terms, value) {\n const map0 = this.nestedMap;\n let map1 = map0.get(terms[0]);\n if (!map1) {\n map1 = new Map();\n map0.set(terms[0], map1);\n }\n let map2 = map1.get(terms[1]);\n if (!map2) {\n map2 = new Map();\n map1.set(terms[1], map2);\n }\n let map3 = map2.get(terms[2]);\n if (!map3) {\n map3 = new Map();\n map2.set(terms[2], map3);\n }\n const contained = map3.has(terms[3]);\n if (!contained) {\n map3.set(terms[3], value);\n }\n return !contained;\n }\n remove(terms) {\n const map0 = this.nestedMap;\n const map1 = map0.get(terms[0]);\n if (!map1) {\n return false;\n }\n const map2 = map1.get(terms[1]);\n if (!map2) {\n return false;\n }\n const map3 = map2.get(terms[2]);\n if (!map3) {\n return false;\n }\n const ret = map3.delete(terms[3]);\n // Clean up intermediate maps\n if (ret && map3.size === 0) {\n map2.delete(terms[2]);\n if (map2.size === 0) {\n map1.delete(terms[1]);\n if (map1.size === 0) {\n map0.delete(terms[0]);\n }\n }\n }\n return ret;\n }\n get(key) {\n const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n // eslint-disable-next-line unicorn/no-useless-undefined\n if (!encoded || encoded.includes(undefined)) {\n return undefined;\n }\n return this.getEncoded(encoded);\n }\n getEncoded(ids) {\n const map1 = this.nestedMap.get(ids[0]);\n if (!map1) {\n return undefined;\n }\n const map2 = map1.get(ids[1]);\n if (!map2) {\n return undefined;\n }\n const map3 = map2.get(ids[2]);\n if (!map3) {\n return undefined;\n }\n return map3.get(ids[3]);\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n let partialQuad0;\n let partialQuad1;\n let partialQuad2;\n let partialQuad3;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n partialQuad0 = term0 || this.dictionary.decode(key1);\n const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n partialQuad1 = term1 || this.dictionary.decode(key2);\n const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n partialQuad2 = term2 || this.dictionary.decode(key3);\n const map3Keys = id3 !== undefined ? (map3.has(id3) ? [id3] : []) : map3.keys();\n for (const key4 of map3Keys) {\n partialQuad3 = term3 || this.dictionary.decode(key4);\n yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n }\n }\n }\n }\n }\n // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n *findEncoded(ids, terms) {\n const [id0, id1, id2, id3] = ids;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n const map3Keys = id3 !== undefined ? (map3.has(id3) ? [id3] : []) : map3.keys();\n for (const key4 of map3Keys) {\n yield [key1, key2, key3, key4];\n }\n }\n }\n }\n }\n count(terms) {\n let count = 0;\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return 0;\n }\n const id0 = ids[0];\n const id1 = ids[1];\n const id2 = ids[2];\n const id3 = ids[3];\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n if (id3 !== undefined) {\n if (map3.has(id3)) {\n count++;\n }\n }\n else {\n count += map3.size;\n }\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedMap = RdfStoreIndexNestedMap;\n//# sourceMappingURL=RdfStoreIndexNestedMap.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedMapQuoted = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\nconst RdfStoreIndexNestedMap_1 = require(\"./RdfStoreIndexNestedMap\");\n/**\n * An RDF store index that is implemented using nested Maps with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedMapQuoted extends RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap {\n constructor(options) {\n super(options);\n this.features = {\n quotedTripleFiltering: true,\n };\n }\n *getQuotedPatternKeys(map, term) {\n for (const quotedTripleEncoded of this.dictionary.findQuotedTriplesEncoded(term)) {\n if (map.has(quotedTripleEncoded)) {\n yield quotedTripleEncoded;\n }\n }\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let partialQuad0;\n let partialQuad1;\n let partialQuad2;\n let partialQuad3;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n map0.keys());\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n partialQuad0 = !quotedTerm0 && term0 ? term0 : this.dictionary.decode(key1);\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n map1.keys());\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n partialQuad1 = !quotedTerm1 && term1 ? term1 : this.dictionary.decode(key2);\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n map2.keys());\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n partialQuad2 = !quotedTerm2 && term2 ? term2 : this.dictionary.decode(key3);\n const map3Keys = (term3 !== undefined ?\n (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (map3.has(id3) ? [id3] : [])) :\n map3.keys());\n for (const key4 of map3Keys) {\n partialQuad3 = !quotedTerm3 && term3 ? term3 : this.dictionary.decode(key4);\n yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n }\n }\n }\n }\n }\n // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n *findEncoded(ids, terms) {\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n map0.keys());\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n map1.keys());\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n map2.keys());\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n const map3Keys = (term3 !== undefined ?\n (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (map3.has(id3) ? [id3] : [])) :\n map3.keys());\n for (const key4 of map3Keys) {\n yield [\n Number.parseInt(key1, 10),\n Number.parseInt(key2, 10),\n Number.parseInt(key3, 10),\n Number.parseInt(key4, 10),\n ];\n }\n }\n }\n }\n }\n count(terms) {\n let count = 0;\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return 0;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedMap;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n map0.keys());\n for (const key1 of map0Keys) {\n map1 = map0.get(key1);\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n map1.keys());\n for (const key2 of map1Keys) {\n map2 = map1.get(key2);\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n map2.keys());\n for (const key3 of map2Keys) {\n map3 = map2.get(key3);\n if (term3 !== undefined) {\n if (quotedTerm3) {\n count += [...this.getQuotedPatternKeys(map3, term3)].length;\n }\n else if (map3.has(id3)) {\n count++;\n }\n }\n else {\n count += map3.size;\n }\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedMapQuoted = RdfStoreIndexNestedMapQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedMapQuoted.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedMapRecursive = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * An RDF store index that is implemented using nested Maps,\n * and finds quads components via recursive methods calls.\n */\nclass RdfStoreIndexNestedMapRecursive {\n constructor(options) {\n this.features = {\n quotedTripleFiltering: false,\n };\n this.dictionary = options.dictionary;\n this.nestedMap = new Map();\n }\n set(terms, value) {\n let map = this.nestedMap;\n let contained = false;\n for (const [i, term] of terms.entries()) {\n const mapActual = map;\n let nextMap = mapActual.get(term);\n if (!nextMap) {\n nextMap = i === terms.length - 1 ? value : new Map();\n mapActual.set(term, nextMap);\n }\n else if (i === terms.length - 1) {\n contained = true;\n }\n map = nextMap;\n }\n return !contained;\n }\n remove(terms) {\n const map0 = this.nestedMap;\n const map1 = map0.get(terms[0]);\n if (!map1) {\n return false;\n }\n const map2 = map1.get(terms[1]);\n if (!map2) {\n return false;\n }\n const map3 = map2.get(terms[2]);\n if (!map3) {\n return false;\n }\n const ret = map3.delete(terms[3]);\n // Clean up intermediate maps\n if (ret && map3.size === 0) {\n map2.delete(terms[2]);\n if (map2.size === 0) {\n map1.delete(terms[1]);\n if (map1.size === 0) {\n map0.delete(terms[0]);\n }\n }\n }\n return ret;\n }\n get(key) {\n const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n // eslint-disable-next-line unicorn/no-useless-undefined\n if (!encoded || encoded.includes(undefined)) {\n return undefined;\n }\n return this.getEncoded(encoded);\n }\n getEncoded(ids) {\n const map1 = this.nestedMap.get(ids[0]);\n if (!map1) {\n return undefined;\n }\n const map2 = map1.get(ids[1]);\n if (!map2) {\n return undefined;\n }\n const map3 = map2.get(ids[2]);\n if (!map3) {\n return undefined;\n }\n return map3.get(ids[3]);\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n for (const termsEncoded of this.findEncoded(ids, terms)) {\n yield [\n ids[0] !== undefined ? terms[0] : this.dictionary.decode(termsEncoded[0]),\n ids[1] !== undefined ? terms[1] : this.dictionary.decode(termsEncoded[1]),\n ids[2] !== undefined ? terms[2] : this.dictionary.decode(termsEncoded[2]),\n ids[3] !== undefined ? terms[3] : this.dictionary.decode(termsEncoded[3]),\n ];\n }\n }\n *findEncoded(ids, terms) {\n return yield* this\n .findEncodedInner(0, ids, terms, this.nestedMap, []);\n }\n *findEncodedInner(index, ids, terms, map, partialQuad) {\n if (index === ids.length) {\n yield [...partialQuad];\n }\n else {\n const id = ids[index];\n const currentTerm = terms[index];\n // If current term is undefined, iterate over all terms at this level.\n if (!currentTerm) {\n for (const [key, subMap] of map.entries()) {\n partialQuad[index] = key;\n yield* this\n .findEncodedInner(index + 1, ids, terms, subMap, partialQuad);\n }\n }\n else {\n // If the current term is defined, find one matching map for the current term.\n const encodedTerm = id;\n if (encodedTerm !== undefined) {\n const subMap = map.get(encodedTerm);\n if (subMap) {\n partialQuad[index] = id;\n yield* this\n .findEncodedInner(index + 1, ids, terms, subMap, partialQuad);\n }\n }\n }\n }\n }\n count(terms) {\n return this.countInner(0, terms, this.nestedMap);\n }\n countInner(index, terms, map) {\n const currentTerm = terms[index];\n let count = 0;\n // If current term is undefined, iterate over all terms at this level.\n if (!currentTerm) {\n if (index === terms.length - 1) {\n return map.size;\n }\n for (const subMap of map.values()) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n else {\n // If the current term is defined, find one matching map for the current term.\n const encodedTerm = this.dictionary.encodeOptional(currentTerm);\n if (encodedTerm !== undefined) {\n if (index === terms.length - 1) {\n if (map.has(encodedTerm)) {\n return 1;\n }\n return 0;\n }\n const subMap = map.get(encodedTerm);\n if (subMap) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedMapRecursive = RdfStoreIndexNestedMapRecursive;\n//# sourceMappingURL=RdfStoreIndexNestedMapRecursive.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedMapRecursiveQuoted = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\nconst RdfStoreIndexNestedMapRecursive_1 = require(\"./RdfStoreIndexNestedMapRecursive\");\n/**\n * An RDF store index that is implemented using nested Maps,\n * and finds quads components via recursive methods calls\n * with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedMapRecursiveQuoted extends RdfStoreIndexNestedMapRecursive_1.RdfStoreIndexNestedMapRecursive {\n constructor(options) {\n super(options);\n this.features = {\n quotedTripleFiltering: true,\n };\n }\n *findEncoded(ids, terms) {\n return yield* this\n .findEncodedInnerQuoted(0, ids, terms, (0, OrderUtils_1.arePatternsQuoted)(terms), this.nestedMap, []);\n }\n *findEncodedInnerQuoted(index, ids, terms, isQuotedPattern, map, partialQuad) {\n if (index === ids.length) {\n yield [...partialQuad];\n }\n else {\n const id = ids[index];\n const currentTerm = terms[index];\n // If current term is undefined, iterate over all terms at this level.\n if (!currentTerm) {\n for (const [key, subMap] of map.entries()) {\n partialQuad[index] = key;\n yield* this\n .findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n }\n }\n else if (isQuotedPattern[index]) {\n const quotedTriplesEncoded = this\n .dictionary.findQuotedTriplesEncoded(currentTerm);\n // Below, we perform a type of inner (hash) join between quotedTriplesEncoded and map (with hash on map)\n for (const quotedTripleEncoded of quotedTriplesEncoded) {\n const subMap = map.get(quotedTripleEncoded);\n if (subMap) {\n partialQuad[index] = quotedTripleEncoded;\n yield* this.findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n }\n }\n }\n else {\n // If the current term is defined, find one matching map for the current term.\n const encodedTerm = id;\n if (encodedTerm !== undefined) {\n const subMap = map.get(encodedTerm);\n if (subMap) {\n partialQuad[index] = id;\n yield* this.findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n }\n }\n }\n }\n }\n countInner(index, terms, map) {\n const currentTerm = terms[index];\n let count = 0;\n // If current term is undefined, iterate over all terms at this level.\n if (!currentTerm) {\n if (index === terms.length - 1) {\n return map.size;\n }\n for (const subMap of map.values()) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n else if (currentTerm.termType === 'Quad' && (0, OrderUtils_1.quadHasVariables)(currentTerm)) {\n const quotedTriplesEncoded = this.dictionary.findQuotedTriplesEncoded(currentTerm);\n // Below, we perform a type of inner (hash) join between quotedTriplesEncoded and map (with hash on map)\n for (const quotedTripleEncoded of quotedTriplesEncoded) {\n if (index === terms.length - 1) {\n if (map.has(quotedTripleEncoded)) {\n count++;\n }\n }\n else {\n const subMap = map.get(quotedTripleEncoded);\n if (subMap) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n }\n }\n else {\n // If the current term is defined, find one matching map for the current term.\n const encodedTerm = this.dictionary.encodeOptional(currentTerm);\n if (encodedTerm !== undefined) {\n if (index === terms.length - 1) {\n if (map.has(encodedTerm)) {\n return 1;\n }\n return 0;\n }\n const subMap = map.get(encodedTerm);\n if (subMap) {\n count += this.countInner(index + 1, terms, subMap);\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedMapRecursiveQuoted = RdfStoreIndexNestedMapRecursiveQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedMapRecursiveQuoted.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedRecord = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * An RDF store index that is implemented using nested records.\n */\nclass RdfStoreIndexNestedRecord {\n constructor(options) {\n this.features = {\n quotedTripleFiltering: false,\n };\n this.dictionary = options.dictionary;\n this.nestedRecords = {};\n }\n set(terms, value) {\n const map0 = this.nestedRecords;\n const map1 = map0[terms[0]] || (map0[terms[0]] = {});\n const map2 = map1[terms[1]] || (map1[terms[1]] = {});\n const map3 = map2[terms[2]] || (map2[terms[2]] = {});\n if (map3[terms[3]]) {\n return false;\n }\n map3[terms[3]] = value;\n return true;\n }\n remove(terms) {\n const map0 = this.nestedRecords;\n const map1 = map0[terms[0]];\n if (!map1) {\n return false;\n }\n const map2 = map1[terms[1]];\n if (!map2) {\n return false;\n }\n const map3 = map2[terms[2]];\n if (!map3) {\n return false;\n }\n if (!map3[terms[3]]) {\n return false;\n }\n delete map3[terms[3]];\n // Clean up intermediate maps\n if (Object.keys(map3).length === 0) {\n delete map2[terms[2]];\n if (Object.keys(map2).length === 0) {\n delete map1[terms[1]];\n if (Object.keys(map1).length === 0) {\n delete map0[terms[0]];\n }\n }\n }\n return true;\n }\n get(key) {\n const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n // eslint-disable-next-line unicorn/no-useless-undefined\n if (!encoded || encoded.includes(undefined)) {\n return undefined;\n }\n return this.getEncoded(encoded);\n }\n getEncoded(ids) {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.nestedRecords[ids[0]]) === null || _a === void 0 ? void 0 : _a[ids[1]]) === null || _b === void 0 ? void 0 : _b[ids[2]]) === null || _c === void 0 ? void 0 : _c[ids[3]];\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n let partialQuad0;\n let partialQuad1;\n let partialQuad2;\n let partialQuad3;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n partialQuad0 = term0 || this.dictionary.decode(Number.parseInt(key1, 10));\n const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n partialQuad1 = term1 || this.dictionary.decode(Number.parseInt(key2, 10));\n const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n partialQuad2 = term2 || this.dictionary.decode(Number.parseInt(key3, 10));\n const map3Keys = id3 !== undefined ? (id3 in map3 ? [id3] : []) : Object.keys(map3);\n for (const key4 of map3Keys) {\n partialQuad3 = term3 || this.dictionary.decode(Number.parseInt(key4, 10));\n yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n }\n }\n }\n }\n }\n // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n *findEncoded(ids, terms) {\n const [id0, id1, id2, id3] = ids;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n const map3Keys = id3 !== undefined ? (id3 in map3 ? [id3] : []) : Object.keys(map3);\n for (const key4 of map3Keys) {\n yield [\n Number.parseInt(key1, 10),\n Number.parseInt(key2, 10),\n Number.parseInt(key3, 10),\n Number.parseInt(key4, 10),\n ];\n }\n }\n }\n }\n }\n count(terms) {\n let count = 0;\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return 0;\n }\n const id0 = ids[0];\n const id1 = ids[1];\n const id2 = ids[2];\n const id3 = ids[3];\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n if (id3 !== undefined) {\n if (id3 in map3) {\n count++;\n }\n }\n else {\n count += Object.keys(map3).length;\n }\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedRecord = RdfStoreIndexNestedRecord;\n//# sourceMappingURL=RdfStoreIndexNestedRecord.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedRecordQuoted = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\nconst RdfStoreIndexNestedRecord_1 = require(\"./RdfStoreIndexNestedRecord\");\n/**\n * An RDF store index that is implemented using nested records with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedRecordQuoted extends RdfStoreIndexNestedRecord_1.RdfStoreIndexNestedRecord {\n constructor(options) {\n super(options);\n this.features = {\n quotedTripleFiltering: true,\n };\n }\n *getQuotedPatternKeys(map, term) {\n for (const quotedTripleEncoded of this.dictionary.findQuotedTriplesEncoded(term)) {\n if (quotedTripleEncoded in map) {\n yield quotedTripleEncoded;\n }\n }\n }\n *find(terms) {\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let partialQuad0;\n let partialQuad1;\n let partialQuad2;\n let partialQuad3;\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n Object.keys(map0));\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n partialQuad0 = !quotedTerm0 && term0 ? term0 : this.dictionary.decode(Number.parseInt(key1, 10));\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n Object.keys(map1));\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n partialQuad1 = !quotedTerm1 && term1 ? term1 : this.dictionary.decode(Number.parseInt(key2, 10));\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n Object.keys(map2));\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n partialQuad2 = !quotedTerm2 && term2 ? term2 : this.dictionary.decode(Number.parseInt(key3, 10));\n const map3Keys = (term3 !== undefined ?\n (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (id3 in map3 ? [id3] : [])) :\n Object.keys(map3));\n for (const key4 of map3Keys) {\n partialQuad3 = !quotedTerm3 && term3 ? term3 : this.dictionary.decode(Number.parseInt(key4, 10));\n yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n }\n }\n }\n }\n }\n // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n *findEncoded(ids, terms) {\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n Object.keys(map0));\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n Object.keys(map1));\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n Object.keys(map2));\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n const map3Keys = (term3 !== undefined ?\n (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (id3 in map3 ? [id3] : [])) :\n Object.keys(map3));\n for (const key4 of map3Keys) {\n yield [\n Number.parseInt(key1, 10),\n Number.parseInt(key2, 10),\n Number.parseInt(key3, 10),\n Number.parseInt(key4, 10),\n ];\n }\n }\n }\n }\n }\n count(terms) {\n let count = 0;\n const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n if (!ids) {\n return 0;\n }\n const [id0, id1, id2, id3] = ids;\n const [term0, term1, term2, term3] = terms;\n const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n let map1;\n let map2;\n let map3;\n const map0 = this.nestedRecords;\n const map0Keys = (term0 !== undefined ?\n (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n Object.keys(map0));\n for (const key1 of map0Keys) {\n map1 = map0[key1];\n const map1Keys = (term1 !== undefined ?\n (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n Object.keys(map1));\n for (const key2 of map1Keys) {\n map2 = map1[key2];\n const map2Keys = (term2 !== undefined ?\n (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n Object.keys(map2));\n for (const key3 of map2Keys) {\n map3 = map2[key3];\n if (term3 !== undefined) {\n if (quotedTerm3) {\n count += [...this.getQuotedPatternKeys(map3, term3)].length;\n }\n else if (id3 in map3) {\n count++;\n }\n }\n else {\n count += Object.keys(map3).length;\n }\n }\n }\n }\n return count;\n }\n}\nexports.RdfStoreIndexNestedRecordQuoted = RdfStoreIndexNestedRecordQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedRecordQuoted.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/PendingStreamsIndex\"), exports);\n__exportStar(require(\"./lib/StreamingStore\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PendingStreamsIndex = void 0;\nconst rdf_string_1 = require(\"rdf-string\");\nconst rdf_terms_1 = require(\"rdf-terms\");\n/**\n * A PendingStreamsIndex stores pending streams indexed by the quad pattern they have been created for.\n */\nclass PendingStreamsIndex {\n constructor() {\n this.indexedStreams = new Map();\n this.allStreams = [];\n }\n termToString(term) {\n return term && term.termType !== 'Variable' ? (0, rdf_string_1.termToString)(term) : PendingStreamsIndex.ID_VARIABLE;\n }\n /**\n * Add a new pending stream for the given quad pattern.\n * @param pendingStream A pending stream.\n * @param subject A term.\n * @param predicate A term.\n * @param object A term.\n * @param graph A term.\n */\n addPatternListener(pendingStream, subject, predicate, object, graph) {\n // Append to list of pendingStreams\n this.allStreams.push(pendingStream);\n // Append to index of pendingStreams\n const key = `${this.termToString(subject)}${PendingStreamsIndex.ID_SEPARATOR}${this.termToString(predicate)}${PendingStreamsIndex.ID_SEPARATOR}${this.termToString(object)}${PendingStreamsIndex.ID_SEPARATOR}${this.termToString(graph)}`;\n let existingListeners = this.indexedStreams.get(key);\n if (!existingListeners) {\n existingListeners = [];\n this.indexedStreams.set(key, existingListeners);\n }\n existingListeners.push(pendingStream);\n }\n /**\n * Find all the pending streams from which their quad pattern match the given quad.\n * @param quad The quad to match patterns to.\n */\n getPendingStreamsForQuad(quad) {\n // Determine the combinations of quad patterns to look up\n let keys = [(0, rdf_terms_1.getTerms)(quad).map(term => (0, rdf_string_1.termToString)(term))];\n for (let i = 0; i < rdf_terms_1.QUAD_TERM_NAMES.length; i++) {\n const keysOld = keys;\n keys = [];\n for (const key of keysOld) {\n keys.push(key);\n const keyModified = [...key];\n keyModified[i] = PendingStreamsIndex.ID_VARIABLE;\n keys.push(keyModified);\n }\n }\n // Fetch the pendingStreams for the quad pattern combinations\n const pendingStreams = [];\n for (const key of keys) {\n const found = this.indexedStreams.get(key.join(PendingStreamsIndex.ID_SEPARATOR));\n if (found) {\n pendingStreams.push(...found);\n }\n }\n return pendingStreams;\n }\n}\nPendingStreamsIndex.ID_VARIABLE = '?';\nPendingStreamsIndex.ID_SEPARATOR = ':';\nexports.PendingStreamsIndex = PendingStreamsIndex;\n//# sourceMappingURL=PendingStreamsIndex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingStore = void 0;\nconst n3_1 = require(\"n3\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst PendingStreamsIndex_1 = require(\"./PendingStreamsIndex\");\n/**\n * A StreamingStore allows data lookup and insertion to happen in parallel.\n * Concretely, this means that `match()` calls happening before `import()` calls, will still consider those triples that\n * are inserted later, which is done by keeping the response streams of `match()` open.\n * Only when the `end()` method is invoked, all response streams will close, and the StreamingStore will be considered\n * immutable.\n *\n * WARNING: `end()` MUST be called at some point, otherwise all `match` streams will remain unended.\n */\nclass StreamingStore {\n constructor(store = new n3_1.Store()) {\n this.pendingStreams = new PendingStreamsIndex_1.PendingStreamsIndex();\n this.ended = false;\n this.store = store;\n }\n /**\n * Mark this store as ended.\n *\n * This will make sure that all running and future `match` calls will end,\n * and all next `import` calls to this store will throw an error.\n */\n end() {\n this.ended = true;\n // Mark all pendingStreams as ended.\n for (const pendingStream of this.pendingStreams.allStreams) {\n pendingStream.push(null);\n pendingStream._pipeSource.unpipe();\n }\n }\n importToListeners(stream) {\n stream.on('data', (quad) => {\n if (!this.ended && !this.store.countQuads(quad.subject, quad.predicate, quad.object, quad.graph)) {\n for (const pendingStream of this.pendingStreams.getPendingStreamsForQuad(quad)) {\n if (pendingStream.isInitialized) {\n pendingStream.push(quad);\n pendingStream.emit('quad', quad);\n }\n }\n }\n });\n }\n import(stream) {\n if (this.ended) {\n throw new Error('Attempted to import into an ended StreamingStore');\n }\n this.importToListeners(stream);\n return this.store.import(stream);\n }\n match(subject, predicate, object, graph) {\n const storeResult = this.store.match(subject, predicate, object, graph);\n let stream = storeResult;\n // If the store hasn't ended yet, also create a new pendingStream\n if (!this.ended) {\n // The new pendingStream remains open, until the store is ended.\n const pendingStream = new readable_stream_1.PassThrough({ objectMode: true });\n this.pendingStreams.addPatternListener(pendingStream, subject, predicate, object, graph);\n stream = storeResult.pipe(pendingStream, { end: false });\n stream._pipeSource = storeResult;\n // This is an ugly hack to annotate pendingStream with the isInitialized once the store stream started being read.\n // This is necessary to avoid duplicate quads cases where match() is called but not yet read, an import is done,\n // and only then the match() stream is read.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const readOld = storeResult._read;\n storeResult._read = (size) => {\n pendingStream.isInitialized = true;\n readOld.call(storeResult, size);\n };\n }\n return stream;\n }\n /**\n * The internal store with all imported quads.\n */\n getStore() {\n return this.store;\n }\n}\nexports.StreamingStore = StreamingStore;\n//# sourceMappingURL=StreamingStore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = exports.stringToTerm = exports.stringQuadToQuad = exports.quadToStringQuad = exports.getLiteralValue = exports.getLiteralType = exports.getLiteralLanguage = void 0;\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nObject.defineProperty(exports, \"getLiteralLanguage\", { enumerable: true, get: function () { return TermUtil_1.getLiteralLanguage; } });\nObject.defineProperty(exports, \"getLiteralType\", { enumerable: true, get: function () { return TermUtil_1.getLiteralType; } });\nObject.defineProperty(exports, \"getLiteralValue\", { enumerable: true, get: function () { return TermUtil_1.getLiteralValue; } });\nObject.defineProperty(exports, \"quadToStringQuad\", { enumerable: true, get: function () { return TermUtil_1.quadToStringQuad; } });\nObject.defineProperty(exports, \"stringQuadToQuad\", { enumerable: true, get: function () { return TermUtil_1.stringQuadToQuad; } });\nObject.defineProperty(exports, \"stringToTerm\", { enumerable: true, get: function () { return TermUtil_1.stringToTerm; } });\nObject.defineProperty(exports, \"termToString\", { enumerable: true, get: function () { return TermUtil_1.termToString; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringQuadToQuad = exports.quadToStringQuad = exports.stringToTerm = exports.getLiteralLanguage = exports.getLiteralType = exports.getLiteralValue = exports.termToString = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst FACTORY = new rdf_data_factory_1.DataFactory();\n/**\n * Utility methods for converting between string-based RDF representations and RDFJS objects.\n *\n * RDF Terms are represented as follows:\n * * Blank nodes: '_:myBlankNode'\n * * Variables: '_myVariable'\n * * Literals: '\"myString\"', '\"myLanguageString\"@en-us', '\"

e

\"^^'\n * * URIs: ''\n *\n * Quads/triples are represented as hashes with 'subject', 'predicate', 'object' and 'graph' (optional)\n * as keys, and string-based RDF terms as values.\n */\n/**\n * Convert an RDFJS term to a string-based representation.\n * @param {RDF.Term} term An RDFJS term.\n * @return {string} A string-based term representation.\n */\nfunction termToString(term) {\n // TODO: remove nasty any casts when this TS bug has been fixed: https://github.com/microsoft/TypeScript/issues/26933\n if (!term) {\n return undefined;\n }\n switch (term.termType) {\n case 'NamedNode': return (`<${escapeIRI(term.value)}>`);\n case 'BlankNode': return (`_:${term.value}`);\n case 'Literal': {\n const literalValue = term;\n return (`\"${escapeStringRDF(literalValue.value)}\"${literalValue.datatype &&\n literalValue.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string' &&\n literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' ?\n `^^<${literalValue.datatype.value}>` :\n ''}${literalValue.language ? `@${literalValue.language}` : ''}`);\n }\n case 'Quad': return (`<<${termToString(term.subject)} ${termToString(term.predicate)} ${termToString(term.object)}${term.graph.termType === 'DefaultGraph' ? '' : ` ${termToString(term.graph)}`}>>`);\n case 'Variable': return (`?${term.value}`);\n case 'DefaultGraph': return term.value;\n }\n}\nexports.termToString = termToString;\n/**\n * Get the string value of a literal.\n * @param {string} literalValue An RDF literal enclosed by '\"'.\n * @return {string} The literal value inside the '\"'.\n */\nfunction getLiteralValue(literalValue) {\n const match = /^\"([^]*)\"((\\^\\^.*)|(@.*))?$/u.exec(literalValue);\n if (!match) {\n throw new Error(`${literalValue} is not a literal`);\n }\n return match[1].replace(/\\\\\"/ug, '\"');\n}\nexports.getLiteralValue = getLiteralValue;\n/**\n * Get the datatype of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The datatype of the literal.\n */\nfunction getLiteralType(literalValue) {\n const match = /^\"[^]*\"(?:\\^\\^<([^\"]+)>|(@)[^@\"]+)?$/u.exec(literalValue);\n if (!match) {\n throw new Error(`${literalValue} is not a literal`);\n }\n return match[1] || (match[2] ?\n 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' :\n 'http://www.w3.org/2001/XMLSchema#string');\n}\nexports.getLiteralType = getLiteralType;\n/**\n * Get the language of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The language of the literal.\n */\nfunction getLiteralLanguage(literalValue) {\n const match = /^\"[^]*\"(?:@([^@\"]+)|\\^\\^[^\"]+)?$/u.exec(literalValue);\n if (!match) {\n throw new Error(`${literalValue} is not a literal`);\n }\n return match[1] ? match[1].toLowerCase() : '';\n}\nexports.getLiteralLanguage = getLiteralLanguage;\n/**\n * Transform a string-based RDF term to an RDFJS term.\n * @param {string} value A string-based RDF-term.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {RDF.Term} An RDF-JS term.\n */\nfunction stringToTerm(value, dataFactory) {\n dataFactory = dataFactory || FACTORY;\n if (!value || (value.length === 0)) {\n return dataFactory.defaultGraph();\n }\n switch (value[0]) {\n case '_': return dataFactory.blankNode(value.slice(2));\n case '?':\n if (!dataFactory.variable) {\n throw new Error(`Missing 'variable()' method on the given DataFactory`);\n }\n return dataFactory.variable(value.slice(1));\n case '\"': {\n const language = getLiteralLanguage(value);\n const type = dataFactory.namedNode(getLiteralType(value));\n return dataFactory.literal(getLiteralValue(value), language || type);\n }\n case '<':\n default:\n if (value.startsWith('<<') && value.endsWith('>>')) {\n // Iterate character-by-character to detect spaces that are *not* wrapped in <<>>\n const terms = value.slice(2, -2);\n const stringTerms = [];\n let ignoreTags = 0;\n let lastIndex = 0;\n for (let i = 0; i < terms.length; i++) {\n const char = terms[i];\n if (char === '<') {\n ignoreTags++;\n }\n if (char === '>') {\n if (ignoreTags === 0) {\n throw new Error(`Found closing tag without opening tag in ${value}`);\n }\n else {\n ignoreTags--;\n }\n }\n if (char === ' ' && ignoreTags === 0) {\n stringTerms.push(terms.slice(lastIndex, i));\n lastIndex = i + 1;\n }\n }\n if (ignoreTags !== 0) {\n throw new Error(`Found opening tag without closing tag in ${value}`);\n }\n stringTerms.push(terms.slice(lastIndex, terms.length));\n // We require 3 or 4 components\n if (stringTerms.length !== 3 && stringTerms.length !== 4) {\n throw new Error(`Nested quad syntax error ${value}`);\n }\n return dataFactory.quad(stringToTerm(stringTerms[0]), stringToTerm(stringTerms[1]), stringToTerm(stringTerms[2]), stringTerms[3] ? stringToTerm(stringTerms[3]) : undefined);\n }\n if (!value.startsWith('<') || !value.endsWith('>')) {\n throw new Error(`Detected invalid iri for named node (must be wrapped in <>): ${value}`);\n }\n return dataFactory.namedNode(value.slice(1, -1));\n }\n}\nexports.stringToTerm = stringToTerm;\n/**\n * Convert an RDFJS quad to a string-based quad representation.\n * @param {Quad} q An RDFJS quad.\n * @return {IStringQuad} A hash with string-based quad terms.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction quadToStringQuad(quad) {\n return {\n subject: termToString(quad.subject),\n predicate: termToString(quad.predicate),\n object: termToString(quad.object),\n graph: termToString(quad.graph),\n };\n}\nexports.quadToStringQuad = quadToStringQuad;\n/**\n * Convert a string-based quad representation to an RDFJS quad.\n * @param {IStringQuad} stringQuad A hash with string-based quad terms.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {Q} An RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction stringQuadToQuad(stringQuad, dataFactory) {\n dataFactory = dataFactory || FACTORY;\n return dataFactory.quad(stringToTerm(stringQuad.subject, dataFactory), stringToTerm(stringQuad.predicate, dataFactory), stringToTerm(stringQuad.object, dataFactory), stringToTerm(stringQuad.graph, dataFactory));\n}\nexports.stringQuadToQuad = stringQuadToQuad;\nfunction escapeIRI(iriValue) {\n return iriValue.replace(escapePattern, replaceEscapedCharacter);\n}\nfunction escapeStringRDF(stringValue) {\n if (escapePattern.test(stringValue)) {\n stringValue = stringValue.replace(escapePattern, replaceEscapedCharacter);\n }\n return stringValue;\n}\n// Characters in literals and IRIs that require escaping\n// Also containing potential surrogate pairs\n/* eslint-disable require-unicode-regexp */ /* eslint-disable unicorn/better-regex */\nconst escapePattern = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n/* eslint-enable require-unicode-regexp */ /* eslint-enable unicorn/better-regex */\nconst escapes = new Map([\n ['\\\\', '\\\\\\\\'],\n ['\"', '\\\\\"'],\n ['\\t', '\\\\t'],\n ['\\n', '\\\\n'],\n ['\\r', '\\\\r'],\n ['\\b', '\\\\b'],\n ['\\f', '\\\\f'],\n]);\nfunction replaceEscapedCharacter(character) {\n // Try simplest case first, get replacement for character\n const result = escapes.get(character);\n if (!result) {\n if (character.length === 1) {\n // Single unicode charachters, i.e. not a surrogate pair\n const code = character.charCodeAt(0).toString(16);\n return `${'\\\\u0000'.slice(0, -code.length)}${code}`;\n }\n // Surrogate pairs\n const code = ((character.charCodeAt(0) - 55296) * 1024 + character.charCodeAt(1) + 9216).toString(16);\n return `${'\\\\U00000000'.slice(0, -code.length)}${code}`;\n }\n return result;\n}\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = exports.stringToTerm = exports.stringQuadToQuad = exports.quadToStringQuad = exports.getLiteralValue = exports.getLiteralType = exports.getLiteralLanguage = void 0;\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nObject.defineProperty(exports, \"getLiteralLanguage\", { enumerable: true, get: function () { return TermUtil_1.getLiteralLanguage; } });\nObject.defineProperty(exports, \"getLiteralType\", { enumerable: true, get: function () { return TermUtil_1.getLiteralType; } });\nObject.defineProperty(exports, \"getLiteralValue\", { enumerable: true, get: function () { return TermUtil_1.getLiteralValue; } });\nObject.defineProperty(exports, \"quadToStringQuad\", { enumerable: true, get: function () { return TermUtil_1.quadToStringQuad; } });\nObject.defineProperty(exports, \"stringQuadToQuad\", { enumerable: true, get: function () { return TermUtil_1.stringQuadToQuad; } });\nObject.defineProperty(exports, \"stringToTerm\", { enumerable: true, get: function () { return TermUtil_1.stringToTerm; } });\nObject.defineProperty(exports, \"termToString\", { enumerable: true, get: function () { return TermUtil_1.termToString; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringQuadToQuad = exports.quadToStringQuad = exports.stringToTerm = exports.getLiteralLanguage = exports.getLiteralType = exports.getLiteralValue = exports.termToString = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst FACTORY = new rdf_data_factory_1.DataFactory();\n/**\n * Utility methods for converting between string-based RDF representations and RDFJS objects.\n *\n * RDF Terms are represented as follows:\n * * Blank nodes: '_:myBlankNode'\n * * Variables: '?myVariable'\n * * Literals: '\"myString\"', '\"myLanguageString\"@en-us', '\"3\"^^xsd:number'\n * * URIs: 'http://example.org'\n *\n * Quads/triples are represented as hashes with 'subject', 'predicate', 'object' and 'graph' (optional)\n * as keys, and string-based RDF terms as values.\n */\n/**\n * Convert an RDFJS term to a string-based representation.\n * @param {RDF.Term} term An RDFJS term.\n * @return {string} A string-based term representation.\n */\nfunction termToString(term) {\n // TODO: remove nasty any casts when this TS bug has been fixed: https://github.com/microsoft/TypeScript/issues/26933\n if (!term) {\n return undefined;\n }\n switch (term.termType) {\n case 'NamedNode': return term.value;\n case 'BlankNode': return ('_:' + term.value);\n case 'Literal':\n const literalValue = term;\n return ('\"' + literalValue.value + '\"' +\n (literalValue.datatype &&\n literalValue.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string' &&\n literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' ?\n '^^' + literalValue.datatype.value : '') +\n (literalValue.language ? '@' + literalValue.language : ''));\n case 'Quad': return `<<${termToString(term.subject)} ${termToString(term.predicate)} ${termToString(term.object)}${term.graph.termType === 'DefaultGraph' ? '' : ' ' + termToString(term.graph)}>>`;\n case 'Variable': return ('?' + term.value);\n case 'DefaultGraph': return term.value;\n }\n}\nexports.termToString = termToString;\n/**\n * Get the string value of a literal.\n * @param {string} literalValue An RDF literal enclosed by '\"'.\n * @return {string} The literal value inside the '\"'.\n */\nfunction getLiteralValue(literalValue) {\n const match = /^\"([^]*)\"/.exec(literalValue);\n if (!match) {\n throw new Error(literalValue + ' is not a literal');\n }\n return match[1];\n}\nexports.getLiteralValue = getLiteralValue;\n/**\n * Get the datatype of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The datatype of the literal.\n */\nfunction getLiteralType(literalValue) {\n const match = /^\"[^]*\"(?:\\^\\^([^\"]+)|(@)[^@\"]+)?$/.exec(literalValue);\n if (!match) {\n throw new Error(literalValue + ' is not a literal');\n }\n return match[1] || (match[2]\n ? 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' : 'http://www.w3.org/2001/XMLSchema#string');\n}\nexports.getLiteralType = getLiteralType;\n/**\n * Get the language of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The language of the literal.\n */\nfunction getLiteralLanguage(literalValue) {\n const match = /^\"[^]*\"(?:@([^@\"]+)|\\^\\^[^\"]+)?$/.exec(literalValue);\n if (!match) {\n throw new Error(literalValue + ' is not a literal');\n }\n return match[1] ? match[1].toLowerCase() : '';\n}\nexports.getLiteralLanguage = getLiteralLanguage;\n/**\n * Transform a string-based RDF term to an RDFJS term.\n * @param {string} value A string-based RDF-term.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {RDF.Term} An RDF-JS term.\n */\nfunction stringToTerm(value, dataFactory) {\n dataFactory = dataFactory || FACTORY;\n if (!value || !value.length) {\n return dataFactory.defaultGraph();\n }\n switch (value[0]) {\n case '_': return dataFactory.blankNode(value.substr(2));\n case '?':\n if (!dataFactory.variable) {\n throw new Error(`Missing 'variable()' method on the given DataFactory`);\n }\n return dataFactory.variable(value.substr(1));\n case '\"':\n const language = getLiteralLanguage(value);\n const type = dataFactory.namedNode(getLiteralType(value));\n return dataFactory.literal(getLiteralValue(value), language || type);\n case '<':\n default:\n if (value[0] === '<' && value.length > 4 && value[1] === '<' && value[value.length - 1] === '>' && value[value.length - 2] === '>') {\n // Iterate character-by-character to detect spaces that are *not* wrapped in <<>>\n const terms = value.slice(2, -2).trim();\n let stringTerms = [];\n let ignoreTags = 0;\n let lastIndex = 0;\n let inQuote = false;\n for (let i = 0; i < terms.length; i++) {\n const char = terms[i];\n if (char === '<')\n ignoreTags++;\n if (char === '>') {\n if (ignoreTags === 0) {\n throw new Error('Found closing tag without opening tag in ' + value);\n }\n else {\n ignoreTags--;\n }\n }\n if (char === '\"') {\n let escaped = false;\n let j = i;\n while (j-- > 0 && terms[j] === '\\\\') {\n escaped = !escaped;\n }\n if (!escaped) {\n // We have reached an unescaped quote\n inQuote = !inQuote;\n }\n }\n if (char === ' ' && !inQuote && ignoreTags === 0) {\n stringTerms.push(terms.slice(lastIndex, i));\n while (terms[i + 1] === ' ') {\n i += 1;\n }\n lastIndex = i + 1;\n }\n }\n if (ignoreTags !== 0) {\n throw new Error('Found opening tag without closing tag in ' + value);\n }\n stringTerms.push(terms.slice(lastIndex, terms.length));\n // We require 3 or 4 components\n if (stringTerms.length !== 3 && stringTerms.length !== 4) {\n throw new Error('Nested quad syntax error ' + value);\n }\n stringTerms = stringTerms.map(term => term.startsWith('<') && !term.includes(' ') ? term.slice(1, -1) : term);\n return dataFactory.quad(stringToTerm(stringTerms[0]), stringToTerm(stringTerms[1]), stringToTerm(stringTerms[2]), stringTerms[3] ? stringToTerm(stringTerms[3]) : undefined);\n }\n return dataFactory.namedNode(value);\n }\n}\nexports.stringToTerm = stringToTerm;\n/**\n * Convert an RDFJS quad to a string-based quad representation.\n * @param {Quad} q An RDFJS quad.\n * @return {IStringQuad} A hash with string-based quad terms.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction quadToStringQuad(q) {\n // tslint:disable:object-literal-sort-keys\n return {\n subject: termToString(q.subject),\n predicate: termToString(q.predicate),\n object: termToString(q.object),\n graph: termToString(q.graph),\n };\n // tslint:enable:object-literal-sort-keys\n}\nexports.quadToStringQuad = quadToStringQuad;\n/**\n * Convert a string-based quad representation to an RDFJS quad.\n * @param {IStringQuad} stringQuad A hash with string-based quad terms.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {Q} An RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction stringQuadToQuad(stringQuad, dataFactory) {\n dataFactory = dataFactory || FACTORY;\n return dataFactory.quad(stringToTerm(stringQuad.subject, dataFactory), stringToTerm(stringQuad.predicate, dataFactory), stringToTerm(stringQuad.object, dataFactory), stringToTerm(stringQuad.graph, dataFactory));\n}\nexports.stringQuadToQuad = stringQuadToQuad;\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/QuadTermUtil\"), exports);\n__exportStar(require(\"./lib/TermUtil\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.matchPatternMappings = exports.matchPatternComplete = exports.matchPattern = exports.matchTerm = exports.getValueNestedPath = exports.someTermsNested = exports.someTerms = exports.everyTermsNested = exports.everyTerms = exports.reduceTermsNested = exports.reduceTerms = exports.mapTermsNested = exports.mapTerms = exports.filterQuadTermNamesNested = exports.filterQuadTermNames = exports.filterTermsNested = exports.filterTerms = exports.forEachTermsNested = exports.forEachTerms = exports.collectNamedTerms = exports.getNamedTerms = exports.getTermsNested = exports.getTerms = exports.TRIPLE_TERM_NAMES = exports.QUAD_TERM_NAMES = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst DF = new rdf_data_factory_1.DataFactory();\n/**\n * All available quad term names.\n * @type {[string , string , string , string]}\n */\nexports.QUAD_TERM_NAMES = ['subject', 'predicate', 'object', 'graph'];\n/**\n * All available triple term names.\n * @type {[string , string , string]}\n */\nexports.TRIPLE_TERM_NAMES = ['subject', 'predicate', 'object'];\n/**\n * Get all terms in the given quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n * this term will not be returned in the array.\n * (default: false)\n * @return {Term[]} The available terms in the quad.\n */\nfunction getTerms(quad, ignoreDefaultGraph) {\n if (ignoreDefaultGraph && quad.graph.termType === 'DefaultGraph') {\n return [quad.subject, quad.predicate, quad.object];\n }\n return [quad.subject, quad.predicate, quad.object, quad.graph];\n}\nexports.getTerms = getTerms;\n/**\n * Get all terms in the given quad, including nested quads.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n * this term will not be returned in the array.\n * (default: false)\n * @return {Term[]} The available terms in the nested quad, excluding quad terms.\n */\nfunction getTermsNested(quad, ignoreDefaultGraph) {\n const terms = [];\n for (const term of getTerms(quad, ignoreDefaultGraph)) {\n if (term.termType === 'Quad') {\n getTermsNested(term, ignoreDefaultGraph).forEach(subTerm => terms.push(subTerm));\n }\n else {\n terms.push(term);\n }\n }\n return terms;\n}\nexports.getTermsNested = getTermsNested;\n/**\n * Convert the given quad to an array of named terms.\n * This is the reverse operation of {@link collectNamedTerms}.\n * @param {BaseQuad} quad An RDFJS quad.\n * @return {INamedTerm[]} An array of named terms.\n */\nfunction getNamedTerms(quad) {\n return [\n { key: 'subject', value: quad.subject },\n { key: 'predicate', value: quad.predicate },\n { key: 'object', value: quad.object },\n { key: 'graph', value: quad.graph },\n ];\n}\nexports.getNamedTerms = getNamedTerms;\n/**\n * Convert an array of named terms to an RDFJS quad.\n * This is the reverse operation of {@link getNamedTerms}.\n * @param {INamedTerm[]} namedTerms An array of named terms.\n * @param {(termName: QuadTermName) => Term} defaultCb An optional callback for when\n * certain terms are not available in the array.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Q} The resulting RDFJS quad.\n * @template Q The type of quad to output, defaults to RDF.Quad.\n */\nfunction collectNamedTerms(namedTerms, defaultCb, dataFactory) {\n const elements = {};\n namedTerms.forEach((namedTerm) => elements[namedTerm.key] = namedTerm.value);\n if (defaultCb) {\n elements.subject = elements.subject || defaultCb('subject');\n elements.predicate = elements.predicate || defaultCb('predicate');\n elements.object = elements.object || defaultCb('object');\n elements.graph = elements.graph || defaultCb('graph');\n }\n return (dataFactory || DF).quad(elements.subject, elements.predicate, elements.object, elements.graph);\n}\nexports.collectNamedTerms = collectNamedTerms;\n/**\n * Iterates over each term.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n */\nfunction forEachTerms(quad, cb) {\n cb(quad.subject, 'subject');\n cb(quad.predicate, 'predicate');\n cb(quad.object, 'object');\n cb(quad.graph, 'graph');\n}\nexports.forEachTerms = forEachTerms;\n/**\n * Iterates over each leaf term, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n * @param QuadTermName[] keys The current key path.\n */\nfunction forEachTermsNested(quad, cb, keys = []) {\n if (quad.subject.termType === 'Quad') {\n forEachTermsNested(quad.subject, cb, [...keys, 'subject']);\n }\n else {\n cb(quad.subject, [...keys, 'subject']);\n }\n if (quad.predicate.termType === 'Quad') {\n forEachTermsNested(quad.predicate, cb, [...keys, 'predicate']);\n }\n else {\n cb(quad.predicate, [...keys, 'predicate']);\n }\n if (quad.object.termType === 'Quad') {\n forEachTermsNested(quad.object, cb, [...keys, 'object']);\n }\n else {\n cb(quad.object, [...keys, 'object']);\n }\n if (quad.graph.termType === 'Quad') {\n forEachTermsNested(quad.graph, cb, [...keys, 'graph']);\n }\n else {\n cb(quad.graph, [...keys, 'graph']);\n }\n}\nexports.forEachTermsNested = forEachTermsNested;\n/**\n * Get all terms in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTerms(quad, filter) {\n const terms = [];\n if (filter(quad.subject, 'subject')) {\n terms.push(quad.subject);\n }\n if (filter(quad.predicate, 'predicate')) {\n terms.push(quad.predicate);\n }\n if (filter(quad.object, 'object')) {\n terms.push(quad.object);\n }\n if (filter(quad.graph, 'graph')) {\n terms.push(quad.graph);\n }\n return terms;\n}\nexports.filterTerms = filterTerms;\n/**\n * Get all terms in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTermsNested(quad, filter, keys = []) {\n let terms = [];\n if (quad.subject.termType === 'Quad') {\n terms = [...terms, ...filterTermsNested(quad.subject, filter, [...keys, 'subject'])];\n }\n else {\n if (filter(quad.subject, [...keys, 'subject'])) {\n terms.push(quad.subject);\n }\n }\n if (quad.predicate.termType === 'Quad') {\n terms = [...terms, ...filterTermsNested(quad.predicate, filter, [...keys, 'predicate'])];\n }\n else {\n if (filter(quad.predicate, [...keys, 'predicate'])) {\n terms.push(quad.predicate);\n }\n }\n if (quad.object.termType === 'Quad') {\n terms = [...terms, ...filterTermsNested(quad.object, filter, [...keys, 'object'])];\n }\n else {\n if (filter(quad.object, [...keys, 'object'])) {\n terms.push(quad.object);\n }\n }\n if (quad.graph.termType === 'Quad') {\n terms = [...terms, ...filterTermsNested(quad.graph, filter, [...keys, 'graph'])];\n }\n else {\n if (filter(quad.graph, [...keys, 'graph'])) {\n terms.push(quad.graph);\n }\n }\n return terms;\n}\nexports.filterTermsNested = filterTermsNested;\n/**\n * Get all quad term names in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNames(quad, filter) {\n const names = [];\n if (filter(quad.subject, 'subject')) {\n names.push('subject');\n }\n if (filter(quad.predicate, 'predicate')) {\n names.push('predicate');\n }\n if (filter(quad.object, 'object')) {\n names.push('object');\n }\n if (filter(quad.graph, 'graph')) {\n names.push('graph');\n }\n return names;\n}\nexports.filterQuadTermNames = filterQuadTermNames;\n/**\n * Get all quad term names in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNamesNested(quad, filter, keys = []) {\n let names = [];\n const keysS = [...keys, 'subject'];\n if (quad.subject.termType === 'Quad') {\n names = [...names, ...filterQuadTermNamesNested(quad.subject, filter, keysS)];\n }\n else {\n if (filter(quad.subject, keysS)) {\n names.push(keysS);\n }\n }\n const keysP = [...keys, 'predicate'];\n if (quad.predicate.termType === 'Quad') {\n names = [...names, ...filterQuadTermNamesNested(quad.predicate, filter, keysP)];\n }\n else {\n if (filter(quad.predicate, keysP)) {\n names.push(keysP);\n }\n }\n const keysO = [...keys, 'object'];\n if (quad.object.termType === 'Quad') {\n names = [...names, ...filterQuadTermNamesNested(quad.object, filter, keysO)];\n }\n else {\n if (filter(quad.object, keysO)) {\n names.push(keysO);\n }\n }\n const keysG = [...keys, 'graph'];\n if (quad.graph.termType === 'Quad') {\n names = [...names, ...filterQuadTermNamesNested(quad.graph, filter, keysG)];\n }\n else {\n if (filter(quad.graph, keysG)) {\n names.push(keysG);\n }\n }\n return names;\n}\nexports.filterQuadTermNamesNested = filterQuadTermNamesNested;\n/**\n * Map all terms of a quad.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTerms(quad, mapper, dataFactory) {\n return (dataFactory || DF).quad(mapper(quad.subject, 'subject'), mapper(quad.predicate, 'predicate'), mapper(quad.object, 'object'), mapper(quad.graph, 'graph'));\n}\nexports.mapTerms = mapTerms;\n/**\n * Map all terms of a quad, while recursing into quoted triples.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @param QuadTermName[] keys The current key path.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTermsNested(quad, mapper, dataFactory, keys = []) {\n return (dataFactory || DF).quad(quad.subject.termType === 'Quad' ?\n mapTermsNested(quad.subject, mapper, dataFactory, [...keys, 'subject']) :\n mapper(quad.subject, [...keys, 'subject']), quad.predicate.termType === 'Quad' ?\n mapTermsNested(quad.predicate, mapper, dataFactory, [...keys, 'predicate']) :\n mapper(quad.predicate, [...keys, 'predicate']), quad.object.termType === 'Quad' ?\n mapTermsNested(quad.object, mapper, dataFactory, [...keys, 'object']) :\n mapper(quad.object, [...keys, 'object']), quad.graph.termType === 'Quad' ?\n mapTermsNested(quad.graph, mapper, dataFactory, [...keys, 'graph']) :\n mapper(quad.graph, [...keys, 'graph']));\n}\nexports.mapTermsNested = mapTermsNested;\n/**\n * Reduce all terms of a quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @return {U} The final value.\n */\nfunction reduceTerms(quad, reducer, initialValue) {\n let value = initialValue;\n value = reducer(value, quad.subject, 'subject');\n value = reducer(value, quad.predicate, 'predicate');\n value = reducer(value, quad.object, 'object');\n return reducer(value, quad.graph, 'graph');\n}\nexports.reduceTerms = reduceTerms;\n/**\n * Reduce all terms of a quad, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @param QuadTermName[] keys The current key path.\n * @return {U} The final value.\n */\nfunction reduceTermsNested(quad, reducer, initialValue, keys = []) {\n let value = initialValue;\n if (quad.subject.termType === 'Quad') {\n value = reduceTermsNested(quad.subject, reducer, value, [...keys, 'subject']);\n }\n else {\n value = reducer(value, quad.subject, [...keys, 'subject']);\n }\n if (quad.predicate.termType === 'Quad') {\n value = reduceTermsNested(quad.predicate, reducer, value, [...keys, 'predicate']);\n }\n else {\n value = reducer(value, quad.predicate, [...keys, 'predicate']);\n }\n if (quad.object.termType === 'Quad') {\n value = reduceTermsNested(quad.object, reducer, value, [...keys, 'object']);\n }\n else {\n value = reducer(value, quad.object, [...keys, 'object']);\n }\n if (quad.graph.termType === 'Quad') {\n value = reduceTermsNested(quad.graph, reducer, value, [...keys, 'graph']);\n }\n else {\n value = reducer(value, quad.graph, [...keys, 'graph']);\n }\n return value;\n}\nexports.reduceTermsNested = reduceTermsNested;\n/**\n * Determines whether all terms satisfy the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTerms(quad, checker) {\n return checker(quad.subject, 'subject')\n && checker(quad.predicate, 'predicate')\n && checker(quad.object, 'object')\n && checker(quad.graph, 'graph');\n}\nexports.everyTerms = everyTerms;\n/**\n * Determines whether all terms satisfy the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTermsNested(quad, checker, keys = []) {\n return (quad.subject.termType === 'Quad' ?\n everyTermsNested(quad.subject, checker, [...keys, 'subject']) :\n checker(quad.subject, [...keys, 'subject']))\n && (quad.predicate.termType === 'Quad' ?\n everyTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n checker(quad.predicate, [...keys, 'predicate']))\n && (quad.object.termType === 'Quad' ?\n everyTermsNested(quad.object, checker, [...keys, 'object']) :\n checker(quad.object, [...keys, 'object']))\n && (quad.graph.termType === 'Quad' ?\n everyTermsNested(quad.graph, checker, [...keys, 'graph']) :\n checker(quad.graph, [...keys, 'graph']));\n}\nexports.everyTermsNested = everyTermsNested;\n/**\n * Determines whether at least one term satisfies the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTerms(quad, checker) {\n return checker(quad.subject, 'subject')\n || checker(quad.predicate, 'predicate')\n || checker(quad.object, 'object')\n || checker(quad.graph, 'graph');\n}\nexports.someTerms = someTerms;\n/**\n * Determines whether at least one term satisfies the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTermsNested(quad, checker, keys = []) {\n return (quad.subject.termType === 'Quad' ?\n someTermsNested(quad.subject, checker, [...keys, 'subject']) :\n checker(quad.subject, [...keys, 'subject']))\n || (quad.predicate.termType === 'Quad' ?\n someTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n checker(quad.predicate, [...keys, 'predicate']))\n || (quad.object.termType === 'Quad' ?\n someTermsNested(quad.object, checker, [...keys, 'object']) :\n checker(quad.object, [...keys, 'object']))\n || (quad.graph.termType === 'Quad' ?\n someTermsNested(quad.graph, checker, [...keys, 'graph']) :\n checker(quad.graph, [...keys, 'graph']));\n}\nexports.someTermsNested = someTermsNested;\n/**\n * Get the nested value inside a quoted triple by the given path of quad keys.\n * @param term A term, that can be a quoted triple.\n * @param keys A path of quad term names.\n */\nfunction getValueNestedPath(term, keys) {\n if (keys.length === 0) {\n return term;\n }\n if (term.termType === 'Quad') {\n return getValueNestedPath(term[keys[0]], keys.slice(1));\n }\n throw new Error(`Tried to get ${keys[0]} from term of type ${term.termType}`);\n}\nexports.getValueNestedPath = getValueNestedPath;\n/**\n * Check if the given terms match.\n *\n * At least one of the following must be true:\n * * Term B is undefined.\n * * Term B is a variable.\n * * Term A and B are quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`termB.equals(termA)` return true)\n *\n * @param termA A term.\n * @param termB An optional term.\n */\nfunction matchTerm(termA, termB) {\n return !termB\n || termB.termType === 'Variable'\n || (termB.termType === 'Quad' && termA.termType === 'Quad' && matchPatternComplete(termA, termB))\n || termB.equals(termA);\n}\nexports.matchTerm = matchTerm;\n/**\n * Check if the given quad matches with the given quad terms.\n *\n * Each term must match at least one of the following:\n * * Term is undefined.\n * * Term is a variable.\n * * Quad term and term are both quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`quadTerm.equals(term)` return true)\n *\n * @param {BaseQuad} quad A quad to match with (can not contain variables).\n * @param {Term} subject An optional subject.\n * @param {Term} predicate An optional predicate.\n * @param {Term} object An optional object.\n * @param {Term} graph An optional graph.\n * @return {boolean} If the quad matches with the quad terms.\n */\nfunction matchPattern(quad, subject, predicate, object, graph) {\n return matchTerm(quad.subject, subject)\n && matchTerm(quad.predicate, predicate)\n && matchTerm(quad.object, object)\n && matchTerm(quad.graph, graph);\n}\nexports.matchPattern = matchPattern;\n/**\n * Check if the first quad matches with all terms from the second quad.\n *\n * Each term must match at least one of the following:\n * * Quad2 term is a variable.\n * * Quad1 term and Quad2 term are equal (`term1.equals(term2)` return true)\n *\n * @param {BaseQuad} quad A quad (can not contain variables).\n * @param {BaseQuad} pattern A quad pattern (can contain variables).\n * @return {boolean} If the quad terms match.\n */\nfunction matchPatternComplete(quad, pattern) {\n return matchPattern(quad, pattern.subject, pattern.predicate, pattern.object, pattern.graph);\n}\nexports.matchPatternComplete = matchPatternComplete;\nfunction matchPatternMappings(quad, pattern, opt = {}) {\n const map = {};\n function match(_pattern, _quad) {\n return everyTerms(_pattern, (t1, key) => {\n var _a, _b;\n const t2 = _quad[key];\n switch (t1.termType) {\n case 'Variable':\n return (opt.skipVarMapping && t2.termType === 'Variable')\n || ((_b = (_a = map[t1.value]) === null || _a === void 0 ? void 0 : _a.equals(t2)) !== null && _b !== void 0 ? _b : (map[t1.value] = t2, true));\n case 'Quad':\n return t2.termType === 'Quad' && match(t1, t2);\n default:\n return t1.equals(t2);\n }\n });\n }\n return match(pattern, quad) && (opt.returnMappings ? map : true);\n}\nexports.matchPatternMappings = matchPatternMappings;\n//# sourceMappingURL=QuadTermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getQuads = exports.getDefaultGraphs = exports.getVariables = exports.getLiterals = exports.getBlankNodes = exports.getNamedNodes = exports.getTermsOfType = exports.uniqTerms = exports.TERM_TYPES = void 0;\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * All known term types.\n * @see RDF.Term\n * @type {[string , string , string , string , string, string]}\n */\nexports.TERM_TYPES = ['NamedNode', 'BlankNode', 'Literal', 'Variable', 'DefaultGraph', 'Quad'];\n/*\n * Utility methods for handling RDFJS terms.\n */\n/**\n * Create an array of unique terms from the given array.\n * @param {T[]} terms An array of RDFJS terms.\n * @return {T[]} A new array of unique RDFJS terms.\n */\nfunction uniqTerms(terms) {\n const hash = {};\n return terms.filter(term => {\n const termString = (0, rdf_string_1.termToString)(term);\n return !(termString in hash) && (hash[termString] = true);\n });\n}\nexports.uniqTerms = uniqTerms;\n/**\n * Find all terms of the given type in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @param {\"NamedNode\" | \"BlankNode\" | \"Literal\" | \"Variable\" | \"DefaultGraph\" | \"Quad\"} termType A term type.\n * @return {Term[]} A new array with elements from the given array only containing elements of the given type.\n */\nfunction getTermsOfType(terms, termType) {\n return terms.filter((term) => term.termType === termType);\n}\nexports.getTermsOfType = getTermsOfType;\n/**\n * Find all named nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {NamedNode[]} A new array with elements from the given array only containing named nodes.\n */\nfunction getNamedNodes(terms) {\n return getTermsOfType(terms, 'NamedNode');\n}\nexports.getNamedNodes = getNamedNodes;\n/**\n * Find all blank nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BlankNode[]} A new array with elements from the given array only containing blank nodes.\n */\nfunction getBlankNodes(terms) {\n return getTermsOfType(terms, 'BlankNode');\n}\nexports.getBlankNodes = getBlankNodes;\n/**\n * Find all literals in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Literal[]} A new array with elements from the given array only containing literals.\n */\nfunction getLiterals(terms) {\n return getTermsOfType(terms, 'Literal');\n}\nexports.getLiterals = getLiterals;\n/**\n * Find all variables in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Variable[]} A new array with elements from the given array only containing variables.\n */\nfunction getVariables(terms) {\n return getTermsOfType(terms, 'Variable');\n}\nexports.getVariables = getVariables;\n/**\n * Find all default graphs in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {DefaultGraph[]} A new array with elements from the given array only containing default graphs.\n */\nfunction getDefaultGraphs(terms) {\n return getTermsOfType(terms, 'DefaultGraph');\n}\nexports.getDefaultGraphs = getDefaultGraphs;\n/**\n * Find all quads in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BaseQuad[]} A new array with elements from the given array only containing quads.\n */\nfunction getQuads(terms) {\n return getTermsOfType(terms, 'Quad');\n}\nexports.getQuads = getQuads;\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/IActiveTag\"), exports);\n__exportStar(require(\"./lib/IHtmlParseListener\"), exports);\n__exportStar(require(\"./lib/IRdfaPattern\"), exports);\n__exportStar(require(\"./lib/RdfaParser\"), exports);\n__exportStar(require(\"./lib/RdfaProfile\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IActiveTag.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IHtmlParseListener.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IRdfaPattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfaParser = void 0;\nconst htmlparser2_1 = require(\"htmlparser2\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst INITIAL_CONTEXT_XHTML = require(\"./initial-context-xhtml.json\");\nconst INITIAL_CONTEXT = require(\"./initial-context.json\");\nconst RdfaProfile_1 = require(\"./RdfaProfile\");\nconst Util_1 = require(\"./Util\");\n/**\n * A stream transformer that parses RDFa (text) streams to an {@link RDF.Stream}.\n */\nclass RdfaParser extends readable_stream_1.Transform {\n constructor(options) {\n super({ readableObjectMode: true });\n this.activeTagStack = [];\n options = options || {};\n this.options = options;\n this.util = new Util_1.Util(options.dataFactory, options.baseIRI);\n this.defaultGraph = options.defaultGraph || this.util.dataFactory.defaultGraph();\n const profile = options.contentType ? Util_1.Util.contentTypeToProfile(options.contentType) : options.profile || '';\n this.features = options.features || RdfaProfile_1.RDFA_FEATURES[profile];\n this.htmlParseListener = options.htmlParseListener;\n this.rdfaPatterns = this.features.copyRdfaPatterns ? {} : null;\n this.pendingRdfaPatternCopies = this.features.copyRdfaPatterns ? {} : null;\n this.parser = this.initializeParser(profile === 'xml');\n this.activeTagStack.push({\n incompleteTriples: [],\n inlist: false,\n language: options.language,\n listMapping: {},\n listMappingLocal: {},\n name: '',\n prefixesAll: Object.assign(Object.assign({}, INITIAL_CONTEXT['@context']), this.features.xhtmlInitialContext ? INITIAL_CONTEXT_XHTML['@context'] : {}),\n prefixesCustom: {},\n skipElement: false,\n vocab: options.vocab,\n });\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new RdfaParser(this.options));\n return parsed;\n }\n _transform(chunk, encoding, callback) {\n this.parser.write(chunk.toString());\n callback();\n }\n _flush(callback) {\n this.parser.end();\n callback();\n }\n onTagOpen(name, attributes) {\n // Determine the parent tag (ignore skipped tags)\n let parentTagI = this.activeTagStack.length - 1;\n while (parentTagI > 0 && this.activeTagStack[parentTagI].skipElement) {\n parentTagI--;\n }\n let parentTag = this.activeTagStack[parentTagI];\n // If we skipped a tag, make sure we DO use the lang, prefixes and vocab of the skipped tag\n if (parentTagI !== this.activeTagStack.length - 1) {\n parentTag = Object.assign(Object.assign({}, parentTag), { language: this.activeTagStack[this.activeTagStack.length - 1].language, prefixesAll: this.activeTagStack[this.activeTagStack.length - 1].prefixesAll, prefixesCustom: this.activeTagStack[this.activeTagStack.length - 1].prefixesCustom, vocab: this.activeTagStack[this.activeTagStack.length - 1].vocab });\n }\n // Create a new active tag and inherit language scope and baseIRI from parent\n const activeTag = {\n collectChildTags: parentTag.collectChildTags,\n incompleteTriples: [],\n inlist: 'inlist' in attributes,\n listMapping: [],\n listMappingLocal: parentTag.listMapping,\n localBaseIRI: parentTag.localBaseIRI,\n name,\n prefixesAll: null,\n prefixesCustom: null,\n skipElement: false,\n };\n this.activeTagStack.push(activeTag);\n // Save the tag contents if needed\n if (activeTag.collectChildTags) {\n // Add explicitly defined xmlns, xmlns:* and prefixes to attributes, as required by the spec (Step 11, note)\n // Sort prefixes alphabetically for deterministic namespace declaration order\n for (const prefix of Object.keys(parentTag.prefixesCustom).sort()) {\n const suffix = parentTag.prefixesCustom[prefix];\n const attributeKey = prefix === '' ? 'xmlns' : 'xmlns:' + prefix;\n if (!(attributeKey in attributes)) {\n attributes[attributeKey] = suffix;\n }\n }\n const attributesSerialized = Object.keys(attributes).map((key) => `${key}=\"${attributes[key]}\"`).join(' ');\n activeTag.text = [`<${name}${attributesSerialized ? ' ' + attributesSerialized : ''}>`];\n if (this.features.skipHandlingXmlLiteralChildren) {\n return;\n }\n }\n let allowTermsInRelPredicates = true;\n let allowTermsInRevPredicates = true;\n if (this.features.onlyAllowUriRelRevIfProperty) {\n // Ignore illegal rel/rev values when property is present\n if ('property' in attributes && 'rel' in attributes) {\n allowTermsInRelPredicates = false;\n if (attributes.rel.indexOf(':') < 0) {\n delete attributes.rel;\n }\n }\n if ('property' in attributes && 'rev' in attributes) {\n allowTermsInRevPredicates = false;\n if (attributes.rev.indexOf(':') < 0) {\n delete attributes.rev;\n }\n }\n }\n if (this.features.copyRdfaPatterns) {\n // Save the tag if needed\n if (parentTag.collectedPatternTag) {\n const patternTag = {\n attributes,\n children: [],\n name,\n referenced: false,\n rootPattern: false,\n text: [],\n };\n parentTag.collectedPatternTag.children.push(patternTag);\n activeTag.collectedPatternTag = patternTag;\n return;\n }\n // Store tags with type rdfa:Pattern as patterns\n if (attributes.typeof === 'rdfa:Pattern') {\n activeTag.collectedPatternTag = {\n attributes,\n children: [],\n name,\n parentTag,\n referenced: false,\n rootPattern: true,\n text: [],\n };\n return;\n }\n // Instantiate patterns on rdfa:copy\n if (attributes.property === 'rdfa:copy') {\n const copyTargetPatternId = attributes.resource || attributes.href || attributes.src;\n if (this.rdfaPatterns[copyTargetPatternId]) {\n this.emitPatternCopy(parentTag, this.rdfaPatterns[copyTargetPatternId], copyTargetPatternId);\n }\n else {\n if (!this.pendingRdfaPatternCopies[copyTargetPatternId]) {\n this.pendingRdfaPatternCopies[copyTargetPatternId] = [];\n }\n this.pendingRdfaPatternCopies[copyTargetPatternId].push(parentTag);\n }\n return;\n }\n }\n // tags override the baseIRI of the whole document\n if (this.features.baseTag && name === 'base' && attributes.href) {\n this.util.baseIRI = this.util.getBaseIRI(attributes.href);\n }\n // xml:base attributes override the baseIRI of the current tag and children\n if (this.features.xmlBase && attributes['xml:base']) {\n activeTag.localBaseIRI = this.util.getBaseIRI(attributes['xml:base']);\n }\n //