tnp 21.0.281 → 21.0.285

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 (132) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/tnp-browser.mjs +923 -3
  3. package/browser/fesm2022/tnp-browser.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/browser-prod/fesm2022/tnp-browser-prod.mjs +923 -3
  6. package/browser-prod/fesm2022/tnp-browser-prod.mjs.map +1 -1
  7. package/browser-prod/package.json +1 -1
  8. package/browser-prod/types/tnp-browser-prod.d.ts.map +1 -1
  9. package/cli.js +211 -106
  10. package/full-dts/app-utils.d.ts +1 -0
  11. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  12. package/full-dts/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.d.ts +0 -1
  13. package/full-dts/project/cli/cli-GENERATE.d.ts +1 -0
  14. package/lib/app-utils.d.ts +1 -0
  15. package/lib/app-utils.js +54 -1
  16. package/lib/app-utils.js.map +1 -1
  17. package/lib/build-info._auto-generated_.d.ts +1 -1
  18. package/lib/build-info._auto-generated_.js +1 -1
  19. package/lib/package.json +1 -1
  20. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +2 -0
  21. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  22. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.d.ts +0 -1
  23. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js +2 -8
  24. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
  25. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js +3 -1
  26. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js.map +1 -1
  27. package/lib/project/cli/cli-GENERATE.d.ts +1 -0
  28. package/lib/project/cli/cli-GENERATE.js +8 -0
  29. package/lib/project/cli/cli-GENERATE.js.map +1 -1
  30. package/lib/vscode-plugin/vscode-menu-items.js +22 -0
  31. package/lib/vscode-plugin/vscode-menu-items.js.map +1 -1
  32. package/lib-esm/lib/app-utils.d.ts +1 -0
  33. package/lib-esm/lib/app-utils.js +53 -1
  34. package/lib-esm/lib/app-utils.js.map +1 -1
  35. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  36. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  37. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +2 -0
  38. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  39. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.d.ts +0 -1
  40. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js +2 -8
  41. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
  42. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/utils-code-cut.test.d.ts +1 -0
  43. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js +3 -1
  44. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js.map +1 -1
  45. package/lib-esm/lib/project/cli/cli-GENERATE.d.ts +1 -0
  46. package/lib-esm/lib/project/cli/cli-GENERATE.js +10 -2
  47. package/lib-esm/lib/project/cli/cli-GENERATE.js.map +1 -1
  48. package/lib-esm/lib/vscode-plugin/vscode-menu-items.js +22 -0
  49. package/lib-esm/lib/vscode-plugin/vscode-menu-items.js.map +1 -1
  50. package/lib-prod/app-utils.d.ts +1 -0
  51. package/lib-prod/app-utils.js +53 -1
  52. package/lib-prod/app-utils.js.map +1 -1
  53. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  54. package/lib-prod/build-info._auto-generated_.js +1 -1
  55. package/lib-prod/package.json +1 -1
  56. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +2 -0
  57. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  58. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.d.ts +0 -1
  59. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js +2 -8
  60. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
  61. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/code-split-process.enum.d.ts +8 -10
  62. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/code-split-process.enum.js +43 -185
  63. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/code-split-process.enum.js.map +1 -1
  64. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js +3 -1
  65. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js.map +1 -1
  66. package/lib-prod/project/cli/cli-GENERATE.d.ts +1 -0
  67. package/lib-prod/project/cli/cli-GENERATE.js +10 -2
  68. package/lib-prod/project/cli/cli-GENERATE.js.map +1 -1
  69. package/lib-prod/vscode-plugin/vscode-menu-items.js +22 -0
  70. package/lib-prod/vscode-plugin/vscode-menu-items.js.map +1 -1
  71. package/package.json +1 -1
  72. package/websql/fesm2022/tnp-websql.mjs +923 -3
  73. package/websql/fesm2022/tnp-websql.mjs.map +1 -1
  74. package/websql/package.json +1 -1
  75. package/websql-prod/fesm2022/tnp-websql-prod.mjs +923 -3
  76. package/websql-prod/fesm2022/tnp-websql-prod.mjs.map +1 -1
  77. package/websql-prod/package.json +1 -1
  78. package/websql-prod/types/tnp-websql-prod.d.ts.map +1 -1
  79. package/full-dts/project/abstract/taon-worker/secrets-keychain/secrets-keychain.repository copy.d.ts +0 -10
  80. package/full-dts/project/cli/cli-LANG copy.d.ts +0 -16
  81. package/full-dts/wrap-env.d.ts +0 -4
  82. package/lib/project/abstract/taon-worker/secrets-keychain/secrets-keychain.repository copy.d.ts +0 -9
  83. package/lib/project/abstract/taon-worker/secrets-keychain/secrets-keychain.repository copy.js +0 -37
  84. package/lib/project/abstract/taon-worker/secrets-keychain/secrets-keychain.repository copy.js.map +0 -1
  85. package/lib/project/cli/cli-LANG copy.d.ts +0 -15
  86. package/lib/project/cli/cli-LANG copy.js +0 -46
  87. package/lib/project/cli/cli-LANG copy.js.map +0 -1
  88. package/lib/wrap-env.d.ts +0 -3
  89. package/lib/wrap-env.js +0 -10
  90. package/lib/wrap-env.js.map +0 -1
  91. package/lib-esm/app.d.ts +0 -0
  92. package/lib-esm/app.electron.d.ts +0 -0
  93. package/lib-esm/app.electron.js +0 -2
  94. package/lib-esm/app.electron.js.map +0 -1
  95. package/lib-esm/app.hosts.d.ts +0 -0
  96. package/lib-esm/app.hosts.js +0 -2
  97. package/lib-esm/app.hosts.js.map +0 -1
  98. package/lib-esm/app.js +0 -2
  99. package/lib-esm/app.js.map +0 -1
  100. package/lib-esm/app.vscode.d.ts +0 -0
  101. package/lib-esm/app.vscode.js +0 -2
  102. package/lib-esm/app.vscode.js.map +0 -1
  103. package/lib-esm/lib/project/abstract/taon-worker/secrets-keychain/secrets-keychain.repository copy.d.ts +0 -9
  104. package/lib-esm/lib/project/abstract/taon-worker/secrets-keychain/secrets-keychain.repository copy.js +0 -28
  105. package/lib-esm/lib/project/abstract/taon-worker/secrets-keychain/secrets-keychain.repository copy.js.map +0 -1
  106. package/lib-esm/lib/project/cli/cli-LANG copy.d.ts +0 -15
  107. package/lib-esm/lib/project/cli/cli-LANG copy.js +0 -42
  108. package/lib-esm/lib/project/cli/cli-LANG copy.js.map +0 -1
  109. package/lib-esm/lib/wrap-env.d.ts +0 -3
  110. package/lib-esm/lib/wrap-env.js +0 -7
  111. package/lib-esm/lib/wrap-env.js.map +0 -1
  112. package/lib-prod/env/env.angular-node-app.d.ts +0 -67
  113. package/lib-prod/env/env.angular-node-app.js +0 -138
  114. package/lib-prod/env/env.angular-node-app.js.map +0 -1
  115. package/lib-prod/env/env.docs-webapp.d.ts +0 -67
  116. package/lib-prod/env/env.docs-webapp.js +0 -138
  117. package/lib-prod/env/env.docs-webapp.js.map +0 -1
  118. package/lib-prod/env/env.electron-app.d.ts +0 -67
  119. package/lib-prod/env/env.electron-app.js +0 -138
  120. package/lib-prod/env/env.electron-app.js.map +0 -1
  121. package/lib-prod/env/env.mobile-app.d.ts +0 -67
  122. package/lib-prod/env/env.mobile-app.js +0 -138
  123. package/lib-prod/env/env.mobile-app.js.map +0 -1
  124. package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +0 -67
  125. package/lib-prod/env/env.npm-lib-and-cli-tool.js +0 -138
  126. package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +0 -1
  127. package/lib-prod/env/env.vscode-plugin.d.ts +0 -67
  128. package/lib-prod/env/env.vscode-plugin.js +0 -138
  129. package/lib-prod/env/env.vscode-plugin.js.map +0 -1
  130. package/lib-prod/env/index.d.ts +0 -4
  131. package/lib-prod/env/index.js +0 -5
  132. package/lib-prod/env/index.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { TaonTempRoutesFolder, TaonTempDatabasesFolder, TaonBaseAbstractEntity, TaonEntity, TaonBaseMigration, TaonMigration, TaonBaseEntity, GET, TaonController, Taon__NS__createContextTemplate, TaonBaseContext } from 'taon/browser-prod';
