@nlabs/lex 1.49.4 → 1.50.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.
Files changed (55) hide show
  1. package/.swcrc +35 -0
  2. package/README.md +43 -59
  3. package/__mocks__/chalk.js +19 -17
  4. package/config.json +32 -8
  5. package/examples/lex.config.js +110 -10
  6. package/index.cjs +1 -5
  7. package/lex.config.js +34 -7
  8. package/lib/Button.stories.js +99 -0
  9. package/lib/LexConfig.d.ts +60 -22
  10. package/lib/LexConfig.js +285 -244
  11. package/lib/commands/ai/ai.js +287 -288
  12. package/lib/commands/ai/index.js +8 -7
  13. package/lib/commands/build/build.d.ts +2 -2
  14. package/lib/commands/build/build.js +349 -458
  15. package/lib/commands/clean/clean.js +45 -33
  16. package/lib/commands/compile/compile.js +214 -227
  17. package/lib/commands/config/config.js +46 -42
  18. package/lib/commands/copy/copy.js +36 -35
  19. package/lib/commands/create/create.js +200 -121
  20. package/lib/commands/dev/dev.d.ts +2 -0
  21. package/lib/commands/dev/dev.js +259 -263
  22. package/lib/commands/init/init.js +108 -88
  23. package/lib/commands/link/link.js +18 -14
  24. package/lib/commands/lint/lint.js +735 -742
  25. package/lib/commands/migrate/migrate.js +49 -36
  26. package/lib/commands/publish/publish.js +116 -96
  27. package/lib/commands/serverless/serverless.js +611 -585
  28. package/lib/commands/storybook/storybook.js +242 -238
  29. package/lib/commands/test/test.d.ts +1 -1
  30. package/lib/commands/test/test.js +382 -394
  31. package/lib/commands/update/update.js +141 -120
  32. package/lib/commands/upgrade/upgrade.js +51 -44
  33. package/lib/commands/versions/versions.d.ts +1 -1
  34. package/lib/commands/versions/versions.js +36 -38
  35. package/lib/create/changelog.js +136 -125
  36. package/lib/index.js +40 -38
  37. package/lib/lex.js +95 -68
  38. package/lib/storybook/index.js +6 -1
  39. package/lib/test-react/index.js +7 -84
  40. package/lib/types.d.ts +1 -1
  41. package/lib/types.js +7 -1
  42. package/lib/utils/aiService.js +240 -227
  43. package/lib/utils/app.js +274 -273
  44. package/lib/utils/deepMerge.js +37 -23
  45. package/lib/utils/file.js +218 -215
  46. package/lib/utils/log.js +29 -27
  47. package/lib/utils/reactShim.js +7 -85
  48. package/lib/utils/translations.js +91 -65
  49. package/package.json +63 -64
  50. package/templates/typescript/DataLayer.js.txt +218 -0
  51. package/templates/typescript/DataLayer.test.js.txt +268 -0
  52. package/templates/typescript/DataLayer.test.ts.txt +269 -0
  53. package/templates/typescript/DataLayer.ts.txt +227 -0
  54. package/webpack.config.js +53 -26
  55. package/lib/commands/lint/autofix.d.ts +0 -2
