tnp 18.0.9 → 18.0.12

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 (140) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/bin/start.js +217 -217
  3. package/bin/t +5 -5
  4. package/bin/t-debug +5 -5
  5. package/bin/t-debug-brk +4 -4
  6. package/bin/tnp +5 -5
  7. package/bin/tnp-debug +5 -5
  8. package/bin/tnp-debug-brk +4 -4
  9. package/browser/README.md +24 -24
  10. package/browser/esm2022/lib/constants.mjs +13 -5
  11. package/browser/esm2022/lib/models.mjs +2 -58
  12. package/browser/esm2022/lib/project/abstract/docs.mjs +207 -0
  13. package/browser/esm2022/lib/project/abstract/npm-helpers.mjs +9 -1
  14. package/browser/esm2022/lib/project/abstract/project.mjs +35 -8
  15. package/browser/esm2022/lib/project/abstract/vscode.mjs +35 -0
  16. package/browser/fesm2022/tnp.mjs +46 -12
  17. package/browser/fesm2022/tnp.mjs.map +1 -1
  18. package/browser/lib/constants.d.ts +1 -0
  19. package/browser/lib/models.d.ts +57 -67
  20. package/browser/lib/project/abstract/docs.d.ts +28 -0
  21. package/browser/lib/project/abstract/npm-helpers.d.ts +1 -0
  22. package/browser/lib/project/abstract/project.d.ts +8 -0
  23. package/browser/lib/project/abstract/vscode.d.ts +6 -0
  24. package/cli.js +46974 -23238
  25. package/client/README.md +24 -24
  26. package/client/esm2022/lib/constants.mjs +13 -5
  27. package/client/esm2022/lib/models.mjs +2 -58
  28. package/client/esm2022/lib/project/abstract/docs.mjs +207 -0
  29. package/client/esm2022/lib/project/abstract/npm-helpers.mjs +9 -1
  30. package/client/esm2022/lib/project/abstract/project.mjs +35 -8
  31. package/client/esm2022/lib/project/abstract/vscode.mjs +35 -0
  32. package/client/fesm2022/tnp.mjs +46 -12
  33. package/client/fesm2022/tnp.mjs.map +1 -1
  34. package/client/lib/constants.d.ts +1 -0
  35. package/client/lib/models.d.ts +57 -67
  36. package/client/lib/project/abstract/docs.d.ts +28 -0
  37. package/client/lib/project/abstract/npm-helpers.d.ts +1 -0
  38. package/client/lib/project/abstract/project.d.ts +8 -0
  39. package/client/lib/project/abstract/vscode.d.ts +6 -0
  40. package/lib/constants.d.ts +1 -0
  41. package/lib/constants.js +14 -3
  42. package/lib/constants.js.map +1 -1
  43. package/lib/index._auto-generated_.d.ts +0 -0
  44. package/lib/index._auto-generated_.js +6 -0
  45. package/lib/index._auto-generated_.js.map +1 -0
  46. package/lib/models.d.ts +57 -67
  47. package/lib/models.js +2 -68
  48. package/lib/models.js.map +1 -1
  49. package/lib/project/abstract/docs.d.ts +28 -0
  50. package/lib/project/abstract/docs.js +188 -0
  51. package/lib/project/abstract/docs.js.map +1 -0
  52. package/lib/project/abstract/git.js +1 -1
  53. package/lib/project/abstract/git.js.map +1 -1
  54. package/lib/project/abstract/npm-helpers.d.ts +1 -0
  55. package/lib/project/abstract/npm-helpers.js +10 -0
  56. package/lib/project/abstract/npm-helpers.js.map +1 -1
  57. package/lib/project/abstract/project.d.ts +95 -4
  58. package/lib/project/abstract/project.js +136 -102
  59. package/lib/project/abstract/project.js.map +1 -1
  60. package/lib/project/abstract/vscode.d.ts +5 -0
  61. package/lib/project/abstract/vscode.js +33 -0
  62. package/lib/project/abstract/vscode.js.map +1 -0
  63. package/lib/project/cli/cli-BUILD.backend.js +56 -51
  64. package/lib/project/cli/cli-BUILD.backend.js.map +1 -1
  65. package/lib/project/cli/cli-DOCS.backend.d.ts +4 -0
  66. package/lib/project/cli/cli-DOCS.backend.js +48 -0
  67. package/lib/project/cli/cli-DOCS.backend.js.map +1 -0
  68. package/lib/project/cli/cli-RELEASE.backend.js +2 -1
  69. package/lib/project/cli/cli-RELEASE.backend.js.map +1 -1
  70. package/lib/project/cli/cli-VSCODE.backend.js +5 -0
  71. package/lib/project/cli/cli-VSCODE.backend.js.map +1 -1
  72. package/lib/project/cli/cli-_GLOBAL_.backend.d.ts +2 -0
  73. package/lib/project/cli/cli-_GLOBAL_.backend.js +36 -5
  74. package/lib/project/cli/cli-_GLOBAL_.backend.js.map +1 -1
  75. package/lib/project/cli/index.js +2 -0
  76. package/lib/project/cli/index.js.map +1 -1
  77. package/lib/project/compilers/build-isomorphic-lib/code-cut/browser-code-cut.backend.d.ts +4 -0
  78. package/lib/project/compilers/build-isomorphic-lib/code-cut/browser-code-cut.backend.js.map +1 -1
  79. package/lib/project/compilers/build-isomorphic-lib/compilations/compilation-backend.backend.d.ts +1 -2
  80. package/lib/project/compilers/build-isomorphic-lib/compilations/compilation-backend.backend.js +2 -8
  81. package/lib/project/compilers/build-isomorphic-lib/compilations/compilation-backend.backend.js.map +1 -1
  82. package/lib/project/compilers/build-isomorphic-lib/compilations/compilation-browser.backend.js +2 -17
  83. package/lib/project/compilers/build-isomorphic-lib/compilations/compilation-browser.backend.js.map +1 -1
  84. package/lib/project/features/copy-manager/base-copy-manager.backend.d.ts +1 -1
  85. package/lib/project/features/copy-manager/base-copy-manager.backend.js +12 -19
  86. package/lib/project/features/copy-manager/base-copy-manager.backend.js.map +1 -1
  87. package/lib/project/features/copy-manager/copy-manager-standalone.backend.js +1 -0
  88. package/lib/project/features/copy-manager/copy-manager-standalone.backend.js.map +1 -1
  89. package/lib/project/features/docs-app-build-config.backend.d.ts +3 -1
  90. package/lib/project/features/docs-app-build-config.backend.js +23 -14
  91. package/lib/project/features/docs-app-build-config.backend.js.map +1 -1
  92. package/lib/project/features/files-recreation/files-recreator.d.ts +5 -0
  93. package/lib/project/features/files-recreation/files-recreator.js +85 -48
  94. package/lib/project/features/files-recreation/files-recreator.js.map +1 -1
  95. package/lib/project/features/index-autogen-provider.backend.d.ts +7 -1
  96. package/lib/project/features/index-autogen-provider.backend.js +81 -9
  97. package/lib/project/features/index-autogen-provider.backend.js.map +1 -1
  98. package/lib/project/features/inside-structures/structs/inside-struct-angular13-app.js +1 -2
  99. package/lib/project/features/inside-structures/structs/inside-struct-angular13-app.js.map +1 -1
  100. package/lib/project/features/lib-project/lib-project-vscode-ext.js +4 -3
  101. package/lib/project/features/lib-project/lib-project-vscode-ext.js.map +1 -1
  102. package/lib/project/features/node-modules/node-modules.js +8 -2
  103. package/lib/project/features/node-modules/node-modules.js.map +1 -1
  104. package/lib/project/features/npm-packages/npm-packages-core.backend.js +1 -1
  105. package/lib/project/features/npm-packages/npm-packages-core.backend.js.map +1 -1
  106. package/lib/project/features/npm-packages/npm-packages-helpers.backend.js +3 -2
  107. package/lib/project/features/npm-packages/npm-packages-helpers.backend.js.map +1 -1
  108. package/lib/project/features/package-json/package-json-helpers.backend.js +4 -4
  109. package/lib/project/features/package-json/package-json-helpers.backend.js.map +1 -1
  110. package/lib/project/features/quick-fixes.d.ts +8 -5
  111. package/lib/project/features/quick-fixes.js +101 -52
  112. package/lib/project/features/quick-fixes.js.map +1 -1
  113. package/lib/project/features/singular-build.backend.js +0 -2
  114. package/lib/project/features/singular-build.backend.js.map +1 -1
  115. package/package.json +2 -2
  116. package/paste.vbs +52 -0
  117. package/path.txt +1 -1
  118. package/start.backend.js +4 -0
  119. package/start.backend.js.map +1 -1
  120. package/taon.jsonc +390 -390
  121. package/tmp-environment.json +30 -29
  122. package/websql/README.md +24 -24
  123. package/websql/esm2022/lib/constants.mjs +13 -5
  124. package/websql/esm2022/lib/models.mjs +2 -58
  125. package/websql/esm2022/lib/project/abstract/docs.mjs +207 -0
  126. package/websql/esm2022/lib/project/abstract/npm-helpers.mjs +9 -1
  127. package/websql/esm2022/lib/project/abstract/project.mjs +35 -8
  128. package/websql/esm2022/lib/project/abstract/vscode.mjs +35 -0
  129. package/websql/fesm2022/tnp.mjs +46 -12
  130. package/websql/fesm2022/tnp.mjs.map +1 -1
  131. package/websql/lib/constants.d.ts +1 -0
  132. package/websql/lib/models.d.ts +57 -67
  133. package/websql/lib/project/abstract/docs.d.ts +28 -0
  134. package/websql/lib/project/abstract/npm-helpers.d.ts +1 -0
  135. package/websql/lib/project/abstract/project.d.ts +8 -0
  136. package/websql/lib/project/abstract/vscode.d.ts +6 -0
  137. package/fsevents.node +0 -0
  138. package/lib/project/abstract/base-compiler-for-project.backend.d.ts +0 -6
  139. package/lib/project/abstract/base-compiler-for-project.backend.js +0 -57
  140. package/lib/project/abstract/base-compiler-for-project.backend.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  THIS FILE IS GENERATED. THIS FILE IS GENERATED. THIS FILE IS GENERATED.
