tnp-helpers 19.0.35 → 19.0.37
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.
- package/browser/README.md +24 -24
- package/browser/fesm2022/tnp-helpers.mjs +441 -68
- package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
- package/browser/lib/base/classes/base-command-line-feature.d.ts +48 -0
- package/browser/lib/base/classes/base-git.d.ts +1 -1
- package/browser/lib/base/classes/base-project.d.ts +1 -1
- package/browser/lib/base/classes/base-vscode.d.ts +4 -0
- package/browser/lib/base/classes/index.d.ts +2 -1
- package/browser/lib/base/core-project.d.ts +4 -4
- package/browser/lib/build-info._auto-generated_.d.ts +1 -1
- package/browser/lib/models.d.ts +40 -1
- package/browser/lib/utils.d.ts +15 -1
- package/browser/package.json +1 -1
- package/index.js.map +1 -1
- package/lib/base/classes/base-bower-json.js.map +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker-config.js.map +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker-controller.js.map +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.js.map +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker.js.map +1 -1
- package/lib/base/classes/base-cli-worker/index.js.map +1 -1
- package/lib/base/classes/base-command-line-feature.backend.d.ts +3 -3
- package/lib/base/classes/base-command-line-feature.backend.js.map +1 -1
- package/lib/base/classes/base-command-line-feature.d.ts +47 -0
- package/lib/base/classes/base-command-line-feature.js +147 -0
- package/lib/base/classes/base-command-line-feature.js.map +1 -0
- package/lib/base/classes/base-compiler-for-project.js.map +1 -1
- package/lib/base/classes/base-db.js.map +1 -1
- package/lib/base/classes/base-debounce-compiler-for-project.js.map +1 -1
- package/lib/base/classes/base-feature-for-project.js.map +1 -1
- package/lib/base/classes/base-git.d.ts +1 -1
- package/lib/base/classes/base-git.js +5 -2
- package/lib/base/classes/base-git.js.map +1 -1
- package/lib/base/classes/base-global-command-line.backend.d.ts +9 -2
- package/lib/base/classes/base-global-command-line.backend.js +218 -21
- package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
- package/lib/base/classes/base-ignore-hide.js.map +1 -1
- package/lib/base/classes/base-json-file-reader.js.map +1 -1
- package/lib/base/classes/base-library-build.js.map +1 -1
- package/lib/base/classes/base-linked-projects.js +16 -3
- package/lib/base/classes/base-linked-projects.js.map +1 -1
- package/lib/base/classes/base-node-modules.js.map +1 -1
- package/lib/base/classes/base-npm-helpers.js.map +1 -1
- package/lib/base/classes/base-package-json.js.map +1 -1
- package/lib/base/classes/base-powershell.js.map +1 -1
- package/lib/base/classes/base-process-manager.js.map +1 -1
- package/lib/base/classes/base-project-resolver.js.map +1 -1
- package/lib/base/classes/base-project.d.ts +1 -1
- package/lib/base/classes/base-project.js +3 -3
- package/lib/base/classes/base-project.js.map +1 -1
- package/lib/base/classes/base-quick-fixes.js.map +1 -1
- package/lib/base/classes/base-release-process.js.map +1 -1
- package/lib/base/classes/base-start-config.backend.js.map +1 -1
- package/lib/base/classes/base-static-pages.js.map +1 -1
- package/lib/base/classes/base-vscode.d.ts +4 -0
- package/lib/base/classes/base-vscode.js +13 -4
- package/lib/base/classes/base-vscode.js.map +1 -1
- package/lib/base/classes/index.d.ts +1 -1
- package/lib/base/classes/index.js +1 -1
- package/lib/base/classes/index.js.map +1 -1
- package/lib/base/commit-data.js.map +1 -1
- package/lib/base/config-database.js.map +1 -1
- package/lib/base/core-project.d.ts +4 -4
- package/lib/base/core-project.js.map +1 -1
- package/lib/base/gh-temp-code.js.map +1 -1
- package/lib/base/index-rebuilder.backend.js.map +1 -1
- package/lib/base/index.js.map +1 -1
- package/lib/base/linked-project.js +19 -0
- package/lib/base/linked-project.js.map +1 -1
- package/lib/base/project-database.js.map +1 -1
- package/lib/base/tcp-udp-ports/index.js.map +1 -1
- package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
- package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -1
- package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -1
- package/lib/base/tcp-udp-ports/ports.entity.d.ts +1 -1
- package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -1
- package/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +2 -2
- package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -1
- package/lib/base/tcp-udp-ports/tcp-upd-ports-terminal-ui.js.map +1 -1
- package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -1
- package/lib/base/translate.js.map +1 -1
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/env/env.angular-node-app.d.ts +6 -0
- package/lib/env/env.angular-node-app.js +8 -2
- package/lib/env/env.angular-node-app.js.map +1 -1
- package/lib/env/env.docs-webapp.d.ts +6 -0
- package/lib/env/env.docs-webapp.js +8 -2
- package/lib/env/env.docs-webapp.js.map +1 -1
- package/lib/env/env.electron-app.d.ts +6 -0
- package/lib/env/env.electron-app.js +8 -2
- package/lib/env/env.electron-app.js.map +1 -1
- package/lib/env/env.mobile-app.d.ts +6 -0
- package/lib/env/env.mobile-app.js +8 -2
- package/lib/env/env.mobile-app.js.map +1 -1
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +6 -0
- package/lib/env/env.npm-lib-and-cli-tool.js +8 -2
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib/env/env.vscode-plugin.d.ts +6 -0
- package/lib/env/env.vscode-plugin.js +8 -2
- package/lib/env/env.vscode-plugin.js.map +1 -1
- package/lib/env/index.js.map +1 -1
- package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
- package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-file-folders.js.map +1 -1
- package/lib/helpers/for-backend/helpers-git.backend.js +27 -1
- package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-network.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-npm.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-path.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-process.js.map +1 -1
- package/lib/helpers/for-backend/helpers-system-terminal.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-vscode.backend.js.map +1 -1
- package/lib/helpers/for-browser/angular.helper.js +2 -2
- package/lib/helpers/for-browser/angular.helper.js.map +1 -1
- package/lib/helpers/for-browser/helpers-browser.js.map +1 -1
- package/lib/helpers/helpers-array-obj.js.map +1 -1
- package/lib/helpers/helpers-json5.backend.js.map +1 -1
- package/lib/helpers/helpers-numbers.js.map +1 -1
- package/lib/helpers/helpers-strings-regexes.js.map +1 -1
- package/lib/helpers/helpers-strings.js.map +1 -1
- package/lib/helpers/helpers.d.ts +0 -2
- package/lib/helpers/helpers.js +4 -4
- package/lib/helpers/helpers.js.map +1 -1
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/lowdb/adapters/Memory.js.map +1 -1
- package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -1
- package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -1
- package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -1
- package/lib/lowdb/adapters/node/DataFile.js.map +1 -1
- package/lib/lowdb/adapters/node/JSONFile.js.map +1 -1
- package/lib/lowdb/adapters/node/TextFile.js.map +1 -1
- package/lib/lowdb/adapters/node/steno.js.map +1 -1
- package/lib/lowdb/browser.js.map +1 -1
- package/lib/lowdb/core/Low.js.map +1 -1
- package/lib/lowdb/examples/browser.js.map +1 -1
- package/lib/lowdb/examples/cli.js.map +1 -1
- package/lib/lowdb/examples/in-memory.js.map +1 -1
- package/lib/lowdb/examples/server.js.map +1 -1
- package/lib/lowdb/index.js.map +1 -1
- package/lib/lowdb/node.js.map +1 -1
- package/lib/lowdb/presets/browser.js.map +1 -1
- package/lib/lowdb/presets/node.js.map +1 -1
- package/lib/models.d.ts +40 -1
- package/lib/models.js.map +1 -1
- package/lib/old/base-component.js +2 -2
- package/lib/old/base-component.js.map +1 -1
- package/lib/old/base-formly-component.js +2 -2
- package/lib/old/base-formly-component.js.map +1 -1
- package/lib/old/condition-wait.js.map +1 -1
- package/lib/old/dual-component-ctrl.js +2 -2
- package/lib/old/dual-component-ctrl.js.map +1 -1
- package/lib/old/execute-command.js.map +1 -1
- package/lib/old/helpers.js.map +1 -1
- package/lib/old/models.js.map +1 -1
- package/lib/utils.d.ts +15 -1
- package/lib/utils.js +179 -40
- package/lib/utils.js.map +1 -1
- package/lib/validators/validators-firedev.js.map +1 -1
- package/lib/validators/validators-git.js.map +1 -1
- package/lib/validators/validators-network.js.map +1 -1
- package/lib/validators/validators.js.map +1 -1
- package/migrations/1736198527297_init.js +1 -0
- package/migrations/1736198527297_init.js.map +1 -1
- package/migrations/1736199486472_addingNotAssignablePorts.js +1 -0
- package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -1
- package/migrations/1736454437350_addFreePorts.js +1 -0
- package/migrations/1736454437350_addFreePorts.js.map +1 -1
- package/migrations/index.js.map +1 -1
- package/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/package.json +1 -1
- package/websql/README.md +24 -24
- package/websql/fesm2022/tnp-helpers.mjs +361 -7
- package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
- package/websql/lib/base/classes/base-command-line-feature.d.ts +48 -0
- package/websql/lib/base/classes/base-git.d.ts +1 -1
- package/websql/lib/base/classes/base-project.d.ts +1 -1
- package/websql/lib/base/classes/base-vscode.d.ts +4 -0
- package/websql/lib/base/classes/index.d.ts +2 -1
- package/websql/lib/base/core-project.d.ts +4 -4
- package/websql/lib/build-info._auto-generated_.d.ts +1 -1
- package/websql/lib/models.d.ts +40 -1
- package/websql/lib/utils.d.ts +15 -1
- package/websql/package.json +1 -1
- package/lib/env-backend._auto-generated_.d.ts +0 -34
- package/lib/env-backend._auto-generated_.js +0 -38
- package/lib/env-backend._auto-generated_.js.map +0 -1
- package/lib/env-browser._auto-generated_.d.ts +0 -34
- package/lib/env-browser._auto-generated_.js +0 -38
- package/lib/env-browser._auto-generated_.js.map +0 -1
- package/lib/env.backend.d.ts +0 -34
- package/lib/env.backend.js +0 -40
- package/lib/env.backend.js.map +0 -1
- package/lib/env.browser.d.ts +0 -34
- package/tmp-environment.json +0 -33
package/lib/utils.d.ts
CHANGED
|
@@ -50,7 +50,10 @@ export declare namespace UtilsTypescript {
|
|
|
50
50
|
/**
|
|
51
51
|
* Attempts to set or add an exported const with given name and value.
|
|
52
52
|
*/
|
|
53
|
-
export const setValueToVariableInTsFile: (tsAbsFilePath: string, variableName: string, valueOfVariable: any,
|
|
53
|
+
export const setValueToVariableInTsFile: (tsAbsFilePath: string, variableName: string, valueOfVariable: any, options?: {
|
|
54
|
+
skipAddIfNotExists?: boolean;
|
|
55
|
+
useRawStringValue?: boolean;
|
|
56
|
+
}) => void;
|
|
54
57
|
export class TsImportExport {
|
|
55
58
|
/**
|
|
56
59
|
* for external modification
|
|
@@ -153,6 +156,17 @@ export declare namespace UtilsVSCode {
|
|
|
153
156
|
const generateFancyColor: () => string;
|
|
154
157
|
const vscodeImport: () => typeof vscodeType;
|
|
155
158
|
}
|
|
159
|
+
export declare namespace UtilsDotFile {
|
|
160
|
+
const setValueToDotFile: (dotFileAbsPath: string | string[], value: string, key: string | number | boolean) => void;
|
|
161
|
+
const getValueFromDotFile: (dotFileAbsPath: string | string[], key: string) => string | number | boolean;
|
|
162
|
+
const setValuesKeysFromObject: (dotFileAbsPath: string | string[], obj: Record<string, string | number | boolean>, options?: {
|
|
163
|
+
/**
|
|
164
|
+
* if true, it will overwrite existing keys
|
|
165
|
+
*/
|
|
166
|
+
setAsNewFile?: boolean;
|
|
167
|
+
}) => void;
|
|
168
|
+
const getValuesKeysAsJsonObject: <T = Record<string, string | number | boolean>>(dotFileAbsPath: string | string[]) => T;
|
|
169
|
+
}
|
|
156
170
|
export declare namespace UtilsZipBrowser {
|
|
157
171
|
const zipDirBrowser: (fileList: FileList) => Promise<Blob>;
|
|
158
172
|
const unzipArchiveBrowser: (zipBlob: Blob) => Promise<Map<string, Blob>>;
|
package/lib/utils.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UtilsZip = exports.UtilsZipBrowser = exports.UtilsVSCode = exports.UtilsQuickFixes = exports.UtilsMd = exports.UtilsHttp = exports.UtilsTypescript = exports.UtilsNpm = void 0;
|
|
3
|
+
exports.UtilsZip = exports.UtilsZipBrowser = exports.UtilsDotFile = exports.UtilsVSCode = exports.UtilsQuickFixes = exports.UtilsMd = exports.UtilsHttp = exports.UtilsTypescript = exports.UtilsNpm = void 0;
|
|
4
4
|
//#region imports
|
|
5
|
-
const lib_1 = require("tnp-
|
|
5
|
+
const lib_1 = require("tnp-config/lib");
|
|
6
6
|
const lib_2 = require("tnp-core/lib");
|
|
7
|
+
const lib_3 = require("tnp-core/lib");
|
|
7
8
|
const typescript_1 = require("typescript");
|
|
8
9
|
const index_1 = require("./index");
|
|
9
10
|
//#endregion
|
|
@@ -12,7 +13,7 @@ var UtilsNpm;
|
|
|
12
13
|
(function (UtilsNpm) {
|
|
13
14
|
//#region is special version
|
|
14
15
|
UtilsNpm.isSpecialVersion = (version) => {
|
|
15
|
-
return
|
|
16
|
+
return lib_3.CoreModels.NpmSpecialVersions.includes(version);
|
|
16
17
|
};
|
|
17
18
|
//#endregion
|
|
18
19
|
//#region clear version
|
|
@@ -23,7 +24,7 @@ var UtilsNpm;
|
|
|
23
24
|
}
|
|
24
25
|
version = (version || '')
|
|
25
26
|
.trim()
|
|
26
|
-
.replace(new RegExp(
|
|
27
|
+
.replace(new RegExp(lib_3.Utils.escapeStringForRegEx('undefined'), 'g'), '0');
|
|
27
28
|
if (removePrefixes) {
|
|
28
29
|
version = version.replace('^', '').replace('~', '');
|
|
29
30
|
}
|
|
@@ -41,7 +42,7 @@ var UtilsNpm;
|
|
|
41
42
|
}
|
|
42
43
|
version = (version || '')
|
|
43
44
|
.trim()
|
|
44
|
-
.replace(new RegExp(
|
|
45
|
+
.replace(new RegExp(lib_3.Utils.escapeStringForRegEx('undefined'), 'g'), '0');
|
|
45
46
|
const splited = version.split('.');
|
|
46
47
|
let [major, minor, patch, alphaOrBetaOrRc] = splited;
|
|
47
48
|
if (splited.length === 1) {
|
|
@@ -286,13 +287,13 @@ var UtilsTypescript;
|
|
|
286
287
|
//#region format file(s) with prettier
|
|
287
288
|
UtilsTypescript.formatFile = (absPathToFile) => {
|
|
288
289
|
//#region @backendFunc
|
|
289
|
-
absPathToFile = (0,
|
|
290
|
+
absPathToFile = (0, lib_2.crossPlatformPath)(absPathToFile);
|
|
290
291
|
if (index_1.Helpers.exists(absPathToFile)) {
|
|
291
292
|
const { execSync } = require('child_process');
|
|
292
293
|
index_1.Helpers.logInfo(`Formatting file: ${absPathToFile}`);
|
|
293
294
|
try {
|
|
294
|
-
execSync(`prettier --write ${
|
|
295
|
-
cwd:
|
|
295
|
+
execSync(`prettier --write ${lib_2.path.basename(absPathToFile)}`, {
|
|
296
|
+
cwd: lib_2.path.dirname(absPathToFile),
|
|
296
297
|
});
|
|
297
298
|
}
|
|
298
299
|
catch (error) {
|
|
@@ -322,13 +323,13 @@ var UtilsTypescript;
|
|
|
322
323
|
//#region lint file(s) with eslint
|
|
323
324
|
UtilsTypescript.eslintFixFile = (absPathToFile) => {
|
|
324
325
|
//#region @backendFunc
|
|
325
|
-
absPathToFile = (0,
|
|
326
|
+
absPathToFile = (0, lib_2.crossPlatformPath)(absPathToFile);
|
|
326
327
|
if (index_1.Helpers.exists(absPathToFile)) {
|
|
327
328
|
const { execSync } = require('child_process');
|
|
328
329
|
index_1.Helpers.logInfo(`Fixing file with eslint: ${absPathToFile}`);
|
|
329
330
|
try {
|
|
330
|
-
execSync(`npx --yes eslint --fix ${
|
|
331
|
-
cwd:
|
|
331
|
+
execSync(`npx --yes eslint --fix ${lib_2.path.basename(absPathToFile)}`, {
|
|
332
|
+
cwd: lib_2.path.dirname(absPathToFile),
|
|
332
333
|
});
|
|
333
334
|
}
|
|
334
335
|
catch (error) { }
|
|
@@ -338,7 +339,7 @@ var UtilsTypescript;
|
|
|
338
339
|
};
|
|
339
340
|
UtilsTypescript.eslintFixAllFilesInsideFolder = (absPathToFolder) => {
|
|
340
341
|
//#region @backendFunc
|
|
341
|
-
absPathToFolder = (0,
|
|
342
|
+
absPathToFolder = (0, lib_2.crossPlatformPath)(absPathToFolder);
|
|
342
343
|
if (index_1.Helpers.exists(absPathToFolder)) {
|
|
343
344
|
index_1.Helpers.info(`Fixing files with eslint in: ${absPathToFolder}`);
|
|
344
345
|
const lintFixFn = () => {
|
|
@@ -450,7 +451,7 @@ var UtilsTypescript;
|
|
|
450
451
|
//#region wrap one line with comment
|
|
451
452
|
UtilsTypescript.wrapWithComment = (oneLineComment, absDestFilePath) => {
|
|
452
453
|
//#region @backendFunc
|
|
453
|
-
const ext =
|
|
454
|
+
const ext = lib_2.path.extname(absDestFilePath).toLowerCase();
|
|
454
455
|
let commentSyntax;
|
|
455
456
|
switch (ext) {
|
|
456
457
|
case '.ts':
|
|
@@ -487,11 +488,13 @@ var UtilsTypescript;
|
|
|
487
488
|
/**
|
|
488
489
|
* Attempts to set or add an exported const with given name and value.
|
|
489
490
|
*/
|
|
490
|
-
UtilsTypescript.setValueToVariableInTsFile = (tsAbsFilePath, variableName, valueOfVariable,
|
|
491
|
+
UtilsTypescript.setValueToVariableInTsFile = (tsAbsFilePath, variableName, valueOfVariable, options) => {
|
|
491
492
|
//#region @backendFunc
|
|
492
493
|
const sourceText = index_1.Helpers.readFile(tsAbsFilePath);
|
|
493
494
|
const sourceFile = (0, typescript_1.createSourceFile)(tsAbsFilePath, sourceText, typescript_1.ScriptTarget.Latest,
|
|
494
495
|
/*setParentNodes */ true);
|
|
496
|
+
options = options || {};
|
|
497
|
+
const addIfNotExists = !options.skipAddIfNotExists;
|
|
495
498
|
// We'll build an AST transformer that modifies or inserts our variable declaration
|
|
496
499
|
const transformer = (context) => {
|
|
497
500
|
const { factory } = context;
|
|
@@ -510,7 +513,12 @@ var UtilsTypescript;
|
|
|
510
513
|
// we wrap it with quotes; otherwise, create a numeric or object literal.
|
|
511
514
|
let initializer;
|
|
512
515
|
if (typeof valueOfVariable === 'string') {
|
|
513
|
-
|
|
516
|
+
if (options.useRawStringValue) {
|
|
517
|
+
initializer = factory.createIdentifier(valueOfVariable);
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
initializer = factory.createStringLiteral(valueOfVariable);
|
|
521
|
+
}
|
|
514
522
|
}
|
|
515
523
|
else if (typeof valueOfVariable === 'number') {
|
|
516
524
|
initializer = factory.createNumericLiteral(valueOfVariable);
|
|
@@ -677,14 +685,17 @@ var UtilsTypescript;
|
|
|
677
685
|
//#endregion
|
|
678
686
|
//#region helpers / get quote type
|
|
679
687
|
const getQuoteType = (text) => {
|
|
688
|
+
//#region @websqlFunc
|
|
680
689
|
if (text.startsWith('`'))
|
|
681
690
|
return 'tics';
|
|
682
691
|
if (text.startsWith("'"))
|
|
683
692
|
return 'single';
|
|
684
693
|
return 'double';
|
|
694
|
+
//#endregion
|
|
685
695
|
};
|
|
686
696
|
//#endregion
|
|
687
697
|
const extractImportExportElements = (node) => {
|
|
698
|
+
//#region @websqlFunc
|
|
688
699
|
const elements = [];
|
|
689
700
|
if ((0, typescript_1.isImportDeclaration)(node) && node.importClause) {
|
|
690
701
|
// Check if there are named imports inside { }
|
|
@@ -700,6 +711,7 @@ var UtilsTypescript;
|
|
|
700
711
|
}
|
|
701
712
|
}
|
|
702
713
|
return elements;
|
|
714
|
+
//#endregion
|
|
703
715
|
};
|
|
704
716
|
UtilsTypescript.recognizeImportsFromFile = (fileAbsPAth) => {
|
|
705
717
|
//#region @backendFunc
|
|
@@ -824,9 +836,9 @@ var UtilsTypescript;
|
|
|
824
836
|
index_1.Helpers.taskStarted(`(before prettier) Fixing HTML templates in`);
|
|
825
837
|
const files = index_1.Helpers.filesFrom(directoryPath, true, false);
|
|
826
838
|
for (const fullPath of files) {
|
|
827
|
-
const file =
|
|
839
|
+
const file = lib_2.path.basename(fullPath);
|
|
828
840
|
if (index_1.Helpers.exists(fullPath)) {
|
|
829
|
-
const stat =
|
|
841
|
+
const stat = lib_2.fse.statSync(fullPath);
|
|
830
842
|
if (file.endsWith('.html')) {
|
|
831
843
|
const original = index_1.Helpers.readFile(fullPath);
|
|
832
844
|
const fixed = escapeAtInHtmlText(original);
|
|
@@ -843,13 +855,14 @@ var UtilsTypescript;
|
|
|
843
855
|
//#endregion
|
|
844
856
|
//#region remove tagged imports/exports
|
|
845
857
|
function removeTaggedImportExport(tsFileContent, tags) {
|
|
858
|
+
//#region @websqlFunc
|
|
846
859
|
const sourceFile = (0, typescript_1.createSourceFile)('temp.ts', tsFileContent, typescript_1.ScriptTarget.Latest, true, typescript_1.ScriptKind.TS);
|
|
847
860
|
// debug && console.log(tsFileContent);
|
|
848
861
|
const lines = tsFileContent.split(/\r?\n/);
|
|
849
862
|
const tagRegex = new RegExp(tags
|
|
850
863
|
.map(t => (Array.isArray(t) ? t[0] : t))
|
|
851
864
|
.filter(Boolean)
|
|
852
|
-
.map(
|
|
865
|
+
.map(lib_3.Utils.escapeStringForRegEx)
|
|
853
866
|
.join('|'), 'i');
|
|
854
867
|
let a = 0;
|
|
855
868
|
for (const statement of sourceFile.statements) {
|
|
@@ -883,6 +896,7 @@ var UtilsTypescript;
|
|
|
883
896
|
const result = lines.join('\n');
|
|
884
897
|
// debug && console.log(result)
|
|
885
898
|
return result;
|
|
899
|
+
//#endregion
|
|
886
900
|
}
|
|
887
901
|
UtilsTypescript.removeTaggedImportExport = removeTaggedImportExport;
|
|
888
902
|
//#endregion
|
|
@@ -1142,8 +1156,8 @@ var UtilsQuickFixes;
|
|
|
1142
1156
|
UtilsQuickFixes.replaceElectronWithNothing = (jsContent, packageName) => {
|
|
1143
1157
|
//#region @backendFunc
|
|
1144
1158
|
return jsContent
|
|
1145
|
-
.replace(new RegExp(
|
|
1146
|
-
.replace(new RegExp(
|
|
1159
|
+
.replace(new RegExp(lib_3.Utils.escapeStringForRegEx(`mod${'ule.exports'} = ${'requ' + 'ire'}("${packageName}");`), 'g'), `/* --- replaced ${packageName} --- */`)
|
|
1160
|
+
.replace(new RegExp(lib_3.Utils.escapeStringForRegEx(`var ${lib_3._.snakeCase(packageName)}_1 = ${'req' + 'uire'}("${packageName}");`), 'g'), `/* --- replaced ${packageName} --- */`);
|
|
1147
1161
|
// var electron_1 = require("electron");
|
|
1148
1162
|
//#endregion
|
|
1149
1163
|
};
|
|
@@ -1214,7 +1228,7 @@ var UtilsVSCode;
|
|
|
1214
1228
|
};
|
|
1215
1229
|
UtilsVSCode.vscodeImport = () => {
|
|
1216
1230
|
//#region @backendFunc
|
|
1217
|
-
if (!
|
|
1231
|
+
if (!lib_2.UtilsOs.isRunningInVscodeExtension()) {
|
|
1218
1232
|
return {};
|
|
1219
1233
|
}
|
|
1220
1234
|
const vscode = require('vsc' + 'ode');
|
|
@@ -1223,6 +1237,128 @@ var UtilsVSCode;
|
|
|
1223
1237
|
};
|
|
1224
1238
|
})(UtilsVSCode || (exports.UtilsVSCode = UtilsVSCode = {}));
|
|
1225
1239
|
//#endregion
|
|
1240
|
+
//#region utils dot file
|
|
1241
|
+
var UtilsDotFile;
|
|
1242
|
+
(function (UtilsDotFile) {
|
|
1243
|
+
//#region parse value from dot file util
|
|
1244
|
+
const parseValue = (rawValue) => {
|
|
1245
|
+
const val = rawValue.trim().replace(/^"|"$/g, '');
|
|
1246
|
+
// Try boolean
|
|
1247
|
+
if (val.toLowerCase() === 'true')
|
|
1248
|
+
return true;
|
|
1249
|
+
if (val.toLowerCase() === 'false')
|
|
1250
|
+
return false;
|
|
1251
|
+
// Try number
|
|
1252
|
+
if (!isNaN(Number(val)) && val !== '')
|
|
1253
|
+
return Number(val);
|
|
1254
|
+
return val;
|
|
1255
|
+
};
|
|
1256
|
+
//#endregion
|
|
1257
|
+
//#region set value to/from dot file
|
|
1258
|
+
UtilsDotFile.setValueToDotFile = (dotFileAbsPath, value, key) => {
|
|
1259
|
+
//#region @backendFunc
|
|
1260
|
+
dotFileAbsPath = (0, lib_2.crossPlatformPath)(dotFileAbsPath);
|
|
1261
|
+
let envContent = '';
|
|
1262
|
+
if (lib_2.fse.existsSync(dotFileAbsPath)) {
|
|
1263
|
+
envContent = index_1.Helpers.readFile(dotFileAbsPath, '');
|
|
1264
|
+
}
|
|
1265
|
+
else {
|
|
1266
|
+
// Create file if it doesn't exist
|
|
1267
|
+
index_1.Helpers.writeFile(dotFileAbsPath, '');
|
|
1268
|
+
index_1.Helpers.logInfo(`[${lib_1.config.frameworkName}-helpers] Created ${lib_2.path.basename(dotFileAbsPath)}`);
|
|
1269
|
+
envContent = '';
|
|
1270
|
+
}
|
|
1271
|
+
const regex = new RegExp(`^${key}=.*$`, 'm');
|
|
1272
|
+
if (regex.test(envContent)) {
|
|
1273
|
+
// Replace existing
|
|
1274
|
+
envContent = envContent.replace(regex, `${key}=${value}`);
|
|
1275
|
+
}
|
|
1276
|
+
else {
|
|
1277
|
+
// Append new
|
|
1278
|
+
if (envContent.length > 0 && !envContent.endsWith('\n')) {
|
|
1279
|
+
envContent += '\n';
|
|
1280
|
+
}
|
|
1281
|
+
envContent += `${key}=${value}\n`;
|
|
1282
|
+
}
|
|
1283
|
+
index_1.Helpers.writeFile(dotFileAbsPath, envContent);
|
|
1284
|
+
index_1.Helpers.info(`[${lib_1.config.frameworkName}-helpers] Updated ${lib_2.path.basename(dotFileAbsPath)}: ${key}=${value}`);
|
|
1285
|
+
//#endregion
|
|
1286
|
+
};
|
|
1287
|
+
//#endregion
|
|
1288
|
+
//#region get value from dot file
|
|
1289
|
+
UtilsDotFile.getValueFromDotFile = (dotFileAbsPath, key) => {
|
|
1290
|
+
//#region @backendFunc
|
|
1291
|
+
dotFileAbsPath = (0, lib_2.crossPlatformPath)(dotFileAbsPath);
|
|
1292
|
+
if (!lib_2.fse.existsSync(dotFileAbsPath)) {
|
|
1293
|
+
index_1.Helpers.warn(`[${lib_1.config.frameworkName}-helpers] File ${lib_2.path.basename(dotFileAbsPath)} does not exist.`);
|
|
1294
|
+
return;
|
|
1295
|
+
}
|
|
1296
|
+
const envContent = lib_2.fse.readFileSync(dotFileAbsPath, 'utf-8');
|
|
1297
|
+
// Parse line by line
|
|
1298
|
+
const lines = envContent.split(/\r?\n/);
|
|
1299
|
+
for (const line of lines) {
|
|
1300
|
+
const trimmed = line.trim();
|
|
1301
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
1302
|
+
continue;
|
|
1303
|
+
const [k, ...rest] = trimmed.split('=');
|
|
1304
|
+
if (k === key) {
|
|
1305
|
+
return parseValue(rest.join('='));
|
|
1306
|
+
}
|
|
1307
|
+
}
|
|
1308
|
+
//#endregion
|
|
1309
|
+
};
|
|
1310
|
+
//#endregion
|
|
1311
|
+
//#region set values keys from object
|
|
1312
|
+
UtilsDotFile.setValuesKeysFromObject = (dotFileAbsPath, obj, options) => {
|
|
1313
|
+
//#region @backendFunc
|
|
1314
|
+
dotFileAbsPath = (0, lib_2.crossPlatformPath)(dotFileAbsPath);
|
|
1315
|
+
options = options || {};
|
|
1316
|
+
let envContent = options.setAsNewFile
|
|
1317
|
+
? ''
|
|
1318
|
+
: index_1.Helpers.readFile(dotFileAbsPath, '');
|
|
1319
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
1320
|
+
const stringValue = String(value);
|
|
1321
|
+
const regex = new RegExp(`^${key}=.*$`, 'm');
|
|
1322
|
+
if (regex.test(envContent)) {
|
|
1323
|
+
envContent = envContent.replace(regex, `${key}=${stringValue}`);
|
|
1324
|
+
}
|
|
1325
|
+
else {
|
|
1326
|
+
if (envContent.length > 0 && !envContent.endsWith('\n')) {
|
|
1327
|
+
envContent += '\n';
|
|
1328
|
+
}
|
|
1329
|
+
envContent += `${key}=${stringValue}\n`;
|
|
1330
|
+
}
|
|
1331
|
+
}
|
|
1332
|
+
index_1.Helpers.writeFile(dotFileAbsPath, envContent);
|
|
1333
|
+
//#endregion
|
|
1334
|
+
};
|
|
1335
|
+
//#endregion
|
|
1336
|
+
//#region get values keys as json object
|
|
1337
|
+
UtilsDotFile.getValuesKeysAsJsonObject = (dotFileAbsPath) => {
|
|
1338
|
+
//#region @backendFunc
|
|
1339
|
+
dotFileAbsPath = (0, lib_2.crossPlatformPath)(dotFileAbsPath);
|
|
1340
|
+
if (!index_1.Helpers.exists(dotFileAbsPath)) {
|
|
1341
|
+
return {};
|
|
1342
|
+
}
|
|
1343
|
+
const envContent = index_1.Helpers.readFile(dotFileAbsPath, '');
|
|
1344
|
+
const result = {};
|
|
1345
|
+
const lines = envContent.split(/\r?\n/);
|
|
1346
|
+
for (const line of lines) {
|
|
1347
|
+
const trimmed = line.trim();
|
|
1348
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
1349
|
+
continue;
|
|
1350
|
+
const [key, ...rest] = trimmed.split('=');
|
|
1351
|
+
if (key) {
|
|
1352
|
+
result[key] = parseValue(rest.join('='));
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
return result;
|
|
1356
|
+
//#endregion
|
|
1357
|
+
};
|
|
1358
|
+
//#endregion
|
|
1359
|
+
})(UtilsDotFile || (exports.UtilsDotFile = UtilsDotFile = {}));
|
|
1360
|
+
//#endregion
|
|
1361
|
+
//#region utils zip browser
|
|
1226
1362
|
var UtilsZipBrowser;
|
|
1227
1363
|
(function (UtilsZipBrowser) {
|
|
1228
1364
|
// <input type="file" id="folderInput" webkitdirectory />
|
|
@@ -1278,21 +1414,23 @@ var UtilsZipBrowser;
|
|
|
1278
1414
|
return void 0;
|
|
1279
1415
|
};
|
|
1280
1416
|
})(UtilsZipBrowser || (exports.UtilsZipBrowser = UtilsZipBrowser = {}));
|
|
1417
|
+
//#endregion
|
|
1418
|
+
//#region utils zip node
|
|
1281
1419
|
var UtilsZip;
|
|
1282
1420
|
(function (UtilsZip) {
|
|
1283
1421
|
//#region split zip file
|
|
1284
1422
|
UtilsZip.splitFile7Zip = async (inputPath, partSizeMB = 99) => {
|
|
1285
1423
|
//#region @backendFunc
|
|
1286
|
-
const stat =
|
|
1424
|
+
const stat = lib_2.fse.statSync(inputPath);
|
|
1287
1425
|
const partSize = partSizeMB * 1024 * 1024;
|
|
1288
1426
|
if (stat.size <= partSize) {
|
|
1289
1427
|
console.log('File is smaller than part size — no split needed.');
|
|
1290
1428
|
return 0;
|
|
1291
1429
|
}
|
|
1292
1430
|
const { path7za } = await Promise.resolve().then(() => require('7zip-bin'));
|
|
1293
|
-
const baseName =
|
|
1294
|
-
const dirname =
|
|
1295
|
-
const output7zPath =
|
|
1431
|
+
const baseName = lib_2.path.basename(inputPath, lib_2.path.extname(inputPath));
|
|
1432
|
+
const dirname = lib_2.path.dirname(inputPath);
|
|
1433
|
+
const output7zPath = lib_2.path.join(dirname, `${baseName}.7z`);
|
|
1296
1434
|
return new Promise((resolve, reject) => {
|
|
1297
1435
|
const args = [
|
|
1298
1436
|
'a', // Add to archive
|
|
@@ -1301,12 +1439,12 @@ var UtilsZip;
|
|
|
1301
1439
|
`-v${partSizeMB}m`, // ✅ Volume split flag
|
|
1302
1440
|
'-mx=0', // No compression (optional: speeds it up)
|
|
1303
1441
|
];
|
|
1304
|
-
const proc =
|
|
1442
|
+
const proc = lib_2.child_process.spawn(path7za, args, { stdio: 'inherit' });
|
|
1305
1443
|
proc.on('close', async (code) => {
|
|
1306
1444
|
if (code !== 0)
|
|
1307
1445
|
return reject(new Error(`7za failed with code ${code}`));
|
|
1308
1446
|
try {
|
|
1309
|
-
const files = await
|
|
1447
|
+
const files = await lib_2.fse.readdir(dirname);
|
|
1310
1448
|
const partFiles = files.filter(f => f.startsWith(`${baseName}.7z.`) &&
|
|
1311
1449
|
/^[0-9]{3}$/.test(f.split('.').pop() || ''));
|
|
1312
1450
|
const count = partFiles.length;
|
|
@@ -1326,26 +1464,26 @@ var UtilsZip;
|
|
|
1326
1464
|
*/
|
|
1327
1465
|
UtilsZip.splitFile = async (inputPath, partSizeMB = 99) => {
|
|
1328
1466
|
//#region @backendFunc
|
|
1329
|
-
const stat =
|
|
1467
|
+
const stat = lib_2.fse.statSync(inputPath);
|
|
1330
1468
|
const partSize = partSizeMB * 1024 * 1024;
|
|
1331
1469
|
if (stat.size <= partSize) {
|
|
1332
1470
|
console.log('File is smaller than part size — no split needed.');
|
|
1333
1471
|
return 0;
|
|
1334
1472
|
}
|
|
1335
1473
|
return await new Promise((resolve, reject) => {
|
|
1336
|
-
const baseName =
|
|
1337
|
-
const dirname =
|
|
1338
|
-
const input =
|
|
1474
|
+
const baseName = lib_2.path.basename(inputPath);
|
|
1475
|
+
const dirname = lib_2.path.dirname(inputPath);
|
|
1476
|
+
const input = lib_2.fse.createReadStream(inputPath);
|
|
1339
1477
|
let partIndex = 0;
|
|
1340
1478
|
let written = 0;
|
|
1341
|
-
let currentStream =
|
|
1479
|
+
let currentStream = lib_2.fse.createWriteStream(`${baseName}.part${partIndex}`);
|
|
1342
1480
|
input.on('data', chunk => {
|
|
1343
1481
|
let offset = 0;
|
|
1344
1482
|
while (offset < chunk.length) {
|
|
1345
1483
|
if (written >= partSize) {
|
|
1346
1484
|
currentStream.end();
|
|
1347
1485
|
partIndex++;
|
|
1348
|
-
currentStream =
|
|
1486
|
+
currentStream = lib_2.fse.createWriteStream((0, lib_2.crossPlatformPath)([dirname, `${baseName}.part${partIndex}`]));
|
|
1349
1487
|
written = 0;
|
|
1350
1488
|
}
|
|
1351
1489
|
const toWrite = Math.min(partSize - written, chunk.length - offset);
|
|
@@ -1373,10 +1511,10 @@ var UtilsZip;
|
|
|
1373
1511
|
const zipPath = `${absPathToDir}.zip`;
|
|
1374
1512
|
const zipfile = new yazl.ZipFile();
|
|
1375
1513
|
const addDirectoryToZip = async (dir, basePath) => {
|
|
1376
|
-
const entries = await
|
|
1514
|
+
const entries = await lib_2.fse.promises.readdir(dir, { withFileTypes: true });
|
|
1377
1515
|
for (const entry of entries) {
|
|
1378
|
-
const fullPath =
|
|
1379
|
-
const relPath =
|
|
1516
|
+
const fullPath = lib_2.path.join(dir, entry.name);
|
|
1517
|
+
const relPath = lib_2.path.relative(basePath, fullPath).replace(/\\/g, '/');
|
|
1380
1518
|
if (entry.isDirectory()) {
|
|
1381
1519
|
await addDirectoryToZip(fullPath, basePath);
|
|
1382
1520
|
}
|
|
@@ -1387,7 +1525,7 @@ var UtilsZip;
|
|
|
1387
1525
|
};
|
|
1388
1526
|
await addDirectoryToZip(absPathToDir, absPathToDir);
|
|
1389
1527
|
zipfile.end();
|
|
1390
|
-
await pipeline(zipfile.outputStream,
|
|
1528
|
+
await pipeline(zipfile.outputStream, lib_2.fse.createWriteStream(zipPath));
|
|
1391
1529
|
//#endregion;
|
|
1392
1530
|
};
|
|
1393
1531
|
// Unzip: `/some/path/folder.zip` → `/some/path/folder`
|
|
@@ -1404,17 +1542,17 @@ var UtilsZip;
|
|
|
1404
1542
|
return reject(err);
|
|
1405
1543
|
zipfile.readEntry();
|
|
1406
1544
|
zipfile.on('entry', async (entry) => {
|
|
1407
|
-
const filePath =
|
|
1545
|
+
const filePath = lib_2.path.join(extractTo, entry.fileName);
|
|
1408
1546
|
if (/\/$/.test(entry.fileName)) {
|
|
1409
1547
|
await mkdir(filePath, { recursive: true });
|
|
1410
1548
|
zipfile.readEntry();
|
|
1411
1549
|
}
|
|
1412
1550
|
else {
|
|
1413
|
-
await mkdir(
|
|
1551
|
+
await mkdir(lib_2.path.dirname(filePath), { recursive: true });
|
|
1414
1552
|
zipfile.openReadStream(entry, async (err, readStream) => {
|
|
1415
1553
|
if (err || !readStream)
|
|
1416
1554
|
return reject(err);
|
|
1417
|
-
const writeStream =
|
|
1555
|
+
const writeStream = lib_2.fse.createWriteStream(filePath);
|
|
1418
1556
|
await pipeline(readStream, writeStream);
|
|
1419
1557
|
zipfile.readEntry();
|
|
1420
1558
|
});
|
|
@@ -1427,4 +1565,5 @@ var UtilsZip;
|
|
|
1427
1565
|
//#endregion
|
|
1428
1566
|
};
|
|
1429
1567
|
})(UtilsZip || (exports.UtilsZip = UtilsZip = {}));
|
|
1568
|
+
//#endregion
|
|
1430
1569
|
//# sourceMappingURL=utils.js.map
|