2
- import { fse, crossPlatformPath, ___NS__times, path, dotTaonFolder, Utils__NS__uniqArray, config, folderName, fileName, extForStyles, UtilsTerminal__NS__multiselect, Helpers__NS__info, chalk, UtilsTerminal__NS__pressAnyKeyToContinueAsync, ___NS__isNil, ___NS__isFunction, ___NS__isBoolean, ___NS__isArray, ___NS__isObject, ___NS__set, ___NS__merge, ___NS__cloneDeep, ___NS__isString, taonPackageName, UtilsWaitNotifier__NS__getNotifier, UtilsOs__NS__isRunningInVscodeExtension, taonProjects, UtilsString__NS__listDiff, taonContainers, Utils__NS__getFreePort, ___NS__upperFirst, os } from 'tnp-core/browser-prod';
2
+ import { fse, crossPlatformPath, ___NS__times, path, dotTaonFolder, Utils__NS__uniqArray, config, folderName, fileName, extForStyles, UtilsTerminal__NS__multiselect, Helpers__NS__info, chalk, UtilsTerminal__NS__pressAnyKeyToContinueAsync, ___NS__isNil, ___NS__isFunction, ___NS__isBoolean, ___NS__isArray, ___NS__isObject, ___NS__set, ___NS__merge, ___NS__cloneDeep, ___NS__isString, taonPackageName, UtilsWaitNotifier__NS__getNotifier, UtilsOs__NS__isRunningInVscodeExtension, taonProjects, UtilsString__NS__listDiff, taonContainers, Utils__NS__getFreePort, Helpers__NS__warn, ___NS__isUndefined, frontEndOnly, stateServiceSuffix, ___NS__upperFirst, os } from 'tnp-core/browser-prod';
3
3
  export { globalSpinner } from 'tnp-core/browser-prod';