2
2
 
3
- Assets from this folder are being shipped with this npm package (tnp@18.0.9)
3
+ Assets from this folder are being shipped with this npm package (tnp@18.0.12)
4
4
  created from this project.
5
5
 
6
6
  THIS FILE IS GENERATED.THIS FILE IS GENERATED. THIS FILE IS GENERATED.
package/bin/start.js CHANGED
@@ -1,217 +1,217 @@
1
- //#region @backend
2
- //#region quick fixes
3
- Error.stackTraceLimit = 100;
4
- global.i0 = {
5
- defineInjectable: function () { }
6
- }
7
- const process= require('process');
8
- process.removeAllListeners('warning');
9
- //#endregion
10
-
11
- //#region resolve constants
12
- const childprocsecretarg = '-childproc';
13
- const isWinGitBash = (process.platform === 'win32');
14
- const procType = (process.argv[1].endsWith('tnp') || process.argv[1].endsWith('taon')) ? 'root'
15
- : ((process.argv.find(a => a.startsWith(childprocsecretarg)))
16
- ? 'child-of-root'
17
- : 'child-of-child'
18
- );
19
- const debugMode = (process.argv[1].endsWith('-debug') || process.argv[1].endsWith('-debug-brk'))
20
- global.spinnerInParentProcess = (procType === 'child-of-root');
21
- const orgArgv = JSON.parse(JSON.stringify(process.argv));
22
- global.tnpNonInteractive = (typeof process.argv.find(a => a.startsWith('--tnpNonInteractive')) !== 'undefined');
23
- const spinnerIsDefault = !tnpNonInteractive;
24
- global.frameworkName = 'tnp';
25
-
26
- global.globalSystemToolMode = true;
27
- const verbose = process.argv.includes('-verbose')
28
- global.hideLog = !verbose;
29
- global.verboseLevel = 0;
30
-
31
- global.skipCoreCheck = (typeof process.argv.find(a => a.startsWith('--skipCoreCheck')) !== 'undefined');
32
- const verboseLevelExists = (typeof process.argv.find(a => a.startsWith('-verbose=')) !== 'undefined');
33
- global.verboseLevel = (verboseLevelExists ? Number(
34
- process.argv.find(a => {
35
- const v = a.startsWith('-verbose=');
36
- if (v) {
37
- return v.replace('-verbose=', '');
38
- }
39
- })
40
- ) : 0) || 0;
41
-
42
- if (!verbose && verboseLevelExists) {
43
- global.hideLog = false;
44
- }
45
-
46
-
47
-
48
- const spinnerOnInArgs = process.argv.includes('-spinner');
49
- const spinnerOffInArgs = (process.argv.includes('-spinner=false') || process.argv.includes('-spinner=off'));
50
- //#endregion
51
-
52
- //#region clear argument from variables
53
- process.argv = process.argv.filter(a => !a.startsWith('-spinner'));
54
- process.argv = process.argv.filter(a => a !== '-childproc');
55
- process.argv = process.argv.filter(a => a !== '--skipCoreCheck');
56
- process.argv = process.argv.filter(a => !a.startsWith('-verbose'));
57
- //#endregion
58
-
59
- //#region fix argument
60
- process.argv = process.argv.map(a => {
61
- if (a === '-websql') {
62
- return '--websql'
63
- }
64
- return a;
65
- })
66
- //#endregion
67
-
68
- //#region variables
69
- let mode;
70
- let start;
71
- let startSpinner = spinnerIsDefault || spinnerOnInArgs;
72
- if (spinnerOffInArgs) {
73
- startSpinner = false;
74
- }
75
- if (procType === 'child-of-root' || debugMode) {
76
- startSpinner = false;
77
- }
78
-
79
- if (verbose || frameworkName === 'tnp' || global.skipCoreCheck) {
80
- startSpinner = false;
81
- }
82
-
83
- //#endregion
84
-
85
- const path = require('path');
86
-
87
-
88
- if (procType === 'child-of-root') {
89
- global.spinner = {
90
- start() {
91
- process.send && process.send('start-spinner')
92
- },
93
- stop() {
94
- process.send && process.send('stop-spinner')
95
- }
96
- }
97
- }
98
-
99
- if (startSpinner) {
100
- //#region start spinner in processs
101
- var ora = require('ora');
102
- var spinner = ora();
103
- spinner.start();
104
- global.spinner = spinner;
105
-
106
- const child_process = require('child_process');
107
- const orgArgvForChild = orgArgv.filter(a => !a.startsWith('-spinner'));
108
-
109
- const env = {
110
- ...process.env,
111
- FORCE_COLOR: '1'
112
- };
113
-
114
- const cwd = process.cwd();
115
- const argsToCHildProc = (`${orgArgvForChild.slice(2).join(' ')} ${global.verbose ? '-verbose' : ''} ${global.skipCoreCheck ? '--skipCoreCheck' : ''} `
116
- + `${spinnerOnInArgs ? '-spinner' : (spinnerOffInArgs ? '-spinner=off' : '')} ${childprocsecretarg}`).split(' ');
117
-
118
- const proc = child_process.fork(crossPlatofrmPath(__filename), argsToCHildProc, {
119
- env,
120
- stdio: [0, 1, 2, 'ipc'],
121
- cwd,
122
- });
123
-
124
- proc.on('exit', (code) => {
125
- spinner.stop();
126
- setTimeout(() => {
127
- process.exit(code);
128
- })
129
- });
130
-
131
- proc.on('message', message => {
132
- message = (message ? message : '').trimLeft();
133
- if (message === 'start-spinner') {
134
- spinner.start();
135
- } else if (message === 'stop-spinner') {
136
- spinner.stop();
137
- } else if (message.startsWith('info::')) {
138
- setText((message));
139
- } else if (message.startsWith('success::')) {
140
- setText((message));
141
- } else if (message.startsWith('taskstart::')) {
142
- setText((message));
143
- } else if (message.startsWith('taskdone::')) {
144
- setText((message));
145
- } else if (message.startsWith('error::')) {
146
- setText((message));
147
- } else if (message.startsWith('log::')) {
148
- setText((message), true);
149
- } else if (message.startsWith('warn::')) {
150
- setText((message));
151
- }
152
- });
153
-
154
- // process.stdin.resume(); // not needed ?
155
- //#endregion
156
- } else {
157
- //#region child or child of child
158
-
159
- //#region uknow dist or npm mode
160
- const fs = require('fs');
161
-
162
- const pathToDistRun = path.join(__dirname, '../dist/cli.js');
163
- const pathToIndexRun = path.join(__dirname, '../cli.js');
164
- const distExist = fs.existsSync(pathToDistRun);
165
-
166
- if (distExist) {
167
- mode = 'dist';
168
- !global.hideLog && setText('- taon dist -', true);
169
- // TODO TOOOO MUCH TIME !!!!!!
170
- start = require(pathToDistRun.replace(/\.js$/g, '')).default;
171
- } else {
172
- mode = 'npm';
173
- !global.hideLog && setText('- npm mode -', true);
174
- start = require(pathToIndexRun.replace(/\.js$/g, '')).default;
175
- }
176
- //#endregion
177
-
178
-
179
- // global.start = start;
180
- process.argv = process.argv.filter(f => !!f);
181
- start(process.argv, global.frameworkName, mode);
182
- //#endregion
183
- }
184
-
185
- function crossPlatofrmPath(p) {
186
- if (isWinGitBash) {
187
- return p.replace(/\\/g, '/');
188
- }
189
- return p;
190
- }
191
-
192
- function setText(text, toSpiner = false) {
193
- const spinner = global.spinner;
194
- if (text) {
195
- text = text.split('::').slice(1).join('::');
196
- }
197
- if (spinner) {
198
- if (toSpiner) {
199
- spinner.text = text.replace(/(?:\r\n|\r|\n)/g, ' ');
200
- } else {
201
- const wasSpinning = spinner.isSpinning;
202
- if (wasSpinning) {
203
- spinner.stop();
204
- spinner.clear();
205
- }
206
- console.log(text);
207
- if (wasSpinning) {
208
- spinner.start()
209
- }
210
- }
211
- } else {
212
- console.log(text);
213
- }
214
-
215
- }
216
-
217
- //#endregion
1
+ //#region @backend
2
+ //#region quick fixes
3
+ Error.stackTraceLimit = 100;
4
+ global.i0 = {
5
+ defineInjectable: function () { }
6
+ }
7
+ const process= require('process');
8
+ process.removeAllListeners('warning');
9
+ //#endregion
10
+
11
+ //#region resolve constants
12
+ const childprocsecretarg = '-childproc';
13
+ const isWinGitBash = (process.platform === 'win32');
14
+ const procType = (process.argv[1].endsWith('tnp') || process.argv[1].endsWith('taon')) ? 'root'
15
+ : ((process.argv.find(a => a.startsWith(childprocsecretarg)))
16
+ ? 'child-of-root'
17
+ : 'child-of-child'
18
+ );
19
+ const debugMode = (process.argv[1].endsWith('-debug') || process.argv[1].endsWith('-debug-brk'))
20
+ global.spinnerInParentProcess = (procType === 'child-of-root');
21
+ const orgArgv = JSON.parse(JSON.stringify(process.argv));
22
+ global.tnpNonInteractive = (typeof process.argv.find(a => a.startsWith('--tnpNonInteractive')) !== 'undefined');
23
+ const spinnerIsDefault = !tnpNonInteractive;
24
+ global.frameworkName = 'tnp';
25
+
26
+ global.globalSystemToolMode = true;
27
+ const verbose = process.argv.includes('-verbose')
28
+ global.hideLog = !verbose;
29
+ global.verboseLevel = 0;
30
+
31
+ global.skipCoreCheck = (typeof process.argv.find(a => a.startsWith('--skipCoreCheck')) !== 'undefined');
32
+ const verboseLevelExists = (typeof process.argv.find(a => a.startsWith('-verbose=')) !== 'undefined');
33
+ global.verboseLevel = (verboseLevelExists ? Number(
34
+ process.argv.find(a => {
35
+ const v = a.startsWith('-verbose=');
36
+ if (v) {
37
+ return v.replace('-verbose=', '');
38
+ }
39
+ })
40
+ ) : 0) || 0;
41
+
42
+ if (!verbose && verboseLevelExists) {
43
+ global.hideLog = false;
44
+ }
45
+
46
+
47
+
48
+ const spinnerOnInArgs = process.argv.includes('-spinner');
49
+ const spinnerOffInArgs = (process.argv.includes('-spinner=false') || process.argv.includes('-spinner=off'));
50
+ //#endregion
51
+
52
+ //#region clear argument from variables
53
+ process.argv = process.argv.filter(a => !a.startsWith('-spinner'));
54
+ process.argv = process.argv.filter(a => a !== '-childproc');
55
+ process.argv = process.argv.filter(a => a !== '--skipCoreCheck');
56
+ process.argv = process.argv.filter(a => !a.startsWith('-verbose'));
57
+ //#endregion
58
+
59
+ //#region fix argument
60
+ process.argv = process.argv.map(a => {
61
+ if (a === '-websql') {
62
+ return '--websql'
63
+ }
64
+ return a;
65
+ })
66
+ //#endregion
67
+
68
+ //#region variables
69
+ let mode;
70
+ let start;
71
+ let startSpinner = spinnerIsDefault || spinnerOnInArgs;
72
+ if (spinnerOffInArgs) {
73
+ startSpinner = false;
74
+ }
75
+ if (procType === 'child-of-root' || debugMode) {
76
+ startSpinner = false;
77
+ }
78
+
79
+ if (verbose || frameworkName === 'tnp' || global.skipCoreCheck) {
80
+ startSpinner = false;
81
+ }
82
+
83
+ //#endregion
84
+
85
+ const path = require('path');
86
+
87
+
88
+ if (procType === 'child-of-root') {
89
+ global.spinner = {
90
+ start() {
91
+ process.send && process.send('start-spinner')
92
+ },
93
+ stop() {
94
+ process.send && process.send('stop-spinner')
95
+ }
96
+ }
97
+ }
98
+
99
+ if (startSpinner) {
100
+ //#region start spinner in processs
101
+ var ora = require('ora');
102
+ var spinner = ora();
103
+ spinner.start();
104
+ global.spinner = spinner;
105
+
106
+ const child_process = require('child_process');
107
+ const orgArgvForChild = orgArgv.filter(a => !a.startsWith('-spinner'));
108
+
109
+ const env = {
110
+ ...process.env,
111
+ FORCE_COLOR: '1'
112
+ };
113
+
114
+ const cwd = process.cwd();
115
+ const argsToCHildProc = (`${orgArgvForChild.slice(2).join(' ')} ${global.verbose ? '-verbose' : ''} ${global.skipCoreCheck ? '--skipCoreCheck' : ''} `
116
+ + `${spinnerOnInArgs ? '-spinner' : (spinnerOffInArgs ? '-spinner=off' : '')} ${childprocsecretarg}`).split(' ');
117
+
118
+ const proc = child_process.fork(crossPlatofrmPath(__filename), argsToCHildProc, {
119
+ env,
120
+ stdio: [0, 1, 2, 'ipc'],
121
+ cwd,
122
+ });
123
+
124
+ proc.on('exit', (code) => {
125
+ spinner.stop();
126
+ setTimeout(() => {
127
+ process.exit(code);
128
+ })
129
+ });
130
+
131
+ proc.on('message', message => {
132
+ message = (message ? message : '').trimLeft();
133
+ if (message === 'start-spinner') {
134
+ spinner.start();
135
+ } else if (message === 'stop-spinner') {
136
+ spinner.stop();
137
+ } else if (message.startsWith('info::')) {
138
+ setText((message));
139
+ } else if (message.startsWith('success::')) {
140
+ setText((message));
141
+ } else if (message.startsWith('taskstart::')) {
142
+ setText((message));
143
+ } else if (message.startsWith('taskdone::')) {
144
+ setText((message));
145
+ } else if (message.startsWith('error::')) {
146
+ setText((message));
147
+ } else if (message.startsWith('log::')) {
148
+ setText((message), true);
149
+ } else if (message.startsWith('warn::')) {
150
+ setText((message));
151
+ }
152
+ });
153
+
154
+ // process.stdin.resume(); // not needed ?
155
+ //#endregion
156
+ } else {
157
+ //#region child or child of child
158
+
159
+ //#region uknow dist or npm mode
160
+ const fs = require('fs');
161
+
162
+ const pathToDistRun = path.join(__dirname, '../dist/cli.js');
163
+ const pathToIndexRun = path.join(__dirname, '../cli.js');
164
+ const distExist = fs.existsSync(pathToDistRun);
165
+
166
+ if (distExist) {
167
+ mode = 'dist';
168
+ !global.hideLog && setText('- taon dist -', true);
169
+ // TODO TOOOO MUCH TIME !!!!!!
170
+ start = require(pathToDistRun.replace(/\.js$/g, '')).default;
171
+ } else {
172
+ mode = 'npm';
173
+ !global.hideLog && setText('- npm mode -', true);
174
+ start = require(pathToIndexRun.replace(/\.js$/g, '')).default;
175
+ }
176
+ //#endregion
177
+
178
+
179
+ // global.start = start;
180
+ process.argv = process.argv.filter(f => !!f);
181
+ start(process.argv, global.frameworkName, mode);
182
+ //#endregion
183
+ }
184
+
185
+ function crossPlatofrmPath(p) {
186
+ if (isWinGitBash) {
187
+ return p.replace(/\\/g, '/');
188
+ }
189
+ return p;
190
+ }
191
+
192
+ function setText(text, toSpiner = false) {
193
+ const spinner = global.spinner;
194
+ if (text) {
195
+ text = text.split('::').slice(1).join('::');
196
+ }
197
+ if (spinner) {
198
+ if (toSpiner) {
199
+ spinner.text = text.replace(/(?:\r\n|\r|\n)/g, ' ');
200
+ } else {
201
+ const wasSpinning = spinner.isSpinning;
202
+ if (wasSpinning) {
203
+ spinner.stop();
204
+ spinner.clear();
205
+ }
206
+ console.log(text);
207
+ if (wasSpinning) {
208
+ spinner.start()
209
+ }
210
+ }
211
+ } else {
212
+ console.log(text);
213
+ }
214
+
215
+ }
216
+
217
+ //#endregion
package/bin/t CHANGED
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env node --no-deprecation
2
- //#region @backend
3
- // --stack-trace-limit=10000
4
- require('./start');
5
- //#endregion
1
+ #!/usr/bin/env node --no-deprecation
2
+ //#region @backend
3
+ // --stack-trace-limit=10000
4
+ require('./start');
5
+ //#endregion
package/bin/t-debug CHANGED
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env -S node --inspect --stack-trace-limit=10000 --no-deprecation
2
- //#region @backend
3
- // --stack-trace-limit=10000
4
- require('./start');
5
- //#endregion
1
+ #!/usr/bin/env -S node --inspect --stack-trace-limit=10000 --no-deprecation
2
+ //#region @backend
3
+ // --stack-trace-limit=10000
4
+ require('./start');
5
+ //#endregion
package/bin/t-debug-brk CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env -S node --inspect-brk --stack-trace-limit=10000 --no-deprecation
2
- //#region @backend
3
- require('./start');
4
- //#endregion
1
+ #!/usr/bin/env -S node --inspect-brk --stack-trace-limit=10000 --no-deprecation
2
+ //#region @backend
3
+ require('./start');
4
+ //#endregion
package/bin/tnp CHANGED
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env node --no-deprecation
2
- //#region @backend
3
- // --stack-trace-limit=10000
4
- require('./start');
5
- //#endregion
1
+ #!/usr/bin/env node --no-deprecation
2
+ //#region @backend
3
+ // --stack-trace-limit=10000
4
+ require('./start');
5
+ //#endregion
package/bin/tnp-debug CHANGED
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env -S node --inspect --stack-trace-limit=10000 --no-deprecation
2
- //#region @backend
3
- // --stack-trace-limit=10000
4
- require('./start');
5
- //#endregion
1
+ #!/usr/bin/env -S node --inspect --stack-trace-limit=10000 --no-deprecation
2
+ //#region @backend
3
+ // --stack-trace-limit=10000
4
+ require('./start');
5
+ //#endregion
package/bin/tnp-debug-brk CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env -S node --inspect-brk --stack-trace-limit=10000 --no-deprecation
2
- //#region @backend
3
- require('./start');
4
- //#endregion
1
+ #!/usr/bin/env -S node --inspect-brk --stack-trace-limit=10000 --no-deprecation
2
+ //#region @backend
3
+ require('./start');
4
+ //#endregion
package/browser/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # MyLib
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
- > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # MyLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
+ > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -1,9 +1,7 @@
1
- import { config } from 'tnp-config/browser';
2
- /* */
3
- /* */
4
- /* */
5
1
  /* */
