@hydrofoil/talos 0.3.6 → 0.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @hydrofoil/talos
2
2
 
3
+ ## 0.3.10
4
+
5
+ ### Patch Changes
6
+
7
+ - b51f8bf: Improvements in resolving relative paths in resources
8
+
9
+ ## 0.3.9
10
+
11
+ ### Patch Changes
12
+
13
+ - f83a915: `index.ttl` in root resource directory would add a trailing slash to resource URI
14
+
15
+ ## 0.3.8
16
+
17
+ ### Patch Changes
18
+
19
+ - 3066a74: Only first occurrence of an absolute path URI would hve been correctly rebased
20
+
21
+ ## 0.3.7
22
+
23
+ ### Patch Changes
24
+
25
+ - 4287aa7: Absolute paths were not correctly resolved when base URL had a path
26
+
3
27
  ## 0.3.6
4
28
 
5
29
  ### Patch Changes
package/lib/bootstrap.js CHANGED
@@ -1,38 +1,17 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
22
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
4
  };
24
5
  Object.defineProperty(exports, "__esModule", { value: true });
25
6
  exports.bootstrap = void 0;
26
7
  const path_1 = __importDefault(require("path"));
27
- const fs = __importStar(require("fs"));
28
8
  const walk_1 = __importDefault(require("@fcostarodrigo/walk"));
29
- const mime = __importStar(require("mime-types"));
30
9
  const sparql_http_client_1 = __importDefault(require("sparql-http-client"));
31
10
  const rdf_ext_1 = __importDefault(require("rdf-ext"));
32
- const formats_common_1 = require("@rdfjs/formats-common");
33
11
  const clownface_1 = __importDefault(require("clownface"));
34
12
  const store_1 = require("@hydrofoil/knossos/lib/store");
35
13
  const strict_1 = require("@tpluscode/rdf-ns-builders/strict");
14
+ const fileStream_1 = require("./fileStream");
36
15
  const log_1 = require("./log");
