tnp 21.0.201 → 21.0.202

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 (169) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/tnp-browser.mjs +10 -3
  3. package/browser/fesm2022/tnp-browser.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/browser/types/tnp-browser.d.ts +59 -19
  6. package/browser-prod/fesm2022/tnp-browser-prod.mjs +10 -3
  7. package/browser-prod/fesm2022/tnp-browser-prod.mjs.map +1 -1
  8. package/browser-prod/package.json +1 -1
  9. package/browser-prod/types/tnp-browser-prod.d.ts +59 -19
  10. package/browser-prod.split-namespaces.json +12 -0
  11. package/cli.js +9613 -9336
  12. package/html/assets/generated/pwa/html-pwa.html +60 -0
  13. package/lib/build-info._auto-generated_.d.ts +1 -1
  14. package/lib/build-info._auto-generated_.js +1 -1
  15. package/lib/constants.d.ts +7 -0
  16. package/lib/constants.js +13 -6
  17. package/lib/constants.js.map +1 -1
  18. package/lib/package.json +1 -1
  19. package/lib/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
  20. package/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +7 -2
  21. package/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
  22. package/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +49 -0
  23. package/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
  24. package/lib/project/abstract/artifacts/artifacts-manager.js +1 -1
  25. package/lib/project/abstract/artifacts/artifacts-manager.js.map +1 -1
  26. package/lib/project/abstract/artifacts/base-artifact.js +4 -0
  27. package/lib/project/abstract/artifacts/base-artifact.js.map +1 -1
  28. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +2 -5
  29. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  30. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
  31. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
  32. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +6 -6
  33. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
  34. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.d.ts +0 -0
  35. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js +5 -0
  36. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js.map +1 -0
  37. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +21 -0
  38. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js +247 -0
  39. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
  40. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.d.ts +0 -0
  41. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js +5 -0
  42. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js.map +1 -0
  43. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +21 -0
  44. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +115 -0
  45. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
  46. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +11 -0
  47. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +108 -0
  48. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
  49. package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
  50. package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +89 -0
  51. package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
  52. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.d.ts +0 -0
  53. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js +5 -0
  54. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js.map +1 -0
  55. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.d.ts +0 -0
  56. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js +5 -0
  57. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js.map +1 -0
  58. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +3 -0
  59. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +8 -0
  60. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
  61. package/lib/project/abstract/sub-project.d.ts +12 -24
  62. package/lib/project/abstract/sub-project.js +84 -576
  63. package/lib/project/abstract/sub-project.js.map +1 -1
  64. package/lib/project/cli/cli-SUB_PROJECT.js +12 -11
  65. package/lib/project/cli/cli-SUB_PROJECT.js.map +1 -1
  66. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  67. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  68. package/lib-esm/lib/constants.d.ts +7 -0
  69. package/lib-esm/lib/constants.js +8 -1
  70. package/lib-esm/lib/constants.js.map +1 -1
  71. package/lib-esm/lib/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
  72. package/lib-esm/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +7 -2
  73. package/lib-esm/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
  74. package/lib-esm/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +50 -1
  75. package/lib-esm/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
  76. package/lib-esm/lib/project/abstract/artifacts/artifacts-manager.js +1 -1
  77. package/lib-esm/lib/project/abstract/artifacts/artifacts-manager.js.map +1 -1
  78. package/lib-esm/lib/project/abstract/artifacts/base-artifact.js +4 -0
  79. package/lib-esm/lib/project/abstract/artifacts/base-artifact.js.map +1 -1
  80. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +3 -6
  81. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  82. 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
  83. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
  84. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +6 -6
  85. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
  86. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.d.ts +1 -0
  87. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js +2 -0
  88. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js.map +1 -0
  89. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +21 -0
  90. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js +243 -0
  91. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
  92. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.d.ts +1 -0
  93. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js +2 -0
  94. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js.map +1 -0
  95. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +21 -0
  96. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +111 -0
  97. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
  98. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +11 -0
  99. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +105 -0
  100. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
  101. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
  102. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +85 -0
  103. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
  104. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.d.ts +1 -0
  105. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js +2 -0
  106. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js.map +1 -0
  107. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.d.ts +1 -0
  108. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js +2 -0
  109. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js.map +1 -0
  110. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +3 -0
  111. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +4 -0
  112. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
  113. package/lib-esm/lib/project/abstract/sub-project.d.ts +11 -23
  114. package/lib-esm/lib/project/abstract/sub-project.js +87 -578
  115. package/lib-esm/lib/project/abstract/sub-project.js.map +1 -1
  116. package/lib-esm/lib/project/cli/cli-SUB_PROJECT.js +12 -11
  117. package/lib-esm/lib/project/cli/cli-SUB_PROJECT.js.map +1 -1
  118. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  119. package/lib-prod/build-info._auto-generated_.js +1 -1
  120. package/lib-prod/constants.d.ts +7 -0
  121. package/lib-prod/constants.js +8 -1
  122. package/lib-prod/constants.js.map +1 -1
  123. package/lib-prod/package.json +1 -1
  124. package/lib-prod/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
  125. package/lib-prod/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +7 -2
  126. package/lib-prod/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
  127. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +52 -3
  128. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
  129. package/lib-prod/project/abstract/artifacts/artifacts-manager.js +1 -1
  130. package/lib-prod/project/abstract/artifacts/artifacts-manager.js.map +1 -1
  131. package/lib-prod/project/abstract/artifacts/base-artifact.js +5 -1
  132. package/lib-prod/project/abstract/artifacts/base-artifact.js.map +1 -1
  133. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +3 -6
  134. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  135. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
  136. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
  137. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +6 -6
  138. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
  139. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +21 -0
  140. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.js +243 -0
  141. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
  142. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +21 -0
  143. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +111 -0
  144. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
  145. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +9 -0
  146. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +102 -0
  147. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
  148. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
  149. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +85 -0
  150. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
  151. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +3 -0
  152. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +4 -0
  153. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
  154. package/lib-prod/project/abstract/sub-project.d.ts +11 -23
  155. package/lib-prod/project/abstract/sub-project.js +87 -578
  156. package/lib-prod/project/abstract/sub-project.js.map +1 -1
  157. package/lib-prod/project/cli/cli-SUB_PROJECT.js +12 -11
  158. package/lib-prod/project/cli/cli-SUB_PROJECT.js.map +1 -1
  159. package/lib-prod.split-namespaces.json +12 -0
  160. package/package.json +1 -1
  161. package/websql/fesm2022/tnp-websql.mjs +10 -3
  162. package/websql/fesm2022/tnp-websql.mjs.map +1 -1
  163. package/websql/package.json +1 -1
  164. package/websql/types/tnp-websql.d.ts +59 -19
  165. package/websql-prod/fesm2022/tnp-websql-prod.mjs +10 -3
  166. package/websql-prod/fesm2022/tnp-websql-prod.mjs.map +1 -1
  167. package/websql-prod/package.json +1 -1
  168. package/websql-prod/types/tnp-websql-prod.d.ts +59 -19
  169. package/websql-prod.split-namespaces.json +12 -0
