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.
- package/VERIFIED-BUILD-DATA.jsonc +3 -3
- package/browser/fesm2022/tnp-browser.mjs +10 -3
- package/browser/fesm2022/tnp-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/tnp-browser.d.ts +59 -19
- package/browser-prod/fesm2022/tnp-browser-prod.mjs +10 -3
- package/browser-prod/fesm2022/tnp-browser-prod.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/browser-prod/types/tnp-browser-prod.d.ts +59 -19
- package/browser-prod.split-namespaces.json +12 -0
- package/cli.js +9613 -9336
- package/html/assets/generated/pwa/html-pwa.html +60 -0
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/constants.d.ts +7 -0
- package/lib/constants.js +13 -6
- package/lib/constants.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
- package/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +7 -2
- package/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
- package/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +49 -0
- package/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
- package/lib/project/abstract/artifacts/artifacts-manager.js +1 -1
- package/lib/project/abstract/artifacts/artifacts-manager.js.map +1 -1
- package/lib/project/abstract/artifacts/base-artifact.js +4 -0
- package/lib/project/abstract/artifacts/base-artifact.js.map +1 -1
- package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +2 -5
- package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
- package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
- package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
- package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +6 -6
- package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.d.ts +0 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js +5 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js.map +1 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +21 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js +247 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.d.ts +0 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js +5 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js.map +1 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +21 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +115 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +11 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +108 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +89 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.d.ts +0 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js +5 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js.map +1 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.d.ts +0 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js +5 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js.map +1 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +3 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +8 -0
- package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
- package/lib/project/abstract/sub-project.d.ts +12 -24
- package/lib/project/abstract/sub-project.js +84 -576
- package/lib/project/abstract/sub-project.js.map +1 -1
- package/lib/project/cli/cli-SUB_PROJECT.js +12 -11
- package/lib/project/cli/cli-SUB_PROJECT.js.map +1 -1
- package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib-esm/lib/build-info._auto-generated_.js +1 -1
- package/lib-esm/lib/constants.d.ts +7 -0
- package/lib-esm/lib/constants.js +8 -1
- package/lib-esm/lib/constants.js.map +1 -1
- package/lib-esm/lib/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
- package/lib-esm/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +7 -2
- package/lib-esm/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
- package/lib-esm/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +50 -1
- package/lib-esm/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
- package/lib-esm/lib/project/abstract/artifacts/artifacts-manager.js +1 -1
- package/lib-esm/lib/project/abstract/artifacts/artifacts-manager.js.map +1 -1
- package/lib-esm/lib/project/abstract/artifacts/base-artifact.js +4 -0
- package/lib-esm/lib/project/abstract/artifacts/base-artifact.js.map +1 -1
- package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +3 -6
- package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
- 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
- package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
- package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +6 -6
- package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.d.ts +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js +2 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js.map +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +21 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js +243 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.d.ts +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js +2 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js.map +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +21 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +111 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +11 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +105 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +85 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.d.ts +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js +2 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js.map +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.d.ts +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js +2 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js.map +1 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +3 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +4 -0
- package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
- package/lib-esm/lib/project/abstract/sub-project.d.ts +11 -23
- package/lib-esm/lib/project/abstract/sub-project.js +87 -578
- package/lib-esm/lib/project/abstract/sub-project.js.map +1 -1
- package/lib-esm/lib/project/cli/cli-SUB_PROJECT.js +12 -11
- package/lib-esm/lib/project/cli/cli-SUB_PROJECT.js.map +1 -1
- package/lib-prod/build-info._auto-generated_.d.ts +1 -1
- package/lib-prod/build-info._auto-generated_.js +1 -1
- package/lib-prod/constants.d.ts +7 -0
- package/lib-prod/constants.js +8 -1
- package/lib-prod/constants.js.map +1 -1
- package/lib-prod/package.json +1 -1
- package/lib-prod/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
- package/lib-prod/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +7 -2
- package/lib-prod/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
- package/lib-prod/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +52 -3
- package/lib-prod/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
- package/lib-prod/project/abstract/artifacts/artifacts-manager.js +1 -1
- package/lib-prod/project/abstract/artifacts/artifacts-manager.js.map +1 -1
- package/lib-prod/project/abstract/artifacts/base-artifact.js +5 -1
- package/lib-prod/project/abstract/artifacts/base-artifact.js.map +1 -1
- package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +3 -6
- package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
- package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
- package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
- package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +6 -6
- package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +21 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.js +243 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +21 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +111 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +9 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +102 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +85 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +3 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +4 -0
- package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
- package/lib-prod/project/abstract/sub-project.d.ts +11 -23
- package/lib-prod/project/abstract/sub-project.js +87 -578
- package/lib-prod/project/abstract/sub-project.js.map +1 -1
- package/lib-prod/project/cli/cli-SUB_PROJECT.js +12 -11
- package/lib-prod/project/cli/cli-SUB_PROJECT.js.map +1 -1
- package/lib-prod.split-namespaces.json +12 -0
- package/package.json +1 -1
- package/websql/fesm2022/tnp-websql.mjs +10 -3
- package/websql/fesm2022/tnp-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/tnp-websql.d.ts +59 -19
- package/websql-prod/fesm2022/tnp-websql-prod.mjs +10 -3
- package/websql-prod/fesm2022/tnp-websql-prod.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
- package/websql-prod/types/tnp-websql-prod.d.ts +59 -19
- package/websql-prod.split-namespaces.json +12 -0
|
@@ -1,429 +1,22 @@
|
|
|
1
1
|
//#region imports
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
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
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
|
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.
|
|
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-
|
|
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(
|
|
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
|
|
467
|
-
this.pathToTempalteInCurrentProject(
|
|
61
|
+
const absLocationPath = crossPlatformPath([
|
|
62
|
+
this.repo.pathToTempalteInCurrentProject(selectedTemplate),
|
|
468
63
|
generatedWorkerName,
|
|
469
64
|
]);
|
|
470
|
-
Helpers__NS__remove(
|
|
471
|
-
UtilsFilesFoldersSync__NS__copy([this.tempSubProjectFolder, generatedWorkerName],
|
|
65
|
+
Helpers__NS__remove(absLocationPath);
|
|
66
|
+
UtilsFilesFoldersSync__NS__copy([this.repo.tempSubProjectFolder, generatedWorkerName], absLocationPath, {
|
|
472
67
|
recursive: true,
|
|
473
68
|
});
|
|
474
|
-
|
|
475
|
-
Helpers__NS__remove([this.tempSubProjectFolder, generatedWorkerName]);
|
|
476
|
-
|
|
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
|
|
77
|
+
async testStripeProjectWithExampleData() {
|
|
482
78
|
//#region @backendFunc
|
|
483
|
-
await this.initAll();
|
|
484
|
-
const
|
|
485
|
-
|
|
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: ${
|
|
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(
|
|
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(
|
|
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
|
|
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
|
-
|
|
185
|
+
production: {
|
|
637
186
|
name: 'production',
|
|
638
187
|
},
|
|
639
|
-
|
|
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
|
|
202
|
+
await chosenProject.setMode(mode);
|
|
654
203
|
//#endregion
|
|
655
204
|
}
|
|
656
205
|
//#endregion
|
|
657
|
-
//#region PUBLIC API / set
|
|
658
|
-
async
|
|
206
|
+
//#region PUBLIC API / set secrets for worker
|
|
207
|
+
async setWorkerStripeSecrets() {
|
|
659
208
|
//#region @backendFunc
|
|
660
|
-
await this.initAll();
|
|
661
|
-
const
|
|
662
|
-
|
|
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
|
|
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.
|
|
699
|
-
name: b.
|
|
230
|
+
[b.absLocationPath]: {
|
|
231
|
+
name: b.displayName,
|
|
700
232
|
},
|
|
701
233
|
};
|
|
702
234
|
}, {});
|
|
703
|
-
const
|
|
704
|
-
question: 'Select project
|
|
235
|
+
const chosenProjectLocation = await UtilsTerminal__NS__select({
|
|
236
|
+
question: 'Select project:',
|
|
705
237
|
choices,
|
|
706
238
|
});
|
|
707
|
-
const chosenProject = this.
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
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
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
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
|
-
|
|
742
|
-
//#region
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
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
|