tnp 16.444.13 → 16.444.15

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 (84) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/bin/start.js +217 -217
  3. package/bin/t +0 -0
  4. package/bin/t-debug +5 -5
  5. package/bin/t-debug-brk +4 -4
  6. package/bin/tnp +0 -0
  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/build-options.mjs +1 -1
  11. package/browser/esm2022/lib/constants.mjs +2 -1
  12. package/browser/esm2022/lib/project/abstract/npm-helpers.mjs +7 -1
  13. package/browser/esm2022/lib/project/abstract/project.mjs +10 -1
  14. package/browser/fesm2022/tnp.mjs +10 -0
  15. package/browser/fesm2022/tnp.mjs.map +1 -1
  16. package/browser/lib/build-options.d.ts +6 -0
  17. package/browser/lib/project/abstract/npm-helpers.d.ts +5 -0
  18. package/cli.js +212905 -208736
  19. package/client/README.md +24 -24
  20. package/client/esm2022/lib/build-options.mjs +1 -1
  21. package/client/esm2022/lib/constants.mjs +2 -1
  22. package/client/esm2022/lib/project/abstract/npm-helpers.mjs +7 -1
  23. package/client/esm2022/lib/project/abstract/project.mjs +10 -1
  24. package/client/fesm2022/tnp.mjs +10 -0
  25. package/client/fesm2022/tnp.mjs.map +1 -1
  26. package/client/lib/build-options.d.ts +6 -0
  27. package/client/lib/project/abstract/npm-helpers.d.ts +5 -0
  28. package/client/package.json +57 -56
  29. package/client-dist/socket.io.esm.min.js +7 -0
  30. package/client-dist/socket.io.esm.min.js.map +1 -0
  31. package/client-dist/socket.io.js +4437 -0
  32. package/client-dist/socket.io.js.map +1 -0
  33. package/client-dist/socket.io.min.js +7 -0
  34. package/client-dist/socket.io.min.js.map +1 -0
  35. package/client-dist/socket.io.msgpack.min.js +7 -0
  36. package/client-dist/socket.io.msgpack.min.js.map +1 -0
  37. package/firedev.jsonc +425 -426
  38. package/lib/build-options.d.ts +6 -0
  39. package/lib/build-options.js.map +1 -1
  40. package/lib/constants.js +1 -0
  41. package/lib/constants.js.map +1 -1
  42. package/lib/project/abstract/npm-helpers.d.ts +5 -0
  43. package/lib/project/abstract/npm-helpers.js +17 -0
  44. package/lib/project/abstract/npm-helpers.js.map +1 -1
  45. package/lib/project/abstract/project.d.ts +2 -0
  46. package/lib/project/abstract/project.js +3 -0
  47. package/lib/project/abstract/project.js.map +1 -1
  48. package/lib/project/cli/cli-OPEN.backend.d.ts +0 -1
  49. package/lib/project/cli/cli-OPEN.backend.js +0 -5
  50. package/lib/project/cli/cli-OPEN.backend.js.map +1 -1
  51. package/lib/project/cli/cli-RELEASE.backend.js +8 -1
  52. package/lib/project/cli/cli-RELEASE.backend.js.map +1 -1
  53. package/lib/project/cli/cli-_GLOBAL_.backend.js +1 -1
  54. package/lib/project/cli/cli-_GLOBAL_.backend.js.map +1 -1
  55. package/lib/project/compilers/build-isomorphic-lib/code-cut/browser-code-cut.backend.d.ts +26 -28
  56. package/lib/project/compilers/build-isomorphic-lib/code-cut/browser-code-cut.backend.js +82 -71
  57. package/lib/project/compilers/build-isomorphic-lib/code-cut/browser-code-cut.backend.js.map +1 -1
  58. package/lib/project/compilers/build-isomorphic-lib/code-cut/code-cut.backend.js +19 -12
  59. package/lib/project/compilers/build-isomorphic-lib/code-cut/code-cut.backend.js.map +1 -1
  60. package/lib/project/features/index-autogen-provider.backend.d.ts +8 -0
  61. package/lib/project/features/index-autogen-provider.backend.js +30 -0
  62. package/lib/project/features/index-autogen-provider.backend.js.map +1 -0
  63. package/lib/project/features/inside-structures/structs/inside-struct-helpers.js +1 -1
  64. package/lib/project/features/inside-structures/structs/inside-struct-helpers.js.map +1 -1
  65. package/lib/project/features/lib-project/lib-project-smart-container.backend.js +2 -1
  66. package/lib/project/features/lib-project/lib-project-smart-container.backend.js.map +1 -1
  67. package/package.json +26 -27
  68. package/paste.vbs +52 -0
  69. package/path.txt +1 -1
  70. package/start.backend.js +0 -1
  71. package/start.backend.js.map +1 -1
  72. package/tmp-environment.json +54 -55
  73. package/websql/README.md +24 -24
  74. package/websql/esm2022/lib/build-options.mjs +1 -1
  75. package/websql/esm2022/lib/constants.mjs +2 -1
  76. package/websql/esm2022/lib/project/abstract/npm-helpers.mjs +7 -1
  77. package/websql/esm2022/lib/project/abstract/project.mjs +10 -1
  78. package/websql/fesm2022/tnp.mjs +10 -0
  79. package/websql/fesm2022/tnp.mjs.map +1 -1
  80. package/websql/lib/build-options.d.ts +6 -0
  81. package/websql/lib/project/abstract/npm-helpers.d.ts +5 -0
  82. package/fsevents.node +0 -0
  83. package/socket.io.js +0 -9
  84. package/socket.io.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@16.444.13)
