beast-core-create 0.0.12
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/README.md +93 -0
- package/dist/bcl/diagnostics/dxDebug.js +83 -0
- package/dist/bcl/diagnostics/dxProcess.js +79 -0
- package/dist/bcl/dxEnvironment.js +162 -0
- package/dist/bcl/dxResult.js +29 -0
- package/dist/bcl/dxStringUtils.js +12 -0
- package/dist/bcl/index.js +8 -0
- package/dist/bcl/io/dxFile.js +103 -0
- package/dist/bcl/keyValuePair.js +17 -0
- package/dist/bin.js +15 -0
- package/dist/dependenciesManager.js +68 -0
- package/dist/dxApp.js +438 -0
- package/dist/index.js +6 -0
- package/dist/models/enumerations/dxBackendFramework.js +9 -0
- package/dist/models/enumerations/dxFrontendFramework.js +10 -0
- package/dist/models/enumerations/dxProjectType.js +9 -0
- package/dist/models/iDxProjectConfig.js +3 -0
- package/dist/nameReferencesManager.js +273 -0
- package/package.json +35 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BcNameReferencesManager = void 0;
|
|
16
|
+
const promises_1 = require("fs/promises");
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
18
|
+
const dxProcess_1 = require("./bcl/diagnostics/dxProcess");
|
|
19
|
+
class BcNameReferencesManager {
|
|
20
|
+
constructor() {
|
|
21
|
+
this._projectPath = "";
|
|
22
|
+
this._projectName = "";
|
|
23
|
+
this._yqPath = "";
|
|
24
|
+
}
|
|
25
|
+
updateHelmChartFolderNameAsync() {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
try {
|
|
28
|
+
yield (0, promises_1.rename)(path_1.default.join(this._projectPath, "helm", "beast-core-plugin"), path_1.default.join(this._projectPath, "helm", this._projectName));
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
throw new Error(`Unable to update the helm chart folder. Details: ${e}`);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
updateHelmReviewChartFolderNameAsync() {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
try {
|
|
38
|
+
yield (0, promises_1.rename)(path_1.default.join(this._projectPath, "helm", "beast-core-plugin-review"), path_1.default.join(this._projectPath, "helm", `${this._projectName}-review`));
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
throw new Error(`Unable to update the review helm chart folder. Details: ${e}`);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
replaceTextInFileAsync(filePath, oldText, newText) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
try {
|
|
48
|
+
let content = yield (0, promises_1.readFile)(filePath, { encoding: 'utf8' });
|
|
49
|
+
content = content.replaceAll(oldText, newText);
|
|
50
|
+
yield (0, promises_1.writeFile)(filePath, content);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
throw new Error(`Unable to update ${filePath}. Details: ${e}`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
updateNotesTxtAsync() {
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
const filePath = path_1.default.join(this._projectPath, "helm", this._projectName, "templates", "NOTES.txt");
|
|
60
|
+
yield this.replaceTextInFileAsync(filePath, `{{$values:=index .Values "beast-core-plugin"}}`, `{{$values:=index .Values "${this._projectName}"}}`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
updateGitLabAsync() {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
const filePath = path_1.default.join(this._projectPath, ".gitlab-ci.yml");
|
|
66
|
+
yield this.replaceTextInFileAsync(filePath, "beast-core-plugin", `${this._projectName}`);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
updateDevContainerAsync() {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
//Read the text from the file
|
|
72
|
+
const filePath = path_1.default.join(this._projectPath, ".devcontainer", "devcontainer.json");
|
|
73
|
+
const kubeAppNameUpdateProc = new dxProcess_1.DxProcess();
|
|
74
|
+
//yq -i "(.dependencies.[]| select( .name == \"${DX_LCL_CHRT_NME}\").name)|=\"${STAGING_CHART_NAME}\""
|
|
75
|
+
yield kubeAppNameUpdateProc.startAsync(this._yqPath, ["-i", `.containerEnv.KUBE_APP_NAME = "${this._projectName}"`, filePath]); //"chmod", ["+x", archivePath]);
|
|
76
|
+
if (!kubeAppNameUpdateProc.isSuccess) {
|
|
77
|
+
throw new Error(`Failed to update the chart.yaml alias. Details: ${kubeAppNameUpdateProc.standardError}`);
|
|
78
|
+
}
|
|
79
|
+
const helmChartNameUpdateProc = new dxProcess_1.DxProcess();
|
|
80
|
+
yield helmChartNameUpdateProc.startAsync(this._yqPath, ["-i", `.containerEnv.HELM_CHART_NAME = "${this._projectName}"`, filePath]); //"chmod", ["+x", archivePath]);
|
|
81
|
+
if (!helmChartNameUpdateProc.isSuccess) {
|
|
82
|
+
throw new Error(`Failed to update the chart.yaml alias. Details: ${helmChartNameUpdateProc.standardError}`);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
updateChartAsync() {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const filePath = path_1.default.join(this._projectPath, "helm", this._projectName, "Chart.yaml");
|
|
89
|
+
const repoUpdateProc = new dxProcess_1.DxProcess();
|
|
90
|
+
//yq -i "(.dependencies.[]| select( .name == \"${DX_LCL_CHRT_NME}\").name)|=\"${STAGING_CHART_NAME}\""
|
|
91
|
+
yield repoUpdateProc.startAsync(this._yqPath, ["-i", `(.dependencies.[]| select( .name == "beast-core-plugin-chart").alias)|="${this._projectName}"`, filePath]); //"chmod", ["+x", archivePath]);
|
|
92
|
+
if (!repoUpdateProc.isSuccess) {
|
|
93
|
+
throw new Error(`Failed to update the chart.yaml alias. Details: ${repoUpdateProc.standardError}`);
|
|
94
|
+
}
|
|
95
|
+
const nameUpdateProc = new dxProcess_1.DxProcess();
|
|
96
|
+
yield nameUpdateProc.startAsync(this._yqPath, ["-i", `.name = "${this._projectName}"`, filePath]);
|
|
97
|
+
if (!nameUpdateProc.isSuccess) {
|
|
98
|
+
throw new Error(`Failed to update the Chart.yaml name. Details: ${nameUpdateProc.standardError}`);
|
|
99
|
+
}
|
|
100
|
+
const descUpdateProc = new dxProcess_1.DxProcess();
|
|
101
|
+
yield descUpdateProc.startAsync(this._yqPath, ["-i", `.description = "A Helm chart of ${this._projectName} for Kubernetes"`, filePath]);
|
|
102
|
+
if (!descUpdateProc.isSuccess) {
|
|
103
|
+
throw new Error(`Failed to update the Chart.yaml name. Details: ${descUpdateProc.standardError}`);
|
|
104
|
+
}
|
|
105
|
+
const updateConditionProc = new dxProcess_1.DxProcess();
|
|
106
|
+
yield updateConditionProc.startAsync(this._yqPath, ["-i", `(.dependencies.[]| select( .name == "beast-core-plugin-chart").condition)|="${this._projectName}.enabled"`, filePath]);
|
|
107
|
+
if (!updateConditionProc.isSuccess) {
|
|
108
|
+
throw new Error(`Failed to update the Chart.yaml beast-core-plugin-chart condition`);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
updateValuesDevAsync() {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
const filePath = path_1.default.join(this._projectPath, "helm", this._projectName, "values-dev.yaml");
|
|
115
|
+
const sectionUpdateProc = new dxProcess_1.DxProcess();
|
|
116
|
+
yield sectionUpdateProc.startAsync(this._yqPath, ["-i", `.${this._projectName} = .beast-core-plugin | del(.beast-core-plugin)`, filePath]);
|
|
117
|
+
if (!sectionUpdateProc.isSuccess) {
|
|
118
|
+
throw new Error(`Failed to update the value-dev.yaml sub-chart alias. Details: ${sectionUpdateProc.standardError}`);
|
|
119
|
+
}
|
|
120
|
+
//yq `a.foo = a.b | del(a.b)`
|
|
121
|
+
const workingDirUpdateProc = new dxProcess_1.DxProcess();
|
|
122
|
+
yield workingDirUpdateProc.startAsync(this._yqPath, ["-i", `.${this._projectName}.development.workingDir = "${this._projectName}"`, filePath]);
|
|
123
|
+
if (!workingDirUpdateProc.isSuccess) {
|
|
124
|
+
throw new Error(`Failed to update the value-dev.yaml development working directory. Details: ${workingDirUpdateProc.standardError}`);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
updateValuesAsync() {
|
|
129
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
+
const filePath = path_1.default.join(this._projectPath, "helm", this._projectName, "values.yaml");
|
|
131
|
+
const sectionUpdateProc = new dxProcess_1.DxProcess();
|
|
132
|
+
yield sectionUpdateProc.startAsync(this._yqPath, ["-i", `.${this._projectName} = .beast-core-plugin | del(.beast-core-plugin)`, filePath]);
|
|
133
|
+
if (!sectionUpdateProc.isSuccess) {
|
|
134
|
+
throw new Error(`Failed to update the value-dev.yaml sub-chart alias. Details: ${sectionUpdateProc.standardError}`);
|
|
135
|
+
}
|
|
136
|
+
const workingDirUpdateProc = new dxProcess_1.DxProcess();
|
|
137
|
+
yield workingDirUpdateProc.startAsync(this._yqPath, ["-i", `.${this._projectName}.image.repository = "${this._projectName}"`, filePath]);
|
|
138
|
+
if (!workingDirUpdateProc.isSuccess) {
|
|
139
|
+
throw new Error(`Failed to update the value-dev.yaml development working directory. Details: ${workingDirUpdateProc.standardError}`);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
updateValuesProdAsync() {
|
|
144
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
+
const filePath = path_1.default.join(this._projectPath, "helm", this._projectName, "values-prod.yaml");
|
|
146
|
+
const sectionUpdateProc = new dxProcess_1.DxProcess();
|
|
147
|
+
yield sectionUpdateProc.startAsync(this._yqPath, ["-i", `.${this._projectName} = .beast-core-plugin | del(.beast-core-plugin)`, filePath]);
|
|
148
|
+
if (!sectionUpdateProc.isSuccess) {
|
|
149
|
+
throw new Error(`Failed to update the value-dev.yaml sub-chart alias. Details: ${sectionUpdateProc.standardError}`);
|
|
150
|
+
}
|
|
151
|
+
const workingDirUpdateProc = new dxProcess_1.DxProcess();
|
|
152
|
+
yield workingDirUpdateProc.startAsync(this._yqPath, ["-i", `.${this._projectName}.image.repository = "${this._projectName}"`, filePath]);
|
|
153
|
+
if (!workingDirUpdateProc.isSuccess) {
|
|
154
|
+
throw new Error(`Failed to update the value-dev.yaml development working directory. Details: ${workingDirUpdateProc.standardError}`);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
updateReviewChartAsync() {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
const filePath = path_1.default.join(this._projectPath, "helm", `${this._projectName}-review`, "Chart.yaml");
|
|
161
|
+
const repoUpdateProc = new dxProcess_1.DxProcess();
|
|
162
|
+
//yq -i "(.dependencies.[]| select( .name == \"${DX_LCL_CHRT_NME}\").name)|=\"${STAGING_CHART_NAME}\""
|
|
163
|
+
// await repoUpdateProc.startAsync(this._yqPath, ["-i", `(.dependencies.[]| select( .name == "beast-core-plugin").alias)|="${this._projectName}"`, filePath]);//"chmod", ["+x", archivePath]);
|
|
164
|
+
// if (!repoUpdateProc.isSuccess) {
|
|
165
|
+
// throw new Error(`Failed to update the review chart.yaml alias. Details: ${repoUpdateProc.standardError}`);
|
|
166
|
+
// }
|
|
167
|
+
const updateConditionProc = new dxProcess_1.DxProcess();
|
|
168
|
+
yield updateConditionProc.startAsync(this._yqPath, ["-i", `(.dependencies.[]| select( .name == "beast-core-plugin").condition)|="review-plugin.enabled"`, filePath]);
|
|
169
|
+
if (!updateConditionProc.isSuccess) {
|
|
170
|
+
throw new Error(`Failed to update the review Chart.yaml beast-core-plugin-chart condition`);
|
|
171
|
+
}
|
|
172
|
+
const nameUpdateProc = new dxProcess_1.DxProcess();
|
|
173
|
+
yield nameUpdateProc.startAsync(this._yqPath, ["-i", `.name = "${this._projectName}-review"`, filePath]);
|
|
174
|
+
if (!nameUpdateProc.isSuccess) {
|
|
175
|
+
throw new Error(`Failed to update the review Chart.yaml name. Details: ${nameUpdateProc.standardError}`);
|
|
176
|
+
}
|
|
177
|
+
const descUpdateProc = new dxProcess_1.DxProcess();
|
|
178
|
+
yield descUpdateProc.startAsync(this._yqPath, ["-i", `.description = "A Helm chart of ${this._projectName}-review for Kubernetes"`, filePath]);
|
|
179
|
+
if (!descUpdateProc.isSuccess) {
|
|
180
|
+
throw new Error(`Failed to update the review Chart.yaml description. Details: ${descUpdateProc.standardError}`);
|
|
181
|
+
}
|
|
182
|
+
const repositoryUpdateProc = new dxProcess_1.DxProcess();
|
|
183
|
+
yield repositoryUpdateProc.startAsync(this._yqPath, ["-i", `(.dependencies.[]| select( .name == "beast-core-plugin").repository)|="file://../${this._projectName}"`, filePath]);
|
|
184
|
+
if (!repositoryUpdateProc.isSuccess) {
|
|
185
|
+
throw new Error(`Failed to update the review Chart.yaml repository. Details: ${repositoryUpdateProc.standardError}`);
|
|
186
|
+
}
|
|
187
|
+
const pluginNameUpdateProc = new dxProcess_1.DxProcess();
|
|
188
|
+
yield pluginNameUpdateProc.startAsync(this._yqPath, ["-i", `(.dependencies.[]| select( .name == "beast-core-plugin").name)|="${this._projectName}"`, filePath]);
|
|
189
|
+
if (!pluginNameUpdateProc.isSuccess) {
|
|
190
|
+
throw new Error(`Failed to update the review Chart.yaml plugin dependency name. Details: ${pluginNameUpdateProc.standardError}`);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
updateReviewValuesDevAsync() {
|
|
195
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
196
|
+
const filePath = path_1.default.join(this._projectPath, "helm", `${this._projectName}-review`, "values-dev.yaml");
|
|
197
|
+
const updatePluginUrlProc = new dxProcess_1.DxProcess();
|
|
198
|
+
yield updatePluginUrlProc.startAsync(this._yqPath, ["-i", `.beast-core-review.plugin-sandbox.env.PLUGIN_URL = "http://dev-${this._projectName}-jsspwc"`, filePath]);
|
|
199
|
+
if (!updatePluginUrlProc.isSuccess) {
|
|
200
|
+
throw new Error(`Failed to update the PLUGIN_URL. Details: ${updatePluginUrlProc.standardError}`);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
updateReviewValuesAsync() {
|
|
205
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
206
|
+
const filePath = path_1.default.join(this._projectPath, "helm", `${this._projectName}-review`, "values.yaml");
|
|
207
|
+
const updatePluginUrlProc = new dxProcess_1.DxProcess();
|
|
208
|
+
yield updatePluginUrlProc.startAsync(this._yqPath, ["-i", `.beast-core-review.plugin-sandbox.env.PLUGIN_URL = "http://{{ .Release.Name }}-${this._projectName}-dnws"`, filePath]);
|
|
209
|
+
if (!updatePluginUrlProc.isSuccess) {
|
|
210
|
+
throw new Error(`Failed to update the PLUGIN_URL. Details: ${updatePluginUrlProc.standardError}`);
|
|
211
|
+
}
|
|
212
|
+
const sectionUpdateProc = new dxProcess_1.DxProcess();
|
|
213
|
+
yield sectionUpdateProc.startAsync(this._yqPath, ["-i", `.review-plugin.${this._projectName} = .review-plugin.beast-core-plugin | del(.review-plugin.beast-core-plugin)`, filePath]);
|
|
214
|
+
if (!sectionUpdateProc.isSuccess) {
|
|
215
|
+
throw new Error(`Failed to update the value-dev.yaml sub-chart alias. Details: ${sectionUpdateProc.standardError}`);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
readDirRecursiveAsync(dirPath_1) {
|
|
220
|
+
return __awaiter(this, arguments, void 0, function* (dirPath, fileList = []) {
|
|
221
|
+
try {
|
|
222
|
+
const allFiles = yield (0, promises_1.readdir)(dirPath, { withFileTypes: true });
|
|
223
|
+
for (const entry of allFiles) {
|
|
224
|
+
const fullPath = path_1.default.join(dirPath, entry.name);
|
|
225
|
+
if (entry.isDirectory()) {
|
|
226
|
+
yield this.readDirRecursiveAsync(fullPath, fileList);
|
|
227
|
+
}
|
|
228
|
+
else if (entry.isFile()) {
|
|
229
|
+
fileList.push(fullPath);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return fileList;
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
console.error("Error reading directory:", err);
|
|
236
|
+
throw err;
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
updateFrontendNameAsync() {
|
|
241
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
242
|
+
const frontendDir = path_1.default.join(this._projectPath, "frontend");
|
|
243
|
+
const files = yield this.readDirRecursiveAsync(frontendDir);
|
|
244
|
+
for (const file of files) {
|
|
245
|
+
yield this.replaceTextInFileAsync(file, "beast-core-plugin", this._projectName);
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
initAsync(projectPath, projectName) {
|
|
250
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
251
|
+
this._projectPath = projectPath;
|
|
252
|
+
this._projectName = projectName;
|
|
253
|
+
this._yqPath = path_1.default.join(process.cwd(), "tmp", "bin", "yq");
|
|
254
|
+
yield this.updateHelmChartFolderNameAsync();
|
|
255
|
+
yield this.updateHelmReviewChartFolderNameAsync();
|
|
256
|
+
yield this.updateChartAsync();
|
|
257
|
+
yield this.updateValuesDevAsync();
|
|
258
|
+
yield this.updateValuesAsync();
|
|
259
|
+
yield this.updateValuesProdAsync();
|
|
260
|
+
yield this.updateNotesTxtAsync();
|
|
261
|
+
yield this.updateFrontendNameAsync();
|
|
262
|
+
yield this.updateDevContainerAsync();
|
|
263
|
+
yield this.updateReviewChartAsync();
|
|
264
|
+
yield this.updateReviewValuesAsync();
|
|
265
|
+
yield this.updateReviewValuesDevAsync();
|
|
266
|
+
yield this.updateGitLabAsync();
|
|
267
|
+
//await this.updateReviewValuesDpHmrAsync();
|
|
268
|
+
//await this.updateReviewValuesSpHmrAsync();
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
exports.BcNameReferencesManager = BcNameReferencesManager;
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZVJlZmVyZW5jZXNNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25hbWVSZWZlcmVuY2VzTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBbUU7QUFDbkUsZ0RBQWtDO0FBQ2xDLDJEQUF3RDtBQUV4RCxNQUFhLHVCQUF1QjtJQUFwQztRQUNZLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLFlBQU8sR0FBVyxFQUFFLENBQUM7SUEwUGpDLENBQUM7SUF4UGlCLDhCQUE4Qjs7WUFDeEMsSUFBSSxDQUFDO2dCQUNELE1BQU0sSUFBQSxpQkFBTSxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3JJLENBQUM7WUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUUsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVhLG9DQUFvQzs7WUFDOUMsSUFBSSxDQUFDO2dCQUNELE1BQU0sSUFBQSxpQkFBTSxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsMEJBQTBCLENBQUMsRUFBRSxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN4SixDQUFDO1lBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFDYSxzQkFBc0IsQ0FBQyxRQUFnQixFQUFFLE9BQWUsRUFBRSxPQUFlOztZQUVuRixJQUFJLENBQUM7Z0JBQ0QsSUFBSSxPQUFPLEdBQVcsTUFBTSxJQUFBLG1CQUFRLEVBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3JFLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDL0MsTUFBTSxJQUFBLG9CQUFTLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLFFBQVEsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFDYSxtQkFBbUI7O1lBQzdCLE1BQU0sUUFBUSxHQUFXLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDM0csTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUUsUUFBUSxFQUFFLGdEQUFnRCxFQUFFLDZCQUE2QixJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQztRQUN4SixDQUFDO0tBQUE7SUFDYSxpQkFBaUI7O1lBQzNCLE1BQU0sUUFBUSxHQUFXLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLENBQUM7S0FBQTtJQUNhLHVCQUF1Qjs7WUFDakMsNkJBQTZCO1lBQzdCLE1BQU0sUUFBUSxHQUFXLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUM1RixNQUFNLHFCQUFxQixHQUFjLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQ3pELHNHQUFzRztZQUN0RyxNQUFNLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLGtDQUFrQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLGdDQUFnQztZQUMvSixJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELHFCQUFxQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDL0csQ0FBQztZQUVELE1BQU0sdUJBQXVCLEdBQWMsSUFBSSxxQkFBUyxFQUFFLENBQUM7WUFDM0QsTUFBTSx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxvQ0FBb0MsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQSxnQ0FBZ0M7WUFDbkssSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCx1QkFBdUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ2pILENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFYSxnQkFBZ0I7O1lBQzFCLE1BQU0sUUFBUSxHQUFXLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUMvRixNQUFNLGNBQWMsR0FBYyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztZQUNsRCxzR0FBc0c7WUFDdEcsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsMkVBQTJFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUEsZ0NBQWdDO1lBQ2pNLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3hHLENBQUM7WUFFRCxNQUFNLGNBQWMsR0FBYyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztZQUNsRCxNQUFNLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxZQUFZLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2xHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZHLENBQUM7WUFFRCxNQUFNLGNBQWMsR0FBYyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztZQUNsRCxNQUFNLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxtQ0FBbUMsSUFBSSxDQUFDLFlBQVksa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN4SSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUN2RyxDQUFDO1lBRUQsTUFBTSxtQkFBbUIsR0FBYyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztZQUN2RCxNQUFNLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLCtFQUErRSxJQUFJLENBQUMsWUFBWSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNsTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztZQUN6RixDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRWEsb0JBQW9COztZQUM5QixNQUFNLFFBQVEsR0FBVyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUVwRyxNQUFNLGlCQUFpQixHQUFjLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQ3JELE1BQU0saUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxpREFBaUQsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzNJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUN6SCxDQUFDO1lBRUQsNkJBQTZCO1lBQzdCLE1BQU0sb0JBQW9CLEdBQWMsSUFBSSxxQkFBUyxFQUFFLENBQUM7WUFDeEQsTUFBTSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLDhCQUE4QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMvSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0ZBQWdGLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDMUksQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVhLGlCQUFpQjs7WUFDM0IsTUFBTSxRQUFRLEdBQVcsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBRWhHLE1BQU0saUJBQWlCLEdBQWMsSUFBSSxxQkFBUyxFQUFFLENBQUM7WUFDckQsTUFBTSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLGlEQUFpRCxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0ksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3pILENBQUM7WUFFRCxNQUFNLG9CQUFvQixHQUFjLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSx3QkFBd0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDekksSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdGQUFnRixvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzFJLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFYSxxQkFBcUI7O1lBQy9CLE1BQU0sUUFBUSxHQUFXLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBRXJHLE1BQU0saUJBQWlCLEdBQWMsSUFBSSxxQkFBUyxFQUFFLENBQUM7WUFDckQsTUFBTSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLGlEQUFpRCxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0ksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3pILENBQUM7WUFFRCxNQUFNLG9CQUFvQixHQUFjLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSx3QkFBd0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDekksSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdGQUFnRixvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzFJLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFYSxzQkFBc0I7O1lBQ2hDLE1BQU0sUUFBUSxHQUFXLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDM0csTUFBTSxjQUFjLEdBQWMsSUFBSSxxQkFBUyxFQUFFLENBQUM7WUFDbEQsc0dBQXNHO1lBQ3RHLDhMQUE4TDtZQUM5TCxtQ0FBbUM7WUFDbkMsa0hBQWtIO1lBQ2xILElBQUk7WUFFSixNQUFNLG1CQUFtQixHQUFjLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsOEZBQThGLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNySyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEVBQTBFLENBQUMsQ0FBQztZQUNoRyxDQUFDO1lBRUQsTUFBTSxjQUFjLEdBQWMsSUFBSSxxQkFBUyxFQUFFLENBQUM7WUFDbEQsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxJQUFJLENBQUMsWUFBWSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN6RyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUM5RyxDQUFDO1lBRUQsTUFBTSxjQUFjLEdBQWMsSUFBSSxxQkFBUyxFQUFFLENBQUM7WUFDbEQsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsbUNBQW1DLElBQUksQ0FBQyxZQUFZLHlCQUF5QixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDL0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDckgsQ0FBQztZQUVELE1BQU0sb0JBQW9CLEdBQWMsSUFBSSxxQkFBUyxFQUFFLENBQUM7WUFDeEQsTUFBTSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxvRkFBb0YsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDaEwsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRSxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzFILENBQUM7WUFFRCxNQUFNLG9CQUFvQixHQUFjLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsb0VBQW9FLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2hLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsb0JBQW9CLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUN0SSxDQUFDO1FBRUwsQ0FBQztLQUFBO0lBRWEsMEJBQTBCOztZQUNwQyxNQUFNLFFBQVEsR0FBVyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksU0FBUyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFFaEgsTUFBTSxtQkFBbUIsR0FBYyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztZQUN2RCxNQUFNLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLGtFQUFrRSxJQUFJLENBQUMsWUFBWSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwSyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDdkcsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVhLHVCQUF1Qjs7WUFDakMsTUFBTSxRQUFRLEdBQVcsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUc1RyxNQUFNLG1CQUFtQixHQUFjLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsa0ZBQWtGLElBQUksQ0FBQyxZQUFZLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2xMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUN2RyxDQUFDO1lBQ0QsTUFBTSxpQkFBaUIsR0FBYyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztZQUNyRCxNQUFNLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLGtCQUFrQixJQUFJLENBQUMsWUFBWSw2RUFBNkUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3JMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUN6SCxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRWEscUJBQXFCOzZEQUFDLE9BQWUsRUFBRSxXQUFxQixFQUFFO1lBQ3hFLElBQUksQ0FBQztnQkFDTCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsa0JBQU8sRUFBQyxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFHakUsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxRQUFRLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoRCxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO3dCQUN0QixNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQ3pELENBQUM7eUJBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQzt3QkFDeEIsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDNUIsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sUUFBUSxDQUFDO1lBRWhCLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBQyxDQUFDO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sR0FBRyxDQUFDO1lBQ2QsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUNhLHVCQUF1Qjs7WUFFakMsTUFBTSxXQUFXLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzVELEtBQU0sTUFBTSxJQUFJLElBQUksS0FBSyxFQUFHLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUlZLFNBQVMsQ0FBQyxXQUFtQixFQUFFLFdBQW1COztZQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFNUQsTUFBTSxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1lBQ3BDLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQiw0Q0FBNEM7WUFDNUMsNENBQTRDO1FBQ2hELENBQUM7S0FBQTtDQUNKO0FBN1BELDBEQTZQQyJ9
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "beast-core-create",
|
|
3
|
+
"version": "0.0.12",
|
|
4
|
+
"description": "An npm project to scaffold a new Beast Core project",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"dev": "tsc --watch"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://gitlab.phactory.beast-code.com/bcas/devex/beast-core-sdk/beast-core-create"
|
|
15
|
+
},
|
|
16
|
+
"author": "Beast Code Developer Experience Team",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"bin": "./dist/bin.js",
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@inquirer/input": "^4.1.12",
|
|
21
|
+
"@inquirer/select": "^4.2.3",
|
|
22
|
+
"adm-zip": "^0.5.16",
|
|
23
|
+
"axios": "^1.9.0",
|
|
24
|
+
"tar": "^7.4.3"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/adm-zip": "^0.5.7",
|
|
28
|
+
"@types/node": "^22.15.29",
|
|
29
|
+
"esbuild": "0.25.5",
|
|
30
|
+
"typescript": "^5.8.3"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist"
|
|
34
|
+
]
|
|
35
|
+
}
|