@nlabs/lex 1.50.1 → 1.51.0
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/lib/LexConfig.js +6 -6
- package/package.json +43 -47
package/lib/LexConfig.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
3
|
-
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
-
*/ function _define_property(obj, key, value) {
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
5
2
|
if (key in obj) {
|
|
6
3
|
Object.defineProperty(obj, key, {
|
|
7
4
|
value: value,
|
|
@@ -14,7 +11,10 @@
|
|
|
14
11
|
}
|
|
15
12
|
return obj;
|
|
16
13
|
}
|
|
17
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
16
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
17
|
+
*/ import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
18
18
|
import { dirname, extname as pathExtname, resolve as pathResolve } from 'path';
|
|
19
19
|
import { URL } from 'url';
|
|
20
20
|
import { getDirName, getLexPackageJsonPath, relativeFilePath } from './utils/file.js';
|
|
@@ -306,4 +306,4 @@ _define_property(LexConfig, "config", {
|
|
|
306
306
|
...defaultConfigValues
|
|
307
307
|
});
|
|
308
308
|
|
|
309
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9MZXhDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhpc3RzU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge2Rpcm5hbWUsIGV4dG5hbWUgYXMgcGF0aEV4dG5hbWUsIHJlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbmltcG9ydCB7Z2V0RGlyTmFtZSwgZ2V0TGV4UGFja2FnZUpzb25QYXRoLCByZWxhdGl2ZUZpbGVQYXRofSBmcm9tICcuL3V0aWxzL2ZpbGUuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4vdXRpbHMvbG9nLmpzJztcblxuaW1wb3J0IHR5cGUge0xpbnRlcn0gZnJvbSAnZXNsaW50JztcblxuY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSmVzdENvbmZpZyB7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIHJvb3RzPzogc3RyaW5nW107XG4gIHRlc3RFbnZpcm9ubWVudD86IHN0cmluZztcbiAgdHJhbnNmb3JtPzogUmVjb3JkPHN0cmluZywgW3N0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj5dPjtcbiAgdHJhbnNmb3JtSWdub3JlUGF0dGVybnM/OiBzdHJpbmdbXTtcbiAgbW9kdWxlTmFtZU1hcHBlcj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGV4dGVuc2lvbnNUb1RyZWF0QXNFc20/OiBzdHJpbmdbXTtcbiAgcHJlc2V0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlYnBhY2tDb25maWcge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICBlbnRyeT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBvdXRwdXQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbW9kdWxlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBsdWdpbnM/OiB1bmtub3duW107XG4gIHN0YXRpY1BhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlDb25maWcge1xuICBwcm92aWRlcj86ICdjdXJzb3InIHwgJ2NvcGlsb3QnIHwgJ29wZW5haScgfCAnYW50aHJvcGljJyB8ICdub25lJztcbiAgYXBpS2V5Pzogc3RyaW5nO1xuICBtb2RlbD86IHN0cmluZztcbiAgbWF4VG9rZW5zPzogbnVtYmVyO1xuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFU0xpbnRDb25maWcge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICBleHRlbmRzPzogc3RyaW5nW107XG4gIHJ1bGVzPzogTGludGVyLlJ1bGVzUmVjb3JkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNXQ0NvbmZpZyB7XG4gIGpzYz86IHtcbiAgICBwYXJzZXI/OiB7XG4gICAgICBzeW50YXg/OiAndHlwZXNjcmlwdCcgfCAnZWNtYXNjcmlwdCc7XG4gICAgICB0c3g/OiBib29sZWFuO1xuICAgICAgZGVjb3JhdG9ycz86IGJvb2xlYW47XG4gICAgICBkeW5hbWljSW1wb3J0PzogYm9vbGVhbjtcbiAgICB9O1xuICAgIHRhcmdldD86ICdlczMnIHwgJ2VzNScgfCAnZXMyMDE1JyB8ICdlczIwMTYnIHwgJ2VzMjAxNycgfCAnZXMyMDE4JyB8ICdlczIwMTknIHwgJ2VzMjAyMCcgfCAnZXMyMDIxJyB8ICdlczIwMjInIHwgJ2VzMjAyMyc7XG4gICAgdHJhbnNmb3JtPzoge1xuICAgICAgcmVhY3Q/OiB7XG4gICAgICAgIHJ1bnRpbWU/OiAnYXV0b21hdGljJyB8ICdjbGFzc2ljJztcbiAgICAgICAgcHJhZ21hPzogc3RyaW5nO1xuICAgICAgICBwcmFnbWFGcmFnPzogc3RyaW5nO1xuICAgICAgICB0aHJvd0lmTmFtZXNwYWNlPzogYm9vbGVhbjtcbiAgICAgICAgZGV2ZWxvcG1lbnQ/OiBib29sZWFuO1xuICAgICAgICB1c2VCdWlsdGlucz86IGJvb2xlYW47XG4gICAgICAgIHJlZnJlc2g/OiBib29sZWFuO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGV4dGVybmFsSGVscGVycz86IGJvb2xlYW47XG4gICAga2VlcENsYXNzTmFtZXM/OiBib29sZWFuO1xuICAgIGxvb3NlPzogYm9vbGVhbjtcbiAgICBtaW5pZnk/OiB7XG4gICAgICBjb21wcmVzcz86IGJvb2xlYW47XG4gICAgICBtYW5nbGU/OiBib29sZWFuO1xuICAgIH07XG4gIH07XG4gIG1vZHVsZT86IHtcbiAgICB0eXBlPzogJ2VzNicgfCAnY29tbW9uanMnIHwgJ2FtZCcgfCAndW1kJyB8ICdzeXN0ZW1qcyc7XG4gICAgc3RyaWN0PzogYm9vbGVhbjtcbiAgICBzdHJpY3RNb2RlPzogYm9vbGVhbjtcbiAgICBsYXp5PzogYm9vbGVhbjtcbiAgICBub0ludGVyb3A/OiBib29sZWFuO1xuICB9O1xuICBtaW5pZnk/OiBib29sZWFuO1xuICBzb3VyY2VNYXBzPzogYm9vbGVhbiB8ICdpbmxpbmUnO1xuICBpbmxpbmVTb3VyY2VzQ29udGVudD86IGJvb2xlYW47XG4gIGlzTW9kdWxlPzogYm9vbGVhbjtcbiAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIGNvbmZpZ0ZpbGU/OiBzdHJpbmc7XG4gIHN3Y3JjPzogYm9vbGVhbjtcbiAgZW52Pzoge1xuICAgIHRhcmdldHM/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgbW9kZT86ICd1c2FnZScgfCAnZW50cnknO1xuICAgIGNvcmVKcz86IHN0cmluZztcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICBkeW5hbWljSW1wb3J0PzogYm9vbGVhbjtcbiAgICBsb29zZT86IGJvb2xlYW47XG4gICAgYnVnZml4ZXM/OiBib29sZWFuO1xuICAgIGluY2x1ZGU/OiBzdHJpbmdbXTtcbiAgICBleGNsdWRlPzogc3RyaW5nW107XG4gICAgZm9yY2VBbGxUcmFuc2Zvcm1zPzogYm9vbGVhbjtcbiAgICBtb2R1bGVzPzogJ2FtZCcgfCAndW1kJyB8ICdzeXN0ZW1qcycgfCAnYXV0bycgfCBmYWxzZTtcbiAgICBzaGlwcGVkUHJvcG9zYWxzPzogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZXhDb25maWdUeXBlIHtcbiAgYWk/OiBBSUNvbmZpZztcbiAgY29uZmlnRmlsZXM/OiBzdHJpbmdbXTtcbiAgY29weUZpbGVzPzogc3RyaW5nW107XG4gIGVudHJ5SFRNTD86IHN0cmluZztcbiAgZW50cnlKcz86IHN0cmluZztcbiAgZW52Pzogb2JqZWN0O1xuICBlc2xpbnQ/OiBFU0xpbnRDb25maWc7XG4gIGdpdFVybD86IHN0cmluZztcbiAgamVzdD86IEplc3RDb25maWc7XG4gIGxpYnJhcnlOYW1lPzogc3RyaW5nO1xuICBsaWJyYXJ5VGFyZ2V0Pzogc3RyaW5nO1xuICBvdXRwdXRGaWxlPzogc3RyaW5nO1xuICBvdXRwdXRGdWxsUGF0aD86IHN0cmluZztcbiAgb3V0cHV0SGFzaD86IGJvb2xlYW47XG4gIG91dHB1dFBhdGg/OiBzdHJpbmc7XG4gIHBhY2thZ2VNYW5hZ2VyPzogJ25wbScgfCAneWFybic7XG4gIHByZXNldD86ICd3ZWInIHwgJ25vZGUnIHwgJ2xhbWJkYScgfCAnbW9iaWxlJztcbiAgc291cmNlRnVsbFBhdGg/OiBzdHJpbmc7XG4gIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gIHN3Yz86IFNXQ0NvbmZpZztcbiAgdGFyZ2V0RW52aXJvbm1lbnQ/OiAnbm9kZScgfCAnd2ViJztcbiAgdXNlR3JhcGhRbD86IGJvb2xlYW47XG4gIHVzZVR5cGVzY3JpcHQ/OiBib29sZWFuO1xuICB3ZWJwYWNrPzogV2VicGFja0NvbmZpZztcbn1cblxuZXhwb3J0IHR5cGUgQ29uZmlnID0gTGV4Q29uZmlnVHlwZTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWdWYWx1ZXM6IExleENvbmZpZ1R5cGUgPSB7XG4gIGFpOiB7XG4gICAgbWF4VG9rZW5zOiA0MDAwLFxuICAgIG1vZGVsOiAnZ3B0LTRvJyxcbiAgICBwcm92aWRlcjogJ25vbmUnLFxuICAgIHRlbXBlcmF0dXJlOiAwLjFcbiAgfSxcbiAgY29uZmlnRmlsZXM6IFtdLFxuICBjb3B5RmlsZXM6IFtdLFxuICBlbnRyeUhUTUw6ICdpbmRleC5odG1sJyxcbiAgZW50cnlKczogJ2luZGV4LmpzJyxcbiAgZW52OiBudWxsLFxuICBlc2xpbnQ6IHt9LFxuICBqZXN0OiB7fSxcbiAgb3V0cHV0RnVsbFBhdGg6IHBhdGhSZXNvbHZlKGN3ZCwgJy4vbGliJyksXG4gIG91dHB1dEhhc2g6IGZhbHNlLFxuICBvdXRwdXRQYXRoOiAnLi9saWInLFxuICBwYWNrYWdlTWFuYWdlcjogJ25wbScsXG4gIHByZXNldDogJ3dlYicsXG4gIHNvdXJjZUZ1bGxQYXRoOiBwYXRoUmVzb2x2ZShjd2QsICcuL3NyYycpLFxuICBzb3VyY2VQYXRoOiAnLi9zcmMnLFxuICBzd2M6IHtcbiAgICBqc2M6IHtcbiAgICAgIGV4dGVybmFsSGVscGVyczogZmFsc2UsXG4gICAgICBrZWVwQ2xhc3NOYW1lczogZmFsc2UsXG4gICAgICBsb29zZTogZmFsc2UsXG4gICAgICBwYXJzZXI6IHtcbiAgICAgICAgZGVjb3JhdG9yczogdHJ1ZSxcbiAgICAgICAgZHluYW1pY0ltcG9ydDogdHJ1ZSxcbiAgICAgICAgc3ludGF4OiAndHlwZXNjcmlwdCcsXG4gICAgICAgIHRzeDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHRhcmdldDogJ2VzMjAyMCcsXG4gICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgcmVhY3Q6IHtcbiAgICAgICAgICBydW50aW1lOiAnYXV0b21hdGljJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBtb2R1bGU6IHtcbiAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgbm9JbnRlcm9wOiBmYWxzZSxcbiAgICAgIHN0cmljdDogZmFsc2UsXG4gICAgICBzdHJpY3RNb2RlOiB0cnVlLFxuICAgICAgdHlwZTogJ2VzNidcbiAgICB9LFxuICAgIGlubGluZVNvdXJjZXNDb250ZW50OiB0cnVlLFxuICAgIGlzTW9kdWxlOiB0cnVlLFxuICAgIG1pbmlmeTogZmFsc2UsXG4gICAgc291cmNlTWFwczogJ2lubGluZSdcbiAgfSxcbiAgdGFyZ2V0RW52aXJvbm1lbnQ6ICd3ZWInLFxuICB1c2VHcmFwaFFsOiBmYWxzZSxcbiAgdXNlVHlwZXNjcmlwdDogZmFsc2UsXG4gIHdlYnBhY2s6IHtcbiAgICBzdGF0aWNQYXRoOiAnLi9zcmMvc3RhdGljJ1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VHlwZVNjcmlwdENvbmZpZ1BhdGggPSAoY29uZmlnTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcblxuICBpZihjb25maWdOYW1lID09PSAndHNjb25maWcuYnVpbGQuanNvbicpIHtcbiAgICBjb25zdCBwcm9qZWN0QnVpbGRDb25maWcgPSBwYXRoUmVzb2x2ZShjd2QsICd0c2NvbmZpZy5idWlsZC5qc29uJyk7XG4gICAgaWYoZXhpc3RzU3luYyhwcm9qZWN0QnVpbGRDb25maWcpKSB7XG4gICAgICByZXR1cm4gcHJvamVjdEJ1aWxkQ29uZmlnO1xuICAgIH1cbiAgfVxuXG4gIGlmKGNvbmZpZ05hbWUgPT09ICd0c2NvbmZpZy5saW50Lmpzb24nKSB7XG4gICAgY29uc3QgcHJvamVjdExpbnRDb25maWcgPSBwYXRoUmVzb2x2ZShjd2QsICd0c2NvbmZpZy5lc2xpbnQuanNvbicpO1xuICAgIGlmKGV4aXN0c1N5bmMocHJvamVjdExpbnRDb25maWcpKSB7XG4gICAgICByZXR1cm4gcHJvamVjdExpbnRDb25maWc7XG4gICAgfVxuICB9XG5cbiAgaWYoY29uZmlnTmFtZSA9PT0gJ3RzY29uZmlnLnRlc3QuanNvbicpIHtcbiAgICBjb25zdCBwcm9qZWN0VGVzdENvbmZpZyA9IHBhdGhSZXNvbHZlKGN3ZCwgJ3RzY29uZmlnLnRlc3QuanNvbicpO1xuICAgIGlmKGV4aXN0c1N5bmMocHJvamVjdFRlc3RDb25maWcpKSB7XG4gICAgICByZXR1cm4gcHJvamVjdFRlc3RDb25maWc7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcHJvamVjdENvbmZpZ1BhdGggPSBwYXRoUmVzb2x2ZShjd2QsIGNvbmZpZ05hbWUpO1xuICBpZihleGlzdHNTeW5jKHByb2plY3RDb25maWdQYXRoKSkge1xuICAgIHJldHVybiBwcm9qZWN0Q29uZmlnUGF0aDtcbiAgfVxuXG4gIGNvbnN0IGxleERpciA9IExleENvbmZpZy5nZXRMZXhEaXIoKTtcbiAgcmV0dXJuIHBhdGhSZXNvbHZlKGxleERpciwgY29uZmlnTmFtZSk7XG59O1xuXG5leHBvcnQgY2xhc3MgTGV4Q29uZmlnIHtcbiAgc3RhdGljIGNvbmZpZzogTGV4Q29uZmlnVHlwZSA9IHtcbiAgICAuLi5kZWZhdWx0Q29uZmlnVmFsdWVzXG4gIH07XG5cbiAgc3RhdGljIHNldCB1c2VUeXBlc2NyaXB0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgTGV4Q29uZmlnLmNvbmZpZy51c2VUeXBlc2NyaXB0ID0gdmFsdWU7XG4gICAgY29uc3Qge3NvdXJjZUZ1bGxQYXRofSA9IExleENvbmZpZy5jb25maWc7XG5cbiAgICBjb25zdCB7ZW50cnlKc30gPSBMZXhDb25maWcuY29uZmlnO1xuXG4gICAgaWYoZW50cnlKcyA9PT0gJ2luZGV4LmpzJyAmJiB2YWx1ZSkge1xuICAgICAgY29uc3QgaW5kZXhQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShjd2QsIHNvdXJjZUZ1bGxQYXRoLCAnaW5kZXgudHN4Jyk7XG4gICAgICBjb25zdCBoYXNJbmRleFRzeDogYm9vbGVhbiA9IGV4aXN0c1N5bmMoaW5kZXhQYXRoKTtcblxuICAgICAgaWYoaGFzSW5kZXhUc3gpIHtcbiAgICAgICAgTGV4Q29uZmlnLmNvbmZpZy5lbnRyeUpzID0gJ2luZGV4LnRzeCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBMZXhDb25maWcuY29uZmlnLmVudHJ5SnMgPSAnaW5kZXgudHMnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRMZXhEaXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGlybmFtZShnZXRMZXhQYWNrYWdlSnNvblBhdGgoKSk7XG4gIH1cblxuICBzdGF0aWMgdXBkYXRlQ29uZmlnKHVwZGF0ZWRDb25maWc6IExleENvbmZpZ1R5cGUpOiBMZXhDb25maWdUeXBlIHtcbiAgICBjb25zdCB7b3V0cHV0RnVsbFBhdGgsIG91dHB1dFBhdGgsIHNvdXJjZVBhdGgsIHNvdXJjZUZ1bGxQYXRoLCB1c2VUeXBlc2NyaXB0LCBhaX0gPSB1cGRhdGVkQ29uZmlnO1xuICAgIGNvbnN0IGN3ZDogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKTtcblxuICAgIGlmKHVzZVR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgTGV4Q29uZmlnLnVzZVR5cGVzY3JpcHQgPSB1c2VUeXBlc2NyaXB0O1xuICAgIH1cblxuICAgIGlmKG91dHB1dFBhdGggIT09IHVuZGVmaW5lZCAmJiBvdXRwdXRGdWxsUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB1cGRhdGVkQ29uZmlnLm91dHB1dEZ1bGxQYXRoID0gcGF0aFJlc29sdmUoY3dkLCBvdXRwdXRQYXRoKTtcbiAgICB9XG5cbiAgICBpZihzb3VyY2VQYXRoICE9PSB1bmRlZmluZWQgJiYgc291cmNlRnVsbFBhdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdXBkYXRlZENvbmZpZy5zb3VyY2VGdWxsUGF0aCA9IHBhdGhSZXNvbHZlKGN3ZCwgc291cmNlUGF0aCk7XG4gICAgfVxuXG4gICAgaWYoYWkpIHtcbiAgICAgIExleENvbmZpZy5jb25maWcuYWkgPSB7Li4uTGV4Q29uZmlnLmNvbmZpZy5haSwgLi4uYWl9O1xuXG4gICAgICBpZihwcm9jZXNzLmVudi5DVVJTT1JfSURFID09PSAndHJ1ZScgJiYgTGV4Q29uZmlnLmNvbmZpZy5haS5wcm92aWRlciA9PT0gJ25vbmUnKSB7XG4gICAgICAgIExleENvbmZpZy5jb25maWcuYWkucHJvdmlkZXIgPSAnY3Vyc29yJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBMZXhDb25maWcuY29uZmlnID0gey4uLkxleENvbmZpZy5jb25maWcsIC4uLnVwZGF0ZWRDb25maWd9O1xuXG4gICAgcmV0dXJuIExleENvbmZpZy5jb25maWc7XG4gIH1cblxuICBzdGF0aWMgYWRkQ29uZmlnUGFyYW1zKGNtZCwgcGFyYW1zOiBMZXhDb25maWdUeXBlKSB7XG4gICAgY29uc3QgbmFtZVByb3BlcnR5OiBzdHJpbmcgPSAnX25hbWUnO1xuICAgIGNvbnN0IHtlbnZpcm9ubWVudCwgb3V0cHV0UGF0aCwgc291cmNlUGF0aCwgdHlwZXNjcmlwdH0gPSBjbWQ7XG5cbiAgICBpZihvdXRwdXRQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5vdXRwdXRQYXRoID0gb3V0cHV0UGF0aDtcbiAgICAgIHBhcmFtcy5vdXRwdXRGdWxsUGF0aCA9IHBhdGhSZXNvbHZlKGN3ZCwgb3V0cHV0UGF0aCk7XG4gICAgfVxuXG4gICAgaWYoc291cmNlUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJhbXMuc291cmNlUGF0aCA9IHNvdXJjZVBhdGg7XG4gICAgICBwYXJhbXMuc291cmNlRnVsbFBhdGggPSBwYXRoUmVzb2x2ZShjd2QsIHNvdXJjZVBhdGgpO1xuICAgIH1cblxuICAgIGlmKHR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyYW1zLnVzZVR5cGVzY3JpcHQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmKGVudmlyb25tZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy50YXJnZXRFbnZpcm9ubWVudCA9IGVudmlyb25tZW50ID09PSAnd2ViJyA/ICd3ZWInIDogJ25vZGUnO1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52LkxFWF9DT05GSUcgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgLi4uTGV4Q29uZmlnLnVwZGF0ZUNvbmZpZyhwYXJhbXMpLFxuICAgICAgICBjb21tYW5kTmFtZTogY21kW25hbWVQcm9wZXJ0eV0sXG4gICAgICAgIGlzU3RhdGljOiBjbWQuc3RhdGljXG4gICAgICB9LCBudWxsLCAwXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBwYXJzZUNvbmZpZyhjbWQsIGlzUm9vdDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBsZXhDb25maWcsIGxleENvbmZpZ05hbWUsIHF1aWV0LCB0eXBlc2NyaXB0LCBkZWJ1ZyA9IGZhbHNlfSA9IGNtZDtcbiAgICBjb25zdCBjb25maWdGb3JtYXRzID0gWydqcycsICdtanMnLCAnY2pzJywgJ3RzJywgJ2pzb24nXTtcbiAgICBjb25zdCBjb25maWdCYXNlTmFtZTogc3RyaW5nID0gbGV4Q29uZmlnTmFtZSB8fCAnbGV4LmNvbmZpZyc7XG4gICAgbGV0IGNvbmZpZ1BhdGg6IHN0cmluZyA9IGxleENvbmZpZyB8fCAnJztcbiAgICBsZXQgY29uZmlnRXhpc3RzOiBib29sZWFuID0gbGV4Q29uZmlnID8gZXhpc3RzU3luYyhjb25maWdQYXRoKSA6IGZhbHNlO1xuXG4gICAgaWYoIWNvbmZpZ1BhdGggfHwgIWNvbmZpZ0V4aXN0cykge1xuICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgbG9nKGBTZWFyY2hpbmcgZm9yIGNvbmZpZyBmaWxlcyB3aXRoIGJhc2UgbmFtZTogJHtjb25maWdCYXNlTmFtZX1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgIH1cblxuICAgICAgZm9yKGNvbnN0IGZvcm1hdCBvZiBjb25maWdGb3JtYXRzKSB7XG4gICAgICAgIGNvbnN0IHBvdGVudGlhbFBhdGggPSBpc1Jvb3RcbiAgICAgICAgICA/IHBhdGhSZXNvbHZlKGN3ZCwgYC4vJHtjb25maWdCYXNlTmFtZX0uJHtmb3JtYXR9YClcbiAgICAgICAgICA6IHJlbGF0aXZlRmlsZVBhdGgoYCR7Y29uZmlnQmFzZU5hbWV9LiR7Zm9ybWF0fWAsIGN3ZCk7XG5cbiAgICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgICBsb2coYENoZWNraW5nIGZvciBjb25maWcgZmlsZTogJHtwb3RlbnRpYWxQYXRofWAsICdpbmZvJywgcXVpZXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoZXhpc3RzU3luYyhwb3RlbnRpYWxQYXRoKSkge1xuICAgICAgICAgIGNvbmZpZ1BhdGggPSBwb3RlbnRpYWxQYXRoO1xuICAgICAgICAgIGNvbmZpZ0V4aXN0cyA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihjb25maWdFeGlzdHMpIHtcbiAgICAgIGxvZyhgVXNpbmcgJHtjbGlOYW1lfSBjb25maWd1cmF0aW9uIGZpbGU6ICR7Y29uZmlnUGF0aH1gLCAnbm90ZScsIHF1aWV0KTtcbiAgICAgIGNvbnN0IGV4dDogc3RyaW5nID0gcGF0aEV4dG5hbWUoY29uZmlnUGF0aCk7XG5cbiAgICAgIGlmKGV4dCA9PT0gJy5qc29uJykge1xuICAgICAgICBjb25zdCBjb25maWdDb250ZW50OiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoY29uZmlnUGF0aCwgJ3V0ZjgnKTtcblxuICAgICAgICBpZihjb25maWdDb250ZW50KSB7XG4gICAgICAgICAgbGV0IGNvbmZpZ0pzb246IExleENvbmZpZ1R5cGU7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uZmlnSnNvbiA9IEpTT04ucGFyc2UoY29uZmlnQ29udGVudCk/LmRlZmF1bHQgfHwge307XG4gICAgICAgICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBGYWlsZWQgdG8gcGFyc2UgSlNPTiBjb25maWc6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgICAgICBjb25maWdKc29uID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIGNvbmZpZ0pzb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ29uZmlnIGZpbGUgbWFsZm9ybWVkLCAke2NvbmZpZ1BhdGh9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYoWycuanMnLCAnLm1qcycsICcuY2pzJywgJy50cyddLmluY2x1ZGVzKGV4dCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgbGV4Q3VzdG9tQ29uZmlnO1xuXG4gICAgICAgICAgaWYoZXh0ID09PSAnLmNqcycpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBuZXcgVVJMKGBmaWxlOi8vLyR7cGF0aFJlc29sdmUoY29uZmlnUGF0aCl9YCkuaHJlZjtcblxuICAgICAgICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgICAgICAgbG9nKGBMb2FkaW5nIENvbW1vbkpTIGNvbmZpZyBmcm9tOiAke2ZpbGVVcmx9YCwgJ2luZm8nLCBxdWlldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXhDdXN0b21Db25maWcgPSBhd2FpdCBpbXBvcnQoZmlsZVVybCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICAgIGxvZyhgTG9hZGluZyBFU00vVFMgY29uZmlnIGZyb206ICR7Y29uZmlnUGF0aH1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV4Q3VzdG9tQ29uZmlnID0gYXdhaXQgaW1wb3J0KGNvbmZpZ1BhdGgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGxleEN1c3RvbUNvbmZpZy5kZWZhdWx0IHx8IGxleEN1c3RvbUNvbmZpZztcblxuICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICBsb2coYExvYWRlZCBjb25maWc6ICR7SlNPTi5zdHJpbmdpZnkoY29uZmlnLCBudWxsLCAyKX1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZighY29uZmlnKSB7XG4gICAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gV2FybmluZzogQ29uZmlnIGZpbGUgbG9hZGVkIGJ1dCBubyBjb25maWd1cmF0aW9uIGZvdW5kYCwgJ3dhcm4nLCBxdWlldCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIGNvbmZpZyB8fCB7fSk7XG4gICAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IEZhaWxlZCB0byBsb2FkIGNvbmZpZyBmaWxlOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENvbmZpZyBmaWxlIG11c3QgYmUgYSBKUywgQ0pTLCBNSlMsIFRTLCBvciBKU09OIGZpbGUuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZihkZWJ1Zykge1xuICAgICAgICBsb2coJ05vIGNvbmZpZyBmaWxlIGZvdW5kLiBVc2luZyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uJywgJ2luZm8nLCBxdWlldCk7XG4gICAgICB9XG5cbiAgICAgIExleENvbmZpZy51c2VUeXBlc2NyaXB0ID0gISF0eXBlc2NyaXB0O1xuICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIExleENvbmZpZy5jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1R5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgdHNjb25maWdQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShjd2QsICcuL3RzY29uZmlnLmpzb24nKTtcblxuICAgIGlmKCFleGlzdHNTeW5jKHRzY29uZmlnUGF0aCkpIHtcbiAgICAgIGNvbnN0IGRpck5hbWUgPSBnZXREaXJOYW1lKCk7XG4gICAgICB3cml0ZUZpbGVTeW5jKHRzY29uZmlnUGF0aCwgcmVhZEZpbGVTeW5jKHBhdGhSZXNvbHZlKGRpck5hbWUsICcuLi8uLi8uLi90c2NvbmZpZy5iYXNlLmpzb24nKSkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja0NvbXBpbGVUeXBlc2NyaXB0Q29uZmlnKCkge1xuICAgIGNvbnN0IGxleERpciA9IExleENvbmZpZy5nZXRMZXhEaXIoKTtcbiAgICBjb25zdCB0c2NvbmZpZ0NvbXBpbGVQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShsZXhEaXIsICcuL3RzY29uZmlnLmJ1aWxkLmpzb24nKTtcblxuICAgIGlmKCFleGlzdHNTeW5jKHRzY29uZmlnQ29tcGlsZVBhdGgpKSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZVBhdGggPSBwYXRoUmVzb2x2ZShsZXhEaXIsICd0c2NvbmZpZy5idWlsZC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ0NvbXBpbGVQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNoZWNrTGludFR5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuICAgIGNvbnN0IHRzY29uZmlnTGludFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGxleERpciwgJy4vdHNjb25maWcubGludC5qc29uJyk7XG5cbiAgICBpZighZXhpc3RzU3luYyh0c2NvbmZpZ0xpbnRQYXRoKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcubGludC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ0xpbnRQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNoZWNrVGVzdFR5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuICAgIGNvbnN0IHRzY29uZmlnVGVzdFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGxleERpciwgJy4vdHNjb25maWcudGVzdC5qc29uJyk7XG5cbiAgICBpZighZXhpc3RzU3luYyh0c2NvbmZpZ1Rlc3RQYXRoKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcudGVzdC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ1Rlc3RQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59Il0sIm5hbWVzIjpbImV4aXN0c1N5bmMiLCJyZWFkRmlsZVN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwiZGlybmFtZSIsImV4dG5hbWUiLCJwYXRoRXh0bmFtZSIsInJlc29sdmUiLCJwYXRoUmVzb2x2ZSIsIlVSTCIsImdldERpck5hbWUiLCJnZXRMZXhQYWNrYWdlSnNvblBhdGgiLCJyZWxhdGl2ZUZpbGVQYXRoIiwibG9nIiwiY3dkIiwicHJvY2VzcyIsImRlZmF1bHRDb25maWdWYWx1ZXMiLCJhaSIsIm1heFRva2VucyIsIm1vZGVsIiwicHJvdmlkZXIiLCJ0ZW1wZXJhdHVyZSIsImNvbmZpZ0ZpbGVzIiwiY29weUZpbGVzIiwiZW50cnlIVE1MIiwiZW50cnlKcyIsImVudiIsImVzbGludCIsImplc3QiLCJvdXRwdXRGdWxsUGF0aCIsIm91dHB1dEhhc2giLCJvdXRwdXRQYXRoIiwicGFja2FnZU1hbmFnZXIiLCJwcmVzZXQiLCJzb3VyY2VGdWxsUGF0aCIsInNvdXJjZVBhdGgiLCJzd2MiLCJqc2MiLCJleHRlcm5hbEhlbHBlcnMiLCJrZWVwQ2xhc3NOYW1lcyIsImxvb3NlIiwicGFyc2VyIiwiZGVjb3JhdG9ycyIsImR5bmFtaWNJbXBvcnQiLCJzeW50YXgiLCJ0c3giLCJ0YXJnZXQiLCJ0cmFuc2Zvcm0iLCJyZWFjdCIsInJ1bnRpbWUiLCJtb2R1bGUiLCJsYXp5Iiwibm9JbnRlcm9wIiwic3RyaWN0Iiwic3RyaWN0TW9kZSIsInR5cGUiLCJpbmxpbmVTb3VyY2VzQ29udGVudCIsImlzTW9kdWxlIiwibWluaWZ5Iiwic291cmNlTWFwcyIsInRhcmdldEVudmlyb25tZW50IiwidXNlR3JhcGhRbCIsInVzZVR5cGVzY3JpcHQiLCJ3ZWJwYWNrIiwic3RhdGljUGF0aCIsImdldFR5cGVTY3JpcHRDb25maWdQYXRoIiwiY29uZmlnTmFtZSIsInByb2plY3RCdWlsZENvbmZpZyIsInByb2plY3RMaW50Q29uZmlnIiwicHJvamVjdFRlc3RDb25maWciLCJwcm9qZWN0Q29uZmlnUGF0aCIsImxleERpciIsIkxleENvbmZpZyIsImdldExleERpciIsInZhbHVlIiwiY29uZmlnIiwiaW5kZXhQYXRoIiwiaGFzSW5kZXhUc3giLCJ1cGRhdGVDb25maWciLCJ1cGRhdGVkQ29uZmlnIiwidW5kZWZpbmVkIiwiQ1VSU09SX0lERSIsImFkZENvbmZpZ1BhcmFtcyIsImNtZCIsInBhcmFtcyIsIm5hbWVQcm9wZXJ0eSIsImVudmlyb25tZW50IiwidHlwZXNjcmlwdCIsIkxFWF9DT05GSUciLCJKU09OIiwic3RyaW5naWZ5IiwiY29tbWFuZE5hbWUiLCJpc1N0YXRpYyIsInN0YXRpYyIsInBhcnNlQ29uZmlnIiwiaXNSb290IiwiY2xpTmFtZSIsImxleENvbmZpZyIsImxleENvbmZpZ05hbWUiLCJxdWlldCIsImRlYnVnIiwiY29uZmlnRm9ybWF0cyIsImNvbmZpZ0Jhc2VOYW1lIiwiY29uZmlnUGF0aCIsImNvbmZpZ0V4aXN0cyIsImZvcm1hdCIsInBvdGVudGlhbFBhdGgiLCJleHQiLCJjb25maWdDb250ZW50IiwiY29uZmlnSnNvbiIsInBhcnNlIiwiZGVmYXVsdCIsImVycm9yIiwibWVzc2FnZSIsImluY2x1ZGVzIiwibGV4Q3VzdG9tQ29uZmlnIiwiZmlsZVVybCIsImhyZWYiLCJjb25zb2xlIiwiY2hlY2tUeXBlc2NyaXB0Q29uZmlnIiwidHNjb25maWdQYXRoIiwiZGlyTmFtZSIsImNoZWNrQ29tcGlsZVR5cGVzY3JpcHRDb25maWciLCJ0c2NvbmZpZ0NvbXBpbGVQYXRoIiwidGVtcGxhdGVQYXRoIiwiY2hlY2tMaW50VHlwZXNjcmlwdENvbmZpZyIsInRzY29uZmlnTGludFBhdGgiLCJjaGVja1Rlc3RUeXBlc2NyaXB0Q29uZmlnIiwidHNjb25maWdUZXN0UGF0aCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDOzs7Ozs7Ozs7Ozs7O0FBQ0QsU0FBUUEsVUFBVSxFQUFFQyxZQUFZLEVBQUVDLGFBQWEsUUFBTyxLQUFLO0FBQzNELFNBQVFDLE9BQU8sRUFBRUMsV0FBV0MsV0FBVyxFQUFFQyxXQUFXQyxXQUFXLFFBQU8sT0FBTztBQUM3RSxTQUFRQyxHQUFHLFFBQU8sTUFBTTtBQUV4QixT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
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9MZXhDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhpc3RzU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge2Rpcm5hbWUsIGV4dG5hbWUgYXMgcGF0aEV4dG5hbWUsIHJlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbmltcG9ydCB7Z2V0RGlyTmFtZSwgZ2V0TGV4UGFja2FnZUpzb25QYXRoLCByZWxhdGl2ZUZpbGVQYXRofSBmcm9tICcuL3V0aWxzL2ZpbGUuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4vdXRpbHMvbG9nLmpzJztcblxuaW1wb3J0IHR5cGUge0xpbnRlcn0gZnJvbSAnZXNsaW50JztcblxuY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSmVzdENvbmZpZyB7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIHJvb3RzPzogc3RyaW5nW107XG4gIHRlc3RFbnZpcm9ubWVudD86IHN0cmluZztcbiAgdHJhbnNmb3JtPzogUmVjb3JkPHN0cmluZywgW3N0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj5dPjtcbiAgdHJhbnNmb3JtSWdub3JlUGF0dGVybnM/OiBzdHJpbmdbXTtcbiAgbW9kdWxlTmFtZU1hcHBlcj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGV4dGVuc2lvbnNUb1RyZWF0QXNFc20/OiBzdHJpbmdbXTtcbiAgcHJlc2V0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlYnBhY2tDb25maWcge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICBlbnRyeT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBvdXRwdXQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbW9kdWxlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBsdWdpbnM/OiB1bmtub3duW107XG4gIHN0YXRpY1BhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlDb25maWcge1xuICBwcm92aWRlcj86ICdjdXJzb3InIHwgJ2NvcGlsb3QnIHwgJ29wZW5haScgfCAnYW50aHJvcGljJyB8ICdub25lJztcbiAgYXBpS2V5Pzogc3RyaW5nO1xuICBtb2RlbD86IHN0cmluZztcbiAgbWF4VG9rZW5zPzogbnVtYmVyO1xuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFU0xpbnRDb25maWcge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICBleHRlbmRzPzogc3RyaW5nW107XG4gIHJ1bGVzPzogTGludGVyLlJ1bGVzUmVjb3JkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNXQ0NvbmZpZyB7XG4gIGpzYz86IHtcbiAgICBwYXJzZXI/OiB7XG4gICAgICBzeW50YXg/OiAndHlwZXNjcmlwdCcgfCAnZWNtYXNjcmlwdCc7XG4gICAgICB0c3g/OiBib29sZWFuO1xuICAgICAgZGVjb3JhdG9ycz86IGJvb2xlYW47XG4gICAgICBkeW5hbWljSW1wb3J0PzogYm9vbGVhbjtcbiAgICB9O1xuICAgIHRhcmdldD86ICdlczMnIHwgJ2VzNScgfCAnZXMyMDE1JyB8ICdlczIwMTYnIHwgJ2VzMjAxNycgfCAnZXMyMDE4JyB8ICdlczIwMTknIHwgJ2VzMjAyMCcgfCAnZXMyMDIxJyB8ICdlczIwMjInIHwgJ2VzMjAyMyc7XG4gICAgdHJhbnNmb3JtPzoge1xuICAgICAgcmVhY3Q/OiB7XG4gICAgICAgIHJ1bnRpbWU/OiAnYXV0b21hdGljJyB8ICdjbGFzc2ljJztcbiAgICAgICAgcHJhZ21hPzogc3RyaW5nO1xuICAgICAgICBwcmFnbWFGcmFnPzogc3RyaW5nO1xuICAgICAgICB0aHJvd0lmTmFtZXNwYWNlPzogYm9vbGVhbjtcbiAgICAgICAgZGV2ZWxvcG1lbnQ/OiBib29sZWFuO1xuICAgICAgICB1c2VCdWlsdGlucz86IGJvb2xlYW47XG4gICAgICAgIHJlZnJlc2g/OiBib29sZWFuO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGV4dGVybmFsSGVscGVycz86IGJvb2xlYW47XG4gICAga2VlcENsYXNzTmFtZXM/OiBib29sZWFuO1xuICAgIGxvb3NlPzogYm9vbGVhbjtcbiAgICBtaW5pZnk/OiB7XG4gICAgICBjb21wcmVzcz86IGJvb2xlYW47XG4gICAgICBtYW5nbGU/OiBib29sZWFuO1xuICAgIH07XG4gIH07XG4gIG1vZHVsZT86IHtcbiAgICB0eXBlPzogJ2VzNicgfCAnY29tbW9uanMnIHwgJ2FtZCcgfCAndW1kJyB8ICdzeXN0ZW1qcyc7XG4gICAgc3RyaWN0PzogYm9vbGVhbjtcbiAgICBzdHJpY3RNb2RlPzogYm9vbGVhbjtcbiAgICBsYXp5PzogYm9vbGVhbjtcbiAgICBub0ludGVyb3A/OiBib29sZWFuO1xuICB9O1xuICBtaW5pZnk/OiBib29sZWFuO1xuICBzb3VyY2VNYXBzPzogYm9vbGVhbiB8ICdpbmxpbmUnO1xuICBpbmxpbmVTb3VyY2VzQ29udGVudD86IGJvb2xlYW47XG4gIGlzTW9kdWxlPzogYm9vbGVhbjtcbiAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIGNvbmZpZ0ZpbGU/OiBzdHJpbmc7XG4gIHN3Y3JjPzogYm9vbGVhbjtcbiAgZW52Pzoge1xuICAgIHRhcmdldHM/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgbW9kZT86ICd1c2FnZScgfCAnZW50cnknO1xuICAgIGNvcmVKcz86IHN0cmluZztcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICBkeW5hbWljSW1wb3J0PzogYm9vbGVhbjtcbiAgICBsb29zZT86IGJvb2xlYW47XG4gICAgYnVnZml4ZXM/OiBib29sZWFuO1xuICAgIGluY2x1ZGU/OiBzdHJpbmdbXTtcbiAgICBleGNsdWRlPzogc3RyaW5nW107XG4gICAgZm9yY2VBbGxUcmFuc2Zvcm1zPzogYm9vbGVhbjtcbiAgICBtb2R1bGVzPzogJ2FtZCcgfCAndW1kJyB8ICdzeXN0ZW1qcycgfCAnYXV0bycgfCBmYWxzZTtcbiAgICBzaGlwcGVkUHJvcG9zYWxzPzogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZXhDb25maWdUeXBlIHtcbiAgYWk/OiBBSUNvbmZpZztcbiAgY29uZmlnRmlsZXM/OiBzdHJpbmdbXTtcbiAgY29weUZpbGVzPzogc3RyaW5nW107XG4gIGVudHJ5SFRNTD86IHN0cmluZztcbiAgZW50cnlKcz86IHN0cmluZztcbiAgZW52Pzogb2JqZWN0O1xuICBlc2xpbnQ/OiBFU0xpbnRDb25maWc7XG4gIGdpdFVybD86IHN0cmluZztcbiAgamVzdD86IEplc3RDb25maWc7XG4gIGxpYnJhcnlOYW1lPzogc3RyaW5nO1xuICBsaWJyYXJ5VGFyZ2V0Pzogc3RyaW5nO1xuICBvdXRwdXRGaWxlPzogc3RyaW5nO1xuICBvdXRwdXRGdWxsUGF0aD86IHN0cmluZztcbiAgb3V0cHV0SGFzaD86IGJvb2xlYW47XG4gIG91dHB1dFBhdGg/OiBzdHJpbmc7XG4gIHBhY2thZ2VNYW5hZ2VyPzogJ25wbScgfCAneWFybic7XG4gIHByZXNldD86ICd3ZWInIHwgJ25vZGUnIHwgJ2xhbWJkYScgfCAnbW9iaWxlJztcbiAgc291cmNlRnVsbFBhdGg/OiBzdHJpbmc7XG4gIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gIHN3Yz86IFNXQ0NvbmZpZztcbiAgdGFyZ2V0RW52aXJvbm1lbnQ/OiAnbm9kZScgfCAnd2ViJztcbiAgdXNlR3JhcGhRbD86IGJvb2xlYW47XG4gIHVzZVR5cGVzY3JpcHQ/OiBib29sZWFuO1xuICB3ZWJwYWNrPzogV2VicGFja0NvbmZpZztcbn1cblxuZXhwb3J0IHR5cGUgQ29uZmlnID0gTGV4Q29uZmlnVHlwZTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWdWYWx1ZXM6IExleENvbmZpZ1R5cGUgPSB7XG4gIGFpOiB7XG4gICAgbWF4VG9rZW5zOiA0MDAwLFxuICAgIG1vZGVsOiAnZ3B0LTRvJyxcbiAgICBwcm92aWRlcjogJ25vbmUnLFxuICAgIHRlbXBlcmF0dXJlOiAwLjFcbiAgfSxcbiAgY29uZmlnRmlsZXM6IFtdLFxuICBjb3B5RmlsZXM6IFtdLFxuICBlbnRyeUhUTUw6ICdpbmRleC5odG1sJyxcbiAgZW50cnlKczogJ2luZGV4LmpzJyxcbiAgZW52OiBudWxsLFxuICBlc2xpbnQ6IHt9LFxuICBqZXN0OiB7fSxcbiAgb3V0cHV0RnVsbFBhdGg6IHBhdGhSZXNvbHZlKGN3ZCwgJy4vbGliJyksXG4gIG91dHB1dEhhc2g6IGZhbHNlLFxuICBvdXRwdXRQYXRoOiAnLi9saWInLFxuICBwYWNrYWdlTWFuYWdlcjogJ25wbScsXG4gIHByZXNldDogJ3dlYicsXG4gIHNvdXJjZUZ1bGxQYXRoOiBwYXRoUmVzb2x2ZShjd2QsICcuL3NyYycpLFxuICBzb3VyY2VQYXRoOiAnLi9zcmMnLFxuICBzd2M6IHtcbiAgICBqc2M6IHtcbiAgICAgIGV4dGVybmFsSGVscGVyczogZmFsc2UsXG4gICAgICBrZWVwQ2xhc3NOYW1lczogZmFsc2UsXG4gICAgICBsb29zZTogZmFsc2UsXG4gICAgICBwYXJzZXI6IHtcbiAgICAgICAgZGVjb3JhdG9yczogdHJ1ZSxcbiAgICAgICAgZHluYW1pY0ltcG9ydDogdHJ1ZSxcbiAgICAgICAgc3ludGF4OiAndHlwZXNjcmlwdCcsXG4gICAgICAgIHRzeDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHRhcmdldDogJ2VzMjAyMCcsXG4gICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgcmVhY3Q6IHtcbiAgICAgICAgICBydW50aW1lOiAnYXV0b21hdGljJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBtb2R1bGU6IHtcbiAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgbm9JbnRlcm9wOiBmYWxzZSxcbiAgICAgIHN0cmljdDogZmFsc2UsXG4gICAgICBzdHJpY3RNb2RlOiB0cnVlLFxuICAgICAgdHlwZTogJ2VzNidcbiAgICB9LFxuICAgIGlubGluZVNvdXJjZXNDb250ZW50OiB0cnVlLFxuICAgIGlzTW9kdWxlOiB0cnVlLFxuICAgIG1pbmlmeTogZmFsc2UsXG4gICAgc291cmNlTWFwczogJ2lubGluZSdcbiAgfSxcbiAgdGFyZ2V0RW52aXJvbm1lbnQ6ICd3ZWInLFxuICB1c2VHcmFwaFFsOiBmYWxzZSxcbiAgdXNlVHlwZXNjcmlwdDogZmFsc2UsXG4gIHdlYnBhY2s6IHtcbiAgICBzdGF0aWNQYXRoOiAnLi9zcmMvc3RhdGljJ1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VHlwZVNjcmlwdENvbmZpZ1BhdGggPSAoY29uZmlnTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcblxuICBpZihjb25maWdOYW1lID09PSAndHNjb25maWcuYnVpbGQuanNvbicpIHtcbiAgICBjb25zdCBwcm9qZWN0QnVpbGRDb25maWcgPSBwYXRoUmVzb2x2ZShjd2QsICd0c2NvbmZpZy5idWlsZC5qc29uJyk7XG4gICAgaWYoZXhpc3RzU3luYyhwcm9qZWN0QnVpbGRDb25maWcpKSB7XG4gICAgICByZXR1cm4gcHJvamVjdEJ1aWxkQ29uZmlnO1xuICAgIH1cbiAgfVxuXG4gIGlmKGNvbmZpZ05hbWUgPT09ICd0c2NvbmZpZy5saW50Lmpzb24nKSB7XG4gICAgY29uc3QgcHJvamVjdExpbnRDb25maWcgPSBwYXRoUmVzb2x2ZShjd2QsICd0c2NvbmZpZy5lc2xpbnQuanNvbicpO1xuICAgIGlmKGV4aXN0c1N5bmMocHJvamVjdExpbnRDb25maWcpKSB7XG4gICAgICByZXR1cm4gcHJvamVjdExpbnRDb25maWc7XG4gICAgfVxuICB9XG5cbiAgaWYoY29uZmlnTmFtZSA9PT0gJ3RzY29uZmlnLnRlc3QuanNvbicpIHtcbiAgICBjb25zdCBwcm9qZWN0VGVzdENvbmZpZyA9IHBhdGhSZXNvbHZlKGN3ZCwgJ3RzY29uZmlnLnRlc3QuanNvbicpO1xuICAgIGlmKGV4aXN0c1N5bmMocHJvamVjdFRlc3RDb25maWcpKSB7XG4gICAgICByZXR1cm4gcHJvamVjdFRlc3RDb25maWc7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcHJvamVjdENvbmZpZ1BhdGggPSBwYXRoUmVzb2x2ZShjd2QsIGNvbmZpZ05hbWUpO1xuICBpZihleGlzdHNTeW5jKHByb2plY3RDb25maWdQYXRoKSkge1xuICAgIHJldHVybiBwcm9qZWN0Q29uZmlnUGF0aDtcbiAgfVxuXG4gIGNvbnN0IGxleERpciA9IExleENvbmZpZy5nZXRMZXhEaXIoKTtcbiAgcmV0dXJuIHBhdGhSZXNvbHZlKGxleERpciwgY29uZmlnTmFtZSk7XG59O1xuXG5leHBvcnQgY2xhc3MgTGV4Q29uZmlnIHtcbiAgc3RhdGljIGNvbmZpZzogTGV4Q29uZmlnVHlwZSA9IHtcbiAgICAuLi5kZWZhdWx0Q29uZmlnVmFsdWVzXG4gIH07XG5cbiAgc3RhdGljIHNldCB1c2VUeXBlc2NyaXB0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgTGV4Q29uZmlnLmNvbmZpZy51c2VUeXBlc2NyaXB0ID0gdmFsdWU7XG4gICAgY29uc3Qge3NvdXJjZUZ1bGxQYXRofSA9IExleENvbmZpZy5jb25maWc7XG5cbiAgICBjb25zdCB7ZW50cnlKc30gPSBMZXhDb25maWcuY29uZmlnO1xuXG4gICAgaWYoZW50cnlKcyA9PT0gJ2luZGV4LmpzJyAmJiB2YWx1ZSkge1xuICAgICAgY29uc3QgaW5kZXhQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShjd2QsIHNvdXJjZUZ1bGxQYXRoLCAnaW5kZXgudHN4Jyk7XG4gICAgICBjb25zdCBoYXNJbmRleFRzeDogYm9vbGVhbiA9IGV4aXN0c1N5bmMoaW5kZXhQYXRoKTtcblxuICAgICAgaWYoaGFzSW5kZXhUc3gpIHtcbiAgICAgICAgTGV4Q29uZmlnLmNvbmZpZy5lbnRyeUpzID0gJ2luZGV4LnRzeCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBMZXhDb25maWcuY29uZmlnLmVudHJ5SnMgPSAnaW5kZXgudHMnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRMZXhEaXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGlybmFtZShnZXRMZXhQYWNrYWdlSnNvblBhdGgoKSk7XG4gIH1cblxuICBzdGF0aWMgdXBkYXRlQ29uZmlnKHVwZGF0ZWRDb25maWc6IExleENvbmZpZ1R5cGUpOiBMZXhDb25maWdUeXBlIHtcbiAgICBjb25zdCB7b3V0cHV0RnVsbFBhdGgsIG91dHB1dFBhdGgsIHNvdXJjZVBhdGgsIHNvdXJjZUZ1bGxQYXRoLCB1c2VUeXBlc2NyaXB0LCBhaX0gPSB1cGRhdGVkQ29uZmlnO1xuICAgIGNvbnN0IGN3ZDogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKTtcblxuICAgIGlmKHVzZVR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgTGV4Q29uZmlnLnVzZVR5cGVzY3JpcHQgPSB1c2VUeXBlc2NyaXB0O1xuICAgIH1cblxuICAgIGlmKG91dHB1dFBhdGggIT09IHVuZGVmaW5lZCAmJiBvdXRwdXRGdWxsUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB1cGRhdGVkQ29uZmlnLm91dHB1dEZ1bGxQYXRoID0gcGF0aFJlc29sdmUoY3dkLCBvdXRwdXRQYXRoKTtcbiAgICB9XG5cbiAgICBpZihzb3VyY2VQYXRoICE9PSB1bmRlZmluZWQgJiYgc291cmNlRnVsbFBhdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdXBkYXRlZENvbmZpZy5zb3VyY2VGdWxsUGF0aCA9IHBhdGhSZXNvbHZlKGN3ZCwgc291cmNlUGF0aCk7XG4gICAgfVxuXG4gICAgaWYoYWkpIHtcbiAgICAgIExleENvbmZpZy5jb25maWcuYWkgPSB7Li4uTGV4Q29uZmlnLmNvbmZpZy5haSwgLi4uYWl9O1xuXG4gICAgICBpZihwcm9jZXNzLmVudi5DVVJTT1JfSURFID09PSAndHJ1ZScgJiYgTGV4Q29uZmlnLmNvbmZpZy5haS5wcm92aWRlciA9PT0gJ25vbmUnKSB7XG4gICAgICAgIExleENvbmZpZy5jb25maWcuYWkucHJvdmlkZXIgPSAnY3Vyc29yJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBMZXhDb25maWcuY29uZmlnID0gey4uLkxleENvbmZpZy5jb25maWcsIC4uLnVwZGF0ZWRDb25maWd9O1xuXG4gICAgcmV0dXJuIExleENvbmZpZy5jb25maWc7XG4gIH1cblxuICBzdGF0aWMgYWRkQ29uZmlnUGFyYW1zKGNtZCwgcGFyYW1zOiBMZXhDb25maWdUeXBlKSB7XG4gICAgY29uc3QgbmFtZVByb3BlcnR5OiBzdHJpbmcgPSAnX25hbWUnO1xuICAgIGNvbnN0IHtlbnZpcm9ubWVudCwgb3V0cHV0UGF0aCwgc291cmNlUGF0aCwgdHlwZXNjcmlwdH0gPSBjbWQ7XG5cbiAgICBpZihvdXRwdXRQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5vdXRwdXRQYXRoID0gb3V0cHV0UGF0aDtcbiAgICAgIHBhcmFtcy5vdXRwdXRGdWxsUGF0aCA9IHBhdGhSZXNvbHZlKGN3ZCwgb3V0cHV0UGF0aCk7XG4gICAgfVxuXG4gICAgaWYoc291cmNlUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJhbXMuc291cmNlUGF0aCA9IHNvdXJjZVBhdGg7XG4gICAgICBwYXJhbXMuc291cmNlRnVsbFBhdGggPSBwYXRoUmVzb2x2ZShjd2QsIHNvdXJjZVBhdGgpO1xuICAgIH1cblxuICAgIGlmKHR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyYW1zLnVzZVR5cGVzY3JpcHQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmKGVudmlyb25tZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy50YXJnZXRFbnZpcm9ubWVudCA9IGVudmlyb25tZW50ID09PSAnd2ViJyA/ICd3ZWInIDogJ25vZGUnO1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52LkxFWF9DT05GSUcgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgLi4uTGV4Q29uZmlnLnVwZGF0ZUNvbmZpZyhwYXJhbXMpLFxuICAgICAgICBjb21tYW5kTmFtZTogY21kW25hbWVQcm9wZXJ0eV0sXG4gICAgICAgIGlzU3RhdGljOiBjbWQuc3RhdGljXG4gICAgICB9LCBudWxsLCAwXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBwYXJzZUNvbmZpZyhjbWQsIGlzUm9vdDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBsZXhDb25maWcsIGxleENvbmZpZ05hbWUsIHF1aWV0LCB0eXBlc2NyaXB0LCBkZWJ1ZyA9IGZhbHNlfSA9IGNtZDtcbiAgICBjb25zdCBjb25maWdGb3JtYXRzID0gWydqcycsICdtanMnLCAnY2pzJywgJ3RzJywgJ2pzb24nXTtcbiAgICBjb25zdCBjb25maWdCYXNlTmFtZTogc3RyaW5nID0gbGV4Q29uZmlnTmFtZSB8fCAnbGV4LmNvbmZpZyc7XG4gICAgbGV0IGNvbmZpZ1BhdGg6IHN0cmluZyA9IGxleENvbmZpZyB8fCAnJztcbiAgICBsZXQgY29uZmlnRXhpc3RzOiBib29sZWFuID0gbGV4Q29uZmlnID8gZXhpc3RzU3luYyhjb25maWdQYXRoKSA6IGZhbHNlO1xuXG4gICAgaWYoIWNvbmZpZ1BhdGggfHwgIWNvbmZpZ0V4aXN0cykge1xuICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgbG9nKGBTZWFyY2hpbmcgZm9yIGNvbmZpZyBmaWxlcyB3aXRoIGJhc2UgbmFtZTogJHtjb25maWdCYXNlTmFtZX1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgIH1cblxuICAgICAgZm9yKGNvbnN0IGZvcm1hdCBvZiBjb25maWdGb3JtYXRzKSB7XG4gICAgICAgIGNvbnN0IHBvdGVudGlhbFBhdGggPSBpc1Jvb3RcbiAgICAgICAgICA/IHBhdGhSZXNvbHZlKGN3ZCwgYC4vJHtjb25maWdCYXNlTmFtZX0uJHtmb3JtYXR9YClcbiAgICAgICAgICA6IHJlbGF0aXZlRmlsZVBhdGgoYCR7Y29uZmlnQmFzZU5hbWV9LiR7Zm9ybWF0fWAsIGN3ZCk7XG5cbiAgICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgICBsb2coYENoZWNraW5nIGZvciBjb25maWcgZmlsZTogJHtwb3RlbnRpYWxQYXRofWAsICdpbmZvJywgcXVpZXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoZXhpc3RzU3luYyhwb3RlbnRpYWxQYXRoKSkge1xuICAgICAgICAgIGNvbmZpZ1BhdGggPSBwb3RlbnRpYWxQYXRoO1xuICAgICAgICAgIGNvbmZpZ0V4aXN0cyA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihjb25maWdFeGlzdHMpIHtcbiAgICAgIGxvZyhgVXNpbmcgJHtjbGlOYW1lfSBjb25maWd1cmF0aW9uIGZpbGU6ICR7Y29uZmlnUGF0aH1gLCAnbm90ZScsIHF1aWV0KTtcbiAgICAgIGNvbnN0IGV4dDogc3RyaW5nID0gcGF0aEV4dG5hbWUoY29uZmlnUGF0aCk7XG5cbiAgICAgIGlmKGV4dCA9PT0gJy5qc29uJykge1xuICAgICAgICBjb25zdCBjb25maWdDb250ZW50OiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoY29uZmlnUGF0aCwgJ3V0ZjgnKTtcblxuICAgICAgICBpZihjb25maWdDb250ZW50KSB7XG4gICAgICAgICAgbGV0IGNvbmZpZ0pzb246IExleENvbmZpZ1R5cGU7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uZmlnSnNvbiA9IEpTT04ucGFyc2UoY29uZmlnQ29udGVudCk/LmRlZmF1bHQgfHwge307XG4gICAgICAgICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBGYWlsZWQgdG8gcGFyc2UgSlNPTiBjb25maWc6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgICAgICBjb25maWdKc29uID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIGNvbmZpZ0pzb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ29uZmlnIGZpbGUgbWFsZm9ybWVkLCAke2NvbmZpZ1BhdGh9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYoWycuanMnLCAnLm1qcycsICcuY2pzJywgJy50cyddLmluY2x1ZGVzKGV4dCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgbGV4Q3VzdG9tQ29uZmlnO1xuXG4gICAgICAgICAgaWYoZXh0ID09PSAnLmNqcycpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBuZXcgVVJMKGBmaWxlOi8vLyR7cGF0aFJlc29sdmUoY29uZmlnUGF0aCl9YCkuaHJlZjtcblxuICAgICAgICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgICAgICAgbG9nKGBMb2FkaW5nIENvbW1vbkpTIGNvbmZpZyBmcm9tOiAke2ZpbGVVcmx9YCwgJ2luZm8nLCBxdWlldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXhDdXN0b21Db25maWcgPSBhd2FpdCBpbXBvcnQoZmlsZVVybCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICAgIGxvZyhgTG9hZGluZyBFU00vVFMgY29uZmlnIGZyb206ICR7Y29uZmlnUGF0aH1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV4Q3VzdG9tQ29uZmlnID0gYXdhaXQgaW1wb3J0KGNvbmZpZ1BhdGgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGxleEN1c3RvbUNvbmZpZy5kZWZhdWx0IHx8IGxleEN1c3RvbUNvbmZpZztcblxuICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICBsb2coYExvYWRlZCBjb25maWc6ICR7SlNPTi5zdHJpbmdpZnkoY29uZmlnLCBudWxsLCAyKX1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZighY29uZmlnKSB7XG4gICAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gV2FybmluZzogQ29uZmlnIGZpbGUgbG9hZGVkIGJ1dCBubyBjb25maWd1cmF0aW9uIGZvdW5kYCwgJ3dhcm4nLCBxdWlldCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIGNvbmZpZyB8fCB7fSk7XG4gICAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IEZhaWxlZCB0byBsb2FkIGNvbmZpZyBmaWxlOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENvbmZpZyBmaWxlIG11c3QgYmUgYSBKUywgQ0pTLCBNSlMsIFRTLCBvciBKU09OIGZpbGUuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZihkZWJ1Zykge1xuICAgICAgICBsb2coJ05vIGNvbmZpZyBmaWxlIGZvdW5kLiBVc2luZyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uJywgJ2luZm8nLCBxdWlldCk7XG4gICAgICB9XG5cbiAgICAgIExleENvbmZpZy51c2VUeXBlc2NyaXB0ID0gISF0eXBlc2NyaXB0O1xuICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIExleENvbmZpZy5jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1R5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgdHNjb25maWdQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShjd2QsICcuL3RzY29uZmlnLmpzb24nKTtcblxuICAgIGlmKCFleGlzdHNTeW5jKHRzY29uZmlnUGF0aCkpIHtcbiAgICAgIGNvbnN0IGRpck5hbWUgPSBnZXREaXJOYW1lKCk7XG4gICAgICB3cml0ZUZpbGVTeW5jKHRzY29uZmlnUGF0aCwgcmVhZEZpbGVTeW5jKHBhdGhSZXNvbHZlKGRpck5hbWUsICcuLi8uLi8uLi90c2NvbmZpZy5iYXNlLmpzb24nKSkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja0NvbXBpbGVUeXBlc2NyaXB0Q29uZmlnKCkge1xuICAgIGNvbnN0IGxleERpciA9IExleENvbmZpZy5nZXRMZXhEaXIoKTtcbiAgICBjb25zdCB0c2NvbmZpZ0NvbXBpbGVQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShsZXhEaXIsICcuL3RzY29uZmlnLmJ1aWxkLmpzb24nKTtcblxuICAgIGlmKCFleGlzdHNTeW5jKHRzY29uZmlnQ29tcGlsZVBhdGgpKSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZVBhdGggPSBwYXRoUmVzb2x2ZShsZXhEaXIsICd0c2NvbmZpZy5idWlsZC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ0NvbXBpbGVQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNoZWNrTGludFR5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuICAgIGNvbnN0IHRzY29uZmlnTGludFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGxleERpciwgJy4vdHNjb25maWcubGludC5qc29uJyk7XG5cbiAgICBpZighZXhpc3RzU3luYyh0c2NvbmZpZ0xpbnRQYXRoKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcubGludC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ0xpbnRQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNoZWNrVGVzdFR5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuICAgIGNvbnN0IHRzY29uZmlnVGVzdFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGxleERpciwgJy4vdHNjb25maWcudGVzdC5qc29uJyk7XG5cbiAgICBpZighZXhpc3RzU3luYyh0c2NvbmZpZ1Rlc3RQYXRoKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcudGVzdC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ1Rlc3RQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59Il0sIm5hbWVzIjpbImV4aXN0c1N5bmMiLCJyZWFkRmlsZVN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwiZGlybmFtZSIsImV4dG5hbWUiLCJwYXRoRXh0bmFtZSIsInJlc29sdmUiLCJwYXRoUmVzb2x2ZSIsIlVSTCIsImdldERpck5hbWUiLCJnZXRMZXhQYWNrYWdlSnNvblBhdGgiLCJyZWxhdGl2ZUZpbGVQYXRoIiwibG9nIiwiY3dkIiwicHJvY2VzcyIsImRlZmF1bHRDb25maWdWYWx1ZXMiLCJhaSIsIm1heFRva2VucyIsIm1vZGVsIiwicHJvdmlkZXIiLCJ0ZW1wZXJhdHVyZSIsImNvbmZpZ0ZpbGVzIiwiY29weUZpbGVzIiwiZW50cnlIVE1MIiwiZW50cnlKcyIsImVudiIsImVzbGludCIsImplc3QiLCJvdXRwdXRGdWxsUGF0aCIsIm91dHB1dEhhc2giLCJvdXRwdXRQYXRoIiwicGFja2FnZU1hbmFnZXIiLCJwcmVzZXQiLCJzb3VyY2VGdWxsUGF0aCIsInNvdXJjZVBhdGgiLCJzd2MiLCJqc2MiLCJleHRlcm5hbEhlbHBlcnMiLCJrZWVwQ2xhc3NOYW1lcyIsImxvb3NlIiwicGFyc2VyIiwiZGVjb3JhdG9ycyIsImR5bmFtaWNJbXBvcnQiLCJzeW50YXgiLCJ0c3giLCJ0YXJnZXQiLCJ0cmFuc2Zvcm0iLCJyZWFjdCIsInJ1bnRpbWUiLCJtb2R1bGUiLCJsYXp5Iiwibm9JbnRlcm9wIiwic3RyaWN0Iiwic3RyaWN0TW9kZSIsInR5cGUiLCJpbmxpbmVTb3VyY2VzQ29udGVudCIsImlzTW9kdWxlIiwibWluaWZ5Iiwic291cmNlTWFwcyIsInRhcmdldEVudmlyb25tZW50IiwidXNlR3JhcGhRbCIsInVzZVR5cGVzY3JpcHQiLCJ3ZWJwYWNrIiwic3RhdGljUGF0aCIsImdldFR5cGVTY3JpcHRDb25maWdQYXRoIiwiY29uZmlnTmFtZSIsInByb2plY3RCdWlsZENvbmZpZyIsInByb2plY3RMaW50Q29uZmlnIiwicHJvamVjdFRlc3RDb25maWciLCJwcm9qZWN0Q29uZmlnUGF0aCIsImxleERpciIsIkxleENvbmZpZyIsImdldExleERpciIsInZhbHVlIiwiY29uZmlnIiwiaW5kZXhQYXRoIiwiaGFzSW5kZXhUc3giLCJ1cGRhdGVDb25maWciLCJ1cGRhdGVkQ29uZmlnIiwidW5kZWZpbmVkIiwiQ1VSU09SX0lERSIsImFkZENvbmZpZ1BhcmFtcyIsImNtZCIsInBhcmFtcyIsIm5hbWVQcm9wZXJ0eSIsImVudmlyb25tZW50IiwidHlwZXNjcmlwdCIsIkxFWF9DT05GSUciLCJKU09OIiwic3RyaW5naWZ5IiwiY29tbWFuZE5hbWUiLCJpc1N0YXRpYyIsInN0YXRpYyIsInBhcnNlQ29uZmlnIiwiaXNSb290IiwiY2xpTmFtZSIsImxleENvbmZpZyIsImxleENvbmZpZ05hbWUiLCJxdWlldCIsImRlYnVnIiwiY29uZmlnRm9ybWF0cyIsImNvbmZpZ0Jhc2VOYW1lIiwiY29uZmlnUGF0aCIsImNvbmZpZ0V4aXN0cyIsImZvcm1hdCIsInBvdGVudGlhbFBhdGgiLCJleHQiLCJjb25maWdDb250ZW50IiwiY29uZmlnSnNvbiIsInBhcnNlIiwiZGVmYXVsdCIsImVycm9yIiwibWVzc2FnZSIsImluY2x1ZGVzIiwibGV4Q3VzdG9tQ29uZmlnIiwiZmlsZVVybCIsImhyZWYiLCJjb25zb2xlIiwiY2hlY2tUeXBlc2NyaXB0Q29uZmlnIiwidHNjb25maWdQYXRoIiwiZGlyTmFtZSIsImNoZWNrQ29tcGlsZVR5cGVzY3JpcHRDb25maWciLCJ0c2NvbmZpZ0NvbXBpbGVQYXRoIiwidGVtcGxhdGVQYXRoIiwiY2hlY2tMaW50VHlwZXNjcmlwdENvbmZpZyIsInRzY29uZmlnTGludFBhdGgiLCJjaGVja1Rlc3RUeXBlc2NyaXB0Q29uZmlnIiwidHNjb25maWdUZXN0UGF0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLFFBQU8sS0FBSztBQUMzRCxTQUFRQyxPQUFPLEVBQUVDLFdBQVdDLFdBQVcsRUFBRUMsV0FBV0MsV0FBVyxRQUFPLE9BQU87QUFDN0UsU0FBUUMsR0FBRyxRQUFPLE1BQU07QUFFeEIs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/lex",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.51.0",
|
|
4
4
|
"description": "Lex",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -80,75 +80,71 @@
|
|
|
80
80
|
"watch": "NODE_ENV=development rm -rf lib && npx swc src --out-dir ./lib --source-maps inline --strip-leading-paths --extensions .ts,.tsx --ignore '**/*.test.ts' --ignore '**/*.spec.ts' --watch"
|
|
81
81
|
},
|
|
82
82
|
"dependencies": {
|
|
83
|
-
"@babel/core": "^7.28.
|
|
83
|
+
"@babel/core": "^7.28.5",
|
|
84
84
|
"@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1",
|
|
85
|
-
"@babel/plugin-transform-optional-chaining": "^7.
|
|
85
|
+
"@babel/plugin-transform-optional-chaining": "^7.28.5",
|
|
86
86
|
"@babel/plugin-transform-react-jsx": "^7.27.1",
|
|
87
|
-
"@babel/plugin-transform-runtime": "^7.28.
|
|
88
|
-
"@babel/preset-env": "^7.28.
|
|
89
|
-
"@babel/preset-react": "^7.
|
|
90
|
-
"@babel/preset-typescript": "7.
|
|
87
|
+
"@babel/plugin-transform-runtime": "^7.28.5",
|
|
88
|
+
"@babel/preset-env": "^7.28.5",
|
|
89
|
+
"@babel/preset-react": "^7.28.5",
|
|
90
|
+
"@babel/preset-typescript": "7.28.5",
|
|
91
91
|
"@babel/runtime": "^7.28.4",
|
|
92
92
|
"@babel/runtime-corejs3": "^7.28.4",
|
|
93
93
|
"@mdx-js/loader": "^3.1.1",
|
|
94
94
|
"@nlabs/webpack-plugin-static-site": "*",
|
|
95
|
-
"@storybook/addon-
|
|
96
|
-
"@storybook/addon-
|
|
97
|
-
"@storybook/addon-controls": "^9.0.8",
|
|
98
|
-
"@storybook/addon-docs": "^9.1.10",
|
|
99
|
-
"@storybook/addon-links": "^9.1.10",
|
|
95
|
+
"@storybook/addon-docs": "^10.1.2",
|
|
96
|
+
"@storybook/addon-links": "^10.1.2",
|
|
100
97
|
"@storybook/addon-postcss": "^2.0.0",
|
|
101
|
-
"@storybook/addon-styling-webpack": "^
|
|
102
|
-
"@storybook/addon-themes": "^
|
|
103
|
-
"@storybook/addon-
|
|
104
|
-
"@storybook/
|
|
105
|
-
"@storybook/
|
|
106
|
-
"@storybook/react": "^
|
|
107
|
-
"@
|
|
108
|
-
"@swc/core": "^1.13.5",
|
|
98
|
+
"@storybook/addon-styling-webpack": "^3.0.0",
|
|
99
|
+
"@storybook/addon-themes": "^10.1.2",
|
|
100
|
+
"@storybook/addon-webpack5-compiler-babel": "^4.0.0",
|
|
101
|
+
"@storybook/cli": "^10.1.2",
|
|
102
|
+
"@storybook/react": "^10.1.2",
|
|
103
|
+
"@storybook/react-webpack5": "^10.1.2",
|
|
104
|
+
"@swc/core": "^1.15.3",
|
|
109
105
|
"@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
|
|
110
|
-
"@tailwindcss/postcss": "4.1.
|
|
106
|
+
"@tailwindcss/postcss": "4.1.17",
|
|
111
107
|
"@testing-library/jest-dom": "^6.9.1",
|
|
112
108
|
"@testing-library/react": "^16.3.0",
|
|
113
109
|
"acorn": "^8.15.0",
|
|
114
110
|
"ajv": "^8.17.1",
|
|
115
111
|
"assert": "^2.1.0",
|
|
116
|
-
"autoprefixer": "^10.4.
|
|
112
|
+
"autoprefixer": "^10.4.22",
|
|
117
113
|
"babel-jest": "^30.2.0",
|
|
118
114
|
"babel-loader": "^10.0.0",
|
|
119
115
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
120
116
|
"babel-plugin-transform-import-meta": "^2.3.3",
|
|
121
117
|
"boxen": "8.0.1",
|
|
122
118
|
"buffer": "^6.0.3",
|
|
123
|
-
"caniuse-lite": "1.0.
|
|
119
|
+
"caniuse-lite": "1.0.30001757",
|
|
124
120
|
"chalk": "^5.6.2",
|
|
125
|
-
"commander": "^14.0.
|
|
121
|
+
"commander": "^14.0.2",
|
|
126
122
|
"compare-versions": "^6.1.1",
|
|
127
123
|
"compression-webpack-plugin": "^11.1.0",
|
|
128
124
|
"config-webpack-plugin": "^1.1.0",
|
|
129
125
|
"copy-webpack-plugin": "^13.0.1",
|
|
130
|
-
"core-js": "^3.
|
|
126
|
+
"core-js": "^3.47.0",
|
|
131
127
|
"crypto-js": "^4.2.0",
|
|
132
128
|
"css-loader": "^7.1.2",
|
|
133
|
-
"cssnano": "^7.1.
|
|
129
|
+
"cssnano": "^7.1.2",
|
|
134
130
|
"dotenv-webpack": "^8.1.1",
|
|
135
131
|
"download-npm-package": "^3.1.12",
|
|
136
|
-
"eslint": "^9.
|
|
132
|
+
"eslint": "^9.39.1",
|
|
137
133
|
"eslint-config-styleguidejs": "^4.1.9",
|
|
138
|
-
"execa": "9.6.
|
|
134
|
+
"execa": "9.6.1",
|
|
139
135
|
"expect": "^30.2.0",
|
|
140
136
|
"exports-loader": "^5.0.0",
|
|
141
|
-
"express": "^5.1
|
|
137
|
+
"express": "^5.2.1",
|
|
142
138
|
"favicons-webpack-plugin": "^6.0.1",
|
|
143
139
|
"file-loader": "^6.2.0",
|
|
144
140
|
"find-file-up": "^2.0.1",
|
|
145
|
-
"glob": "^
|
|
141
|
+
"glob": "^13.0.0",
|
|
146
142
|
"global": "^4.4.0",
|
|
147
|
-
"graphql": "^16.
|
|
143
|
+
"graphql": "^16.12.0",
|
|
148
144
|
"graphql-http": "^1.22.4",
|
|
149
145
|
"graphql-tag": "^2.12.6",
|
|
150
146
|
"html-loader": "^5.1.0",
|
|
151
|
-
"html-webpack-plugin": "^5.6.
|
|
147
|
+
"html-webpack-plugin": "^5.6.5",
|
|
152
148
|
"https-browserify": "^1.0.0",
|
|
153
149
|
"image-webpack-loader": "^8.1.0",
|
|
154
150
|
"imports-loader": "^5.0.0",
|
|
@@ -163,8 +159,8 @@
|
|
|
163
159
|
"lodash": "^4.17.21",
|
|
164
160
|
"luxon": "^3.7.2",
|
|
165
161
|
"net": "^1.0.2",
|
|
166
|
-
"npm-check-updates": "^19.
|
|
167
|
-
"openai": "^6.1
|
|
162
|
+
"npm-check-updates": "^19.1.2",
|
|
163
|
+
"openai": "^6.9.1",
|
|
168
164
|
"ora": "9.0.0",
|
|
169
165
|
"os-browserify": "^0.3.0",
|
|
170
166
|
"path-browserify": "^1.0.1",
|
|
@@ -187,31 +183,31 @@
|
|
|
187
183
|
"react": "^19.2.0",
|
|
188
184
|
"react-dom": "^19.2.0",
|
|
189
185
|
"regenerator-runtime": "^0.14.1",
|
|
190
|
-
"resolve": "^1.22.
|
|
191
|
-
"rimraf": "^6.
|
|
192
|
-
"semver": "^7.7.
|
|
186
|
+
"resolve": "^1.22.11",
|
|
187
|
+
"rimraf": "^6.1.2",
|
|
188
|
+
"semver": "^7.7.3",
|
|
193
189
|
"source-map-loader": "^5.0.0",
|
|
194
190
|
"speed-measure-webpack-plugin": "^1.5.0",
|
|
195
191
|
"static-site-generator-webpack-plugin": "^3.4.2",
|
|
196
|
-
"storybook": "^
|
|
192
|
+
"storybook": "^10.1.2",
|
|
197
193
|
"stream-browserify": "^3.0.0",
|
|
198
194
|
"stream-http": "^3.2.0",
|
|
199
195
|
"style-loader": "^4.0.0",
|
|
200
|
-
"svg-spritemap-webpack-plugin": "^5.0.
|
|
196
|
+
"svg-spritemap-webpack-plugin": "^5.0.4",
|
|
201
197
|
"svgo": "4.0.0",
|
|
202
198
|
"swc-loader": "^0.2.6",
|
|
203
|
-
"tailwindcss": "^4.1.
|
|
199
|
+
"tailwindcss": "^4.1.17",
|
|
204
200
|
"tls": "^0.0.1",
|
|
205
201
|
"ts-node": "^10.9.2",
|
|
206
202
|
"tsconfig-paths-webpack-plugin": "^4.2.0",
|
|
207
203
|
"typescript": "5.9.3",
|
|
208
204
|
"uncrypto": "^0.1.3",
|
|
209
|
-
"unicorn-magic": "^0.
|
|
205
|
+
"unicorn-magic": "^0.4.0",
|
|
210
206
|
"url-loader": "^4.1.1",
|
|
211
207
|
"util": "^0.12.5",
|
|
212
208
|
"vm-browserify": "^1.1.2",
|
|
213
|
-
"webpack": "5.
|
|
214
|
-
"webpack-bundle-analyzer": "^
|
|
209
|
+
"webpack": "5.103.0",
|
|
210
|
+
"webpack-bundle-analyzer": "^5.0.1",
|
|
215
211
|
"webpack-cli": "^6.0.1",
|
|
216
212
|
"webpack-merge": "^6.0.1",
|
|
217
213
|
"webpack-nano": "^1.1.1",
|
|
@@ -219,13 +215,13 @@
|
|
|
219
215
|
"ws": "^8.18.3"
|
|
220
216
|
},
|
|
221
217
|
"devDependencies": {
|
|
222
|
-
"@swc/cli": "^0.7.
|
|
223
|
-
"@types/express": "^5.0.
|
|
218
|
+
"@swc/cli": "^0.7.9",
|
|
219
|
+
"@types/express": "^5.0.6",
|
|
224
220
|
"@types/jest": "^30.0.0",
|
|
225
221
|
"@types/luxon": "^3.7.1",
|
|
226
|
-
"@types/node": "^24.
|
|
222
|
+
"@types/node": "^24.10.1",
|
|
227
223
|
"@types/ora": "^3.2.0",
|
|
228
|
-
"@types/react": "^19.2.
|
|
224
|
+
"@types/react": "^19.2.7",
|
|
229
225
|
"@types/webpack": "^5.28.5",
|
|
230
226
|
"css-minimizer-webpack-plugin": "^7.0.2"
|
|
231
227
|
},
|