@@ -1,429 +1,22 @@
1
1
  //#region imports
2
- import { spawn } from 'child_process';
3
- import * as crypto from 'crypto';
4
- import { MagicRenamer, RenameRule } from 'magic-renamer/lib-prod';
5
- import { path, crossPlatformPath, TaonStripeCloudflareWorker, chalk, ___NS__kebabCase, ___NS__snakeCase, Helpers__NS__error, Helpers__NS__exists, Helpers__NS__info, Helpers__NS__isFolder, Helpers__NS__logInfo, Helpers__NS__remove, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__warn, Utils__NS__escapeStringForRegEx, Utils__NS__wait, UtilsExecProc__NS__spawnAsync, UtilsFilesFoldersSync__NS__copy, UtilsFilesFoldersSync__NS__getFoldersFrom, UtilsFilesFoldersSync__NS__IGNORE_FOLDERS_FILES_PATTERNS, UtilsFilesFoldersSync__NS__readFile, UtilsFilesFoldersSync__NS__writeFile, UtilsTerminal__NS__input, UtilsTerminal__NS__pressAnyKeyToContinueAsync, UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred, UtilsTerminal__NS__select } from 'tnp-core/lib-prod';
6
- import { BaseQuickFixes, HelpersTaon__NS__getValueFromJSONC, UtilsTypescript__NS__formatFile } from 'tnp-helpers/lib-prod';
7
- import { indexTsInSrcForWorker, KV_DATABASE_ONLINE_NAME, mainProjectSubProjects, packageJsonSubProject, TempalteSubprojectTypeArr, TempalteSubprojectTypeGroup, TemplateFolder, TemplateSubprojectDbPrefix, tsconfigSubProject, wranglerJsonC, } from '../../constants';
2
+ import { MagicRenamer } from 'magic-renamer/lib-prod';
3
+ import { path, crossPlatformPath, TaonStripeCloudflareWorker, Helpers__NS__error, Helpers__NS__info, Helpers__NS__logInfo, Helpers__NS__remove, UtilsFilesFoldersSync__NS__copy, UtilsTerminal__NS__input, UtilsTerminal__NS__pressAnyKeyToContinueAsync, UtilsTerminal__NS__select } from 'tnp-core/lib-prod';
4
+ import { BaseFeatureForProject } from 'tnp-helpers/lib-prod';
5
+ import { TempalteSubprojectTypeArr, TemplateSubprojectWorkerPrefix, } from '../../constants';
6
+ import { CloudFlareProjectsRepository } from './cloud-flare-projects/cloud-flare-projects.repository';
7
+ import { CloudFlarePorjectsUtils__NS__cloudFlareProjectFrom } from './cloud-flare-projects/cloud-flare-projects.utils';
8
8
  //#endregion
9
9
  // @ts-ignore TODO weird inheritance problem