4
- import { BaseCliWorkerTerminalUI, TaonBaseCliWorkerController, getBaseCliWorkerDatabaseConfig, BaseCliWorker, BaseProjectResolver, Helpers__NS__info as Helpers__NS__info$1, Helpers__NS__logInfo, BaseProject } from 'tnp-helpers/browser-prod';
4
+ import { BaseCliWorkerTerminalUI, TaonBaseCliWorkerController, getBaseCliWorkerDatabaseConfig, BaseCliWorker, BaseProjectResolver, Helpers__NS__info as Helpers__NS__info$1, Helpers__NS__logInfo, BaseProject, UtilsTypescript__NS__getCleanImport } from 'tnp-helpers/browser-prod';
5
5
  import { walk } from 'lodash-walk-object/browser-prod';
6
6
  import { __decorate, __metadata } from 'tslib';
7
7
 
@@ -29,7 +29,7 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
29
29
  /**
30
30
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
31
31
  */
32
- const CURRENT_PACKAGE_VERSION = '21.0.281';
32
+ const CURRENT_PACKAGE_VERSION = '21.0.285';
33
33
  // THIS FILE IS GENERATED - DO NOT MODIFY
34
34
 
35
35
  //#region imports
@@ -3592,6 +3592,905 @@ class Project extends BaseProject {
3592
3592
  }
3593
3593
  }
3594
3594
 