37
16
  async function bootstrap({ api, apiUri, cwd, ...options }) {
38
17
  const store = new store_1.ResourcePerGraphStore(new sparql_http_client_1.default(options));
@@ -41,22 +20,18 @@ async function bootstrap({ api, apiUri, cwd, ...options }) {
41
20
  const resourcePath = path_1.default.relative(cwd, file)
42
21
  .replace(/\.[^.]+$/, '')
43
22
  .replace(/\/?index$/, '');
44
- const url = encodeURI(`${api}/${resourcePath}`);
45
- const mediaType = mime.lookup(file);
46
- if (!mediaType) {
47
- (0, log_1.log)('Could not determine media type for file %s', relative);
48
- continue;
49
- }
50
- const parserStream = formats_common_1.parsers.import(mediaType, fs.createReadStream(file), {
51
- baseIRI: url,
52
- });
23
+ const url = resourcePath === ''
24
+ ? encodeURI(api)
25
+ : encodeURI(`${api}/${resourcePath}`);
26
+ const parserStream = (0, fileStream_1.getPatchedStream)(file, cwd, api, url);
53
27
  if (!parserStream) {
54
- (0, log_1.log)('Unsupported media type %s from %s', mediaType, relative);
55
28
  continue;
56
29
  }
57
- let dataset;
30
+ const dataset = rdf_ext_1.default.dataset();
58
31
  try {
59
- dataset = await rdf_ext_1.default.dataset().import(parserStream);
32
+ for await (const quad of parserStream) {
33
+ dataset.add(quad);
34
+ }
60
35
  }
61
36
  catch (e) {
62
37
  (0, log_1.log)('Failed to parse %s: %s', relative, e.message);
@@ -75,4 +50,4 @@ async function bootstrap({ api, apiUri, cwd, ...options }) {
75
50
  }
76
51
  }
77
52
  exports.bootstrap = bootstrap;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBdUI7QUFDdkIsdUNBQXdCO0FBRXhCLCtEQUFzQztBQUN0QyxpREFBa0M7QUFDbEMsNEVBQXNFO0FBQ3RFLHNEQUEwQjtBQUMxQiwwREFBK0M7QUFDL0MsMERBQWlDO0FBQ2pDLHdEQUFvRTtBQUNwRSw4REFBeUQ7QUFDekQsK0JBQTJCO0FBUXBCLEtBQUssVUFBVSxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBVztJQUN2RSxNQUFNLEtBQUssR0FBRyxJQUFJLDZCQUFxQixDQUFDLElBQUksNEJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBRWxFLElBQUksS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUEsY0FBSSxFQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQzthQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQzthQUN2QixPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRTNCLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBRS9DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLElBQUEsU0FBRyxFQUFDLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQzNELFNBQVE7U0FDVDtRQUVELE1BQU0sWUFBWSxHQUFHLHdCQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEUsT0FBTyxFQUFFLEdBQUc7U0FDYixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLElBQUEsU0FBRyxFQUFDLG1DQUFtQyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUM3RCxTQUFRO1NBQ1Q7UUFFRCxJQUFJLE9BQW9CLENBQUE7UUFDeEIsSUFBSTtZQUNGLE9BQU8sR0FBRyxNQUFNLGlCQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1NBQ3BEO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixJQUFBLFNBQUcsRUFBQyx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFNBQVE7U0FDVDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVMsRUFBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxHQUFHLENBQUM7YUFDZCxNQUFNLENBQUMsY0FBSyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRXpDLElBQUksTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQyxJQUFBLFNBQUcsRUFBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUMsQ0FBQTtTQUNqQzthQUFNO1lBQ0wsSUFBQSxTQUFHLEVBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDLENBQUE7U0FDaEM7UUFFRCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDMUI7QUFDSCxDQUFDO0FBN0NELDhCQTZDQyJ9
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF1QjtBQUV2QiwrREFBc0M7QUFDdEMsNEVBQXNFO0FBQ3RFLHNEQUEwQjtBQUMxQiwwREFBaUM7QUFDakMsd0RBQW9FO0FBQ3BFLDhEQUF5RDtBQUN6RCw2Q0FBK0M7QUFDL0MsK0JBQTJCO0FBUXBCLEtBQUssVUFBVSxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBVztJQUN2RSxNQUFNLEtBQUssR0FBRyxJQUFJLDZCQUFxQixDQUFDLElBQUksNEJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBRWxFLElBQUksS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUEsY0FBSSxFQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQzthQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQzthQUN2QixPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRTNCLE1BQU0sR0FBRyxHQUFHLFlBQVksS0FBSyxFQUFFO1lBQzdCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQTtRQUV2QyxNQUFNLFlBQVksR0FBRyxJQUFBLDZCQUFnQixFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQzFELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsU0FBUTtTQUNUO1FBRUQsTUFBTSxPQUFPLEdBQWdCLGlCQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDM0MsSUFBSTtZQUNGLElBQUksS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLFlBQVksRUFBRTtnQkFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUNsQjtTQUNGO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixJQUFBLFNBQUcsRUFBQyx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFNBQVE7U0FDVDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVMsRUFBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxHQUFHLENBQUM7YUFDZCxNQUFNLENBQUMsY0FBSyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRXpDLElBQUksTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQyxJQUFBLFNBQUcsRUFBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUMsQ0FBQTtTQUNqQzthQUFNO1lBQ0wsSUFBQSxTQUFHLEVBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDLENBQUE7U0FDaEM7UUFFRCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDMUI7QUFDSCxDQUFDO0FBeENELDhCQXdDQyJ9
@@ -29,7 +29,7 @@ const rdf_ext_1 = __importDefault(require("rdf-ext"));
29
29
  const bootstrap_1 = require("../bootstrap");
30
30
  const deleteApi_1 = require("../deleteApi");
31
31
  const log_1 = require("../log");
32
- async function put(directories, { token, api, endpoint, user, password, apiPath }) {
32
+ async function put(directories, { token, api, endpoint, user, password, apiPath = '/api' }) {
33
33
  const apiUri = rdf_ext_1.default.namedNode(`${api}${apiPath}`);
34
34
  for (const dir of directories) {
35
35
  const cwd = path_1.default.resolve(process.cwd(), dir);
@@ -54,4 +54,4 @@ async function put(directories, { token, api, endpoint, user, password, apiPath
54
54
  await (0, deleteApi_1.deleteApi)({ apiUri, token });
55
55
  }
56
56
  exports.put = put;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBdUI7QUFDdkIsdUNBQXdCO0FBQ3hCLHNEQUEwQjtBQUMxQiw0Q0FBd0M7QUFDeEMsNENBQXdDO0FBQ3hDLGdDQUE0QjtBQVFyQixLQUFLLFVBQVUsR0FBRyxDQUFDLFdBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBTztJQUNyRyxNQUFNLE1BQU0sR0FBRyxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ2pELEtBQUssTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFO1FBQzdCLE1BQU0sR0FBRyxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBRTVDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUEsU0FBRyxFQUFDLHVDQUF1QyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ2pELFNBQVE7U0FDVDtRQUNELElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ25DLElBQUEsU0FBRyxFQUFDLDJDQUEyQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ3JELFNBQVE7U0FDVDtRQUVELE1BQU0sSUFBQSxxQkFBUyxFQUFDO1lBQ2QsR0FBRztZQUNILE1BQU07WUFDTixHQUFHO1lBQ0gsV0FBVyxFQUFFLFFBQVE7WUFDckIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsSUFBSTtZQUNKLFFBQVE7U0FDVCxDQUFDLENBQUE7S0FDSDtJQUVELE1BQU0sSUFBQSxxQkFBUyxFQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDcEMsQ0FBQztBQTFCRCxrQkEwQkMifQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBdUI7QUFDdkIsdUNBQXdCO0FBQ3hCLHNEQUEwQjtBQUMxQiw0Q0FBd0M7QUFDeEMsNENBQXdDO0FBQ3hDLGdDQUE0QjtBQVFyQixLQUFLLFVBQVUsR0FBRyxDQUFDLFdBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sR0FBRyxNQUFNLEVBQU87SUFDOUcsTUFBTSxNQUFNLEdBQUcsaUJBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNqRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRTtRQUM3QixNQUFNLEdBQUcsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUU1QyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixJQUFBLFNBQUcsRUFBQyx1Q0FBdUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUNqRCxTQUFRO1NBQ1Q7UUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNuQyxJQUFBLFNBQUcsRUFBQywyQ0FBMkMsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUNyRCxTQUFRO1NBQ1Q7UUFFRCxNQUFNLElBQUEscUJBQVMsRUFBQztZQUNkLEdBQUc7WUFDSCxNQUFNO1lBQ04sR0FBRztZQUNILFdBQVcsRUFBRSxRQUFRO1lBQ3JCLFNBQVMsRUFBRSxRQUFRO1lBQ25CLElBQUk7WUFDSixRQUFRO1NBQ1QsQ0FBQyxDQUFBO0tBQ0g7SUFFRCxNQUFNLElBQUEscUJBQVMsRUFBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0FBQ3BDLENBQUM7QUExQkQsa0JBMEJDIn0=
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from 'stream';
3
+ export declare function getPatchedStream(file: string, cwd: string, api: string, resourceUrl: string): Readable | null;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.getPatchedStream = void 0;
26
+ const fs_1 = __importDefault(require("fs"));
27
+ const path_1 = __importDefault(require("path"));
28
+ const mime = __importStar(require("mime-types"));
29
+ const replacestream_1 = __importDefault(require("replacestream"));
30
+ const formats_common_1 = require("@rdfjs/formats-common");
31
+ const is_absolute_url_1 = __importDefault(require("is-absolute-url"));
32
+ const log_1 = require("./log");
33
+ function replacer(basePath, resourceUrl, s, e = s) {
34
+ return (_, match) => {
35
+ let absolute;
36
+ if ((0, is_absolute_url_1.default)(match)) {
37
+ return `${s}${match}${e}`;
38
+ }
39
+ if (match.startsWith('/') && basePath !== '/') {
40
+ absolute = basePath + match;
41
+ }
42
+ else {
43
+ absolute = new URL(match, resourceUrl).toString();
44
+ if (!match.endsWith('/')) {
45
+ absolute = absolute.replace(/\/?$/, '');
46
+ }
47
+ }
48
+ const absoluteUrl = new URL(absolute, resourceUrl);
49
+ if (absoluteUrl.pathname === '/' && basePath !== '/') {
50
+ absoluteUrl.pathname = basePath;
51
+ absolute = absoluteUrl.toString();
52
+ }
53
+ return `${s}${absolute}${e}`;
54
+ };
55
+ }
56
+ const angleBracketTransform = (basePath, resourceUrl) => (0, replacestream_1.default)(/<([^>]+)>/g, replacer(basePath, resourceUrl, '<', '>'));
57
+ const jsonTransform = (basePath, resourceUrl) => (0, replacestream_1.default)(/"([./][^"]+)"/g, replacer(basePath, resourceUrl, '"'));
58
+ const filePatchTransforms = new Map([
59
+ ['text/turtle', angleBracketTransform],
60
+ ['application/n-triples', angleBracketTransform],
61
+ ['application/n-quads', angleBracketTransform],
62
+ ['application/trig', angleBracketTransform],
63
+ ['application/ld+json', jsonTransform],
64
+ ]);
65
+ function getPatchedStream(file, cwd, api, resourceUrl) {
66
+ const relative = path_1.default.relative(cwd, file);
67
+ const basePath = new URL(api).pathname;
68
+ const mediaType = mime.lookup(file);
69
+ if (!mediaType) {
70
+ (0, log_1.log)('Could not determine media type for file %s', relative);
71
+ return null;
72
+ }
73
+ let fileStream = fs_1.default.createReadStream(file);
74
+ if (filePatchTransforms.has(mediaType)) {
75
+ fileStream = fileStream.pipe(filePatchTransforms.get(mediaType)(basePath, resourceUrl));
76
+ }
77
+ const parserStream = formats_common_1.parsers.import(mediaType, fileStream, {
78
+ baseIRI: resourceUrl,
79
+ });
80
+ if (!parserStream) {
81
+ (0, log_1.log)('Unsupported media type %s from %s', mediaType, relative);
82
+ }
83
+ return parserStream;
84
+ }
85
+ exports.getPatchedStream = getPatchedStream;
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVN0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZpbGVTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUFtQjtBQUVuQixnREFBdUI7QUFDdkIsaURBQWtDO0FBQ2xDLGtFQUF5QztBQUN6QywwREFBK0M7QUFDL0Msc0VBQTJDO0FBQzNDLCtCQUEyQjtBQUUzQixTQUFTLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFdBQW1CLEVBQUUsQ0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQ3ZFLE9BQU8sQ0FBQyxDQUFVLEVBQUUsS0FBYSxFQUFFLEVBQUU7UUFDbkMsSUFBSSxRQUFnQixDQUFBO1FBQ3BCLElBQUksSUFBQSx5QkFBYSxFQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFBO1NBQzFCO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsS0FBSyxHQUFHLEVBQUU7WUFDN0MsUUFBUSxHQUFHLFFBQVEsR0FBRyxLQUFLLENBQUE7U0FDNUI7YUFBTTtZQUNMLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hCLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTthQUN4QztTQUNGO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ2xELElBQUksV0FBVyxDQUFDLFFBQVEsS0FBSyxHQUFHLElBQUksUUFBUSxLQUFLLEdBQUcsRUFBRTtZQUNwRCxXQUFXLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtZQUMvQixRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFBO1NBQ2xDO1FBRUQsT0FBTyxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUE7SUFDOUIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFdBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUEsdUJBQWEsRUFBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDL0ksTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFdBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUEsdUJBQWEsRUFBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO0FBRXRJLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDbEMsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUM7SUFDdEMsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQztJQUNoRCxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO0lBQzlDLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUM7SUFDM0MsQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUM7Q0FDdkMsQ0FBQyxDQUFBO0FBRUYsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEdBQVcsRUFBRSxHQUFXLEVBQUUsV0FBbUI7SUFDMUYsTUFBTSxRQUFRLEdBQUcsY0FBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFBO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLElBQUEsU0FBRyxFQUFDLDRDQUE0QyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQzNELE9BQU8sSUFBSSxDQUFBO0tBQ1o7SUFFRCxJQUFJLFVBQVUsR0FBRyxZQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDMUMsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdEMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFBO0tBQ3pGO0lBQ0QsTUFBTSxZQUFZLEdBQW9CLHdCQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUU7UUFDMUUsT0FBTyxFQUFFLFdBQVc7S0FDckIsQ0FBUSxDQUFBO0lBRVQsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNqQixJQUFBLFNBQUcsRUFBQyxtQ0FBbUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7S0FDOUQ7SUFFRCxPQUFPLFlBQVksQ0FBQTtBQUNyQixDQUFDO0FBdEJELDRDQXNCQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydrofoil/talos",
3
- "version": "0.3.6",
3
+ "version": "0.3.10",
4
4
  "main": "index.js",
5
5
  "bin": {
6
6
  "talos": "bin/talos.js"
@@ -25,17 +25,21 @@
25
25
  "clownface": "^1.2.0",
26
26
  "commander": "^6.1.0",
27
27
  "debug": "^4.3.1",
28
+ "is-absolute-url": "^3",
28
29
  "mime-types": "^2.1.33",
29
30
  "node-fetch": "^2.6.1",
30
31
  "rdf-ext": "^1.3.1",
32
+ "replacestream": "^4.0.3",
31
33
  "sparql-http-client": "^2.2.3"
32
34
  },
33
35
  "devDependencies": {
34
36
  "@rdfjs/namespace": "^1.1.0",
35
37
  "@types/mime-types": "^2.1.0",
38
+ "@types/replacestream": "^4.0.1",
36
39
  "@wikibus/vocabularies": "^0.2.1",
37
40
  "chai": "^4.3.4",
38
41
  "mocha": "^9.1.1",
42
+ "rdf-ext": "^1.3.1",
39
43
  "sinon": "^11"
40
44
  }
41
45
  }