@frictionless-ts/metadata 1.0.1 → 1.0.3
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/build/json/ajv.js +2 -2
- package/build/path/normalize.d.ts +0 -3
- package/build/path/normalize.js +1 -27
- package/package.json +1 -1
package/build/json/ajv.js
CHANGED
|
@@ -5,6 +5,6 @@ export const ajv = new Ajv({
|
|
|
5
5
|
allErrors: true,
|
|
6
6
|
validateSchema: false,
|
|
7
7
|
validateFormats: false,
|
|
8
|
-
loadSchema: loadJsonSchema,
|
|
8
|
+
loadSchema: uri => loadJsonSchema(uri, { onlyRemote: true }),
|
|
9
9
|
});
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWp2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vanNvbi9hanYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUN6QixNQUFNLEVBQUUsS0FBSztJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsY0FBYyxFQUFFLEtBQUs7SUFDckIsZUFBZSxFQUFFLEtBQUs7SUFDdEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztDQUM3RCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBanYgfSBmcm9tIFwiYWp2XCJcbmltcG9ydCB7IGxvYWRKc29uU2NoZW1hIH0gZnJvbSBcIi4vbG9hZC50c1wiXG5cbmV4cG9ydCBjb25zdCBhanYgPSBuZXcgQWp2KHtcbiAgc3RyaWN0OiBmYWxzZSxcbiAgYWxsRXJyb3JzOiB0cnVlLFxuICB2YWxpZGF0ZVNjaGVtYTogZmFsc2UsXG4gIHZhbGlkYXRlRm9ybWF0czogZmFsc2UsXG4gIGxvYWRTY2hlbWE6IHVyaSA9PiBsb2FkSnNvblNjaGVtYSh1cmksIHsgb25seVJlbW90ZTogdHJ1ZSB9KSxcbn0pXG4iXX0=
|
package/build/path/normalize.js
CHANGED
|
@@ -25,30 +25,4 @@ export function normalizePath(path, options) {
|
|
|
25
25
|
}
|
|
26
26
|
return node.path.relative(process.cwd(), node.path.resolve(normalizedPath));
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
const isPathRemote = isRemotePath(path);
|
|
30
|
-
const isBasepathRemote = isRemotePath(options.basepath ?? "");
|
|
31
|
-
if (isPathRemote) {
|
|
32
|
-
return new URL(path).toString();
|
|
33
|
-
}
|
|
34
|
-
if (isBasepathRemote) {
|
|
35
|
-
const basepath = new URL(options.basepath ?? "").toString();
|
|
36
|
-
if (!path.startsWith(basepath)) {
|
|
37
|
-
throw new Error(`Path ${path} is not a subpath of ${options.basepath}`);
|
|
38
|
-
}
|
|
39
|
-
const relative = path.replace(`${basepath}/`, "");
|
|
40
|
-
return relative;
|
|
41
|
-
}
|
|
42
|
-
if (!node) {
|
|
43
|
-
throw new Error("File system is not supported in this environment");
|
|
44
|
-
}
|
|
45
|
-
const normalizedPath = node.path.resolve(path);
|
|
46
|
-
const normalizedBasepath = node.path.resolve(options.basepath ?? "");
|
|
47
|
-
if (!normalizedPath.startsWith(normalizedBasepath)) {
|
|
48
|
-
throw new Error(`Path ${path} is not a subpath of ${options.basepath}`);
|
|
49
|
-
}
|
|
50
|
-
// The Data Package standard requires "/" as the path separator
|
|
51
|
-
const relative = node.path.relative(normalizedBasepath, normalizedPath);
|
|
52
|
-
return relative.split(node.path.sep).join("/");
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGF0aC9ub3JtYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFeEMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZLEVBQUUsT0FBOEI7SUFDeEUsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUE7SUFFN0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQzVCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ25DLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFWixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksd0JBQXdCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FBQTtJQUN2QixDQUFDO0lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsUUFBUTtRQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVSLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUNyQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDdEIsY0FBYyxDQUNmLENBQUE7SUFFRCxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSx3QkFBd0IsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBWSxFQUFFLE9BQThCO0lBQzFFLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QyxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRTdELElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSx3QkFBd0IsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDekUsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxRQUFRLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNqRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM5QyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUE7SUFFcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLHdCQUF3QixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBQ3ZFLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9kZSB9IGZyb20gXCIuLi9wbGF0Zm9ybS9pbmRleC50c1wiXG5pbXBvcnQgeyBpc1JlbW90ZVBhdGggfSBmcm9tIFwiLi9wYXRoLnRzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgocGF0aDogc3RyaW5nLCBvcHRpb25zOiB7IGJhc2VwYXRoPzogc3RyaW5nIH0pIHtcbiAgY29uc3QgaXNQYXRoUmVtb3RlID0gaXNSZW1vdGVQYXRoKHBhdGgpXG4gIGNvbnN0IGlzQmFzZXBhdGhSZW1vdGUgPSBpc1JlbW90ZVBhdGgob3B0aW9ucy5iYXNlcGF0aCA/PyBcIlwiKVxuXG4gIGlmIChpc1BhdGhSZW1vdGUpIHtcbiAgICByZXR1cm4gbmV3IFVSTChwYXRoKS50b1N0cmluZygpXG4gIH1cblxuICBpZiAoaXNCYXNlcGF0aFJlbW90ZSkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gbmV3IFVSTChcbiAgICAgIFtvcHRpb25zLmJhc2VwYXRoLCBwYXRoXS5qb2luKFwiL1wiKSxcbiAgICApLnRvU3RyaW5nKClcblxuICAgIGlmICghbm9ybWFsaXplZFBhdGguc3RhcnRzV2l0aChvcHRpb25zLmJhc2VwYXRoID8/IFwiXCIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggJHtwYXRofSBpcyBub3QgYSBzdWJwYXRoIG9mICR7b3B0aW9ucy5iYXNlcGF0aH1gKVxuICAgIH1cblxuICAgIHJldHVybiBub3JtYWxpemVkUGF0aFxuICB9XG5cbiAgaWYgKCFub2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRmlsZSBzeXN0ZW0gaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50XCIpXG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG9wdGlvbnMuYmFzZXBhdGhcbiAgICA/IG5vZGUucGF0aC5qb2luKG9wdGlvbnMuYmFzZXBhdGgsIHBhdGgpXG4gICAgOiBwYXRoXG5cbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gbm9kZS5wYXRoLnJlbGF0aXZlKFxuICAgIG9wdGlvbnMuYmFzZXBhdGggPz8gXCJcIixcbiAgICBub3JtYWxpemVkUGF0aCxcbiAgKVxuXG4gIGlmIChyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChcIi4uXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBQYXRoICR7cGF0aH0gaXMgbm90IGEgc3VicGF0aCBvZiAke29wdGlvbnMuYmFzZXBhdGh9YClcbiAgfVxuXG4gIHJldHVybiBub2RlLnBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgbm9kZS5wYXRoLnJlc29sdmUobm9ybWFsaXplZFBhdGgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZywgb3B0aW9uczogeyBiYXNlcGF0aD86IHN0cmluZyB9KSB7XG4gIGNvbnN0IGlzUGF0aFJlbW90ZSA9IGlzUmVtb3RlUGF0aChwYXRoKVxuICBjb25zdCBpc0Jhc2VwYXRoUmVtb3RlID0gaXNSZW1vdGVQYXRoKG9wdGlvbnMuYmFzZXBhdGggPz8gXCJcIilcblxuICBpZiAoaXNQYXRoUmVtb3RlKSB7XG4gICAgcmV0dXJuIG5ldyBVUkwocGF0aCkudG9TdHJpbmcoKVxuICB9XG5cbiAgaWYgKGlzQmFzZXBhdGhSZW1vdGUpIHtcbiAgICBjb25zdCBiYXNlcGF0aCA9IG5ldyBVUkwob3B0aW9ucy5iYXNlcGF0aCA/PyBcIlwiKS50b1N0cmluZygpXG5cbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aChiYXNlcGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUGF0aCAke3BhdGh9IGlzIG5vdCBhIHN1YnBhdGggb2YgJHtvcHRpb25zLmJhc2VwYXRofWApXG4gICAgfVxuXG4gICAgY29uc3QgcmVsYXRpdmUgPSBwYXRoLnJlcGxhY2UoYCR7YmFzZXBhdGh9L2AsIFwiXCIpXG4gICAgcmV0dXJuIHJlbGF0aXZlXG4gIH1cblxuICBpZiAoIW5vZGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJGaWxlIHN5c3RlbSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgZW52aXJvbm1lbnRcIilcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gbm9kZS5wYXRoLnJlc29sdmUocGF0aClcbiAgY29uc3Qgbm9ybWFsaXplZEJhc2VwYXRoID0gbm9kZS5wYXRoLnJlc29sdmUob3B0aW9ucy5iYXNlcGF0aCA/PyBcIlwiKVxuXG4gIGlmICghbm9ybWFsaXplZFBhdGguc3RhcnRzV2l0aChub3JtYWxpemVkQmFzZXBhdGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBQYXRoICR7cGF0aH0gaXMgbm90IGEgc3VicGF0aCBvZiAke29wdGlvbnMuYmFzZXBhdGh9YClcbiAgfVxuXG4gIC8vIFRoZSBEYXRhIFBhY2thZ2Ugc3RhbmRhcmQgcmVxdWlyZXMgXCIvXCIgYXMgdGhlIHBhdGggc2VwYXJhdG9yXG4gIGNvbnN0IHJlbGF0aXZlID0gbm9kZS5wYXRoLnJlbGF0aXZlKG5vcm1hbGl6ZWRCYXNlcGF0aCwgbm9ybWFsaXplZFBhdGgpXG4gIHJldHVybiByZWxhdGl2ZS5zcGxpdChub2RlLnBhdGguc2VwKS5qb2luKFwiL1wiKVxufVxuIl19
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGF0aC9ub3JtYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFeEMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZLEVBQUUsT0FBOEI7SUFDeEUsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUE7SUFFN0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQzVCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ25DLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFWixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksd0JBQXdCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FBQTtJQUN2QixDQUFDO0lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsUUFBUTtRQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVSLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUNyQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDdEIsY0FBYyxDQUNmLENBQUE7SUFFRCxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSx3QkFBd0IsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFDN0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vZGUgfSBmcm9tIFwiLi4vcGxhdGZvcm0vaW5kZXgudHNcIlxuaW1wb3J0IHsgaXNSZW1vdGVQYXRoIH0gZnJvbSBcIi4vcGF0aC50c1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZywgb3B0aW9uczogeyBiYXNlcGF0aD86IHN0cmluZyB9KSB7XG4gIGNvbnN0IGlzUGF0aFJlbW90ZSA9IGlzUmVtb3RlUGF0aChwYXRoKVxuICBjb25zdCBpc0Jhc2VwYXRoUmVtb3RlID0gaXNSZW1vdGVQYXRoKG9wdGlvbnMuYmFzZXBhdGggPz8gXCJcIilcblxuICBpZiAoaXNQYXRoUmVtb3RlKSB7XG4gICAgcmV0dXJuIG5ldyBVUkwocGF0aCkudG9TdHJpbmcoKVxuICB9XG5cbiAgaWYgKGlzQmFzZXBhdGhSZW1vdGUpIHtcbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5ldyBVUkwoXG4gICAgICBbb3B0aW9ucy5iYXNlcGF0aCwgcGF0aF0uam9pbihcIi9cIiksXG4gICAgKS50b1N0cmluZygpXG5cbiAgICBpZiAoIW5vcm1hbGl6ZWRQYXRoLnN0YXJ0c1dpdGgob3B0aW9ucy5iYXNlcGF0aCA/PyBcIlwiKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRoICR7cGF0aH0gaXMgbm90IGEgc3VicGF0aCBvZiAke29wdGlvbnMuYmFzZXBhdGh9YClcbiAgICB9XG5cbiAgICByZXR1cm4gbm9ybWFsaXplZFBhdGhcbiAgfVxuXG4gIGlmICghbm9kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkZpbGUgc3lzdGVtIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudFwiKVxuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBvcHRpb25zLmJhc2VwYXRoXG4gICAgPyBub2RlLnBhdGguam9pbihvcHRpb25zLmJhc2VwYXRoLCBwYXRoKVxuICAgIDogcGF0aFxuXG4gIGNvbnN0IHJlbGF0aXZlUGF0aCA9IG5vZGUucGF0aC5yZWxhdGl2ZShcbiAgICBvcHRpb25zLmJhc2VwYXRoID8/IFwiXCIsXG4gICAgbm9ybWFsaXplZFBhdGgsXG4gIClcblxuICBpZiAocmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoXCIuLlwiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGF0aCAke3BhdGh9IGlzIG5vdCBhIHN1YnBhdGggb2YgJHtvcHRpb25zLmJhc2VwYXRofWApXG4gIH1cblxuICByZXR1cm4gbm9kZS5wYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIG5vZGUucGF0aC5yZXNvbHZlKG5vcm1hbGl6ZWRQYXRoKSlcbn1cbiJdfQ==
|