@nlabs/lex 1.50.1 → 1.51.1

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.
Files changed (2) hide show
  1. package/lib/LexConfig.js +6 -6
  2. package/package.json +53 -48
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
- import { existsSync, readFileSync, writeFileSync } from 'fs';
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.50.1",
3
+ "version": "1.51.1",
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.4",
83
+ "@babel/core": "^7.28.5",
84
84
  "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1",
85
- "@babel/plugin-transform-optional-chaining": "^7.27.1",
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.3",
88
- "@babel/preset-env": "^7.28.3",
89
- "@babel/preset-react": "^7.27.1",
90
- "@babel/preset-typescript": "7.27.1",
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-actions": "^9.0.8",
96
- "@storybook/addon-backgrounds": "^9.0.8",
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": "^2.0.0",
102
- "@storybook/addon-themes": "^9.1.10",
103
- "@storybook/addon-viewport": "^9.0.8",
104
- "@storybook/addon-webpack5-compiler-babel": "^3.0.6",
105
- "@storybook/cli": "^9.1.10",
106
- "@storybook/react": "^9.1.10",
107
- "@storybook/react-webpack5": "^9.1.10",
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.14",
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.21",
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.30001747",
119
+ "caniuse-lite": "1.0.30001757",
124
120
  "chalk": "^5.6.2",
125
- "commander": "^14.0.1",
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.45.1",
126
+ "core-js": "^3.47.0",
131
127
  "crypto-js": "^4.2.0",
132
128
  "css-loader": "^7.1.2",
133
- "cssnano": "^7.1.1",
129
+ "cssnano": "^7.1.2",
134
130
  "dotenv-webpack": "^8.1.1",
135
131
  "download-npm-package": "^3.1.12",
136
- "eslint": "^9.37.0",
132
+ "eslint": "^9.39.1",
137
133
  "eslint-config-styleguidejs": "^4.1.9",
138
- "execa": "9.6.0",
134
+ "execa": "9.6.1",
139
135
  "expect": "^30.2.0",
140
136
  "exports-loader": "^5.0.0",
141
- "express": "^5.1.0",
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": "^11.0.3",
141
+ "glob": "^13.0.0",
146
142
  "global": "^4.4.0",
147
- "graphql": "^16.11.0",
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.4",
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.0.0",
167
- "openai": "^6.1.0",
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.10",
191
- "rimraf": "^6.0.1",
192
- "semver": "^7.7.2",
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
- "static-site-generator-webpack-plugin": "^3.4.2",
196
- "storybook": "^9.1.10",
191
+ "static-site-generator-webpack-plugin": "3.3.0",
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.3",
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.14",
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.3.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.102.0",
214
- "webpack-bundle-analyzer": "^4.10.2",
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,18 +215,27 @@
219
215
  "ws": "^8.18.3"
220
216
  },
221
217
  "devDependencies": {
222
- "@swc/cli": "^0.7.8",
223
- "@types/express": "^5.0.3",
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.6.2",
222
+ "@types/node": "^24.10.1",
227
223
  "@types/ora": "^3.2.0",
228
- "@types/react": "^19.2.0",
224
+ "@types/react": "^19.2.7",
229
225
  "@types/webpack": "^5.28.5",
230
226
  "css-minimizer-webpack-plugin": "^7.0.2"
231
227
  },
232
228
  "resolutions": {
233
229
  "css-loader": "7.1.2"
234
230
  },
231
+ "overrides": {
232
+ "cross-spawn": "^7.0.6",
233
+ "got": "^14.6.5",
234
+ "http-cache-semantics": "^4.2.0",
235
+ "http-proxy-middleware": "^3.0.5",
236
+ "postcss": "^8.5.6",
237
+ "semver-regex": "^4.0.5",
238
+ "tmp": "^0.2.5"
239
+ },
235
240
  "gitHead": "0f5fb22fc0f0ab1abab5adf62afed24c7c87e4a8"
236
241
  }