10
- export class SubProject extends BaseQuickFixes {
11
- //#region methods & getters
12
- //#region methods & getters / this project temp sub project folder
13
- get tempSubProjectFolder() {
14
- return this.project.pathFor('tmp-subproject-temp');
10
+ export class SubProject extends BaseFeatureForProject {
11
+ repo;
12
+ constructor(project) {
13
+ super(project);
14
+ this.repo = new CloudFlareProjectsRepository(project);
15
15
  }
16
- //#endregion
17
- //#region methods & getters / core project path template type
18
- pathToTempalteInCore(templateType) {
19
- return this.project.framework.coreProject.pathFor(`${TemplateFolder.templatesSubprojects}/${templateType}`);
20
- }
21
- //#endregion
22
- //#region methods & getters / this project path template type
23
- pathToTempalteInCurrentProject(templateType) {
24
- return this.project.pathFor(`${mainProjectSubProjects}/${TempalteSubprojectTypeGroup[templateType]}/${templateType}`);
25
- }
26
- //#endregion
27
- //#region methods & getters / worker name for
28
- workerNameFor(description) {
29
- //#region @backendFunc
30
- const base = ___NS__kebabCase(description);
31
- const hash = crypto
32
- .createHash('sha256')
33
- .update(description)
34
- .digest('hex')
35
- .slice(0, 5);
36
- return `${base}-${hash}`;
37
- //#endregion
38
- }
39
- //#endregion
40
- //#region methods & getters / npm install
41
- async npmInstall(cwdWorker) {
42
- //#region npm install
43
- this.project.nodeModules.linkToLocation(cwdWorker);
44
- Helpers__NS__info(`Linking node_modules done`);
45
- // let trysNpmInstall = 0;
46
- // Helpers__NS__info(`NPM INSTALL FOR WORKER`);
47
- // while (true) {
48
- // try {
49
- // if (Helpers__NS__exists([cwdWorker, nodeModulesSubPorject])) {
50
- // if (trysNpmInstall > 0) {
51
- // break;
52
- // }
53
- // if (
54
- // !(await UtilsTerminal__NS__confirm({
55
- // message: 'Skip npm install for subproject ?',
56
- // defaultValue: true,
57
- // }))
58
- // ) {
59
- // break;
60
- // }
61
- // }
62
- // trysNpmInstall++;
63
- // Helpers__NS__removeFileIfExists([cwdWorker, packageJsonLockSubProject]);
64
- // await UtilsExecProc__NS__spawnAsync('npm install', {
65
- // cwd: cwdWorker,
66
- // }).waitUntilDoneOrThrow();
67
- // break;
68
- // } catch (error) {
69
- // if (!(await UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred(error))) {
70
- // break;
71
- // }
72
- // }
73
- // }
74
- //#endregion
75
- }
76
- //#endregion
77
- //#region methods & getters / deplyment to cloud flare
78
- async deployment(cwdWorker) {
79
- //#region @backendFunc
80
- await this.loginCliCloudFlare(cwdWorker);
81
- Helpers__NS__taskStarted(`STARTING DEPLOYMENT OF WORKER ${cwdWorker}`);
82
- while (true) {
83
- try {
84
- Helpers__NS__taskStarted(`Deploying worker to cloud flare...`);
85
- const data = await UtilsExecProc__NS__spawnAsync(`npm run deploy`, {
86
- cwd: cwdWorker,
87
- }).getOutput();
88
- const accountName = this.extractWorkersDevInfo(data.stdout);
89
- console.log(data.stdout);
90
- Helpers__NS__taskDone(`DONE DEPLOYMENT on acccount name "${accountName}"`);
91
- this.project.taonJson.setCloudFlareAccountSubdomain(accountName);
92
- break;
93
- }
94
- catch (error) {
95
- if (!(await UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred(error))) {
96
- break;
97
- }
98
- }
99
- break;
100
- }
101
- //#endregion
102
- }
103
- //#endregion
104
- //#region methods & getters / login to cloud flare
105
- async loginCliCloudFlare(cwdWorker) {
106
- //#region @backendFunc
107
- let trysLogin = 0;
108
- Helpers__NS__info(`CHECKING CLI CLOUDFLARE LOGIN`);
109
- while (true) {
110
- try {
111
- const isLogggedIn = await isWranglerLoggedIn(cwdWorker);
112
- Helpers__NS__info(`IS LOGGED IN USER: ${isLogggedIn}`);
113
- if (isLogggedIn) {
114
- if (trysLogin > 0) {
115
- Helpers__NS__taskDone(`Logged in cloudflare - DONE`);
116
- }
117
- else {
118
- Helpers__NS__info(`Already logged in to cloudflare`);
119
- }
120
- break;
121
- }
122
- else {
123
- trysLogin++;
124
- Helpers__NS__logInfo(`Executing login script...`);
125
- await UtilsExecProc__NS__spawnAsync('npx wrangler login', {
126
- cwd: cwdWorker,
127
- }).waitUntilDoneOrThrow();
128
- Helpers__NS__info(`Waiting 2 seconds afer login...`);
129
- await Utils__NS__wait(2);
130
- Helpers__NS__taskDone(`Login done.`);
131
- }
132
- }
133
- catch (error) {
134
- if (!(await UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred(error))) {
135
- break;
136
- }
137
- }
138
- }
139
- //#endregion
140
- }
141
- //#endregion
142
- //#region methods & getters / init process
143
- async initProcess(absPathToSubproject, selectedTempalte) {
144
- //#region @backendFunc
145
- const cwdWorker = crossPlatformPath([
146
- absPathToSubproject,
147
- path.basename(absPathToSubproject),
148
- ]);
149
- // console.log({ cwdWorker });
150
- await this.npmInstall(cwdWorker);
151
- await this.loginCliCloudFlare(cwdWorker);
152
- //#region create kv db
153
- Helpers__NS__info(`KV DB CREATION`);
154
- while (true) {
155
- const KV_DB_NAME = await UtilsTerminal__NS__input({
156
- question: `Provide cloudflare KV database name to create`,
157
- defaultValue: `${TemplateSubprojectDbPrefix[selectedTempalte]}_${___NS__snakeCase(this.project.name).toUpperCase()}`,
158
- validate: value => {
159
- return /^[A-Z0-9]+(?:_[A-Z0-9]+)*$/.test(value);
160
- },
161
- });
162
- try {
163
- await UtilsExecProc__NS__spawnAsync(`npx wrangler kv namespace create ${KV_DB_NAME}`, {
164
- cwd: cwdWorker,
165
- }).waitUntilDoneOrThrow();
166
- const rcFilePath = crossPlatformPath([cwdWorker, 'src/index.ts']);
167
- const rcFileContent = UtilsFilesFoldersSync__NS__readFile(rcFilePath).replace(new RegExp(Utils__NS__escapeStringForRegEx(KV_DATABASE_ONLINE_NAME), 'g'), KV_DB_NAME);
168
- UtilsFilesFoldersSync__NS__writeFile(rcFilePath, rcFileContent);
169
- break;
170
- }
171
- catch (error) {
172
- if (!(await UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred(error))) {
173
- break;
174
- }
175
- }
176
- break;
177
- }
178
- //#endregion
179
- await this.deployment(cwdWorker);
180
- await this.addSecrets(cwdWorker, selectedTempalte);
181
- Helpers__NS__info(`
182
-
183
- YOUR WORKER ${path.basename(cwdWorker)} IS READY.
184
-
185
- `);
186
- //#endregion
187
- }
188
- //#endregion
189
- //#region methods & getters / add secrets
190
- async addSecrets(cwdWorker, selectedTempalte) {
191
- //#region @backendFunc
192
- // TODO
193
- // if (
194
- // selectedTempalte !== TempalteSubprojectType.TAON_STRIPE_CLOUDFLARE_WORKER
195
- // ) {
196
- // Helpers__NS__warn(`Not allowed to set stripe secrets`);
197
- // await UtilsTerminal__NS__pressAnyKeyToContinueAsync();
198
- // return;
199
- // }
200
- //#region add stripe secret
201
- Helpers__NS__info(`
202
-
203
-
204
- ADDING STRIP SECRET
205
-
206
- Find in you stripe dashboard something like this:
207
-
208
- Secret key sk_test_someletterarehe <- copy this
209
-
210
-
211
- `);
212
- while (true) {
213
- try {
214
- Helpers__NS__taskStarted(`PLEASE WAIT FOR INPUT TO ADD STRIP SECRET ..`);
215
- const data = await UtilsExecProc__NS__spawnAsync(`npx wrangler secret put STRIPE_SECRET_KEY`, {
216
- cwd: cwdWorker,
217
- }).waitUntilDoneOrThrow();
218
- Helpers__NS__taskDone(`STRIPE SECRET SAVED for "${this.project.taonJson.cloudFlareAccountSubdomain}"`);
219
- break;
220
- }
221
- catch (error) {
222
- if (!(await UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred(error))) {
223
- break;
224
- }
225
- }
226
- break;
227
- }
228
- //#endregion
229
- //#region add stripe webhook secret
230
- Helpers__NS__info(`ADDING STRIP ${chalk.bold('WEBHOOK')} SECRET (-> DIFFRENT THAT STRIPE SECRET)`);
231
- while (true) {
232
- try {
233
- Helpers__NS__info(`PLEASE ADD WEBHOOK IN STRIPE FOR ADDRESS:
234
-
235
- ${`https://${path.basename(cwdWorker)}` +
236
- `.${this.project.taonJson.cloudFlareAccountSubdomain}.workers.dev${TaonStripeCloudflareWorker.HOOK_POST}`}
237
-
238
- Find you Webhooks tab:
239
-
240
- Signing secret
241
- whsec_somekindofstringkey <- copy this
242
-
243
-
244
- `);
245
- await UtilsTerminal__NS__pressAnyKeyToContinueAsync();
246
- Helpers__NS__taskStarted(`PLEASE WAIT FOR INPUT TO ADD WEBHOOK STRIP SECRET ..`);
247
- await UtilsExecProc__NS__spawnAsync(`npx wrangler secret put STRIPE_WEBHOOK_SECRET`, {
248
- cwd: cwdWorker,
249
- }).waitUntilDoneOrThrow();
250
- Helpers__NS__taskDone(`STRIPE WEBHOOK SECRET SAVED for "${this.project.taonJson.cloudFlareAccountSubdomain}"`);
251
- break;
252
- }
253
- catch (error) {
254
- if (!(await UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred(error))) {
255
- break;
256
- }
257
- }
258
- break;
259
- }
260
- //#endregion
261
- //#endregion
262
- }
263
- //#endregion
264
- //#region methods & getters / set mode
265
- async setMode(cwdWorker, mode) {
266
- cwdWorker;
267
- while (true) {
268
- try {
269
- const ok = await setSecret(cwdWorker, 'WORKER_STRIPE_MODE', mode);
270
- if (ok) {
271
- break;
272
- }
273
- }
274
- catch (error) {
275
- console.error(error);
276
- }
277
- Helpers__NS__warn(`Not able to set worker mode.`);
278
- await UtilsTerminal__NS__pressAnyKeyToContinueAsync({
279
- message: `Press any key to start again`,
280
- });
281
- }
282
- Helpers__NS__info(`DONE. WORKER ${path.basename(cwdWorker)} is no in ${mode} mode`);
283
- }
284
- //#endregion
285
- //#region methods & getters / get all
286
- getAll() {
287
- //#region @backendFunc
288
- const all = TempalteSubprojectTypeArr.reduce((a, tempalteType) => {
289
- const folderForSubproject = this.pathToTempalteInCurrentProject(tempalteType);
290
- return a.concat(UtilsFilesFoldersSync__NS__getFoldersFrom(folderForSubproject, {
291
- omitPatterns: UtilsFilesFoldersSync__NS__IGNORE_FOLDERS_FILES_PATTERNS,
292
- }));
293
- }, []);
294
- return all;
295
- //#endregion
296
- }
297
- //#endregion
298
- //#region methods & getters / get all subprojects
299
- getAllSubProjects() {
300
- //#region @backendFunc
301
- return this.getAll().map(c => this.project.ins.From(c));
302
- //#endregion
303
- }
304
- //#endregion
305
- //#region methods & getters / get core by
306
- coreProjectBy(templateType) {
307
- return this.project.ins.From(this.project.framework.coreProject.pathFor([
308
- TemplateFolder.templatesSubprojects,
309
- templateType,
310
- ]));
311
- }
312
- //#endregion
313
- //#region methods & getters / recreate all
314
- async initAll() {
315
- //#region backendFunc
316
- const allProjectsPaths = this.getAll();
317
- for (const chosenProjectAbscwd of allProjectsPaths) {
318
- const templateType = path.basename(path.dirname(chosenProjectAbscwd));
319
- const group = path.basename(path.dirname(path.dirname(chosenProjectAbscwd)));
320
- const core = this.coreProjectBy(templateType);
321
- const workerCore = this.project.ins.From(core.pathFor(path.basename(core.name)));
322
- const currentCwdWorker = crossPlatformPath([
323
- chosenProjectAbscwd,
324
- path.basename(chosenProjectAbscwd),
325
- ]);
326
- Helpers__NS__logInfo(`Linking subproject: ${path.basename(currentCwdWorker)}`);
327
- //#region handle woker data
328
- (() => {
329
- const filesForBranding = [
330
- packageJsonSubProject,
331
- tsconfigSubProject,
332
- indexTsInSrcForWorker,
333
- ];
334
- workerCore.copy(filesForBranding).to([currentCwdWorker]);
335
- const magicRenameRules = `${core.name} -> ${path.basename(chosenProjectAbscwd)}`;
336
- for (const relativePath of filesForBranding) {
337
- const filePath = crossPlatformPath([currentCwdWorker, relativePath]);
338
- if (!Helpers__NS__isFolder(filePath)) {
339
- let content = UtilsFilesFoldersSync__NS__readFile(filePath);
340
- const rules = RenameRule.from(magicRenameRules);
341
- for (const rule of rules) {
342
- content = content
343
- .split('\n')
344
- .map(line => {
345
- if ((line || '').trim().startsWith('imp' + 'ort') ||
346
- (line || '').trim().startsWith('exp' + 'ort') ||
347
- (line || '').trim().includes('@skip' + 'ReplaceTaon')) {
348
- return line;
349
- }
350
- return rule.replaceInString(line);
351
- })
352
- .join('\n');
353
- }
354
- if (relativePath === indexTsInSrcForWorker) {
355
- const dbName = HelpersTaon__NS__getValueFromJSONC([currentCwdWorker, wranglerJsonC], 'kv_namespaces[0].binding');
356
- UtilsFilesFoldersSync__NS__writeFile(filePath, content.replace(new RegExp(Utils__NS__escapeStringForRegEx(KV_DATABASE_ONLINE_NAME), 'g'), dbName));
357
- UtilsTypescript__NS__formatFile(filePath);
358
- }
359
- else {
360
- UtilsFilesFoldersSync__NS__writeFile(filePath, content);
361
- }
362
- }
363
- }
364
- })();
365
- //#endregion
366
- //#region handle parent data
367
- (() => {
368
- const filesForBranding = [packageJsonSubProject, 'README.md', 'images'];
369
- core.copy(filesForBranding).to([chosenProjectAbscwd]);
370
- const magicRenameRules = `${core.name} -> ${path.basename(chosenProjectAbscwd)}`;
371
- for (const relativePath of filesForBranding) {
372
- const filePath = crossPlatformPath([
373
- chosenProjectAbscwd,
374
- relativePath,
375
- ]);
376
- // console.log(`isFile ${!Helpers__NS__isFolder(filePath)} ${filePath}`)
377
- if (!Helpers__NS__isFolder(filePath)) {
378
- let content = UtilsFilesFoldersSync__NS__readFile(filePath);
379
- if (content) {
380
- const rules = RenameRule.from(magicRenameRules);
381
- for (const rule of rules) {
382
- content = rule.replaceInString(content);
383
- }
384
- UtilsFilesFoldersSync__NS__writeFile(filePath, content);
385
- }
386
- }
387
- }
388
- })();
389
- //#endregion
390
- await this.npmInstall(currentCwdWorker);
391
- }
392
- //#endregion
393
- }
394
- //#endregion
395
- //#region methods & getters / get all by type
396
- getAllByTypePaths(tempalteType) {
397
- const folderForSubproject = this.pathToTempalteInCurrentProject(tempalteType);
398
- return UtilsFilesFoldersSync__NS__getFoldersFrom(folderForSubproject, {
399
- omitPatterns: UtilsFilesFoldersSync__NS__IGNORE_FOLDERS_FILES_PATTERNS,
400
- }).filter(f => {
401
- return Helpers__NS__exists([f, path.basename(f), packageJsonSubProject]);
402
- });
403
- }
404
- //#endregion
405
- //#region methods & getters / get all project by type
406
- getAllByType(tempalteType) {
407
- const allPaths = this.getAllByTypePaths(tempalteType);
408
- const byType = allPaths.map(c => this.project.ins.From(c)).filter(f => !!f);
409
- return byType;
410
- }
411
- //#endregion
412
- //#region methods & getters / extract worker account name
413
- extractWorkersDevInfo(text) {
414
- const match = text.match(/https:\/\/([^\.]+)\.([^\.]+)\.workers\.dev/);
415
- if (!match) {
416
- return undefined;
417
- }
418
- return match[2];
419
- }
420
- //#endregion
421
- //#endregion
422
- //#region PUBLIC API
423
16
  //#region PUBLIC API / add new and configure
424
17
  async addAndConfigure() {
425
18
  //#region @backendFunc
426
- await this.initAll();
19
+ await this.repo.initAll();
427
20
  const choices = TempalteSubprojectTypeArr.reduce((a, b) => {
428
21
  return {
429
22
  ...a,
@@ -432,16 +25,18 @@ export class SubProject extends BaseQuickFixes {
432
25
  },
433
26
  };
434
27
  }, {});
435
- const select = await UtilsTerminal__NS__select({
28
+ const selectedTemplate = await UtilsTerminal__NS__select({
436
29
  choices,
437
- question: `Select subproject that you want to add`,
30
+ question: `Select cloud flare subproject that you want to add`,
438
31
  });
439
32
  let nameForProject;
440
- const alreadyAdded = this.getAll().map(c => path.basename(c));
33
+ const alreadyAdded = this.repo
34
+ .getAllFoldersWithProjects()
35
+ .map(c => path.basename(c));
441
36
  while (true) {
442
37
  nameForProject = await UtilsTerminal__NS__input({
443
38
  required: true,
444
- defaultValue: `kv-db-${this.project.name}`,
39
+ defaultValue: `kv-worker-${this.project.name}-${TemplateSubprojectWorkerPrefix[selectedTemplate]}`,
445
40
  question: `Name for worker`,
446
41
  });
447
42
  if (alreadyAdded.includes(nameForProject)) {
@@ -450,62 +45,40 @@ export class SubProject extends BaseQuickFixes {
450
45
  }
451
46
  break;
452
47
  }
453
- const coreProjTemplatePath = this.pathToTempalteInCore(select);
48
+ const coreProjTemplatePath = this.repo.pathToTempalteInCore(selectedTemplate);
454
49
  const localTempPath = crossPlatformPath([
455
- this.tempSubProjectFolder,
50
+ this.repo.tempSubProjectFolder,
456
51
  path.basename(coreProjTemplatePath),
457
52
  ]);
458
53
  Helpers__NS__remove(localTempPath);
459
54
  UtilsFilesFoldersSync__NS__copy(coreProjTemplatePath, localTempPath, {
460
55
  recursive: true,
461
56
  });
462
- const generatedWorkerName = this.workerNameFor(nameForProject);
57
+ const generatedWorkerName = this.repo.workerNameFor(nameForProject);
463
58
  const magicRenameRules = `${path.basename(coreProjTemplatePath)}` + ` -> ${generatedWorkerName}`;
464
59
  const ins = MagicRenamer.Instance(localTempPath);
465
60
  ins.start(magicRenameRules, []);
466
- const pathInsideProject = crossPlatformPath([
467
- this.pathToTempalteInCurrentProject(select),
61
+ const absLocationPath = crossPlatformPath([
62
+ this.repo.pathToTempalteInCurrentProject(selectedTemplate),
468
63
  generatedWorkerName,
469
64
  ]);
470
- Helpers__NS__remove(pathInsideProject);
471
- UtilsFilesFoldersSync__NS__copy([this.tempSubProjectFolder, generatedWorkerName], pathInsideProject, {
65
+ Helpers__NS__remove(absLocationPath);
66
+ UtilsFilesFoldersSync__NS__copy([this.repo.tempSubProjectFolder, generatedWorkerName], absLocationPath, {
472
67
  recursive: true,
473
68
  });
474
- // Helpers__NS__remove(localTempPath); uncomment
475
- Helpers__NS__remove([this.tempSubProjectFolder, generatedWorkerName]);
476
- await this.initProcess(crossPlatformPath(pathInsideProject), select);
69
+ Helpers__NS__remove(localTempPath);
70
+ Helpers__NS__remove([this.repo.tempSubProjectFolder, generatedWorkerName]);
71
+ const newWorker = CloudFlarePorjectsUtils__NS__cloudFlareProjectFrom(absLocationPath, this.project);
72
+ await newWorker.afterCreation();
477
73
  //#endregion
478
74
  }
479
75
  //#endregion
480
76
  //#region PUBLIC API / test with example data
481
- async testWithExampleData() {
77
+ async testStripeProjectWithExampleData() {
482
78
  //#region @backendFunc
483
- await this.initAll();
484
- const subprojects = this.getAllSubProjects();
485
- const choices = subprojects.reduce((a, b) => {
486
- return {
487
- ...a,
488
- [b.name]: {
489
- name: b.name,
490
- },
491
- };
492
- }, {});
493
- const chosenProjectName = await UtilsTerminal__NS__select({
494
- question: 'Select project to test with exmaple data',
495
- choices,
496
- });
497
- const chosenProject = this.getAllSubProjects().find(c => c.name === chosenProjectName);
498
- const templateType = path.basename(path.dirname(chosenProject.location));
499
- const group = path.basename(path.dirname(path.dirname(chosenProject.location)));
500
- const url = `https://${chosenProjectName}.${this.project.taonJson.cloudFlareAccountSubdomain}.workers.dev`;
501
- const currentProjectAbsPath = crossPlatformPath([
502
- this.pathToTempalteInCurrentProject(templateType),
503
- chosenProjectName,
504
- ]);
505
- const cwdWorker = crossPlatformPath([
506
- currentProjectAbsPath,
507
- chosenProjectName,
508
- ]);
79
+ await this.repo.initAll();
80
+ const chosenProject = await this.selectStripeProject();
81
+ await chosenProject.addStripeSecrets();
509
82
  const prouctChoices = {
510
83
  movieProduct: {
511
84
  name: 'movie-product-id',
@@ -530,7 +103,7 @@ export class SubProject extends BaseQuickFixes {
530
103
  },
531
104
  };
532
105
  while (true) {
533
- Helpers__NS__logInfo(`Testing with example data on url: ${url}`);
106
+ Helpers__NS__logInfo(`Testing with example data on url: ${chosenProject.workerUrl}`);
534
107
  const action = await UtilsTerminal__NS__select({
535
108
  question: 'Select action',
536
109
  choices: actionSelect,
@@ -549,7 +122,7 @@ export class SubProject extends BaseQuickFixes {
549
122
  question: 'Select product id send',
550
123
  choices: prouctChoices,
551
124
  });
552
- const req = new TaonStripeCloudflareWorker(url);
125
+ const req = new TaonStripeCloudflareWorker(chosenProject.workerUrl);
553
126
  try {
554
127
  await req.sendAsStripe({
555
128
  stripeSessionId: `stripesessionid_${Date.now()}`,
@@ -568,7 +141,7 @@ export class SubProject extends BaseQuickFixes {
568
141
  }
569
142
  else if (action === 'checkIfProuctAdded') {
570
143
  //#region check if product added
571
- const req = new TaonStripeCloudflareWorker(url);
144
+ const req = new TaonStripeCloudflareWorker(chosenProject.workerUrl);
572
145
  const productId = await UtilsTerminal__NS__select({
573
146
  question: 'Select product id send',
574
147
  choices: prouctChoices,
@@ -606,37 +179,13 @@ export class SubProject extends BaseQuickFixes {
606
179
  //#region PUBLIC API / set mode for worker
607
180
  async setModeForWorker() {
608
181
  //#region @backendFunc
609
- await this.initAll();
610
- const subprojects = this.getAllSubProjects();
611
- const choices = subprojects.reduce((a, b) => {
612
- return {
613
- ...a,
614
- [b.name]: {
615
- name: b.name,
616
- },
617
- };
618
- }, {});
619
- const chosenProjectName = await UtilsTerminal__NS__select({
620
- question: 'Select project to set mode:',
621
- choices,
622
- });
623
- const chosenProject = this.getAllSubProjects().find(c => c.name === chosenProjectName);
624
- const templateType = path.basename(path.dirname(chosenProject.location));
625
- const group = path.basename(path.dirname(path.dirname(chosenProject.location)));
626
- const url = `https://${chosenProjectName}.${this.project.taonJson.cloudFlareAccountSubdomain}.workers.dev`;
627
- const currentProjectAbsPath = crossPlatformPath([
628
- this.pathToTempalteInCurrentProject(templateType),
629
- chosenProjectName,
630
- ]);
631
- const cwdWorker = crossPlatformPath([
632
- currentProjectAbsPath,
633
- chosenProjectName,
634
- ]);
182
+ await this.repo.initAll();
183
+ const chosenProject = await this.selectAnyProject();
635
184
  const setModeChoices = {
636
- setProduction: {
185
+ production: {
637
186
  name: 'production',
638
187
  },
639
- setDevelopment: {
188
+ development: {
640
189
  name: 'development',
641
190
  },
642
191
  exit: {
@@ -650,115 +199,75 @@ export class SubProject extends BaseQuickFixes {
650
199
  if (mode === 'exit') {
651
200
  return;
652
201
  }
653
- await this.setMode(cwdWorker, mode);
202
+ await chosenProject.setMode(mode);
654
203
  //#endregion
655
204
  }
656
205
  //#endregion
657
- //#region PUBLIC API / set mode for worker
658
- async setWorkerSecrets() {
206
+ //#region PUBLIC API / set secrets for worker
207
+ async setWorkerStripeSecrets() {
659
208
  //#region @backendFunc
660
- await this.initAll();
661
- const subprojects = this.getAllSubProjects();
662
- const choices = subprojects.reduce((a, b) => {
663
- return {
664
- ...a,
665
- [b.name]: {
666
- name: b.name,
667
- },
668
- };
669
- }, {});
670
- const chosenProjectName = await UtilsTerminal__NS__select({
671
- question: 'Select project to set stripe secrets:',
672
- choices,
673
- });
674
- const chosenProject = this.getAllSubProjects().find(c => c.name === chosenProjectName);
675
- const templateType = path.basename(path.dirname(chosenProject.location));
676
- const group = path.basename(path.dirname(path.dirname(chosenProject.location)));
677
- const url = `https://${chosenProjectName}.${this.project.taonJson.cloudFlareAccountSubdomain}.workers.dev`;
678
- const currentProjectAbsPath = crossPlatformPath([
679
- this.pathToTempalteInCurrentProject(templateType),
680
- chosenProjectName,
681
- ]);
682
- const cwdWorker = crossPlatformPath([
683
- currentProjectAbsPath,
684
- chosenProjectName,
685
- ]);
686
- await this.addSecrets(cwdWorker, chosenProjectName);
209
+ await this.repo.initAll();
210
+ const chosenProject = await this.selectStripeProject();
211
+ await chosenProject.addStripeSecrets();
687
212
  //#endregion
688
213
  }
689
214
  //#endregion
690
215
  //#region PUBLIC API / deploy worker
691
216
  async deployWorker() {
692
217
  //#region @backendFunc
693
- await this.initAll();
694
- const subprojects = this.getAllSubProjects();
218
+ await this.repo.initAll();
219
+ const chosenProject = await this.selectAnyProject();
220
+ await chosenProject.deployment();
221
+ //#endregion
222
+ }
223
+ //#endregion
224
+ //#region private methods / select location
225
+ async selectLocation(subprojects) {
226
+ //#region @backendFunc
695
227
  const choices = subprojects.reduce((a, b) => {
696
228
  return {
697
229
  ...a,
698
- [b.name]: {
699
- name: b.name,
230
+ [b.absLocationPath]: {
231
+ name: b.displayName,
700
232
  },
701
233
  };
702
234
  }, {});
703
- const chosenProjectName = await UtilsTerminal__NS__select({
704
- question: 'Select project to deploy:',
235
+ const chosenProjectLocation = await UtilsTerminal__NS__select({
236
+ question: 'Select project:',
705
237
  choices,
706
238
  });
707
- const chosenProject = this.getAllSubProjects().find(c => c.name === chosenProjectName);
708
- const templateType = path.basename(path.dirname(chosenProject.location));
709
- const group = path.basename(path.dirname(path.dirname(chosenProject.location)));
710
- const url = `https://${chosenProjectName}.${this.project.taonJson.cloudFlareAccountSubdomain}.workers.dev`;
711
- const currentProjectAbsPath = crossPlatformPath([
712
- this.pathToTempalteInCurrentProject(templateType),
713
- chosenProjectName,
714
- ]);
715
- const cwdWorker = crossPlatformPath([
716
- currentProjectAbsPath,
717
- chosenProjectName,
718
- ]);
719
- await this.deployment(cwdWorker);
239
+ const chosenProject = this.repo
240
+ .getAll()
241
+ .find(c => c.absLocationPath === chosenProjectLocation);
242
+ return chosenProject;
720
243
  //#endregion
721
244
  }
722
- }
723
- //#region helpers
724
- //#region helpers / is wrangelr logged in
725
- async function isWranglerLoggedIn(cwd) {
726
- //#region @backendFunc
727
- try {
728
- const data = (await UtilsExecProc__NS__spawnAsync('npx wrangler whoami', {
729
- cwd,
730
- }).getStdoutWithoutShowingOrThrow()) || '';
731
- if (data.includes('You are not authenticated')) {
732
- return false;
733
- }
734
- return true;
735
- }
736
- catch {
737
- return false;
245
+ //#endregion
246
+ //#region private methods / select any location
247
+ async selectAnyProject() {
248
+ //#region @backendFunc
249
+ const subprojects = this.repo.getAll();
250
+ const chosenProject = await this.selectLocation(subprojects);
251
+ return chosenProject;
252
+ //#endregion
738
253
  }
739
254
  //#endregion
740
- }
741
- //#endregion
742
- //#region helpers / set secret cloudflare
743
- export async function setSecret(cwdWorker, name, value) {
744
- //#region @backendFunc
745
- return new Promise((resolve, reject) => {
746
- const proc = spawn('npx', ['wrangler', 'secret', 'put', name], {
747
- stdio: ['pipe', 'inherit', 'inherit'],
748
- cwd: cwdWorker,
749
- shell: true,
750
- });
751
- proc.stdin.write(value);
752
- proc.stdin.end();
753
- proc.on('close', code => {
754
- if (code === 0)
755
- resolve(true);
756
- else
757
- reject(new Error(`wrangler exited with ${code}`));
758
- });
759
- });
255
+ //#region private methods / select yt porject
256
+ async selectYtProject() {
257
+ //#region @backendFunc
258
+ const subprojects = this.repo.getAll_YT_Projects();
259
+ const chosenProject = await this.selectLocation(subprojects);
260
+ return chosenProject;
261
+ //#endregion
262
+ }
760
263
  //#endregion
264
+ //#region private methods / select stripe porject
265
+ async selectStripeProject() {
266
+ //#region @backendFunc
267
+ const subprojects = this.repo.getAll_Stripe_Projects();
268
+ const chosenProject = await this.selectLocation(subprojects);
269
+ return chosenProject;
270
+ //#endregion
271
+ }
761
272
  }
762
- //#endregion
763
- //#endregion
764
273
  //# sourceMappingURL=c:/Users/darek/projects/npm/taon-dev/tnp/dist-nocutsrc-prod/lib/project/abstract/sub-project.js.map