3
+ Assets from this folder are being shipped with this npm package (tnp@16.444.15)
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('firedev')) ? '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('- firedev 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('firedev')) ? '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('- firedev 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
File without changes
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
File without changes
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.
@@ -117,4 +117,4 @@ function instanceFrom(options, classFn) {
117
117
  }
118
118
  ;
119
119
  ({}); // @--end-of-file-for-module=tnp lib/build-options.ts
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC9wcm9qZWN0cy90bnAvc3JjL2xpYi9idWlsZC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBYyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHekQsTUFBTSxVQUFVO0lBQ2QsZ0JBQXlCLENBQUM7SUFFbkIsS0FBSyxDQUFDLFFBQW9CO1FBQy9CLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxTQUFhLFNBQVEsVUFBYTtJQVc3Qzs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBSUY7QUFFRCxNQUFNLG9CQUF3QixTQUFRLFNBQVk7Q0FZakQ7QUFJRCxNQUFNLE9BQU8sVUFBVyxTQUFRLFVBQXNCO0NBRXJEO0FBSUQsTUFBTSxPQUFPLFdBQVksU0FBUSxTQUFzQjtJQUVyRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVB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S0FDeEM7U0FBTTtRQUNMLEdBQUcsQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBQy9CO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBR0EsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxREFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ29yZU1vZGVscywgXywgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gJy4vcHJvamVjdC9hYnN0cmFjdC9wcm9qZWN0JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcblxuXG5jbGFzcyBTeXN0ZW1UYXNrPFQ+IHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge31cbiAgZmluaXNoQ2FsbGJhY2s6ICgpID0+IGFueTtcbiAgcHVibGljIGNsb25lKG92ZXJyaWRlOiBQYXJ0aWFsPFQ+KTogVCB7XG4gICAgY29uc3QgY2xhc3NGbiA9IENMQVNTLmdldEZyb21PYmplY3QodGhpcyk7XG4gICAgY29uc3QgcmVzdWx0ID0gXy5tZXJnZShuZXcgY2xhc3NGbigpLCBfLm1lcmdlKF8uY2xvbmVEZWVwKHRoaXMpLCBvdmVycmlkZSkpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmFzZUJ1aWxkPFQ+IGV4dGVuZHMgU3lzdGVtVGFzazxUPiB7XG4gIC8qKlxuICAgKiB3YXRjaCBidWlsZFxuICAgKi9cbiAgd2F0Y2g6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBidWlsZCBvbiByZW1vdGUgc2VydmVyICh1c2VyIGNhbm5vdCBpbnRlcmZlcmUgd2l0aCBjb25zb2xlKVxuICAgKiB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb25cbiAgICovXG4gIGNpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBiYXNlLWhyZWYgLT4gaXMgYSBwYXJ0IG9mIGxpYiBjb2RlIGJ1aWxkXG4gICAqXG4gICAqIG92ZXJ3aXRlIGJhc2UgaHJlZiBmb3IgYXBwIGRlcGxveW1lbnQuXG4gICAqIE11c3QgYmUgYXQgbGVhc3QgZXF1YWw6ICcvJ1xuICAgKlxuICAgKiBkZWZhdWx0OiAvXG4gICAqIGRlZmF1bHQgZm9yIGdpdGh1YiBwYWdlcyBzdGFuZGFsb25lIHByb2plY3Q6ICcvPHByb2plY3QtbmFtZS1vci1vdmVyd3JpdHRlbj4vJ1xuICAgKiBkZWZhdWx0IGZvciBvcmdhbml6YWlvbiBtYWluIHRhcmdldDogJy88cHJvamVjdC1uYW1lLW9yLW92ZXJ3cml0dGVuPi8nXG4gICAqIGRlZmF1bHQgZm9yIG9yZ2FuaXphaW9uIG1haW4gb3RoZXIgdGFyZ2V0czogJy88cHJvamVjdC1uYW1lLW9yLW92ZXJ3cml0dGVuPi8tLzxvdGhlci10YXJnZXQtbmFtZT4vJ1xuICAgKi9cbiAgZ2V0IGJhc2VIcmVmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2VIcmVmO1xuICB9XG4gIHNldCBiYXNlSHJlZih2KSB7XG4gICAgdGhpcy5fYmFzZUhyZWYgPSBjcm9zc1BsYXRmb3JtUGF0aCh2KTtcbiAgfVxuICBwcml2YXRlIF9iYXNlSHJlZjogc3RyaW5nO1xuICBkaXNhYmxlU2VydmljZVdvcmtlcjogYm9vbGVhbjtcbiAgYnVpbGRBbmd1bGFyQXBwRm9yRWxlY3Ryb246IGJvb2xlYW47XG59XG5cbmNsYXNzIEJ1aWxkT3B0aW9uc0xpYk9yQXBwPFQ+IGV4dGVuZHMgQmFzZUJ1aWxkPFQ+IHtcbiAgY2xpQnVpbGROb0R0czogYm9vbGVhbjtcbiAgY2xpQnVpbGRVZ2xpZnk6IGJvb2xlYW47XG4gIGNsaUJ1aWxkT2JzY3VyZTogYm9vbGVhbjtcbiAgY2xpQnVpbGRJbmNsdWRlTm9kZU1vZHVsZXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUgYWxsIHByb2R1Y3Rpb24gb3B0aW1hbGl6YXRpb24gZm9yIGJ1aWxkXG4gICAqIC0gbWluaWZpY2F0aW9uXG4gICAqIC0gY2FjaGVzXG4gICAqIGV0Yy5cbiAgICovXG4gIHByb2Q6IGJvb2xlYW47XG59XG5cblxuXG5leHBvcnQgY2xhc3MgTmV3T3B0aW9ucyBleHRlbmRzIFN5c3RlbVRhc2s8TmV3T3B0aW9ucz4ge1xuICBicmFuZGluZzogYm9vbGVhbjtcbn1cblxuXG5cbmV4cG9ydCBjbGFzcyBJbml0T3B0aW9ucyBleHRlbmRzIEJhc2VCdWlsZDxJbml0T3B0aW9ucz4ge1xuICByZWFkb25seSBhbHJlYWR5SW5pdGVkUG9yamVjdHM6IFByb2plY3RbXTtcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWxyZWFkeUluaXRlZFBvcmplY3RzID0gW107XG4gIH1cbiAgb21pdENoaWxkcmVuOiBib29sZWFuO1xuICBpbml0aWF0b3I6IFByb2plY3Q7XG4gIC8qKlxuICAgKiBpbml0IG9ubHkgc3RydWN0cmUgd2l0aG91dCBkZXBzXG4gICAqL1xuICBzdHJ1Y3Q6IGJvb2xlYW47XG4gIHdlYnNxbDogYm9vbGVhbjtcbiAgYnJhbmRpbmc6IGJvb2xlYW47XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tKG9wdGlvbnM6IFBhcnRpYWw8SW5pdE9wdGlvbnM+KTogSW5pdE9wdGlvbnMge1xuICAgIHJldHVybiBpbnN0YW5jZUZyb20ob3B0aW9ucywgSW5pdE9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tQnVpbGQob3B0aW9uczogQnVpbGRPcHRpb25zKTogSW5pdE9wdGlvbnMge1xuICAgIGNvbnN0IGluaXRPcHRpb25zID0gSW5pdE9wdGlvbnMuZnJvbSh7fSk7XG5cbiAgICBjb25zdCBwcm9wc1RvSW5pdCA9IFtcbiAgICAgICdiYXNlSHJlZicsXG4gICAgICAnd2F0Y2gnLFxuICAgICAgJ3dlYnNxbCcsXG4gICAgICAnc21hcnRDb250YWluZXJUYXJnZXROYW1lJyxcbiAgICAgICdjaScsXG4gICAgICAndGFyZ2V0QXBwJyxcbiAgICAgICdwcm9kJyxcbiAgICAgICdkaXNhYmxlU2VydmljZVdvcmtlcicsXG4gICAgICAnYnVpbGRBbmd1bGFyQXBwRm9yRWxlY3Ryb24nLFxuICAgIF0gYXMgKGtleW9mIEJ1aWxkT3B0aW9ucylbXTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wc1RvSW5pdCkge1xuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKG9wdGlvbnNbcHJvcF0pKSB7XG4gICAgICAgIGluaXRPcHRpb25zW3Byb3BdID0gb3B0aW9uc1twcm9wXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaW5pdE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZmlsbEJhc2VIcmVmRnJvbUZpbGUocHJvamVjdDogUHJvamVjdCkge31cbn1cblxuXG5cbmV4cG9ydCBjbGFzcyBCdWlsZE9wdGlvbnMgZXh0ZW5kcyBCdWlsZE9wdGlvbnNMaWJPckFwcDxCdWlsZE9wdGlvbnM+IHtcbiAgcmVhZG9ubHkgb3V0RGlyOiAnZGlzdCc7XG4gIHJlYWRvbmx5IHRhcmdldEFwcDogJ3B3YScgfCAnZWxlY3Ryb24nO1xuICBnZXQgYXBwQnVpbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRUeXBlID09PSAnYXBwJyB8fCB0aGlzLmJ1aWxkVHlwZSA9PT0gJ2xpYi1hcHAnO1xuICB9XG4gIGdldCBsaWJCdWlsZCgpIHtcbiAgICByZXR1cm4gdGhpcy5idWlsZFR5cGUgPT09ICdsaWInIHx8IHRoaXMuYnVpbGRUeXBlID09PSAnbGliLWFwcCc7XG4gIH1cblxuICBnZXQgdGVtcG9yYXJ5U3JjRm9yUmVsZWFzZUN1dENvZGUoKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5vdXREaXIgPSAnZGlzdCc7XG4gICAgdGhpcy50YXJnZXRBcHAgPSAncHdhJztcbiAgfVxuICAvKipcbiAgICpcbiAgICovXG4gIHdlYnNxbDogYm9vbGVhbjtcbiAgYnVpbGRUeXBlOiAnbGliJyB8ICdhcHAnIHwgJ2xpYi1hcHAnO1xuICBwcml2YXRlIF9za2lwUHJvamVjdFByb2Nlc3M6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTa2lwIHByb2plY3QgcHJvY2VzcyBmb3IgYXNzaWduaW5nIGF1dG9tYXRpYyBwb3J0c1xuICAgKi9cbiAgZ2V0IHNraXBQcm9qZWN0UHJvY2VzcygpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuICBzZXQgc2tpcFByb2plY3RQcm9jZXNzKHZhbHVlKSB7XG4gICAgdGhpcy5fc2tpcFByb2plY3RQcm9jZXNzID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogb3ZlcnJpZGUgcG9ydCBudW1iZXIgZm9yIGFwcCBidWlsZFxuICAgKi9cbiAgcG9ydDogbnVtYmVyO1xuXG4gIHNraXBDb3B5TWFuYWdlcjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIGJ1aWxkIGV4ZWN1dGVkIGRydXJpbmcgbGliIHJlbGVhc2VcbiAgICovXG4gIGJ1aWxkRm9yUmVsZWFzZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogZGVmYXVsdDogJzxwcm9qZWN0LWxvY2FpdG9uPi9kaXN0LWFwcCdcbiAgICogZGVmYXVsdCBmb3IgZ2l0aHViIHBhZ2U6ICc8cHJvamVjdC1sb2NhdGlvbj4vZG9jcydcbiAgICovXG4gIGFwcEJ1aWxkTG9jYXRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIEN1dCA8QD5ub3RGb3JOcG0gIHRhZyBmcm9tIGxpYiBidWlsZFxuICAgKi9cbiAgY3V0TnBtUHVibGlzaExpYlJlbGVhc2VDb2RlOiBib29sZWFuO1xuICAvKipcbiAgICogRG8gbm90IGdlbmVyYXRlIGJhY2tlbmQgY29kZVxuICAgKi9cbiAgZ2VuT25seUNsaWVudENvZGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBvbmx5IGJhY2tlbmQsIHdpdGhvdXQgYnJvd3NlciB2ZXJzaW9uXG4gICAqL1xuICBvbmx5QmFja2VuZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgd2UgY2FuIHN0YXJ0IGJ1aWxkIG9mIHNtYXJ0IGNvbnRhaW5lclxuICAgKiB3aXRoIGRpZmZlcmVudCBhcHBcbiAgICovXG4gIHNtYXJ0Q29udGFpbmVyVGFyZ2V0TmFtZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbShcbiAgICBvcHRpb25zOiBPbWl0PFBhcnRpYWw8QnVpbGRPcHRpb25zPiwgJ2FwcEJ1aWxkJyB8ICdzZXJ2ZUFwcCc+LFxuICApOiBCdWlsZE9wdGlvbnMge1xuICAgIHJldHVybiBpbnN0YW5jZUZyb20ob3B0aW9ucywgQnVpbGRPcHRpb25zKTtcbiAgfVxufVxuXG5cblxuZXhwb3J0IGNsYXNzIFJlbGVhc2VPcHRpb25zIGV4dGVuZHMgQnVpbGRPcHRpb25zTGliT3JBcHA8UmVsZWFzZU9wdGlvbnM+IHtcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucmVsZWFzZVR5cGUgPSAncGF0Y2gnO1xuICAgIHRoaXMucmVzb2x2ZWQgPSBbXTtcbiAgfVxuICByZWxlYXNlVHlwZTogQ29yZU1vZGVscy5SZWxlYXNlVHlwZTtcbiAgc2hvdWxkUmVsZWFzZUxpYnJhcnk6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBidWlsZCBhY3Rpb24gb25seSBmb3Igc3BlY3lmaWMgZnJhbWV3b3JrIHZlcnNpb24gb2YgcHJvaGVjdFxuICAgKi9cbiAgZnJhbWV3b3JrVmVyc2lvbjogQ29yZU1vZGVscy5GcmFtZXdvcmtWZXJzaW9uO1xuICAvKipcbiAgICogc3RhcnQgcmVsZWFzZSBvbiBwcm9qZWN0XG4gICAqL1xuICBzdGFydD86IHN0cmluZztcbiAgLyoqXG4gICAqIHJlbGVhc2Ugb25seSBzcGVjaWZpZWQgcHJvamVjdHNcbiAgICovXG4gIG9ubHk/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIGVuZCByZWxlYXNlIG9uIHByb2plY3RcbiAgICovXG4gIGVuZD86IHN0cmluZztcbiAgc2tpcFByb2plY3RQcm9jZXNzOiBib29sZWFuO1xuICAvKipcbiAgICogUHJvamVjdHMgdG8gcmVsZWFzZSBpbiBjb250YWluZXJcbiAgICovXG4gIHJlc29sdmVkOiBQcm9qZWN0W107XG4gIC8qKlxuICAgKiBxdWljayBhdXRvbWF0aWMgcmVsZWFzZSBvZiBsaWJcbiAgICovXG4gIGF1dG9tYXRpY1JlbGVhc2U6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBxdWljayBhdXRvbWF0aWMgcmVsZWFzZSBvZiBkb2NzIGFwcChzKVxuICAgKi9cbiAgYXV0b21hdGljUmVsZWFzZURvY3M6IGJvb2xlYW47XG4gIGJ1bWJWZXJzaW9uSW46IHN0cmluZ1tdO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHNwZWNpZmllZFZlcnNpb246IHN0cmluZztcbiAgcmVsZWFzZVRhcmdldDogJ2xpYicgfCAnYXBwJyB8ICdsaWItYXBwJztcbiAgcHVibGljIHN0YXRpYyBmcm9tKG9wdGlvbnM6IFBhcnRpYWw8UmVsZWFzZU9wdGlvbnM+KTogUmVsZWFzZU9wdGlvbnMge1xuICAgIHJldHVybiBpbnN0YW5jZUZyb20ob3B0aW9ucywgUmVsZWFzZU9wdGlvbnMpO1xuICB9XG59XG5cblxuXG5cbmZ1bmN0aW9uIGluc3RhbmNlRnJvbShcbiAgb3B0aW9uczogUGFydGlhbDxJbml0T3B0aW9ucyB8IEJ1aWxkT3B0aW9ucyB8IFJlbGVhc2VPcHRpb25zPixcbiAgY2xhc3NGbjogRnVuY3Rpb24sXG4pIHtcbiAgY29uc3Qgb3JnRmluaXNoQ2FsbGJhY2sgPSBvcHRpb25zPy5maW5pc2hDYWxsYmFjaztcbiAgb3B0aW9ucyA9IChvcHRpb25zID8gb3B0aW9ucyA6IHt9KSBhcyBhbnk7XG4gIGNvbnN0IHJlcyA9IF8ubWVyZ2UobmV3IChjbGFzc0ZuIGFzIGFueSkoKSwgXy5jbG9uZURlZXAob3B0aW9ucykpO1xuICBpZiAob3JnRmluaXNoQ2FsbGJhY2spIHtcbiAgICByZXMuZmluaXNoQ2FsbGJhY2sgPSBvcmdGaW5pc2hDYWxsYmFjaztcbiAgfSBlbHNlIHtcbiAgICByZXMuZmluaXNoQ2FsbGJhY2sgPSAoKSA9PiB7fTtcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAgbGliL2J1aWxkLW9wdGlvbnMudHMiXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC9wcm9qZWN0cy90bnAvc3JjL2xpYi9idWlsZC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBYyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHekQsTUFBTSxVQUFVO0lBQ2QsZ0JBQXlCLENBQUM7SUFFbkIsS0FBSyxDQUFDLFFBQW9CO1FBQy9CLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FHRjtBQUVELE1BQU0sT0FBTyxTQUFhLFNBQVEsVUFBYTtJQVc3Qzs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBSUY7QUFFRCxNQUFNLG9CQUF3QixTQUFRLFNBQVk7Q0FZakQ7QUFJRCxNQUFNLE9BQU8sVUFBVyxTQUFRLFVBQXNCO0NBRXJEO0FBSUQsTUFBTSxPQUFPLFdBQVksU0FBUSxTQUFzQjtJQUVyRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVB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S0FDeEM7U0FBTTtRQUNMLEdBQUcsQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBQy9CO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBR0EsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxREFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ29yZU1vZGVscywgXywgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gJy4vcHJvamVjdC9hYnN0cmFjdC9wcm9qZWN0JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcblxuXG5jbGFzcyBTeXN0ZW1UYXNrPFQ+IHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge31cbiAgZmluaXNoQ2FsbGJhY2s6ICgpID0+IGFueTtcbiAgcHVibGljIGNsb25lKG92ZXJyaWRlOiBQYXJ0aWFsPFQ+KTogVCB7XG4gICAgY29uc3QgY2xhc3NGbiA9IENMQVNTLmdldEZyb21PYmplY3QodGhpcyk7XG4gICAgY29uc3QgcmVzdWx0ID0gXy5tZXJnZShuZXcgY2xhc3NGbigpLCBfLm1lcmdlKF8uY2xvbmVEZWVwKHRoaXMpLCBvdmVycmlkZSkpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBjb3B5dG8/OiBzdHJpbmdbXTtcbiAgY29weXRvYWxsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2VCdWlsZDxUPiBleHRlbmRzIFN5c3RlbVRhc2s8VD4ge1xuICAvKipcbiAgICogd2F0Y2ggYnVpbGRcbiAgICovXG4gIHdhdGNoOiBib29sZWFuO1xuICAvKipcbiAgICogYnVpbGQgb24gcmVtb3RlIHNlcnZlciAodXNlciBjYW5ub3QgaW50ZXJmZXJlIHdpdGggY29uc29sZSlcbiAgICogd2l0aG91dCB1c2VyIGludGVyYWN0aW9uXG4gICAqL1xuICBjaTogYm9vbGVhbjtcblxuICAvKipcbiAgICogYmFzZS1ocmVmIC0+IGlzIGEgcGFydCBvZiBsaWIgY29kZSBidWlsZFxuICAgKlxuICAgKiBvdmVyd2l0ZSBiYXNlIGhyZWYgZm9yIGFwcCBkZXBsb3ltZW50LlxuICAgKiBNdXN0IGJlIGF0IGxlYXN0IGVxdWFsOiAnLydcbiAgICpcbiAgICogZGVmYXVsdDogL1xuICAgKiBkZWZhdWx0IGZvciBnaXRodWIgcGFnZXMgc3RhbmRhbG9uZSBwcm9qZWN0OiAnLzxwcm9qZWN0LW5hbWUtb3Itb3ZlcndyaXR0ZW4+LydcbiAgICogZGVmYXVsdCBmb3Igb3JnYW5pemFpb24gbWFpbiB0YXJnZXQ6ICcvPHByb2plY3QtbmFtZS1vci1vdmVyd3JpdHRlbj4vJ1xuICAgKiBkZWZhdWx0IGZvciBvcmdhbml6YWlvbiBtYWluIG90aGVyIHRhcmdldHM6ICcvPHByb2plY3QtbmFtZS1vci1vdmVyd3JpdHRlbj4vLS88b3RoZXItdGFyZ2V0LW5hbWU+LydcbiAgICovXG4gIGdldCBiYXNlSHJlZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9iYXNlSHJlZjtcbiAgfVxuICBzZXQgYmFzZUhyZWYodikge1xuICAgIHRoaXMuX2Jhc2VIcmVmID0gY3Jvc3NQbGF0Zm9ybVBhdGgodik7XG4gIH1cbiAgcHJpdmF0ZSBfYmFzZUhyZWY6IHN0cmluZztcbiAgZGlzYWJsZVNlcnZpY2VXb3JrZXI6IGJvb2xlYW47XG4gIGJ1aWxkQW5ndWxhckFwcEZvckVsZWN0cm9uOiBib29sZWFuO1xufVxuXG5jbGFzcyBCdWlsZE9wdGlvbnNMaWJPckFwcDxUPiBleHRlbmRzIEJhc2VCdWlsZDxUPiB7XG4gIGNsaUJ1aWxkTm9EdHM6IGJvb2xlYW47XG4gIGNsaUJ1aWxkVWdsaWZ5OiBib29sZWFuO1xuICBjbGlCdWlsZE9ic2N1cmU6IGJvb2xlYW47XG4gIGNsaUJ1aWxkSW5jbHVkZU5vZGVNb2R1bGVzOiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIGFsbCBwcm9kdWN0aW9uIG9wdGltYWxpemF0aW9uIGZvciBidWlsZFxuICAgKiAtIG1pbmlmaWNhdGlvblxuICAgKiAtIGNhY2hlc1xuICAgKiBldGMuXG4gICAqL1xuICBwcm9kOiBib29sZWFuO1xufVxuXG5cblxuZXhwb3J0IGNsYXNzIE5ld09wdGlvbnMgZXh0ZW5kcyBTeXN0ZW1UYXNrPE5ld09wdGlvbnM+IHtcbiAgYnJhbmRpbmc6IGJvb2xlYW47XG59XG5cblxuXG5leHBvcnQgY2xhc3MgSW5pdE9wdGlvbnMgZXh0ZW5kcyBCYXNlQnVpbGQ8SW5pdE9wdGlvbnM+IHtcbiAgcmVhZG9ubHkgYWxyZWFkeUluaXRlZFBvcmplY3RzOiBQcm9qZWN0W107XG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFscmVhZHlJbml0ZWRQb3JqZWN0cyA9IFtdO1xuICB9XG4gIG9taXRDaGlsZHJlbjogYm9vbGVhbjtcbiAgaW5pdGlhdG9yOiBQcm9qZWN0O1xuICAvKipcbiAgICogaW5pdCBvbmx5IHN0cnVjdHJlIHdpdGhvdXQgZGVwc1xuICAgKi9cbiAgc3RydWN0OiBib29sZWFuO1xuICB3ZWJzcWw6IGJvb2xlYW47XG4gIGJyYW5kaW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbShvcHRpb25zOiBQYXJ0aWFsPEluaXRPcHRpb25zPik6IEluaXRPcHRpb25zIHtcbiAgICByZXR1cm4gaW5zdGFuY2VGcm9tKG9wdGlvbnMsIEluaXRPcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1aWxkKG9wdGlvbnM6IEJ1aWxkT3B0aW9ucyk6IEluaXRPcHRpb25zIHtcbiAgICBjb25zdCBpbml0T3B0aW9ucyA9IEluaXRPcHRpb25zLmZyb20oe30pO1xuXG4gICAgY29uc3QgcHJvcHNUb0luaXQgPSBbXG4gICAgICAnYmFzZUhyZWYnLFxuICAgICAgJ3dhdGNoJyxcbiAgICAgICd3ZWJzcWwnLFxuICAgICAgJ3NtYXJ0Q29udGFpbmVyVGFyZ2V0TmFtZScsXG4gICAgICAnY2knLFxuICAgICAgJ3RhcmdldEFwcCcsXG4gICAgICAncHJvZCcsXG4gICAgICAnZGlzYWJsZVNlcnZpY2VXb3JrZXInLFxuICAgICAgJ2J1aWxkQW5ndWxhckFwcEZvckVsZWN0cm9uJyxcbiAgICBdIGFzIChrZXlvZiBCdWlsZE9wdGlvbnMpW107XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHNUb0luaXQpIHtcbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZChvcHRpb25zW3Byb3BdKSkge1xuICAgICAgICBpbml0T3B0aW9uc1twcm9wXSA9IG9wdGlvbnNbcHJvcF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGluaXRPcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGZpbGxCYXNlSHJlZkZyb21GaWxlKHByb2plY3Q6IFByb2plY3QpIHt9XG59XG5cblxuXG5leHBvcnQgY2xhc3MgQnVpbGRPcHRpb25zIGV4dGVuZHMgQnVpbGRPcHRpb25zTGliT3JBcHA8QnVpbGRPcHRpb25zPiB7XG4gIHJlYWRvbmx5IG91dERpcjogJ2Rpc3QnO1xuICByZWFkb25seSB0YXJnZXRBcHA6ICdwd2EnIHwgJ2VsZWN0cm9uJztcbiAgZ2V0IGFwcEJ1aWxkKCkge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkVHlwZSA9PT0gJ2FwcCcgfHwgdGhpcy5idWlsZFR5cGUgPT09ICdsaWItYXBwJztcbiAgfVxuICBnZXQgbGliQnVpbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRUeXBlID09PSAnbGliJyB8fCB0aGlzLmJ1aWxkVHlwZSA9PT0gJ2xpYi1hcHAnO1xuICB9XG5cbiAgZ2V0IHRlbXBvcmFyeVNyY0ZvclJlbGVhc2VDdXRDb2RlKCkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMub3V0RGlyID0gJ2Rpc3QnO1xuICAgIHRoaXMudGFyZ2V0QXBwID0gJ3B3YSc7XG4gIH1cbiAgLyoqXG4gICAqXG4gICAqL1xuICB3ZWJzcWw6IGJvb2xlYW47XG4gIGJ1aWxkVHlwZTogJ2xpYicgfCAnYXBwJyB8ICdsaWItYXBwJztcbiAgcHJpdmF0ZSBfc2tpcFByb2plY3RQcm9jZXNzOiBib29sZWFuO1xuICAvKipcbiAgICogU2tpcCBwcm9qZWN0IHByb2Nlc3MgZm9yIGFzc2lnbmluZyBhdXRvbWF0aWMgcG9ydHNcbiAgICovXG4gIGdldCBza2lwUHJvamVjdFByb2Nlc3MoKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgc2V0IHNraXBQcm9qZWN0UHJvY2Vzcyh2YWx1ZSkge1xuICAgIHRoaXMuX3NraXBQcm9qZWN0UHJvY2VzcyA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIG92ZXJyaWRlIHBvcnQgbnVtYmVyIGZvciBhcHAgYnVpbGRcbiAgICovXG4gIHBvcnQ6IG51bWJlcjtcblxuICBza2lwQ29weU1hbmFnZXI6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBidWlsZCBleGVjdXRlZCBkcnVyaW5nIGxpYiByZWxlYXNlXG4gICAqL1xuICBidWlsZEZvclJlbGVhc2U6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGRlZmF1bHQ6ICc8cHJvamVjdC1sb2NhaXRvbj4vZGlzdC1hcHAnXG4gICAqIGRlZmF1bHQgZm9yIGdpdGh1YiBwYWdlOiAnPHByb2plY3QtbG9jYXRpb24+L2RvY3MnXG4gICAqL1xuICBhcHBCdWlsZExvY2F0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXQgPEA+bm90Rm9yTnBtICB0YWcgZnJvbSBsaWIgYnVpbGRcbiAgICovXG4gIGN1dE5wbVB1Ymxpc2hMaWJSZWxlYXNlQ29kZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERvIG5vdCBnZW5lcmF0ZSBiYWNrZW5kIGNvZGVcbiAgICovXG4gIGdlbk9ubHlDbGllbnRDb2RlOiBib29sZWFuO1xuICAvKipcbiAgICogR2VuZXJhdGUgb25seSBiYWNrZW5kLCB3aXRob3V0IGJyb3dzZXIgdmVyc2lvblxuICAgKi9cbiAgb25seUJhY2tlbmQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IHdlIGNhbiBzdGFydCBidWlsZCBvZiBzbWFydCBjb250YWluZXJcbiAgICogd2l0aCBkaWZmZXJlbnQgYXBwXG4gICAqL1xuICBzbWFydENvbnRhaW5lclRhcmdldE5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgb3B0aW9uczogT21pdDxQYXJ0aWFsPEJ1aWxkT3B0aW9ucz4sICdhcHBCdWlsZCcgfCAnc2VydmVBcHAnPixcbiAgKTogQnVpbGRPcHRpb25zIHtcbiAgICByZXR1cm4gaW5zdGFuY2VGcm9tKG9wdGlvbnMsIEJ1aWxkT3B0aW9ucyk7XG4gIH1cbn1cblxuXG5cbmV4cG9ydCBjbGFzcyBSZWxlYXNlT3B0aW9ucyBleHRlbmRzIEJ1aWxkT3B0aW9uc0xpYk9yQXBwPFJlbGVhc2VPcHRpb25zPiB7XG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlbGVhc2VUeXBlID0gJ3BhdGNoJztcbiAgICB0aGlzLnJlc29sdmVkID0gW107XG4gIH1cbiAgcmVsZWFzZVR5cGU6IENvcmVNb2RlbHMuUmVsZWFzZVR5cGU7XG4gIHNob3VsZFJlbGVhc2VMaWJyYXJ5OiBib29sZWFuO1xuICAvKipcbiAgICogYnVpbGQgYWN0aW9uIG9ubHkgZm9yIHNwZWN5ZmljIGZyYW1ld29yayB2ZXJzaW9uIG9mIHByb2hlY3RcbiAgICovXG4gIGZyYW1ld29ya1ZlcnNpb246IENvcmVNb2RlbHMuRnJhbWV3b3JrVmVyc2lvbjtcbiAgLyoqXG4gICAqIHN0YXJ0IHJlbGVhc2Ugb24gcHJvamVjdFxuICAgKi9cbiAgc3RhcnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiByZWxlYXNlIG9ubHkgc3BlY2lmaWVkIHByb2plY3RzXG4gICAqL1xuICBvbmx5Pzogc3RyaW5nIHwgc3RyaW5nW107XG4gIC8qKlxuICAgKiBlbmQgcmVsZWFzZSBvbiBwcm9qZWN0XG4gICAqL1xuICBlbmQ/OiBzdHJpbmc7XG4gIHNraXBQcm9qZWN0UHJvY2VzczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFByb2plY3RzIHRvIHJlbGVhc2UgaW4gY29udGFpbmVyXG4gICAqL1xuICByZXNvbHZlZDogUHJvamVjdFtdO1xuICAvKipcbiAgICogcXVpY2sgYXV0b21hdGljIHJlbGVhc2Ugb2YgbGliXG4gICAqL1xuICBhdXRvbWF0aWNSZWxlYXNlOiBib29sZWFuO1xuICAvKipcbiAgICogcXVpY2sgYXV0b21hdGljIHJlbGVhc2Ugb2YgZG9jcyBhcHAocylcbiAgICovXG4gIGF1dG9tYXRpY1JlbGVhc2VEb2NzOiBib29sZWFuO1xuICBidW1iVmVyc2lvbkluOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBzcGVjaWZpZWRWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiByZWxlYXNlIG9ubHkgdHJ1c3RlZCBwcm9qZWN0cyBmb3Igc3BlY3lmaWMgY29udGFpbmVyIGZyYW1ld29yayB2ZXJzaW9uXG4gICAqL1xuICB0cnVzdGVkOiBib29sZWFuO1xuICByZWxlYXNlVGFyZ2V0OiAnbGliJyB8ICdhcHAnIHwgJ2xpYi1hcHAnO1xuICBwdWJsaWMgc3RhdGljIGZyb20ob3B0aW9uczogUGFydGlhbDxSZWxlYXNlT3B0aW9ucz4pOiBSZWxlYXNlT3B0aW9ucyB7XG4gICAgcmV0dXJuIGluc3RhbmNlRnJvbShvcHRpb25zLCBSZWxlYXNlT3B0aW9ucyk7XG4gIH1cbn1cblxuXG5cblxuZnVuY3Rpb24gaW5zdGFuY2VGcm9tKFxuICBvcHRpb25zOiBQYXJ0aWFsPEluaXRPcHRpb25zIHwgQnVpbGRPcHRpb25zIHwgUmVsZWFzZU9wdGlvbnM+LFxuICBjbGFzc0ZuOiBGdW5jdGlvbixcbikge1xuICBjb25zdCBvcmdGaW5pc2hDYWxsYmFjayA9IG9wdGlvbnM/LmZpbmlzaENhbGxiYWNrO1xuICBvcHRpb25zID0gKG9wdGlvbnMgPyBvcHRpb25zIDoge30pIGFzIGFueTtcbiAgY29uc3QgcmVzID0gXy5tZXJnZShuZXcgKGNsYXNzRm4gYXMgYW55KSgpLCBfLmNsb25lRGVlcChvcHRpb25zKSk7XG4gIGlmIChvcmdGaW5pc2hDYWxsYmFjaykge1xuICAgIHJlcy5maW5pc2hDYWxsYmFjayA9IG9yZ0ZpbmlzaENhbGxiYWNrO1xuICB9IGVsc2Uge1xuICAgIHJlcy5maW5pc2hDYWxsYmFjayA9ICgpID0+IHt9O1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucCBsaWIvYnVpbGQtb3B0aW9ucy50cyJdfQ==