@privateaim/core-kit 0.8.19 → 0.8.21
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/CHANGELOG.md +36 -0
- package/dist/domains/analysis/entity.d.ts +27 -1
- package/dist/domains/analysis/entity.d.ts.map +1 -1
- package/dist/domains/analysis/error.d.ts +9 -0
- package/dist/domains/analysis/error.d.ts.map +1 -0
- package/dist/domains/analysis/helpers.d.ts.map +1 -1
- package/dist/domains/analysis/index.d.ts +1 -0
- package/dist/domains/analysis/index.d.ts.map +1 -1
- package/dist/index.cjs +47 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +47 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
- package/src/domains/analysis/entity.ts +36 -2
- package/src/domains/analysis/error.ts +32 -0
- package/src/domains/analysis/helpers.ts +23 -7
- package/src/domains/analysis/index.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.8.21](https://github.com/PrivateAIM/hub/compare/v0.8.20...v0.8.21) (2025-11-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* redesign analysis view and configuration ([#1254](https://github.com/PrivateAIM/hub/issues/1254)) ([b06fb94](https://github.com/PrivateAIM/hub/commit/b06fb945739afd1a82c1afc77ef493c318f243ac))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* The following workspace dependencies were updated
|
|
14
|
+
* devDependencies
|
|
15
|
+
* @privateaim/kit bumped from ^0.8.20 to ^0.8.21
|
|
16
|
+
* @privateaim/telemetry-kit bumped from ^0.8.20 to ^0.8.21
|
|
17
|
+
* peerDependencies
|
|
18
|
+
* @privateaim/kit bumped from ^0.8.20 to ^0.8.21
|
|
19
|
+
* @privateaim/telemetry-kit bumped from ^0.8.20 to ^0.8.21
|
|
20
|
+
|
|
21
|
+
## [0.8.20](https://github.com/PrivateAIM/hub/compare/v0.8.19...v0.8.20) (2025-10-29)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* analysis aggregated configuration columns ([#1267](https://github.com/PrivateAIM/hub/issues/1267)) ([e60c460](https://github.com/PrivateAIM/hub/commit/e60c460c1f701f8b73450e7c618d00de27f8462a))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Dependencies
|
|
30
|
+
|
|
31
|
+
* The following workspace dependencies were updated
|
|
32
|
+
* devDependencies
|
|
33
|
+
* @privateaim/kit bumped from ^0.8.19 to ^0.8.20
|
|
34
|
+
* @privateaim/telemetry-kit bumped from ^0.8.19 to ^0.8.20
|
|
35
|
+
* peerDependencies
|
|
36
|
+
* @privateaim/kit bumped from ^0.8.19 to ^0.8.20
|
|
37
|
+
* @privateaim/telemetry-kit bumped from ^0.8.19 to ^0.8.20
|
|
38
|
+
|
|
3
39
|
## [0.8.19](https://github.com/PrivateAIM/hub/compare/v0.8.18...v0.8.19) (2025-09-24)
|
|
4
40
|
|
|
5
41
|
|
|
@@ -10,10 +10,36 @@ export interface Analysis {
|
|
|
10
10
|
nodes: number;
|
|
11
11
|
configuration_locked: boolean;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* A root code bucket file is linked for the analysis.
|
|
14
14
|
*/
|
|
15
|
+
configuration_entrypoint_valid: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Master image is assigned.
|
|
18
|
+
*/
|
|
19
|
+
configuration_image_valid: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* One or more default nodes are assigned.
|
|
22
|
+
*/
|
|
23
|
+
configuration_node_default_valid: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* An aggregator is assigned.
|
|
26
|
+
*/
|
|
27
|
+
configuration_node_aggregator_valid: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* A default node as well an aggregator node is assigned.
|
|
30
|
+
*/
|
|
31
|
+
configuration_nodes_valid: boolean;
|
|
15
32
|
build_status: AnalysisBuildStatus | null;
|
|
33
|
+
/**
|
|
34
|
+
* todo: add distribution_status
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* todo: rename to execution_status
|
|
38
|
+
*/
|
|
16
39
|
run_status: AnalysisRunStatus | null;
|
|
40
|
+
/**
|
|
41
|
+
* todo: add execution_progress
|
|
42
|
+
*/
|
|
17
43
|
created_at: Date;
|
|
18
44
|
updated_at: Date;
|
|
19
45
|
registry: Registry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/domains/analysis/entity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EACR,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,KAAK,EAAE,MAAM,CAAC;IAId,oBAAoB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/domains/analysis/entity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EACR,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,KAAK,EAAE,MAAM,CAAC;IAId,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,8BAA8B,EAAG,OAAO,CAAC;IAEzC;;OAEG;IACH,yBAAyB,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,gCAAgC,EAAE,OAAO,CAAC;IAE1C;;OAEG;IACH,mCAAmC,EAAE,OAAO,CAAC;IAE7C;;OAEG;IACH,yBAAyB,EAAE,OAAO,CAAC;IAInC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAIzC;;OAEG;IAGH;;OAEG;IACH,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAErC;;OAEG;IAIH,UAAU,EAAE,IAAI,CAAC;IAEjB,UAAU,EAAE,IAAI,CAAC;IAIjB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAI5B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAIpB,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO,EAAE,OAAO,CAAC;IAIjB,uBAAuB,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;IAI7D,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE1C,YAAY,EAAE,WAAW,CAAC;CAC7B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class AnalysisError extends Error {
|
|
2
|
+
static defaultNodeRequired(): AnalysisError;
|
|
3
|
+
static aggregatorNodeRequired(): AnalysisError;
|
|
4
|
+
static entrypointRequired(): AnalysisError;
|
|
5
|
+
static imageAssignmentRequired(): AnalysisError;
|
|
6
|
+
static configurationLocked(): AnalysisError;
|
|
7
|
+
static buildInitialized(): AnalysisError;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/domains/analysis/error.ts"],"names":[],"mappings":"AAOA,qBAAa,aAAc,SAAQ,KAAK;IACpC,MAAM,CAAC,mBAAmB;IAI1B,MAAM,CAAC,sBAAsB;IAI7B,MAAM,CAAC,kBAAkB;IAIzB,MAAM,CAAC,uBAAuB;IAI9B,MAAM,CAAC,mBAAmB;IAI1B,MAAM,CAAC,gBAAgB;CAG1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/domains/analysis/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAuB,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/domains/analysis/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAuB,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,KAAK,SAAS,GAAG;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC1C,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,GAAG,kBAAkB,EAAE,GAChC,SAAS,CAyIZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/analysis/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domains/analysis/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -40,6 +40,32 @@ var kit = require('@privateaim/kit');
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
/*
|
|
44
|
+
* Copyright (c) 2025.
|
|
45
|
+
* Author Peter Placzek (tada5hi)
|
|
46
|
+
* For the full copyright and license information,
|
|
47
|
+
* view the LICENSE file that was distributed with this source code.
|
|
48
|
+
*/ class AnalysisError extends Error {
|
|
49
|
+
static defaultNodeRequired() {
|
|
50
|
+
return new AnalysisError('At least one default node must be selected.');
|
|
51
|
+
}
|
|
52
|
+
static aggregatorNodeRequired() {
|
|
53
|
+
return new AnalysisError('An aggregator node node must be selected.');
|
|
54
|
+
}
|
|
55
|
+
static entrypointRequired() {
|
|
56
|
+
return new AnalysisError('An entrypoint must be selected.');
|
|
57
|
+
}
|
|
58
|
+
static imageAssignmentRequired() {
|
|
59
|
+
return new AnalysisError('A master image must be assigned to the analysis.');
|
|
60
|
+
}
|
|
61
|
+
static configurationLocked() {
|
|
62
|
+
return new AnalysisError('The analysis configuration is locked.');
|
|
63
|
+
}
|
|
64
|
+
static buildInitialized() {
|
|
65
|
+
return new AnalysisError('The analysis build process has already been initialized.');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
43
69
|
/*
|
|
44
70
|
* Copyright (c) 2021-2024.
|
|
45
71
|
* Author Peter Placzek (tada5hi)
|
|
@@ -167,20 +193,33 @@ var AnalysisContainerPath = /*#__PURE__*/ function(AnalysisContainerPath) {
|
|
|
167
193
|
case AnalysisAPICommand.CONFIGURATION_LOCK:
|
|
168
194
|
{
|
|
169
195
|
if (entity.configuration_locked) {
|
|
170
|
-
|
|
196
|
+
const error = AnalysisError.configurationLocked();
|
|
197
|
+
output.message = error.message;
|
|
171
198
|
return output;
|
|
172
199
|
}
|
|
173
200
|
if (entity.build_status) {
|
|
174
|
-
|
|
201
|
+
const error = AnalysisError.buildInitialized();
|
|
202
|
+
output.message = error.message;
|
|
203
|
+
return output;
|
|
204
|
+
}
|
|
205
|
+
if (!entity.configuration_node_default_valid) {
|
|
206
|
+
const error = AnalysisError.defaultNodeRequired();
|
|
207
|
+
output.message = error.message;
|
|
208
|
+
return output;
|
|
209
|
+
}
|
|
210
|
+
if (!entity.configuration_node_aggregator_valid) {
|
|
211
|
+
const error = AnalysisError.aggregatorNodeRequired();
|
|
212
|
+
output.message = error.message;
|
|
175
213
|
return output;
|
|
176
214
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
output.message =
|
|
215
|
+
if (!entity.configuration_entrypoint_valid) {
|
|
216
|
+
const error = AnalysisError.entrypointRequired();
|
|
217
|
+
output.message = error.message;
|
|
180
218
|
return output;
|
|
181
219
|
}
|
|
182
|
-
if (!entity.
|
|
183
|
-
|
|
220
|
+
if (!entity.configuration_image_valid) {
|
|
221
|
+
const error = AnalysisError.imageAssignmentRequired();
|
|
222
|
+
output.message = error.message;
|
|
184
223
|
return output;
|
|
185
224
|
}
|
|
186
225
|
output.success = true;
|
|
@@ -518,6 +557,7 @@ exports.AnalysisBucketType = AnalysisBucketType;
|
|
|
518
557
|
exports.AnalysisBuildStatus = AnalysisBuildStatus;
|
|
519
558
|
exports.AnalysisConfigurationStatus = AnalysisConfigurationStatus;
|
|
520
559
|
exports.AnalysisContainerPath = AnalysisContainerPath;
|
|
560
|
+
exports.AnalysisError = AnalysisError;
|
|
521
561
|
exports.AnalysisNodeApprovalCommand = AnalysisNodeApprovalCommand;
|
|
522
562
|
exports.AnalysisNodeApprovalStatus = AnalysisNodeApprovalStatus;
|
|
523
563
|
exports.AnalysisNodeRunStatus = AnalysisNodeRunStatus;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/error/constants.ts","../src/error/entities/connection-string.ts","../src/domains/analysis/constants.ts","../src/domains/analysis/helpers.ts","../src/domains/analysis-bucket/constants.ts","../src/domains/analysis-bucket/utils.ts","../src/domains/analysis-node/constants.ts","../src/domains/realm/socket.ts","../src/domains/master-image/constants.ts","../src/domains/project-node/constants.ts","../src/domains/registry/constants.ts","../src/domains/registry/utils.ts","../src/domains/registry-project/constants.ts","../src/domains/registry-project/socket.ts","../src/domains/registry-project/utils.ts","../src/domains/node/constants.ts","../src/domains/service/registry/constants.ts","../src/domains/service/secret-engine/constants.ts","../src/domains/service/constants.ts","../src/domains/service/station-registry/constants.ts","../src/domains/constants.ts","../src/domains/utils.ts","../src/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ErrorCode {\n LICENSE_AGREEMENT = 'license_agreement',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport class APIConnectionStringError extends Error {\n static connectionStringMissing(serviceName?: string) {\n const parts : string[] = ['The'];\n if (typeof serviceName === 'string') {\n parts.push(serviceName);\n }\n parts.push('connection string is not specified.');\n return new this(parts.join(' '));\n }\n\n static connectionStringInvalid(serviceName?: string) {\n const parts : string[] = ['The'];\n if (typeof serviceName === 'string') {\n parts.push(serviceName);\n }\n parts.push('connection string is not valid.');\n return new this(parts.join(' '));\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisBuildStatus {\n STARTING = 'starting', // ui trigger\n STARTED = 'started', // tb trigger\n\n STOPPING = 'stopping', // ui trigger\n STOPPED = 'stopped', // tb trigger\n\n FINISHED = 'finished', // tb trigger\n FAILED = 'failed', // tb trigger\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisConfigurationStatus {\n NODES = 'nodes',\n MASTER_IMAGE = 'masterImage',\n FILES = 'files',\n FINISHED = 'finished',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisRunStatus {\n STARTING = 'starting',\n STARTED = 'started',\n\n RUNNING = 'running',\n\n STOPPING = 'stopping',\n STOPPED = 'stopped',\n\n FINISHED = 'finished',\n FAILED = 'failed',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisResultStatus {\n STARTED = 'started',\n\n DOWNLOADING = 'downloading',\n DOWNLOADED = 'downloaded',\n\n PROCESSING = 'extracting',\n PROCESSED = 'extracted',\n\n FINISHED = 'finished',\n FAILED = 'failed',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisAPICommand {\n SPIN_UP = 'spinUp',\n TEAR_DOWN = 'tearDown',\n\n BUILD_START = 'buildStart',\n BUILD_STOP = 'buildStop',\n BUILD_STATUS = 'buildStatus',\n\n CONFIGURATION_LOCK = 'configurationLock',\n CONFIGURATION_UNLOCK = 'configurationUnlock',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisContainerPath {\n CODE = '/opt/code/',\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { AnalysisAPICommand, AnalysisBuildStatus } from './constants';\nimport type { Analysis } from './entity';\n\ntype CanResult = {\n success: boolean,\n message: string,\n};\n\n/**\n * Check if an analysis can be build based on analysis attributes (build_status, configuration_locked, ...)\n *\n * @param entity\n * @param command\n */\nexport function isAnalysisAPICommandExecutable(\n entity: Analysis,\n command: `${AnalysisAPICommand}`,\n) : CanResult {\n const output : CanResult = {\n success: false,\n message: `The analysis command ${command} cannot be executed.`,\n };\n\n switch (command) {\n case AnalysisAPICommand.BUILD_START: {\n if (!entity.configuration_locked) {\n output.success = false;\n output.message = 'The analysis configuration must be locked before starting the build.';\n return output;\n }\n\n if (!entity.build_status) {\n output.success = true;\n return output;\n }\n\n if (\n entity.build_status === AnalysisBuildStatus.FAILED ||\n entity.build_status === AnalysisBuildStatus.STOPPED\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow a build start.`;\n return output;\n }\n case AnalysisAPICommand.BUILD_STOP: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration must be locked before stopping the build.';\n return output;\n }\n\n if (!entity.build_status) {\n output.message = 'The analysis build process has not been initialized.';\n return output;\n }\n\n if (entity.build_status === AnalysisBuildStatus.STOPPING ||\n entity.build_status === AnalysisBuildStatus.STARTED ||\n entity.build_status === AnalysisBuildStatus.STARTING\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow a build stop.`;\n return output;\n }\n case AnalysisAPICommand.BUILD_STATUS: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration must be locked before checking the build status.';\n return output;\n }\n\n if (!entity.build_status) {\n output.message = 'The analysis build process has not been initialized.';\n return output;\n }\n\n if (entity.build_status === AnalysisBuildStatus.FINISHED) {\n output.message = 'The analysis build process has already been successfully completed.';\n return output;\n }\n\n output.success = true;\n return output;\n }\n case AnalysisAPICommand.CONFIGURATION_LOCK: {\n if (entity.configuration_locked) {\n output.message = 'The analysis configuration is already locked.';\n return output;\n }\n\n if (entity.build_status) {\n output.message = 'The analysis build process has already been initialized.';\n return output;\n }\n\n // todo: unknown if one of them is an aggregator.\n if (entity.nodes < 2) {\n output.message = 'The analysis requires at least two nodes.';\n return output;\n }\n\n if (!entity.master_image_id) {\n output.message = 'A master image must be assigned to the analysis.';\n return output;\n }\n\n output.success = true;\n return output;\n }\n case AnalysisAPICommand.CONFIGURATION_UNLOCK: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration is already unlocked.';\n return output;\n }\n\n if (!entity.build_status) {\n output.success = true;\n return output;\n }\n\n if (\n entity.build_status === AnalysisBuildStatus.FAILED ||\n entity.build_status === AnalysisBuildStatus.STOPPED ||\n entity.build_status === AnalysisBuildStatus.STOPPING\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow unlocking the configuration.`;\n return output;\n }\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisBucketType {\n CODE = 'CODE',\n RESULT = 'RESULT',\n TEMP = 'TEMP',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Analysis } from '../analysis';\nimport { AnalysisBucketType } from './constants';\n\nexport function buildAnalysisBucketName(\n type: `${AnalysisBucketType}`,\n id: Analysis['id'],\n) {\n switch (type) {\n case AnalysisBucketType.CODE: {\n return `analysis-code-files.${id}`;\n }\n case AnalysisBucketType.TEMP: {\n return `analysis-temp-files.${id}`;\n }\n case AnalysisBucketType.RESULT: {\n return `analysis-result-files.${id}`;\n }\n }\n\n throw new SyntaxError('The argument can only have any bucket type value.');\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisNodeApprovalCommand {\n APPROVE = 'approve',\n REJECT = 'reject',\n}\n\nexport enum AnalysisNodeApprovalStatus {\n REJECTED = 'rejected',\n APPROVED = 'approved',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisNodeRunStatus {\n STARTING = 'starting',\n STARTED = 'started',\n\n STOPPING = 'stopping',\n STOPPED = 'stopped',\n\n RUNNING = 'running',\n FINISHED = 'finished',\n\n FAILED = 'failed',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Realm } from '@authup/core-kit';\n\nexport function buildSocketRealmNamespaceName(realmId: Realm['id']) {\n return `/resources#${realmId}`;\n}\n\nexport function parseSocketRealmNamespaceName(name: string) : string | undefined {\n return name.startsWith('/resources#') ?\n name.substring('/resources#'.length) :\n name;\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum MasterImageCommand {\n SYNC = 'sync',\n}\n\nexport enum MasterImageGroupType {\n LANGUAGE = 'language',\n DEFAULT = 'default',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ProjectNodeApprovalCommand {\n APPROVE = 'approve',\n REJECT = 'reject',\n}\n\nexport enum ProjectNodeApprovalStatus {\n REJECTED = 'rejected',\n APPROVED = 'approved',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport const registryRobotSecretRegex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d).{8,}$/;\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Registry } from './entity';\n\nexport function buildRegistryClientConnectionStringFromRegistry(entity: Registry) {\n // todo: support other registries beside harbor and v2.0\n\n const url = `https://${entity.host}/api/v2.0/`;\n return `${entity.account_name}:${entity.account_secret}@${url}`;\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RegistryProjectType {\n DEFAULT = 'default',\n AGGREGATOR = 'aggregator',\n INCOMING = 'incoming',\n OUTGOING = 'outgoing',\n MASTER_IMAGES = 'masterImages',\n NODE = 'node',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RegistryProject } from './entity';\n\nexport function buildSocketRegistryProjectRoomName(id?: RegistryProject['id']) {\n return `registry-projects${id ? `#${id}` : ''}`;\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createNanoID } from '@privateaim/kit';\n\nexport function generateRegistryProjectId() {\n return createNanoID('0123456789abcdefghijklmnopqrstuvwxyz');\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum NodeType {\n AGGREGATOR = 'aggregator',\n DEFAULT = 'default',\n}\n\nexport enum NodeSocketClientEventName {\n CONNECT = 'nodeConnect',\n DISCONNECT = 'nodeDisconnect',\n MESSAGE = 'nodeMessage',\n}\n\nexport enum NodeSocketServerEventName {\n CONNECTED = 'nodeConnected',\n DISCONNECTED = 'nodeDisconnected',\n MESSAGE = 'nodeMessage',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RegistryAPICommand {\n SETUP = 'setup',\n CLEANUP = 'cleanup',\n DELETE = 'delete',\n\n PROJECT_LINK = 'projectLink',\n PROJECT_UNLINK = 'projectUnlink',\n}\n\n/**\n * Incoming train project name\n */\nexport const REGISTRY_INCOMING_PROJECT_NAME = 'incoming';\n\n/**\n * Outgoing train project name\n */\nexport const REGISTRY_OUTGOING_PROJECT_NAME = 'outgoing';\n\n/**\n * Master Image project name\n */\nexport const REGISTRY_MASTER_IMAGE_PROJECT_NAME = 'master';\n\n/**\n * Latest image tag\n */\nexport const REGISTRY_ARTIFACT_TAG_LATEST = 'latest';\n\n/**\n * base image tag\n */\nexport const REGISTRY_ARTIFACT_TAG_BASE = 'base';\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum SecretStorageAPICommand {\n ENGINE_CREATE = 'engineCreate',\n\n ENGINE_KEY_SAVE = 'engineKeySave',\n ENGINE_KEY_PULL = 'engineKeyPull',\n ENGINE_KEY_DROP = 'engineKeyDrop',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ServiceID {\n // Core Service(s)\n SYSTEM = 'system',\n\n // Third Party Service(s)\n REGISTRY = 'registry',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum StationRegistryAPICommand {\n SYNC = 'sync',\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum DomainType {\n MASTER_IMAGE = 'masterImage',\n MASTER_IMAGE_GROUP = 'masterImageGroup',\n PROJECT = 'project',\n PROJECT_NODE = 'projectNode',\n REGISTRY = 'registry',\n REGISTRY_PROJECT = 'registryProject',\n NODE = 'node',\n ANALYSIS = 'analysis',\n ANALYSIS_BUCKET = 'analysisBucket',\n ANALYSIS_BUCKET_FILE = 'analysisBucketFile',\n ANALYSIS_LOG = 'analysisLog',\n ANALYSIS_NODE = 'analysisNode',\n ANALYSIS_NODE_EVENT = 'analysisNodeEvent',\n ANALYSIS_NODE_LOG = 'analysisNodeLog',\n ANALYSIS_PERMISSION = 'analysisPermission',\n}\n\nexport enum DomainSubType {\n PROJECT_NODE_IN = 'projectNodeIn',\n PROJECT_NODE_OUT = 'projectNodeOut',\n ANALYSIS_NODE_IN = 'analysisNodeIn',\n ANALYSIS_NODE_OUT = 'analysisNodeOut',\n}\n\nexport enum DomainEventName {\n CREATED = 'created',\n DELETED = 'deleted',\n UPDATED = 'updated',\n}\n\nexport enum DomainEventSubscriptionName {\n SUBSCRIBE = 'subscribe',\n UNSUBSCRIBE = 'unsubscribe',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\n// todo: rename to buildEntityChannelName\nimport { DomainEventNamespace } from '@privateaim/kit';\n\nexport function buildDomainChannelName(domain: string, id?: string | number) {\n if (typeof id === 'string' || typeof id === 'number') {\n return `${domain}/${id}`;\n }\n\n return domain;\n}\n\n// todo: rename to buildEntityNamespaceName\nexport function buildDomainNamespaceName(id?: string | number) {\n return id ?\n `/${DomainEventNamespace}/${id}` :\n `/${DomainEventNamespace}`;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum EnvironmentName {\n TEST = 'test',\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n}\n"],"names":["ErrorCode","APIConnectionStringError","Error","connectionStringMissing","serviceName","parts","push","join","connectionStringInvalid","AnalysisBuildStatus","AnalysisConfigurationStatus","AnalysisRunStatus","AnalysisResultStatus","AnalysisAPICommand","AnalysisContainerPath","isAnalysisAPICommandExecutable","entity","command","output","success","message","BUILD_START","configuration_locked","build_status","FAILED","STOPPED","BUILD_STOP","STOPPING","STARTED","STARTING","BUILD_STATUS","FINISHED","CONFIGURATION_LOCK","nodes","master_image_id","CONFIGURATION_UNLOCK","AnalysisBucketType","buildAnalysisBucketName","type","id","CODE","TEMP","RESULT","SyntaxError","AnalysisNodeApprovalCommand","AnalysisNodeApprovalStatus","AnalysisNodeRunStatus","buildSocketRealmNamespaceName","realmId","parseSocketRealmNamespaceName","name","startsWith","substring","length","MasterImageCommand","MasterImageGroupType","ProjectNodeApprovalCommand","ProjectNodeApprovalStatus","registryRobotSecretRegex","buildRegistryClientConnectionStringFromRegistry","url","host","account_name","account_secret","RegistryProjectType","buildSocketRegistryProjectRoomName","generateRegistryProjectId","createNanoID","NodeType","NodeSocketClientEventName","NodeSocketServerEventName","RegistryAPICommand","REGISTRY_INCOMING_PROJECT_NAME","REGISTRY_OUTGOING_PROJECT_NAME","REGISTRY_MASTER_IMAGE_PROJECT_NAME","REGISTRY_ARTIFACT_TAG_LATEST","REGISTRY_ARTIFACT_TAG_BASE","SecretStorageAPICommand","ServiceID","StationRegistryAPICommand","DomainType","DomainSubType","DomainEventName","DomainEventSubscriptionName","buildDomainChannelName","domain","buildDomainNamespaceName","DomainEventNamespace","EnvironmentName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/error/constants.ts","../src/error/entities/connection-string.ts","../src/domains/analysis/error.ts","../src/domains/analysis/constants.ts","../src/domains/analysis/helpers.ts","../src/domains/analysis-bucket/constants.ts","../src/domains/analysis-bucket/utils.ts","../src/domains/analysis-node/constants.ts","../src/domains/realm/socket.ts","../src/domains/master-image/constants.ts","../src/domains/project-node/constants.ts","../src/domains/registry/constants.ts","../src/domains/registry/utils.ts","../src/domains/registry-project/constants.ts","../src/domains/registry-project/socket.ts","../src/domains/registry-project/utils.ts","../src/domains/node/constants.ts","../src/domains/service/registry/constants.ts","../src/domains/service/secret-engine/constants.ts","../src/domains/service/constants.ts","../src/domains/service/station-registry/constants.ts","../src/domains/constants.ts","../src/domains/utils.ts","../src/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ErrorCode {\n LICENSE_AGREEMENT = 'license_agreement',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport class APIConnectionStringError extends Error {\n static connectionStringMissing(serviceName?: string) {\n const parts : string[] = ['The'];\n if (typeof serviceName === 'string') {\n parts.push(serviceName);\n }\n parts.push('connection string is not specified.');\n return new this(parts.join(' '));\n }\n\n static connectionStringInvalid(serviceName?: string) {\n const parts : string[] = ['The'];\n if (typeof serviceName === 'string') {\n parts.push(serviceName);\n }\n parts.push('connection string is not valid.');\n return new this(parts.join(' '));\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport class AnalysisError extends Error {\n static defaultNodeRequired() {\n return new AnalysisError('At least one default node must be selected.');\n }\n\n static aggregatorNodeRequired() {\n return new AnalysisError('An aggregator node node must be selected.');\n }\n\n static entrypointRequired() {\n return new AnalysisError('An entrypoint must be selected.');\n }\n\n static imageAssignmentRequired() {\n return new AnalysisError('A master image must be assigned to the analysis.');\n }\n\n static configurationLocked() {\n return new AnalysisError('The analysis configuration is locked.');\n }\n\n static buildInitialized() {\n return new AnalysisError('The analysis build process has already been initialized.');\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisBuildStatus {\n STARTING = 'starting', // ui trigger\n STARTED = 'started', // tb trigger\n\n STOPPING = 'stopping', // ui trigger\n STOPPED = 'stopped', // tb trigger\n\n FINISHED = 'finished', // tb trigger\n FAILED = 'failed', // tb trigger\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisConfigurationStatus {\n NODES = 'nodes',\n MASTER_IMAGE = 'masterImage',\n FILES = 'files',\n FINISHED = 'finished',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisRunStatus {\n STARTING = 'starting',\n STARTED = 'started',\n\n RUNNING = 'running',\n\n STOPPING = 'stopping',\n STOPPED = 'stopped',\n\n FINISHED = 'finished',\n FAILED = 'failed',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisResultStatus {\n STARTED = 'started',\n\n DOWNLOADING = 'downloading',\n DOWNLOADED = 'downloaded',\n\n PROCESSING = 'extracting',\n PROCESSED = 'extracted',\n\n FINISHED = 'finished',\n FAILED = 'failed',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisAPICommand {\n SPIN_UP = 'spinUp',\n TEAR_DOWN = 'tearDown',\n\n BUILD_START = 'buildStart',\n BUILD_STOP = 'buildStop',\n BUILD_STATUS = 'buildStatus',\n\n CONFIGURATION_LOCK = 'configurationLock',\n CONFIGURATION_UNLOCK = 'configurationUnlock',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisContainerPath {\n CODE = '/opt/code/',\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { AnalysisAPICommand, AnalysisBuildStatus } from './constants';\nimport type { Analysis } from './entity';\nimport { AnalysisError } from './error';\n\ntype CanResult = {\n success: boolean,\n message: string,\n};\n\n/**\n * Check if an analysis can be build based on analysis attributes (build_status, configuration_locked, ...)\n *\n * @param entity\n * @param command\n */\nexport function isAnalysisAPICommandExecutable(\n entity: Analysis,\n command: `${AnalysisAPICommand}`,\n) : CanResult {\n const output : CanResult = {\n success: false,\n message: `The analysis command ${command} cannot be executed.`,\n };\n\n switch (command) {\n case AnalysisAPICommand.BUILD_START: {\n if (!entity.configuration_locked) {\n output.success = false;\n output.message = 'The analysis configuration must be locked before starting the build.';\n return output;\n }\n\n if (!entity.build_status) {\n output.success = true;\n return output;\n }\n\n if (\n entity.build_status === AnalysisBuildStatus.FAILED ||\n entity.build_status === AnalysisBuildStatus.STOPPED\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow a build start.`;\n return output;\n }\n case AnalysisAPICommand.BUILD_STOP: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration must be locked before stopping the build.';\n return output;\n }\n\n if (!entity.build_status) {\n output.message = 'The analysis build process has not been initialized.';\n return output;\n }\n\n if (entity.build_status === AnalysisBuildStatus.STOPPING ||\n entity.build_status === AnalysisBuildStatus.STARTED ||\n entity.build_status === AnalysisBuildStatus.STARTING\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow a build stop.`;\n return output;\n }\n case AnalysisAPICommand.BUILD_STATUS: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration must be locked before checking the build status.';\n return output;\n }\n\n if (!entity.build_status) {\n output.message = 'The analysis build process has not been initialized.';\n return output;\n }\n\n if (entity.build_status === AnalysisBuildStatus.FINISHED) {\n output.message = 'The analysis build process has already been successfully completed.';\n return output;\n }\n\n output.success = true;\n return output;\n }\n case AnalysisAPICommand.CONFIGURATION_LOCK: {\n if (entity.configuration_locked) {\n const error = AnalysisError.configurationLocked();\n output.message = error.message;\n return output;\n }\n\n if (entity.build_status) {\n const error = AnalysisError.buildInitialized();\n output.message = error.message;\n return output;\n }\n\n if (!entity.configuration_node_default_valid) {\n const error = AnalysisError.defaultNodeRequired();\n output.message = error.message;\n return output;\n }\n\n if (!entity.configuration_node_aggregator_valid) {\n const error = AnalysisError.aggregatorNodeRequired();\n output.message = error.message;\n return output;\n }\n\n if (!entity.configuration_entrypoint_valid) {\n const error = AnalysisError.entrypointRequired();\n output.message = error.message;\n return output;\n }\n\n if (!entity.configuration_image_valid) {\n const error = AnalysisError.imageAssignmentRequired();\n output.message = error.message;\n return output;\n }\n\n output.success = true;\n return output;\n }\n case AnalysisAPICommand.CONFIGURATION_UNLOCK: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration is already unlocked.';\n return output;\n }\n\n if (!entity.build_status) {\n output.success = true;\n return output;\n }\n\n if (\n entity.build_status === AnalysisBuildStatus.FAILED ||\n entity.build_status === AnalysisBuildStatus.STOPPED ||\n entity.build_status === AnalysisBuildStatus.STOPPING\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow unlocking the configuration.`;\n return output;\n }\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisBucketType {\n CODE = 'CODE',\n RESULT = 'RESULT',\n TEMP = 'TEMP',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Analysis } from '../analysis';\nimport { AnalysisBucketType } from './constants';\n\nexport function buildAnalysisBucketName(\n type: `${AnalysisBucketType}`,\n id: Analysis['id'],\n) {\n switch (type) {\n case AnalysisBucketType.CODE: {\n return `analysis-code-files.${id}`;\n }\n case AnalysisBucketType.TEMP: {\n return `analysis-temp-files.${id}`;\n }\n case AnalysisBucketType.RESULT: {\n return `analysis-result-files.${id}`;\n }\n }\n\n throw new SyntaxError('The argument can only have any bucket type value.');\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisNodeApprovalCommand {\n APPROVE = 'approve',\n REJECT = 'reject',\n}\n\nexport enum AnalysisNodeApprovalStatus {\n REJECTED = 'rejected',\n APPROVED = 'approved',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisNodeRunStatus {\n STARTING = 'starting',\n STARTED = 'started',\n\n STOPPING = 'stopping',\n STOPPED = 'stopped',\n\n RUNNING = 'running',\n FINISHED = 'finished',\n\n FAILED = 'failed',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Realm } from '@authup/core-kit';\n\nexport function buildSocketRealmNamespaceName(realmId: Realm['id']) {\n return `/resources#${realmId}`;\n}\n\nexport function parseSocketRealmNamespaceName(name: string) : string | undefined {\n return name.startsWith('/resources#') ?\n name.substring('/resources#'.length) :\n name;\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum MasterImageCommand {\n SYNC = 'sync',\n}\n\nexport enum MasterImageGroupType {\n LANGUAGE = 'language',\n DEFAULT = 'default',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ProjectNodeApprovalCommand {\n APPROVE = 'approve',\n REJECT = 'reject',\n}\n\nexport enum ProjectNodeApprovalStatus {\n REJECTED = 'rejected',\n APPROVED = 'approved',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport const registryRobotSecretRegex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d).{8,}$/;\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Registry } from './entity';\n\nexport function buildRegistryClientConnectionStringFromRegistry(entity: Registry) {\n // todo: support other registries beside harbor and v2.0\n\n const url = `https://${entity.host}/api/v2.0/`;\n return `${entity.account_name}:${entity.account_secret}@${url}`;\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RegistryProjectType {\n DEFAULT = 'default',\n AGGREGATOR = 'aggregator',\n INCOMING = 'incoming',\n OUTGOING = 'outgoing',\n MASTER_IMAGES = 'masterImages',\n NODE = 'node',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RegistryProject } from './entity';\n\nexport function buildSocketRegistryProjectRoomName(id?: RegistryProject['id']) {\n return `registry-projects${id ? `#${id}` : ''}`;\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createNanoID } from '@privateaim/kit';\n\nexport function generateRegistryProjectId() {\n return createNanoID('0123456789abcdefghijklmnopqrstuvwxyz');\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum NodeType {\n AGGREGATOR = 'aggregator',\n DEFAULT = 'default',\n}\n\nexport enum NodeSocketClientEventName {\n CONNECT = 'nodeConnect',\n DISCONNECT = 'nodeDisconnect',\n MESSAGE = 'nodeMessage',\n}\n\nexport enum NodeSocketServerEventName {\n CONNECTED = 'nodeConnected',\n DISCONNECTED = 'nodeDisconnected',\n MESSAGE = 'nodeMessage',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RegistryAPICommand {\n SETUP = 'setup',\n CLEANUP = 'cleanup',\n DELETE = 'delete',\n\n PROJECT_LINK = 'projectLink',\n PROJECT_UNLINK = 'projectUnlink',\n}\n\n/**\n * Incoming train project name\n */\nexport const REGISTRY_INCOMING_PROJECT_NAME = 'incoming';\n\n/**\n * Outgoing train project name\n */\nexport const REGISTRY_OUTGOING_PROJECT_NAME = 'outgoing';\n\n/**\n * Master Image project name\n */\nexport const REGISTRY_MASTER_IMAGE_PROJECT_NAME = 'master';\n\n/**\n * Latest image tag\n */\nexport const REGISTRY_ARTIFACT_TAG_LATEST = 'latest';\n\n/**\n * base image tag\n */\nexport const REGISTRY_ARTIFACT_TAG_BASE = 'base';\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum SecretStorageAPICommand {\n ENGINE_CREATE = 'engineCreate',\n\n ENGINE_KEY_SAVE = 'engineKeySave',\n ENGINE_KEY_PULL = 'engineKeyPull',\n ENGINE_KEY_DROP = 'engineKeyDrop',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ServiceID {\n // Core Service(s)\n SYSTEM = 'system',\n\n // Third Party Service(s)\n REGISTRY = 'registry',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum StationRegistryAPICommand {\n SYNC = 'sync',\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum DomainType {\n MASTER_IMAGE = 'masterImage',\n MASTER_IMAGE_GROUP = 'masterImageGroup',\n PROJECT = 'project',\n PROJECT_NODE = 'projectNode',\n REGISTRY = 'registry',\n REGISTRY_PROJECT = 'registryProject',\n NODE = 'node',\n ANALYSIS = 'analysis',\n ANALYSIS_BUCKET = 'analysisBucket',\n ANALYSIS_BUCKET_FILE = 'analysisBucketFile',\n ANALYSIS_LOG = 'analysisLog',\n ANALYSIS_NODE = 'analysisNode',\n ANALYSIS_NODE_EVENT = 'analysisNodeEvent',\n ANALYSIS_NODE_LOG = 'analysisNodeLog',\n ANALYSIS_PERMISSION = 'analysisPermission',\n}\n\nexport enum DomainSubType {\n PROJECT_NODE_IN = 'projectNodeIn',\n PROJECT_NODE_OUT = 'projectNodeOut',\n ANALYSIS_NODE_IN = 'analysisNodeIn',\n ANALYSIS_NODE_OUT = 'analysisNodeOut',\n}\n\nexport enum DomainEventName {\n CREATED = 'created',\n DELETED = 'deleted',\n UPDATED = 'updated',\n}\n\nexport enum DomainEventSubscriptionName {\n SUBSCRIBE = 'subscribe',\n UNSUBSCRIBE = 'unsubscribe',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\n// todo: rename to buildEntityChannelName\nimport { DomainEventNamespace } from '@privateaim/kit';\n\nexport function buildDomainChannelName(domain: string, id?: string | number) {\n if (typeof id === 'string' || typeof id === 'number') {\n return `${domain}/${id}`;\n }\n\n return domain;\n}\n\n// todo: rename to buildEntityNamespaceName\nexport function buildDomainNamespaceName(id?: string | number) {\n return id ?\n `/${DomainEventNamespace}/${id}` :\n `/${DomainEventNamespace}`;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum EnvironmentName {\n TEST = 'test',\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n}\n"],"names":["ErrorCode","APIConnectionStringError","Error","connectionStringMissing","serviceName","parts","push","join","connectionStringInvalid","AnalysisError","defaultNodeRequired","aggregatorNodeRequired","entrypointRequired","imageAssignmentRequired","configurationLocked","buildInitialized","AnalysisBuildStatus","AnalysisConfigurationStatus","AnalysisRunStatus","AnalysisResultStatus","AnalysisAPICommand","AnalysisContainerPath","isAnalysisAPICommandExecutable","entity","command","output","success","message","BUILD_START","configuration_locked","build_status","FAILED","STOPPED","BUILD_STOP","STOPPING","STARTED","STARTING","BUILD_STATUS","FINISHED","CONFIGURATION_LOCK","error","configuration_node_default_valid","configuration_node_aggregator_valid","configuration_entrypoint_valid","configuration_image_valid","CONFIGURATION_UNLOCK","AnalysisBucketType","buildAnalysisBucketName","type","id","CODE","TEMP","RESULT","SyntaxError","AnalysisNodeApprovalCommand","AnalysisNodeApprovalStatus","AnalysisNodeRunStatus","buildSocketRealmNamespaceName","realmId","parseSocketRealmNamespaceName","name","startsWith","substring","length","MasterImageCommand","MasterImageGroupType","ProjectNodeApprovalCommand","ProjectNodeApprovalStatus","registryRobotSecretRegex","buildRegistryClientConnectionStringFromRegistry","url","host","account_name","account_secret","RegistryProjectType","buildSocketRegistryProjectRoomName","generateRegistryProjectId","createNanoID","NodeType","NodeSocketClientEventName","NodeSocketServerEventName","RegistryAPICommand","REGISTRY_INCOMING_PROJECT_NAME","REGISTRY_OUTGOING_PROJECT_NAME","REGISTRY_MASTER_IMAGE_PROJECT_NAME","REGISTRY_ARTIFACT_TAG_LATEST","REGISTRY_ARTIFACT_TAG_BASE","SecretStorageAPICommand","ServiceID","StationRegistryAPICommand","DomainType","DomainSubType","DomainEventName","DomainEventSubscriptionName","buildDomainChannelName","domain","buildDomainNamespaceName","DomainEventNamespace","EnvironmentName"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -38,6 +38,32 @@ import { createNanoID, DomainEventNamespace } from '@privateaim/kit';
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
/*
|
|
42
|
+
* Copyright (c) 2025.
|
|
43
|
+
* Author Peter Placzek (tada5hi)
|
|
44
|
+
* For the full copyright and license information,
|
|
45
|
+
* view the LICENSE file that was distributed with this source code.
|
|
46
|
+
*/ class AnalysisError extends Error {
|
|
47
|
+
static defaultNodeRequired() {
|
|
48
|
+
return new AnalysisError('At least one default node must be selected.');
|
|
49
|
+
}
|
|
50
|
+
static aggregatorNodeRequired() {
|
|
51
|
+
return new AnalysisError('An aggregator node node must be selected.');
|
|
52
|
+
}
|
|
53
|
+
static entrypointRequired() {
|
|
54
|
+
return new AnalysisError('An entrypoint must be selected.');
|
|
55
|
+
}
|
|
56
|
+
static imageAssignmentRequired() {
|
|
57
|
+
return new AnalysisError('A master image must be assigned to the analysis.');
|
|
58
|
+
}
|
|
59
|
+
static configurationLocked() {
|
|
60
|
+
return new AnalysisError('The analysis configuration is locked.');
|
|
61
|
+
}
|
|
62
|
+
static buildInitialized() {
|
|
63
|
+
return new AnalysisError('The analysis build process has already been initialized.');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
41
67
|
/*
|
|
42
68
|
* Copyright (c) 2021-2024.
|
|
43
69
|
* Author Peter Placzek (tada5hi)
|
|
@@ -165,20 +191,33 @@ var AnalysisContainerPath = /*#__PURE__*/ function(AnalysisContainerPath) {
|
|
|
165
191
|
case AnalysisAPICommand.CONFIGURATION_LOCK:
|
|
166
192
|
{
|
|
167
193
|
if (entity.configuration_locked) {
|
|
168
|
-
|
|
194
|
+
const error = AnalysisError.configurationLocked();
|
|
195
|
+
output.message = error.message;
|
|
169
196
|
return output;
|
|
170
197
|
}
|
|
171
198
|
if (entity.build_status) {
|
|
172
|
-
|
|
199
|
+
const error = AnalysisError.buildInitialized();
|
|
200
|
+
output.message = error.message;
|
|
201
|
+
return output;
|
|
202
|
+
}
|
|
203
|
+
if (!entity.configuration_node_default_valid) {
|
|
204
|
+
const error = AnalysisError.defaultNodeRequired();
|
|
205
|
+
output.message = error.message;
|
|
206
|
+
return output;
|
|
207
|
+
}
|
|
208
|
+
if (!entity.configuration_node_aggregator_valid) {
|
|
209
|
+
const error = AnalysisError.aggregatorNodeRequired();
|
|
210
|
+
output.message = error.message;
|
|
173
211
|
return output;
|
|
174
212
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
output.message =
|
|
213
|
+
if (!entity.configuration_entrypoint_valid) {
|
|
214
|
+
const error = AnalysisError.entrypointRequired();
|
|
215
|
+
output.message = error.message;
|
|
178
216
|
return output;
|
|
179
217
|
}
|
|
180
|
-
if (!entity.
|
|
181
|
-
|
|
218
|
+
if (!entity.configuration_image_valid) {
|
|
219
|
+
const error = AnalysisError.imageAssignmentRequired();
|
|
220
|
+
output.message = error.message;
|
|
182
221
|
return output;
|
|
183
222
|
}
|
|
184
223
|
output.success = true;
|
|
@@ -510,5 +549,5 @@ function buildDomainNamespaceName(id) {
|
|
|
510
549
|
return EnvironmentName;
|
|
511
550
|
}({});
|
|
512
551
|
|
|
513
|
-
export { APIConnectionStringError, AnalysisAPICommand, AnalysisBucketType, AnalysisBuildStatus, AnalysisConfigurationStatus, AnalysisContainerPath, AnalysisNodeApprovalCommand, AnalysisNodeApprovalStatus, AnalysisNodeRunStatus, AnalysisResultStatus, AnalysisRunStatus, DomainEventName, DomainEventSubscriptionName, DomainSubType, DomainType, EnvironmentName, ErrorCode, MasterImageCommand, MasterImageGroupType, NodeSocketClientEventName, NodeSocketServerEventName, NodeType, ProjectNodeApprovalCommand, ProjectNodeApprovalStatus, REGISTRY_ARTIFACT_TAG_BASE, REGISTRY_ARTIFACT_TAG_LATEST, REGISTRY_INCOMING_PROJECT_NAME, REGISTRY_MASTER_IMAGE_PROJECT_NAME, REGISTRY_OUTGOING_PROJECT_NAME, RegistryAPICommand, RegistryProjectType, SecretStorageAPICommand, ServiceID, StationRegistryAPICommand, buildAnalysisBucketName, buildDomainChannelName, buildDomainNamespaceName, buildRegistryClientConnectionStringFromRegistry, buildSocketRealmNamespaceName, buildSocketRegistryProjectRoomName, generateRegistryProjectId, isAnalysisAPICommandExecutable, parseSocketRealmNamespaceName, registryRobotSecretRegex };
|
|
552
|
+
export { APIConnectionStringError, AnalysisAPICommand, AnalysisBucketType, AnalysisBuildStatus, AnalysisConfigurationStatus, AnalysisContainerPath, AnalysisError, AnalysisNodeApprovalCommand, AnalysisNodeApprovalStatus, AnalysisNodeRunStatus, AnalysisResultStatus, AnalysisRunStatus, DomainEventName, DomainEventSubscriptionName, DomainSubType, DomainType, EnvironmentName, ErrorCode, MasterImageCommand, MasterImageGroupType, NodeSocketClientEventName, NodeSocketServerEventName, NodeType, ProjectNodeApprovalCommand, ProjectNodeApprovalStatus, REGISTRY_ARTIFACT_TAG_BASE, REGISTRY_ARTIFACT_TAG_LATEST, REGISTRY_INCOMING_PROJECT_NAME, REGISTRY_MASTER_IMAGE_PROJECT_NAME, REGISTRY_OUTGOING_PROJECT_NAME, RegistryAPICommand, RegistryProjectType, SecretStorageAPICommand, ServiceID, StationRegistryAPICommand, buildAnalysisBucketName, buildDomainChannelName, buildDomainNamespaceName, buildRegistryClientConnectionStringFromRegistry, buildSocketRealmNamespaceName, buildSocketRegistryProjectRoomName, generateRegistryProjectId, isAnalysisAPICommandExecutable, parseSocketRealmNamespaceName, registryRobotSecretRegex };
|
|
514
553
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/error/constants.ts","../src/error/entities/connection-string.ts","../src/domains/analysis/constants.ts","../src/domains/analysis/helpers.ts","../src/domains/analysis-bucket/constants.ts","../src/domains/analysis-bucket/utils.ts","../src/domains/analysis-node/constants.ts","../src/domains/realm/socket.ts","../src/domains/master-image/constants.ts","../src/domains/project-node/constants.ts","../src/domains/registry/constants.ts","../src/domains/registry/utils.ts","../src/domains/registry-project/constants.ts","../src/domains/registry-project/socket.ts","../src/domains/registry-project/utils.ts","../src/domains/node/constants.ts","../src/domains/service/registry/constants.ts","../src/domains/service/secret-engine/constants.ts","../src/domains/service/constants.ts","../src/domains/service/station-registry/constants.ts","../src/domains/constants.ts","../src/domains/utils.ts","../src/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ErrorCode {\n LICENSE_AGREEMENT = 'license_agreement',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport class APIConnectionStringError extends Error {\n static connectionStringMissing(serviceName?: string) {\n const parts : string[] = ['The'];\n if (typeof serviceName === 'string') {\n parts.push(serviceName);\n }\n parts.push('connection string is not specified.');\n return new this(parts.join(' '));\n }\n\n static connectionStringInvalid(serviceName?: string) {\n const parts : string[] = ['The'];\n if (typeof serviceName === 'string') {\n parts.push(serviceName);\n }\n parts.push('connection string is not valid.');\n return new this(parts.join(' '));\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisBuildStatus {\n STARTING = 'starting', // ui trigger\n STARTED = 'started', // tb trigger\n\n STOPPING = 'stopping', // ui trigger\n STOPPED = 'stopped', // tb trigger\n\n FINISHED = 'finished', // tb trigger\n FAILED = 'failed', // tb trigger\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisConfigurationStatus {\n NODES = 'nodes',\n MASTER_IMAGE = 'masterImage',\n FILES = 'files',\n FINISHED = 'finished',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisRunStatus {\n STARTING = 'starting',\n STARTED = 'started',\n\n RUNNING = 'running',\n\n STOPPING = 'stopping',\n STOPPED = 'stopped',\n\n FINISHED = 'finished',\n FAILED = 'failed',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisResultStatus {\n STARTED = 'started',\n\n DOWNLOADING = 'downloading',\n DOWNLOADED = 'downloaded',\n\n PROCESSING = 'extracting',\n PROCESSED = 'extracted',\n\n FINISHED = 'finished',\n FAILED = 'failed',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisAPICommand {\n SPIN_UP = 'spinUp',\n TEAR_DOWN = 'tearDown',\n\n BUILD_START = 'buildStart',\n BUILD_STOP = 'buildStop',\n BUILD_STATUS = 'buildStatus',\n\n CONFIGURATION_LOCK = 'configurationLock',\n CONFIGURATION_UNLOCK = 'configurationUnlock',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisContainerPath {\n CODE = '/opt/code/',\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { AnalysisAPICommand, AnalysisBuildStatus } from './constants';\nimport type { Analysis } from './entity';\n\ntype CanResult = {\n success: boolean,\n message: string,\n};\n\n/**\n * Check if an analysis can be build based on analysis attributes (build_status, configuration_locked, ...)\n *\n * @param entity\n * @param command\n */\nexport function isAnalysisAPICommandExecutable(\n entity: Analysis,\n command: `${AnalysisAPICommand}`,\n) : CanResult {\n const output : CanResult = {\n success: false,\n message: `The analysis command ${command} cannot be executed.`,\n };\n\n switch (command) {\n case AnalysisAPICommand.BUILD_START: {\n if (!entity.configuration_locked) {\n output.success = false;\n output.message = 'The analysis configuration must be locked before starting the build.';\n return output;\n }\n\n if (!entity.build_status) {\n output.success = true;\n return output;\n }\n\n if (\n entity.build_status === AnalysisBuildStatus.FAILED ||\n entity.build_status === AnalysisBuildStatus.STOPPED\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow a build start.`;\n return output;\n }\n case AnalysisAPICommand.BUILD_STOP: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration must be locked before stopping the build.';\n return output;\n }\n\n if (!entity.build_status) {\n output.message = 'The analysis build process has not been initialized.';\n return output;\n }\n\n if (entity.build_status === AnalysisBuildStatus.STOPPING ||\n entity.build_status === AnalysisBuildStatus.STARTED ||\n entity.build_status === AnalysisBuildStatus.STARTING\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow a build stop.`;\n return output;\n }\n case AnalysisAPICommand.BUILD_STATUS: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration must be locked before checking the build status.';\n return output;\n }\n\n if (!entity.build_status) {\n output.message = 'The analysis build process has not been initialized.';\n return output;\n }\n\n if (entity.build_status === AnalysisBuildStatus.FINISHED) {\n output.message = 'The analysis build process has already been successfully completed.';\n return output;\n }\n\n output.success = true;\n return output;\n }\n case AnalysisAPICommand.CONFIGURATION_LOCK: {\n if (entity.configuration_locked) {\n output.message = 'The analysis configuration is already locked.';\n return output;\n }\n\n if (entity.build_status) {\n output.message = 'The analysis build process has already been initialized.';\n return output;\n }\n\n // todo: unknown if one of them is an aggregator.\n if (entity.nodes < 2) {\n output.message = 'The analysis requires at least two nodes.';\n return output;\n }\n\n if (!entity.master_image_id) {\n output.message = 'A master image must be assigned to the analysis.';\n return output;\n }\n\n output.success = true;\n return output;\n }\n case AnalysisAPICommand.CONFIGURATION_UNLOCK: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration is already unlocked.';\n return output;\n }\n\n if (!entity.build_status) {\n output.success = true;\n return output;\n }\n\n if (\n entity.build_status === AnalysisBuildStatus.FAILED ||\n entity.build_status === AnalysisBuildStatus.STOPPED ||\n entity.build_status === AnalysisBuildStatus.STOPPING\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow unlocking the configuration.`;\n return output;\n }\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisBucketType {\n CODE = 'CODE',\n RESULT = 'RESULT',\n TEMP = 'TEMP',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Analysis } from '../analysis';\nimport { AnalysisBucketType } from './constants';\n\nexport function buildAnalysisBucketName(\n type: `${AnalysisBucketType}`,\n id: Analysis['id'],\n) {\n switch (type) {\n case AnalysisBucketType.CODE: {\n return `analysis-code-files.${id}`;\n }\n case AnalysisBucketType.TEMP: {\n return `analysis-temp-files.${id}`;\n }\n case AnalysisBucketType.RESULT: {\n return `analysis-result-files.${id}`;\n }\n }\n\n throw new SyntaxError('The argument can only have any bucket type value.');\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisNodeApprovalCommand {\n APPROVE = 'approve',\n REJECT = 'reject',\n}\n\nexport enum AnalysisNodeApprovalStatus {\n REJECTED = 'rejected',\n APPROVED = 'approved',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisNodeRunStatus {\n STARTING = 'starting',\n STARTED = 'started',\n\n STOPPING = 'stopping',\n STOPPED = 'stopped',\n\n RUNNING = 'running',\n FINISHED = 'finished',\n\n FAILED = 'failed',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Realm } from '@authup/core-kit';\n\nexport function buildSocketRealmNamespaceName(realmId: Realm['id']) {\n return `/resources#${realmId}`;\n}\n\nexport function parseSocketRealmNamespaceName(name: string) : string | undefined {\n return name.startsWith('/resources#') ?\n name.substring('/resources#'.length) :\n name;\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum MasterImageCommand {\n SYNC = 'sync',\n}\n\nexport enum MasterImageGroupType {\n LANGUAGE = 'language',\n DEFAULT = 'default',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ProjectNodeApprovalCommand {\n APPROVE = 'approve',\n REJECT = 'reject',\n}\n\nexport enum ProjectNodeApprovalStatus {\n REJECTED = 'rejected',\n APPROVED = 'approved',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport const registryRobotSecretRegex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d).{8,}$/;\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Registry } from './entity';\n\nexport function buildRegistryClientConnectionStringFromRegistry(entity: Registry) {\n // todo: support other registries beside harbor and v2.0\n\n const url = `https://${entity.host}/api/v2.0/`;\n return `${entity.account_name}:${entity.account_secret}@${url}`;\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RegistryProjectType {\n DEFAULT = 'default',\n AGGREGATOR = 'aggregator',\n INCOMING = 'incoming',\n OUTGOING = 'outgoing',\n MASTER_IMAGES = 'masterImages',\n NODE = 'node',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RegistryProject } from './entity';\n\nexport function buildSocketRegistryProjectRoomName(id?: RegistryProject['id']) {\n return `registry-projects${id ? `#${id}` : ''}`;\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createNanoID } from '@privateaim/kit';\n\nexport function generateRegistryProjectId() {\n return createNanoID('0123456789abcdefghijklmnopqrstuvwxyz');\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum NodeType {\n AGGREGATOR = 'aggregator',\n DEFAULT = 'default',\n}\n\nexport enum NodeSocketClientEventName {\n CONNECT = 'nodeConnect',\n DISCONNECT = 'nodeDisconnect',\n MESSAGE = 'nodeMessage',\n}\n\nexport enum NodeSocketServerEventName {\n CONNECTED = 'nodeConnected',\n DISCONNECTED = 'nodeDisconnected',\n MESSAGE = 'nodeMessage',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RegistryAPICommand {\n SETUP = 'setup',\n CLEANUP = 'cleanup',\n DELETE = 'delete',\n\n PROJECT_LINK = 'projectLink',\n PROJECT_UNLINK = 'projectUnlink',\n}\n\n/**\n * Incoming train project name\n */\nexport const REGISTRY_INCOMING_PROJECT_NAME = 'incoming';\n\n/**\n * Outgoing train project name\n */\nexport const REGISTRY_OUTGOING_PROJECT_NAME = 'outgoing';\n\n/**\n * Master Image project name\n */\nexport const REGISTRY_MASTER_IMAGE_PROJECT_NAME = 'master';\n\n/**\n * Latest image tag\n */\nexport const REGISTRY_ARTIFACT_TAG_LATEST = 'latest';\n\n/**\n * base image tag\n */\nexport const REGISTRY_ARTIFACT_TAG_BASE = 'base';\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum SecretStorageAPICommand {\n ENGINE_CREATE = 'engineCreate',\n\n ENGINE_KEY_SAVE = 'engineKeySave',\n ENGINE_KEY_PULL = 'engineKeyPull',\n ENGINE_KEY_DROP = 'engineKeyDrop',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ServiceID {\n // Core Service(s)\n SYSTEM = 'system',\n\n // Third Party Service(s)\n REGISTRY = 'registry',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum StationRegistryAPICommand {\n SYNC = 'sync',\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum DomainType {\n MASTER_IMAGE = 'masterImage',\n MASTER_IMAGE_GROUP = 'masterImageGroup',\n PROJECT = 'project',\n PROJECT_NODE = 'projectNode',\n REGISTRY = 'registry',\n REGISTRY_PROJECT = 'registryProject',\n NODE = 'node',\n ANALYSIS = 'analysis',\n ANALYSIS_BUCKET = 'analysisBucket',\n ANALYSIS_BUCKET_FILE = 'analysisBucketFile',\n ANALYSIS_LOG = 'analysisLog',\n ANALYSIS_NODE = 'analysisNode',\n ANALYSIS_NODE_EVENT = 'analysisNodeEvent',\n ANALYSIS_NODE_LOG = 'analysisNodeLog',\n ANALYSIS_PERMISSION = 'analysisPermission',\n}\n\nexport enum DomainSubType {\n PROJECT_NODE_IN = 'projectNodeIn',\n PROJECT_NODE_OUT = 'projectNodeOut',\n ANALYSIS_NODE_IN = 'analysisNodeIn',\n ANALYSIS_NODE_OUT = 'analysisNodeOut',\n}\n\nexport enum DomainEventName {\n CREATED = 'created',\n DELETED = 'deleted',\n UPDATED = 'updated',\n}\n\nexport enum DomainEventSubscriptionName {\n SUBSCRIBE = 'subscribe',\n UNSUBSCRIBE = 'unsubscribe',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\n// todo: rename to buildEntityChannelName\nimport { DomainEventNamespace } from '@privateaim/kit';\n\nexport function buildDomainChannelName(domain: string, id?: string | number) {\n if (typeof id === 'string' || typeof id === 'number') {\n return `${domain}/${id}`;\n }\n\n return domain;\n}\n\n// todo: rename to buildEntityNamespaceName\nexport function buildDomainNamespaceName(id?: string | number) {\n return id ?\n `/${DomainEventNamespace}/${id}` :\n `/${DomainEventNamespace}`;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum EnvironmentName {\n TEST = 'test',\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n}\n"],"names":["ErrorCode","APIConnectionStringError","Error","connectionStringMissing","serviceName","parts","push","join","connectionStringInvalid","AnalysisBuildStatus","AnalysisConfigurationStatus","AnalysisRunStatus","AnalysisResultStatus","AnalysisAPICommand","AnalysisContainerPath","isAnalysisAPICommandExecutable","entity","command","output","success","message","BUILD_START","configuration_locked","build_status","FAILED","STOPPED","BUILD_STOP","STOPPING","STARTED","STARTING","BUILD_STATUS","FINISHED","CONFIGURATION_LOCK","nodes","master_image_id","CONFIGURATION_UNLOCK","AnalysisBucketType","buildAnalysisBucketName","type","id","CODE","TEMP","RESULT","SyntaxError","AnalysisNodeApprovalCommand","AnalysisNodeApprovalStatus","AnalysisNodeRunStatus","buildSocketRealmNamespaceName","realmId","parseSocketRealmNamespaceName","name","startsWith","substring","length","MasterImageCommand","MasterImageGroupType","ProjectNodeApprovalCommand","ProjectNodeApprovalStatus","registryRobotSecretRegex","buildRegistryClientConnectionStringFromRegistry","url","host","account_name","account_secret","RegistryProjectType","buildSocketRegistryProjectRoomName","generateRegistryProjectId","createNanoID","NodeType","NodeSocketClientEventName","NodeSocketServerEventName","RegistryAPICommand","REGISTRY_INCOMING_PROJECT_NAME","REGISTRY_OUTGOING_PROJECT_NAME","REGISTRY_MASTER_IMAGE_PROJECT_NAME","REGISTRY_ARTIFACT_TAG_LATEST","REGISTRY_ARTIFACT_TAG_BASE","SecretStorageAPICommand","ServiceID","StationRegistryAPICommand","DomainType","DomainSubType","DomainEventName","DomainEventSubscriptionName","buildDomainChannelName","domain","buildDomainNamespaceName","DomainEventNamespace","EnvironmentName"],"mappings":";;AAAA;;;;;IAOO,IAAKA,SAAAA,iBAAAA,SAAAA,SAAAA,EAAAA;;AAAAA,IAAAA,OAAAA,SAAAA;AAEX,CAAA,CAAA,EAAA;;ACTD;;;;;IAOO,MAAMC,wBAAAA,SAAiCC,KAAAA,CAAAA;IAC1C,OAAOC,uBAAAA,CAAwBC,WAAoB,EAAE;AACjD,QAAA,MAAMC,KAAAA,GAAmB;AAAC,YAAA;AAAM,SAAA;QAChC,IAAI,OAAOD,gBAAgB,QAAA,EAAU;AACjCC,YAAAA,KAAAA,CAAMC,IAAI,CAACF,WAAAA,CAAAA;AACf,QAAA;AACAC,QAAAA,KAAAA,CAAMC,IAAI,CAAC,qCAAA,CAAA;AACX,QAAA,OAAO,IAAI,IAAI,CAACD,KAAAA,CAAME,IAAI,CAAC,GAAA,CAAA,CAAA;AAC/B,IAAA;IAEA,OAAOC,uBAAAA,CAAwBJ,WAAoB,EAAE;AACjD,QAAA,MAAMC,KAAAA,GAAmB;AAAC,YAAA;AAAM,SAAA;QAChC,IAAI,OAAOD,gBAAgB,QAAA,EAAU;AACjCC,YAAAA,KAAAA,CAAMC,IAAI,CAACF,WAAAA,CAAAA;AACf,QAAA;AACAC,QAAAA,KAAAA,CAAMC,IAAI,CAAC,iCAAA,CAAA;AACX,QAAA,OAAO,IAAI,IAAI,CAACD,KAAAA,CAAME,IAAI,CAAC,GAAA,CAAA,CAAA;AAC/B,IAAA;AACJ;;ACzBA;;;;;IAOO,IAAKE,mBAAAA,iBAAAA,SAAAA,mBAAAA,EAAAA;;;;;;;AAAAA,IAAAA,OAAAA,mBAAAA;AASX,CAAA,CAAA,EAAA;AAED;AAEO,IAAA,2BAAKC,iBAAAA,SAAAA,2BAAAA,EAAAA;;;;;AAAAA,IAAAA,OAAAA,2BAAAA;AAKX,CAAA,CAAA,EAAA;AAED;AAEO,IAAA,iBAAKC,iBAAAA,SAAAA,iBAAAA,EAAAA;;;;;;;;AAAAA,IAAAA,OAAAA,iBAAAA;AAWX,CAAA,CAAA,EAAA;AAED;AAEO,IAAA,oBAAKC,iBAAAA,SAAAA,oBAAAA,EAAAA;;;;;;;;AAAAA,IAAAA,OAAAA,oBAAAA;AAWX,CAAA,CAAA,EAAA;AAED;AAEO,IAAA,kBAAKC,iBAAAA,SAAAA,kBAAAA,EAAAA;;;;;;;;AAAAA,IAAAA,OAAAA,kBAAAA;AAUX,CAAA,CAAA,EAAA;AAED;AAEO,IAAA,qBAAKC,iBAAAA,SAAAA,qBAAAA,EAAAA;;AAAAA,IAAAA,OAAAA,qBAAAA;AAEX,CAAA,CAAA,EAAA;;AC5DD;;;;;AAKC,IACM,SAASC,8BAAAA,CACZC,MAAgB,EAChBC,OAAgC,EAAA;AAEhC,IAAA,MAAMC,MAAAA,GAAqB;QACvBC,OAAAA,EAAS,KAAA;AACTC,QAAAA,OAAAA,EAAS,CAAC,qBAAqB,EAAEH,OAAAA,CAAQ,oBAAoB;AACjE,KAAA;IAEA,OAAQA,OAAAA;AACJ,QAAA,KAAKJ,mBAAmBQ,WAAW;AAAE,YAAA;gBACjC,IAAI,CAACL,MAAAA,CAAOM,oBAAoB,EAAE;AAC9BJ,oBAAAA,MAAAA,CAAOC,OAAO,GAAG,KAAA;AACjBD,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,sEAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;gBAEA,IAAI,CAACF,MAAAA,CAAOO,YAAY,EAAE;AACtBL,oBAAAA,MAAAA,CAAOC,OAAO,GAAG,IAAA;oBACjB,OAAOD,MAAAA;AACX,gBAAA;gBAEA,IACIF,MAAAA,CAAOO,YAAY,KAAKd,mBAAAA,CAAoBe,MAAM,IAClDR,MAAAA,CAAOO,YAAY,KAAKd,mBAAAA,CAAoBgB,OAAO,EACrD;AACEP,oBAAAA,MAAAA,CAAOC,OAAO,GAAG,IAAA;oBACjB,OAAOD,MAAAA;AACX,gBAAA;gBAEAA,MAAAA,CAAOE,OAAO,GAAG,CAAC,mCAAmC,EAAEJ,MAAAA,CAAOO,YAAY,CAAC,+BAA+B,CAAC;gBAC3G,OAAOL,MAAAA;AACX,YAAA;AACA,QAAA,KAAKL,mBAAmBa,UAAU;AAAE,YAAA;gBAChC,IAAI,CAACV,MAAAA,CAAOM,oBAAoB,EAAE;AAC9BJ,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,sEAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;gBAEA,IAAI,CAACF,MAAAA,CAAOO,YAAY,EAAE;AACtBL,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,sDAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;AAEA,gBAAA,IAAIF,OAAOO,YAAY,KAAKd,mBAAAA,CAAoBkB,QAAQ,IACpDX,MAAAA,CAAOO,YAAY,KAAKd,mBAAAA,CAAoBmB,OAAO,IACnDZ,MAAAA,CAAOO,YAAY,KAAKd,mBAAAA,CAAoBoB,QAAQ,EACtD;AACEX,oBAAAA,MAAAA,CAAOC,OAAO,GAAG,IAAA;oBACjB,OAAOD,MAAAA;AACX,gBAAA;gBAEAA,MAAAA,CAAOE,OAAO,GAAG,CAAC,mCAAmC,EAAEJ,MAAAA,CAAOO,YAAY,CAAC,8BAA8B,CAAC;gBAC1G,OAAOL,MAAAA;AACX,YAAA;AACA,QAAA,KAAKL,mBAAmBiB,YAAY;AAAE,YAAA;gBAClC,IAAI,CAACd,MAAAA,CAAOM,oBAAoB,EAAE;AAC9BJ,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,6EAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;gBAEA,IAAI,CAACF,MAAAA,CAAOO,YAAY,EAAE;AACtBL,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,sDAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;AAEA,gBAAA,IAAIF,MAAAA,CAAOO,YAAY,KAAKd,mBAAAA,CAAoBsB,QAAQ,EAAE;AACtDb,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,qEAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;AAEAA,gBAAAA,MAAAA,CAAOC,OAAO,GAAG,IAAA;gBACjB,OAAOD,MAAAA;AACX,YAAA;AACA,QAAA,KAAKL,mBAAmBmB,kBAAkB;AAAE,YAAA;gBACxC,IAAIhB,MAAAA,CAAOM,oBAAoB,EAAE;AAC7BJ,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,+CAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;gBAEA,IAAIF,MAAAA,CAAOO,YAAY,EAAE;AACrBL,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,0DAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;;gBAGA,IAAIF,MAAAA,CAAOiB,KAAK,GAAG,CAAA,EAAG;AAClBf,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,2CAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;gBAEA,IAAI,CAACF,MAAAA,CAAOkB,eAAe,EAAE;AACzBhB,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,kDAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;AAEAA,gBAAAA,MAAAA,CAAOC,OAAO,GAAG,IAAA;gBACjB,OAAOD,MAAAA;AACX,YAAA;AACA,QAAA,KAAKL,mBAAmBsB,oBAAoB;AAAE,YAAA;gBAC1C,IAAI,CAACnB,MAAAA,CAAOM,oBAAoB,EAAE;AAC9BJ,oBAAAA,MAAAA,CAAOE,OAAO,GAAG,iDAAA;oBACjB,OAAOF,MAAAA;AACX,gBAAA;gBAEA,IAAI,CAACF,MAAAA,CAAOO,YAAY,EAAE;AACtBL,oBAAAA,MAAAA,CAAOC,OAAO,GAAG,IAAA;oBACjB,OAAOD,MAAAA;AACX,gBAAA;AAEA,gBAAA,IACIF,OAAOO,YAAY,KAAKd,mBAAAA,CAAoBe,MAAM,IAClDR,MAAAA,CAAOO,YAAY,KAAKd,mBAAAA,CAAoBgB,OAAO,IACnDT,MAAAA,CAAOO,YAAY,KAAKd,mBAAAA,CAAoBkB,QAAQ,EACtD;AACET,oBAAAA,MAAAA,CAAOC,OAAO,GAAG,IAAA;oBACjB,OAAOD,MAAAA;AACX,gBAAA;gBAEAA,MAAAA,CAAOE,OAAO,GAAG,CAAC,mCAAmC,EAAEJ,MAAAA,CAAOO,YAAY,CAAC,6CAA6C,CAAC;gBACzH,OAAOL,MAAAA;AACX,YAAA;AACJ;IAEA,OAAOA,MAAAA;AACX;;AClJA;;;;;IAOO,IAAKkB,kBAAAA,iBAAAA,SAAAA,kBAAAA,EAAAA;;;;AAAAA,IAAAA,OAAAA,kBAAAA;AAIX,CAAA,CAAA,EAAA;;ACDM,SAASC,uBAAAA,CACZC,IAA6B,EAC7BC,EAAkB,EAAA;IAElB,OAAQD,IAAAA;AACJ,QAAA,KAAKF,mBAAmBI,IAAI;AAAE,YAAA;gBAC1B,OAAO,CAAC,oBAAoB,EAAED,EAAAA,CAAAA,CAAI;AACtC,YAAA;AACA,QAAA,KAAKH,mBAAmBK,IAAI;AAAE,YAAA;gBAC1B,OAAO,CAAC,oBAAoB,EAAEF,EAAAA,CAAAA,CAAI;AACtC,YAAA;AACA,QAAA,KAAKH,mBAAmBM,MAAM;AAAE,YAAA;gBAC5B,OAAO,CAAC,sBAAsB,EAAEH,EAAAA,CAAAA,CAAI;AACxC,YAAA;AACJ;AAEA,IAAA,MAAM,IAAII,WAAAA,CAAY,mDAAA,CAAA;AAC1B;;AC3BA;;;;;IAOO,IAAKC,2BAAAA,iBAAAA,SAAAA,2BAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,2BAAAA;AAGX,CAAA,CAAA,EAAA;AAEM,IAAA,0BAAKC,iBAAAA,SAAAA,0BAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,0BAAAA;AAGX,CAAA,CAAA,EAAA;AAED;AAEO,IAAA,qBAAKC,iBAAAA,SAAAA,qBAAAA,EAAAA;;;;;;;;AAAAA,IAAAA,OAAAA,qBAAAA;AAWX,CAAA,CAAA,EAAA;;AC9BD;;;;;IASO,SAASC,6BAAAA,CAA8BC,OAAoB,EAAA;IAC9D,OAAO,CAAC,WAAW,EAAEA,OAAAA,CAAAA,CAAS;AAClC;AAEO,SAASC,8BAA8BC,IAAY,EAAA;IACtD,OAAOA,IAAAA,CAAKC,UAAU,CAAC,aAAA,CAAA,GACnBD,KAAKE,SAAS,CAAC,aAAA,CAAcC,MAAM,CAAA,GACnCH,IAAAA;AACR;;ACjBA;;;;;IAOO,IAAKI,kBAAAA,iBAAAA,SAAAA,kBAAAA,EAAAA;;AAAAA,IAAAA,OAAAA,kBAAAA;AAEX,CAAA,CAAA,EAAA;AAEM,IAAA,oBAAKC,iBAAAA,SAAAA,oBAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,oBAAAA;AAGX,CAAA,CAAA,EAAA;;ACdD;;;;;IAOO,IAAKC,0BAAAA,iBAAAA,SAAAA,0BAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,0BAAAA;AAGX,CAAA,CAAA,EAAA;AAEM,IAAA,yBAAKC,iBAAAA,SAAAA,yBAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,yBAAAA;AAGX,CAAA,CAAA,EAAA;;ACfD;;;;;IAOO,MAAMC,wBAAAA,GAA2B;;ACPxC;;;;;IASO,SAASC,+CAAAA,CAAgD3C,MAAgB,EAAA;;IAG5E,MAAM4C,GAAAA,GAAM,CAAC,QAAQ,EAAE5C,OAAO6C,IAAI,CAAC,UAAU,CAAC;IAC9C,OAAO,CAAA,EAAG7C,MAAAA,CAAO8C,YAAY,CAAC,CAAC,EAAE9C,MAAAA,CAAO+C,cAAc,CAAC,CAAC,EAAEH,GAAAA,CAAAA,CAAK;AACnE;;ACdA;;;;;IAOO,IAAKI,mBAAAA,iBAAAA,SAAAA,mBAAAA,EAAAA;;;;;;;AAAAA,IAAAA,OAAAA,mBAAAA;AAOX,CAAA,CAAA,EAAA;;ACdD;;;;;IASO,SAASC,kCAAAA,CAAmC1B,EAA0B,EAAA;IACzE,OAAO,CAAC,iBAAiB,EAAEA,EAAAA,GAAK,CAAC,CAAC,EAAEA,EAAAA,CAAAA,CAAI,GAAG,EAAA,CAAA,CAAI;AACnD;;ACFO,SAAS2B,yBAAAA,GAAAA;AACZ,IAAA,OAAOC,YAAAA,CAAa,sCAAA,CAAA;AACxB;;ACXA;;;;;IAOO,IAAKC,QAAAA,iBAAAA,SAAAA,QAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,QAAAA;AAGX,CAAA,CAAA,EAAA;AAEM,IAAA,yBAAKC,iBAAAA,SAAAA,yBAAAA,EAAAA;;;;AAAAA,IAAAA,OAAAA,yBAAAA;AAIX,CAAA,CAAA,EAAA;AAEM,IAAA,yBAAKC,iBAAAA,SAAAA,yBAAAA,EAAAA;;;;AAAAA,IAAAA,OAAAA,yBAAAA;AAIX,CAAA,CAAA,EAAA;;ACtBD;;;;;IAOO,IAAKC,kBAAAA,iBAAAA,SAAAA,kBAAAA,EAAAA;;;;;;AAAAA,IAAAA,OAAAA,kBAAAA;AAOX,CAAA,CAAA,EAAA;AAED;;IAGO,MAAMC,8BAAAA,GAAiC;AAE9C;;IAGO,MAAMC,8BAAAA,GAAiC;AAE9C;;IAGO,MAAMC,kCAAAA,GAAqC;AAElD;;IAGO,MAAMC,4BAAAA,GAA+B;AAE5C;;IAGO,MAAMC,0BAAAA,GAA6B;;ACvC1C;;;;;IAOO,IAAKC,uBAAAA,iBAAAA,SAAAA,uBAAAA,EAAAA;;;;;AAAAA,IAAAA,OAAAA,uBAAAA;AAMX,CAAA,CAAA,EAAA;;ACbD;;;;;IAOO,IAAKC,SAAAA,iBAAAA,SAAAA,SAAAA,EAAAA;;;;;AAAAA,IAAAA,OAAAA,SAAAA;AAMX,CAAA,CAAA,EAAA;;ACbD;;;;;IAOO,IAAKC,yBAAAA,iBAAAA,SAAAA,yBAAAA,EAAAA;;AAAAA,IAAAA,OAAAA,yBAAAA;AAEX,CAAA,CAAA,EAAA;;ACTD;;;;;IAOO,IAAKC,UAAAA,iBAAAA,SAAAA,UAAAA,EAAAA;;;;;;;;;;;;;;;;AAAAA,IAAAA,OAAAA,UAAAA;AAgBX,CAAA,CAAA,EAAA;AAEM,IAAA,aAAKC,iBAAAA,SAAAA,aAAAA,EAAAA;;;;;AAAAA,IAAAA,OAAAA,aAAAA;AAKX,CAAA,CAAA,EAAA;AAEM,IAAA,eAAKC,iBAAAA,SAAAA,eAAAA,EAAAA;;;;AAAAA,IAAAA,OAAAA,eAAAA;AAIX,CAAA,CAAA,EAAA;AAEM,IAAA,2BAAKC,iBAAAA,SAAAA,2BAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,2BAAAA;AAGX,CAAA,CAAA,EAAA;;ACzCD;;;;;AAKC;AAKM,SAASC,sBAAAA,CAAuBC,MAAc,EAAE9C,EAAoB,EAAA;AACvE,IAAA,IAAI,OAAOA,EAAAA,KAAO,QAAA,IAAY,OAAOA,OAAO,QAAA,EAAU;AAClD,QAAA,OAAO,CAAA,EAAG8C,MAAAA,CAAO,CAAC,EAAE9C,EAAAA,CAAAA,CAAI;AAC5B,IAAA;IAEA,OAAO8C,MAAAA;AACX;AAEA;AACO,SAASC,yBAAyB/C,EAAoB,EAAA;AACzD,IAAA,OAAOA,EAAAA,GACH,CAAC,CAAC,EAAEgD,oBAAAA,CAAqB,CAAC,EAAEhD,EAAAA,CAAAA,CAAI,GAChC,CAAC,CAAC,EAAEgD,oBAAAA,CAAAA,CAAsB;AAClC;;ACvBA;;;;;IAOO,IAAKC,eAAAA,iBAAAA,SAAAA,eAAAA,EAAAA;;;;AAAAA,IAAAA,OAAAA,eAAAA;AAIX,CAAA,CAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/error/constants.ts","../src/error/entities/connection-string.ts","../src/domains/analysis/error.ts","../src/domains/analysis/constants.ts","../src/domains/analysis/helpers.ts","../src/domains/analysis-bucket/constants.ts","../src/domains/analysis-bucket/utils.ts","../src/domains/analysis-node/constants.ts","../src/domains/realm/socket.ts","../src/domains/master-image/constants.ts","../src/domains/project-node/constants.ts","../src/domains/registry/constants.ts","../src/domains/registry/utils.ts","../src/domains/registry-project/constants.ts","../src/domains/registry-project/socket.ts","../src/domains/registry-project/utils.ts","../src/domains/node/constants.ts","../src/domains/service/registry/constants.ts","../src/domains/service/secret-engine/constants.ts","../src/domains/service/constants.ts","../src/domains/service/station-registry/constants.ts","../src/domains/constants.ts","../src/domains/utils.ts","../src/constants.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ErrorCode {\n LICENSE_AGREEMENT = 'license_agreement',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport class APIConnectionStringError extends Error {\n static connectionStringMissing(serviceName?: string) {\n const parts : string[] = ['The'];\n if (typeof serviceName === 'string') {\n parts.push(serviceName);\n }\n parts.push('connection string is not specified.');\n return new this(parts.join(' '));\n }\n\n static connectionStringInvalid(serviceName?: string) {\n const parts : string[] = ['The'];\n if (typeof serviceName === 'string') {\n parts.push(serviceName);\n }\n parts.push('connection string is not valid.');\n return new this(parts.join(' '));\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport class AnalysisError extends Error {\n static defaultNodeRequired() {\n return new AnalysisError('At least one default node must be selected.');\n }\n\n static aggregatorNodeRequired() {\n return new AnalysisError('An aggregator node node must be selected.');\n }\n\n static entrypointRequired() {\n return new AnalysisError('An entrypoint must be selected.');\n }\n\n static imageAssignmentRequired() {\n return new AnalysisError('A master image must be assigned to the analysis.');\n }\n\n static configurationLocked() {\n return new AnalysisError('The analysis configuration is locked.');\n }\n\n static buildInitialized() {\n return new AnalysisError('The analysis build process has already been initialized.');\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisBuildStatus {\n STARTING = 'starting', // ui trigger\n STARTED = 'started', // tb trigger\n\n STOPPING = 'stopping', // ui trigger\n STOPPED = 'stopped', // tb trigger\n\n FINISHED = 'finished', // tb trigger\n FAILED = 'failed', // tb trigger\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisConfigurationStatus {\n NODES = 'nodes',\n MASTER_IMAGE = 'masterImage',\n FILES = 'files',\n FINISHED = 'finished',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisRunStatus {\n STARTING = 'starting',\n STARTED = 'started',\n\n RUNNING = 'running',\n\n STOPPING = 'stopping',\n STOPPED = 'stopped',\n\n FINISHED = 'finished',\n FAILED = 'failed',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisResultStatus {\n STARTED = 'started',\n\n DOWNLOADING = 'downloading',\n DOWNLOADED = 'downloaded',\n\n PROCESSING = 'extracting',\n PROCESSED = 'extracted',\n\n FINISHED = 'finished',\n FAILED = 'failed',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisAPICommand {\n SPIN_UP = 'spinUp',\n TEAR_DOWN = 'tearDown',\n\n BUILD_START = 'buildStart',\n BUILD_STOP = 'buildStop',\n BUILD_STATUS = 'buildStatus',\n\n CONFIGURATION_LOCK = 'configurationLock',\n CONFIGURATION_UNLOCK = 'configurationUnlock',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisContainerPath {\n CODE = '/opt/code/',\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { AnalysisAPICommand, AnalysisBuildStatus } from './constants';\nimport type { Analysis } from './entity';\nimport { AnalysisError } from './error';\n\ntype CanResult = {\n success: boolean,\n message: string,\n};\n\n/**\n * Check if an analysis can be build based on analysis attributes (build_status, configuration_locked, ...)\n *\n * @param entity\n * @param command\n */\nexport function isAnalysisAPICommandExecutable(\n entity: Analysis,\n command: `${AnalysisAPICommand}`,\n) : CanResult {\n const output : CanResult = {\n success: false,\n message: `The analysis command ${command} cannot be executed.`,\n };\n\n switch (command) {\n case AnalysisAPICommand.BUILD_START: {\n if (!entity.configuration_locked) {\n output.success = false;\n output.message = 'The analysis configuration must be locked before starting the build.';\n return output;\n }\n\n if (!entity.build_status) {\n output.success = true;\n return output;\n }\n\n if (\n entity.build_status === AnalysisBuildStatus.FAILED ||\n entity.build_status === AnalysisBuildStatus.STOPPED\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow a build start.`;\n return output;\n }\n case AnalysisAPICommand.BUILD_STOP: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration must be locked before stopping the build.';\n return output;\n }\n\n if (!entity.build_status) {\n output.message = 'The analysis build process has not been initialized.';\n return output;\n }\n\n if (entity.build_status === AnalysisBuildStatus.STOPPING ||\n entity.build_status === AnalysisBuildStatus.STARTED ||\n entity.build_status === AnalysisBuildStatus.STARTING\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow a build stop.`;\n return output;\n }\n case AnalysisAPICommand.BUILD_STATUS: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration must be locked before checking the build status.';\n return output;\n }\n\n if (!entity.build_status) {\n output.message = 'The analysis build process has not been initialized.';\n return output;\n }\n\n if (entity.build_status === AnalysisBuildStatus.FINISHED) {\n output.message = 'The analysis build process has already been successfully completed.';\n return output;\n }\n\n output.success = true;\n return output;\n }\n case AnalysisAPICommand.CONFIGURATION_LOCK: {\n if (entity.configuration_locked) {\n const error = AnalysisError.configurationLocked();\n output.message = error.message;\n return output;\n }\n\n if (entity.build_status) {\n const error = AnalysisError.buildInitialized();\n output.message = error.message;\n return output;\n }\n\n if (!entity.configuration_node_default_valid) {\n const error = AnalysisError.defaultNodeRequired();\n output.message = error.message;\n return output;\n }\n\n if (!entity.configuration_node_aggregator_valid) {\n const error = AnalysisError.aggregatorNodeRequired();\n output.message = error.message;\n return output;\n }\n\n if (!entity.configuration_entrypoint_valid) {\n const error = AnalysisError.entrypointRequired();\n output.message = error.message;\n return output;\n }\n\n if (!entity.configuration_image_valid) {\n const error = AnalysisError.imageAssignmentRequired();\n output.message = error.message;\n return output;\n }\n\n output.success = true;\n return output;\n }\n case AnalysisAPICommand.CONFIGURATION_UNLOCK: {\n if (!entity.configuration_locked) {\n output.message = 'The analysis configuration is already unlocked.';\n return output;\n }\n\n if (!entity.build_status) {\n output.success = true;\n return output;\n }\n\n if (\n entity.build_status === AnalysisBuildStatus.FAILED ||\n entity.build_status === AnalysisBuildStatus.STOPPED ||\n entity.build_status === AnalysisBuildStatus.STOPPING\n ) {\n output.success = true;\n return output;\n }\n\n output.message = `The current analysis build status \"${entity.build_status}\" does not allow unlocking the configuration.`;\n return output;\n }\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisBucketType {\n CODE = 'CODE',\n RESULT = 'RESULT',\n TEMP = 'TEMP',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Analysis } from '../analysis';\nimport { AnalysisBucketType } from './constants';\n\nexport function buildAnalysisBucketName(\n type: `${AnalysisBucketType}`,\n id: Analysis['id'],\n) {\n switch (type) {\n case AnalysisBucketType.CODE: {\n return `analysis-code-files.${id}`;\n }\n case AnalysisBucketType.TEMP: {\n return `analysis-temp-files.${id}`;\n }\n case AnalysisBucketType.RESULT: {\n return `analysis-result-files.${id}`;\n }\n }\n\n throw new SyntaxError('The argument can only have any bucket type value.');\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum AnalysisNodeApprovalCommand {\n APPROVE = 'approve',\n REJECT = 'reject',\n}\n\nexport enum AnalysisNodeApprovalStatus {\n REJECTED = 'rejected',\n APPROVED = 'approved',\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisNodeRunStatus {\n STARTING = 'starting',\n STARTED = 'started',\n\n STOPPING = 'stopping',\n STOPPED = 'stopped',\n\n RUNNING = 'running',\n FINISHED = 'finished',\n\n FAILED = 'failed',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Realm } from '@authup/core-kit';\n\nexport function buildSocketRealmNamespaceName(realmId: Realm['id']) {\n return `/resources#${realmId}`;\n}\n\nexport function parseSocketRealmNamespaceName(name: string) : string | undefined {\n return name.startsWith('/resources#') ?\n name.substring('/resources#'.length) :\n name;\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum MasterImageCommand {\n SYNC = 'sync',\n}\n\nexport enum MasterImageGroupType {\n LANGUAGE = 'language',\n DEFAULT = 'default',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ProjectNodeApprovalCommand {\n APPROVE = 'approve',\n REJECT = 'reject',\n}\n\nexport enum ProjectNodeApprovalStatus {\n REJECTED = 'rejected',\n APPROVED = 'approved',\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport const registryRobotSecretRegex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d).{8,}$/;\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Registry } from './entity';\n\nexport function buildRegistryClientConnectionStringFromRegistry(entity: Registry) {\n // todo: support other registries beside harbor and v2.0\n\n const url = `https://${entity.host}/api/v2.0/`;\n return `${entity.account_name}:${entity.account_secret}@${url}`;\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RegistryProjectType {\n DEFAULT = 'default',\n AGGREGATOR = 'aggregator',\n INCOMING = 'incoming',\n OUTGOING = 'outgoing',\n MASTER_IMAGES = 'masterImages',\n NODE = 'node',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RegistryProject } from './entity';\n\nexport function buildSocketRegistryProjectRoomName(id?: RegistryProject['id']) {\n return `registry-projects${id ? `#${id}` : ''}`;\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createNanoID } from '@privateaim/kit';\n\nexport function generateRegistryProjectId() {\n return createNanoID('0123456789abcdefghijklmnopqrstuvwxyz');\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum NodeType {\n AGGREGATOR = 'aggregator',\n DEFAULT = 'default',\n}\n\nexport enum NodeSocketClientEventName {\n CONNECT = 'nodeConnect',\n DISCONNECT = 'nodeDisconnect',\n MESSAGE = 'nodeMessage',\n}\n\nexport enum NodeSocketServerEventName {\n CONNECTED = 'nodeConnected',\n DISCONNECTED = 'nodeDisconnected',\n MESSAGE = 'nodeMessage',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum RegistryAPICommand {\n SETUP = 'setup',\n CLEANUP = 'cleanup',\n DELETE = 'delete',\n\n PROJECT_LINK = 'projectLink',\n PROJECT_UNLINK = 'projectUnlink',\n}\n\n/**\n * Incoming train project name\n */\nexport const REGISTRY_INCOMING_PROJECT_NAME = 'incoming';\n\n/**\n * Outgoing train project name\n */\nexport const REGISTRY_OUTGOING_PROJECT_NAME = 'outgoing';\n\n/**\n * Master Image project name\n */\nexport const REGISTRY_MASTER_IMAGE_PROJECT_NAME = 'master';\n\n/**\n * Latest image tag\n */\nexport const REGISTRY_ARTIFACT_TAG_LATEST = 'latest';\n\n/**\n * base image tag\n */\nexport const REGISTRY_ARTIFACT_TAG_BASE = 'base';\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum SecretStorageAPICommand {\n ENGINE_CREATE = 'engineCreate',\n\n ENGINE_KEY_SAVE = 'engineKeySave',\n ENGINE_KEY_PULL = 'engineKeyPull',\n ENGINE_KEY_DROP = 'engineKeyDrop',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ServiceID {\n // Core Service(s)\n SYSTEM = 'system',\n\n // Third Party Service(s)\n REGISTRY = 'registry',\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum StationRegistryAPICommand {\n SYNC = 'sync',\n}\n","/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum DomainType {\n MASTER_IMAGE = 'masterImage',\n MASTER_IMAGE_GROUP = 'masterImageGroup',\n PROJECT = 'project',\n PROJECT_NODE = 'projectNode',\n REGISTRY = 'registry',\n REGISTRY_PROJECT = 'registryProject',\n NODE = 'node',\n ANALYSIS = 'analysis',\n ANALYSIS_BUCKET = 'analysisBucket',\n ANALYSIS_BUCKET_FILE = 'analysisBucketFile',\n ANALYSIS_LOG = 'analysisLog',\n ANALYSIS_NODE = 'analysisNode',\n ANALYSIS_NODE_EVENT = 'analysisNodeEvent',\n ANALYSIS_NODE_LOG = 'analysisNodeLog',\n ANALYSIS_PERMISSION = 'analysisPermission',\n}\n\nexport enum DomainSubType {\n PROJECT_NODE_IN = 'projectNodeIn',\n PROJECT_NODE_OUT = 'projectNodeOut',\n ANALYSIS_NODE_IN = 'analysisNodeIn',\n ANALYSIS_NODE_OUT = 'analysisNodeOut',\n}\n\nexport enum DomainEventName {\n CREATED = 'created',\n DELETED = 'deleted',\n UPDATED = 'updated',\n}\n\nexport enum DomainEventSubscriptionName {\n SUBSCRIBE = 'subscribe',\n UNSUBSCRIBE = 'unsubscribe',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\n// todo: rename to buildEntityChannelName\nimport { DomainEventNamespace } from '@privateaim/kit';\n\nexport function buildDomainChannelName(domain: string, id?: string | number) {\n if (typeof id === 'string' || typeof id === 'number') {\n return `${domain}/${id}`;\n }\n\n return domain;\n}\n\n// todo: rename to buildEntityNamespaceName\nexport function buildDomainNamespaceName(id?: string | number) {\n return id ?\n `/${DomainEventNamespace}/${id}` :\n `/${DomainEventNamespace}`;\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum EnvironmentName {\n TEST = 'test',\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n}\n"],"names":["ErrorCode","APIConnectionStringError","Error","connectionStringMissing","serviceName","parts","push","join","connectionStringInvalid","AnalysisError","defaultNodeRequired","aggregatorNodeRequired","entrypointRequired","imageAssignmentRequired","configurationLocked","buildInitialized","AnalysisBuildStatus","AnalysisConfigurationStatus","AnalysisRunStatus","AnalysisResultStatus","AnalysisAPICommand","AnalysisContainerPath","isAnalysisAPICommandExecutable","entity","command","output","success","message","BUILD_START","configuration_locked","build_status","FAILED","STOPPED","BUILD_STOP","STOPPING","STARTED","STARTING","BUILD_STATUS","FINISHED","CONFIGURATION_LOCK","error","configuration_node_default_valid","configuration_node_aggregator_valid","configuration_entrypoint_valid","configuration_image_valid","CONFIGURATION_UNLOCK","AnalysisBucketType","buildAnalysisBucketName","type","id","CODE","TEMP","RESULT","SyntaxError","AnalysisNodeApprovalCommand","AnalysisNodeApprovalStatus","AnalysisNodeRunStatus","buildSocketRealmNamespaceName","realmId","parseSocketRealmNamespaceName","name","startsWith","substring","length","MasterImageCommand","MasterImageGroupType","ProjectNodeApprovalCommand","ProjectNodeApprovalStatus","registryRobotSecretRegex","buildRegistryClientConnectionStringFromRegistry","url","host","account_name","account_secret","RegistryProjectType","buildSocketRegistryProjectRoomName","generateRegistryProjectId","createNanoID","NodeType","NodeSocketClientEventName","NodeSocketServerEventName","RegistryAPICommand","REGISTRY_INCOMING_PROJECT_NAME","REGISTRY_OUTGOING_PROJECT_NAME","REGISTRY_MASTER_IMAGE_PROJECT_NAME","REGISTRY_ARTIFACT_TAG_LATEST","REGISTRY_ARTIFACT_TAG_BASE","SecretStorageAPICommand","ServiceID","StationRegistryAPICommand","DomainType","DomainSubType","DomainEventName","DomainEventSubscriptionName","buildDomainChannelName","domain","buildDomainNamespaceName","DomainEventNamespace","EnvironmentName"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@privateaim/core-kit",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.21",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"exports": {
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@authup/core-kit": "^1.0.0-beta.27",
|
|
30
|
-
"@privateaim/kit": "^0.8.
|
|
31
|
-
"@privateaim/telemetry-kit": "^0.8.
|
|
30
|
+
"@privateaim/kit": "^0.8.21",
|
|
31
|
+
"@privateaim/telemetry-kit": "^0.8.21"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@authup/core-kit": "^1.0.0-beta.27",
|
|
35
|
-
"@privateaim/kit": "^0.8.
|
|
36
|
-
"@privateaim/telemetry-kit": "^0.8.
|
|
35
|
+
"@privateaim/kit": "^0.8.21",
|
|
36
|
+
"@privateaim/telemetry-kit": "^0.8.21"
|
|
37
37
|
},
|
|
38
38
|
"gitHead": "5d3b6f4ce1edf2383bdfbf66e913a08c8a3a2e40",
|
|
39
39
|
"publishConfig": {
|
|
@@ -27,17 +27,51 @@ export interface Analysis {
|
|
|
27
27
|
|
|
28
28
|
configuration_locked: boolean;
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* A root code bucket file is linked for the analysis.
|
|
32
|
+
*/
|
|
33
|
+
configuration_entrypoint_valid : boolean;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Master image is assigned.
|
|
37
|
+
*/
|
|
38
|
+
configuration_image_valid: boolean;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* One or more default nodes are assigned.
|
|
42
|
+
*/
|
|
43
|
+
configuration_node_default_valid: boolean;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* An aggregator is assigned.
|
|
47
|
+
*/
|
|
48
|
+
configuration_node_aggregator_valid: boolean;
|
|
31
49
|
|
|
32
50
|
/**
|
|
33
|
-
*
|
|
51
|
+
* A default node as well an aggregator node is assigned.
|
|
34
52
|
*/
|
|
53
|
+
configuration_nodes_valid: boolean;
|
|
54
|
+
|
|
55
|
+
// ------------------------------------------------------------------
|
|
56
|
+
|
|
35
57
|
build_status: AnalysisBuildStatus | null;
|
|
36
58
|
|
|
37
59
|
// ------------------------------------------------------------------
|
|
38
60
|
|
|
61
|
+
/**
|
|
62
|
+
* todo: add distribution_status
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
// ------------------------------------------------------------------
|
|
66
|
+
/**
|
|
67
|
+
* todo: rename to execution_status
|
|
68
|
+
*/
|
|
39
69
|
run_status: AnalysisRunStatus | null;
|
|
40
70
|
|
|
71
|
+
/**
|
|
72
|
+
* todo: add execution_progress
|
|
73
|
+
*/
|
|
74
|
+
|
|
41
75
|
// ------------------------------------------------------------------
|
|
42
76
|
|
|
43
77
|
created_at: Date;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025.
|
|
3
|
+
* Author Peter Placzek (tada5hi)
|
|
4
|
+
* For the full copyright and license information,
|
|
5
|
+
* view the LICENSE file that was distributed with this source code.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export class AnalysisError extends Error {
|
|
9
|
+
static defaultNodeRequired() {
|
|
10
|
+
return new AnalysisError('At least one default node must be selected.');
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
static aggregatorNodeRequired() {
|
|
14
|
+
return new AnalysisError('An aggregator node node must be selected.');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static entrypointRequired() {
|
|
18
|
+
return new AnalysisError('An entrypoint must be selected.');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static imageAssignmentRequired() {
|
|
22
|
+
return new AnalysisError('A master image must be assigned to the analysis.');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static configurationLocked() {
|
|
26
|
+
return new AnalysisError('The analysis configuration is locked.');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static buildInitialized() {
|
|
30
|
+
return new AnalysisError('The analysis build process has already been initialized.');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { AnalysisAPICommand, AnalysisBuildStatus } from './constants';
|
|
9
9
|
import type { Analysis } from './entity';
|
|
10
|
+
import { AnalysisError } from './error';
|
|
10
11
|
|
|
11
12
|
type CanResult = {
|
|
12
13
|
success: boolean,
|
|
@@ -95,23 +96,38 @@ export function isAnalysisAPICommandExecutable(
|
|
|
95
96
|
}
|
|
96
97
|
case AnalysisAPICommand.CONFIGURATION_LOCK: {
|
|
97
98
|
if (entity.configuration_locked) {
|
|
98
|
-
|
|
99
|
+
const error = AnalysisError.configurationLocked();
|
|
100
|
+
output.message = error.message;
|
|
99
101
|
return output;
|
|
100
102
|
}
|
|
101
103
|
|
|
102
104
|
if (entity.build_status) {
|
|
103
|
-
|
|
105
|
+
const error = AnalysisError.buildInitialized();
|
|
106
|
+
output.message = error.message;
|
|
104
107
|
return output;
|
|
105
108
|
}
|
|
106
109
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
output.message =
|
|
110
|
+
if (!entity.configuration_node_default_valid) {
|
|
111
|
+
const error = AnalysisError.defaultNodeRequired();
|
|
112
|
+
output.message = error.message;
|
|
110
113
|
return output;
|
|
111
114
|
}
|
|
112
115
|
|
|
113
|
-
if (!entity.
|
|
114
|
-
|
|
116
|
+
if (!entity.configuration_node_aggregator_valid) {
|
|
117
|
+
const error = AnalysisError.aggregatorNodeRequired();
|
|
118
|
+
output.message = error.message;
|
|
119
|
+
return output;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (!entity.configuration_entrypoint_valid) {
|
|
123
|
+
const error = AnalysisError.entrypointRequired();
|
|
124
|
+
output.message = error.message;
|
|
125
|
+
return output;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (!entity.configuration_image_valid) {
|
|
129
|
+
const error = AnalysisError.imageAssignmentRequired();
|
|
130
|
+
output.message = error.message;
|
|
115
131
|
return output;
|
|
116
132
|
}
|
|
117
133
|
|