tnp-core 18.0.47 → 18.0.50

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 (101) hide show
  1. package/README.md +1 -1
  2. package/assets/shared/shared_folder_info.txt +1 -1
  3. package/browser/esm2022/lib/core-imports.mjs +66 -5
  4. package/browser/esm2022/lib/core-models.mjs +51 -48
  5. package/browser/esm2022/lib/helpers-messages.mjs +9 -4
  6. package/browser/esm2022/lib/helpers.mjs +152 -369
  7. package/browser/esm2022/lib/utils.mjs +521 -8
  8. package/browser/fesm2022/tnp-core.mjs +1469 -1105
  9. package/browser/fesm2022/tnp-core.mjs.map +1 -1
  10. package/browser/lib/core-imports.d.ts +41 -1
  11. package/browser/lib/core-models.d.ts +51 -83
  12. package/browser/lib/helpers-messages.d.ts +6 -3
  13. package/browser/lib/helpers.d.ts +22 -0
  14. package/browser/lib/utils.d.ts +48 -0
  15. package/cli.backend.d.ts +1 -0
  16. package/cli.backend.js +15 -2
  17. package/cli.backend.js.map +1 -1
  18. package/client/esm2022/lib/core-imports.mjs +66 -5
  19. package/client/esm2022/lib/core-models.mjs +51 -48
  20. package/client/esm2022/lib/helpers-messages.mjs +9 -4
  21. package/client/esm2022/lib/helpers.mjs +152 -369
  22. package/client/esm2022/lib/utils.mjs +521 -8
  23. package/client/fesm2022/tnp-core.mjs +1469 -1105
  24. package/client/fesm2022/tnp-core.mjs.map +1 -1
  25. package/client/lib/core-imports.d.ts +41 -1
  26. package/client/lib/core-models.d.ts +51 -83
  27. package/client/lib/helpers-messages.d.ts +6 -3
  28. package/client/lib/helpers.d.ts +22 -0
  29. package/client/lib/utils.d.ts +48 -0
  30. package/index.js +15 -2
  31. package/index.js.map +1 -1
  32. package/lib/build-info._auto-generated_.js.map +1 -1
  33. package/lib/command-exists.js +20 -20
  34. package/lib/command-exists.js.map +1 -1
  35. package/lib/core-cli.js +49 -66
  36. package/lib/core-cli.js.map +1 -1
  37. package/lib/core-config.js.map +1 -1
  38. package/lib/core-imports.d.ts +41 -20
  39. package/lib/core-imports.js +202 -78
  40. package/lib/core-imports.js.map +1 -1
  41. package/lib/core-models.d.ts +51 -83
  42. package/lib/core-models.js +52 -47
  43. package/lib/core-models.js.map +1 -1
  44. package/lib/framework-name.js +2 -2
  45. package/lib/framework-name.js.map +1 -1
  46. package/lib/helpers-isomorphic.js +33 -52
  47. package/lib/helpers-isomorphic.js.map +1 -1
  48. package/lib/helpers-messages.d.ts +6 -3
  49. package/lib/helpers-messages.js +79 -102
  50. package/lib/helpers-messages.js.map +1 -1
  51. package/lib/helpers.d.ts +21 -3
  52. package/lib/helpers.js +718 -967
  53. package/lib/helpers.js.map +1 -1
  54. package/lib/index._auto-generated_.js.map +1 -1
  55. package/lib/index.js +23 -10
  56. package/lib/index.js.map +1 -1
  57. package/lib/node-chalk-mock.js +2 -2
  58. package/lib/node-chalk-mock.js.map +1 -1
  59. package/lib/node-path-mock.js +2 -2
  60. package/lib/node-path-mock.js.map +1 -1
  61. package/lib/progress-data.js +21 -23
  62. package/lib/progress-data.js.map +1 -1
  63. package/lib/public-api.js +19 -6
  64. package/lib/public-api.js.map +1 -1
  65. package/lib/required-global-npm-packages.js.map +1 -1
  66. package/lib/required.d.ts +44 -0
  67. package/lib/safe-types/glob.d.ts +102 -0
  68. package/lib/safe-types/minimatch/assert-valid-pattern.d.ts +1 -0
  69. package/lib/safe-types/minimatch/ast.d.ts +17 -0
  70. package/lib/safe-types/minimatch/brace-expressions.d.ts +7 -0
  71. package/lib/safe-types/minimatch/escape.d.ts +11 -0
  72. package/lib/safe-types/minimatch/index.d copy.d.ts +93 -0
  73. package/lib/safe-types/minimatch/index.d.ts +93 -0
  74. package/lib/safe-types/minimatch/unescapd.d.ts +16 -0
  75. package/lib/safe-types/minimatch/unescape.d.ts +16 -0
  76. package/lib/safe-types/minimatch.d.ts +0 -0
  77. package/lib/safe-types/rimraf.d.ts +28 -0
  78. package/lib/utils.d.ts +48 -1
  79. package/lib/utils.js +1252 -1146
  80. package/lib/utils.js.map +1 -1
  81. package/migrations/index.js +15 -2
  82. package/migrations/index.js.map +1 -1
  83. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  84. package/package.json +26 -89
  85. package/src.d.ts +1 -1
  86. package/taon.jsonc +48 -58
  87. package/tmp-environment.json +8 -403
  88. package/websql/esm2022/lib/core-imports.mjs +66 -5
  89. package/websql/esm2022/lib/core-models.mjs +51 -48
  90. package/websql/esm2022/lib/helpers-messages.mjs +9 -4
  91. package/websql/esm2022/lib/helpers.mjs +152 -369
  92. package/websql/esm2022/lib/utils.mjs +521 -8
  93. package/websql/fesm2022/tnp-core.mjs +1466 -1102
  94. package/websql/fesm2022/tnp-core.mjs.map +1 -1
  95. package/websql/lib/core-imports.d.ts +41 -1
  96. package/websql/lib/core-models.d.ts +51 -83
  97. package/websql/lib/helpers-messages.d.ts +6 -3
  98. package/websql/lib/helpers.d.ts +22 -0
  99. package/websql/lib/utils.d.ts +48 -0
  100. package/browser/package.json +0 -25
  101. package/websql/package.json +0 -25