@@ -1,128 +1,149 @@
1
- import { execa } from "execa";
2
- import { LexConfig } from "../../LexConfig.js";
3
- import { createSpinner } from "../../utils/app.js";
4
- import { log } from "../../utils/log.js";
5
- const update = async (cmd, callback = process.exit) => {
6
- const { cliName = "Lex", packageManager: cmdPackageManager, quiet, registry } = cmd;
7
- log(`${cliName} updating packages...`, "info", quiet);
8
- const spinner = createSpinner(quiet);
9
- await LexConfig.parseConfig(cmd);
10
- const { packageManager: configPackageManager } = LexConfig.config;
11
- const packageManager = cmdPackageManager || configPackageManager || "npm";
12
- const isNpm = packageManager === "npm";
13
- try {
14
- if (isNpm) {
15
- let ncuCommand;
16
- let ncuArgs;
17
- try {
18
- ncuCommand = "npx";
19
- ncuArgs = [
20
- "npm-check-updates",
21
- "--concurrency",
22
- "10",
23
- "--packageManager",
24
- packageManager,
25
- "--pre",
26
- "0",
27
- "--target",
28
- "latest",
29
- ...cmd.interactive ? ["--interactive"] : [],
30
- "--upgrade"
31
- ];
32
- if (registry) {
33
- ncuArgs.push("--registry", registry);
34
- }
35
- await execa(ncuCommand, ncuArgs, {
36
- encoding: "utf8",
37
- stdio: "inherit"
38
- });
39
- } catch {
40
- try {
41
- ncuCommand = "npm-check-updates";
42
- ncuArgs = [
43
- "--concurrency",
44
- "10",
45
- "--packageManager",
46
- packageManager,
47
- "--pre",
48
- "0",
49
- "--target",
50
- "latest",
51
- ...cmd.interactive ? ["--interactive"] : [],
52
- "--upgrade"
53
- ];
54
- if (registry) {
55
- ncuArgs.push("--registry", registry);
56
- }
57
- await execa(ncuCommand, ncuArgs, {
58
- encoding: "utf8",
59
- stdio: "inherit"
60
- });
61
- } catch {
62
- log("npm-check-updates not found. Installing it globally...", "info", quiet);
63
- try {
64
- await execa("npm", ["install", "-g", "npm-check-updates"], {
65
- encoding: "utf8",
66
- stdio: "inherit"
1
+ /**
2
+ * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { execa } from 'execa';
5
+ import { LexConfig } from '../../LexConfig.js';
6
+ import { createSpinner } from '../../utils/app.js';
7
+ import { log } from '../../utils/log.js';
8
+ export const update = async (cmd, callback = process.exit)=>{
9
+ const { cliName = 'Lex', packageManager: cmdPackageManager, quiet, registry } = cmd;
10
+ log(`${cliName} updating packages...`, 'info', quiet);
11
+ const spinner = createSpinner(quiet);
12
+ await LexConfig.parseConfig(cmd);
13
+ const { packageManager: configPackageManager } = LexConfig.config;
14
+ const packageManager = cmdPackageManager || configPackageManager || 'npm';
15
+ const isNpm = packageManager === 'npm';
16
+ try {
17
+ if (isNpm) {
18
+ let ncuCommand;
19
+ let ncuArgs;
20
+ try {
21
+ ncuCommand = 'npx';
22
+ ncuArgs = [
23
+ 'npm-check-updates',
24
+ '--concurrency',
25
+ '10',
26
+ '--packageManager',
27
+ packageManager,
28
+ '--pre',
29
+ '0',
30
+ '--target',
31
+ 'latest',
32
+ ...cmd.interactive ? [
33
+ '--interactive'
34
+ ] : [],
35
+ '--upgrade'
36
+ ];
37
+ if (registry) {
38
+ ncuArgs.push('--registry', registry);
39
+ }
40
+ await execa(ncuCommand, ncuArgs, {
41
+ encoding: 'utf8',
42
+ stdio: 'inherit'
43
+ });
44
+ } catch {
45
+ try {
46
+ ncuCommand = 'npm-check-updates';
47
+ ncuArgs = [
48
+ '--concurrency',
49
+ '10',
50
+ '--packageManager',
51
+ packageManager,
52
+ '--pre',
53
+ '0',
54
+ '--target',
55
+ 'latest',
56
+ ...cmd.interactive ? [
57
+ '--interactive'
58
+ ] : [],
59
+ '--upgrade'
60
+ ];
61
+ if (registry) {
62
+ ncuArgs.push('--registry', registry);
63
+ }
64
+ await execa(ncuCommand, ncuArgs, {
65
+ encoding: 'utf8',
66
+ stdio: 'inherit'
67
+ });
68
+ } catch {
69
+ log('npm-check-updates not found. Installing it globally...', 'info', quiet);
70
+ try {
71
+ await execa('npm', [
72
+ 'install',
73
+ '-g',
74
+ 'npm-check-updates'
75
+ ], {
76
+ encoding: 'utf8',
77
+ stdio: 'inherit'
78
+ });
79
+ ncuCommand = 'npm-check-updates';
80
+ ncuArgs = [
81
+ '--concurrency',
82
+ '10',
83
+ '--packageManager',
84
+ packageManager,
85
+ '--pre',
86
+ '0',
87
+ '--target',
88
+ 'latest',
89
+ ...cmd.interactive ? [
90
+ '--interactive'
91
+ ] : [],
92
+ '--upgrade'
93
+ ];
94
+ if (registry) {
95
+ ncuArgs.push('--registry', registry);
96
+ }
97
+ await execa(ncuCommand, ncuArgs, {
98
+ encoding: 'utf8',
99
+ stdio: 'inherit'
100
+ });
101
+ } catch (installError) {
102
+ log(`Failed to install or use npm-check-updates: ${installError.message}`, 'error', quiet);
103
+ log('Please install npm-check-updates manually: npm install -g npm-check-updates', 'info', quiet);
104
+ throw installError;
105
+ }
106
+ }
107
+ }
108
+ // After successful update, run npm install and audit fix
109
+ await execa('npm', [
110
+ 'i',
111
+ '--force'
112
+ ], {
113
+ encoding: 'utf8',
114
+ stdio: 'inherit'
67
115
  });
68
- ncuCommand = "npm-check-updates";
69
- ncuArgs = [
70
- "--concurrency",
71
- "10",
72
- "--packageManager",
73
- packageManager,
74
- "--pre",
75
- "0",
76
- "--target",
77
- "latest",
78
- ...cmd.interactive ? ["--interactive"] : [],
79
- "--upgrade"
116
+ await execa('npm', [
117
+ 'audit',
118
+ 'fix'
119
+ ], {
120
+ encoding: 'utf8',
121
+ stdio: 'inherit'
122
+ });
123
+ } else {
124
+ // Use yarn
125
+ const updateApp = 'yarn';
126
+ const updateOptions = [
127
+ cmd.interactive ? 'upgrade-interactive' : 'upgrade',
128
+ '--latest'
80
129
  ];
81
130
  if (registry) {
82
- ncuArgs.push("--registry", registry);
131
+ updateOptions.push('--registry', registry);
83
132
  }
84
- await execa(ncuCommand, ncuArgs, {
85
- encoding: "utf8",
86
- stdio: "inherit"
133
+ await execa(updateApp, updateOptions, {
134
+ encoding: 'utf8',
135
+ stdio: 'inherit'
87
136
  });
88
- } catch (installError) {
89
- log(`Failed to install or use npm-check-updates: ${installError.message}`, "error", quiet);
90
- log("Please install npm-check-updates manually: npm install -g npm-check-updates", "info", quiet);
91
- throw installError;
92
- }
93
137
  }
94
- }
95
- await execa("npm", ["i", "--force"], {
96
- encoding: "utf8",
97
- stdio: "inherit"
98
- });
99
- await execa("npm", ["audit", "fix"], {
100
- encoding: "utf8",
101
- stdio: "inherit"
102
- });
103
- } else {
104
- const updateApp = "yarn";
105
- const updateOptions = [cmd.interactive ? "upgrade-interactive" : "upgrade", "--latest"];
106
- if (registry) {
107
- updateOptions.push("--registry", registry);
108
- }
109
- await execa(updateApp, updateOptions, {
110
- encoding: "utf8",
111
- stdio: "inherit"
112
- });
138
+ spinner.succeed('Successfully updated packages!');
139
+ callback(0);
140
+ return 0;
141
+ } catch (error) {
142
+ log(`\n${cliName} Error: ${error.message}`, 'error', quiet);
143
+ spinner.fail('Failed to update packages.');
144
+ callback(1);
145
+ return 1;
113
146
  }
114
- spinner.succeed("Successfully updated packages!");
115
- callback(0);
116
- return 0;
117
- } catch (error) {
118
- log(`
119
- ${cliName} Error: ${error.message}`, "error", quiet);
120
- spinner.fail("Failed to update packages.");
121
- callback(1);
122
- return 1;
123
- }
124
- };
125
- export {
126
- update
127
147
  };
128
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3VwZGF0ZS91cGRhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2V4ZWNhfSBmcm9tICdleGVjYSc7XG5cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi8uLi9MZXhDb25maWcuanMnO1xuaW1wb3J0IHtjcmVhdGVTcGlubmVyfSBmcm9tICcuLi8uLi91dGlscy9hcHAuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGludGVyYWN0aXZlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcmVnaXN0cnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUNhbGxiYWNrID0gdHlwZW9mIHByb2Nlc3MuZXhpdDtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZSA9IGFzeW5jIChjbWQ6IFVwZGF0ZU9wdGlvbnMsIGNhbGxiYWNrOiBVcGRhdGVDYWxsYmFjayA9IHByb2Nlc3MuZXhpdCk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIHBhY2thZ2VNYW5hZ2VyOiBjbWRQYWNrYWdlTWFuYWdlciwgcXVpZXQsIHJlZ2lzdHJ5fSA9IGNtZDtcblxuICBsb2coYCR7Y2xpTmFtZX0gdXBkYXRpbmcgcGFja2FnZXMuLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgYXdhaXQgTGV4Q29uZmlnLnBhcnNlQ29uZmlnKGNtZCk7XG5cbiAgY29uc3Qge3BhY2thZ2VNYW5hZ2VyOiBjb25maWdQYWNrYWdlTWFuYWdlcn0gPSBMZXhDb25maWcuY29uZmlnO1xuICBjb25zdCBwYWNrYWdlTWFuYWdlcjogc3RyaW5nID0gY21kUGFja2FnZU1hbmFnZXIgfHwgY29uZmlnUGFja2FnZU1hbmFnZXIgfHwgJ25wbSc7XG4gIGNvbnN0IGlzTnBtOiBib29sZWFuID0gcGFja2FnZU1hbmFnZXIgPT09ICducG0nO1xuXG4gIHRyeSB7XG4gICAgaWYoaXNOcG0pIHtcbiAgICAgIGxldCBuY3VDb21tYW5kOiBzdHJpbmc7XG4gICAgICBsZXQgbmN1QXJnczogc3RyaW5nW107XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIG5jdUNvbW1hbmQgPSAnbnB4JztcbiAgICAgICAgbmN1QXJncyA9IFtcbiAgICAgICAgICAnbnBtLWNoZWNrLXVwZGF0ZXMnLFxuICAgICAgICAgICctLWNvbmN1cnJlbmN5JywgJzEwJyxcbiAgICAgICAgICAnLS1wYWNrYWdlTWFuYWdlcicsIHBhY2thZ2VNYW5hZ2VyLFxuICAgICAgICAgICctLXByZScsICcwJyxcbiAgICAgICAgICAnLS10YXJnZXQnLCAnbGF0ZXN0JyxcbiAgICAgICAgICAuLi4oY21kLmludGVyYWN0aXZlID8gWyctLWludGVyYWN0aXZlJ10gOiBbXSksXG4gICAgICAgICAgJy0tdXBncmFkZSdcbiAgICAgICAgXTtcblxuICAgICAgICBpZihyZWdpc3RyeSkge1xuICAgICAgICAgIG5jdUFyZ3MucHVzaCgnLS1yZWdpc3RyeScsIHJlZ2lzdHJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGV4ZWNhKG5jdUNvbW1hbmQsIG5jdUFyZ3MsIHtcbiAgICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuY3VDb21tYW5kID0gJ25wbS1jaGVjay11cGRhdGVzJztcbiAgICAgICAgICBuY3VBcmdzID0gW1xuICAgICAgICAgICAgJy0tY29uY3VycmVuY3knLCAnMTAnLFxuICAgICAgICAgICAgJy0tcGFja2FnZU1hbmFnZXInLCBwYWNrYWdlTWFuYWdlcixcbiAgICAgICAgICAgICctLXByZScsICcwJyxcbiAgICAgICAgICAgICctLXRhcmdldCcsICdsYXRlc3QnLFxuICAgICAgICAgICAgLi4uKGNtZC5pbnRlcmFjdGl2ZSA/IFsnLS1pbnRlcmFjdGl2ZSddIDogW10pLFxuICAgICAgICAgICAgJy0tdXBncmFkZSdcbiAgICAgICAgICBdO1xuXG4gICAgICAgICAgaWYocmVnaXN0cnkpIHtcbiAgICAgICAgICAgIG5jdUFyZ3MucHVzaCgnLS1yZWdpc3RyeScsIHJlZ2lzdHJ5KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCBleGVjYShuY3VDb21tYW5kLCBuY3VBcmdzLCB7XG4gICAgICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICBsb2coJ25wbS1jaGVjay11cGRhdGVzIG5vdCBmb3VuZC4gSW5zdGFsbGluZyBpdCBnbG9iYWxseS4uLicsICdpbmZvJywgcXVpZXQpO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGV4ZWNhKCducG0nLCBbJ2luc3RhbGwnLCAnLWcnLCAnbnBtLWNoZWNrLXVwZGF0ZXMnXSwge1xuICAgICAgICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICAgICAgICBzdGRpbzogJ2luaGVyaXQnXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbmN1Q29tbWFuZCA9ICducG0tY2hlY2stdXBkYXRlcyc7XG4gICAgICAgICAgICBuY3VBcmdzID0gW1xuICAgICAgICAgICAgICAnLS1jb25jdXJyZW5jeScsICcxMCcsXG4gICAgICAgICAgICAgICctLXBhY2thZ2VNYW5hZ2VyJywgcGFja2FnZU1hbmFnZXIsXG4gICAgICAgICAgICAgICctLXByZScsICcwJyxcbiAgICAgICAgICAgICAgJy0tdGFyZ2V0JywgJ2xhdGVzdCcsXG4gICAgICAgICAgICAgIC4uLihjbWQuaW50ZXJhY3RpdmUgPyBbJy0taW50ZXJhY3RpdmUnXSA6IFtdKSxcbiAgICAgICAgICAgICAgJy0tdXBncmFkZSdcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIGlmKHJlZ2lzdHJ5KSB7XG4gICAgICAgICAgICAgIG5jdUFyZ3MucHVzaCgnLS1yZWdpc3RyeScsIHJlZ2lzdHJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgZXhlY2EobmN1Q29tbWFuZCwgbmN1QXJncywge1xuICAgICAgICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICAgICAgICBzdGRpbzogJ2luaGVyaXQnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIChpbnN0YWxsRXJyb3IpIHtcbiAgICAgICAgICAgIGxvZyhgRmFpbGVkIHRvIGluc3RhbGwgb3IgdXNlIG5wbS1jaGVjay11cGRhdGVzOiAke2luc3RhbGxFcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgICAgICAgIGxvZygnUGxlYXNlIGluc3RhbGwgbnBtLWNoZWNrLXVwZGF0ZXMgbWFudWFsbHk6IG5wbSBpbnN0YWxsIC1nIG5wbS1jaGVjay11cGRhdGVzJywgJ2luZm8nLCBxdWlldCk7XG4gICAgICAgICAgICB0aHJvdyBpbnN0YWxsRXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFmdGVyIHN1Y2Nlc3NmdWwgdXBkYXRlLCBydW4gbnBtIGluc3RhbGwgYW5kIGF1ZGl0IGZpeFxuICAgICAgYXdhaXQgZXhlY2EoJ25wbScsIFsnaScsICctLWZvcmNlJ10sIHtcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IGV4ZWNhKCducG0nLCBbJ2F1ZGl0JywgJ2ZpeCddLCB7XG4gICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgeWFyblxuICAgICAgY29uc3QgdXBkYXRlQXBwID0gJ3lhcm4nO1xuICAgICAgY29uc3QgdXBkYXRlT3B0aW9uczogc3RyaW5nW10gPSBbY21kLmludGVyYWN0aXZlID8gJ3VwZ3JhZGUtaW50ZXJhY3RpdmUnIDogJ3VwZ3JhZGUnLCAnLS1sYXRlc3QnXTtcblxuICAgICAgaWYocmVnaXN0cnkpIHtcbiAgICAgICAgdXBkYXRlT3B0aW9ucy5wdXNoKCctLXJlZ2lzdHJ5JywgcmVnaXN0cnkpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBleGVjYSh1cGRhdGVBcHAsIHVwZGF0ZU9wdGlvbnMsIHtcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3Bpbm5lci5zdWNjZWVkKCdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwYWNrYWdlcyEnKTtcblxuICAgIGNhbGxiYWNrKDApO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgIHNwaW5uZXIuZmFpbCgnRmFpbGVkIHRvIHVwZGF0ZSBwYWNrYWdlcy4nKTtcblxuICAgIGNhbGxiYWNrKDEpO1xuICAgIHJl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
148
+
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91cGRhdGUvdXBkYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2V4ZWNhfSBmcm9tICdleGVjYSc7XG5cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi8uLi9MZXhDb25maWcuanMnO1xuaW1wb3J0IHtjcmVhdGVTcGlubmVyfSBmcm9tICcuLi8uLi91dGlscy9hcHAuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGludGVyYWN0aXZlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcmVnaXN0cnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUNhbGxiYWNrID0gdHlwZW9mIHByb2Nlc3MuZXhpdDtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZSA9IGFzeW5jIChjbWQ6IFVwZGF0ZU9wdGlvbnMsIGNhbGxiYWNrOiBVcGRhdGVDYWxsYmFjayA9IHByb2Nlc3MuZXhpdCk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIHBhY2thZ2VNYW5hZ2VyOiBjbWRQYWNrYWdlTWFuYWdlciwgcXVpZXQsIHJlZ2lzdHJ5fSA9IGNtZDtcblxuICBsb2coYCR7Y2xpTmFtZX0gdXBkYXRpbmcgcGFja2FnZXMuLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgYXdhaXQgTGV4Q29uZmlnLnBhcnNlQ29uZmlnKGNtZCk7XG5cbiAgY29uc3Qge3BhY2thZ2VNYW5hZ2VyOiBjb25maWdQYWNrYWdlTWFuYWdlcn0gPSBMZXhDb25maWcuY29uZmlnO1xuICBjb25zdCBwYWNrYWdlTWFuYWdlcjogc3RyaW5nID0gY21kUGFja2FnZU1hbmFnZXIgfHwgY29uZmlnUGFja2FnZU1hbmFnZXIgfHwgJ25wbSc7XG4gIGNvbnN0IGlzTnBtOiBib29sZWFuID0gcGFja2FnZU1hbmFnZXIgPT09ICducG0nO1xuXG4gIHRyeSB7XG4gICAgaWYoaXNOcG0pIHtcbiAgICAgIGxldCBuY3VDb21tYW5kOiBzdHJpbmc7XG4gICAgICBsZXQgbmN1QXJnczogc3RyaW5nW107XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIG5jdUNvbW1hbmQgPSAnbnB4JztcbiAgICAgICAgbmN1QXJncyA9IFtcbiAgICAgICAgICAnbnBtLWNoZWNrLXVwZGF0ZXMnLFxuICAgICAgICAgICctLWNvbmN1cnJlbmN5JywgJzEwJyxcbiAgICAgICAgICAnLS1wYWNrYWdlTWFuYWdlcicsIHBhY2thZ2VNYW5hZ2VyLFxuICAgICAgICAgICctLXByZScsICcwJyxcbiAgICAgICAgICAnLS10YXJnZXQnLCAnbGF0ZXN0JyxcbiAgICAgICAgICAuLi4oY21kLmludGVyYWN0aXZlID8gWyctLWludGVyYWN0aXZlJ10gOiBbXSksXG4gICAgICAgICAgJy0tdXBncmFkZSdcbiAgICAgICAgXTtcblxuICAgICAgICBpZihyZWdpc3RyeSkge1xuICAgICAgICAgIG5jdUFyZ3MucHVzaCgnLS1yZWdpc3RyeScsIHJlZ2lzdHJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGV4ZWNhKG5jdUNvbW1hbmQsIG5jdUFyZ3MsIHtcbiAgICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoe1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG5jdUNvbW1hbmQgPSAnbnBtLWNoZWNrLXVwZGF0ZXMnO1xuICAgICAgICAgIG5jdUFyZ3MgPSBbXG4gICAgICAgICAgICAnLS1jb25jdXJyZW5jeScsICcxMCcsXG4gICAgICAgICAgICAnLS1wYWNrYWdlTWFuYWdlcicsIHBhY2thZ2VNYW5hZ2VyLFxuICAgICAgICAgICAgJy0tcHJlJywgJzAnLFxuICAgICAgICAgICAgJy0tdGFyZ2V0JywgJ2xhdGVzdCcsXG4gICAgICAgICAgICAuLi4oY21kLmludGVyYWN0aXZlID8gWyctLWludGVyYWN0aXZlJ10gOiBbXSksXG4gICAgICAgICAgICAnLS11cGdyYWRlJ1xuICAgICAgICAgIF07XG5cbiAgICAgICAgICBpZihyZWdpc3RyeSkge1xuICAgICAgICAgICAgbmN1QXJncy5wdXNoKCctLXJlZ2lzdHJ5JywgcmVnaXN0cnkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGF3YWl0IGV4ZWNhKG5jdUNvbW1hbmQsIG5jdUFyZ3MsIHtcbiAgICAgICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgICAgICBzdGRpbzogJ2luaGVyaXQnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2h7XG4gICAgICAgICAgbG9nKCducG0tY2hlY2stdXBkYXRlcyBub3QgZm91bmQuIEluc3RhbGxpbmcgaXQgZ2xvYmFsbHkuLi4nLCAnaW5mbycsIHF1aWV0KTtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBleGVjYSgnbnBtJywgWydpbnN0YWxsJywgJy1nJywgJ25wbS1jaGVjay11cGRhdGVzJ10sIHtcbiAgICAgICAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgICAgICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5jdUNvbW1hbmQgPSAnbnBtLWNoZWNrLXVwZGF0ZXMnO1xuICAgICAgICAgICAgbmN1QXJncyA9IFtcbiAgICAgICAgICAgICAgJy0tY29uY3VycmVuY3knLCAnMTAnLFxuICAgICAgICAgICAgICAnLS1wYWNrYWdlTWFuYWdlcicsIHBhY2thZ2VNYW5hZ2VyLFxuICAgICAgICAgICAgICAnLS1wcmUnLCAnMCcsXG4gICAgICAgICAgICAgICctLXRhcmdldCcsICdsYXRlc3QnLFxuICAgICAgICAgICAgICAuLi4oY21kLmludGVyYWN0aXZlID8gWyctLWludGVyYWN0aXZlJ10gOiBbXSksXG4gICAgICAgICAgICAgICctLXVwZ3JhZGUnXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICBpZihyZWdpc3RyeSkge1xuICAgICAgICAgICAgICBuY3VBcmdzLnB1c2goJy0tcmVnaXN0cnknLCByZWdpc3RyeSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IGV4ZWNhKG5jdUNvbW1hbmQsIG5jdUFyZ3MsIHtcbiAgICAgICAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgICAgICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaChpbnN0YWxsRXJyb3IpIHtcbiAgICAgICAgICAgIGxvZyhgRmFpbGVkIHRvIGluc3RhbGwgb3IgdXNlIG5wbS1jaGVjay11cGRhdGVzOiAke2luc3RhbGxFcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgICAgICAgIGxvZygnUGxlYXNlIGluc3RhbGwgbnBtLWNoZWNrLXVwZGF0ZXMgbWFudWFsbHk6IG5wbSBpbnN0YWxsIC1nIG5wbS1jaGVjay11cGRhdGVzJywgJ2luZm8nLCBxdWlldCk7XG4gICAgICAgICAgICB0aHJvdyBpbnN0YWxsRXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFmdGVyIHN1Y2Nlc3NmdWwgdXBkYXRlLCBydW4gbnBtIGluc3RhbGwgYW5kIGF1ZGl0IGZpeFxuICAgICAgYXdhaXQgZXhlY2EoJ25wbScsIFsnaScsICctLWZvcmNlJ10sIHtcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IGV4ZWNhKCducG0nLCBbJ2F1ZGl0JywgJ2ZpeCddLCB7XG4gICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgeWFyblxuICAgICAgY29uc3QgdXBkYXRlQXBwID0gJ3lhcm4nO1xuICAgICAgY29uc3QgdXBkYXRlT3B0aW9uczogc3RyaW5nW10gPSBbY21kLmludGVyYWN0aXZlID8gJ3VwZ3JhZGUtaW50ZXJhY3RpdmUnIDogJ3VwZ3JhZGUnLCAnLS1sYXRlc3QnXTtcblxuICAgICAgaWYocmVnaXN0cnkpIHtcbiAgICAgICAgdXBkYXRlT3B0aW9ucy5wdXNoKCctLXJlZ2lzdHJ5JywgcmVnaXN0cnkpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBleGVjYSh1cGRhdGVBcHAsIHVwZGF0ZU9wdGlvbnMsIHtcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3Bpbm5lci5zdWNjZWVkKCdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwYWNrYWdlcyEnKTtcblxuICAgIGNhbGxiYWNrKDApO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuXG4gICAgc3Bpbm5lci5mYWlsKCdGYWlsZWQgdG8gdXBkYXRlIHBhY2thZ2VzLicpO1xuXG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cbn07Il0sIm5hbWVzIjpbImV4ZWNhIiwiTGV4Q29uZmlnIiwiY3JlYXRlU3Bpbm5lciIsImxvZyIsInVwZGF0ZSIsImNtZCIsImNhbGxiYWNrIiwicHJvY2VzcyIsImV4aXQiLCJjbGlOYW1lIiwicGFja2FnZU1hbmFnZXIiLCJjbWRQYWNrYWdlTWFuYWdlciIsInF1aWV0IiwicmVnaXN0cnkiLCJzcGlubmVyIiwicGFyc2VDb25maWciLCJjb25maWdQYWNrYWdlTWFuYWdlciIsImNvbmZpZyIsImlzTnBtIiwibmN1Q29tbWFuZCIsIm5jdUFyZ3MiLCJpbnRlcmFjdGl2ZSIsInB1c2giLCJlbmNvZGluZyIsInN0ZGlvIiwiaW5zdGFsbEVycm9yIiwibWVzc2FnZSIsInVwZGF0ZUFwcCIsInVwZGF0ZU9wdGlvbnMiLCJzdWNjZWVkIiwiZXJyb3IiLCJmYWlsIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxLQUFLLFFBQU8sUUFBUTtBQUU1QixTQUFRQyxTQUFTLFFBQU8scUJBQXFCO0FBQzdDLFNBQVFDLGFBQWEsUUFBTyxxQkFBcUI7QUFDakQsU0FBUUMsR0FBRyxRQUFPLHFCQUFxQjtBQVl2QyxPQUFPLE1BQU1DLFNBQVMsT0FBT0MsS0FBb0JDLFdBQTJCQyxRQUFRQyxJQUFJO0lBQ3RGLE1BQU0sRUFBQ0MsVUFBVSxLQUFLLEVBQUVDLGdCQUFnQkMsaUJBQWlCLEVBQUVDLEtBQUssRUFBRUMsUUFBUSxFQUFDLEdBQUdSO0lBRTlFRixJQUFJLEdBQUdNLFFBQVEscUJBQXFCLENBQUMsRUFBRSxRQUFRRztJQUUvQyxNQUFNRSxVQUFVWixjQUFjVTtJQUU5QixNQUFNWCxVQUFVYyxXQUFXLENBQUNWO0lBRTVCLE1BQU0sRUFBQ0ssZ0JBQWdCTSxvQkFBb0IsRUFBQyxHQUFHZixVQUFVZ0IsTUFBTTtJQUMvRCxNQUFNUCxpQkFBeUJDLHFCQUFxQkssd0JBQXdCO0lBQzVFLE1BQU1FLFFBQWlCUixtQkFBbUI7SUFFMUMsSUFBSTtRQUNGLElBQUdRLE9BQU87WUFDUixJQUFJQztZQUNKLElB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
@@ -1,47 +1,54 @@
1
- import { compareVersions } from "compare-versions";
2
- import { execa } from "execa";
3
- import { readFileSync } from "fs";
4
- import latestVersion from "latest-version";
5
- import { LexConfig } from "../../LexConfig.js";
6
- import { createSpinner } from "../../utils/app.js";
7
- import { getLexPackageJsonPath } from "../../utils/file.js";
8
- import { log } from "../../utils/log.js";
9
- import { parseVersion } from "../versions/versions.js";
1
+ import { compareVersions } from 'compare-versions';
2
+ import { execa } from 'execa';
3
+ import { readFileSync } from 'fs';
4
+ import latestVersion from 'latest-version';
5
+ import { LexConfig } from '../../LexConfig.js';
6
+ import { createSpinner } from '../../utils/app.js';
7
+ import { getLexPackageJsonPath } from '../../utils/file.js';
8
+ import { log } from '../../utils/log.js';
9
+ import { parseVersion } from '../versions/versions.js';
10
10
  const packagePath = getLexPackageJsonPath();
11
- const packageJson = JSON.parse(readFileSync(packagePath, "utf8"));
12
- const upgrade = async (cmd, callback = process.exit) => {
13
- const { cliName = "Lex", cliPackage = "@nlabs/lex", quiet } = cmd;
14
- log(`Upgrading ${cliName}...`, "info", quiet);
15
- const spinner = createSpinner(quiet);
16
- await LexConfig.parseConfig(cmd);
17
- return latestVersion("@nlabs/lex").then(async (latest) => {
18
- const current = parseVersion(packageJson.version);
19
- const versionDiff = compareVersions(latest, current);
20
- if (versionDiff === 0) {
21
- log(`
22
- Currently up-to-date. Version ${latest} is the latest.`, "note", quiet);
23
- callback(0);
24
- return 0;
25
- }
26
- log(`
27
- Currently out of date. Upgrading from version ${current} to ${latest}...`, "note", quiet);
28
- const upgradeOptions = ["install", "-g", `${cliPackage}@latest`];
29
- await execa("npm", upgradeOptions, {
30
- encoding: "utf8",
31
- stdio: "inherit"
11
+ const packageJson = JSON.parse(readFileSync(packagePath, 'utf8'));
12
+ export const upgrade = async (cmd, callback = process.exit)=>{
13
+ const { cliName = 'Lex', cliPackage = '@nlabs/lex', quiet } = cmd;
14
+ // Display status
15
+ log(`Upgrading ${cliName}...`, 'info', quiet);
16
+ // Spinner
17
+ const spinner = createSpinner(quiet);
18
+ // Get custom configuration
19
+ await LexConfig.parseConfig(cmd);
20
+ return latestVersion('@nlabs/lex').then(async (latest)=>{
21
+ const current = parseVersion(packageJson.version);
22
+ const versionDiff = compareVersions(latest, current);
23
+ if (versionDiff === 0) {
24
+ log(`\nCurrently up-to-date. Version ${latest} is the latest.`, 'note', quiet);
25
+ callback(0);
26
+ return 0;
27
+ }
28
+ log(`\nCurrently out of date. Upgrading from version ${current} to ${latest}...`, 'note', quiet);
29
+ const upgradeOptions = [
30
+ 'install',
31
+ '-g',
32
+ `${cliPackage}@latest`
33
+ ];
34
+ await execa('npm', upgradeOptions, {
35
+ encoding: 'utf8',
36
+ stdio: 'inherit'
37
+ });
38
+ // Stop loader
39
+ spinner.succeed(`Successfully updated ${cliName}!`);
40
+ // Stop process
41
+ callback(0);
42
+ return 0;
43
+ }).catch((error)=>{
44
+ // Display error message
45
+ log(`\n${cliName} Error: ${error.message}`, 'error', quiet);
46
+ // Stop spinner
47
+ spinner.fail('Failed to updated packages.');
48
+ // Kill process
49
+ callback(1);
50
+ return 1;
32
51
  });
33
- spinner.succeed(`Successfully updated ${cliName}!`);
34
- callback(0);
35
- return 0;
36
- }).catch((error) => {
37
- log(`
38
- ${cliName} Error: ${error.message}`, "error", quiet);
39
- spinner.fail("Failed to updated packages.");
40
- callback(1);
41
- return 1;
42
- });
43
52
  };
44
- export {
45
- upgrade
46
- };
47
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3VwZ3JhZGUvdXBncmFkZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtjb21wYXJlVmVyc2lvbnN9IGZyb20gJ2NvbXBhcmUtdmVyc2lvbnMnO1xuaW1wb3J0IHtleGVjYX0gZnJvbSAnZXhlY2EnO1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCBsYXRlc3RWZXJzaW9uIGZyb20gJ2xhdGVzdC12ZXJzaW9uJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXJ9IGZyb20gJy4uLy4uL3V0aWxzL2FwcC5qcyc7XG5pbXBvcnQge2dldExleFBhY2thZ2VKc29uUGF0aH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZS5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJztcbmltcG9ydCB7cGFyc2VWZXJzaW9ufSBmcm9tICcuLi92ZXJzaW9ucy92ZXJzaW9ucy5qcyc7XG5cbmNvbnN0IHBhY2thZ2VQYXRoID0gZ2V0TGV4UGFja2FnZUpzb25QYXRoKCk7XG5jb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhY2thZ2VQYXRoLCAndXRmOCcpKTtcblxuZXhwb3J0IGludGVyZmFjZSBVcGdyYWRlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaVBhY2thZ2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgVXBncmFkZUNhbGxiYWNrID0gdHlwZW9mIHByb2Nlc3MuZXhpdDtcblxuZXhwb3J0IGNvbnN0IHVwZ3JhZGUgPSBhc3luYyAoY21kOiBVcGdyYWRlT3B0aW9ucywgY2FsbGJhY2s6IFVwZ3JhZGVDYWxsYmFjayA9IHByb2Nlc3MuZXhpdCk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGNsaVBhY2thZ2UgPSAnQG5sYWJzL2xleCcsIHF1aWV0fSA9IGNtZDtcblxuICAvLyBEaXNwbGF5IHN0YXR1c1xuICBsb2coYFVwZ3JhZGluZyAke2NsaU5hbWV9Li4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgLy8gU3Bpbm5lclxuICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjb25maWd1cmF0aW9uXG4gIGF3YWl0IExleENvbmZpZy5wYXJzZUNvbmZpZyhjbWQpO1xuXG4gIHJldHVybiBsYXRlc3RWZXJzaW9uKCdAbmxhYnMvbGV4JylcbiAgICAudGhlbihhc3luYyAobGF0ZXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IHN0cmluZyA9IHBhcnNlVmVyc2lvbihwYWNrYWdlSnNvbi52ZXJzaW9uKTtcbiAgICAgIGNvbnN0IHZlcnNpb25EaWZmOiBudW1iZXIgPSBjb21wYXJlVmVyc2lvbnMobGF0ZXN0LCBjdXJyZW50KTtcblxuICAgICAgaWYodmVyc2lvbkRpZmYgPT09IDApIHtcbiAgICAgICAgbG9nKGBcXG5DdXJyZW50bHkgdXAtdG8tZGF0ZS4gVmVyc2lvbiAke2xhdGVzdH0gaXMgdGhlIGxhdGVzdC5gLCAnbm90ZScsIHF1aWV0KTtcbiAgICAgICAgY2FsbGJhY2soMCk7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICBsb2coYFxcbkN1cnJlbnRseSBvdXQgb2YgZGF0ZS4gVXBncmFkaW5nIGZyb20gdmVyc2lvbiAke2N1cnJlbnR9IHRvICR7bGF0ZXN0fS4uLmAsICdub3RlJywgcXVpZXQpO1xuXG4gICAgICBjb25zdCB1cGdyYWRlT3B0aW9uczogc3RyaW5nW10gPSBbJ2luc3RhbGwnLCAnLWcnLCBgJHtjbGlQYWNrYWdlfUBsYXRlc3RgXTtcblxuICAgICAgYXdhaXQgZXhlY2EoJ25wbScsIHVwZ3JhZGVPcHRpb25zLCB7XG4gICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTdG9wIGxvYWRlclxuICAgICAgc3Bpbm5lci5zdWNjZWVkKGBTdWNjZXNzZnVsbHkgdXBkYXRlZCAke2NsaU5hbWV9IWApO1xuXG4gICAgICAvLyBTdG9wIHByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKDApO1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byB1cGRhdGVkIHBhY2thZ2VzLicpO1xuXG4gICAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSk7XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVEsdUJBQXNCO0FBQzlCLFNBQVEsYUFBWTtBQUNwQixTQUFRLG9CQUFtQjtBQUMzQixPQUFPLG1CQUFtQjtBQUUxQixTQUFRLGlCQUFnQjtBQUN4QixTQUFRLHFCQUFvQjtBQUM1QixTQUFRLDZCQUE0QjtBQUNwQyxTQUFRLFdBQVU7QUFDbEIsU0FBUSxvQkFBbUI7QUFFM0IsTUFBTSxjQUFjLHNCQUFzQjtBQUMxQyxNQUFNLGNBQWMsS0FBSyxNQUFNLGFBQWEsYUFBYSxNQUFNLENBQUM7QUFVekQsTUFBTSxVQUFVLE9BQU8sS0FBcUIsV0FBNEIsUUFBUSxTQUEwQjtBQUMvRyxRQUFNLEVBQUMsVUFBVSxPQUFPLGFBQWEsY0FBYyxNQUFLLElBQUk7QUFHNUQsTUFBSSxhQUFhLE9BQU8sT0FBTyxRQUFRLEtBQUs7QUFHNUMsUUFBTSxVQUFVLGNBQWMsS0FBSztBQUduQyxRQUFNLFVBQVUsWUFBWSxHQUFHO0FBRS9CLFNBQU8sY0FBYyxZQUFZLEVBQzlCLEtBQUssT0FBTyxXQUFtQjtBQUM5QixVQUFNLFVBQWtCLGFBQWEsWUFBWSxPQUFPO0FBQ3hELFVBQU0sY0FBc0IsZ0JBQWdCLFFBQVEsT0FBTztBQUUzRCxRQUFHLGdCQUFnQixHQUFHO0FBQ3BCLFVBQUk7QUFBQSxnQ0FBbUMsTUFBTSxtQkFBbUIsUUFBUSxLQUFLO0FBQzdFLGVBQVMsQ0FBQztBQUNWLGFBQU87QUFBQSxJQUNUO0FBRUEsUUFBSTtBQUFBLGdEQUFtRCxPQUFPLE9BQU8sTUFBTSxPQUFPLFFBQVEsS0FBSztBQUUvRixVQUFNLGlCQUEyQixDQUFDLFdBQVcsTUFBTSxHQUFHLFVBQVUsU0FBUztBQUV6RSxVQUFNLE1BQU0sT0FBTyxnQkFBZ0I7QUFBQSxNQUNqQyxVQUFVO0FBQUEsTUFDVixPQUFPO0FBQUEsSUFDVCxDQUFDO0FBR0QsWUFBUSxRQUFRLHdCQUF3QixPQUFPLEdBQUc7QUFHbEQsYUFBUyxDQUFDO0FBQ1YsV0FBTztBQUFBLEVBQ1QsQ0FBQyxFQUNBLE1BQU0sQ0FBQyxVQUFVO0FBRWhCLFFBQUk7QUFBQSxFQUFLLE9BQU8sV0FBVyxNQUFNLE9BQU8sSUFBSSxTQUFTLEtBQUs7QUFHMUQsWUFBUSxLQUFLLDZCQUE2QjtBQUcxQyxhQUFTLENBQUM7QUFDVixXQUFPO0FBQUEsRUFDVCxDQUFDO0FBQ0w7IiwKICAibmFtZXMiOiBbXQp9Cg==
53
+
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91cGdyYWRlL3VwZ3JhZGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb21wYXJlVmVyc2lvbnN9IGZyb20gJ2NvbXBhcmUtdmVyc2lvbnMnO1xuaW1wb3J0IHtleGVjYX0gZnJvbSAnZXhlY2EnO1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCBsYXRlc3RWZXJzaW9uIGZyb20gJ2xhdGVzdC12ZXJzaW9uJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXJ9IGZyb20gJy4uLy4uL3V0aWxzL2FwcC5qcyc7XG5pbXBvcnQge2dldExleFBhY2thZ2VKc29uUGF0aH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZS5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJztcbmltcG9ydCB7cGFyc2VWZXJzaW9ufSBmcm9tICcuLi92ZXJzaW9ucy92ZXJzaW9ucy5qcyc7XG5cbmNvbnN0IHBhY2thZ2VQYXRoID0gZ2V0TGV4UGFja2FnZUpzb25QYXRoKCk7XG5jb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhY2thZ2VQYXRoLCAndXRmOCcpKTtcblxuZXhwb3J0IGludGVyZmFjZSBVcGdyYWRlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaVBhY2thZ2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgVXBncmFkZUNhbGxiYWNrID0gdHlwZW9mIHByb2Nlc3MuZXhpdDtcblxuZXhwb3J0IGNvbnN0IHVwZ3JhZGUgPSBhc3luYyAoY21kOiBVcGdyYWRlT3B0aW9ucywgY2FsbGJhY2s6IFVwZ3JhZGVDYWxsYmFjayA9IHByb2Nlc3MuZXhpdCk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGNsaVBhY2thZ2UgPSAnQG5sYWJzL2xleCcsIHF1aWV0fSA9IGNtZDtcblxuICAvLyBEaXNwbGF5IHN0YXR1c1xuICBsb2coYFVwZ3JhZGluZyAke2NsaU5hbWV9Li4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgLy8gU3Bpbm5lclxuICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjb25maWd1cmF0aW9uXG4gIGF3YWl0IExleENvbmZpZy5wYXJzZUNvbmZpZyhjbWQpO1xuXG4gIHJldHVybiBsYXRlc3RWZXJzaW9uKCdAbmxhYnMvbGV4JylcbiAgICAudGhlbihhc3luYyAobGF0ZXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IHN0cmluZyA9IHBhcnNlVmVyc2lvbihwYWNrYWdlSnNvbi52ZXJzaW9uKTtcbiAgICAgIGNvbnN0IHZlcnNpb25EaWZmOiBudW1iZXIgPSBjb21wYXJlVmVyc2lvbnMobGF0ZXN0LCBjdXJyZW50KTtcblxuICAgICAgaWYodmVyc2lvbkRpZmYgPT09IDApIHtcbiAgICAgICAgbG9nKGBcXG5DdXJyZW50bHkgdXAtdG8tZGF0ZS4gVmVyc2lvbiAke2xhdGVzdH0gaXMgdGhlIGxhdGVzdC5gLCAnbm90ZScsIHF1aWV0KTtcbiAgICAgICAgY2FsbGJhY2soMCk7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICBsb2coYFxcbkN1cnJlbnRseSBvdXQgb2YgZGF0ZS4gVXBncmFkaW5nIGZyb20gdmVyc2lvbiAke2N1cnJlbnR9IHRvICR7bGF0ZXN0fS4uLmAsICdub3RlJywgcXVpZXQpO1xuXG4gICAgICBjb25zdCB1cGdyYWRlT3B0aW9uczogc3RyaW5nW10gPSBbJ2luc3RhbGwnLCAnLWcnLCBgJHtjbGlQYWNrYWdlfUBsYXRlc3RgXTtcblxuICAgICAgYXdhaXQgZXhlY2EoJ25wbScsIHVwZ3JhZGVPcHRpb25zLCB7XG4gICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTdG9wIGxvYWRlclxuICAgICAgc3Bpbm5lci5zdWNjZWVkKGBTdWNjZXNzZnVsbHkgdXBkYXRlZCAke2NsaU5hbWV9IWApO1xuXG4gICAgICAvLyBTdG9wIHByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKDApO1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byB1cGRhdGVkIHBhY2thZ2VzLicpO1xuXG4gICAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSk7XG59OyJdLCJuYW1lcyI6WyJjb21wYXJlVmVyc2lvbnMiLCJleGVjYSIsInJlYWRGaWxlU3luYyIsImxhdGVzdFZlcnNpb24iLCJMZXhDb25maWciLCJjcmVhdGVTcGlubmVyIiwiZ2V0TGV4UGFja2FnZUpzb25QYXRoIiwibG9nIiwicGFyc2VWZXJzaW9uIiwicGFja2FnZVBhdGgiLCJwYWNrYWdlSnNvbiIsIkpTT04iLCJwYXJzZSIsInVwZ3JhZGUiLCJjbWQiLCJjYWxsYmFjayIsInByb2Nlc3MiLCJleGl0IiwiY2xpTmFtZSIsImNsaVBhY2thZ2UiLCJxdWlldCIsInNwaW5uZXIiLCJwYXJzZUNvbmZpZyIsInRoZW4iLCJsYXRlc3QiLCJjdXJyZW50IiwidmVyc2lvbiIsInZlcnNpb25EaWZmIiwidXBncmFkZU9wdGlvbnMiLCJlbmNvZGluZyIsInN0ZGlvIiwic3VjY2VlZCIsImNhdGNoIiwiZXJyb3IiLCJtZXNzYWdlIiwiZmFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsZUFBZSxRQUFPLG1CQUFtQjtBQUNqRCxTQUFRQyxLQUFLLFFBQU8sUUFBUTtBQUM1QixTQUFRQyxZQUFZLFFBQU8sS0FBSztBQUNoQyxPQUFPQyxtQkFBbUIsaUJBQWlCO0FBRTNDLFNBQVFDLFNBQVMsUUFBTyxxQkFBcUI7QUFDN0MsU0FBUUMsYUFBYSxRQUFPLHFCQUFxQjtBQUNqRCxTQUFRQyxxQkFBcUIsUUFBTyxzQkFBc0I7QUFDMUQsU0FBUUMsR0FBRyxRQUFPLHFCQUFxQjtBQUN2QyxTQUFRQyxZQUFZLFFBQU8sMEJBQTBCO0FBRXJELE1BQU1DLGNBQWNIO0FBQ3BCLE1BQU1JLGNBQWNDLEtBQUtDLEtBQUssQ0FBQ1YsYUFBYU8sYUFBYTtBQVV6RCxPQUFPLE1BQU1JLFVBQVUsT0FBT0MsS0FBcUJDLFdBQTRCQyxRQUFRQyxJQUFJO0lBQ3pGLE1BQU0sRUFBQ0MsVUFBVSxLQUFLLEVBQUVDLGFBQWEsWUFBWSxFQUFFQyxLQUFLLEVBQUMsR0FBR047SUFFNUQsaUJBQWlCO0lBQ2pCUCxJQUFJLENBQUMsVUFBVSxFQUFFVyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVFFO0lBRXZDLFVBQVU7SUFDVixNQUFNQyxVQUFVaEIsY0FBY2U7SUFFOUIsMkJBQTJCO0lBQzNCLE1BQU1oQixVQUFVa0IsV0FBVyxDQUFDUjtJQUU1QixPQUFPWCxjQUFjLGNBQ2xCb0IsSUFBSSxDQUFDLE9BQU9DO1FBQ1gsTUFBTUMsVUFBa0JqQixhQUFhRSxZQUFZZ0IsT0FBTztRQUN4RCxNQUFNQyxjQUFzQjNCLGdCQUFnQndCLFFBQVFDO1FBRXBELElBQUdFLGdCQUFnQixHQUFHO1lBQ3BCcEIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFaUIsT0FBTyxlQUFlLENBQUMsRUFBRSxRQUFRSjtZQUN4RUwsU0FBUztZQUNULE9BQU87UUFDVDtRQUVBUixJQUFJLENBQUMsZ0RBQWdELEVBQUVrQixRQUFRLElBQUksRUFBRUQsT0FBTyxHQUFHLENBQUMsRUFBRSxRQUFRSjtRQUUxRixNQUFNUSxpQkFBMkI7WUFBQztZQUFXO1lBQU0sR0FBR1QsV0FBVyxPQUFPLENBQUM7U0FBQztRQUUxRSxNQUFNbEIsTUFBTSxPQUFPMkIsZ0JBQWdCO1lBQ2pDQyxVQUFVO1lBQ1ZDLE9BQU87UUFDVDtRQUVBLGNBQWM7UUFDZFQsUUFBUVUsT0FBTyxDQUFDLENBQUMscUJBQXFCLEVBQUViLFFBQVEsQ0FBQyxDQUFDO1FBRWxELGVBQWU7UUFDZkgsU0FBUztRQUNULE9BQU87SUFDVCxHQUNDaUIsS0FBSyxDQUFDLENBQUNDO1FBQ04sd0JBQXdCO1FBQ3hCMUIsSUFBSSxDQUFDLEVBQUUsRUFBRVcsUUFBUSxRQUFRLEVBQUVlLE1BQU1DLE9BQU8sRUFBRSxFQUFFLFNBQVNkO1FBRXJELGVBQWU7UUFDZkMsUUFBUWMsSUFBSSxDQUFDO1FBRWIsZUFBZTtRQUNmcEIsU0FBUztRQUNULE9BQU87SUFDVDtBQUNKLEVBQUUifQ==
@@ -1,8 +1,8 @@
1
1
  export declare const parseVersion: (packageVersion: string) => string;
2
2
  export declare const packages: {
3
- esbuild: string;
4
3
  jest: string;
5
4
  lex: any;
5
+ swc: string;
6
6
  typescript: string;
7
7
  webpack: string;
8
8
  };
@@ -1,41 +1,39 @@
1
- import { readFileSync } from "fs";
2
- import { getLexPackageJsonPath } from "../../utils/file.js";
3
- import { log } from "../../utils/log.js";
1
+ /**
2
+ * Copyright (c) 2018-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { readFileSync } from 'fs';
5
+ import { getLexPackageJsonPath } from '../../utils/file.js';
6
+ import { log } from '../../utils/log.js';
4
7
  const packagePath = getLexPackageJsonPath();
5
- const packageJson = JSON.parse(readFileSync(packagePath, "utf8"));
6
- const parseVersion = (packageVersion) => packageVersion?.replace(/\^/g, "") || "N/A";
7
- const packages = {
8
- esbuild: parseVersion(packageJson?.dependencies?.esbuild),
9
- jest: parseVersion(packageJson?.dependencies?.jest),
10
- lex: packageJson.version,
11
- typescript: parseVersion(packageJson?.dependencies?.typescript),
12
- webpack: parseVersion(packageJson?.dependencies?.webpack)
8
+ const packageJson = JSON.parse(readFileSync(packagePath, 'utf8'));
9
+ export const parseVersion = (packageVersion)=>packageVersion?.replace(/\^/g, '') || 'N/A';
10
+ export const packages = {
11
+ jest: parseVersion(packageJson?.dependencies?.jest),
12
+ lex: packageJson.version,
13
+ swc: parseVersion(packageJson?.dependencies?.['@swc/core']),
14
+ typescript: parseVersion(packageJson?.dependencies?.typescript),
15
+ webpack: parseVersion(packageJson?.dependencies?.webpack)
13
16
  };
14
- const jsonVersions = (lexPackages) => Object.keys(lexPackages).reduce((list, key) => {
15
- list[key] = packages[key];
16
- return list;
17
- }, {});
18
- const versions = (cmd, callback) => {
19
- if (cmd.json) {
20
- console.log(JSON.stringify(jsonVersions(packages)));
21
- } else {
22
- log("Versions:", "info", false);
23
- log(` Lex: ${packages.lex}`, "info", false);
24
- log(" ----------", "note", false);
25
- log(` ESBuild: ${packages.esbuild}`, "info", false);
26
- log(` Jest: ${packages.jest}`, "info", false);
27
- log(` Typescript: ${packages.typescript}`, "info", false);
28
- log(` Webpack: ${packages.webpack}`, "info", false);
29
- }
30
- if (callback) {
31
- callback(0);
32
- }
33
- return Promise.resolve(0);
17
+ export const jsonVersions = (lexPackages)=>Object.keys(lexPackages).reduce((list, key)=>{
18
+ list[key] = packages[key];
19
+ return list;
20
+ }, {});
21
+ export const versions = (cmd, callback)=>{
22
+ if (cmd.json) {
23
+ console.log(JSON.stringify(jsonVersions(packages)));
24
+ } else {
25
+ log('Versions:', 'info', false);
26
+ log(` Lex: ${packages.lex}`, 'info', false);
27
+ log(' ----------', 'note', false);
28
+ log(` SWC: ${packages.swc}`, 'info', false);
29
+ log(` Jest: ${packages.jest}`, 'info', false);
30
+ log(` Typescript: ${packages.typescript}`, 'info', false);
31
+ log(` Webpack: ${packages.webpack}`, 'info', false);
32
+ }
33
+ if (callback) {
34
+ callback(0);
35
+ }
36
+ return Promise.resolve(0);
34
37
  };
35
- export {
36
- jsonVersions,
37
- packages,
38
- parseVersion,
39
- versions
40
- };
41
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3ZlcnNpb25zL3ZlcnNpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcblxuaW1wb3J0IHtnZXRMZXhQYWNrYWdlSnNvblBhdGh9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbGUuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcyc7XG5cbmNvbnN0IHBhY2thZ2VQYXRoID0gZ2V0TGV4UGFja2FnZUpzb25QYXRoKCk7XG5jb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhY2thZ2VQYXRoLCAndXRmOCcpKTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVmVyc2lvbiA9IChwYWNrYWdlVmVyc2lvbjogc3RyaW5nKTogc3RyaW5nID0+IHBhY2thZ2VWZXJzaW9uPy5yZXBsYWNlKC9cXF4vZywgJycpIHx8ICdOL0EnO1xuXG5leHBvcnQgY29uc3QgcGFja2FnZXMgPSB7XG4gIGVzYnVpbGQ6IHBhcnNlVmVyc2lvbihwYWNrYWdlSnNvbj8uZGVwZW5kZW5jaWVzPy5lc2J1aWxkKSxcbiAgamVzdDogcGFyc2VWZXJzaW9uKHBhY2thZ2VKc29uPy5kZXBlbmRlbmNpZXM/Lmplc3QpLFxuICBsZXg6IHBhY2thZ2VKc29uLnZlcnNpb24sXG4gIHR5cGVzY3JpcHQ6IHBhcnNlVmVyc2lvbihwYWNrYWdlSnNvbj8uZGVwZW5kZW5jaWVzPy50eXBlc2NyaXB0KSxcbiAgd2VicGFjazogcGFyc2VWZXJzaW9uKHBhY2thZ2VKc29uPy5kZXBlbmRlbmNpZXM/LndlYnBhY2spXG59O1xuXG5leHBvcnQgY29uc3QganNvblZlcnNpb25zID0gKGxleFBhY2thZ2VzKSA9PiBPYmplY3Qua2V5cyhsZXhQYWNrYWdlcykucmVkdWNlKChsaXN0LCBrZXkpID0+IHtcbiAgbGlzdFtrZXldID0gcGFja2FnZXNba2V5XTtcbiAgcmV0dXJuIGxpc3Q7XG59LCB7fSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbnNDbWQge1xuICByZWFkb25seSBqc29uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IHZlcnNpb25zID0gKGNtZDogVmVyc2lvbnNDbWQsIGNhbGxiYWNrOiAoc3RhdHVzOiBudW1iZXIpID0+IHZvaWQpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBpZihjbWQuanNvbikge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb25WZXJzaW9ucyhwYWNrYWdlcykpKTtcbiAgfSBlbHNlIHtcbiAgICBsb2coJ1ZlcnNpb25zOicsICdpbmZvJywgZmFsc2UpO1xuICAgIGxvZyhgICBMZXg6ICR7cGFja2FnZXMubGV4fWAsICdpbmZvJywgZmFsc2UpO1xuICAgIGxvZygnICAtLS0tLS0tLS0tJywgJ25vdGUnLCBmYWxzZSk7XG4gICAgbG9nKGAgIEVTQnVpbGQ6ICR7cGFja2FnZXMuZXNidWlsZH1gLCAnaW5mbycsIGZhbHNlKTtcbiAgICBsb2coYCAgSmVzdDogJHtwYWNrYWdlcy5qZXN0fWAsICdpbmZvJywgZmFsc2UpO1xuICAgIGxvZyhgICBUeXBlc2NyaXB0OiAke3BhY2thZ2VzLnR5cGVzY3JpcHR9YCwgJ2luZm8nLCBmYWxzZSk7XG4gICAgbG9nKGAgIFdlYnBhY2s6ICR7cGFja2FnZXMud2VicGFja31gLCAnaW5mbycsIGZhbHNlKTtcbiAgfVxuXG4gIGlmKGNhbGxiYWNrKSB7XG4gICAgY2FsbGJhY2soMCk7XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDApO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFJQSxTQUFRLG9CQUFtQjtBQUUzQixTQUFRLDZCQUE0QjtBQUNwQyxTQUFRLFdBQVU7QUFFbEIsTUFBTSxjQUFjLHNCQUFzQjtBQUMxQyxNQUFNLGNBQWMsS0FBSyxNQUFNLGFBQWEsYUFBYSxNQUFNLENBQUM7QUFFekQsTUFBTSxlQUFlLENBQUMsbUJBQW1DLGdCQUFnQixRQUFRLE9BQU8sRUFBRSxLQUFLO0FBRS9GLE1BQU0sV0FBVztBQUFBLEVBQ3RCLFNBQVMsYUFBYSxhQUFhLGNBQWMsT0FBTztBQUFBLEVBQ3hELE1BQU0sYUFBYSxhQUFhLGNBQWMsSUFBSTtBQUFBLEVBQ2xELEtBQUssWUFBWTtBQUFBLEVBQ2pCLFlBQVksYUFBYSxhQUFhLGNBQWMsVUFBVTtBQUFBLEVBQzlELFNBQVMsYUFBYSxhQUFhLGNBQWMsT0FBTztBQUMxRDtBQUVPLE1BQU0sZUFBZSxDQUFDLGdCQUFnQixPQUFPLEtBQUssV0FBVyxFQUFFLE9BQU8sQ0FBQyxNQUFNLFFBQVE7QUFDMUYsT0FBSyxHQUFHLElBQUksU0FBUyxHQUFHO0FBQ3hCLFNBQU87QUFDVCxHQUFHLENBQUMsQ0FBQztBQU1FLE1BQU0sV0FBVyxDQUFDLEtBQWtCLGFBQXdEO0FBQ2pHLE1BQUcsSUFBSSxNQUFNO0FBQ1gsWUFBUSxJQUFJLEtBQUssVUFBVSxhQUFhLFFBQVEsQ0FBQyxDQUFDO0FBQUEsRUFDcEQsT0FBTztBQUNMLFFBQUksYUFBYSxRQUFRLEtBQUs7QUFDOUIsUUFBSSxVQUFVLFNBQVMsR0FBRyxJQUFJLFFBQVEsS0FBSztBQUMzQyxRQUFJLGdCQUFnQixRQUFRLEtBQUs7QUFDakMsUUFBSSxjQUFjLFNBQVMsT0FBTyxJQUFJLFFBQVEsS0FBSztBQUNuRCxRQUFJLFdBQVcsU0FBUyxJQUFJLElBQUksUUFBUSxLQUFLO0FBQzdDLFFBQUksaUJBQWlCLFNBQVMsVUFBVSxJQUFJLFFBQVEsS0FBSztBQUN6RCxRQUFJLGNBQWMsU0FBUyxPQUFPLElBQUksUUFBUSxLQUFLO0FBQUEsRUFDckQ7QUFFQSxNQUFHLFVBQVU7QUFDWCxhQUFTLENBQUM7QUFBQSxFQUNaO0FBRUEsU0FBTyxRQUFRLFFBQVEsQ0FBQztBQUMxQjsiLAogICJuYW1lcyI6IFtdCn0K
38
+
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy92ZXJzaW9ucy92ZXJzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcblxuaW1wb3J0IHtnZXRMZXhQYWNrYWdlSnNvblBhdGh9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbGUuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcyc7XG5cbmNvbnN0IHBhY2thZ2VQYXRoID0gZ2V0TGV4UGFja2FnZUpzb25QYXRoKCk7XG5jb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhY2thZ2VQYXRoLCAndXRmOCcpKTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVmVyc2lvbiA9IChwYWNrYWdlVmVyc2lvbjogc3RyaW5nKTogc3RyaW5nID0+IHBhY2thZ2VWZXJzaW9uPy5yZXBsYWNlKC9cXF4vZywgJycpIHx8ICdOL0EnO1xuXG5leHBvcnQgY29uc3QgcGFja2FnZXMgPSB7XG4gIGplc3Q6IHBhcnNlVmVyc2lvbihwYWNrYWdlSnNvbj8uZGVwZW5kZW5jaWVzPy5qZXN0KSxcbiAgbGV4OiBwYWNrYWdlSnNvbi52ZXJzaW9uLFxuICBzd2M6IHBhcnNlVmVyc2lvbihwYWNrYWdlSnNvbj8uZGVwZW5kZW5jaWVzPy5bJ0Bzd2MvY29yZSddKSxcbiAgdHlwZXNjcmlwdDogcGFyc2VWZXJzaW9uKHBhY2thZ2VKc29uPy5kZXBlbmRlbmNpZXM/LnR5cGVzY3JpcHQpLFxuICB3ZWJwYWNrOiBwYXJzZVZlcnNpb24ocGFja2FnZUpzb24/LmRlcGVuZGVuY2llcz8ud2VicGFjaylcbn07XG5cbmV4cG9ydCBjb25zdCBqc29uVmVyc2lvbnMgPSAobGV4UGFja2FnZXMpID0+IE9iamVjdC5rZXlzKGxleFBhY2thZ2VzKS5yZWR1Y2UoKGxpc3QsIGtleSkgPT4ge1xuICBsaXN0W2tleV0gPSBwYWNrYWdlc1trZXldO1xuICByZXR1cm4gbGlzdDtcbn0sIHt9KTtcblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uc0NtZCB7XG4gIHJlYWRvbmx5IGpzb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgdmVyc2lvbnMgPSAoY21kOiBWZXJzaW9uc0NtZCwgY2FsbGJhY2s6IChzdGF0dXM6IG51bWJlcikgPT4gdm9pZCk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGlmKGNtZC5qc29uKSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvblZlcnNpb25zKHBhY2thZ2VzKSkpO1xuICB9IGVsc2Uge1xuICAgIGxvZygnVmVyc2lvbnM6JywgJ2luZm8nLCBmYWxzZSk7XG4gICAgbG9nKGAgIExleDogJHtwYWNrYWdlcy5sZXh9YCwgJ2luZm8nLCBmYWxzZSk7XG4gICAgbG9nKCcgIC0tLS0tLS0tLS0nLCAnbm90ZScsIGZhbHNlKTtcbiAgICBsb2coYCAgU1dDOiAke3BhY2thZ2VzLnN3Y31gLCAnaW5mbycsIGZhbHNlKTtcbiAgICBsb2coYCAgSmVzdDogJHtwYWNrYWdlcy5qZXN0fWAsICdpbmZvJywgZmFsc2UpO1xuICAgIGxvZyhgICBUeXBlc2NyaXB0OiAke3BhY2thZ2VzLnR5cGVzY3JpcHR9YCwgJ2luZm8nLCBmYWxzZSk7XG4gICAgbG9nKGAgIFdlYnBhY2s6ICR7cGFja2FnZXMud2VicGFja31gLCAnaW5mbycsIGZhbHNlKTtcbiAgfVxuXG4gIGlmKGNhbGxiYWNrKSB7XG4gICAgY2FsbGJhY2soMCk7XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDApO1xufTsiXSwibmFtZXMiOlsicmVhZEZpbGVTeW5jIiwiZ2V0TGV4UGFja2FnZUpzb25QYXRoIiwibG9nIiwicGFja2FnZVBhdGgiLCJwYWNrYWdlSnNvbiIsIkpTT04iLCJwYXJzZSIsInBhcnNlVmVyc2lvbiIsInBhY2thZ2VWZXJzaW9uIiwicmVwbGFjZSIsInBhY2thZ2VzIiwiamVzdCIsImRlcGVuZGVuY2llcyIsImxleCIsInZlcnNpb24iLCJzd2MiLCJ0eXBlc2NyaXB0Iiwid2VicGFjayIsImpzb25WZXJzaW9ucyIsImxleFBhY2thZ2VzIiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsImxpc3QiLCJrZXkiLCJ2ZXJzaW9ucyIsImNtZCIsImNhbGxiYWNrIiwianNvbiIsImNvbnNvbGUiLCJzdHJpbmdpZnkiLCJQcm9taXNlIiwicmVzb2x2ZSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsWUFBWSxRQUFPLEtBQUs7QUFFaEMsU0FBUUMscUJBQXFCLFFBQU8sc0JBQXNCO0FBQzFELFNBQVFDLEdBQUcsUUFBTyxxQkFBcUI7QUFFdkMsTUFBTUMsY0FBY0Y7QUFDcEIsTUFBTUcsY0FBY0MsS0FBS0MsS0FBSyxDQUFDTixhQUFhRyxhQUFhO0FBRXpELE9BQU8sTUFBTUksZUFBZSxDQUFDQyxpQkFBbUNBLGdCQUFnQkMsUUFBUSxPQUFPLE9BQU8sTUFBTTtBQUU1RyxPQUFPLE1BQU1DLFdBQVc7SUFDdEJDLE1BQU1KLGFBQWFILGFBQWFRLGNBQWNEO0lBQzlDRSxLQUFLVCxZQUFZVSxPQUFPO0lBQ3hCQyxLQUFLUixhQUFhSCxhQUFhUSxjQUFjLENBQUMsWUFBWTtJQUMxREksWUFBWVQsYUFBYUgsYUFBYVEsY0FBY0k7SUFDcERDLFNBQVNWLGFBQWFILGFBQWFRLGNBQWNLO0FBQ25ELEVBQUU7QUFFRixPQUFPLE1BQU1DLGVBQWUsQ0FBQ0MsY0FBZ0JDLE9BQU9DLElBQUksQ0FBQ0YsYUFBYUcsTUFBTSxDQUFDLENBQUNDLE1BQU1DO1FBQ2xGRCxJQUFJLENBQUNDLElBQUksR0FBR2QsUUFBUSxDQUFDYyxJQUFJO1FBQ3pCLE9BQU9EO0lBQ1QsR0FBRyxDQUFDLEdBQUc7QUFNUCxPQUFPLE1BQU1FLFdBQVcsQ0FBQ0MsS0FBa0JDO0lBQ3pDLElBQUdELElBQUlFLElBQUksRUFBRTtRQUNYQyxRQUFRM0IsR0FBRyxDQUFDRyxLQUFLeUIsU0FBUyxDQUFDWixhQUFhUjtJQUMxQyxPQUFPO1FBQ0xSLElBQUksYUFBYSxRQUFRO1FBQ3pCQSxJQUFJLENBQUMsT0FBTyxFQUFFUSxTQUFTRyxHQUFHLEVBQUUsRUFBRSxRQUFRO1FBQ3RDWCxJQUFJLGdCQUFnQixRQUFRO1FBQzVCQSxJQUFJLENBQUMsT0FBTyxFQUFFUSxTQUFTSyxHQUFHLEVBQUUsRUFBRSxRQUFRO1FBQ3RDYixJQUFJLENBQUMsUUFBUSxFQUFFUSxTQUFTQyxJQUFJLEVBQUUsRUFBRSxRQUFRO1FBQ3hDVCxJQUFJLENBQUMsY0FBYyxFQUFFUSxTQUFTTSxVQUFVLEVBQUUsRUFBRSxRQUFRO1FBQ3BEZCxJQUFJLENBQUMsV0FBVyxFQUFFUSxTQUFTTyxPQUFPLEVBQUUsRUFBRSxRQUFRO0lBQ2hEO0lBRUEsSUFBR1UsVUFBVTtRQUNYQSxTQUFTO0lBQ1g7SUFFQSxPQUFPSSxRQUFRQyxPQUFPLENBQUM7QUFDekIsRUFBRSJ9