6
2
  /* */
3
+ import { config } from 'tnp-config/browser';
4
+ import { Utils } from 'tnp-core/browser';
7
5
  export const taonIgnore = '@taon' + '-' + 'ignore';
8
6
  export const OVERRIDE_FROM_TNP = [
9
7
  'scripts',
@@ -23,6 +21,10 @@ export const INTEGRATION_TEST_TIMEOUT = 30000;
23
21
  export let taonRepoPathUserInUserDir =
24
22
  /* */
25
23
  /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
26
28
  ('');
27
29
  export const argsToClear = [
28
30
  'websql',
@@ -163,6 +165,12 @@ export class PortUtils {
163
165
  return (void 0);
164
166
  }
165
167
  }
168
+ export const frameworkBuildFolders = Utils.uniqArray([
169
+ '.firedev',
170
+ '.taon',
171
+ '.tnp',
172
+ `.${config.frameworkName}`,
173
+ ]);
166
174
  export const notAllowedProjectNames = [
167
175
  'copyto',
168
176
  'app',
@@ -201,4 +209,4 @@ export const ONLY_COPY_ALLOWED = [
201
209
  ];
202
210
  ;
203
211
  ({}); // @--end-of-file-for-module=tnp lib/constants.ts
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wL3Byb2plY3RzL3RucC9zcmMvbGliL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJNUMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFJTCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsU0FBUztJQUNULGFBQWE7SUFDYixTQUFTO0lBQ1QsU0FBUztJQUNULFFBQVE7SUFDUixVQUFVO0lBQ1YsTUFBTTtJQUNOLFNBQVM7SUFDVCxZQUFZO0lBQ1osVUFBVTtJQUNWLGtCQUFrQjtDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEtBQUssQ0FBQztBQUU5QyxNQUFNLENBQUMsSUFBSSx5QkFBeUI7QUFDcEMsS0FBSztBQUNMLEtBQUs7QUFFTCxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRUwsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLFFBQVE7SUFDUixVQUFVO0lBQ1YsaUJBQWlCO0lBQ2pCLDRCQUE0QjtJQUM1QixRQUFRO0lBQ1IsTUFBTTtJQUNOLFVBQVU7SUFDVixRQUFRO0lBQ1IsU0FBUztDQUNWLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyx3QkFBd0IsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLGdCQUFnQixFQUFFLElB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LGlHQUFpRztDQUNwRyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFFL0IsZ0JBQWdCO0lBQ2hCLE1BQU07SUFDTixlQUFlO0NBQ2hCLENBQUM7QUFFRCxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlEQUFpRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICd0bnAtY29uZmlnL2Jyb3dzZXInO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSAnLi9wcm9qZWN0L2Fic3RyYWN0L3Byb2plY3QnO1xuXG5pbXBvcnQgeyAgIGNyb3NzUGxhdGZvcm1QYXRoLCAgIHBhdGgsIC8qICovIC8qICovICAgIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5cblxuZXhwb3J0IGNvbnN0IHRhb25JZ25vcmUgPSAnQHRhb24nICsgJy0nICsgJ2lnbm9yZSc7XG5cbmV4cG9ydCBjb25zdCBPVkVSUklERV9GUk9NX1ROUCA9IFtcbiAgJ3NjcmlwdHMnLFxuICAnZGVzY3JpcHRpb24nLFxuICAnbGljZW5zZScsXG4gICdwcml2YXRlJyxcbiAgJ2F1dGhvcicsXG4gICdob21lcGFnZScsXG4gICdtYWluJyxcbiAgJ2VuZ2luZXMnLFxuICAnY2F0ZWdvcmllcycsXG4gICdrZXl3b3JkcycsXG4gICdhY3RpdmF0aW9uRXZlbnRzJyxcbl07XG5cbmV4cG9ydCBjb25zdCBVTklUX1RFU1RfVElNRU9VVCA9IDMwMDAwO1xuZXhwb3J0IGNvbnN0IElOVEVHUkFUSU9OX1RFU1RfVElNRU9VVCA9IDMwMDAwO1xuXG5leHBvcnQgbGV0IHRhb25SZXBvUGF0aFVzZXJJblVzZXJEaXI6IHN0cmluZyA9XG4vKiAqL1xuLyogKi9cbiAgXG4oJycpO1xuXG5leHBvcnQgY29uc3QgYXJnc1RvQ2xlYXIgPSBbXG4gICd3ZWJzcWwnLFxuICAnc2VydmVBcHAnLFxuICAnc2tpcE5vZGVNb2R1bGVzJyxcbiAgJ3NraXBTbWFydENvbnRhaW5lckRpc3RJbml0JyxcbiAgJ2NvcHl0bycsXG4gICdwb3J0JyxcbiAgJ2JyYW5kaW5nJyxcbiAgJ3N0cnVjdCcsXG4gICd2ZXJib3NlJyxcbl07XG5cbmV4cG9ydCBjb25zdCBmb2xkZXJfc2hhcmVkX2ZvbGRlcl9pbmZvID0gJ3NoYXJlZF9mb2xkZXJfaW5mby50eHQnO1xuXG5leHBvcnQgY29uc3QgVEVNUF9ET0NTID0gJ3RtcC1kb2N1bWVudGF0aW9uJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUE9SVCA9IHtcbiAgRElTVF9TRVJWRVJfRE9DUzogNDAwMCxcbiAgQVBQX0JVSUxEX0xPQ0FMSE9TVDogNDIwMCxcbiAgU0VSVkVSX0xPQ0FMSE9TVDogNDE5OSxcbn07XG5cbmV4cG9ydCBjb25zdCB0bXBCdWlsZFBvcnQgPSAndG1wLWJ1aWxkLXBvcnQnO1xuZXhwb3J0IGNvbnN0IHRtcEJhc2VIcmVmT3ZlcndyaXRlUmVsUGF0aCA9ICd0bXAtYmFzZS1ocmVmLW92ZXJ3cml0ZSc7XG5cbi8qKlxuICpcbiAqIFBvcnRzIGZvcjpcbiAgICAgIG1heCA9IG1heCBpbnN0YW5jZXMgPSBtYXggY29udGFpbmVyIGNoaWxkcyA9IDIwO1xuICAgICAgbiA9IGZvbGRlciBwcm9jZXNzIGJ1aWxkIG51bWJlciAoc2VhcmNoZXMgZm9yIG5ldyBwb3J0IGFsd2F5cylcbiAgICAgIGluZGV4ID0gY29udGFpbmVyIHByb2plY3QgaW5kZXggKGNhbid0IGV4Y2VlZHMgbWF4KVxuXG4gICAgICBidWlsZCBwcm9jZXNzIHNlcnZpY2UgNDEwMCA9IDQxMDAgKyBuXG5cbiAgICAgIHN0YW5kYWxvbmUgc2VydmVyIDQ1MDAgPSA0MTAwICArIDQwMCArIG5cbiAgICAgIGNvbnRhaW5lcnMgc2VydmVycyA0NjAwID0gNDEwMCAgKyA1MDAgKyBuICogbWF4ICsgaW5kZXhcblxuICAgICAgc3RhbmRhbG9uZSBuZyBzZXJ2ZSBub3JtYWwgNDMwMCA9IDQxMDAgICsgMjAwICsgblxuICAgICAgc3RhbmRhbG9uZSBuZyBzZXJ2ZSB3ZWJzcWwgNDQwMCA9IDQxMDAgICsgMzAwICsgblxuXG4gICAgICBjb250YWluZXIgbmcgc2VydmUgbm9ybWFsIDQ4MDAgPSA0MTAwICArIDcwMCArIG4gKyBtYXggKyBpbmRleFxuICAgICAgY29udGFpbmVyIG5nIHNlcnZlIHdlYnNxbCA0OTAwID0gNDEwMCAgKyA4MDAgKyBuICsgbWF4ICsgaW5kZXhcbiAqXG4gKiBAcGFyYW0gYmFzZVBvcnQgNDEwMCArIG5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjbGFzcyBQb3J0VXRpbHMge1xuICBzdGF0aWMgaW5zdGFuY2UoYmFzZVBvcnQ6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUG9ydFV0aWxzKGJhc2VQb3J0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbjogbnVtYmVyO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhc2VQb3J0OiBudW1iZXIpIHtcbiAgICB0aGlzLm4gPSAoYmFzZVBvcnQgLSAoYmFzZVBvcnQgJSAxMDAwKSkgLyAxMDAwO1xuICB9XG5cbiAgLyoqXG4gICAqIG1heCBjb250YWluZXIgIGNoaWxkc1xuICAgKi9cbiAgcHJpdmF0ZSBtYXggPSAyMDtcblxuICBjYWxjdWxhdGVQb3J0Rm9yRWxlY3Ryb25EZWJ1Z2dpbmcocHJvamVjdDogUHJvamVjdCk6IG51bWJlciB7XG4gICAgaWYgKCFwcm9qZWN0Ll9faXNJc29tb3JwaGljTGliKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiA5ODc2ICsgdGhpcy5uO1xuICB9XG5cbiAgY2FsY3VsYXRlU2VydmVyUG9ydEZvcihwcm9qZWN0OiBQcm9qZWN0KTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgY2FsY3VsYXRlQ2xpZW50UG9ydEZvcihcbiAgICBwcm9qZWN0OiBQcm9qZWN0LFxuICAgIHsgd2Vic3FsIH06IHsgd2Vic3FsOiBib29sZWFuIH0sXG4gICk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlRm9yU3RhbmRhbG9uZVNlcnZlcigpIHtcbiAgICBjb25zdCBjbGllbnRTdGFuZGFsb25lUG9ydCA9IHRoaXMuYmFzZVBvcnQgKyA0MDAgKyB0aGlzLm47XG4gICAgcmV0dXJuIGNsaWVudFN0YW5kYWxvbmVQb3J0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVGb3JDb250YWluZXJTZXJ2ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGNsaWVudFNtYXJ0Q29udGFpbmVyQ2hpbGRQb3J0ID1cbiAgICAgIHRoaXMuYmFzZVBvcnQgKyA1MDAgKyB0aGlzLm4gKiB0aGlzLm1heCArIGluZGV4O1xuXG4gICAgcmV0dXJuIGNsaWVudFNtYXJ0Q29udGFpbmVyQ2hpbGRQb3J0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVGb3JTdGFuZGFsb25lQ2xpZW50KHsgd2Vic3FsIH06IHsgd2Vic3FsOiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBjbGllbnRQb3J0ID0gdGhpcy5iYXNlUG9ydCArICh3ZWJzcWwgPyAzMDAgOiAyMDApICsgdGhpcy5uO1xuICAgIHJldHVybiBjbGllbnRQb3J0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVGb3JDb250YWluZXJDbGllbnQoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICB7IHdlYnNxbCB9OiB7IHdlYnNxbDogYm9vbGVhbiB9LFxuICApIHtcbiAgICBjb25zdCBjbGllbnRQb3J0ID1cbiAgICAgIHRoaXMuYmFzZVBvcnQgKyAod2Vic3FsID8gODAwIDogNzAwKSArIHRoaXMubiAqIHRoaXMubWF4ICsgaW5kZXg7XG4gICAgcmV0dXJuIGNsaWVudFBvcnQ7XG4gIH1cblxuICBhcHBIb3N0VGVtcGxhdGVGb3IocHJvamVjdDogUHJvamVjdCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG5vdEFsbG93ZWRQcm9qZWN0TmFtZXMgPSBbXG5cbiAgJ2NvcHl0bycsXG4gICdhcHAnLFxuICAnYXBwcycsXG4gICdsaWJzJyxcbiAgJ2xpYicsXG4gICdzcmMnLFxuICAnc291cmNlJyxcbiAgJ21pZ3JhdGlvbnMnLFxuICAnYXNzZXRzJyxcbiAgJ2Fzc2V0cy1mb3InLFxuICAnYnJvd3NlcicsXG4gICd3ZWJzcWwnLFxuICAnY29tcGlsZWQnLFxuICAnZG9jcycsXG4gICdfJyxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wU291cmNlRm9sZGVyKFxuICBvdXREaXI6ICdkaXN0JyxcbiAgYXBwRm9yTGliOiBib29sZWFuLFxuICB3ZWJzcWw6IGJvb2xlYW4sXG4pIHtcbiAgcmV0dXJuIGB0bXAtc3JjLSR7YXBwRm9yTGliID8gJ2FwcC0nIDogJyd9JHtvdXREaXJ9JHt3ZWJzcWwgPyAnLXdlYnNxbCcgOiAnJ31gO1xufVxuXG5leHBvcnQgY29uc3QgY2xpZW50Q29kZVZlcnNpb25Gb2xkZXIgPSBbXG4gIGNvbmZpZy5mb2xkZXIuYnJvd3NlcixcbiAgY29uZmlnLmZvbGRlci53ZWJzcWwsXG5dO1xuXG5leHBvcnQgY29uc3Qgbm90QWxsb3dlZEFzUGFjYWtnZSA9IFtcbiAgLi4uY2xpZW50Q29kZVZlcnNpb25Gb2xkZXIsXG4gIGNvbmZpZy5mb2xkZXIuYXNzZXRzLFxuXTtcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VTID0ge1xuICBTSFVUX0RPV05fRk9MREVSU19BTkRfREVCVUdHRVJTOlxuICAgICdQbGVhc2Ugc2h1dCBkb3duIHlvdXIgY29kZSBkZWJ1Z2dlciBhbmQgYW55IG9wZW4gd2luZG93cyBmcm9tIG5vZGVfbW9kdWxlcyBhbmQgcHJlc3MgYW55IGtleS4uLicsXG59O1xuXG5leHBvcnQgY29uc3QgT05MWV9DT1BZX0FMTE9XRUQgPSBbXG5cbiAgJ2JldHRlci1zcWxpdGUzJyxcbiAgJy5iaW4nLFxuICAnLmluc3RhbGwtZGF0ZScsXG5dO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wIGxpYi9jb25zdGFudHMudHMiXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wL3Byb2plY3RzL3RucC9zcmMvbGliL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUVMLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxPQUFPLEVBQTJCLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2xFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixTQUFTO0lBQ1QsYUFBYTtJQUNiLFNBQVM7SUFDVCxTQUFTO0lBQ1QsUUFBUTtJQUNSLFVBQVU7SUFDVixNQUFNO0lBQ04sU0FBUztJQUNULFlBQVk7SUFDWixVQUFVO0lBQ1Ysa0JBQWtCO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFJLHlCQUF5QjtBQUNwQyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRUwsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLFFBQVE7SUFDUixVQUFVO0lBQ1YsaUJBQWlCO0lBQ2pCLDRCQUE0QjtJQUM1QixRQUFRO0lBQ1IsTUFBTTtJQUNOLFVBQVU7SUFDVixRQUFRO0lBQ1IsU0FBUztDQUNWLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyx3QkFBd0IsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENB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O0lBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTTtDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDakMsR0FBRyx1QkFBdUI7SUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsK0JBQStCLEVBQzdCLGlHQUFpRztDQUNwRyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFFL0IsZ0JBQWdCO0lBQ2hCLE1BQU07SUFDTixlQUFlO0NBQ2hCLENBQUM7QUFFRCxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlEQUFpRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tICcuL3Byb2plY3QvYWJzdHJhY3QvcHJvamVjdCc7XG5pbXBvcnQgeyBjcm9zc1BsYXRmb3JtUGF0aCwgcGF0aCwgVXRpbHMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuXG5leHBvcnQgY29uc3QgdGFvbklnbm9yZSA9ICdAdGFvbicgKyAnLScgKyAnaWdub3JlJztcblxuZXhwb3J0IGNvbnN0IE9WRVJSSURFX0ZST01fVE5QID0gW1xuICAnc2NyaXB0cycsXG4gICdkZXNjcmlwdGlvbicsXG4gICdsaWNlbnNlJyxcbiAgJ3ByaXZhdGUnLFxuICAnYXV0aG9yJyxcbiAgJ2hvbWVwYWdlJyxcbiAgJ21haW4nLFxuICAnZW5naW5lcycsXG4gICdjYXRlZ29yaWVzJyxcbiAgJ2tleXdvcmRzJyxcbiAgJ2FjdGl2YXRpb25FdmVudHMnLFxuXTtcblxuZXhwb3J0IGNvbnN0IFVOSVRfVEVTVF9USU1FT1VUID0gMzAwMDA7XG5leHBvcnQgY29uc3QgSU5URUdSQVRJT05fVEVTVF9USU1FT1VUID0gMzAwMDA7XG5cbmV4cG9ydCBsZXQgdGFvblJlcG9QYXRoVXNlckluVXNlckRpcjogc3RyaW5nID1cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4oJycpO1xuXG5leHBvcnQgY29uc3QgYXJnc1RvQ2xlYXIgPSBbXG4gICd3ZWJzcWwnLFxuICAnc2VydmVBcHAnLFxuICAnc2tpcE5vZGVNb2R1bGVzJyxcbiAgJ3NraXBTbWFydENvbnRhaW5lckRpc3RJbml0JyxcbiAgJ2NvcHl0bycsXG4gICdwb3J0JyxcbiAgJ2JyYW5kaW5nJyxcbiAgJ3N0cnVjdCcsXG4gICd2ZXJib3NlJyxcbl07XG5cbmV4cG9ydCBjb25zdCBmb2xkZXJfc2hhcmVkX2ZvbGRlcl9pbmZvID0gJ3NoYXJlZF9mb2xkZXJfaW5mby50eHQnO1xuXG5leHBvcnQgY29uc3QgVEVNUF9ET0NTID0gJ3RtcC1kb2N1bWVudGF0aW9uJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUE9SVCA9IHtcbiAgRElTVF9TRVJWRVJfRE9DUzogNDAwMCxcbiAgQVBQX0JVSUxEX0xPQ0FMSE9TVDogNDIwMCxcbiAgU0VSVkVSX0xPQ0FMSE9TVDogNDE5OSxcbn07XG5cbmV4cG9ydCBjb25zdCB0bXBCdWlsZFBvcnQgPSAndG1wLWJ1aWxkLXBvcnQnO1xuZXhwb3J0IGNvbnN0IHRtcEJhc2VIcmVmT3ZlcndyaXRlUmVsUGF0aCA9ICd0bXAtYmFzZS1ocmVmLW92ZXJ3cml0ZSc7XG5cbi8qKlxuICpcbiAqIFBvcnRzIGZvcjpcbiAgICAgIG1heCA9IG1heCBpbnN0YW5jZXMgPSBtYXggY29udGFpbmVyIGNoaWxkcyA9IDIwO1xuICAgICAgbiA9IGZvbGRlciBwcm9jZXNzIGJ1aWxkIG51bWJlciAoc2VhcmNoZXMgZm9yIG5ldyBwb3J0IGFsd2F5cylcbiAgICAgIGluZGV4ID0gY29udGFpbmVyIHByb2plY3QgaW5kZXggKGNhbid0IGV4Y2VlZHMgbWF4KVxuXG4gICAgICBidWlsZCBwcm9jZXNzIHNlcnZpY2UgNDEwMCA9IDQxMDAgKyBuXG5cbiAgICAgIHN0YW5kYWxvbmUgc2VydmVyIDQ1MDAgPSA0MTAwICArIDQwMCArIG5cbiAgICAgIGNvbnRhaW5lcnMgc2VydmVycyA0NjAwID0gNDEwMCAgKyA1MDAgKyBuICogbWF4ICsgaW5kZXhcblxuICAgICAgc3RhbmRhbG9uZSBuZyBzZXJ2ZSBub3JtYWwgNDMwMCA9IDQxMDAgICsgMjAwICsgblxuICAgICAgc3RhbmRhbG9uZSBuZyBzZXJ2ZSB3ZWJzcWwgNDQwMCA9IDQxMDAgICsgMzAwICsgblxuXG4gICAgICBjb250YWluZXIgbmcgc2VydmUgbm9ybWFsIDQ4MDAgPSA0MTAwICArIDcwMCArIG4gKyBtYXggKyBpbmRleFxuICAgICAgY29udGFpbmVyIG5nIHNlcnZlIHdlYnNxbCA0OTAwID0gNDEwMCAgKyA4MDAgKyBuICsgbWF4ICsgaW5kZXhcbiAqXG4gKiBAcGFyYW0gYmFzZVBvcnQgNDEwMCArIG5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjbGFzcyBQb3J0VXRpbHMge1xuICBzdGF0aWMgaW5zdGFuY2UoYmFzZVBvcnQ6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUG9ydFV0aWxzKGJhc2VQb3J0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbjogbnVtYmVyO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhc2VQb3J0OiBudW1iZXIpIHtcbiAgICB0aGlzLm4gPSAoYmFzZVBvcnQgLSAoYmFzZVBvcnQgJSAxMDAwKSkgLyAxMDAwO1xuICB9XG5cbiAgLyoqXG4gICAqIG1heCBjb250YWluZXIgIGNoaWxkc1xuICAgKi9cbiAgcHJpdmF0ZSBtYXggPSAyMDtcblxuICBjYWxjdWxhdGVQb3J0Rm9yRWxlY3Ryb25EZWJ1Z2dpbmcocHJvamVjdDogUHJvamVjdCk6IG51bWJlciB7XG4gICAgaWYgKCFwcm9qZWN0Ll9faXNJc29tb3JwaGljTGliKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiA5ODc2ICsgdGhpcy5uO1xuICB9XG5cbiAgY2FsY3VsYXRlU2VydmVyUG9ydEZvcihwcm9qZWN0OiBQcm9qZWN0KTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgY2FsY3VsYXRlQ2xpZW50UG9ydEZvcihcbiAgICBwcm9qZWN0OiBQcm9qZWN0LFxuICAgIHsgd2Vic3FsIH06IHsgd2Vic3FsOiBib29sZWFuIH0sXG4gICk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlRm9yU3RhbmRhbG9uZVNlcnZlcigpIHtcbiAgICBjb25zdCBjbGllbnRTdGFuZGFsb25lUG9ydCA9IHRoaXMuYmFzZVBvcnQgKyA0MDAgKyB0aGlzLm47XG4gICAgcmV0dXJuIGNsaWVudFN0YW5kYWxvbmVQb3J0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVGb3JDb250YWluZXJTZXJ2ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGNsaWVudFNtYXJ0Q29udGFpbmVyQ2hpbGRQb3J0ID1cbiAgICAgIHRoaXMuYmFzZVBvcnQgKyA1MDAgKyB0aGlzLm4gKiB0aGlzLm1heCArIGluZGV4O1xuXG4gICAgcmV0dXJuIGNsaWVudFNtYXJ0Q29udGFpbmVyQ2hpbGRQb3J0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVGb3JTdGFuZGFsb25lQ2xpZW50KHsgd2Vic3FsIH06IHsgd2Vic3FsOiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBjbGllbnRQb3J0ID0gdGhpcy5iYXNlUG9ydCArICh3ZWJzcWwgPyAzMDAgOiAyMDApICsgdGhpcy5uO1xuICAgIHJldHVybiBjbGllbnRQb3J0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVGb3JDb250YWluZXJDbGllbnQoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICB7IHdlYnNxbCB9OiB7IHdlYnNxbDogYm9vbGVhbiB9LFxuICApIHtcbiAgICBjb25zdCBjbGllbnRQb3J0ID1cbiAgICAgIHRoaXMuYmFzZVBvcnQgKyAod2Vic3FsID8gODAwIDogNzAwKSArIHRoaXMubiAqIHRoaXMubWF4ICsgaW5kZXg7XG4gICAgcmV0dXJuIGNsaWVudFBvcnQ7XG4gIH1cblxuICBhcHBIb3N0VGVtcGxhdGVGb3IocHJvamVjdDogUHJvamVjdCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZyYW1ld29ya0J1aWxkRm9sZGVycyA9IFV0aWxzLnVuaXFBcnJheShbXG4gICcuZmlyZWRldicsXG4gICcudGFvbicsXG4gICcudG5wJyxcbiAgYC4ke2NvbmZpZy5mcmFtZXdvcmtOYW1lfWAsXG5dKTtcblxuZXhwb3J0IGNvbnN0IG5vdEFsbG93ZWRQcm9qZWN0TmFtZXMgPSBbXG5cbiAgJ2NvcHl0bycsXG4gICdhcHAnLFxuICAnYXBwcycsXG4gICdsaWJzJyxcbiAgJ2xpYicsXG4gICdzcmMnLFxuICAnc291cmNlJyxcbiAgJ21pZ3JhdGlvbnMnLFxuICAnYXNzZXRzJyxcbiAgJ2Fzc2V0cy1mb3InLFxuICAnYnJvd3NlcicsXG4gICd3ZWJzcWwnLFxuICAnY29tcGlsZWQnLFxuICAnZG9jcycsXG4gICdfJyxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wU291cmNlRm9sZGVyKFxuICBvdXREaXI6ICdkaXN0JyxcbiAgYXBwRm9yTGliOiBib29sZWFuLFxuICB3ZWJzcWw6IGJvb2xlYW4sXG4pIHtcbiAgcmV0dXJuIGB0bXAtc3JjLSR7YXBwRm9yTGliID8gJ2FwcC0nIDogJyd9JHtvdXREaXJ9JHt3ZWJzcWwgPyAnLXdlYnNxbCcgOiAnJ31gO1xufVxuXG5leHBvcnQgY29uc3QgY2xpZW50Q29kZVZlcnNpb25Gb2xkZXIgPSBbXG4gIGNvbmZpZy5mb2xkZXIuYnJvd3NlcixcbiAgY29uZmlnLmZvbGRlci53ZWJzcWwsXG5dO1xuXG5leHBvcnQgY29uc3Qgbm90QWxsb3dlZEFzUGFjYWtnZSA9IFtcbiAgLi4uY2xpZW50Q29kZVZlcnNpb25Gb2xkZXIsXG4gIGNvbmZpZy5mb2xkZXIuYXNzZXRzLFxuXTtcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VTID0ge1xuICBTSFVUX0RPV05fRk9MREVSU19BTkRfREVCVUdHRVJTOlxuICAgICdQbGVhc2Ugc2h1dCBkb3duIHlvdXIgY29kZSBkZWJ1Z2dlciBhbmQgYW55IG9wZW4gd2luZG93cyBmcm9tIG5vZGVfbW9kdWxlcyBhbmQgcHJlc3MgYW55IGtleS4uLicsXG59O1xuXG5leHBvcnQgY29uc3QgT05MWV9DT1BZX0FMTE9XRUQgPSBbXG5cbiAgJ2JldHRlci1zcWxpdGUzJyxcbiAgJy5iaW4nLFxuICAnLmluc3RhbGwtZGF0ZScsXG5dO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wIGxpYi9jb25zdGFudHMudHMiXX0=