@mnaoumov/typescript-dev-toolkit 3.6.0 → 3.6.2
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/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +45 -15
- package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +14 -0
- package/dist/lib/cjs/docs-site/og-images.cjs +18 -7
- package/dist/lib/cjs/docs-site/og-images.d.cts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +14 -0
- package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +44 -15
- package/dist/lib/esm/docs-site/og-images.d.mts +1 -1
- package/dist/lib/esm/docs-site/og-images.mjs +18 -7
- package/package.json +1 -1
|
@@ -66,31 +66,39 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
66
66
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
67
67
|
var svelte_wrapper_plugin_exports = {};
|
|
68
68
|
__export(svelte_wrapper_plugin_exports, {
|
|
69
|
+
isMissingSveltePackageError: () => isMissingSveltePackageError,
|
|
69
70
|
svelteWrapperPlugin: () => svelteWrapperPlugin
|
|
70
71
|
});
|
|
71
72
|
module.exports = __toCommonJS(svelte_wrapper_plugin_exports);
|
|
72
73
|
var import_object_utils = require('@mnaoumov/typescript-lib/object-utils');
|
|
73
|
-
var import_esbuild_svelte = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('esbuild-svelte')), 1);
|
|
74
|
-
var import_svelte_preprocess = require('svelte-preprocess');
|
|
75
74
|
var import_npm = require('../../npm.cjs');
|
|
76
|
-
const
|
|
75
|
+
const MISSING_SVELTE_MESSAGE_REG_EXP = /Cannot find (?:module|package) 'svelte(?:\/[^']*)?'/;
|
|
76
|
+
const MODULE_NOT_FOUND_CODES = /* @__PURE__ */ new Set(["ERR_MODULE_NOT_FOUND", "MODULE_NOT_FOUND"]);
|
|
77
|
+
const SVELTE_FILTER = /\.svelte$/;
|
|
78
|
+
function isMissingSveltePackageError(error) {
|
|
79
|
+
if (!(error instanceof Error)) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
const code = error.code;
|
|
83
|
+
return typeof code === "string" && MODULE_NOT_FOUND_CODES.has(code) && MISSING_SVELTE_MESSAGE_REG_EXP.test(error.message);
|
|
84
|
+
}
|
|
77
85
|
function svelteWrapperPlugin(isProductionBuild) {
|
|
78
|
-
const esbuildSveltePlugin = esbuildSvelte({
|
|
79
|
-
compilerOptions: {
|
|
80
|
-
css: "injected",
|
|
81
|
-
dev: !isProductionBuild
|
|
82
|
-
},
|
|
83
|
-
moduleCompilerOptions: {
|
|
84
|
-
dev: !isProductionBuild
|
|
85
|
-
},
|
|
86
|
-
preprocess: (0, import_svelte_preprocess.sveltePreprocess)()
|
|
87
|
-
});
|
|
88
86
|
return {
|
|
89
87
|
name: "svelte-wrapper",
|
|
90
88
|
async setup(build) {
|
|
89
|
+
let sveltePlugin;
|
|
90
|
+
try {
|
|
91
|
+
sveltePlugin = await createEsbuildSveltePlugin(isProductionBuild);
|
|
92
|
+
} catch (error) {
|
|
93
|
+
if (!isMissingSveltePackageError(error)) {
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
registerMissingSvelteLoader(build);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
91
99
|
const packageJson = await (0, import_npm.readPackageJson)();
|
|
92
100
|
const format = packageJson.type === "module" ? "esm" : "cjs";
|
|
93
|
-
await
|
|
101
|
+
await sveltePlugin.setup({
|
|
94
102
|
...build,
|
|
95
103
|
initialOptions: {
|
|
96
104
|
...build.initialOptions,
|
|
@@ -100,8 +108,30 @@ function svelteWrapperPlugin(isProductionBuild) {
|
|
|
100
108
|
}
|
|
101
109
|
};
|
|
102
110
|
}
|
|
111
|
+
async function createEsbuildSveltePlugin(isProductionBuild) {
|
|
112
|
+
const [esbuildSvelteModule, { sveltePreprocess }] = await Promise.all([import("esbuild-svelte"), import("svelte-preprocess")]);
|
|
113
|
+
const esbuildSvelte = (0, import_object_utils.extractDefaultExportInterop)(esbuildSvelteModule.default);
|
|
114
|
+
return esbuildSvelte({
|
|
115
|
+
compilerOptions: {
|
|
116
|
+
css: "injected",
|
|
117
|
+
dev: !isProductionBuild
|
|
118
|
+
},
|
|
119
|
+
moduleCompilerOptions: {
|
|
120
|
+
dev: !isProductionBuild
|
|
121
|
+
},
|
|
122
|
+
preprocess: sveltePreprocess()
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
function registerMissingSvelteLoader(build) {
|
|
126
|
+
build.onLoad({ filter: SVELTE_FILTER }, (arguments_) => ({
|
|
127
|
+
errors: [{
|
|
128
|
+
text: `Cannot compile ${arguments_.path}: the \`svelte\` package is not installed. Install \`svelte\` in the project to build Svelte components.`
|
|
129
|
+
}]
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
103
132
|
// Annotate the CommonJS export names for ESM import in node:
|
|
104
133
|
0 && (module.exports = {
|
|
134
|
+
isMissingSveltePackageError,
|
|
105
135
|
svelteWrapperPlugin
|
|
106
136
|
});
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9idW5kbGVycy9lc2J1aWxkLWltcGwvc3ZlbHRlLXdyYXBwZXItcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTdmVsdGUgd3JhcHBlciBlc2J1aWxkIHBsdWdpbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbixcbiAgUGx1Z2luQnVpbGRcbn0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuXG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi8uLi9ucG0udHMnO1xuXG5jb25zdCBNSVNTSU5HX1NWRUxURV9NRVNTQUdFX1JFR19FWFAgPSAvQ2Fubm90IGZpbmQgKD86bW9kdWxlfHBhY2thZ2UpICdzdmVsdGUoPzpcXC9bXiddKik/Jy87XG5jb25zdCBNT0RVTEVfTk9UX0ZPVU5EX0NPREVTID0gbmV3IFNldChbJ0VSUl9NT0RVTEVfTk9UX0ZPVU5EJywgJ01PRFVMRV9OT1RfRk9VTkQnXSk7XG5jb25zdCBTVkVMVEVfRklMVEVSID0gL1xcLnN2ZWx0ZSQvO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGVycm9yIGlzIHRoZSBvbmUgbG9hZGluZyBgZXNidWlsZC1zdmVsdGVgIHRocm93cyB3aGVuIHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQuXG4gKlxuICogYGVzYnVpbGQtc3ZlbHRlYCBpbXBvcnRzIGBzdmVsdGUvY29tcGlsZXJgIHdoZW4gaXQgbG9hZHMsIGFuZCBwYWNrYWdlIG1hbmFnZXJzIHRoYXQgZG8gbm90IGluc3RhbGwgcGVlcnMgKFlhcm4gMSlcbiAqIGxlYXZlIGBzdmVsdGVgIG91dCBvZiBhIHByb2plY3QgdGhhdCBoYXMgbm8gU3ZlbHRlIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIGVycm9yIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZXJyb3Igc2F5cyB0aGF0IHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGNhbm5vdCBiZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWlzc2luZ1N2ZWx0ZVBhY2thZ2VFcnJvcihlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNvZGUgPSAoZXJyb3IgYXMgUGFydGlhbDxSZWNvcmQ8J2NvZGUnLCB1bmtub3duPj4pLmNvZGU7XG4gIHJldHVybiB0eXBlb2YgY29kZSA9PT0gJ3N0cmluZycgJiYgTU9EVUxFX05PVF9GT1VORF9DT0RFUy5oYXMoY29kZSkgJiYgTUlTU0lOR19TVkVMVEVfTUVTU0FHRV9SRUdfRVhQLnRlc3QoZXJyb3IubWVzc2FnZSk7XG59XG5cbi8qKlxuICogV3JhcHMgdGhlIGVzYnVpbGQtc3ZlbHRlIHBsdWdpbiB0byBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCBmb3JtYXQgaXMgdXNlZC5cbiAqXG4gKiBgZXNidWlsZC1zdmVsdGVgIGFuZCBgc3ZlbHRlLXByZXByb2Nlc3NgIGFyZSBsb2FkZWQgd2hlbiB0aGUgcGx1Z2luIGlzIHNldCB1cCwgbm90IHdoZW4gdGhpcyBtb2R1bGUgaXMgaW1wb3J0ZWQuIFdoZW5cbiAqIHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGEgYnVpbGQgd2l0aCBubyBgLnN2ZWx0ZWAgZmlsZSBzdWNjZWVkcywgYW5kIGEgYnVpbGQgdGhhdCByZWFjaGVzIG9uZSBmYWlsc1xuICogd2l0aCBhbiBlcnJvciB0aGF0IG5hbWVzIHRoZSBtaXNzaW5nIHBhY2thZ2UuXG4gKlxuICogQHBhcmFtIGlzUHJvZHVjdGlvbkJ1aWxkIC0gV2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLlxuICogQHJldHVybnMgVGhlIGVzYnVpbGQgcGx1Z2luLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ZlbHRlV3JhcHBlclBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZDogYm9vbGVhbik6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3N2ZWx0ZS13cmFwcGVyJyxcbiAgICBhc3luYyBzZXR1cChidWlsZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgbGV0IHN2ZWx0ZVBsdWdpbjogUGx1Z2luO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3ZlbHRlUGx1Z2luID0gYXdhaXQgY3JlYXRlRXNidWlsZFN2ZWx0ZVBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIWlzTWlzc2luZ1N2ZWx0ZVBhY2thZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3Rlck1pc3NpbmdTdmVsdGVMb2FkZXIoYnVpbGQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gICAgICBjb25zdCBmb3JtYXQgPSBwYWNrYWdlSnNvbi50eXBlID09PSAnbW9kdWxlJyA/ICdlc20nIDogJ2Nqcyc7XG4gICAgICBhd2FpdCBzdmVsdGVQbHVnaW4uc2V0dXAoe1xuICAgICAgICAuLi5idWlsZCxcbiAgICAgICAgaW5pdGlhbE9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5idWlsZC5pbml0aWFsT3B0aW9ucyxcbiAgICAgICAgICBmb3JtYXRcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gbG9hZHMgZXNidWlsZC1zdmVsdGUgd2l0aCBzdmVsdGUtcHJlcHJvY2VzczsgZXNidWlsZC1zdmVsdGUgY29tcGlsZXMgb25seSBpbnNpZGUgYSBsaXZlIGVzYnVpbGQgYnVpbGQuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVFc2J1aWxkU3ZlbHRlUGx1Z2luKGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuKTogUHJvbWlzZTxQbHVnaW4+IHtcbiAgY29uc3QgW2VzYnVpbGRTdmVsdGVNb2R1bGUsIHsgc3ZlbHRlUHJlcHJvY2VzcyB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtpbXBvcnQoJ2VzYnVpbGQtc3ZlbHRlJyksIGltcG9ydCgnc3ZlbHRlLXByZXByb2Nlc3MnKV0pO1xuICBjb25zdCBlc2J1aWxkU3ZlbHRlID0gZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wKGVzYnVpbGRTdmVsdGVNb2R1bGUuZGVmYXVsdCk7XG4gIHJldHVybiBlc2J1aWxkU3ZlbHRlKHtcbiAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgIGNzczogJ2luamVjdGVkJyxcbiAgICAgIGRldjogIWlzUHJvZHVjdGlvbkJ1aWxkXG4gICAgfSxcbiAgICBtb2R1bGVDb21waWxlck9wdGlvbnM6IHtcbiAgICAgIGRldjogIWlzUHJvZHVjdGlvbkJ1aWxkXG4gICAgfSxcbiAgICBwcmVwcm9jZXNzOiBzdmVsdGVQcmVwcm9jZXNzKClcbiAgfSk7XG59XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG5mdW5jdGlvbiByZWdpc3Rlck1pc3NpbmdTdmVsdGVMb2FkZXIoYnVpbGQ6IFBsdWdpbkJ1aWxkKTogdm9pZCB7XG4gIGJ1aWxkLm9uTG9hZCh7IGZpbHRlcjogU1ZFTFRFX0ZJTFRFUiB9LCAoYXJndW1lbnRzXykgPT4gKHtcbiAgICBlcnJvcnM6IFt7XG4gICAgICB0ZXh0OiBgQ2Fubm90IGNvbXBpbGUgJHthcmd1bWVudHNfLnBhdGh9OiB0aGUgXFxgc3ZlbHRlXFxgIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZC4gSW5zdGFsbCBcXGBzdmVsdGVcXGAgaW4gdGhlIHByb2plY3QgdG8gYnVpbGQgU3ZlbHRlIGNvbXBvbmVudHMuYFxuICAgIH1dXG4gIH0pKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0EsMEJBQTRDO0FBRTVDLGlCQUFnQztBQUVoQyxNQUFNLGlDQUFpQztBQUN2QyxNQUFNLHlCQUF5QixvQkFBSSxJQUFJLENBQUMsd0JBQXdCLGtCQUFrQixDQUFDO0FBQ25GLE1BQU0sZ0JBQWdCO0FBV2YsU0FBUyw0QkFBNEIsT0FBeUI7QUFDbkUsTUFBSSxFQUFFLGlCQUFpQixRQUFRO0FBQzdCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxPQUFRLE1BQTJDO0FBQ3pELFNBQU8sT0FBTyxTQUFTLFlBQVksdUJBQXVCLElBQUksSUFBSSxLQUFLLCtCQUErQixLQUFLLE1BQU0sT0FBTztBQUMxSDtBQVlPLFNBQVMsb0JBQW9CLG1CQUFvQztBQUN0RSxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE1BQU0sT0FBc0I7QUFDaEMsVUFBSTtBQUNKLFVBQUk7QUFDRix1QkFBZSxNQUFNLDBCQUEwQixpQkFBaUI7QUFBQSxNQUNsRSxTQUFTLE9BQU87QUFDZCxZQUFJLENBQUMsNEJBQTRCLEtBQUssR0FBRztBQUN2QyxnQkFBTTtBQUFBLFFBQ1I7QUFDQSxvQ0FBNEIsS0FBSztBQUNqQztBQUFBLE1BQ0Y7QUFFQSxZQUFNLGNBQWMsVUFBTSw0QkFBZ0I7QUFDMUMsWUFBTSxTQUFTLFlBQVksU0FBUyxXQUFXLFFBQVE7QUFDdkQsWUFBTSxhQUFhLE1BQU07QUFBQSxRQUN2QixHQUFHO0FBQUEsUUFDSCxnQkFBZ0I7QUFBQSxVQUNkLEdBQUcsTUFBTTtBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQUdBLGVBQWUsMEJBQTBCLG1CQUE2QztBQUNwRixRQUFNLENBQUMscUJBQXFCLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxNQUFNLFFBQVEsSUFBSSxDQUFDLE9BQU8sZ0JBQWdCLEdBQUcsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzdILFFBQU0sb0JBQWdCLGlEQUE0QixvQkFBb0IsT0FBTztBQUM3RSxTQUFPLGNBQWM7QUFBQSxJQUNuQixpQkFBaUI7QUFBQSxNQUNmLEtBQUs7QUFBQSxNQUNMLEtBQUssQ0FBQztBQUFBLElBQ1I7QUFBQSxJQUNBLHVCQUF1QjtBQUFBLE1BQ3JCLEtBQUssQ0FBQztBQUFBLElBQ1I7QUFBQSxJQUNBLFlBQVksaUJBQWlCO0FBQUEsRUFDL0IsQ0FBQztBQUNIO0FBR0EsU0FBUyw0QkFBNEIsT0FBMEI7QUFDN0QsUUFBTSxPQUFPLEVBQUUsUUFBUSxjQUFjLEdBQUcsQ0FBQyxnQkFBZ0I7QUFBQSxJQUN2RCxRQUFRLENBQUM7QUFBQSxNQUNQLE1BQU0sa0JBQWtCLFdBQVcsSUFBSTtBQUFBLElBQ3pDLENBQUM7QUFBQSxFQUNILEVBQUU7QUFDSjsiLCJuYW1lcyI6W119
|
|
@@ -5,9 +5,23 @@
|
|
|
5
5
|
* Svelte wrapper esbuild plugin.
|
|
6
6
|
*/
|
|
7
7
|
import type { Plugin } from 'esbuild' with { 'resolution-mode': 'import' };
|
|
8
|
+
/**
|
|
9
|
+
* Checks whether an error is the one loading `esbuild-svelte` throws when the `svelte` package is not installed.
|
|
10
|
+
*
|
|
11
|
+
* `esbuild-svelte` imports `svelte/compiler` when it loads, and package managers that do not install peers (Yarn 1)
|
|
12
|
+
* leave `svelte` out of a project that has no Svelte components.
|
|
13
|
+
*
|
|
14
|
+
* @param error - The error to check.
|
|
15
|
+
* @returns Whether the error says that the `svelte` package cannot be found.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isMissingSveltePackageError(error: unknown): boolean;
|
|
8
18
|
/**
|
|
9
19
|
* Wraps the esbuild-svelte plugin to ensure that the correct format is used.
|
|
10
20
|
*
|
|
21
|
+
* `esbuild-svelte` and `svelte-preprocess` are loaded when the plugin is set up, not when this module is imported. When
|
|
22
|
+
* the `svelte` package is not installed, a build with no `.svelte` file succeeds, and a build that reaches one fails
|
|
23
|
+
* with an error that names the missing package.
|
|
24
|
+
*
|
|
11
25
|
* @param isProductionBuild - Whether the build is a production build.
|
|
12
26
|
* @returns The esbuild plugin.
|
|
13
27
|
*/
|
|
@@ -59,6 +59,7 @@ __export(og_images_exports, {
|
|
|
59
59
|
generateOgImages: () => generateOgImages
|
|
60
60
|
});
|
|
61
61
|
module.exports = __toCommonJS(og_images_exports);
|
|
62
|
+
var import_node_crypto = require('node:crypto');
|
|
62
63
|
var import_node_fs = require('node:fs');
|
|
63
64
|
var import_promises = require('node:fs/promises');
|
|
64
65
|
var import_posix = require('node:path/posix');
|
|
@@ -84,8 +85,10 @@ async function generateOgImages(options) {
|
|
|
84
85
|
const pages = [];
|
|
85
86
|
await walkDirectory(contentDocsDirectory, contentDocsDirectory, pages);
|
|
86
87
|
console.warn(`OG images: found ${String(pages.length)} pages`);
|
|
88
|
+
const logoHash = await computeLogoHash(faviconPath);
|
|
87
89
|
const manifest = await loadCacheManifest(manifestPath);
|
|
88
|
-
const
|
|
90
|
+
const cards = manifest?.logoHash === logoHash ? { ...manifest.cards } : {};
|
|
91
|
+
const changedPages = pages.filter((page) => cards[page.slug] !== page.hash);
|
|
89
92
|
console.warn(`OG images: ${String(changedPages.length)} changed / ${String(pages.length)} total`);
|
|
90
93
|
if (changedPages.length === 0) {
|
|
91
94
|
console.warn("All OG images up to date.");
|
|
@@ -95,13 +98,17 @@ async function generateOgImages(options) {
|
|
|
95
98
|
if (!logoDataUri) {
|
|
96
99
|
console.warn(`OG images: favicon not found (${faviconPath}); rendering cards without a logo.`);
|
|
97
100
|
}
|
|
98
|
-
await generateImagesWithPool({ brandText, changedPages, fonts, logoDataUri,
|
|
101
|
+
await generateImagesWithPool({ brandText, cards, changedPages, fonts, logoDataUri, outputDirectory });
|
|
102
|
+
const newManifest = { cards, logoHash };
|
|
99
103
|
await (0, import_promises.mkdir)((0, import_posix.dirname)(manifestPath), { recursive: true });
|
|
100
|
-
await (0, import_promises.writeFile)(manifestPath, JSON.stringify(
|
|
104
|
+
await (0, import_promises.writeFile)(manifestPath, JSON.stringify(newManifest, null, MANIFEST_INDENT));
|
|
101
105
|
console.warn(`OG images: done. Generated ${String(changedPages.length)} images.`);
|
|
102
106
|
}
|
|
107
|
+
async function computeLogoHash(faviconPath) {
|
|
108
|
+
return (0, import_node_fs.existsSync)(faviconPath) ? (0, import_node_crypto.createHash)("sha256").update(await (0, import_promises.readFile)(faviconPath)).digest("hex") : "";
|
|
109
|
+
}
|
|
103
110
|
async function generateImagesWithPool(options) {
|
|
104
|
-
const { brandText, changedPages, fonts, logoDataUri,
|
|
111
|
+
const { brandText, cards, changedPages, fonts, logoDataUri, outputDirectory } = options;
|
|
105
112
|
let completed = 0;
|
|
106
113
|
let index = 0;
|
|
107
114
|
async function processNext() {
|
|
@@ -109,7 +116,7 @@ async function generateImagesWithPool(options) {
|
|
|
109
116
|
const outputPath = `${outputDirectory}/${page.slug}.png`;
|
|
110
117
|
await (0, import_promises.mkdir)((0, import_posix.dirname)(outputPath), { recursive: true });
|
|
111
118
|
await (0, import_promises.writeFile)(outputPath, await (0, import_og_image.renderOgImage)(page.params, { brandText, fonts, logoDataUri }));
|
|
112
|
-
|
|
119
|
+
cards[page.slug] = page.hash;
|
|
113
120
|
completed++;
|
|
114
121
|
if (completed % PROGRESS_LOG_INTERVAL === 0) {
|
|
115
122
|
console.warn(` ${String(completed)}/${String(changedPages.length)} images generated...`);
|
|
@@ -121,7 +128,11 @@ async function generateImagesWithPool(options) {
|
|
|
121
128
|
}));
|
|
122
129
|
}
|
|
123
130
|
async function loadCacheManifest(manifestPath) {
|
|
124
|
-
|
|
131
|
+
if (!(0, import_node_fs.existsSync)(manifestPath)) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
const manifest = JSON.parse(await (0, import_promises.readFile)(manifestPath, "utf-8"));
|
|
135
|
+
return typeof manifest.logoHash === "string" && typeof manifest.cards === "object" ? { cards: manifest.cards, logoHash: manifest.logoHash } : null;
|
|
125
136
|
}
|
|
126
137
|
function parseFrontMatter(content) {
|
|
127
138
|
const frontMatter = FRONT_MATTER_REG_EXP.exec(content)?.groups?.["FrontMatter"];
|
|
@@ -167,4 +178,4 @@ async function walkDirectory(directory, contentDocsDirectory, pages) {
|
|
|
167
178
|
0 && (module.exports = {
|
|
168
179
|
generateOgImages
|
|
169
180
|
});
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvb2ctaW1hZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBHZW5lcmF0ZXMgYW4gT3BlbiBHcmFwaCBjYXJkIGZvciBldmVyeSBkb2N1bWVudGF0aW9uIHBhZ2UsIHJldXNpbmcgdGhlIGNhcmRzIHdob3NlIGlucHV0cyBkaWQgbm90IGNoYW5nZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZvbnQgfSBmcm9tICdzYXRvcmknO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBta2RpcixcbiAgcmVhZGRpcixcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdub2RlOnBhdGgvcG9zaXgnO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VZYW1sIH0gZnJvbSAneWFtbCc7XG5cbmltcG9ydCB0eXBlIHsgT2dDYXJkQ29udGVudCB9IGZyb20gJy4vb2ctaW1hZ2UudHMnO1xuXG5pbXBvcnQgeyBnZXRPZ0ltYWdlUGFnZVNsdWcgfSBmcm9tICcuL29nLWltYWdlLXBhZ2UudHMnO1xuaW1wb3J0IHtcbiAgY29tcHV0ZU9nSGFzaCxcbiAgbG9hZEZvbnRzLFxuICBsb2FkTG9nb0RhdGFVcmksXG4gIHJlbmRlck9nSW1hZ2Vcbn0gZnJvbSAnLi9vZy1pbWFnZS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdlbmVyYXRlT2dJbWFnZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlT2dJbWFnZXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHRleHQgZXZlcnkgY2FyZCdzIGZvb3RlciBjYXJyaWVzLCBub3JtYWxseSB0aGUgcGFja2FnZSdzIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBicmFuZFRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRvY3VtZW50YXRpb24gY29udGVudCByb290LCBub3JtYWxseSBgPGRvY3M+L3NyYy9jb250ZW50L2RvY3NgLiBFdmVyeSBgLm1kYCAvIGAubWR4YCBwYWdlIHVuZGVyIGl0IHdpdGggYVxuICAgKiBgdGl0bGVgIGdldHMgYSBjYXJkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudERvY3NEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNWRyBsb2dvIGRyYXduIG9uIGV2ZXJ5IGNhcmQuIEEgbWlzc2luZyBmaWxlIHJlbmRlcnMgdGhlIGNhcmRzIHdpdGhvdXQgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZmF2aWNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvbGRlciBob2xkaW5nIHRoZSBmb250cyB0aGUgY2FyZHMgYXJlIHJlbmRlcmVkIHdpdGguXG4gICAqL1xuICByZWFkb25seSBmb250c0RpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHRoZSBjYXJkcyBhcmUgd3JpdHRlbiB0bywgbm9ybWFsbHkgYDxkb2NzPi9wdWJsaWMvb2dgLCBzZXJ2ZWQgYXQgYDxiYXNlPi9vZy88c2x1Zz4ucG5nYC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dERpcmVjdG9yeTogc3RyaW5nO1xufVxuXG50eXBlIENhY2hlTWFuaWZlc3QgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuXG5pbnRlcmZhY2UgR2VuZXJhdGVJbWFnZXNXaXRoUG9vbE9wdGlvbnMge1xuICByZWFkb25seSBicmFuZFRleHQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY2hhbmdlZFBhZ2VzOiBQYWdlRW50cnlbXTtcbiAgcmVhZG9ubHkgZm9udHM6IEZvbnRbXTtcbiAgcmVhZG9ubHkgbG9nb0RhdGFVcmk6IG51bGwgfCBzdHJpbmc7XG4gIHJlYWRvbmx5IG1hbmlmZXN0OiBDYWNoZU1hbmlmZXN0O1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBhZ2VFbnRyeSB7XG4gIGhhc2g6IHN0cmluZztcbiAgcGFyYW1zOiBPZ0NhcmRDb250ZW50O1xuICBzbHVnOiBzdHJpbmc7XG59XG5cbmNvbnN0IENPTkNVUlJFTkNZID0gMTA7XG5jb25zdCBQUk9HUkVTU19MT0dfSU5URVJWQUwgPSAxMDA7XG5jb25zdCBNQU5JRkVTVF9JTkRFTlQgPSAyO1xuXG4vLyBGcm9udG1hdHRlciBpcyBwYXJzZWQgaGVyZSByYXRoZXIgdGhhbiB3aXRoIGBncmF5LW1hdHRlcmAuIEl0cyBgbGliL2VuZ2luZXMuanNgIGJpbmRzIGpzLXlhbWwnc1xuLy8gYHNhZmVMb2FkYC9gc2FmZUR1bXBgIGF0IE1PRFVMRS1MT0FEIHRpbWUsIGFuZCBib3RoIHdlcmUgcmVtb3ZlZCBpbiBqcy15YW1sIHY0IOKAlCBzbyBtZXJlbHlcbi8vIElNUE9SVElORyBgZ3JheS1tYXR0ZXJgIHRocm93cyBgQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiB1bmRlZmluZWQgKHJlYWRpbmcgJ2JpbmQnKWAsIGJlZm9yZSBhblxuLy8gYGVuZ2luZXNgIG9wdGlvbiBjb3VsZCBvdmVycmlkZSB0aGUgZGVmYXVsdC4gT25seSB0aGUgZnJvbnRtYXR0ZXIgb2JqZWN0IGlzIG5lZWRlZCBoZXJlLlxuY29uc3QgRlJPTlRfTUFUVEVSX1JFR19FWFAgPSAvXi0tLVxccj9cXG4oPzxGcm9udE1hdHRlcj5bXFxzXFxTXSo/KVxccj9cXG4tLS0oPzpcXHI/XFxufCQpLztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIE9wZW4gR3JhcGggY2FyZHMuXG4gKlxuICogQSBjYXJkIGlzIHJlLXJlbmRlcmVkIG9ubHkgd2hlbiBpdHMgdGl0bGUsIGRlc2NyaXB0aW9uLCBzaWduYXR1cmUgb3IgYmFkZ2UgY2hhbmdlZCwgdHJhY2tlZCBieSBhIGhhc2ggbWFuaWZlc3RcbiAqIGJlc2lkZSB0aGUgY2FyZHMuIE1pc3NpbmcgY29udGVudCBvciBmb250cyBza2lwIHRoZSBzdGVwIHdpdGggYSB3YXJuaW5nIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhlIGJ1aWxkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZU9nSW1hZ2VzKG9wdGlvbnM6IEdlbmVyYXRlT2dJbWFnZXNQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBicmFuZFRleHQsIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBmYXZpY29uUGF0aCwgZm9udHNEaXJlY3RvcnksIG91dHB1dERpcmVjdG9yeSB9ID0gb3B0aW9ucztcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gYCR7b3V0cHV0RGlyZWN0b3J5fS8uY2FjaGUtbWFuaWZlc3QuanNvbmA7XG5cbiAgaWYgKCFleGlzdHNTeW5jKGNvbnRlbnREb2NzRGlyZWN0b3J5KSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBjb250ZW50IGRpciBub3QgZm91bmQgKCR7Y29udGVudERvY3NEaXJlY3Rvcnl9KTsgc2tpcHBpbmcuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gTG9hZCBmb250cyBmaXJzdCDigJQgc2F0b3JpIGNhbm5vdCByZW5kZXIgd2l0aG91dCB0aGVtLlxuICBjb25zdCBmb250cyA9IGF3YWl0IGxvYWRGb250cyhmb250c0RpcmVjdG9yeSk7XG4gIGlmICghZm9udHMpIHtcbiAgICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogbm8gZm9udHMgYXZhaWxhYmxlIGluICR7Zm9udHNEaXJlY3Rvcnl9OyBza2lwcGluZyBPRyBpbWFnZSBnZW5lcmF0aW9uLmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhZ2VzOiBQYWdlRW50cnlbXSA9IFtdO1xuICBhd2FpdCB3YWxrRGlyZWN0b3J5KGNvbnRlbnREb2NzRGlyZWN0b3J5LCBjb250ZW50RG9jc0RpcmVjdG9yeSwgcGFnZXMpO1xuICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogZm91bmQgJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gcGFnZXNgKTtcblxuICBjb25zdCBtYW5pZmVzdCA9IGF3YWl0IGxvYWRDYWNoZU1hbmlmZXN0KG1hbmlmZXN0UGF0aCk7XG4gIGNvbnN0IGNoYW5nZWRQYWdlcyA9IHBhZ2VzLmZpbHRlcigocGFnZSkgPT4gbWFuaWZlc3RbcGFnZS5zbHVnXSAhPT0gcGFnZS5oYXNoKTtcbiAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6ICR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBjaGFuZ2VkIC8gJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gdG90YWxgKTtcblxuICBpZiAoY2hhbmdlZFBhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnNvbGUud2FybignQWxsIE9HIGltYWdlcyB1cCB0byBkYXRlLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFJhc3Rlcml6ZSB0aGUgc2l0ZSBsb2dvIG9uY2UgKHNoYXJlZCBhY3Jvc3MgZXZlcnkgY2FyZCk7IGRlZ3JhZGUgZ3JhY2VmdWxseSBpZiBhYnNlbnQuXG4gIGNvbnN0IGxvZ29EYXRhVXJpID0gYXdhaXQgbG9hZExvZ29EYXRhVXJpKGZhdmljb25QYXRoKTtcbiAgaWYgKCFsb2dvRGF0YVVyaSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBmYXZpY29uIG5vdCBmb3VuZCAoJHtmYXZpY29uUGF0aH0pOyByZW5kZXJpbmcgY2FyZHMgd2l0aG91dCBhIGxvZ28uYCk7XG4gIH1cblxuICBhd2FpdCBnZW5lcmF0ZUltYWdlc1dpdGhQb29sKHsgYnJhbmRUZXh0LCBjaGFuZ2VkUGFnZXMsIGZvbnRzLCBsb2dvRGF0YVVyaSwgbWFuaWZlc3QsIG91dHB1dERpcmVjdG9yeSB9KTtcblxuICBhd2FpdCBta2RpcihkaXJuYW1lKG1hbmlmZXN0UGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBhd2FpdCB3cml0ZUZpbGUobWFuaWZlc3RQYXRoLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgTUFOSUZFU1RfSU5ERU5UKSk7XG4gIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBkb25lLiBHZW5lcmF0ZWQgJHtTdHJpbmcoY2hhbmdlZFBhZ2VzLmxlbmd0aCl9IGltYWdlcy5gKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVJbWFnZXNXaXRoUG9vbChvcHRpb25zOiBHZW5lcmF0ZUltYWdlc1dpdGhQb29sT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGJyYW5kVGV4dCwgY2hhbmdlZFBhZ2VzLCBmb250cywgbG9nb0RhdGFVcmksIG1hbmlmZXN0LCBvdXRwdXREaXJlY3RvcnkgfSA9IG9wdGlvbnM7XG4gIGxldCBjb21wbGV0ZWQgPSAwO1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAobGV0IHBhZ2UgPSBjaGFuZ2VkUGFnZXNbaW5kZXgrK107IHBhZ2UgIT09IHVuZGVmaW5lZDsgcGFnZSA9IGNoYW5nZWRQYWdlc1tpbmRleCsrXSkge1xuICAgICAgY29uc3Qgb3V0cHV0UGF0aCA9IGAke291dHB1dERpcmVjdG9yeX0vJHtwYWdlLnNsdWd9LnBuZ2A7XG4gICAgICBhd2FpdCBta2RpcihkaXJuYW1lKG91dHB1dFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGF3YWl0IHdyaXRlRmlsZShvdXRwdXRQYXRoLCBhd2FpdCByZW5kZXJPZ0ltYWdlKHBhZ2UucGFyYW1zLCB7IGJyYW5kVGV4dCwgZm9udHMsIGxvZ29EYXRhVXJpIH0pKTtcbiAgICAgIG1hbmlmZXN0W3BhZ2Uuc2x1Z10gPSBwYWdlLmhhc2g7XG4gICAgICBjb21wbGV0ZWQrKztcbiAgICAgIGlmIChjb21wbGV0ZWQgJSBQUk9HUkVTU19MT0dfSU5URVJWQUwgPT09IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKGAgICR7U3RyaW5nKGNvbXBsZXRlZCl9LyR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBpbWFnZXMgZ2VuZXJhdGVkLi4uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh7IGxlbmd0aDogQ09OQ1VSUkVOQ1kgfSwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHByb2Nlc3NOZXh0KCk7XG4gIH0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhY2hlTWFuaWZlc3QobWFuaWZlc3RQYXRoOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTWFuaWZlc3Q+IHtcbiAgcmV0dXJuIGV4aXN0c1N5bmMobWFuaWZlc3RQYXRoKSA/IChKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKG1hbmlmZXN0UGF0aCwgJ3V0Zi04JykpIGFzIENhY2hlTWFuaWZlc3QpIDoge307XG59XG5cbmZ1bmN0aW9uIHBhcnNlRnJvbnRNYXR0ZXIoY29udGVudDogc3RyaW5nKTogUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBjb25zdCBmcm9udE1hdHRlciA9IEZST05UX01BVFRFUl9SRUdfRVhQLmV4ZWMoY29udGVudCk/Lmdyb3Vwcz8uWydGcm9udE1hdHRlciddO1xuICByZXR1cm4gZnJvbnRNYXR0ZXIgPT09IHVuZGVmaW5lZCA/IHt9IDogKHBhcnNlWWFtbChmcm9udE1hdHRlcikgYXMgbnVsbCB8IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KSA/PyB7fTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyc2VQYWdlKGZpbGVQYXRoOiBzdHJpbmcsIGNvbnRlbnREb2NzRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPG51bGwgfCBQYWdlRW50cnk+IHtcbiAgY29uc3QgZGF0YSA9IHBhcnNlRnJvbnRNYXR0ZXIoYXdhaXQgcmVhZEZpbGUoZmlsZVBhdGgsICd1dGYtOCcpKTtcblxuICBjb25zdCB0aXRsZSA9IHRvT3B0aW9uYWxTdHJpbmcoZGF0YVsndGl0bGUnXSk7XG4gIGlmICghdGl0bGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGJhZGdlID0gZGF0YVsnc2lkZWJhciddIGFzIFBhcnRpYWw8UmVjb3JkPHN0cmluZywgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+PiB8IHVuZGVmaW5lZDtcbiAgY29uc3QgcGFyYW1zOiBPZ0NhcmRDb250ZW50ID0ge1xuICAgIGJhZGdlOiB0b09wdGlvbmFsU3RyaW5nKGJhZGdlPy5bJ2JhZGdlJ10/LlsndGV4dCddKSxcbiAgICBkZXNjcmlwdGlvbjogdG9PcHRpb25hbFN0cmluZyhkYXRhWydkZXNjcmlwdGlvbiddKSA/PyAnJyxcbiAgICBzaWduYXR1cmU6IHRvT3B0aW9uYWxTdHJpbmcoZGF0YVsnc2lnbmF0dXJlJ10pID8/ICcnLFxuICAgIHRpdGxlXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBjb21wdXRlT2dIYXNoKHBhcmFtcyksXG4gICAgcGFyYW1zLFxuICAgIHNsdWc6IGdldE9nSW1hZ2VQYWdlU2x1ZyhkYXRhLCBmaWxlUGF0aCwgY29udGVudERvY3NEaXJlY3RvcnkpXG4gIH07XG59XG5cbmZ1bmN0aW9uIHRvT3B0aW9uYWxTdHJpbmcodmFsdWU6IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWxrRGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nLCBjb250ZW50RG9jc0RpcmVjdG9yeTogc3RyaW5nLCBwYWdlczogUGFnZUVudHJ5W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZW50cmllcyA9IGF3YWl0IHJlYWRkaXIoZGlyZWN0b3J5LCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYCR7ZGlyZWN0b3J5fS8ke2VudHJ5Lm5hbWV9YDtcbiAgICBpZiAoZW50cnkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgYXdhaXQgd2Fsa0RpcmVjdG9yeShmdWxsUGF0aCwgY29udGVudERvY3NEaXJlY3RvcnksIHBhZ2VzKTtcbiAgICB9IGVsc2UgaWYgKGVudHJ5Lm5hbWUuZW5kc1dpdGgoJy5tZCcpIHx8IGVudHJ5Lm5hbWUuZW5kc1dpdGgoJy5tZHgnKSkge1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHBhcnNlUGFnZShmdWxsUGF0aCwgY29udGVudERvY3NEaXJlY3RvcnkpO1xuICAgICAgaWYgKHBhZ2UpIHtcbiAgICAgICAgcGFnZXMucHVzaChwYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEscUJBQTJCO0FBQzNCLHNCQUtPO0FBQ1AsbUJBQXdCO0FBQ3hCLGtCQUFtQztBQUluQywyQkFBbUM7QUFDbkMsc0JBS087QUFrRFAsTUFBTSxjQUFjO0FBQ3BCLE1BQU0sd0JBQXdCO0FBQzlCLE1BQU0sa0JBQWtCO0FBTXhCLE1BQU0sdUJBQXVCO0FBVTdCLGVBQXNCLGlCQUFpQixTQUFnRDtBQUNyRixRQUFNLEVBQUUsV0FBVyxzQkFBc0IsYUFBYSxnQkFBZ0IsZ0JBQWdCLElBQUk7QUFDMUYsUUFBTSxlQUFlLEdBQUcsZUFBZTtBQUV2QyxNQUFJLEtBQUMsMkJBQVcsb0JBQW9CLEdBQUc7QUFDckMsWUFBUSxLQUFLLHFDQUFxQyxvQkFBb0IsY0FBYztBQUNwRjtBQUFBLEVBQ0Y7QUFHQSxRQUFNLFFBQVEsVUFBTSwyQkFBVSxjQUFjO0FBQzVDLE1BQUksQ0FBQyxPQUFPO0FBQ1YsWUFBUSxLQUFLLG9DQUFvQyxjQUFjLGlDQUFpQztBQUNoRztBQUFBLEVBQ0Y7QUFFQSxRQUFNLFFBQXFCLENBQUM7QUFDNUIs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
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvb2ctaW1hZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBHZW5lcmF0ZXMgYW4gT3BlbiBHcmFwaCBjYXJkIGZvciBldmVyeSBkb2N1bWVudGF0aW9uIHBhZ2UsIHJldXNpbmcgdGhlIGNhcmRzIHdob3NlIGlucHV0cyBkaWQgbm90IGNoYW5nZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZvbnQgfSBmcm9tICdzYXRvcmknO1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgbWtkaXIsXG4gIHJlYWRkaXIsXG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAnbm9kZTpwYXRoL3Bvc2l4JztcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlWWFtbCB9IGZyb20gJ3lhbWwnO1xuXG5pbXBvcnQgdHlwZSB7IE9nQ2FyZENvbnRlbnQgfSBmcm9tICcuL29nLWltYWdlLnRzJztcblxuaW1wb3J0IHsgZ2V0T2dJbWFnZVBhZ2VTbHVnIH0gZnJvbSAnLi9vZy1pbWFnZS1wYWdlLnRzJztcbmltcG9ydCB7XG4gIGNvbXB1dGVPZ0hhc2gsXG4gIGxvYWRGb250cyxcbiAgbG9hZExvZ29EYXRhVXJpLFxuICByZW5kZXJPZ0ltYWdlXG59IGZyb20gJy4vb2ctaW1hZ2UudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBnZW5lcmF0ZU9nSW1hZ2VzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZU9nSW1hZ2VzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB0ZXh0IGV2ZXJ5IGNhcmQncyBmb290ZXIgY2Fycmllcywgbm9ybWFsbHkgdGhlIHBhY2thZ2UncyBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmRUZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudGF0aW9uIGNvbnRlbnQgcm9vdCwgbm9ybWFsbHkgYDxkb2NzPi9zcmMvY29udGVudC9kb2NzYC4gRXZlcnkgYC5tZGAgLyBgLm1keGAgcGFnZSB1bmRlciBpdCB3aXRoIGFcbiAgICogYHRpdGxlYCBnZXRzIGEgY2FyZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnREb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTVkcgbG9nbyBkcmF3biBvbiBldmVyeSBjYXJkLiBBIG1pc3NpbmcgZmlsZSByZW5kZXJzIHRoZSBjYXJkcyB3aXRob3V0IG9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGZhdmljb25QYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgaG9sZGluZyB0aGUgZm9udHMgdGhlIGNhcmRzIGFyZSByZW5kZXJlZCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9udHNEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvbGRlciB0aGUgY2FyZHMgYXJlIHdyaXR0ZW4gdG8sIG5vcm1hbGx5IGA8ZG9jcz4vcHVibGljL29nYCwgc2VydmVkIGF0IGA8YmFzZT4vb2cvPHNsdWc+LnBuZ2AuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENhY2hlTWFuaWZlc3Qge1xuICAvLyBFYWNoIHBhZ2UncyBjb250ZW50IGhhc2gsIGJ5IHNsdWcuXG4gIHJlYWRvbmx5IGNhcmRzOiBDYXJkSGFzaGVzO1xuICAvLyBUaGUgaGFzaCBvZiB0aGUgbG9nbyBldmVyeSBjYXJkIGNhcnJpZXMuIFRoZSBwYWdlIGhhc2hlcyBjYW5ub3Qgc2VlIGl0LCBzbyBhIGRpZmZlcmVudCBsb2dvIGRyb3BzIHRoZW0gYWxsLlxuICByZWFkb25seSBsb2dvSGFzaDogc3RyaW5nO1xufVxuXG50eXBlIENhcmRIYXNoZXMgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuXG5pbnRlcmZhY2UgR2VuZXJhdGVJbWFnZXNXaXRoUG9vbE9wdGlvbnMge1xuICByZWFkb25seSBicmFuZFRleHQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY2FyZHM6IENhcmRIYXNoZXM7XG4gIHJlYWRvbmx5IGNoYW5nZWRQYWdlczogUGFnZUVudHJ5W107XG4gIHJlYWRvbmx5IGZvbnRzOiBGb250W107XG4gIHJlYWRvbmx5IGxvZ29EYXRhVXJpOiBudWxsIHwgc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBhZ2VFbnRyeSB7XG4gIGhhc2g6IHN0cmluZztcbiAgcGFyYW1zOiBPZ0NhcmRDb250ZW50O1xuICBzbHVnOiBzdHJpbmc7XG59XG5cbmNvbnN0IENPTkNVUlJFTkNZID0gMTA7XG5jb25zdCBQUk9HUkVTU19MT0dfSU5URVJWQUwgPSAxMDA7XG5jb25zdCBNQU5JRkVTVF9JTkRFTlQgPSAyO1xuXG4vLyBGcm9udG1hdHRlciBpcyBwYXJzZWQgaGVyZSByYXRoZXIgdGhhbiB3aXRoIGBncmF5LW1hdHRlcmAuIEl0cyBgbGliL2VuZ2luZXMuanNgIGJpbmRzIGpzLXlhbWwnc1xuLy8gYHNhZmVMb2FkYC9gc2FmZUR1bXBgIGF0IE1PRFVMRS1MT0FEIHRpbWUsIGFuZCBib3RoIHdlcmUgcmVtb3ZlZCBpbiBqcy15YW1sIHY0IOKAlCBzbyBtZXJlbHlcbi8vIElNUE9SVElORyBgZ3JheS1tYXR0ZXJgIHRocm93cyBgQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiB1bmRlZmluZWQgKHJlYWRpbmcgJ2JpbmQnKWAsIGJlZm9yZSBhblxuLy8gYGVuZ2luZXNgIG9wdGlvbiBjb3VsZCBvdmVycmlkZSB0aGUgZGVmYXVsdC4gT25seSB0aGUgZnJvbnRtYXR0ZXIgb2JqZWN0IGlzIG5lZWRlZCBoZXJlLlxuY29uc3QgRlJPTlRfTUFUVEVSX1JFR19FWFAgPSAvXi0tLVxccj9cXG4oPzxGcm9udE1hdHRlcj5bXFxzXFxTXSo/KVxccj9cXG4tLS0oPzpcXHI/XFxufCQpLztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIE9wZW4gR3JhcGggY2FyZHMuXG4gKlxuICogQSBjYXJkIGlzIHJlLXJlbmRlcmVkIG9ubHkgd2hlbiBpdHMgdGl0bGUsIGRlc2NyaXB0aW9uLCBzaWduYXR1cmUgb3IgYmFkZ2UgY2hhbmdlZCwgdHJhY2tlZCBieSBhIGhhc2ggbWFuaWZlc3RcbiAqIGJlc2lkZSB0aGUgY2FyZHMuIEEgZGlmZmVyZW50IGxvZ28gZmlsZSByZS1yZW5kZXJzIGV2ZXJ5IGNhcmQuIE1pc3NpbmcgY29udGVudCBvciBmb250cyBza2lwIHRoZSBzdGVwIHdpdGggYSB3YXJuaW5nIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhlIGJ1aWxkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZU9nSW1hZ2VzKG9wdGlvbnM6IEdlbmVyYXRlT2dJbWFnZXNQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBicmFuZFRleHQsIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBmYXZpY29uUGF0aCwgZm9udHNEaXJlY3RvcnksIG91dHB1dERpcmVjdG9yeSB9ID0gb3B0aW9ucztcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gYCR7b3V0cHV0RGlyZWN0b3J5fS8uY2FjaGUtbWFuaWZlc3QuanNvbmA7XG5cbiAgaWYgKCFleGlzdHNTeW5jKGNvbnRlbnREb2NzRGlyZWN0b3J5KSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBjb250ZW50IGRpciBub3QgZm91bmQgKCR7Y29udGVudERvY3NEaXJlY3Rvcnl9KTsgc2tpcHBpbmcuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gTG9hZCBmb250cyBmaXJzdCDigJQgc2F0b3JpIGNhbm5vdCByZW5kZXIgd2l0aG91dCB0aGVtLlxuICBjb25zdCBmb250cyA9IGF3YWl0IGxvYWRGb250cyhmb250c0RpcmVjdG9yeSk7XG4gIGlmICghZm9udHMpIHtcbiAgICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogbm8gZm9udHMgYXZhaWxhYmxlIGluICR7Zm9udHNEaXJlY3Rvcnl9OyBza2lwcGluZyBPRyBpbWFnZSBnZW5lcmF0aW9uLmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhZ2VzOiBQYWdlRW50cnlbXSA9IFtdO1xuICBhd2FpdCB3YWxrRGlyZWN0b3J5KGNvbnRlbnREb2NzRGlyZWN0b3J5LCBjb250ZW50RG9jc0RpcmVjdG9yeSwgcGFnZXMpO1xuICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogZm91bmQgJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gcGFnZXNgKTtcblxuICBjb25zdCBsb2dvSGFzaCA9IGF3YWl0IGNvbXB1dGVMb2dvSGFzaChmYXZpY29uUGF0aCk7XG4gIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgbG9hZENhY2hlTWFuaWZlc3QobWFuaWZlc3RQYXRoKTtcbiAgY29uc3QgY2FyZHMgPSBtYW5pZmVzdD8ubG9nb0hhc2ggPT09IGxvZ29IYXNoID8geyAuLi5tYW5pZmVzdC5jYXJkcyB9IDoge307XG4gIGNvbnN0IGNoYW5nZWRQYWdlcyA9IHBhZ2VzLmZpbHRlcigocGFnZSkgPT4gY2FyZHNbcGFnZS5zbHVnXSAhPT0gcGFnZS5oYXNoKTtcbiAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6ICR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBjaGFuZ2VkIC8gJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gdG90YWxgKTtcblxuICBpZiAoY2hhbmdlZFBhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnNvbGUud2FybignQWxsIE9HIGltYWdlcyB1cCB0byBkYXRlLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFJhc3Rlcml6ZSB0aGUgc2l0ZSBsb2dvIG9uY2UgKHNoYXJlZCBhY3Jvc3MgZXZlcnkgY2FyZCk7IGRlZ3JhZGUgZ3JhY2VmdWxseSBpZiBhYnNlbnQuXG4gIGNvbnN0IGxvZ29EYXRhVXJpID0gYXdhaXQgbG9hZExvZ29EYXRhVXJpKGZhdmljb25QYXRoKTtcbiAgaWYgKCFsb2dvRGF0YVVyaSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBmYXZpY29uIG5vdCBmb3VuZCAoJHtmYXZpY29uUGF0aH0pOyByZW5kZXJpbmcgY2FyZHMgd2l0aG91dCBhIGxvZ28uYCk7XG4gIH1cblxuICBhd2FpdCBnZW5lcmF0ZUltYWdlc1dpdGhQb29sKHsgYnJhbmRUZXh0LCBjYXJkcywgY2hhbmdlZFBhZ2VzLCBmb250cywgbG9nb0RhdGFVcmksIG91dHB1dERpcmVjdG9yeSB9KTtcblxuICBjb25zdCBuZXdNYW5pZmVzdDogQ2FjaGVNYW5pZmVzdCA9IHsgY2FyZHMsIGxvZ29IYXNoIH07XG4gIGF3YWl0IG1rZGlyKGRpcm5hbWUobWFuaWZlc3RQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGF3YWl0IHdyaXRlRmlsZShtYW5pZmVzdFBhdGgsIEpTT04uc3RyaW5naWZ5KG5ld01hbmlmZXN0LCBudWxsLCBNQU5JRkVTVF9JTkRFTlQpKTtcbiAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6IGRvbmUuIEdlbmVyYXRlZCAke1N0cmluZyhjaGFuZ2VkUGFnZXMubGVuZ3RoKX0gaW1hZ2VzLmApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb21wdXRlTG9nb0hhc2goZmF2aWNvblBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBleGlzdHNTeW5jKGZhdmljb25QYXRoKSA/IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShhd2FpdCByZWFkRmlsZShmYXZpY29uUGF0aCkpLmRpZ2VzdCgnaGV4JykgOiAnJztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVJbWFnZXNXaXRoUG9vbChvcHRpb25zOiBHZW5lcmF0ZUltYWdlc1dpdGhQb29sT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGJyYW5kVGV4dCwgY2FyZHMsIGNoYW5nZWRQYWdlcywgZm9udHMsIGxvZ29EYXRhVXJpLCBvdXRwdXREaXJlY3RvcnkgfSA9IG9wdGlvbnM7XG4gIGxldCBjb21wbGV0ZWQgPSAwO1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAobGV0IHBhZ2UgPSBjaGFuZ2VkUGFnZXNbaW5kZXgrK107IHBhZ2UgIT09IHVuZGVmaW5lZDsgcGFnZSA9IGNoYW5nZWRQYWdlc1tpbmRleCsrXSkge1xuICAgICAgY29uc3Qgb3V0cHV0UGF0aCA9IGAke291dHB1dERpcmVjdG9yeX0vJHtwYWdlLnNsdWd9LnBuZ2A7XG4gICAgICBhd2FpdCBta2RpcihkaXJuYW1lKG91dHB1dFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGF3YWl0IHdyaXRlRmlsZShvdXRwdXRQYXRoLCBhd2FpdCByZW5kZXJPZ0ltYWdlKHBhZ2UucGFyYW1zLCB7IGJyYW5kVGV4dCwgZm9udHMsIGxvZ29EYXRhVXJpIH0pKTtcbiAgICAgIGNhcmRzW3BhZ2Uuc2x1Z10gPSBwYWdlLmhhc2g7XG4gICAgICBjb21wbGV0ZWQrKztcbiAgICAgIGlmIChjb21wbGV0ZWQgJSBQUk9HUkVTU19MT0dfSU5URVJWQUwgPT09IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKGAgICR7U3RyaW5nKGNvbXBsZXRlZCl9LyR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBpbWFnZXMgZ2VuZXJhdGVkLi4uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh7IGxlbmd0aDogQ09OQ1VSUkVOQ1kgfSwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHByb2Nlc3NOZXh0KCk7XG4gIH0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhY2hlTWFuaWZlc3QobWFuaWZlc3RQYXRoOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTWFuaWZlc3QgfCBudWxsPiB7XG4gIGlmICghZXhpc3RzU3luYyhtYW5pZmVzdFBhdGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQSBtYW5pZmVzdCB3cml0dGVuIGJlZm9yZSB0aGUgbG9nbyB3YXMgdHJhY2tlZCBpcyBhIGZsYXQgc2x1Zy10by1oYXNoIG1hcDogaXQgaGFzIG5vIGBsb2dvSGFzaGAsIHNvIGV2ZXJ5IGNhcmRcbiAgLy8gcmUtcmVuZGVycyBvbmNlLlxuICBjb25zdCBtYW5pZmVzdCA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUobWFuaWZlc3RQYXRoLCAndXRmLTgnKSkgYXMgUGFydGlhbDxDYWNoZU1hbmlmZXN0PjtcbiAgcmV0dXJuIHR5cGVvZiBtYW5pZmVzdC5sb2dvSGFzaCA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIG1hbmlmZXN0LmNhcmRzID09PSAnb2JqZWN0J1xuICAgID8geyBjYXJkczogbWFuaWZlc3QuY2FyZHMsIGxvZ29IYXNoOiBtYW5pZmVzdC5sb2dvSGFzaCB9XG4gICAgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBwYXJzZUZyb250TWF0dGVyKGNvbnRlbnQ6IHN0cmluZyk6IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgZnJvbnRNYXR0ZXIgPSBGUk9OVF9NQVRURVJfUkVHX0VYUC5leGVjKGNvbnRlbnQpPy5ncm91cHM/LlsnRnJvbnRNYXR0ZXInXTtcbiAgcmV0dXJuIGZyb250TWF0dGVyID09PSB1bmRlZmluZWQgPyB7fSA6IChwYXJzZVlhbWwoZnJvbnRNYXR0ZXIpIGFzIG51bGwgfCBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PikgPz8ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlUGFnZShmaWxlUGF0aDogc3RyaW5nLCBjb250ZW50RG9jc0RpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxudWxsIHwgUGFnZUVudHJ5PiB7XG4gIGNvbnN0IGRhdGEgPSBwYXJzZUZyb250TWF0dGVyKGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCAndXRmLTgnKSk7XG5cbiAgY29uc3QgdGl0bGUgPSB0b09wdGlvbmFsU3RyaW5nKGRhdGFbJ3RpdGxlJ10pO1xuICBpZiAoIXRpdGxlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBiYWRnZSA9IGRhdGFbJ3NpZGViYXInXSBhcyBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+Pj4gfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHBhcmFtczogT2dDYXJkQ29udGVudCA9IHtcbiAgICBiYWRnZTogdG9PcHRpb25hbFN0cmluZyhiYWRnZT8uWydiYWRnZSddPy5bJ3RleHQnXSksXG4gICAgZGVzY3JpcHRpb246IHRvT3B0aW9uYWxTdHJpbmcoZGF0YVsnZGVzY3JpcHRpb24nXSkgPz8gJycsXG4gICAgc2lnbmF0dXJlOiB0b09wdGlvbmFsU3RyaW5nKGRhdGFbJ3NpZ25hdHVyZSddKSA/PyAnJyxcbiAgICB0aXRsZVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgaGFzaDogY29tcHV0ZU9nSGFzaChwYXJhbXMpLFxuICAgIHBhcmFtcyxcbiAgICBzbHVnOiBnZXRPZ0ltYWdlUGFnZVNsdWcoZGF0YSwgZmlsZVBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5KVxuICB9O1xufVxuXG5mdW5jdGlvbiB0b09wdGlvbmFsU3RyaW5nKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2Fsa0RpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgY29udGVudERvY3NEaXJlY3Rvcnk6IHN0cmluZywgcGFnZXM6IFBhZ2VFbnRyeVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVudHJpZXMgPSBhd2FpdCByZWFkZGlyKGRpcmVjdG9yeSwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGAke2RpcmVjdG9yeX0vJHtlbnRyeS5uYW1lfWA7XG4gICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGF3YWl0IHdhbGtEaXJlY3RvcnkoZnVsbFBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBwYWdlcyk7XG4gICAgfSBlbHNlIGlmIChlbnRyeS5uYW1lLmVuZHNXaXRoKCcubWQnKSB8fCBlbnRyeS5uYW1lLmVuZHNXaXRoKCcubWR4JykpIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBwYXJzZVBhZ2UoZnVsbFBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5KTtcbiAgICAgIGlmIChwYWdlKSB7XG4gICAgICAgIHBhZ2VzLnB1c2gocGFnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLHlCQUEyQjtBQUMzQixxQkFBMkI7QUFDM0Isc0JBS087QUFDUCxtQkFBd0I7QUFDeEIsa0JBQW1DO0FBSW5DLDJCQUFtQztBQUNuQyxzQkFLTztBQXlEUCxNQUFNLGNBQWM7QUFDcEIsTUFBTSx3QkFBd0I7QUFDOUIsTUFBTSxrQkFBa0I7QUFNeEIsTUFBTSx1QkFBdUI7QUFVN0IsZUFBc0IsaUJBQWlCLFNBQWdEO0FBQ3JGLFFBQU0sRUFBRSxXQUFXLHNCQUFzQixhQUFhLGdCQUFnQixnQkFBZ0IsSUFBSTtBQUMxRixRQUFNLGVBQWUsR0FBRyxlQUFlO0FBRXZDLE1BQUksS0FBQywyQkFBVyxvQkFBb0IsR0FBRztBQUNyQyxZQUFRLEtB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QUFTLGFBQWEsWUFBWSxPQUFPLFNBQVMsVUFBVSxXQUN0RSxFQUFFLE9BQU8sU0FBUyxPQUFPLFVBQVUsU0FBUyxTQUFTLElBQ3JEO0FBQ047QUFFQSxTQUFTLGlCQUFpQixTQUFtRDtBQUMzRSxRQUFNLGNBQWMscUJBQXFCLEtBQUssT0FBTyxHQUFHLFNBQVMsYUFBYTtBQUM5RSxTQUFPLGdCQUFnQixTQUFZLENBQUMsUUFBSyxZQUFBQSxPQUFVLFdBQVcsS0FBaUQsQ0FBQztBQUNsSDtBQUVBLGVBQWUsVUFBVSxVQUFrQixzQkFBeUQ7QUFDbEcsUUFBTSxPQUFPLGlCQUFpQixVQUFNLDBCQUFTLFVBQVUsT0FBTyxDQUFDO0FBRS9ELFFBQU0sUUFBUSxpQkFBaUIsS0FBSyxPQUFPLENBQUM7QUFDNUMsTUFBSSxDQUFDLE9BQU87QUFDVixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sUUFBUSxLQUFLLFNBQVM7QUFDNUIsUUFBTSxTQUF3QjtBQUFBLElBQzVCLE9BQU8saUJBQWlCLFFBQVEsT0FBTyxJQUFJLE1BQU0sQ0FBQztBQUFBLElBQ2xELGFBQWEsaUJBQWlCLEtBQUssYUFBYSxDQUFDLEtBQUs7QUFBQSxJQUN0RCxXQUFXLGlCQUFpQixLQUFLLFdBQVcsQ0FBQyxLQUFLO0FBQUEsSUFDbEQ7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUFBLElBQ0wsVUFBTSwrQkFBYyxNQUFNO0FBQUEsSUFDMUI7QUFBQSxJQUNBLFVBQU0seUNBQW1CLE1BQU0sVUFBVSxvQkFBb0I7QUFBQSxFQUMvRDtBQUNGO0FBRUEsU0FBUyxpQkFBaUIsT0FBb0M7QUFDNUQsU0FBTyxPQUFPLFVBQVUsV0FBVyxRQUFRO0FBQzdDO0FBRUEsZUFBZSxjQUFjLFdBQW1CLHNCQUE4QixPQUFtQztBQUMvRyxRQUFNLFVBQVUsVUFBTSx5QkFBUSxXQUFXLEVBQUUsZUFBZSxLQUFLLENBQUM7QUFDaEUsYUFBVyxTQUFTLFNBQVM7QUFDM0IsVUFBTSxXQUFXLEdBQUcsU0FBUyxJQUFJLE1BQU0sSUFBSTtBQUMzQyxRQUFJLE1BQU0sWUFBWSxHQUFHO0FBQ3ZCLFlBQU0sY0FBYyxVQUFVLHNCQUFzQixLQUFLO0FBQUEsSUFDM0QsV0FBVyxNQUFNLEtBQUssU0FBUyxLQUFLLEtBQUssTUFBTSxLQUFLLFNBQVMsTUFBTSxHQUFHO0FBQ3BFLFlBQU0sT0FBTyxNQUFNLFVBQVUsVUFBVSxvQkFBb0I7QUFDM0QsVUFBSSxNQUFNO0FBQ1IsY0FBTSxLQUFLLElBQUk7QUFBQSxNQUNqQjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0Y7IiwibmFtZXMiOlsicGFyc2VZYW1sIl19
|
|
@@ -34,7 +34,7 @@ export interface GenerateOgImagesParams {
|
|
|
34
34
|
* Generates the Open Graph cards.
|
|
35
35
|
*
|
|
36
36
|
* A card is re-rendered only when its title, description, signature or badge changed, tracked by a hash manifest
|
|
37
|
-
* beside the cards. Missing content or fonts skip the step with a warning rather than failing the build.
|
|
37
|
+
* beside the cards. A different logo file re-renders every card. Missing content or fonts skip the step with a warning rather than failing the build.
|
|
38
38
|
*
|
|
39
39
|
* @param options - The options.
|
|
40
40
|
*/
|
|
@@ -5,9 +5,23 @@
|
|
|
5
5
|
* Svelte wrapper esbuild plugin.
|
|
6
6
|
*/
|
|
7
7
|
import type { Plugin } from 'esbuild';
|
|
8
|
+
/**
|
|
9
|
+
* Checks whether an error is the one loading `esbuild-svelte` throws when the `svelte` package is not installed.
|
|
10
|
+
*
|
|
11
|
+
* `esbuild-svelte` imports `svelte/compiler` when it loads, and package managers that do not install peers (Yarn 1)
|
|
12
|
+
* leave `svelte` out of a project that has no Svelte components.
|
|
13
|
+
*
|
|
14
|
+
* @param error - The error to check.
|
|
15
|
+
* @returns Whether the error says that the `svelte` package cannot be found.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isMissingSveltePackageError(error: unknown): boolean;
|
|
8
18
|
/**
|
|
9
19
|
* Wraps the esbuild-svelte plugin to ensure that the correct format is used.
|
|
10
20
|
*
|
|
21
|
+
* `esbuild-svelte` and `svelte-preprocess` are loaded when the plugin is set up, not when this module is imported. When
|
|
22
|
+
* the `svelte` package is not installed, a build with no `.svelte` file succeeds, and a build that reaches one fails
|
|
23
|
+
* with an error that names the missing package.
|
|
24
|
+
*
|
|
11
25
|
* @param isProductionBuild - Whether the build is a production build.
|
|
12
26
|
* @returns The esbuild plugin.
|
|
13
27
|
*/
|
|
@@ -37,27 +37,34 @@ ensureBrowserProcess();
|
|
|
37
37
|
})();
|
|
38
38
|
|
|
39
39
|
import { extractDefaultExportInterop } from "@mnaoumov/typescript-lib/object-utils";
|
|
40
|
-
import esbuildSvelte_ from "esbuild-svelte";
|
|
41
|
-
import { sveltePreprocess } from "svelte-preprocess";
|
|
42
40
|
import { readPackageJson } from "../../npm.mjs";
|
|
43
|
-
const
|
|
41
|
+
const MISSING_SVELTE_MESSAGE_REG_EXP = /Cannot find (?:module|package) 'svelte(?:\/[^']*)?'/;
|
|
42
|
+
const MODULE_NOT_FOUND_CODES = /* @__PURE__ */ new Set(["ERR_MODULE_NOT_FOUND", "MODULE_NOT_FOUND"]);
|
|
43
|
+
const SVELTE_FILTER = /\.svelte$/;
|
|
44
|
+
function isMissingSveltePackageError(error) {
|
|
45
|
+
if (!(error instanceof Error)) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
const code = error.code;
|
|
49
|
+
return typeof code === "string" && MODULE_NOT_FOUND_CODES.has(code) && MISSING_SVELTE_MESSAGE_REG_EXP.test(error.message);
|
|
50
|
+
}
|
|
44
51
|
function svelteWrapperPlugin(isProductionBuild) {
|
|
45
|
-
const esbuildSveltePlugin = esbuildSvelte({
|
|
46
|
-
compilerOptions: {
|
|
47
|
-
css: "injected",
|
|
48
|
-
dev: !isProductionBuild
|
|
49
|
-
},
|
|
50
|
-
moduleCompilerOptions: {
|
|
51
|
-
dev: !isProductionBuild
|
|
52
|
-
},
|
|
53
|
-
preprocess: sveltePreprocess()
|
|
54
|
-
});
|
|
55
52
|
return {
|
|
56
53
|
name: "svelte-wrapper",
|
|
57
54
|
async setup(build) {
|
|
55
|
+
let sveltePlugin;
|
|
56
|
+
try {
|
|
57
|
+
sveltePlugin = await createEsbuildSveltePlugin(isProductionBuild);
|
|
58
|
+
} catch (error) {
|
|
59
|
+
if (!isMissingSveltePackageError(error)) {
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
registerMissingSvelteLoader(build);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
58
65
|
const packageJson = await readPackageJson();
|
|
59
66
|
const format = packageJson.type === "module" ? "esm" : "cjs";
|
|
60
|
-
await
|
|
67
|
+
await sveltePlugin.setup({
|
|
61
68
|
...build,
|
|
62
69
|
initialOptions: {
|
|
63
70
|
...build.initialOptions,
|
|
@@ -67,7 +74,29 @@ function svelteWrapperPlugin(isProductionBuild) {
|
|
|
67
74
|
}
|
|
68
75
|
};
|
|
69
76
|
}
|
|
77
|
+
async function createEsbuildSveltePlugin(isProductionBuild) {
|
|
78
|
+
const [esbuildSvelteModule, { sveltePreprocess }] = await Promise.all([import("esbuild-svelte"), import("svelte-preprocess")]);
|
|
79
|
+
const esbuildSvelte = extractDefaultExportInterop(esbuildSvelteModule.default);
|
|
80
|
+
return esbuildSvelte({
|
|
81
|
+
compilerOptions: {
|
|
82
|
+
css: "injected",
|
|
83
|
+
dev: !isProductionBuild
|
|
84
|
+
},
|
|
85
|
+
moduleCompilerOptions: {
|
|
86
|
+
dev: !isProductionBuild
|
|
87
|
+
},
|
|
88
|
+
preprocess: sveltePreprocess()
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function registerMissingSvelteLoader(build) {
|
|
92
|
+
build.onLoad({ filter: SVELTE_FILTER }, (arguments_) => ({
|
|
93
|
+
errors: [{
|
|
94
|
+
text: `Cannot compile ${arguments_.path}: the \`svelte\` package is not installed. Install \`svelte\` in the project to build Svelte components.`
|
|
95
|
+
}]
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
70
98
|
export {
|
|
99
|
+
isMissingSveltePackageError,
|
|
71
100
|
svelteWrapperPlugin
|
|
72
101
|
};
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9idW5kbGVycy9lc2J1aWxkLWltcGwvc3ZlbHRlLXdyYXBwZXItcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTdmVsdGUgd3JhcHBlciBlc2J1aWxkIHBsdWdpbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbixcbiAgUGx1Z2luQnVpbGRcbn0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuXG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi8uLi9ucG0udHMnO1xuXG5jb25zdCBNSVNTSU5HX1NWRUxURV9NRVNTQUdFX1JFR19FWFAgPSAvQ2Fubm90IGZpbmQgKD86bW9kdWxlfHBhY2thZ2UpICdzdmVsdGUoPzpcXC9bXiddKik/Jy87XG5jb25zdCBNT0RVTEVfTk9UX0ZPVU5EX0NPREVTID0gbmV3IFNldChbJ0VSUl9NT0RVTEVfTk9UX0ZPVU5EJywgJ01PRFVMRV9OT1RfRk9VTkQnXSk7XG5jb25zdCBTVkVMVEVfRklMVEVSID0gL1xcLnN2ZWx0ZSQvO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGVycm9yIGlzIHRoZSBvbmUgbG9hZGluZyBgZXNidWlsZC1zdmVsdGVgIHRocm93cyB3aGVuIHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQuXG4gKlxuICogYGVzYnVpbGQtc3ZlbHRlYCBpbXBvcnRzIGBzdmVsdGUvY29tcGlsZXJgIHdoZW4gaXQgbG9hZHMsIGFuZCBwYWNrYWdlIG1hbmFnZXJzIHRoYXQgZG8gbm90IGluc3RhbGwgcGVlcnMgKFlhcm4gMSlcbiAqIGxlYXZlIGBzdmVsdGVgIG91dCBvZiBhIHByb2plY3QgdGhhdCBoYXMgbm8gU3ZlbHRlIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIGVycm9yIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZXJyb3Igc2F5cyB0aGF0IHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGNhbm5vdCBiZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWlzc2luZ1N2ZWx0ZVBhY2thZ2VFcnJvcihlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNvZGUgPSAoZXJyb3IgYXMgUGFydGlhbDxSZWNvcmQ8J2NvZGUnLCB1bmtub3duPj4pLmNvZGU7XG4gIHJldHVybiB0eXBlb2YgY29kZSA9PT0gJ3N0cmluZycgJiYgTU9EVUxFX05PVF9GT1VORF9DT0RFUy5oYXMoY29kZSkgJiYgTUlTU0lOR19TVkVMVEVfTUVTU0FHRV9SRUdfRVhQLnRlc3QoZXJyb3IubWVzc2FnZSk7XG59XG5cbi8qKlxuICogV3JhcHMgdGhlIGVzYnVpbGQtc3ZlbHRlIHBsdWdpbiB0byBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCBmb3JtYXQgaXMgdXNlZC5cbiAqXG4gKiBgZXNidWlsZC1zdmVsdGVgIGFuZCBgc3ZlbHRlLXByZXByb2Nlc3NgIGFyZSBsb2FkZWQgd2hlbiB0aGUgcGx1Z2luIGlzIHNldCB1cCwgbm90IHdoZW4gdGhpcyBtb2R1bGUgaXMgaW1wb3J0ZWQuIFdoZW5cbiAqIHRoZSBgc3ZlbHRlYCBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGEgYnVpbGQgd2l0aCBubyBgLnN2ZWx0ZWAgZmlsZSBzdWNjZWVkcywgYW5kIGEgYnVpbGQgdGhhdCByZWFjaGVzIG9uZSBmYWlsc1xuICogd2l0aCBhbiBlcnJvciB0aGF0IG5hbWVzIHRoZSBtaXNzaW5nIHBhY2thZ2UuXG4gKlxuICogQHBhcmFtIGlzUHJvZHVjdGlvbkJ1aWxkIC0gV2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLlxuICogQHJldHVybnMgVGhlIGVzYnVpbGQgcGx1Z2luLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ZlbHRlV3JhcHBlclBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZDogYm9vbGVhbik6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3N2ZWx0ZS13cmFwcGVyJyxcbiAgICBhc3luYyBzZXR1cChidWlsZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgbGV0IHN2ZWx0ZVBsdWdpbjogUGx1Z2luO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3ZlbHRlUGx1Z2luID0gYXdhaXQgY3JlYXRlRXNidWlsZFN2ZWx0ZVBsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIWlzTWlzc2luZ1N2ZWx0ZVBhY2thZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3Rlck1pc3NpbmdTdmVsdGVMb2FkZXIoYnVpbGQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gICAgICBjb25zdCBmb3JtYXQgPSBwYWNrYWdlSnNvbi50eXBlID09PSAnbW9kdWxlJyA/ICdlc20nIDogJ2Nqcyc7XG4gICAgICBhd2FpdCBzdmVsdGVQbHVnaW4uc2V0dXAoe1xuICAgICAgICAuLi5idWlsZCxcbiAgICAgICAgaW5pdGlhbE9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5idWlsZC5pbml0aWFsT3B0aW9ucyxcbiAgICAgICAgICBmb3JtYXRcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gbG9hZHMgZXNidWlsZC1zdmVsdGUgd2l0aCBzdmVsdGUtcHJlcHJvY2VzczsgZXNidWlsZC1zdmVsdGUgY29tcGlsZXMgb25seSBpbnNpZGUgYSBsaXZlIGVzYnVpbGQgYnVpbGQuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVFc2J1aWxkU3ZlbHRlUGx1Z2luKGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuKTogUHJvbWlzZTxQbHVnaW4+IHtcbiAgY29uc3QgW2VzYnVpbGRTdmVsdGVNb2R1bGUsIHsgc3ZlbHRlUHJlcHJvY2VzcyB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtpbXBvcnQoJ2VzYnVpbGQtc3ZlbHRlJyksIGltcG9ydCgnc3ZlbHRlLXByZXByb2Nlc3MnKV0pO1xuICBjb25zdCBlc2J1aWxkU3ZlbHRlID0gZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wKGVzYnVpbGRTdmVsdGVNb2R1bGUuZGVmYXVsdCk7XG4gIHJldHVybiBlc2J1aWxkU3ZlbHRlKHtcbiAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgIGNzczogJ2luamVjdGVkJyxcbiAgICAgIGRldjogIWlzUHJvZHVjdGlvbkJ1aWxkXG4gICAgfSxcbiAgICBtb2R1bGVDb21waWxlck9wdGlvbnM6IHtcbiAgICAgIGRldjogIWlzUHJvZHVjdGlvbkJ1aWxkXG4gICAgfSxcbiAgICBwcmVwcm9jZXNzOiBzdmVsdGVQcmVwcm9jZXNzKClcbiAgfSk7XG59XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG5mdW5jdGlvbiByZWdpc3Rlck1pc3NpbmdTdmVsdGVMb2FkZXIoYnVpbGQ6IFBsdWdpbkJ1aWxkKTogdm9pZCB7XG4gIGJ1aWxkLm9uTG9hZCh7IGZpbHRlcjogU1ZFTFRFX0ZJTFRFUiB9LCAoYXJndW1lbnRzXykgPT4gKHtcbiAgICBlcnJvcnM6IFt7XG4gICAgICB0ZXh0OiBgQ2Fubm90IGNvbXBpbGUgJHthcmd1bWVudHNfLnBhdGh9OiB0aGUgXFxgc3ZlbHRlXFxgIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZC4gSW5zdGFsbCBcXGBzdmVsdGVcXGAgaW4gdGhlIHByb2plY3QgdG8gYnVpbGQgU3ZlbHRlIGNvbXBvbmVudHMuYFxuICAgIH1dXG4gIH0pKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxTQUFTLG1DQUFtQztBQUU1QyxTQUFTLHVCQUF1QjtBQUVoQyxNQUFNLGlDQUFpQztBQUN2QyxNQUFNLHlCQUF5QixvQkFBSSxJQUFJLENBQUMsd0JBQXdCLGtCQUFrQixDQUFDO0FBQ25GLE1BQU0sZ0JBQWdCO0FBV2YsU0FBUyw0QkFBNEIsT0FBeUI7QUFDbkUsTUFBSSxFQUFFLGlCQUFpQixRQUFRO0FBQzdCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxPQUFRLE1BQTJDO0FBQ3pELFNBQU8sT0FBTyxTQUFTLFlBQVksdUJBQXVCLElBQUksSUFBSSxLQUFLLCtCQUErQixLQUFLLE1BQU0sT0FBTztBQUMxSDtBQVlPLFNBQVMsb0JBQW9CLG1CQUFvQztBQUN0RSxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE1BQU0sT0FBc0I7QUFDaEMsVUFBSTtBQUNKLFVBQUk7QUFDRix1QkFBZSxNQUFNLDBCQUEwQixpQkFBaUI7QUFBQSxNQUNsRSxTQUFTLE9BQU87QUFDZCxZQUFJLENBQUMsNEJBQTRCLEtBQUssR0FBRztBQUN2QyxnQkFBTTtBQUFBLFFBQ1I7QUFDQSxvQ0FBNEIsS0FBSztBQUNqQztBQUFBLE1BQ0Y7QUFFQSxZQUFNLGNBQWMsTUFBTSxnQkFBZ0I7QUFDMUMsWUFBTSxTQUFTLFlBQVksU0FBUyxXQUFXLFFBQVE7QUFDdkQsWUFBTSxhQUFhLE1BQU07QUFBQSxRQUN2QixHQUFHO0FBQUEsUUFDSCxnQkFBZ0I7QUFBQSxVQUNkLEdBQUcsTUFBTTtBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQUdBLGVBQWUsMEJBQTBCLG1CQUE2QztBQUNwRixRQUFNLENBQUMscUJBQXFCLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxNQUFNLFFBQVEsSUFBSSxDQUFDLE9BQU8sZ0JBQWdCLEdBQUcsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDO0FBQzdILFFBQU0sZ0JBQWdCLDRCQUE0QixvQkFBb0IsT0FBTztBQUM3RSxTQUFPLGNBQWM7QUFBQSxJQUNuQixpQkFBaUI7QUFBQSxNQUNmLEtBQUs7QUFBQSxNQUNMLEtBQUssQ0FBQztBQUFBLElBQ1I7QUFBQSxJQUNBLHVCQUF1QjtBQUFBLE1BQ3JCLEtBQUssQ0FBQztBQUFBLElBQ1I7QUFBQSxJQUNBLFlBQVksaUJBQWlCO0FBQUEsRUFDL0IsQ0FBQztBQUNIO0FBR0EsU0FBUyw0QkFBNEIsT0FBMEI7QUFDN0QsUUFBTSxPQUFPLEVBQUUsUUFBUSxjQUFjLEdBQUcsQ0FBQyxnQkFBZ0I7QUFBQSxJQUN2RCxRQUFRLENBQUM7QUFBQSxNQUNQLE1BQU0sa0JBQWtCLFdBQVcsSUFBSTtBQUFBLElBQ3pDLENBQUM7QUFBQSxFQUNILEVBQUU7QUFDSjsiLCJuYW1lcyI6W119
|
|
@@ -34,7 +34,7 @@ export interface GenerateOgImagesParams {
|
|
|
34
34
|
* Generates the Open Graph cards.
|
|
35
35
|
*
|
|
36
36
|
* A card is re-rendered only when its title, description, signature or badge changed, tracked by a hash manifest
|
|
37
|
-
* beside the cards. Missing content or fonts skip the step with a warning rather than failing the build.
|
|
37
|
+
* beside the cards. A different logo file re-renders every card. Missing content or fonts skip the step with a warning rather than failing the build.
|
|
38
38
|
*
|
|
39
39
|
* @param options - The options.
|
|
40
40
|
*/
|
|
@@ -36,6 +36,7 @@ function ensureBrowserProcess() {
|
|
|
36
36
|
ensureBrowserProcess();
|
|
37
37
|
})();
|
|
38
38
|
|
|
39
|
+
import { createHash } from "node:crypto";
|
|
39
40
|
import { existsSync } from "node:fs";
|
|
40
41
|
import {
|
|
41
42
|
mkdir,
|
|
@@ -71,8 +72,10 @@ async function generateOgImages(options) {
|
|
|
71
72
|
const pages = [];
|
|
72
73
|
await walkDirectory(contentDocsDirectory, contentDocsDirectory, pages);
|
|
73
74
|
console.warn(`OG images: found ${String(pages.length)} pages`);
|
|
75
|
+
const logoHash = await computeLogoHash(faviconPath);
|
|
74
76
|
const manifest = await loadCacheManifest(manifestPath);
|
|
75
|
-
const
|
|
77
|
+
const cards = manifest?.logoHash === logoHash ? { ...manifest.cards } : {};
|
|
78
|
+
const changedPages = pages.filter((page) => cards[page.slug] !== page.hash);
|
|
76
79
|
console.warn(`OG images: ${String(changedPages.length)} changed / ${String(pages.length)} total`);
|
|
77
80
|
if (changedPages.length === 0) {
|
|
78
81
|
console.warn("All OG images up to date.");
|
|
@@ -82,13 +85,17 @@ async function generateOgImages(options) {
|
|
|
82
85
|
if (!logoDataUri) {
|
|
83
86
|
console.warn(`OG images: favicon not found (${faviconPath}); rendering cards without a logo.`);
|
|
84
87
|
}
|
|
85
|
-
await generateImagesWithPool({ brandText, changedPages, fonts, logoDataUri,
|
|
88
|
+
await generateImagesWithPool({ brandText, cards, changedPages, fonts, logoDataUri, outputDirectory });
|
|
89
|
+
const newManifest = { cards, logoHash };
|
|
86
90
|
await mkdir(dirname(manifestPath), { recursive: true });
|
|
87
|
-
await writeFile(manifestPath, JSON.stringify(
|
|
91
|
+
await writeFile(manifestPath, JSON.stringify(newManifest, null, MANIFEST_INDENT));
|
|
88
92
|
console.warn(`OG images: done. Generated ${String(changedPages.length)} images.`);
|
|
89
93
|
}
|
|
94
|
+
async function computeLogoHash(faviconPath) {
|
|
95
|
+
return existsSync(faviconPath) ? createHash("sha256").update(await readFile(faviconPath)).digest("hex") : "";
|
|
96
|
+
}
|
|
90
97
|
async function generateImagesWithPool(options) {
|
|
91
|
-
const { brandText, changedPages, fonts, logoDataUri,
|
|
98
|
+
const { brandText, cards, changedPages, fonts, logoDataUri, outputDirectory } = options;
|
|
92
99
|
let completed = 0;
|
|
93
100
|
let index = 0;
|
|
94
101
|
async function processNext() {
|
|
@@ -96,7 +103,7 @@ async function generateImagesWithPool(options) {
|
|
|
96
103
|
const outputPath = `${outputDirectory}/${page.slug}.png`;
|
|
97
104
|
await mkdir(dirname(outputPath), { recursive: true });
|
|
98
105
|
await writeFile(outputPath, await renderOgImage(page.params, { brandText, fonts, logoDataUri }));
|
|
99
|
-
|
|
106
|
+
cards[page.slug] = page.hash;
|
|
100
107
|
completed++;
|
|
101
108
|
if (completed % PROGRESS_LOG_INTERVAL === 0) {
|
|
102
109
|
console.warn(` ${String(completed)}/${String(changedPages.length)} images generated...`);
|
|
@@ -108,7 +115,11 @@ async function generateImagesWithPool(options) {
|
|
|
108
115
|
}));
|
|
109
116
|
}
|
|
110
117
|
async function loadCacheManifest(manifestPath) {
|
|
111
|
-
|
|
118
|
+
if (!existsSync(manifestPath)) {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
const manifest = JSON.parse(await readFile(manifestPath, "utf-8"));
|
|
122
|
+
return typeof manifest.logoHash === "string" && typeof manifest.cards === "object" ? { cards: manifest.cards, logoHash: manifest.logoHash } : null;
|
|
112
123
|
}
|
|
113
124
|
function parseFrontMatter(content) {
|
|
114
125
|
const frontMatter = FRONT_MATTER_REG_EXP.exec(content)?.groups?.["FrontMatter"];
|
|
@@ -153,4 +164,4 @@ async function walkDirectory(directory, contentDocsDirectory, pages) {
|
|
|
153
164
|
export {
|
|
154
165
|
generateOgImages
|
|
155
166
|
};
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvb2ctaW1hZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBHZW5lcmF0ZXMgYW4gT3BlbiBHcmFwaCBjYXJkIGZvciBldmVyeSBkb2N1bWVudGF0aW9uIHBhZ2UsIHJldXNpbmcgdGhlIGNhcmRzIHdob3NlIGlucHV0cyBkaWQgbm90IGNoYW5nZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZvbnQgfSBmcm9tICdzYXRvcmknO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBta2RpcixcbiAgcmVhZGRpcixcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdub2RlOnBhdGgvcG9zaXgnO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VZYW1sIH0gZnJvbSAneWFtbCc7XG5cbmltcG9ydCB0eXBlIHsgT2dDYXJkQ29udGVudCB9IGZyb20gJy4vb2ctaW1hZ2UudHMnO1xuXG5pbXBvcnQgeyBnZXRPZ0ltYWdlUGFnZVNsdWcgfSBmcm9tICcuL29nLWltYWdlLXBhZ2UudHMnO1xuaW1wb3J0IHtcbiAgY29tcHV0ZU9nSGFzaCxcbiAgbG9hZEZvbnRzLFxuICBsb2FkTG9nb0RhdGFVcmksXG4gIHJlbmRlck9nSW1hZ2Vcbn0gZnJvbSAnLi9vZy1pbWFnZS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdlbmVyYXRlT2dJbWFnZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlT2dJbWFnZXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHRleHQgZXZlcnkgY2FyZCdzIGZvb3RlciBjYXJyaWVzLCBub3JtYWxseSB0aGUgcGFja2FnZSdzIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBicmFuZFRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRvY3VtZW50YXRpb24gY29udGVudCByb290LCBub3JtYWxseSBgPGRvY3M+L3NyYy9jb250ZW50L2RvY3NgLiBFdmVyeSBgLm1kYCAvIGAubWR4YCBwYWdlIHVuZGVyIGl0IHdpdGggYVxuICAgKiBgdGl0bGVgIGdldHMgYSBjYXJkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudERvY3NEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNWRyBsb2dvIGRyYXduIG9uIGV2ZXJ5IGNhcmQuIEEgbWlzc2luZyBmaWxlIHJlbmRlcnMgdGhlIGNhcmRzIHdpdGhvdXQgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZmF2aWNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvbGRlciBob2xkaW5nIHRoZSBmb250cyB0aGUgY2FyZHMgYXJlIHJlbmRlcmVkIHdpdGguXG4gICAqL1xuICByZWFkb25seSBmb250c0RpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHRoZSBjYXJkcyBhcmUgd3JpdHRlbiB0bywgbm9ybWFsbHkgYDxkb2NzPi9wdWJsaWMvb2dgLCBzZXJ2ZWQgYXQgYDxiYXNlPi9vZy88c2x1Zz4ucG5nYC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dERpcmVjdG9yeTogc3RyaW5nO1xufVxuXG50eXBlIENhY2hlTWFuaWZlc3QgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuXG5pbnRlcmZhY2UgR2VuZXJhdGVJbWFnZXNXaXRoUG9vbE9wdGlvbnMge1xuICByZWFkb25seSBicmFuZFRleHQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY2hhbmdlZFBhZ2VzOiBQYWdlRW50cnlbXTtcbiAgcmVhZG9ubHkgZm9udHM6IEZvbnRbXTtcbiAgcmVhZG9ubHkgbG9nb0RhdGFVcmk6IG51bGwgfCBzdHJpbmc7XG4gIHJlYWRvbmx5IG1hbmlmZXN0OiBDYWNoZU1hbmlmZXN0O1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBhZ2VFbnRyeSB7XG4gIGhhc2g6IHN0cmluZztcbiAgcGFyYW1zOiBPZ0NhcmRDb250ZW50O1xuICBzbHVnOiBzdHJpbmc7XG59XG5cbmNvbnN0IENPTkNVUlJFTkNZID0gMTA7XG5jb25zdCBQUk9HUkVTU19MT0dfSU5URVJWQUwgPSAxMDA7XG5jb25zdCBNQU5JRkVTVF9JTkRFTlQgPSAyO1xuXG4vLyBGcm9udG1hdHRlciBpcyBwYXJzZWQgaGVyZSByYXRoZXIgdGhhbiB3aXRoIGBncmF5LW1hdHRlcmAuIEl0cyBgbGliL2VuZ2luZXMuanNgIGJpbmRzIGpzLXlhbWwnc1xuLy8gYHNhZmVMb2FkYC9gc2FmZUR1bXBgIGF0IE1PRFVMRS1MT0FEIHRpbWUsIGFuZCBib3RoIHdlcmUgcmVtb3ZlZCBpbiBqcy15YW1sIHY0IOKAlCBzbyBtZXJlbHlcbi8vIElNUE9SVElORyBgZ3JheS1tYXR0ZXJgIHRocm93cyBgQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiB1bmRlZmluZWQgKHJlYWRpbmcgJ2JpbmQnKWAsIGJlZm9yZSBhblxuLy8gYGVuZ2luZXNgIG9wdGlvbiBjb3VsZCBvdmVycmlkZSB0aGUgZGVmYXVsdC4gT25seSB0aGUgZnJvbnRtYXR0ZXIgb2JqZWN0IGlzIG5lZWRlZCBoZXJlLlxuY29uc3QgRlJPTlRfTUFUVEVSX1JFR19FWFAgPSAvXi0tLVxccj9cXG4oPzxGcm9udE1hdHRlcj5bXFxzXFxTXSo/KVxccj9cXG4tLS0oPzpcXHI/XFxufCQpLztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIE9wZW4gR3JhcGggY2FyZHMuXG4gKlxuICogQSBjYXJkIGlzIHJlLXJlbmRlcmVkIG9ubHkgd2hlbiBpdHMgdGl0bGUsIGRlc2NyaXB0aW9uLCBzaWduYXR1cmUgb3IgYmFkZ2UgY2hhbmdlZCwgdHJhY2tlZCBieSBhIGhhc2ggbWFuaWZlc3RcbiAqIGJlc2lkZSB0aGUgY2FyZHMuIE1pc3NpbmcgY29udGVudCBvciBmb250cyBza2lwIHRoZSBzdGVwIHdpdGggYSB3YXJuaW5nIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhlIGJ1aWxkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZU9nSW1hZ2VzKG9wdGlvbnM6IEdlbmVyYXRlT2dJbWFnZXNQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBicmFuZFRleHQsIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBmYXZpY29uUGF0aCwgZm9udHNEaXJlY3RvcnksIG91dHB1dERpcmVjdG9yeSB9ID0gb3B0aW9ucztcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gYCR7b3V0cHV0RGlyZWN0b3J5fS8uY2FjaGUtbWFuaWZlc3QuanNvbmA7XG5cbiAgaWYgKCFleGlzdHNTeW5jKGNvbnRlbnREb2NzRGlyZWN0b3J5KSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBjb250ZW50IGRpciBub3QgZm91bmQgKCR7Y29udGVudERvY3NEaXJlY3Rvcnl9KTsgc2tpcHBpbmcuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gTG9hZCBmb250cyBmaXJzdCDigJQgc2F0b3JpIGNhbm5vdCByZW5kZXIgd2l0aG91dCB0aGVtLlxuICBjb25zdCBmb250cyA9IGF3YWl0IGxvYWRGb250cyhmb250c0RpcmVjdG9yeSk7XG4gIGlmICghZm9udHMpIHtcbiAgICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogbm8gZm9udHMgYXZhaWxhYmxlIGluICR7Zm9udHNEaXJlY3Rvcnl9OyBza2lwcGluZyBPRyBpbWFnZSBnZW5lcmF0aW9uLmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhZ2VzOiBQYWdlRW50cnlbXSA9IFtdO1xuICBhd2FpdCB3YWxrRGlyZWN0b3J5KGNvbnRlbnREb2NzRGlyZWN0b3J5LCBjb250ZW50RG9jc0RpcmVjdG9yeSwgcGFnZXMpO1xuICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogZm91bmQgJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gcGFnZXNgKTtcblxuICBjb25zdCBtYW5pZmVzdCA9IGF3YWl0IGxvYWRDYWNoZU1hbmlmZXN0KG1hbmlmZXN0UGF0aCk7XG4gIGNvbnN0IGNoYW5nZWRQYWdlcyA9IHBhZ2VzLmZpbHRlcigocGFnZSkgPT4gbWFuaWZlc3RbcGFnZS5zbHVnXSAhPT0gcGFnZS5oYXNoKTtcbiAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6ICR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBjaGFuZ2VkIC8gJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gdG90YWxgKTtcblxuICBpZiAoY2hhbmdlZFBhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnNvbGUud2FybignQWxsIE9HIGltYWdlcyB1cCB0byBkYXRlLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFJhc3Rlcml6ZSB0aGUgc2l0ZSBsb2dvIG9uY2UgKHNoYXJlZCBhY3Jvc3MgZXZlcnkgY2FyZCk7IGRlZ3JhZGUgZ3JhY2VmdWxseSBpZiBhYnNlbnQuXG4gIGNvbnN0IGxvZ29EYXRhVXJpID0gYXdhaXQgbG9hZExvZ29EYXRhVXJpKGZhdmljb25QYXRoKTtcbiAgaWYgKCFsb2dvRGF0YVVyaSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBmYXZpY29uIG5vdCBmb3VuZCAoJHtmYXZpY29uUGF0aH0pOyByZW5kZXJpbmcgY2FyZHMgd2l0aG91dCBhIGxvZ28uYCk7XG4gIH1cblxuICBhd2FpdCBnZW5lcmF0ZUltYWdlc1dpdGhQb29sKHsgYnJhbmRUZXh0LCBjaGFuZ2VkUGFnZXMsIGZvbnRzLCBsb2dvRGF0YVVyaSwgbWFuaWZlc3QsIG91dHB1dERpcmVjdG9yeSB9KTtcblxuICBhd2FpdCBta2RpcihkaXJuYW1lKG1hbmlmZXN0UGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBhd2FpdCB3cml0ZUZpbGUobWFuaWZlc3RQYXRoLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgTUFOSUZFU1RfSU5ERU5UKSk7XG4gIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBkb25lLiBHZW5lcmF0ZWQgJHtTdHJpbmcoY2hhbmdlZFBhZ2VzLmxlbmd0aCl9IGltYWdlcy5gKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVJbWFnZXNXaXRoUG9vbChvcHRpb25zOiBHZW5lcmF0ZUltYWdlc1dpdGhQb29sT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGJyYW5kVGV4dCwgY2hhbmdlZFBhZ2VzLCBmb250cywgbG9nb0RhdGFVcmksIG1hbmlmZXN0LCBvdXRwdXREaXJlY3RvcnkgfSA9IG9wdGlvbnM7XG4gIGxldCBjb21wbGV0ZWQgPSAwO1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAobGV0IHBhZ2UgPSBjaGFuZ2VkUGFnZXNbaW5kZXgrK107IHBhZ2UgIT09IHVuZGVmaW5lZDsgcGFnZSA9IGNoYW5nZWRQYWdlc1tpbmRleCsrXSkge1xuICAgICAgY29uc3Qgb3V0cHV0UGF0aCA9IGAke291dHB1dERpcmVjdG9yeX0vJHtwYWdlLnNsdWd9LnBuZ2A7XG4gICAgICBhd2FpdCBta2RpcihkaXJuYW1lKG91dHB1dFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGF3YWl0IHdyaXRlRmlsZShvdXRwdXRQYXRoLCBhd2FpdCByZW5kZXJPZ0ltYWdlKHBhZ2UucGFyYW1zLCB7IGJyYW5kVGV4dCwgZm9udHMsIGxvZ29EYXRhVXJpIH0pKTtcbiAgICAgIG1hbmlmZXN0W3BhZ2Uuc2x1Z10gPSBwYWdlLmhhc2g7XG4gICAgICBjb21wbGV0ZWQrKztcbiAgICAgIGlmIChjb21wbGV0ZWQgJSBQUk9HUkVTU19MT0dfSU5URVJWQUwgPT09IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKGAgICR7U3RyaW5nKGNvbXBsZXRlZCl9LyR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBpbWFnZXMgZ2VuZXJhdGVkLi4uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh7IGxlbmd0aDogQ09OQ1VSUkVOQ1kgfSwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHByb2Nlc3NOZXh0KCk7XG4gIH0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhY2hlTWFuaWZlc3QobWFuaWZlc3RQYXRoOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTWFuaWZlc3Q+IHtcbiAgcmV0dXJuIGV4aXN0c1N5bmMobWFuaWZlc3RQYXRoKSA/IChKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKG1hbmlmZXN0UGF0aCwgJ3V0Zi04JykpIGFzIENhY2hlTWFuaWZlc3QpIDoge307XG59XG5cbmZ1bmN0aW9uIHBhcnNlRnJvbnRNYXR0ZXIoY29udGVudDogc3RyaW5nKTogUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBjb25zdCBmcm9udE1hdHRlciA9IEZST05UX01BVFRFUl9SRUdfRVhQLmV4ZWMoY29udGVudCk/Lmdyb3Vwcz8uWydGcm9udE1hdHRlciddO1xuICByZXR1cm4gZnJvbnRNYXR0ZXIgPT09IHVuZGVmaW5lZCA/IHt9IDogKHBhcnNlWWFtbChmcm9udE1hdHRlcikgYXMgbnVsbCB8IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KSA/PyB7fTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyc2VQYWdlKGZpbGVQYXRoOiBzdHJpbmcsIGNvbnRlbnREb2NzRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPG51bGwgfCBQYWdlRW50cnk+IHtcbiAgY29uc3QgZGF0YSA9IHBhcnNlRnJvbnRNYXR0ZXIoYXdhaXQgcmVhZEZpbGUoZmlsZVBhdGgsICd1dGYtOCcpKTtcblxuICBjb25zdCB0aXRsZSA9IHRvT3B0aW9uYWxTdHJpbmcoZGF0YVsndGl0bGUnXSk7XG4gIGlmICghdGl0bGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGJhZGdlID0gZGF0YVsnc2lkZWJhciddIGFzIFBhcnRpYWw8UmVjb3JkPHN0cmluZywgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+PiB8IHVuZGVmaW5lZDtcbiAgY29uc3QgcGFyYW1zOiBPZ0NhcmRDb250ZW50ID0ge1xuICAgIGJhZGdlOiB0b09wdGlvbmFsU3RyaW5nKGJhZGdlPy5bJ2JhZGdlJ10/LlsndGV4dCddKSxcbiAgICBkZXNjcmlwdGlvbjogdG9PcHRpb25hbFN0cmluZyhkYXRhWydkZXNjcmlwdGlvbiddKSA/PyAnJyxcbiAgICBzaWduYXR1cmU6IHRvT3B0aW9uYWxTdHJpbmcoZGF0YVsnc2lnbmF0dXJlJ10pID8/ICcnLFxuICAgIHRpdGxlXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBjb21wdXRlT2dIYXNoKHBhcmFtcyksXG4gICAgcGFyYW1zLFxuICAgIHNsdWc6IGdldE9nSW1hZ2VQYWdlU2x1ZyhkYXRhLCBmaWxlUGF0aCwgY29udGVudERvY3NEaXJlY3RvcnkpXG4gIH07XG59XG5cbmZ1bmN0aW9uIHRvT3B0aW9uYWxTdHJpbmcodmFsdWU6IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWxrRGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nLCBjb250ZW50RG9jc0RpcmVjdG9yeTogc3RyaW5nLCBwYWdlczogUGFnZUVudHJ5W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZW50cmllcyA9IGF3YWl0IHJlYWRkaXIoZGlyZWN0b3J5LCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYCR7ZGlyZWN0b3J5fS8ke2VudHJ5Lm5hbWV9YDtcbiAgICBpZiAoZW50cnkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgYXdhaXQgd2Fsa0RpcmVjdG9yeShmdWxsUGF0aCwgY29udGVudERvY3NEaXJlY3RvcnksIHBhZ2VzKTtcbiAgICB9IGVsc2UgaWYgKGVudHJ5Lm5hbWUuZW5kc1dpdGgoJy5tZCcpIHx8IGVudHJ5Lm5hbWUuZW5kc1dpdGgoJy5tZHgnKSkge1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHBhcnNlUGFnZShmdWxsUGF0aCwgY29udGVudERvY3NEaXJlY3RvcnkpO1xuICAgICAgaWYgKHBhZ2UpIHtcbiAgICAgICAgcGFnZXMucHVzaChwYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSxTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsU0FBUyxpQkFBaUI7QUFJbkMsU0FBUywwQkFBMEI7QUFDbkM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQWtEUCxNQUFNLGNBQWM7QUFDcEIsTUFBTSx3QkFBd0I7QUFDOUIsTUFBTSxrQkFBa0I7QUFNeEIsTUFBTSx1QkFBdUI7QUFVN0IsZUFBc0IsaUJBQWlCLFNBQWdEO0FBQ3JGLFFBQU0sRUFBRSxXQUFXLHNCQUFzQixhQUFhLGdCQUFnQixnQkFBZ0IsSUFBSTtBQUMxRixRQUFNLGVBQWUsR0FBRyxlQUFlO0FBRXZDLE1BQUksQ0FBQyxXQUFXLG9CQUFvQixHQUFHO0FBQ3JDLFlBQVEsS0FBSyxxQ0FBcUMsb0JBQW9CLGNBQWM7QUFDcEY7QUFBQSxFQUNGO0FBR0EsUUFBTSxRQUFRLE1BQU0sVUFBVSxjQUFjO0FBQzVDLE1BQUksQ0FBQyxPQUFPO0FBQ1YsWUFBUSxL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
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvb2ctaW1hZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBHZW5lcmF0ZXMgYW4gT3BlbiBHcmFwaCBjYXJkIGZvciBldmVyeSBkb2N1bWVudGF0aW9uIHBhZ2UsIHJldXNpbmcgdGhlIGNhcmRzIHdob3NlIGlucHV0cyBkaWQgbm90IGNoYW5nZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZvbnQgfSBmcm9tICdzYXRvcmknO1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgbWtkaXIsXG4gIHJlYWRkaXIsXG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAnbm9kZTpwYXRoL3Bvc2l4JztcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlWWFtbCB9IGZyb20gJ3lhbWwnO1xuXG5pbXBvcnQgdHlwZSB7IE9nQ2FyZENvbnRlbnQgfSBmcm9tICcuL29nLWltYWdlLnRzJztcblxuaW1wb3J0IHsgZ2V0T2dJbWFnZVBhZ2VTbHVnIH0gZnJvbSAnLi9vZy1pbWFnZS1wYWdlLnRzJztcbmltcG9ydCB7XG4gIGNvbXB1dGVPZ0hhc2gsXG4gIGxvYWRGb250cyxcbiAgbG9hZExvZ29EYXRhVXJpLFxuICByZW5kZXJPZ0ltYWdlXG59IGZyb20gJy4vb2ctaW1hZ2UudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBnZW5lcmF0ZU9nSW1hZ2VzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZU9nSW1hZ2VzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB0ZXh0IGV2ZXJ5IGNhcmQncyBmb290ZXIgY2Fycmllcywgbm9ybWFsbHkgdGhlIHBhY2thZ2UncyBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmRUZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudGF0aW9uIGNvbnRlbnQgcm9vdCwgbm9ybWFsbHkgYDxkb2NzPi9zcmMvY29udGVudC9kb2NzYC4gRXZlcnkgYC5tZGAgLyBgLm1keGAgcGFnZSB1bmRlciBpdCB3aXRoIGFcbiAgICogYHRpdGxlYCBnZXRzIGEgY2FyZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnREb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTVkcgbG9nbyBkcmF3biBvbiBldmVyeSBjYXJkLiBBIG1pc3NpbmcgZmlsZSByZW5kZXJzIHRoZSBjYXJkcyB3aXRob3V0IG9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGZhdmljb25QYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgaG9sZGluZyB0aGUgZm9udHMgdGhlIGNhcmRzIGFyZSByZW5kZXJlZCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9udHNEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvbGRlciB0aGUgY2FyZHMgYXJlIHdyaXR0ZW4gdG8sIG5vcm1hbGx5IGA8ZG9jcz4vcHVibGljL29nYCwgc2VydmVkIGF0IGA8YmFzZT4vb2cvPHNsdWc+LnBuZ2AuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENhY2hlTWFuaWZlc3Qge1xuICAvLyBFYWNoIHBhZ2UncyBjb250ZW50IGhhc2gsIGJ5IHNsdWcuXG4gIHJlYWRvbmx5IGNhcmRzOiBDYXJkSGFzaGVzO1xuICAvLyBUaGUgaGFzaCBvZiB0aGUgbG9nbyBldmVyeSBjYXJkIGNhcnJpZXMuIFRoZSBwYWdlIGhhc2hlcyBjYW5ub3Qgc2VlIGl0LCBzbyBhIGRpZmZlcmVudCBsb2dvIGRyb3BzIHRoZW0gYWxsLlxuICByZWFkb25seSBsb2dvSGFzaDogc3RyaW5nO1xufVxuXG50eXBlIENhcmRIYXNoZXMgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuXG5pbnRlcmZhY2UgR2VuZXJhdGVJbWFnZXNXaXRoUG9vbE9wdGlvbnMge1xuICByZWFkb25seSBicmFuZFRleHQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY2FyZHM6IENhcmRIYXNoZXM7XG4gIHJlYWRvbmx5IGNoYW5nZWRQYWdlczogUGFnZUVudHJ5W107XG4gIHJlYWRvbmx5IGZvbnRzOiBGb250W107XG4gIHJlYWRvbmx5IGxvZ29EYXRhVXJpOiBudWxsIHwgc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBhZ2VFbnRyeSB7XG4gIGhhc2g6IHN0cmluZztcbiAgcGFyYW1zOiBPZ0NhcmRDb250ZW50O1xuICBzbHVnOiBzdHJpbmc7XG59XG5cbmNvbnN0IENPTkNVUlJFTkNZID0gMTA7XG5jb25zdCBQUk9HUkVTU19MT0dfSU5URVJWQUwgPSAxMDA7XG5jb25zdCBNQU5JRkVTVF9JTkRFTlQgPSAyO1xuXG4vLyBGcm9udG1hdHRlciBpcyBwYXJzZWQgaGVyZSByYXRoZXIgdGhhbiB3aXRoIGBncmF5LW1hdHRlcmAuIEl0cyBgbGliL2VuZ2luZXMuanNgIGJpbmRzIGpzLXlhbWwnc1xuLy8gYHNhZmVMb2FkYC9gc2FmZUR1bXBgIGF0IE1PRFVMRS1MT0FEIHRpbWUsIGFuZCBib3RoIHdlcmUgcmVtb3ZlZCBpbiBqcy15YW1sIHY0IOKAlCBzbyBtZXJlbHlcbi8vIElNUE9SVElORyBgZ3JheS1tYXR0ZXJgIHRocm93cyBgQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiB1bmRlZmluZWQgKHJlYWRpbmcgJ2JpbmQnKWAsIGJlZm9yZSBhblxuLy8gYGVuZ2luZXNgIG9wdGlvbiBjb3VsZCBvdmVycmlkZSB0aGUgZGVmYXVsdC4gT25seSB0aGUgZnJvbnRtYXR0ZXIgb2JqZWN0IGlzIG5lZWRlZCBoZXJlLlxuY29uc3QgRlJPTlRfTUFUVEVSX1JFR19FWFAgPSAvXi0tLVxccj9cXG4oPzxGcm9udE1hdHRlcj5bXFxzXFxTXSo/KVxccj9cXG4tLS0oPzpcXHI/XFxufCQpLztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIE9wZW4gR3JhcGggY2FyZHMuXG4gKlxuICogQSBjYXJkIGlzIHJlLXJlbmRlcmVkIG9ubHkgd2hlbiBpdHMgdGl0bGUsIGRlc2NyaXB0aW9uLCBzaWduYXR1cmUgb3IgYmFkZ2UgY2hhbmdlZCwgdHJhY2tlZCBieSBhIGhhc2ggbWFuaWZlc3RcbiAqIGJlc2lkZSB0aGUgY2FyZHMuIEEgZGlmZmVyZW50IGxvZ28gZmlsZSByZS1yZW5kZXJzIGV2ZXJ5IGNhcmQuIE1pc3NpbmcgY29udGVudCBvciBmb250cyBza2lwIHRoZSBzdGVwIHdpdGggYSB3YXJuaW5nIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhlIGJ1aWxkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZU9nSW1hZ2VzKG9wdGlvbnM6IEdlbmVyYXRlT2dJbWFnZXNQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBicmFuZFRleHQsIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBmYXZpY29uUGF0aCwgZm9udHNEaXJlY3RvcnksIG91dHB1dERpcmVjdG9yeSB9ID0gb3B0aW9ucztcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gYCR7b3V0cHV0RGlyZWN0b3J5fS8uY2FjaGUtbWFuaWZlc3QuanNvbmA7XG5cbiAgaWYgKCFleGlzdHNTeW5jKGNvbnRlbnREb2NzRGlyZWN0b3J5KSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBjb250ZW50IGRpciBub3QgZm91bmQgKCR7Y29udGVudERvY3NEaXJlY3Rvcnl9KTsgc2tpcHBpbmcuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gTG9hZCBmb250cyBmaXJzdCDigJQgc2F0b3JpIGNhbm5vdCByZW5kZXIgd2l0aG91dCB0aGVtLlxuICBjb25zdCBmb250cyA9IGF3YWl0IGxvYWRGb250cyhmb250c0RpcmVjdG9yeSk7XG4gIGlmICghZm9udHMpIHtcbiAgICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogbm8gZm9udHMgYXZhaWxhYmxlIGluICR7Zm9udHNEaXJlY3Rvcnl9OyBza2lwcGluZyBPRyBpbWFnZSBnZW5lcmF0aW9uLmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhZ2VzOiBQYWdlRW50cnlbXSA9IFtdO1xuICBhd2FpdCB3YWxrRGlyZWN0b3J5KGNvbnRlbnREb2NzRGlyZWN0b3J5LCBjb250ZW50RG9jc0RpcmVjdG9yeSwgcGFnZXMpO1xuICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogZm91bmQgJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gcGFnZXNgKTtcblxuICBjb25zdCBsb2dvSGFzaCA9IGF3YWl0IGNvbXB1dGVMb2dvSGFzaChmYXZpY29uUGF0aCk7XG4gIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgbG9hZENhY2hlTWFuaWZlc3QobWFuaWZlc3RQYXRoKTtcbiAgY29uc3QgY2FyZHMgPSBtYW5pZmVzdD8ubG9nb0hhc2ggPT09IGxvZ29IYXNoID8geyAuLi5tYW5pZmVzdC5jYXJkcyB9IDoge307XG4gIGNvbnN0IGNoYW5nZWRQYWdlcyA9IHBhZ2VzLmZpbHRlcigocGFnZSkgPT4gY2FyZHNbcGFnZS5zbHVnXSAhPT0gcGFnZS5oYXNoKTtcbiAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6ICR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBjaGFuZ2VkIC8gJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gdG90YWxgKTtcblxuICBpZiAoY2hhbmdlZFBhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnNvbGUud2FybignQWxsIE9HIGltYWdlcyB1cCB0byBkYXRlLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFJhc3Rlcml6ZSB0aGUgc2l0ZSBsb2dvIG9uY2UgKHNoYXJlZCBhY3Jvc3MgZXZlcnkgY2FyZCk7IGRlZ3JhZGUgZ3JhY2VmdWxseSBpZiBhYnNlbnQuXG4gIGNvbnN0IGxvZ29EYXRhVXJpID0gYXdhaXQgbG9hZExvZ29EYXRhVXJpKGZhdmljb25QYXRoKTtcbiAgaWYgKCFsb2dvRGF0YVVyaSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBmYXZpY29uIG5vdCBmb3VuZCAoJHtmYXZpY29uUGF0aH0pOyByZW5kZXJpbmcgY2FyZHMgd2l0aG91dCBhIGxvZ28uYCk7XG4gIH1cblxuICBhd2FpdCBnZW5lcmF0ZUltYWdlc1dpdGhQb29sKHsgYnJhbmRUZXh0LCBjYXJkcywgY2hhbmdlZFBhZ2VzLCBmb250cywgbG9nb0RhdGFVcmksIG91dHB1dERpcmVjdG9yeSB9KTtcblxuICBjb25zdCBuZXdNYW5pZmVzdDogQ2FjaGVNYW5pZmVzdCA9IHsgY2FyZHMsIGxvZ29IYXNoIH07XG4gIGF3YWl0IG1rZGlyKGRpcm5hbWUobWFuaWZlc3RQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGF3YWl0IHdyaXRlRmlsZShtYW5pZmVzdFBhdGgsIEpTT04uc3RyaW5naWZ5KG5ld01hbmlmZXN0LCBudWxsLCBNQU5JRkVTVF9JTkRFTlQpKTtcbiAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6IGRvbmUuIEdlbmVyYXRlZCAke1N0cmluZyhjaGFuZ2VkUGFnZXMubGVuZ3RoKX0gaW1hZ2VzLmApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb21wdXRlTG9nb0hhc2goZmF2aWNvblBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBleGlzdHNTeW5jKGZhdmljb25QYXRoKSA/IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShhd2FpdCByZWFkRmlsZShmYXZpY29uUGF0aCkpLmRpZ2VzdCgnaGV4JykgOiAnJztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVJbWFnZXNXaXRoUG9vbChvcHRpb25zOiBHZW5lcmF0ZUltYWdlc1dpdGhQb29sT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGJyYW5kVGV4dCwgY2FyZHMsIGNoYW5nZWRQYWdlcywgZm9udHMsIGxvZ29EYXRhVXJpLCBvdXRwdXREaXJlY3RvcnkgfSA9IG9wdGlvbnM7XG4gIGxldCBjb21wbGV0ZWQgPSAwO1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAobGV0IHBhZ2UgPSBjaGFuZ2VkUGFnZXNbaW5kZXgrK107IHBhZ2UgIT09IHVuZGVmaW5lZDsgcGFnZSA9IGNoYW5nZWRQYWdlc1tpbmRleCsrXSkge1xuICAgICAgY29uc3Qgb3V0cHV0UGF0aCA9IGAke291dHB1dERpcmVjdG9yeX0vJHtwYWdlLnNsdWd9LnBuZ2A7XG4gICAgICBhd2FpdCBta2RpcihkaXJuYW1lKG91dHB1dFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGF3YWl0IHdyaXRlRmlsZShvdXRwdXRQYXRoLCBhd2FpdCByZW5kZXJPZ0ltYWdlKHBhZ2UucGFyYW1zLCB7IGJyYW5kVGV4dCwgZm9udHMsIGxvZ29EYXRhVXJpIH0pKTtcbiAgICAgIGNhcmRzW3BhZ2Uuc2x1Z10gPSBwYWdlLmhhc2g7XG4gICAgICBjb21wbGV0ZWQrKztcbiAgICAgIGlmIChjb21wbGV0ZWQgJSBQUk9HUkVTU19MT0dfSU5URVJWQUwgPT09IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKGAgICR7U3RyaW5nKGNvbXBsZXRlZCl9LyR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBpbWFnZXMgZ2VuZXJhdGVkLi4uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh7IGxlbmd0aDogQ09OQ1VSUkVOQ1kgfSwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHByb2Nlc3NOZXh0KCk7XG4gIH0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhY2hlTWFuaWZlc3QobWFuaWZlc3RQYXRoOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTWFuaWZlc3QgfCBudWxsPiB7XG4gIGlmICghZXhpc3RzU3luYyhtYW5pZmVzdFBhdGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQSBtYW5pZmVzdCB3cml0dGVuIGJlZm9yZSB0aGUgbG9nbyB3YXMgdHJhY2tlZCBpcyBhIGZsYXQgc2x1Zy10by1oYXNoIG1hcDogaXQgaGFzIG5vIGBsb2dvSGFzaGAsIHNvIGV2ZXJ5IGNhcmRcbiAgLy8gcmUtcmVuZGVycyBvbmNlLlxuICBjb25zdCBtYW5pZmVzdCA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUobWFuaWZlc3RQYXRoLCAndXRmLTgnKSkgYXMgUGFydGlhbDxDYWNoZU1hbmlmZXN0PjtcbiAgcmV0dXJuIHR5cGVvZiBtYW5pZmVzdC5sb2dvSGFzaCA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIG1hbmlmZXN0LmNhcmRzID09PSAnb2JqZWN0J1xuICAgID8geyBjYXJkczogbWFuaWZlc3QuY2FyZHMsIGxvZ29IYXNoOiBtYW5pZmVzdC5sb2dvSGFzaCB9XG4gICAgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBwYXJzZUZyb250TWF0dGVyKGNvbnRlbnQ6IHN0cmluZyk6IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgZnJvbnRNYXR0ZXIgPSBGUk9OVF9NQVRURVJfUkVHX0VYUC5leGVjKGNvbnRlbnQpPy5ncm91cHM/LlsnRnJvbnRNYXR0ZXInXTtcbiAgcmV0dXJuIGZyb250TWF0dGVyID09PSB1bmRlZmluZWQgPyB7fSA6IChwYXJzZVlhbWwoZnJvbnRNYXR0ZXIpIGFzIG51bGwgfCBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PikgPz8ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlUGFnZShmaWxlUGF0aDogc3RyaW5nLCBjb250ZW50RG9jc0RpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxudWxsIHwgUGFnZUVudHJ5PiB7XG4gIGNvbnN0IGRhdGEgPSBwYXJzZUZyb250TWF0dGVyKGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCAndXRmLTgnKSk7XG5cbiAgY29uc3QgdGl0bGUgPSB0b09wdGlvbmFsU3RyaW5nKGRhdGFbJ3RpdGxlJ10pO1xuICBpZiAoIXRpdGxlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBiYWRnZSA9IGRhdGFbJ3NpZGViYXInXSBhcyBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+Pj4gfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHBhcmFtczogT2dDYXJkQ29udGVudCA9IHtcbiAgICBiYWRnZTogdG9PcHRpb25hbFN0cmluZyhiYWRnZT8uWydiYWRnZSddPy5bJ3RleHQnXSksXG4gICAgZGVzY3JpcHRpb246IHRvT3B0aW9uYWxTdHJpbmcoZGF0YVsnZGVzY3JpcHRpb24nXSkgPz8gJycsXG4gICAgc2lnbmF0dXJlOiB0b09wdGlvbmFsU3RyaW5nKGRhdGFbJ3NpZ25hdHVyZSddKSA/PyAnJyxcbiAgICB0aXRsZVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgaGFzaDogY29tcHV0ZU9nSGFzaChwYXJhbXMpLFxuICAgIHBhcmFtcyxcbiAgICBzbHVnOiBnZXRPZ0ltYWdlUGFnZVNsdWcoZGF0YSwgZmlsZVBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5KVxuICB9O1xufVxuXG5mdW5jdGlvbiB0b09wdGlvbmFsU3RyaW5nKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2Fsa0RpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgY29udGVudERvY3NEaXJlY3Rvcnk6IHN0cmluZywgcGFnZXM6IFBhZ2VFbnRyeVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVudHJpZXMgPSBhd2FpdCByZWFkZGlyKGRpcmVjdG9yeSwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGAke2RpcmVjdG9yeX0vJHtlbnRyeS5uYW1lfWA7XG4gICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGF3YWl0IHdhbGtEaXJlY3RvcnkoZnVsbFBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBwYWdlcyk7XG4gICAgfSBlbHNlIGlmIChlbnRyeS5uYW1lLmVuZHNXaXRoKCcubWQnKSB8fCBlbnRyeS5uYW1lLmVuZHNXaXRoKCcubWR4JykpIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBwYXJzZVBhZ2UoZnVsbFBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5KTtcbiAgICAgIGlmIChwYWdlKSB7XG4gICAgICAgIHBhZ2VzLnB1c2gocGFnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxrQkFBa0I7QUFDM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsZUFBZTtBQUN4QixTQUFTLFNBQVMsaUJBQWlCO0FBSW5DLFNBQVMsMEJBQTBCO0FBQ25DO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUF5RFAsTUFBTSxjQUFjO0FBQ3BCLE1BQU0sd0JBQXdCO0FBQzlCLE1BQU0sa0JBQWtCO0FBTXhCLE1BQU0sdUJBQXVCO0FBVTdCLGVBQXNCLGlCQUFpQixTQUFnRDtBQUNyRixRQUFNLEVBQUUsV0FBVyxzQkFBc0IsYUFBYSxnQkFBZ0IsZ0JBQWdCLElBQUk7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
|
package/package.json
CHANGED