@@ -1,409 +1,14 @@
1
1
  {
2
- "domain": "tnp-config.example.domain.com",
3
- "isCoreProject": false,
4
- "ip": "localhost",
5
- "packageJSON": {
6
- "tnp": {
7
- "resources": [
8
- "README.md"
9
- ],
10
- "overrided": {
11
- "ignoreDepsPattern": [],
12
- "includeAsDev": [],
13
- "includeOnly": [
14
- "axios",
15
- "glob",
16
- "moment",
17
- "fkill",
18
- "copy-paste",
19
- "chokidar",
20
- "fs-extra",
21
- "rimraf",
22
- "mkdirp",
23
- "lodash",
24
- "@types/lodash",
25
- "ps-list",
26
- "ps-node",
27
- "q",
28
- "@types/q",
29
- "json5",
30
- "is-elevated",
31
- "cross-spawn",
32
- "chalk",
33
- "copy-paste",
34
- "is-root",
35
- "is-admin",
36
- "dateformat"
37
- ],
38
- "dependencies": {},
39
- "linkedFolders": [],
40
- "npmFixes": []
41
- },
42
- "smartContainerBuildTarget": "",
43
- "linkedRepos": [],
44
- "libReleaseOptions": {
45
- "nodts": false,
46
- "obscure": false,
47
- "ugly": false,
48
- "includeNodeModules": false,
49
- "cliBuildNoDts": false,
50
- "cliBuildObscure": false,
51
- "cliBuildIncludeNodeModules": false,
52
- "cliBuildUglify": false
53
- },
54
- "smartContainerTarget": "",
55
- "type": "isomorphic-lib",
56
- "isCoreProject": false,
57
- "useFramework": false,
58
- "required": [],
59
- "version": "v18",
60
- "additionalNpmNames": [
61
- "taon-core"
62
- ],
63
- "isGenerated": false,
64
- "requiredServers": [],
65
- "license": "MIT",
66
- "private": false,
67
- "main": "index.js",
68
- "workerPlugins": {}
69
- },
70
- "dependencies": {
71
- "@types/lodash": "4.14.92",
72
- "@types/q": "1.5.8",
73
- "axios": "1.7.7",
74
- "chalk": "2.3.2",
75
- "chokidar": "3.5.3",
76
- "copy-paste": "1.5.3",
77
- "cross-spawn": "7.0.3",
78
- "dateformat": "3.0.3",
79
- "fkill": "6.1.0",
80
- "fs-extra": "8.1.0",
81
- "glob": "7.1.2",
82
- "is-elevated": "3.0.0",
83
- "json5": "2.2.3",
84
- "lodash": "4.17.21",
85
- "mkdirp": "0.5.1",
86
- "moment": "2.30.1",
87
- "ps-list": "6.1.0",
88
- "ps-node": "0.1.6",
89
- "q": "1.5.1",
90
- "rimraf": "2.6.2"
91
- },
92
- "devDependencies": {
93
- "@angular-builders/custom-webpack": "~18.0.0",
94
- "@angular-devkit/build-angular": "~18.1.4",
95
- "@angular-devkit/core": "~18.1.4",
96
- "@angular-eslint/builder": "~18.2.0",
97
- "@angular-eslint/eslint-plugin": "~18.2.0",
98
- "@angular-eslint/eslint-plugin-template": "~18.2.0",
99
- "@angular-eslint/schematics": "~18.2.0",
100
- "@angular-eslint/template-parser": "~18.2.0",
101
- "@angular-material-extensions/password-strength": "~16.0.0",
102
- "@angular/animations": "~18.1.4",
103
- "@angular/cdk": "~18.1.4",
104
- "@angular/cli": "~18.1.4",
105
- "@angular/common": "~18.1.4",
106
- "@angular/compiler": "~18.1.4",
107
- "@angular/compiler-cli": "~18.1.4",
108
- "@angular/core": "~18.1.4",
109
- "@angular/elements": "~18.1.4",
110
- "@angular/forms": "~18.1.4",
111
- "@angular/material": "~18.1.4",
112
- "@angular/platform-browser": "~18.1.4",
113
- "@angular/platform-browser-dynamic": "~18.1.4",
114
- "@angular/pwa": "~18.1.4",
115
- "@angular/router": "~18.1.4",
116
- "@angular/service-worker": "~18.1.4",
117
- "@babel/cli": "7.24.8",
118
- "@compodoc/compodoc": "1.1.25",
119
- "@iconify/icons-fa-solid": "1.2.4",
120
- "@iconify/icons-mdi": "1.2.48",
121
- "@inquirer/prompts": "5.3.8",
122
- "@mdi/js": "7.4.47",
123
- "@ng-matero/extensions": "18.1.2",
124
- "@ngneat/falso": "7.2.0",
125
- "@ngneat/hot-toast": "7.0.0",
126
- "@ngneat/overview": "6.1.1",
127
- "@ngneat/spectator": "19.0.0",
128
- "@ngneat/until-destroy": "10.0.0",
129
- "@ngrx/component-store": "~18.0.2",
130
- "@ngrx/data": "~18.0.2",
131
- "@ngrx/effects": "~18.0.2",
132
- "@ngrx/entity": "~18.0.2",
133
- "@ngrx/router-store": "~18.0.2",
134
- "@ngrx/schematics": "~18.0.2",
135
- "@ngrx/store": "~18.0.2",
136
- "@ngrx/store-devtools": "~18.0.2",
137
- "@ngx-formly/core": "6.3.6",
138
- "@ngx-formly/material": "6.3.6",
139
- "@ngx-translate/core": "15.0.0",
140
- "@ngx-translate/http-loader": "8.0.0",
141
- "@sqltools/formatter": "1.2.5",
142
- "@sweetalert2/ngx-sweetalert2": "12.4.0",
143
- "@testdeck/jest": "0.3.3",
144
- "@testdeck/mocha": "0.3.3",
145
- "@types/chai": "4.3.17",
146
- "@types/chokidar": "2.1.3",
147
- "@types/dateformat": "1.0.1",
148
- "@types/diff": "5.2.1",
149
- "@types/dockerode": "3.3.32",
150
- "@types/express": "4.17.21",
151
- "@types/express-fileupload": "1.5.0",
152
- "@types/fs-extra": "7.0.0",
153
- "@types/glob": "5.0.35",
154
- "@types/http-proxy": "1.17.15",
155
- "@types/http-proxy-middleware": "1.0.0",
156
- "@types/jest": "29.5.12",
157
- "@types/json-stringify-safe": "5.0.3",
158
- "@types/json5": "0.0.29",
159
- "@types/lockfile": "1.0.4",
160
- "@types/mocha": "10.0.7",
161
- "@types/node": "16.18.21",
162
- "@types/node-notifier": "8.0.5",
163
- "@types/oauth2orize": "1.11.5",
164
- "@types/password-hash": "1.2.24",
165
- "@types/progress": "2.0.7",
166
- "@types/rimraf": "2.0.2",
167
- "@types/semver": "7.5.8",
168
- "@types/systeminformation": "3.54.1",
169
- "@types/vinyl": "2.0.12",
170
- "@types/wait-on": "5.3.4",
171
- "@types/watch": "1.0.6",
172
- "@typescript-eslint/eslint-plugin": "8.0.1",
173
- "@typescript-eslint/parser": "8.0.1",
174
- "@vercel/ncc": "0.38.1",
175
- "accepts": "1.3.8",
176
- "ajv": "8.17.1",
177
- "angular-material-css-vars": "7.0.0",
178
- "angular-resize-event": "3.2.0",
179
- "animate.css": "4.1.1",
180
- "app-root-path": "3.1.0",
181
- "base32": "0.0.7",
182
- "bcryptjs": "2.4.3",
183
- "body-parser": "1.20.2",
184
- "bootstrap": "5.3.3",
185
- "buffer-shims": "1.0.0",
186
- "bun": "1.1.22",
187
- "callsite-record": "4.1.5",
188
- "cfonts": "3.3.0",
189
- "chai": "4.5.0",
190
- "check-node-version": "3.2.0",
191
- "cheerio": "1.0.0",
192
- "circular-json": "0.5.1",
193
- "class-transformer": "0.5.1",
194
- "class-validator": "0.14.1",
195
- "cli-highlight": "2.1.11",
196
- "columnify": "1.6.0",
197
- "command-exists": "1.2.2",
198
- "compression": "1.7.4",
199
- "concurrently": "8.2.2",
200
- "console-png": "1.2.1",
201
- "content-type": "1.0.5",
202
- "conventional-changelog-cli": "5.0.0",
203
- "cookie-parser": "1.4.6",
204
- "cors": "2.8.5",
205
- "cpr": "3.0.1",
206
- "cross-env": "7.0.2",
207
- "detect-mocha": "0.1.0",
208
- "diff": "4.0.2",
209
- "dockerode": "4.0.2",
210
- "electron": "25.2.0",
211
- "electron-builder": "24.4.0",
212
- "electron-debug": "3.2.0",
213
- "electron-reloader": "1.2.3",
214
- "element-resize-detector": "1.2.4",
215
- "enquirer": "2.4.1",
216
- "enum-values": "1.2.1",
217
- "errorhandler": "1.5.1",
218
- "eslint": "9.9.0",
219
- "eslint-config-prettier": "9.1.0",
220
- "eslint-plugin-import": "latest",
221
- "eslint-plugin-jsdoc": "latest",
222
- "eslint-plugin-prefer-arrow": "latest",
223
- "eslint-plugin-prettier": "5.2.1",
224
- "eslint-plugin-react": "latest",
225
- "express": "4.19.2",
226
- "express-fileupload": "1.4.0",
227
- "express-session": "1.18.0",
228
- "file-loader": "1.1.11",
229
- "file-saver": "2.0.5",
230
- "file-type": "19.1.1",
231
- "font-awesome": "4.7.0",
232
- "form-data": "4.0.0",
233
- "fuzzy": "0.1.3",
234
- "google-libphonenumber": "3.2.38",
235
- "gulp": "3.9.1",
236
- "helmet": "7.1.0",
237
- "hostile": "1.3.3",
238
- "howler": "2.2.4",
239
- "http-proxy": "1.18.1",
240
- "http-proxy-middleware": "0.22.0-alpha",
241
- "http-server": "0.13.0",
242
- "image-focus": "1.2.1",
243
- "immer": "10.0.2",
244
- "immutable": "4.3.7",
245
- "incremental-compiler": "~18.0.20",
246
- "inquirer": "7.3.3",
247
- "inquirer-autocomplete-prompt": "1.4.0",
248
- "inquirer-autocomplete-standalone": "0.8.1",
249
- "inquirer-select-pro": "1.0.0-alpha.7",
250
- "inquirer-toggle": "1.0.1",
251
- "isomorphic-region-loader": "~18.0.19",
252
- "istanbul-instrumenter-loader": "3.0.1",
253
- "jest": "29.7.0",
254
- "jest-date-mock": "1.0.10",
255
- "jest-junit": "16.0.0",
256
- "jest-marbles": "latest",
257
- "jest-preset-angular": "14.2.2",
258
- "jimp": "0.22.12",
259
- "joi": "17.13.3",
260
- "jscodeshift": "0.6.3",
261
- "json-stringify-safe": "5.0.1",
262
- "json10": "~18.0.19",
263
- "json10-writer": "~18.0.19",
264
- "json5-writer": "0.2.0",
265
- "jszip": "3.10.1",
266
- "karma-cli": "1.0.1",
267
- "lnk": "1.0.1",
268
- "localforage": "1.10.0",
269
- "lockfile": "1.0.4",
270
- "lodash-walk-object": "~18.0.19",
271
- "lowdb": "7.0.1",
272
- "magic-renamer": "~18.0.19",
273
- "material-design-icons": "3.0.1",
274
- "method-override": "2.3.10",
275
- "minimist": "1.2.8",
276
- "mocha": "10.7.3",
277
- "ng-for-track-by-property": "18.0.1",
278
- "ng-in-viewport": "16.1.0",
279
- "ng-lock": "18.0.1",
280
- "ng-packagr": "18.1.0",
281
- "ng-talkback": "~18.0.18",
282
- "ng2-logger": "~18.0.21",
283
- "ng2-pdfjs-viewer": "18.0.0",
284
- "ng2-rest": "~18.0.19",
285
- "ng2-rest-swagger-generator": "18.0.16",
286
- "ngx-ace-wrapper": "17.0.0",
287
- "ngx-editor": "17.5.4",
288
- "ngx-highlightjs": "12.0.0",
289
- "ngx-infinite-scroll": "18.0.0",
290
- "ngx-moment": "6.0.2",
291
- "ngx-monaco-editor": "12.0.0",
292
- "ngx-photo-editor": "0.4.4",
293
- "ngx-pipes": "3.2.2",
294
- "ngx-progressbar": "11.1.0",
295
- "ngx-scrollbar": "15.1.2",
296
- "ngx-scrolltop": "18.0.0",
297
- "ngx-store": "3.1.1",
298
- "ngx-typed-js": "2.1.1",
299
- "node-cli-tester": "~18.0.18",
300
- "node-localstorage": "2.1.6",
301
- "node-notifier": "10.0.1",
302
- "node-polyfill-webpack-plugin": "2.0.1",
303
- "nodemon": "2.0.22",
304
- "npm-get-dependents": "1.0.1",
305
- "npm-run": "4.1.2",
306
- "omelette": "0.4.17",
307
- "open": "7.2.1",
308
- "ora": "3.4.0",
309
- "passport": "0.7.0",
310
- "passport-http-bearer": "1.0.1",
311
- "password-hash": "1.2.2",
312
- "path-to-regexp": "6.2.2",
313
- "pica": "9.0.1",
314
- "playwright": "1.43.1",
315
- "pm2": "5.4.3",
316
- "portfinder": "1.0.21",
317
- "prettier": "3.3.3",
318
- "prettier-eslint": "16.3.0",
319
- "pretty-error": "4.0.0",
320
- "primeflex": "3.3.1",
321
- "primeicons": "7.0.0",
322
- "primeng": "17.18.8",
323
- "progress": "2.0.3",
324
- "prompts": "2.4.2",
325
- "rallax.js": "2.0.4",
326
- "randomcolor": "0.5.3",
327
- "record-replay-req-res-scenario": "~18.0.18",
328
- "reflect-metadata": "0.2.2",
329
- "rxjs": "~7.8.1",
330
- "semver": "7.6.3",
331
- "simple-git": "3.25.0",
332
- "sinon": "18.0.0",
333
- "sloc": "0.2.0",
334
- "socket.io": "4.7.5",
335
- "socket.io-client": "4.7.5",
336
- "sort-package-json": "1.11.0",
337
- "sql-template-strings": "2.2.2",
338
- "sql-template-tag": "5.2.1",
339
- "sql.js": "1.8.0",
340
- "static-columns": "~18.0.20",
341
- "string-similarity": "4.0.4",
342
- "sudo-block": "3.0.0",
343
- "supertest": "7.0.0",
344
- "sweetalert2": "11.7.32",
345
- "systeminformation": "3.45.7",
346
- "taon": "^18",
347
- "taon-storage": "18.0.28",
348
- "taon-type-sql": "18.0.19",
349
- "taon-typeorm": "18.0.18",
350
- "task.js": "0.1.5",
351
- "threads": "1.7.0",
352
- "tnp": "~18.0.24",
353
- "tnp-config": "~18.0.21",
354
- "tnp-core": "~18.0.46",
355
- "tnp-helpers": "~18.0.19",
356
- "tnp-models": "~18.0.20",
357
- "ts-debug": "1.3.0",
358
- "ts-json-schema-generator": "2.3.0-next.5",
359
- "ts-loader": "2.3.1",
360
- "ts-node": "10.9.1",
361
- "tslib": "~2.6.3",
362
- "tslint": "6.1.3",
363
- "turndown": "7.2.0",
364
- "type-fest": "4.25.0",
365
- "typedoc": "0.26.5",
366
- "typedoc-plugin-markdown": "4.2.3",
367
- "typescript": "~5.5.4",
368
- "typescript-class-helpers": "~18.0.20",
369
- "typescript-formatter": "~7.2.2",
370
- "typescript-string-enums": "~1.0.0",
371
- "underscore": "1.13.7",
372
- "uuid": "10.0.0",
373
- "validator": "13.5.2",
374
- "video.js": "8.3.0",
375
- "vpn-split": "~18.0.18",
376
- "vscode": "1.1.37",
377
- "wait-on": "8.0.1",
378
- "watch": "1.0.2",
379
- "webpack": "~5.80",
380
- "webpack-dev-middleware": "~6.1.3",
381
- "webpack-dev-server": "~5.0.4",
382
- "yup": "1.3.3",
383
- "zone.js": "~0.13.0"
384
- },
385
- "license": "MIT",
386
- "private": false,
387
- "name": "tnp-core",
388
- "version": "18.0.47",
389
- "lastBuildTagHash": "2d1a1df33ac8196bc4336e57ac1c7bdc95ec1657",
390
- "main": "dist/app.electron.js",
391
- "scripts": {
392
- "mkdocs": "python3 -m mkdocs"
393
- }
2
+ "website": {
3
+ "domain": "tnp-core.example.domain.com",
4
+ "title": "Tnp Core"
394
5
  },
395
- "build": {
396
- "number": 917,
397
- "date": "2025-02-13T16:53:07.000Z",
398
- "hash": "1d9d7cb4a0520f249b6aea14768a08f751eb8bfb"
6
+ "buildInfo": {
7
+ "number": 943,
8
+ "date": "2025-04-07T14:57:38.000Z",
9
+ "hash": "b74112768805968700186ab4908ccda0c5eb25d6"
399
10
  },
400
11
  "currentProjectName": "tnp-core",
401
- "currentProjectGenericName": "tnp-core",
402
12
  "currentProjectType": "isomorphic-lib",
403
- "currentFrameworkVersion": "18.0.24",
404
- "isStandaloneProject": true,
405
- "isSmartContainer": false,
406
- "pathesTsconfig": "\"paths\": {\"tnp-core\":[\"./src/lib\"],\"tnp-core/*\":[\"./src/lib/*\"]},",
407
- "customRootDir": "\"rootDir\": \"./src\",",
408
- "currentLibProjectSourceFolder": "src"
13
+ "pathsTsconfig": "\"paths\": {\"tnp-core\":[\"./src/lib\"],\"tnp-core/*\":[\"./src/lib/*\"]},"
409
14
  }
@@ -24,6 +24,7 @@ let forceTrace = false;
24
24
  /* */
25
25
  /* */
26
26
  /* */
27
+ /* */
27
28
  import jQuery from 'jquery';
28
29
  import { chalk as chalkMock } from './node-chalk-mock';
29
30
  import { path as pathMock } from './node-path-mock';
@@ -33,6 +34,8 @@ import * as moment from 'moment';
33
34
  import * as dateformat from 'dateformat';
34
35
  import * as json5 from 'json5';
35
36
  import { Helpers } from './index';
37
+ /* */
38
+ /* */
36
39
  let $;
37
40
  $ = jQuery;
38
41
  /* */
@@ -47,9 +50,70 @@ let chalk = void 0;
47
50
  /* */
48
51
  // @ts-ignore
49
52
  chalk = chalkMock;
53
+ let glob = void 0;
54
+ /* */
55
+ /* */
56
+ let fse = void 0;
57
+ /* */
58
+ /* */
59
+ let os = void 0;
60
+ /* */
61
+ /* */
62
+ let child_process = void 0;
63
+ /* */
64
+ /* */
65
+ let http = void 0;
66
+ /* */
67
+ /* */
68
+ let https = void 0;
69
+ /* */
70
+ /* */
71
+ let isRoot = void 0;
72
+ /* */
73
+ /* */
74
+ let isAdmin = void 0;
75
+ /* */
76
+ /* */
77
+ /**
78
+ * check if the current process is elevated
79
+ * - sudo in unix/macos
80
+ * - admin in windows
81
+ */
82
+ let isElevated = void 0;
83
+ /* */
50
84
  /* */
85
+ let fkill = void 0;
51
86
  /* */
52
87
  /* */
88
+ let psList = void 0;
89
+ /* */
90
+ /* */
91
+ let net = void 0;
92
+ /* */
93
+ /* */
94
+ let spawn = void 0;
95
+ /* */
96
+ /* */
97
+ let minimatch = void 0;
98
+ /* */
99
+ /* */
100
+ let rimraf = void 0;
101
+ /* */
102
+ /* */
103
+ let chokidar = void 0;
104
+ /* */
105
+ /* */
106
+ let mkdirp = void 0;
107
+ /* */
108
+ /* */
109
+ let ncp = void 0;
110
+ /* */
111
+ /* */
112
+ let ps = void 0;
113
+ /* */
114
+ /* */
115
+ let fg = void 0;
116
+ /* */
53
117
  /* */
54
118
  /**
55
119
  * transform unix path to win32 path
@@ -107,10 +171,7 @@ const crossPlatformPath = (pathStringOrPathParts) => {
107
171
  }
108
172
  return pathStringOrPathParts;
109
173
  };
110
- export { _, q, moment, dateformat, crossPlatformPath, win32Path, path, chalk, json5, $, }; /* */
111
- /* */
112
- /* */
113
- /* */
174
+ export { _, q, moment, dateformat, crossPlatformPath, win32Path, path, chalk, json5, $, glob, fse, os, child_process, http, https, isElevated, fkill, psList, spawn, minimatch, fg, chokidar, mkdirp, ncp, rimraf, net, ps, }; /* */
114
175
  /* */
115
176
  /* */
116
177
  /* */
@@ -141,4 +202,4 @@ export { _, q, moment, dateformat, crossPlatformPath, win32Path, path, chalk, js
141
202
  /* */
142
203
  ;
143
204
  ({}); // @--end-of-file-for-module=tnp-core lib/core-imports.ts
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1jb3JlL3Byb2plY3RzL3RucC1jb3JlL3NyYy9saWIvY29yZS1pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztBQUN2QixLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQztBQUV6QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUsvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBS2xDLElBQUksQ0FBYSxDQUFDO0FBRWxCLENBQUMsR0FBRyxNQUFNLENBQUM7QUFFWCxLQUFLO0FBQ0wsS0FBSztBQU1MLElBQUksSUFBSSxH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QkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQVlELE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBSUYsT0FBTyxFQUFJLENBQUMsRUFBSSxDQUFDLEVBQUksTUFBTSxFQUFJLFVBQVUsRUFBSSxpQkFBaUIsRUFBSSxTQUFTLEVBQUksSUFBSSxFQUFJLEtBQUssRUFBSSxLQUFLLEVBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxLQUFLO0FBQ25ILEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFHTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFJSixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlEQUF5RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmxldCBmb3JjZVRyYWNlID0gZmFsc2U7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuaW1wb3J0IGpRdWVyeSBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY2hhbGsgYXMgY2hhbGtNb2NrIH0gZnJvbSAnLi9ub2RlLWNoYWxrLW1vY2snO1xuaW1wb3J0IHsgcGF0aCBhcyBwYXRoTW9jayB9IGZyb20gJy4vbm9kZS1wYXRoLW1vY2snO1xuXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBxIGZyb20gJ3EnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgKiBhcyBkYXRlZm9ybWF0IGZyb20gJ2RhdGVmb3JtYXQnO1xuaW1wb3J0IHsgQ2hhbGsgfSBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyBqc29uNSBmcm9tICdqc29uNSc7XG5pbXBvcnQgdHlwZSBqUXVlcnlUeXBlIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgdHlwZSBjaGFsa0Jhc2VUeXBlIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlICogYXMgcGF0aEJhc2VUeXBlIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG5cblxuXG5cbmxldCAkOiBqUXVlcnlUeXBlO1xuXG4kID0galF1ZXJ5O1xuXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5cbmxldCBwYXRoID0gdm9pZCAwIGFzIHR5cGVvZiBwYXRoQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuLy8gQHRzLWlnbm9yZVxucGF0aCA9IHBhdGhNb2NrO1xuXG5cblxuXG5cbmxldCBjaGFsazogQ2hhbGsgPSB2b2lkIDAgYXMgdHlwZW9mIGNoYWxrQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuLy8gQHRzLWlnbm9yZVxuY2hhbGsgPSBjaGFsa01vY2s7XG5cblxuXG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qKlxuICogdHJhbnNmb3JtIHVuaXggcGF0aCB0byB3aW4zMiBwYXRoXG4gKi9cbmNvbnN0IHdpbjMyUGF0aCA9IChwOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIGlmICgvXlxcL1thLXpdXFwvLy50ZXN0KHApKSB7XG4gICAgcCA9IHAucmVwbGFjZSgvXlxcL1thLXpdXFwvLywgYCR7cC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX06L2ApO1xuICB9XG4gIHJldHVybiBwYXRoLndpbjMyLm5vcm1hbGl6ZShwKTtcbn07XG5cblxuXG4vKipcbiAqIFRoaXMgZnVuY2l0b24gd2lsbCByZXBsYWNlIC8vIHRvIC9cbiAqL1xuY29uc3QgY3Jvc3NQbGF0Zm9ybVBhdGggPSAoXG4gIHBhdGhTdHJpbmdPclBhdGhQYXJ0czogc3RyaW5nIHwgc3RyaW5nW10sXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShwYXRoU3RyaW5nT3JQYXRoUGFydHMpKSB7XG4gICAgcGF0aFN0cmluZ09yUGF0aFBhcnRzID0gcGF0aFN0cmluZ09yUGF0aFBhcnRzLmpvaW4oJy8nKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcGF0aFN0cmluZ09yUGF0aFBhcnRzICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXRoU3RyaW5nT3JQYXRoUGFydHM7XG4gIH1cblxuXG5cbiAgaWYgKFxuICAgIHR5cGVvZiBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPT09ICdzdHJpbmcnICYmXG4gICAgL15bQS1aXVxcOi8udGVzdChwYXRoU3RyaW5nT3JQYXRoUGFydHMpXG4gICkge1xuICAgIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyA9IF8ubG93ZXJGaXJzdChwYXRoU3RyaW5nT3JQYXRoUGFydHMpO1xuICB9XG5cbiAgY29uc3QgaXNFeHRlbmRlZExlbmd0aFBhdGggPSAvXlxcXFxcXFxcXFw/XFxcXC8udGVzdChwYXRoU3RyaW5nT3JQYXRoUGFydHMpO1xuICBjb25zdCBoYXNOb25Bc2NpaSA9IC9bXlxcdTAwMDAtXFx1MDA4MF0rLy50ZXN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udHJvbC1yZWdleFxuICBpZiAoaXNFeHRlbmRlZExlbmd0aFBhdGgpIHtcbiAgICBjb25zb2xlLndhcm4oYFt0YW9uLWNvcmVdW2Nyb3NzUGxhdGZvcm1QYXRoXTogUGF0aCBzdGFydHMgd2l0aCBcXFxcXFxcXCxcbiAgICB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gY3Jvc3NQbGF0Zm9ybVBhdGhgKTtcbiAgICBpZiAoZm9yY2VUcmFjZSkge1xuICAgICAgY29uc29sZS50cmFjZShgcGF0aDogXCIke3BhdGhTdHJpbmdPclBhdGhQYXJ0c31cImApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoYXNOb25Bc2NpaSkge1xuICAgIGNvbnN0IGFsbE5vbkFzY2lpID0gcGF0aFN0cmluZ09yUGF0aFBhcnRzLm1hdGNoKC9bXlxcdTAwMDAtXFx1MDA4MF0rL2cpIHx8ICcnO1xuICAgIEhlbHBlcnMubG9nV2FybihcbiAgICAgIGBbdGFvbi1jb3JlXVtjcm9zc1BsYXRmb3JtUGF0aF06IFBhdGggY29udGFpbnMgbm9uLWFzY2lpIGNoYXJhY3RlcnM6ICR7YWxsTm9uQXNjaWl9YCxcbiAgICApO1xuICAgIEhlbHBlcnMubG9nV2FybihwYXRoU3RyaW5nT3JQYXRoUGFydHMpO1xuICB9XG5cbiAgcGF0aFN0cmluZ09yUGF0aFBhcnRzID0gKHBhdGhTdHJpbmdPclBhdGhQYXJ0cyB8fCAnJylcbiAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgLnJlcGxhY2UoL1xcL1xcLy9nLCAnLycpXG4gICAgLnJlcGxhY2UoL1xcL1xcLy9nLCAnLycpOyAvLyBUT0RPIHByb2JhYmx5IG5vdCBuZWVkZWRcblxuICBsZXQgaXNXaW5kb3dzID0gZmFsc2U7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuICBjb25zdCByZWdleFdpblBhdGgxID0gL14oXFwvKVthLXpBLVpdXFw6LztcblxuXG4gIGlmIChpc1dpbmRvd3MgJiYgcmVnZXhXaW5QYXRoMS50ZXN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cykpIHtcbiAgICBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPSBwYXRoU3RyaW5nT3JQYXRoUGFydHMuc2xpY2UoMSk7XG4gIH1cblxuXG5cblxuXG5cblxuXG5cblxuXG4gIHJldHVybiBwYXRoU3RyaW5nT3JQYXRoUGFydHM7XG59O1xuXG5cblxuZXhwb3J0IHsgICBfLCAgIHEsICAgbW9tZW50LCAgIGRhdGVmb3JtYXQsICAgY3Jvc3NQbGF0Zm9ybVBhdGgsICAgd2luMzJQYXRoLCAgIHBhdGgsICAgY2hhbGssICAganNvbjUsICAgJCwgfTsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtY29yZSBsaWIvY29yZS1pbXBvcnRzLnRzIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1jb3JlL3Byb2plY3RzL3RucC1jb3JlL3NyYy9saWIvY29yZS1pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztBQUN2QixLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUlMLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsS0FBSyxJQUFJLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLElBQUksUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFcEQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUM7QUFFekMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFxQi9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbEMsS0FBSztBQUNMLEtBQUs7QUFPTCxJQUFJLENBQWEsQ0FBQztBQUVsQixDQUFDLEdBQUcsTUFBTSxDQUFDO0FBRVgs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SztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBS0osQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx5REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxubGV0IGZvcmNlVHJhY2UgPSBmYWxzZTtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5pbXBvcnQgalF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBjaGFsayBhcyBjaGFsa01vY2sgfSBmcm9tICcuL25vZGUtY2hhbGstbW9jayc7XG5pbXBvcnQgeyBwYXRoIGFzIHBhdGhNb2NrIH0gZnJvbSAnLi9ub2RlLXBhdGgtbW9jayc7XG5cbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIHEgZnJvbSAncSc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCAqIGFzIGRhdGVmb3JtYXQgZnJvbSAnZGF0ZWZvcm1hdCc7XG5pbXBvcnQgeyBDaGFsayB9IGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGpzb241IGZyb20gJ2pzb241JztcbmltcG9ydCB0eXBlIGpRdWVyeVR5cGUgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB0eXBlIGNoYWxrQmFzZVR5cGUgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgKiBhcyBwYXRoQmFzZVR5cGUgZnJvbSAncGF0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIGdsb2JCYXNlVHlwZSBmcm9tICdnbG9iJztcbmltcG9ydCB0eXBlICogYXMgZnNlQmFzZVR5cGUgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgKiBhcyBvc0Jhc2VUeXBlIGZyb20gJ29zJztcbmltcG9ydCB0eXBlICogYXMgY2hpbGRfcHJvY2Vzc1R5cGUgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgdHlwZSAqIGFzIGh0dHBCYXNlVHlwZSBmcm9tICdodHRwJztcbmltcG9ydCB0eXBlICogYXMgaHR0cHNCYXNlVHlwZSBmcm9tICdodHRwcyc7XG5pbXBvcnQgdHlwZSAqIGFzIGZraWxsQmFzZVR5cGUgZnJvbSAnZmtpbGwnO1xuaW1wb3J0IHR5cGUgKiBhcyBwc0xpc3RCYXNlVHlwZSBmcm9tICdwcy1saXN0JztcbmltcG9ydCB0eXBlICogYXMgbmV0QmFzZVR5cGUgZnJvbSAnbmV0JztcbmltcG9ydCB0eXBlICogYXMgc3Bhd25CYXNlVHlwZSBmcm9tICdjcm9zcy1zcGF3bic7XG5pbXBvcnQgdHlwZSAqIGFzIGZnQmFzZVR5cGUgZnJvbSAnZmFzdC1nbG9iJztcbmltcG9ydCB0eXBlIHsgbWluaW1hdGNoIGFzIG1pbmltYXRjaEJhc2VUeXBlIH0gZnJvbSAnbWluaW1hdGNoJztcbmltcG9ydCB0eXBlICogYXMgcmltcmFmQmFzZVR5cGUgZnJvbSAncmltcmFmJztcbmltcG9ydCB0eXBlICogYXMgY2hva2lkYXJCYXNlVHlwZSBmcm9tICdjaG9raWRhcic7XG5pbXBvcnQgdHlwZSAqIGFzIG1rZGlycEJhc2VUeXBlIGZyb20gJ21rZGlycCc7XG5pbXBvcnQgdHlwZSAqIGFzIG5jcEJhc2VUeXBlIGZyb20gJ2NvcHktcGFzdGUnO1xuaW1wb3J0IHR5cGUgKiBhcyBwc0Jhc2VUeXBlIGZyb20gJ3BzLW5vZGUnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuXG5cbi8qICovXG4vKiAqL1xuICBcblxuXG5cblxuXG5sZXQgJDogalF1ZXJ5VHlwZTtcblxuJCA9IGpRdWVyeTtcblxuLyogKi9cbi8qICovXG4gIFxuXG5cblxuXG5sZXQgcGF0aCA9IHZvaWQgMCBhcyB0eXBlb2YgcGF0aEJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cbi8vIEB0cy1pZ25vcmVcbnBhdGggPSBwYXRoTW9jaztcblxuXG5cblxuXG5sZXQgY2hhbGs6IENoYWxrID0gdm9pZCAwIGFzIHR5cGVvZiBjaGFsa0Jhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cbi8vIEB0cy1pZ25vcmVcbmNoYWxrID0gY2hhbGtNb2NrO1xuXG5cblxuXG5sZXQgZ2xvYiA9IHZvaWQgMCBhcyB0eXBlb2YgZ2xvYkJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuXG5cblxubGV0IGZzZSA9IHZvaWQgMCBhcyB0eXBlb2YgZnNlQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5cblxuXG5sZXQgb3MgPSB2b2lkIDAgYXMgdHlwZW9mIG9zQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5cblxuXG5sZXQgY2hpbGRfcHJvY2VzcyA9IHZvaWQgMCBhcyB0eXBlb2YgY2hpbGRfcHJvY2Vzc1R5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgaHR0cCA9IHZvaWQgMCBhcyB0eXBlb2YgaHR0cEJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IGh0dHBzID0gdm9pZCAwIGFzIHR5cGVvZiBodHRwc0Jhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IGlzUm9vdCA9IHZvaWQgMCBhcyAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IGlzQWRtaW4gPSB2b2lkIDAgYXMgKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qKlxuICogY2hlY2sgaWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBpcyBlbGV2YXRlZFxuICogLSBzdWRvIGluIHVuaXgvbWFjb3NcbiAqIC0gYWRtaW4gaW4gd2luZG93c1xuICovXG5sZXQgaXNFbGV2YXRlZCA9IHZvaWQgMCBhcyAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IGZraWxsID0gdm9pZCAwIGFzIHR5cGVvZiBma2lsbEJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IHBzTGlzdCA9IHZvaWQgMCBhcyB0eXBlb2YgcHNMaXN0QmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgbmV0ID0gdm9pZCAwIGFzIHR5cGVvZiBuZXRCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cbmxldCBzcGF3biA9IHZvaWQgMCBhcyB0eXBlb2Ygc3Bhd25CYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cbmxldCBtaW5pbWF0Y2ggPSB2b2lkIDAgYXMgdHlwZW9mIG1pbmltYXRjaEJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IHJpbXJhZiA9IHZvaWQgMCBhcyB0eXBlb2YgcmltcmFmQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgY2hva2lkYXIgPSB2b2lkIDAgYXMgdHlwZW9mIGNob2tpZGFyQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgbWtkaXJwID0gdm9pZCAwIGFzIHR5cGVvZiBta2RpcnBCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cbmxldCBuY3AgPSB2b2lkIDAgYXMgdHlwZW9mIG5jcEJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IHBzID0gdm9pZCAwIGFzIHR5cGVvZiBwc0Jhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IGZnID0gdm9pZCAwIGFzIHR5cGVvZiBmZ0Jhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuXG5cblxuXG4vKipcbiAqIHRyYW5zZm9ybSB1bml4IHBhdGggdG8gd2luMzIgcGF0aFxuICovXG5jb25zdCB3aW4zMlBhdGggPSAocDogc3RyaW5nKTogc3RyaW5nID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICBpZiAoL15cXC9bYS16XVxcLy8udGVzdChwKSkge1xuICAgIHAgPSBwLnJlcGxhY2UoL15cXC9bYS16XVxcLy8sIGAke3AuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9Oi9gKTtcbiAgfVxuICByZXR1cm4gcGF0aC53aW4zMi5ub3JtYWxpemUocCk7XG59O1xuXG5cbi8qKlxuICogVGhpcyBmdW5jaXRvbiB3aWxsIHJlcGxhY2UgLy8gdG8gL1xuICovXG5jb25zdCBjcm9zc1BsYXRmb3JtUGF0aCA9IChcbiAgcGF0aFN0cmluZ09yUGF0aFBhcnRzOiBzdHJpbmcgfCBzdHJpbmdbXSxcbik6IHN0cmluZyA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHBhdGhTdHJpbmdPclBhdGhQYXJ0cykpIHtcbiAgICBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPSBwYXRoU3RyaW5nT3JQYXRoUGFydHMuam9pbignLycpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBwYXRoU3RyaW5nT3JQYXRoUGFydHMgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhdGhTdHJpbmdPclBhdGhQYXJ0cztcbiAgfVxuXG5cblxuICBpZiAoXG4gICAgdHlwZW9mIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyA9PT0gJ3N0cmluZycgJiZcbiAgICAvXltBLVpdXFw6Ly50ZXN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cylcbiAgKSB7XG4gICAgcGF0aFN0cmluZ09yUGF0aFBhcnRzID0gXy5sb3dlckZpcnN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cyk7XG4gIH1cblxuICBjb25zdCBpc0V4dGVuZGVkTGVuZ3RoUGF0aCA9IC9eXFxcXFxcXFxcXD9cXFxcLy50ZXN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cyk7XG4gIGNvbnN0IGhhc05vbkFzY2lpID0gL1teXFx1MDAwMC1cXHUwMDgwXSsvLnRlc3QocGF0aFN0cmluZ09yUGF0aFBhcnRzKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gIGlmIChpc0V4dGVuZGVkTGVuZ3RoUGF0aCkge1xuICAgIGNvbnNvbGUud2FybihgW3Rhb24tY29yZV1bY3Jvc3NQbGF0Zm9ybVBhdGhdOiBQYXRoIHN0YXJ0cyB3aXRoIFxcXFxcXFxcLFxuICAgIHRoaXMgaXMgbm90IHN1cHBvcnRlZCBpbiBjcm9zc1BsYXRmb3JtUGF0aGApO1xuICAgIGlmIChmb3JjZVRyYWNlKSB7XG4gICAgICBjb25zb2xlLnRyYWNlKGBwYXRoOiBcIiR7cGF0aFN0cmluZ09yUGF0aFBhcnRzfVwiYCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhc05vbkFzY2lpKSB7XG4gICAgY29uc3QgYWxsTm9uQXNjaWkgPSBwYXRoU3RyaW5nT3JQYXRoUGFydHMubWF0Y2goL1teXFx1MDAwMC1cXHUwMDgwXSsvZykgfHwgJyc7XG4gICAgSGVscGVycy5sb2dXYXJuKFxuICAgICAgYFt0YW9uLWNvcmVdW2Nyb3NzUGxhdGZvcm1QYXRoXTogUGF0aCBjb250YWlucyBub24tYXNjaWkgY2hhcmFjdGVyczogJHthbGxOb25Bc2NpaX1gLFxuICAgICk7XG4gICAgSGVscGVycy5sb2dXYXJuKHBhdGhTdHJpbmdPclBhdGhQYXJ0cyk7XG4gIH1cblxuICBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPSAocGF0aFN0cmluZ09yUGF0aFBhcnRzIHx8ICcnKVxuICAgIC5yZXBsYWNlKC9cXFxcL2csICcvJylcbiAgICAucmVwbGFjZSgvXFwvXFwvL2csICcvJylcbiAgICAucmVwbGFjZSgvXFwvXFwvL2csICcvJyk7IC8vIFRPRE8gcHJvYmFibHkgbm90IG5lZWRlZFxuXG4gIGxldCBpc1dpbmRvd3MgPSBmYWxzZTtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4gIGNvbnN0IHJlZ2V4V2luUGF0aDEgPSAvXihcXC8pW2EtekEtWl1cXDovO1xuXG5cbiAgaWYgKGlzV2luZG93cyAmJiByZWdleFdpblBhdGgxLnRlc3QocGF0aFN0cmluZ09yUGF0aFBhcnRzKSkge1xuICAgIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyA9IHBhdGhTdHJpbmdPclBhdGhQYXJ0cy5zbGljZSgxKTtcbiAgfVxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgcmV0dXJuIHBhdGhTdHJpbmdPclBhdGhQYXJ0cztcbn07XG5cblxuXG5leHBvcnQgeyAgIF8sICAgcSwgICBtb21lbnQsICAgZGF0ZWZvcm1hdCwgICBjcm9zc1BsYXRmb3JtUGF0aCwgICB3aW4zMlBhdGgsICAgcGF0aCwgICBjaGFsaywgICBqc29uNSwgICAkLCAgIGdsb2IsICAgZnNlLCAgIG9zLCAgIGNoaWxkX3Byb2Nlc3MsICAgaHR0cCwgICBodHRwcywgICBpc0VsZXZhdGVkLCAgIGZraWxsLCAgIHBzTGlzdCwgICBzcGF3biwgICBtaW5pbWF0Y2gsICAgZmcsICAgY2hva2lkYXIsICAgbWtkaXJwLCAgIG5jcCwgICByaW1yYWYsICAgbmV0LCAgIHBzLCB9Oy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWNvcmUgbGliL2NvcmUtaW1wb3J0cy50cyJdfQ==