3595
+ //#endregion
3596
+ function removeCommentsFromScssFile(scss) {
3597
+ /* */
3598
+ /* */
3599
+ /* */
3600
+ /* */
3601
+ /* */
3602
+ /* */
3603
+ /* */
3604
+ /* */
3605
+ /* */
3606
+ return (void 0);
3607
+ }
3608
+ //#region allowed to release map
3609
+ const ALLOWED_TO_RELEASE = {
3610
+ 'manual-taon': [
3611
+ ReleaseArtifactTaon.NPM_LIB_PKG_AND_CLI_TOOL,
3612
+ ReleaseArtifactTaon.ANGULAR_NODE_APP,
3613
+ ],
3614
+ 'cloud-ci-taon': [],
3615
+ 'cloud-ci-cloudflare': [],
3616
+ 'manual-cloudflare': [ReleaseArtifactTaon.ANGULAR_NODE_APP],
3617
+ 'manual-static-pages': [
3618
+ ReleaseArtifactTaon.ANGULAR_NODE_APP,
3619
+ ReleaseArtifactTaon.DOCS_DOCS_WEBAPP,
3620
+ ReleaseArtifactTaon.ELECTRON_APP,
3621
+ ReleaseArtifactTaon.VSCODE_PLUGIN,
3622
+ ],
3623
+ 'cloud-ci-static-pages': [],
3624
+ local: [
3625
+ ReleaseArtifactTaon.ELECTRON_APP,
3626
+ ReleaseArtifactTaon.NPM_LIB_PKG_AND_CLI_TOOL,
3627
+ ReleaseArtifactTaon.VSCODE_PLUGIN,
3628
+ ReleaseArtifactTaon.ANGULAR_NODE_APP,
3629
+ ],
3630
+ };
3631
+ //#endregion
3632
+ //#region is browser file path
3633
+ const isBrowserFilePath = (pathToFile, options) => {
3634
+ if (!pathToFile) {
3635
+ Helpers__NS__warn(`[app-utils][isBrowserFilePath] Wrong path "${pathToFile}"`);
3636
+ return false;
3637
+ }
3638
+ options = options || {};
3639
+ const isFrontendFile = !___NS__isUndefined(frontEndOnly.find(f => pathToFile.endsWith(f) &&
3640
+ (options.skipStateService
3641
+ ? !pathToFile.endsWith(stateServiceSuffix)
3642
+ : true)));
3643
+ return isFrontendFile;
3644
+ };
3645
+ //#endregion
3646
+ //#region is ts file
3647
+ const isTsFile = (pathToFile) => ['.ts', '.tsx'].includes(___NS__isString(pathToFile) ? path.extname(pathToFile) : '');
3648
+ //#endregion
3649
+ //#region filter/sort children for build or release
3650
+ const filterChildren = (currentProject, children, releaseOptions, opt) => {
3651
+ /* */
3652
+ /* */
3653
+ /* */
3654
+ /* */
3655
+ /* */
3656
+ /* */
3657
+ /* */
3658
+ /* */
3659
+ /* */
3660
+ /* */
3661
+ /* */
3662
+ /* */
3663
+ /* */
3664
+ /* */
3665
+ /* */
3666
+ /* */
3667
+ /* */
3668
+ /* */
3669
+ /* */
3670
+ /* */
3671
+ /* */
3672
+ /* */
3673
+ /* */
3674
+ /* */
3675
+ /* */
3676
+ /* */
3677
+ /* */
3678
+ /* */
3679
+ /* */
3680
+ /* */
3681
+ /* */
3682
+ /* */
3683
+ /* */
3684
+ /* */
3685
+ /* */
3686
+ /* */
3687
+ /* */
3688
+ /* */
3689
+ /* */
3690
+ /* */
3691
+ /* */
3692
+ /* */
3693
+ /* */
3694
+ /* */
3695
+ /* */
3696
+ /* */
3697
+ /* */
3698
+ /* */
3699
+ /* */
3700
+ /* */
3701
+ /* */
3702
+ /* */
3703
+ /* */
3704
+ /* */
3705
+ /* */
3706
+ /* */
3707
+ /* */
3708
+ /* */
3709
+ /* */
3710
+ /* */
3711
+ /* */
3712
+ /* */
3713
+ /* */
3714
+ /* */
3715
+ /* */
3716
+ /* */
3717
+ /* */
3718
+ /* */
3719
+ /* */
3720
+ /* */
3721
+ /* */
3722
+ /* */
3723
+ /* */
3724
+ /* */
3725
+ /* */
3726
+ /* */
3727
+ /* */
3728
+ /* */
3729
+ /* */
3730
+ /* */
3731
+ /* */
3732
+ /* */
3733
+ /* */
3734
+ /* */
3735
+ /* */
3736
+ /* */
3737
+ /* */
3738
+ /* */
3739
+ /* */
3740
+ /* */
3741
+ /* */
3742
+ /* */
3743
+ /* */
3744
+ /* */
3745
+ /* */
3746
+ /* */
3747
+ /* */
3748
+ /* */
3749
+ /* */
3750
+ /* */
3751
+ /* */
3752
+ /* */
3753
+ /* */
3754
+ /* */
3755
+ /* */
3756
+ /* */
3757
+ /* */
3758
+ /* */
3759
+ /* */
3760
+ return (void 0);
3761
+ };
3762
+ //#endregion
3763
+ //#region transform env function to browser
3764
+ function transformEnvFunctionToBrowser(functionAsString) {
3765
+ /* */
3766
+ /* */
3767
+ /* */
3768
+ /* */
3769
+ /* */
3770
+ /* */
3771
+ /* */
3772
+ /* */
3773
+ /* */
3774
+ /* */
3775
+ /* */
3776
+ /* */
3777
+ /* */
3778
+ /* */
3779
+ /* */
3780
+ /* */
3781
+ /* */
3782
+ /* */
3783
+ /* */
3784
+ /* */
3785
+ /* */
3786
+ /* */
3787
+ /* */
3788
+ /* */
3789
+ /* */
3790
+ /* */
3791
+ /* */
3792
+ /* */
3793
+ /* */
3794
+ /* */
3795
+ /* */
3796
+ /* */
3797
+ /* */
3798
+ /* */
3799
+ /* */
3800
+ /* */
3801
+ /* */
3802
+ /* */
3803
+ /* */
3804
+ /* */
3805
+ /* */
3806
+ /* */
3807
+ /* */
3808
+ /* */
3809
+ /* */
3810
+ /* */
3811
+ return (void 0);
3812
+ }
3813
+ //#endregion
3814
+ //#region is test file
3815
+ const isTestFile = (filePath) => {
3816
+ if (!filePath) {
3817
+ Helpers__NS__warn(`[isTestFile] Checking empty path`, true);
3818
+ return false;
3819
+ }
3820
+ return (filePath.endsWith('.test.ts') ||
3821
+ filePath.endsWith('.test.tsx') ||
3822
+ filePath.endsWith('.spec.ts') ||
3823
+ filePath.endsWith('.spec.tsx') ||
3824
+ filePath.endsWith('.e2e.ts') ||
3825
+ filePath.endsWith('.e2e.tsx'));
3826
+ };
3827
+ //#endregion
3828
+ //#region create short name
3829
+ function createShortName(taonProjectName, opt) {
3830
+ const MAX_LENGTH = 6;
3831
+ const name = taonProjectName.toLowerCase();
3832
+ if (name.length <= MAX_LENGTH) {
3833
+ return name;
3834
+ }
3835
+ const parts = name.split('-').filter(Boolean);
3836
+ /**
3837
+ * Prefer consonants because they usually carry more
3838
+ * recognizable information than vowels.
3839
+ */
3840
+ const compactWord = (word, maxLength) => {
3841
+ if (word.length <= maxLength) {
3842
+ return word;
3843
+ }
3844
+ if (maxLength <= 1) {
3845
+ return word[0];
3846
+ }
3847
+ const first = word[0];
3848
+ const last = word[word.length - 1];
3849
+ const middle = word.slice(1, -1).replace(/[aeiou]/g, '');
3850
+ const result = first + middle.slice(0, Math.max(0, maxLength - 2)) + last;
3851
+ return result.slice(0, maxLength);
3852
+ };
3853
+ /**
3854
+ * Names containing "-" should preferably keep one dash.
3855
+ *
3856
+ * mattbachat-pl
3857
+ * -> mtb-pl
3858
+ *
3859
+ * application-quiz
3860
+ * -> app-qz
3861
+ */
3862
+ if (parts.length >= 2) {
3863
+ const lastPart = parts[parts.length - 1];
3864
+ const leftPart = parts.slice(0, -1).join('');
3865
+ // Reserve:
3866
+ // 1 char for "-"
3867
+ // up to 2 chars for right side
3868
+ const rightLength = Math.min(2, lastPart.length);
3869
+ const leftLength = MAX_LENGTH - 1 - rightLength;
3870
+ const left = compactWord(leftPart, leftLength);
3871
+ const right = compactWord(lastPart, rightLength);
3872
+ return `${left}-${right}`;
3873
+ }
3874
+ /**
3875
+ * Single-word project.
3876
+ *
3877
+ * kloniebachatowepl
3878
+ * -> klbpl / similar recognizable shortening
3879
+ *
3880
+ * myprojecttest
3881
+ * -> mypst
3882
+ */
3883
+ const word = parts[0];
3884
+ const consonants = word.slice(1, -2).replace(/[aeiou]/g, '');
3885
+ let result = word.slice(0, 2) + consonants.slice(0, 2) + word.slice(-2);
3886
+ result = [...new Set(result)].join('');
3887
+ /**
3888
+ * Deduplication can make it shorter than desired.
3889
+ * Fill deterministically from the original name.
3890
+ */
3891
+ for (const char of word) {
3892
+ if (result.length >= MAX_LENGTH) {
3893
+ break;
3894
+ }
3895
+ if (!result.includes(char)) {
3896
+ result += char;
3897
+ }
3898
+ }
3899
+ /**
3900
+ * Parent can provide deterministic uniqueness if the
3901
+ * generated name is unusually short.
3902
+ */
3903
+ if (result.length < 4 && opt?.optionalParentProjectName) {
3904
+ for (const char of opt.optionalParentProjectName) {
3905
+ if (/[a-z0-9]/.test(char) && !result.includes(char)) {
3906
+ result += char;
3907
+ }
3908
+ if (result.length >= MAX_LENGTH) {
3909
+ break;
3910
+ }
3911
+ }
3912
+ }
3913
+ return result.slice(0, MAX_LENGTH);
3914
+ }
3915
+ //#endregion
3916
+ //#region extract first level regions
3917
+ const extractFirstLevelRegions = (content) => {
3918
+ const lines = content.split(/\r?\n/);
3919
+ const result = [];
3920
+ let depth = 0;
3921
+ let currentRegionName = null;
3922
+ let buffer = [];
3923
+ for (const line of lines) {
3924
+ const startMatch = line.match(/^\s*\/\/#region\s*(.*)$/);
3925
+ const endMatch = line.match(/^\s*\/\/#endregion/);
3926
+ // REGION START
3927
+ if (startMatch) {
3928
+ depth++;
3929
+ // If entering first level
3930
+ if (depth === 1) {
3931
+ currentRegionName = startMatch[1].trim();
3932
+ buffer = [];
3933
+ }
3934
+ else if (depth > 1) {
3935
+ // Nested region → keep it in content
3936
+ buffer.push(line);
3937
+ }
3938
+ continue;
3939
+ }
3940
+ // REGION END
3941
+ if (endMatch) {
3942
+ if (depth === 1 && currentRegionName) {
3943
+ result.push({
3944
+ regionName: currentRegionName,
3945
+ regionContent: buffer.join('\n'),
3946
+ });
3947
+ currentRegionName = null;
3948
+ buffer = [];
3949
+ }
3950
+ else if (depth > 1) {
3951
+ // Nested region end → keep it
3952
+ buffer.push(line);
3953
+ }
3954
+ depth--;
3955
+ continue;
3956
+ }
3957
+ // Normal content inside first level region
3958
+ if (depth >= 1 && currentRegionName) {
3959
+ buffer.push(line);
3960
+ }
3961
+ }
3962
+ return result;
3963
+ };
3964
+ //#endregion
3965
+ //#region angular projx project path
3966
+ /**
3967
+ * @returns relative path to proxy angular project build folder
3968
+ */
3969
+ const angularProjProxyPath = (options) => {
3970
+ /* */
3971
+ /* */
3972
+ /* */
3973
+ /* */
3974
+ /* */
3975
+ /* */
3976
+ /* */
3977
+ /* */
3978
+ /* */
3979
+ /* */
3980
+ /* */
3981
+ /* */
3982
+ /* */
3983
+ /* */
3984
+ /* */
3985
+ /* */
3986
+ /* */
3987
+ /* */
3988
+ /* */
3989
+ /* */
3990
+ /* */
3991
+ /* */
3992
+ /* */
3993
+ /* */
3994
+ /* */
3995
+ return (void 0);
3996
+ };
3997
+ //#endregion
3998
+ //#region get proxy ng projects
3999
+ const getProxyNgProj = (project, buildOptions, targetArtifact) => {
4000
+ /* */
4001
+ /* */
4002
+ /* */
4003
+ /* */
4004
+ /* */
4005
+ /* */
4006
+ /* */
4007
+ /* */
4008
+ /* */
4009
+ /* */
4010
+ /* */
4011
+ return (void 0);
4012
+ };
4013
+ //#endregion
4014
+ //#region template folder for artifact
4015
+ const templateFolderForArtifact = (artifact) => {
4016
+ /* */
4017
+ /* */
4018
+ /* */
4019
+ /* */
4020
+ /* */
4021
+ /* */
4022
+ /* */
4023
+ /* */
4024
+ /* */
4025
+ /* */
4026
+ /* */
4027
+ /* */
4028
+ /* */
4029
+ /* */
4030
+ /* */
4031
+ /* */
4032
+ /* */
4033
+ /* */
4034
+ /* */
4035
+ /* */
4036
+ /* */
4037
+ /* */
4038
+ return (void 0);
4039
+ };
4040
+ //#endregion
4041
+ //#region get clean import
4042
+ const getCleanImport = (importName) => {
4043
+ return UtilsTypescript__NS__getCleanImport(importName);
4044
+ };
4045
+ //#endregion
4046
+ //#region parse ai md content
4047
+ function parseAiMdContent(input) {
4048
+ const results = [];
4049
+ // Remove AI-MD wrapper markers if present
4050
+ input = input
4051
+ .replace(/===\s*start of AI-MD multi-file markdown structure\s*===/i, '')
4052
+ .replace(/===\s*end of AI-MD multi-file markdown structure\s*===/i, '')
4053
+ .trim();
4054
+ // Match blocks like:
4055
+ // # filename.ext (optional)
4056
+ // ```lang
4057
+ // content
4058
+ // ```
4059
+ const blockRegex = /^#?\s*([^\n`]+?)\s*(?:\([^)]+\))?\s*\n```[^\n]*\n([\s\S]*?)\n```/gm;
4060
+ let match;
4061
+ while ((match = blockRegex.exec(input)) !== null) {
4062
+ const rawFilename = match[1].trim();
4063
+ const content = match[2];
4064
+ results.push({
4065
+ filename: (rawFilename || '').replace(`#`, '').trim(),
4066
+ content,
4067
+ });
4068
+ }
4069
+ return results;
4070
+ }
4071
+ //#endregion
4072
+ //#region error main worker communication
4073
+ const errorMainWorkerCommunication = () => {
4074
+ Helpers__NS__warn(`Not able to communicate with main worker or current build worker:
4075
+ - restart build (that is failing)
4076
+ OR
4077
+ - restart taon worker: ${config.frameworkName} cloud --restart
4078
+ OR
4079
+ - use old build mode that does not need worker
4080
+ (add flag ${oldBuildModePrefix} or short version ${oldBuildModePrefixShort})
4081
+
4082
+ `);
4083
+ };
4084
+ //#endregion
4085
+ //#region replace assets links for app
4086
+ const replaceAssetsLinksForApp = (rawContentForAPPONLYBrowser, relativePath, project, buildOptions) => {
4087
+ /* */
4088
+ /* */
4089
+ /* */
4090
+ /* */
4091
+ /* */
4092
+ /* */
4093
+ /* */
4094
+ /* */
4095
+ /* */
4096
+ /* */
4097
+ /* */
4098
+ /* */
4099
+ /* */
4100
+ /* */
4101
+ /* */
4102
+ /* */
4103
+ /* */
4104
+ /* */
4105
+ /* */
4106
+ /* */
4107
+ /* */
4108
+ /* */
4109
+ /* */
4110
+ /* */
4111
+ /* */
4112
+ /* */
4113
+ /* */
4114
+ /* */
4115
+ /* */
4116
+ /* */
4117
+ /* */
4118
+ /* */
4119
+ /* */
4120
+ /* */
4121
+ /* */
4122
+ /* */
4123
+ /* */
4124
+ /* */
4125
+ /* */
4126
+ /* */
4127
+ /* */
4128
+ /* */
4129
+ /* */
4130
+ /* */
4131
+ /* */
4132
+ /* */
4133
+ /* */
4134
+ /* */
4135
+ /* */
4136
+ /* */
4137
+ /* */
4138
+ /* */
4139
+ /* */
4140
+ /* */
4141
+ /* */
4142
+ /* */
4143
+ /* */
4144
+ /* */
4145
+ /* */
4146
+ /* */
4147
+ /* */
4148
+ /* */
4149
+ /* */
4150
+ /* */
4151
+ /* */
4152
+ /* */
4153
+ /* */
4154
+ /* */
4155
+ /* */
4156
+ /* */
4157
+ /* */
4158
+ /* */
4159
+ /* */
4160
+ /* */
4161
+ /* */
4162
+ /* */
4163
+ /* */
4164
+ /* */
4165
+ /* */
4166
+ /* */
4167
+ /* */
4168
+ /* */
4169
+ /* */
4170
+ /* */
4171
+ /* */
4172
+ /* */
4173
+ /* */
4174
+ /* */
4175
+ /* */
4176
+ /* */
4177
+ /* */
4178
+ /* */
4179
+ /* */
4180
+ /* */
4181
+ /* */
4182
+ /* */
4183
+ /* */
4184
+ /* */
4185
+ /* */
4186
+ /* */
4187
+ /* */
4188
+ /* */
4189
+ /* */
4190
+ /* */
4191
+ /* */
4192
+ /* */
4193
+ /* */
4194
+ /* */
4195
+ /* */
4196
+ /* */
4197
+ /* */
4198
+ /* */
4199
+ /* */
4200
+ /* */
4201
+ /* */
4202
+ /* */
4203
+ /* */
4204
+ /* */
4205
+ /* */
4206
+ /* */
4207
+ /* */
4208
+ /* */
4209
+ /* */
4210
+ /* */
4211
+ /* */
4212
+ /* */
4213
+ /* */
4214
+ /* */
4215
+ /* */
4216
+ /* */
4217
+ /* */
4218
+ /* */
4219
+ /* */
4220
+ /* */
4221
+ /* */
4222
+ /* */
4223
+ /* */
4224
+ /* */
4225
+ /* */
4226
+ /* */
4227
+ /* */
4228
+ /* */
4229
+ return (void 0);
4230
+ };
4231
+ //#endregion
4232
+ //#region replace before save in ts file
4233
+ const replaceBeforeSaveInTsFile = (beOrFeTsFileContent,
4234
+ /**
4235
+ * <project location>src/<relativeFilePath>
4236
+ */
4237
+ relativeFilePath, project) => {
4238
+ /* */
4239
+ /* */
4240
+ /* */
4241
+ /* */
4242
+ /* */
4243
+ /* */
4244
+ /* */
4245
+ /* */
4246
+ /* */
4247
+ /* */
4248
+ /* */
4249
+ /* */
4250
+ /* */
4251
+ /* */
4252
+ /* */
4253
+ /* */
4254
+ /* */
4255
+ /* */
4256
+ /* */
4257
+ /* */
4258
+ /* */
4259
+ /* */
4260
+ /* */
4261
+ /* */
4262
+ /* */
4263
+ /* */
4264
+ /* */
4265
+ /* */
4266
+ /* */
4267
+ /* */
4268
+ /* */
4269
+ /* */
4270
+ /* */
4271
+ /* */
4272
+ /* */
4273
+ /* */
4274
+ /* */
4275
+ /* */
4276
+ /* */
4277
+ /* */
4278
+ /* */
4279
+ /* */
4280
+ /* */
4281
+ /* */
4282
+ /* */
4283
+ /* */
4284
+ /* */
4285
+ /* */
4286
+ /* */
4287
+ /* */
4288
+ /* */
4289
+ /* */
4290
+ /* */
4291
+ /* */
4292
+ /* */
4293
+ /* */
4294
+ /* */
4295
+ /* */
4296
+ /* */
4297
+ /* */
4298
+ /* */
4299
+ /* */
4300
+ /* */
4301
+ /* */
4302
+ /* */
4303
+ /* */
4304
+ /* */
4305
+ /* */
4306
+ /* */
4307
+ /* */
4308
+ /* */
4309
+ /* */
4310
+ /* */
4311
+ /* */
4312
+ /* */
4313
+ /* */
4314
+ /* */
4315
+ /* */
4316
+ /* */
4317
+ /* */
4318
+ /* */
4319
+ /* */
4320
+ /* */
4321
+ /* */
4322
+ /* */
4323
+ /* */
4324
+ /* */
4325
+ /* */
4326
+ /* */
4327
+ /* */
4328
+ /* */
4329
+ /* */
4330
+ /* */
4331
+ /* */
4332
+ /* */
4333
+ /* */
4334
+ /* */
4335
+ /* */
4336
+ /* */
4337
+ /* */
4338
+ /* */
4339
+ /* */
4340
+ /* */
4341
+ /* */
4342
+ /* */
4343
+ /* */
4344
+ /* */
4345
+ /* */
4346
+ /* */
4347
+ /* */
4348
+ /* */
4349
+ /* */
4350
+ /* */
4351
+ /* */
4352
+ /* */
4353
+ /* */
4354
+ /* */
4355
+ /* */
4356
+ /* */
4357
+ /* */
4358
+ /* */
4359
+ /* */
4360
+ /* */
4361
+ /* */
4362
+ /* */
4363
+ /* */
4364
+ /* */
4365
+ /* */
4366
+ /* */
4367
+ /* */
4368
+ /* */
4369
+ /* */
4370
+ /* */
4371
+ /* */
4372
+ /* */
4373
+ /* */
4374
+ /* */
4375
+ /* */
4376
+ /* */
4377
+ /* */
4378
+ /* */
4379
+ /* */
4380
+ /* */
4381
+ /* */
4382
+ /* */
4383
+ /* */
4384
+ /* */
4385
+ /* */
4386
+ /* */
4387
+ /* */
4388
+ /* */
4389
+ /* */
4390
+ /* */
4391
+ /* */
4392
+ /* */
4393
+ /* */
4394
+ /* */
4395
+ /* */
4396
+ /* */
4397
+ /* */
4398
+ /* */
4399
+ /* */
4400
+ /* */
4401
+ /* */
4402
+ /* */
4403
+ /* */
4404
+ /* */
4405
+ /* */
4406
+ /* */
4407
+ /* */
4408
+ /* */
4409
+ /* */
4410
+ /* */
4411
+ /* */
4412
+ /* */
4413
+ /* */
4414
+ /* */
4415
+ /* */
4416
+ /* */
4417
+ /* */
4418
+ /* */
4419
+ return (void 0);
4420
+ };
4421
+ //#endregion
4422
+ //#region replace import to assets imports
4423
+ const replaceImportToAssetsIMport = (rawContentForBrowser, nameForNpmPackage, relativeFilePath, project) => {
4424
+ /* */
4425
+ /* */
4426
+ /* */
4427
+ /* */
4428
+ /* */
4429
+ /* */
4430
+ /* */
4431
+ /* */
4432
+ /* */
4433
+ /* */
4434
+ /* */
4435
+ /* */
4436
+ /* */
4437
+ /* */
4438
+ /* */
4439
+ /* */
4440
+ /* */
4441
+ /* */
4442
+ /* */
4443
+ /* */
4444
+ /* */
4445
+ /* */
4446
+ /* */
4447
+ /* */
4448
+ /* */
4449
+ /* */
4450
+ /* */
4451
+ /* */
4452
+ return (void 0);
4453
+ };
4454
+ //#endregion
4455
+ //#region copy 64 hash
4456
+ async function hash64() {
4457
+ /* */
4458
+ /* */
4459
+ /* */
4460
+ /* */
4461
+ /* */
4462
+ /* */
4463
+ /* */
4464
+ /* */
4465
+ /* */
4466
+ return (void 0);
4467
+ }
4468
+ const compareAndSave = ({ fileAbsPath, isFirstTime, newContent, oldContent, isBackend, project, }) => {
4469
+ /* */
4470
+ /* */
4471
+ /* */
4472
+ /* */
4473
+ /* */
4474
+ /* */
4475
+ /* */
4476
+ /* */
4477
+ /* */
4478
+ /* */
4479
+ /* */
4480
+ /* */
4481
+ /* */
4482
+ /* */
4483
+ /* */
4484
+ /* */
4485
+ /* */
4486
+ /* */
4487
+ /* */
4488
+ /* */
4489
+ /* */
4490
+ /* */
4491
+ return (void 0);
4492
+ };
4493
+
3595
4494
  const vscodeMenuItems = ({ vscode, FRAMEWORK_NAME, CURRENT_PROJECT, ProjectItem, focustFirstElement, runInTerminal, tmp_FRONTEND_NORMAL_APP_PORT, tmp_FRONTEND_WEBSQL_APP_PORT, tmp_FRONTEND_CLOUDFLARE_APP_PORT, skipTaonItems, }) => {
3596
4495
  return [
3597
4496
  //#region items with actions / git log
@@ -4035,6 +4934,27 @@ const vscodeMenuItems = ({ vscode, FRAMEWORK_NAME, CURRENT_PROJECT, ProjectItem,
4035
4934
  }),
4036
4935
  //#endregion
4037
4936
  //#region items with actions / regenerate src/lib/index._auto-generated_.ts
4937
+ new ProjectItem(`$ ${FRAMEWORK_NAME} generate:hash64`, vscode.TreeItemCollapsibleState.None, {
4938
+ iconPath: null,
4939
+ project: CURRENT_PROJECT,
4940
+ // skipReturnToMenu: true,
4941
+ triggerActionOnClick: async (project, progress) => {
4942
+ if (project) {
4943
+ progress?.report({
4944
+ message: 'Generating random 64 characters hash',
4945
+ });
4946
+ const hash = await hash64();
4947
+ vscode.env.clipboard.writeText(hash);
4948
+ progress?.report({
4949
+ message: 'Done generating random 64 characters hash',
4950
+ increment: 100,
4951
+ });
4952
+ vscode.window.showInformationMessage(`Hash copied to clipboard: ${hash}`);
4953
+ }
4954
+ },
4955
+ }),
4956
+ //#endregion
4957
+ //#region items with actions / regenerate src/lib/index._auto-generated_.ts
4038
4958
  // new ProjectItem(
4039
4959
  // `$ ${FRAMEWORK_NAME} genreate:new:component:structure:ai:info`,
4040
4960
  // vscode.TreeItemCollapsibleState.None,