@privateaim/core-kit 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/CHANGELOG.md +125 -0
  2. package/LICENSE +202 -0
  3. package/README.md +5 -0
  4. package/dist/constants.d.ts +6 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/domains/analysis/constants.d.ts +47 -0
  7. package/dist/domains/analysis/constants.d.ts.map +1 -0
  8. package/dist/domains/analysis/entity.d.ts +30 -0
  9. package/dist/domains/analysis/entity.d.ts.map +1 -0
  10. package/dist/domains/analysis/index.d.ts +3 -0
  11. package/dist/domains/analysis/index.d.ts.map +1 -0
  12. package/dist/domains/analysis-bucket/constants.d.ts +6 -0
  13. package/dist/domains/analysis-bucket/constants.d.ts.map +1 -0
  14. package/dist/domains/analysis-bucket/entity.d.ts +20 -0
  15. package/dist/domains/analysis-bucket/entity.d.ts.map +1 -0
  16. package/dist/domains/analysis-bucket/index.d.ts +4 -0
  17. package/dist/domains/analysis-bucket/index.d.ts.map +1 -0
  18. package/dist/domains/analysis-bucket/utils.d.ts +4 -0
  19. package/dist/domains/analysis-bucket/utils.d.ts.map +1 -0
  20. package/dist/domains/analysis-bucket-file/entity.d.ts +25 -0
  21. package/dist/domains/analysis-bucket-file/entity.d.ts.map +1 -0
  22. package/dist/domains/analysis-bucket-file/index.d.ts +2 -0
  23. package/dist/domains/analysis-bucket-file/index.d.ts.map +1 -0
  24. package/dist/domains/analysis-log/entity.d.ts +50 -0
  25. package/dist/domains/analysis-log/entity.d.ts.map +1 -0
  26. package/dist/domains/analysis-log/index.d.ts +2 -0
  27. package/dist/domains/analysis-log/index.d.ts.map +1 -0
  28. package/dist/domains/analysis-node/constants.d.ts +20 -0
  29. package/dist/domains/analysis-node/constants.d.ts.map +1 -0
  30. package/dist/domains/analysis-node/entity.d.ts +35 -0
  31. package/dist/domains/analysis-node/entity.d.ts.map +1 -0
  32. package/dist/domains/analysis-node/index.d.ts +3 -0
  33. package/dist/domains/analysis-node/index.d.ts.map +1 -0
  34. package/dist/domains/constants.d.ts +31 -0
  35. package/dist/domains/constants.d.ts.map +1 -0
  36. package/dist/domains/index.d.ts +20 -0
  37. package/dist/domains/index.d.ts.map +1 -0
  38. package/dist/domains/master-image/constants.d.ts +8 -0
  39. package/dist/domains/master-image/constants.d.ts.map +1 -0
  40. package/dist/domains/master-image/entity.d.ts +18 -0
  41. package/dist/domains/master-image/entity.d.ts.map +1 -0
  42. package/dist/domains/master-image/index.d.ts +3 -0
  43. package/dist/domains/master-image/index.d.ts.map +1 -0
  44. package/dist/domains/master-image-group/entity.d.ts +17 -0
  45. package/dist/domains/master-image-group/entity.d.ts.map +1 -0
  46. package/dist/domains/master-image-group/index.d.ts +2 -0
  47. package/dist/domains/master-image-group/index.d.ts.map +1 -0
  48. package/dist/domains/node/constants.d.ts +15 -0
  49. package/dist/domains/node/constants.d.ts.map +1 -0
  50. package/dist/domains/node/entity.d.ts +27 -0
  51. package/dist/domains/node/entity.d.ts.map +1 -0
  52. package/dist/domains/node/index.d.ts +3 -0
  53. package/dist/domains/node/index.d.ts.map +1 -0
  54. package/dist/domains/permission/constants.d.ts +88 -0
  55. package/dist/domains/permission/constants.d.ts.map +1 -0
  56. package/dist/domains/permission/index.d.ts +2 -0
  57. package/dist/domains/permission/index.d.ts.map +1 -0
  58. package/dist/domains/project/entity.d.ts +20 -0
  59. package/dist/domains/project/entity.d.ts.map +1 -0
  60. package/dist/domains/project/index.d.ts +2 -0
  61. package/dist/domains/project/index.d.ts.map +1 -0
  62. package/dist/domains/project-node/constants.d.ts +9 -0
  63. package/dist/domains/project-node/constants.d.ts.map +1 -0
  64. package/dist/domains/project-node/entity.d.ts +24 -0
  65. package/dist/domains/project-node/entity.d.ts.map +1 -0
  66. package/dist/domains/project-node/index.d.ts +3 -0
  67. package/dist/domains/project-node/index.d.ts.map +1 -0
  68. package/dist/domains/realm/index.d.ts +2 -0
  69. package/dist/domains/realm/index.d.ts.map +1 -0
  70. package/dist/domains/realm/socket.d.ts +4 -0
  71. package/dist/domains/realm/socket.d.ts.map +1 -0
  72. package/dist/domains/registry/constants.d.ts +2 -0
  73. package/dist/domains/registry/constants.d.ts.map +1 -0
  74. package/dist/domains/registry/entity.d.ts +16 -0
  75. package/dist/domains/registry/entity.d.ts.map +1 -0
  76. package/dist/domains/registry/index.d.ts +4 -0
  77. package/dist/domains/registry/index.d.ts.map +1 -0
  78. package/dist/domains/registry/utils.d.ts +3 -0
  79. package/dist/domains/registry/utils.d.ts.map +1 -0
  80. package/dist/domains/registry-project/constants.d.ts +9 -0
  81. package/dist/domains/registry-project/constants.d.ts.map +1 -0
  82. package/dist/domains/registry-project/entity.d.ts +28 -0
  83. package/dist/domains/registry-project/entity.d.ts.map +1 -0
  84. package/dist/domains/registry-project/index.d.ts +5 -0
  85. package/dist/domains/registry-project/index.d.ts.map +1 -0
  86. package/dist/domains/registry-project/socket.d.ts +3 -0
  87. package/dist/domains/registry-project/socket.d.ts.map +1 -0
  88. package/dist/domains/registry-project/utils.d.ts +2 -0
  89. package/dist/domains/registry-project/utils.d.ts.map +1 -0
  90. package/dist/domains/service/constants.d.ts +5 -0
  91. package/dist/domains/service/constants.d.ts.map +1 -0
  92. package/dist/domains/service/index.d.ts +5 -0
  93. package/dist/domains/service/index.d.ts.map +1 -0
  94. package/dist/domains/service/registry/constants.d.ts +28 -0
  95. package/dist/domains/service/registry/constants.d.ts.map +1 -0
  96. package/dist/domains/service/registry/index.d.ts +2 -0
  97. package/dist/domains/service/registry/index.d.ts.map +1 -0
  98. package/dist/domains/service/secret-engine/constants.d.ts +7 -0
  99. package/dist/domains/service/secret-engine/constants.d.ts.map +1 -0
  100. package/dist/domains/service/secret-engine/index.d.ts +3 -0
  101. package/dist/domains/service/secret-engine/index.d.ts.map +1 -0
  102. package/dist/domains/service/secret-engine/type.d.ts +3 -0
  103. package/dist/domains/service/secret-engine/type.d.ts.map +1 -0
  104. package/dist/domains/service/station-registry/constants.d.ts +4 -0
  105. package/dist/domains/service/station-registry/constants.d.ts.map +1 -0
  106. package/dist/domains/service/station-registry/index.d.ts +2 -0
  107. package/dist/domains/service/station-registry/index.d.ts.map +1 -0
  108. package/dist/domains/types-base.d.ts +11 -0
  109. package/dist/domains/types-base.d.ts.map +1 -0
  110. package/dist/domains/types.d.ts +20 -0
  111. package/dist/domains/types.d.ts.map +1 -0
  112. package/dist/domains/utils.d.ts +7 -0
  113. package/dist/domains/utils.d.ts.map +1 -0
  114. package/dist/error/constants.d.ts +4 -0
  115. package/dist/error/constants.d.ts.map +1 -0
  116. package/dist/error/entities/connection-string.d.ts +5 -0
  117. package/dist/error/entities/connection-string.d.ts.map +1 -0
  118. package/dist/error/entities/index.d.ts +2 -0
  119. package/dist/error/entities/index.d.ts.map +1 -0
  120. package/dist/error/index.d.ts +3 -0
  121. package/dist/error/index.d.ts.map +1 -0
  122. package/dist/index.cjs +488 -0
  123. package/dist/index.cjs.map +1 -0
  124. package/dist/index.d.ts +4 -0
  125. package/dist/index.d.ts.map +1 -0
  126. package/dist/index.mjs +469 -0
  127. package/dist/index.mjs.map +1 -0
  128. package/package.json +40 -0
  129. package/rollup.config.mjs +19 -0
  130. package/src/constants.ts +12 -0
  131. package/src/domains/analysis/constants.ts +78 -0
  132. package/src/domains/analysis/entity.ts +72 -0
  133. package/src/domains/analysis/index.ts +9 -0
  134. package/src/domains/analysis-bucket/constants.ts +12 -0
  135. package/src/domains/analysis-bucket/entity.ts +41 -0
  136. package/src/domains/analysis-bucket/index.ts +10 -0
  137. package/src/domains/analysis-bucket/utils.ts +28 -0
  138. package/src/domains/analysis-bucket-file/entity.ts +55 -0
  139. package/src/domains/analysis-bucket-file/index.ts +8 -0
  140. package/src/domains/analysis-log/entity.ts +78 -0
  141. package/src/domains/analysis-log/index.ts +8 -0
  142. package/src/domains/analysis-node/constants.ts +33 -0
  143. package/src/domains/analysis-node/entity.ts +65 -0
  144. package/src/domains/analysis-node/index.ts +9 -0
  145. package/src/domains/constants.ts +40 -0
  146. package/src/domains/index.ts +26 -0
  147. package/src/domains/master-image/constants.ts +15 -0
  148. package/src/domains/master-image/entity.ts +36 -0
  149. package/src/domains/master-image/index.ts +8 -0
  150. package/src/domains/master-image-group/entity.ts +34 -0
  151. package/src/domains/master-image-group/index.ts +7 -0
  152. package/src/domains/node/constants.ts +23 -0
  153. package/src/domains/node/entity.ts +56 -0
  154. package/src/domains/node/index.ts +9 -0
  155. package/src/domains/permission/constants.ts +46 -0
  156. package/src/domains/permission/index.ts +8 -0
  157. package/src/domains/project/entity.ts +40 -0
  158. package/src/domains/project/index.ts +8 -0
  159. package/src/domains/project-node/constants.ts +16 -0
  160. package/src/domains/project-node/entity.ts +46 -0
  161. package/src/domains/project-node/index.ts +9 -0
  162. package/src/domains/realm/index.ts +8 -0
  163. package/src/domains/realm/socket.ts +18 -0
  164. package/src/domains/registry/constants.ts +8 -0
  165. package/src/domains/registry/entity.ts +34 -0
  166. package/src/domains/registry/index.ts +10 -0
  167. package/src/domains/registry/utils.ts +15 -0
  168. package/src/domains/registry-project/constants.ts +15 -0
  169. package/src/domains/registry-project/entity.ts +64 -0
  170. package/src/domains/registry-project/index.ts +11 -0
  171. package/src/domains/registry-project/socket.ts +12 -0
  172. package/src/domains/registry-project/utils.ts +12 -0
  173. package/src/domains/service/constants.ts +14 -0
  174. package/src/domains/service/index.ts +11 -0
  175. package/src/domains/service/registry/constants.ts +40 -0
  176. package/src/domains/service/registry/index.ts +8 -0
  177. package/src/domains/service/secret-engine/constants.ts +14 -0
  178. package/src/domains/service/secret-engine/index.ts +9 -0
  179. package/src/domains/service/secret-engine/type.ts +10 -0
  180. package/src/domains/service/station-registry/constants.ts +10 -0
  181. package/src/domains/service/station-registry/index.ts +8 -0
  182. package/src/domains/types-base.ts +21 -0
  183. package/src/domains/types.ts +98 -0
  184. package/src/domains/utils.ts +41 -0
  185. package/src/error/constants.ts +10 -0
  186. package/src/error/entities/connection-string.ts +26 -0
  187. package/src/error/entities/index.ts +8 -0
  188. package/src/error/index.ts +9 -0
  189. package/src/index.ts +10 -0
  190. package/tsconfig.build.json +11 -0
  191. package/tsconfig.json +10 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,488 @@
1
+ 'use strict';
2
+
3
+ var coreKit = require('@authup/core-kit');
4
+ var kit = require('@privateaim/kit');
5
+
6
+ /*
7
+ * Copyright (c) 2022-2024.
8
+ * Author Peter Placzek (tada5hi)
9
+ * For the full copyright and license information,
10
+ * view the LICENSE file that was distributed with this source code.
11
+ */ exports.ErrorCode = void 0;
12
+ (function(ErrorCode) {
13
+ ErrorCode["LICENSE_AGREEMENT"] = "license_agreement";
14
+ })(exports.ErrorCode || (exports.ErrorCode = {}));
15
+
16
+ /*
17
+ * Copyright (c) 2021-2024.
18
+ * Author Peter Placzek (tada5hi)
19
+ * For the full copyright and license information,
20
+ * view the LICENSE file that was distributed with this source code.
21
+ */ class APIConnectionStringError extends Error {
22
+ static connectionStringMissing(serviceName) {
23
+ const parts = [
24
+ 'The'
25
+ ];
26
+ if (typeof serviceName === 'string') {
27
+ parts.push(serviceName);
28
+ }
29
+ parts.push('connection string is not specified.');
30
+ return new this(parts.join(' '));
31
+ }
32
+ static connectionStringInvalid(serviceName) {
33
+ const parts = [
34
+ 'The'
35
+ ];
36
+ if (typeof serviceName === 'string') {
37
+ parts.push(serviceName);
38
+ }
39
+ parts.push('connection string is not valid.');
40
+ return new this(parts.join(' '));
41
+ }
42
+ }
43
+
44
+ /*
45
+ * Copyright (c) 2021-2024.
46
+ * Author Peter Placzek (tada5hi)
47
+ * For the full copyright and license information,
48
+ * view the LICENSE file that was distributed with this source code.
49
+ */ exports.AnalysisBuildStatus = void 0;
50
+ (function(AnalysisBuildStatus) {
51
+ AnalysisBuildStatus["STARTING"] = "starting";
52
+ AnalysisBuildStatus["STARTED"] = "started";
53
+ AnalysisBuildStatus["STOPPING"] = "stopping";
54
+ AnalysisBuildStatus["STOPPED"] = "stopped";
55
+ AnalysisBuildStatus["FINISHED"] = "finished";
56
+ AnalysisBuildStatus["FAILED"] = "failed";
57
+ })(exports.AnalysisBuildStatus || (exports.AnalysisBuildStatus = {}));
58
+ exports.AnalysisConfigurationStatus = void 0;
59
+ (function(AnalysisConfigurationStatus) {
60
+ AnalysisConfigurationStatus["BASE_CONFIGURED"] = "base";
61
+ AnalysisConfigurationStatus["SECURITY_CONFIGURED"] = "security_configured";
62
+ AnalysisConfigurationStatus["RESOURCE_CONFIGURED"] = "resource_configured";
63
+ AnalysisConfigurationStatus["HASH_GENERATED"] = "hash_generated";
64
+ AnalysisConfigurationStatus["HASH_SIGNED"] = "hash_signed";
65
+ AnalysisConfigurationStatus["FINISHED"] = "finished";
66
+ })(exports.AnalysisConfigurationStatus || (exports.AnalysisConfigurationStatus = {}));
67
+ exports.AnalysisRunStatus = void 0;
68
+ (function(AnalysisRunStatus) {
69
+ AnalysisRunStatus["STARTING"] = "starting";
70
+ AnalysisRunStatus["STARTED"] = "started";
71
+ AnalysisRunStatus["RUNNING"] = "running";
72
+ AnalysisRunStatus["STOPPING"] = "stopping";
73
+ AnalysisRunStatus["STOPPED"] = "stopped";
74
+ AnalysisRunStatus["FINISHED"] = "finished";
75
+ AnalysisRunStatus["FAILED"] = "failed";
76
+ })(exports.AnalysisRunStatus || (exports.AnalysisRunStatus = {}));
77
+ exports.AnalysisResultStatus = void 0;
78
+ (function(AnalysisResultStatus) {
79
+ AnalysisResultStatus["STARTED"] = "started";
80
+ AnalysisResultStatus["DOWNLOADING"] = "downloading";
81
+ AnalysisResultStatus["DOWNLOADED"] = "downloaded";
82
+ AnalysisResultStatus["PROCESSING"] = "extracting";
83
+ AnalysisResultStatus["PROCESSED"] = "extracted";
84
+ AnalysisResultStatus["FINISHED"] = "finished";
85
+ AnalysisResultStatus["FAILED"] = "failed";
86
+ })(exports.AnalysisResultStatus || (exports.AnalysisResultStatus = {}));
87
+ exports.AnalysisAPICommand = void 0;
88
+ (function(AnalysisAPICommand) {
89
+ AnalysisAPICommand["SPIN_UP"] = "spinUp";
90
+ AnalysisAPICommand["TEAR_DOWN"] = "tearDown";
91
+ AnalysisAPICommand["BUILD_START"] = "buildStart";
92
+ AnalysisAPICommand["BUILD_STOP"] = "buildStop";
93
+ AnalysisAPICommand["BUILD_STATUS"] = "buildStatus";
94
+ AnalysisAPICommand["CONFIGURATION_LOCK"] = "configurationLock";
95
+ AnalysisAPICommand["CONFIGURATION_UNLOCK"] = "configurationUnlock";
96
+ })(exports.AnalysisAPICommand || (exports.AnalysisAPICommand = {}));
97
+ exports.AnalysisContainerPath = void 0;
98
+ (function(AnalysisContainerPath) {
99
+ AnalysisContainerPath["CODE"] = "/opt/code/";
100
+ })(exports.AnalysisContainerPath || (exports.AnalysisContainerPath = {}));
101
+
102
+ /*
103
+ * Copyright (c) 2024.
104
+ * Author Peter Placzek (tada5hi)
105
+ * For the full copyright and license information,
106
+ * view the LICENSE file that was distributed with this source code.
107
+ */ exports.AnalysisBucketType = void 0;
108
+ (function(AnalysisBucketType) {
109
+ AnalysisBucketType["CODE"] = "CODE";
110
+ AnalysisBucketType["RESULT"] = "RESULT";
111
+ AnalysisBucketType["TEMP"] = "TEMP";
112
+ })(exports.AnalysisBucketType || (exports.AnalysisBucketType = {}));
113
+
114
+ function buildAnalysisBucketName(type, id) {
115
+ switch(type){
116
+ case exports.AnalysisBucketType.CODE:
117
+ {
118
+ return `analysis-code-files.${id}`;
119
+ }
120
+ case exports.AnalysisBucketType.TEMP:
121
+ {
122
+ return `analysis-temp-files.${id}`;
123
+ }
124
+ case exports.AnalysisBucketType.RESULT:
125
+ {
126
+ return `analysis-result-files.${id}`;
127
+ }
128
+ }
129
+ throw new SyntaxError('The argument can only have any bucket type value.');
130
+ }
131
+
132
+ /*
133
+ * Copyright (c) 2021-2024.
134
+ * Author Peter Placzek (tada5hi)
135
+ * For the full copyright and license information,
136
+ * view the LICENSE file that was distributed with this source code.
137
+ */ exports.AnalysisNodeApprovalCommand = void 0;
138
+ (function(AnalysisNodeApprovalCommand) {
139
+ AnalysisNodeApprovalCommand["APPROVE"] = "approve";
140
+ AnalysisNodeApprovalCommand["REJECT"] = "reject";
141
+ })(exports.AnalysisNodeApprovalCommand || (exports.AnalysisNodeApprovalCommand = {}));
142
+ exports.AnalysisNodeApprovalStatus = void 0;
143
+ (function(AnalysisNodeApprovalStatus) {
144
+ AnalysisNodeApprovalStatus["REJECTED"] = "rejected";
145
+ AnalysisNodeApprovalStatus["APPROVED"] = "approved";
146
+ })(exports.AnalysisNodeApprovalStatus || (exports.AnalysisNodeApprovalStatus = {}));
147
+ exports.AnalysisNodeRunStatus = void 0;
148
+ (function(AnalysisNodeRunStatus) {
149
+ AnalysisNodeRunStatus["ARRIVED"] = "arrived";
150
+ AnalysisNodeRunStatus["PULLED"] = "pulled";
151
+ AnalysisNodeRunStatus["PUSHED"] = "pushed";
152
+ AnalysisNodeRunStatus["DEPARTED"] = "departed";
153
+ AnalysisNodeRunStatus["FAILED"] = "failed";
154
+ })(exports.AnalysisNodeRunStatus || (exports.AnalysisNodeRunStatus = {}));
155
+ exports.AnalysisNodeStatic = void 0;
156
+ (function(AnalysisNodeStatic) {
157
+ AnalysisNodeStatic["INCOMING"] = "incoming";
158
+ AnalysisNodeStatic["OUTGOING"] = "outgoing";
159
+ })(exports.AnalysisNodeStatic || (exports.AnalysisNodeStatic = {}));
160
+
161
+ /*
162
+ * Copyright (c) 2021-2024.
163
+ * Author Peter Placzek (tada5hi)
164
+ * For the full copyright and license information,
165
+ * view the LICENSE file that was distributed with this source code.
166
+ */ function _define_property(obj, key, value) {
167
+ if (key in obj) {
168
+ Object.defineProperty(obj, key, {
169
+ value: value,
170
+ enumerable: true,
171
+ configurable: true,
172
+ writable: true
173
+ });
174
+ } else {
175
+ obj[key] = value;
176
+ }
177
+ return obj;
178
+ }
179
+ function _object_spread(target) {
180
+ for(var i = 1; i < arguments.length; i++){
181
+ var source = arguments[i] != null ? arguments[i] : {};
182
+ var ownKeys = Object.keys(source);
183
+ if (typeof Object.getOwnPropertySymbols === "function") {
184
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
185
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
186
+ }));
187
+ }
188
+ ownKeys.forEach(function(key) {
189
+ _define_property(target, key, source[key]);
190
+ });
191
+ }
192
+ return target;
193
+ }
194
+ exports.PermissionKey = void 0;
195
+ (function(PermissionKey) {
196
+ PermissionKey["BUCKET_ADD"] = "bucket_add";
197
+ PermissionKey["BUCKET_EDIT"] = "bucket_edit";
198
+ PermissionKey["BUCKET_DROP"] = "bucket_drop";
199
+ PermissionKey["PROJECT_ADD"] = "project_add";
200
+ PermissionKey["PROJECT_DROP"] = "project_drop";
201
+ PermissionKey["PROJECT_EDIT"] = "project_edit";
202
+ PermissionKey["PROJECT_APPROVE"] = "project_approve";
203
+ PermissionKey["REGISTRY_MANAGE"] = "registry_manage";
204
+ PermissionKey["REGISTRY_PROJECT_MANAGE"] = "registry_project_manage";
205
+ PermissionKey["NODE_ADD"] = "node_add";
206
+ PermissionKey["NODE_DROP"] = "node_drop";
207
+ PermissionKey["NODE_EDIT"] = "node_edit";
208
+ PermissionKey["ANALYSIS_APPROVE"] = "analysis_approve";
209
+ PermissionKey["ANALYSIS_EDIT"] = "analysis_edit";
210
+ PermissionKey["ANALYSIS_ADD"] = "analysis_add";
211
+ PermissionKey["ANALYSIS_EXECUTION_START"] = "analysis_execution_start";
212
+ PermissionKey["ANALYSIS_EXECUTION_STOP"] = "analysis_execution_stop";
213
+ PermissionKey["ANALYSIS_DROP"] = "analysis_drop";
214
+ PermissionKey["ANALYSIS_RESULT_READ"] = "analysis_result_read";
215
+ PermissionKey["MASTER_IMAGE_MANAGE"] = "master_image_manage";
216
+ PermissionKey["MASTER_IMAGE_GROUP_MANAGE"] = "master_image_group_manage";
217
+ PermissionKey["SERVICE_MANAGE"] = "service_manage";
218
+ })(exports.PermissionKey || (exports.PermissionKey = {}));
219
+ const PermissionID = _object_spread({}, exports.PermissionKey, coreKit.PermissionName);
220
+
221
+ /*
222
+ * Copyright (c) 2022-2024.
223
+ * Author Peter Placzek (tada5hi)
224
+ * For the full copyright and license information,
225
+ * view the LICENSE file that was distributed with this source code.
226
+ */ function buildSocketRealmNamespaceName(realmId) {
227
+ return `/resources#${realmId}`;
228
+ }
229
+ function parseSocketRealmNamespaceName(name) {
230
+ return name.startsWith('/resources#') ? name.substring('/resources#'.length) : name;
231
+ }
232
+
233
+ /*
234
+ * Copyright (c) 2021-2024.
235
+ * Author Peter Placzek (tada5hi)
236
+ * For the full copyright and license information,
237
+ * view the LICENSE file that was distributed with this source code.
238
+ */ exports.MasterImageCommand = void 0;
239
+ (function(MasterImageCommand) {
240
+ MasterImageCommand["SYNC"] = "sync";
241
+ })(exports.MasterImageCommand || (exports.MasterImageCommand = {}));
242
+ exports.MasterImageGroupType = void 0;
243
+ (function(MasterImageGroupType) {
244
+ MasterImageGroupType["LANGUAGE"] = "language";
245
+ MasterImageGroupType["DEFAULT"] = "default";
246
+ })(exports.MasterImageGroupType || (exports.MasterImageGroupType = {}));
247
+
248
+ /*
249
+ * Copyright (c) 2021-2024.
250
+ * Author Peter Placzek (tada5hi)
251
+ * For the full copyright and license information,
252
+ * view the LICENSE file that was distributed with this source code.
253
+ */ exports.ProjectNodeApprovalCommand = void 0;
254
+ (function(ProjectNodeApprovalCommand) {
255
+ ProjectNodeApprovalCommand["APPROVE"] = "approve";
256
+ ProjectNodeApprovalCommand["REJECT"] = "reject";
257
+ })(exports.ProjectNodeApprovalCommand || (exports.ProjectNodeApprovalCommand = {}));
258
+ exports.ProjectNodeApprovalStatus = void 0;
259
+ (function(ProjectNodeApprovalStatus) {
260
+ ProjectNodeApprovalStatus["REJECTED"] = "rejected";
261
+ ProjectNodeApprovalStatus["APPROVED"] = "approved";
262
+ })(exports.ProjectNodeApprovalStatus || (exports.ProjectNodeApprovalStatus = {}));
263
+
264
+ /*
265
+ * Copyright (c) 2024.
266
+ * Author Peter Placzek (tada5hi)
267
+ * For the full copyright and license information,
268
+ * view the LICENSE file that was distributed with this source code.
269
+ */ const registryRobotSecretRegex = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,}$/;
270
+
271
+ /*
272
+ * Copyright (c) 2022-2024.
273
+ * Author Peter Placzek (tada5hi)
274
+ * For the full copyright and license information,
275
+ * view the LICENSE file that was distributed with this source code.
276
+ */ function buildRegistryClientConnectionStringFromRegistry(entity) {
277
+ // todo: support other registries beside harbor and v2.0
278
+ const url = `https://${entity.host}/api/v2.0/`;
279
+ return `${entity.account_name}:${entity.account_secret}@${url}`;
280
+ }
281
+
282
+ /*
283
+ * Copyright (c) 2022-2024.
284
+ * Author Peter Placzek (tada5hi)
285
+ * For the full copyright and license information,
286
+ * view the LICENSE file that was distributed with this source code.
287
+ */ exports.RegistryProjectType = void 0;
288
+ (function(RegistryProjectType) {
289
+ RegistryProjectType["DEFAULT"] = "default";
290
+ RegistryProjectType["AGGREGATOR"] = "aggregator";
291
+ RegistryProjectType["INCOMING"] = "incoming";
292
+ RegistryProjectType["OUTGOING"] = "outgoing";
293
+ RegistryProjectType["MASTER_IMAGES"] = "masterImages";
294
+ RegistryProjectType["NODE"] = "node";
295
+ })(exports.RegistryProjectType || (exports.RegistryProjectType = {}));
296
+
297
+ /*
298
+ * Copyright (c) 2021-2024.
299
+ * Author Peter Placzek (tada5hi)
300
+ * For the full copyright and license information,
301
+ * view the LICENSE file that was distributed with this source code.
302
+ */ function buildSocketRegistryProjectRoomName(id) {
303
+ return `registry-projects${id ? `#${id}` : ''}`;
304
+ }
305
+
306
+ function generateRegistryProjectId() {
307
+ return kit.createNanoID('0123456789abcdefghijklmnopqrstuvwxyz');
308
+ }
309
+
310
+ /*
311
+ * Copyright (c) 2024.
312
+ * Author Peter Placzek (tada5hi)
313
+ * For the full copyright and license information,
314
+ * view the LICENSE file that was distributed with this source code.
315
+ */ exports.NodeType = void 0;
316
+ (function(NodeType) {
317
+ NodeType["AGGREGATOR"] = "aggregator";
318
+ NodeType["DEFAULT"] = "default";
319
+ })(exports.NodeType || (exports.NodeType = {}));
320
+ exports.NodeSocketClientEventName = void 0;
321
+ (function(NodeSocketClientEventName) {
322
+ NodeSocketClientEventName["CONNECT"] = "nodeConnect";
323
+ NodeSocketClientEventName["DISCONNECT"] = "nodeDisconnect";
324
+ NodeSocketClientEventName["MESSAGE"] = "nodeMessage";
325
+ })(exports.NodeSocketClientEventName || (exports.NodeSocketClientEventName = {}));
326
+ exports.NodeSocketServerEventName = void 0;
327
+ (function(NodeSocketServerEventName) {
328
+ NodeSocketServerEventName["CONNECTED"] = "nodeConnected";
329
+ NodeSocketServerEventName["DISCONNECTED"] = "nodeDisconnected";
330
+ NodeSocketServerEventName["MESSAGE"] = "nodeMessage";
331
+ })(exports.NodeSocketServerEventName || (exports.NodeSocketServerEventName = {}));
332
+
333
+ /*
334
+ * Copyright (c) 2021-2024.
335
+ * Author Peter Placzek (tada5hi)
336
+ * For the full copyright and license information,
337
+ * view the LICENSE file that was distributed with this source code.
338
+ */ exports.RegistryAPICommand = void 0;
339
+ (function(RegistryAPICommand) {
340
+ RegistryAPICommand["SETUP"] = "setup";
341
+ RegistryAPICommand["CLEANUP"] = "cleanup";
342
+ RegistryAPICommand["DELETE"] = "delete";
343
+ RegistryAPICommand["PROJECT_LINK"] = "projectLink";
344
+ RegistryAPICommand["PROJECT_UNLINK"] = "projectUnlink";
345
+ })(exports.RegistryAPICommand || (exports.RegistryAPICommand = {}));
346
+ /**
347
+ * Incoming train project name
348
+ */ const REGISTRY_INCOMING_PROJECT_NAME = 'incoming';
349
+ /**
350
+ * Outgoing train project name
351
+ */ const REGISTRY_OUTGOING_PROJECT_NAME = 'outgoing';
352
+ /**
353
+ * Master Image project name
354
+ */ const REGISTRY_MASTER_IMAGE_PROJECT_NAME = 'master';
355
+ /**
356
+ * Latest image tag
357
+ */ const REGISTRY_ARTIFACT_TAG_LATEST = 'latest';
358
+ /**
359
+ * base image tag
360
+ */ const REGISTRY_ARTIFACT_TAG_BASE = 'base';
361
+
362
+ /*
363
+ * Copyright (c) 2021-2024.
364
+ * Author Peter Placzek (tada5hi)
365
+ * For the full copyright and license information,
366
+ * view the LICENSE file that was distributed with this source code.
367
+ */ exports.SecretStorageAPICommand = void 0;
368
+ (function(SecretStorageAPICommand) {
369
+ SecretStorageAPICommand["ENGINE_CREATE"] = "engineCreate";
370
+ SecretStorageAPICommand["ENGINE_KEY_SAVE"] = "engineKeySave";
371
+ SecretStorageAPICommand["ENGINE_KEY_PULL"] = "engineKeyPull";
372
+ SecretStorageAPICommand["ENGINE_KEY_DROP"] = "engineKeyDrop";
373
+ })(exports.SecretStorageAPICommand || (exports.SecretStorageAPICommand = {}));
374
+
375
+ /*
376
+ * Copyright (c) 2021-2024.
377
+ * Author Peter Placzek (tada5hi)
378
+ * For the full copyright and license information,
379
+ * view the LICENSE file that was distributed with this source code.
380
+ */ exports.ServiceID = void 0;
381
+ (function(ServiceID) {
382
+ // Core Service(s)
383
+ ServiceID["SYSTEM"] = "system";
384
+ // Third Party Service(s)
385
+ ServiceID["REGISTRY"] = "registry";
386
+ })(exports.ServiceID || (exports.ServiceID = {}));
387
+
388
+ /*
389
+ * Copyright (c) 2021-2024.
390
+ * Author Peter Placzek (tada5hi)
391
+ * For the full copyright and license information,
392
+ * view the LICENSE file that was distributed with this source code.
393
+ */ exports.StationRegistryAPICommand = void 0;
394
+ (function(StationRegistryAPICommand) {
395
+ StationRegistryAPICommand["SYNC"] = "sync";
396
+ })(exports.StationRegistryAPICommand || (exports.StationRegistryAPICommand = {}));
397
+
398
+ /*
399
+ * Copyright (c) 2023-2024.
400
+ * Author Peter Placzek (tada5hi)
401
+ * For the full copyright and license information,
402
+ * view the LICENSE file that was distributed with this source code.
403
+ */ exports.DomainType = void 0;
404
+ (function(DomainType) {
405
+ DomainType["MASTER_IMAGE"] = "masterImage";
406
+ DomainType["MASTER_IMAGE_GROUP"] = "masterImageGroup";
407
+ DomainType["PROJECT"] = "project";
408
+ DomainType["PROJECT_NODE"] = "projectNode";
409
+ DomainType["REGISTRY"] = "registry";
410
+ DomainType["REGISTRY_PROJECT"] = "registryProject";
411
+ DomainType["NODE"] = "node";
412
+ DomainType["SERVICE"] = "service";
413
+ DomainType["ANALYSIS"] = "analysis";
414
+ DomainType["ANALYSIS_BUCKET"] = "analysisBucket";
415
+ DomainType["ANALYSIS_BUCKET_FILE"] = "analysisBucketFile";
416
+ DomainType["ANALYSIS_LOG"] = "analysisLog";
417
+ DomainType["ANALYSIS_NODE"] = "analysisNode";
418
+ })(exports.DomainType || (exports.DomainType = {}));
419
+ exports.DomainSubType = void 0;
420
+ (function(DomainSubType) {
421
+ DomainSubType["PROJECT_NODE_IN"] = "projectNodeIn";
422
+ DomainSubType["PROJECT_NODE_OUT"] = "projectNodeOut";
423
+ DomainSubType["ANALYSIS_NODE_IN"] = "analysisNodeIn";
424
+ DomainSubType["ANALYSIS_NODE_OUT"] = "analysisNodeOut";
425
+ })(exports.DomainSubType || (exports.DomainSubType = {}));
426
+ exports.DomainEventName = void 0;
427
+ (function(DomainEventName) {
428
+ DomainEventName["CREATED"] = "created";
429
+ DomainEventName["DELETED"] = "deleted";
430
+ DomainEventName["UPDATED"] = "updated";
431
+ })(exports.DomainEventName || (exports.DomainEventName = {}));
432
+ exports.DomainEventSubscriptionName = void 0;
433
+ (function(DomainEventSubscriptionName) {
434
+ DomainEventSubscriptionName["SUBSCRIBE"] = "subscribe";
435
+ DomainEventSubscriptionName["UNSUBSCRIBE"] = "unsubscribe";
436
+ })(exports.DomainEventSubscriptionName || (exports.DomainEventSubscriptionName = {}));
437
+
438
+ /*
439
+ * Copyright (c) 2022-2024.
440
+ * Author Peter Placzek (tada5hi)
441
+ * For the full copyright and license information,
442
+ * view the LICENSE file that was distributed with this source code.
443
+ */ function buildDomainEventFullName(type, event) {
444
+ const eventCapitalized = event.substring(0, 1).toUpperCase() + event.substring(1);
445
+ return type + eventCapitalized;
446
+ }
447
+ function buildDomainEventSubscriptionFullName(type, event) {
448
+ const eventCapitalized = event.substring(0, 1).toUpperCase() + event.substring(1);
449
+ return type + eventCapitalized;
450
+ }
451
+ function buildDomainChannelName(type, id) {
452
+ return `${type}${id ? `:${id}` : ''}`;
453
+ }
454
+ function buildDomainNamespaceName(id) {
455
+ return id ? `/resources#${id}` : '/resources';
456
+ }
457
+
458
+ /*
459
+ * Copyright (c) 2024.
460
+ * Author Peter Placzek (tada5hi)
461
+ * For the full copyright and license information,
462
+ * view the LICENSE file that was distributed with this source code.
463
+ */ exports.EnvironmentName = void 0;
464
+ (function(EnvironmentName) {
465
+ EnvironmentName["TEST"] = "test";
466
+ EnvironmentName["DEVELOPMENT"] = "development";
467
+ EnvironmentName["PRODUCTION"] = "production";
468
+ })(exports.EnvironmentName || (exports.EnvironmentName = {}));
469
+
470
+ exports.APIConnectionStringError = APIConnectionStringError;
471
+ exports.PermissionID = PermissionID;
472
+ exports.REGISTRY_ARTIFACT_TAG_BASE = REGISTRY_ARTIFACT_TAG_BASE;
473
+ exports.REGISTRY_ARTIFACT_TAG_LATEST = REGISTRY_ARTIFACT_TAG_LATEST;
474
+ exports.REGISTRY_INCOMING_PROJECT_NAME = REGISTRY_INCOMING_PROJECT_NAME;
475
+ exports.REGISTRY_MASTER_IMAGE_PROJECT_NAME = REGISTRY_MASTER_IMAGE_PROJECT_NAME;
476
+ exports.REGISTRY_OUTGOING_PROJECT_NAME = REGISTRY_OUTGOING_PROJECT_NAME;
477
+ exports.buildAnalysisBucketName = buildAnalysisBucketName;
478
+ exports.buildDomainChannelName = buildDomainChannelName;
479
+ exports.buildDomainEventFullName = buildDomainEventFullName;
480
+ exports.buildDomainEventSubscriptionFullName = buildDomainEventSubscriptionFullName;
481
+ exports.buildDomainNamespaceName = buildDomainNamespaceName;
482
+ exports.buildRegistryClientConnectionStringFromRegistry = buildRegistryClientConnectionStringFromRegistry;
483
+ exports.buildSocketRealmNamespaceName = buildSocketRealmNamespaceName;
484
+ exports.buildSocketRegistryProjectRoomName = buildSocketRegistryProjectRoomName;
485
+ exports.generateRegistryProjectId = generateRegistryProjectId;
486
+ exports.parseSocketRealmNamespaceName = parseSocketRealmNamespaceName;
487
+ exports.registryRobotSecretRegex = registryRobotSecretRegex;
488
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +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-bucket/constants.ts","../src/domains/analysis-bucket/utils.ts","../src/domains/analysis-node/constants.ts","../src/domains/permission/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 BASE_CONFIGURED = 'base',\n SECURITY_CONFIGURED = 'security_configured', // todo: still relevant ?\n RESOURCE_CONFIGURED = 'resource_configured',\n HASH_GENERATED = 'hash_generated', // todo: still relevant ?\n HASH_SIGNED = 'hash_signed', // todo: signed by xyz\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) 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 ARRIVED = 'arrived',\n PULLED = 'pulled',\n PUSHED = 'pushed', // todo: this won't happen anymore\n DEPARTED = 'departed', // todo: this won't happen anymore\n FAILED = 'failed', // todo: this won't happen anymore\n}\n\n// -------------------------------------------------------------------------\n\nexport enum AnalysisNodeStatic {\n INCOMING = 'incoming',\n OUTGOING = 'outgoing',\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 { PermissionName as AuthPermissionName } from '@authup/core-kit';\n\nexport enum PermissionKey {\n BUCKET_ADD = 'bucket_add',\n BUCKET_EDIT = 'bucket_edit',\n BUCKET_DROP = 'bucket_drop',\n\n PROJECT_ADD = 'project_add',\n PROJECT_DROP = 'project_drop',\n PROJECT_EDIT = 'project_edit',\n PROJECT_APPROVE = 'project_approve',\n\n REGISTRY_MANAGE = 'registry_manage',\n REGISTRY_PROJECT_MANAGE = 'registry_project_manage',\n\n NODE_ADD = 'node_add',\n NODE_DROP = 'node_drop',\n NODE_EDIT = 'node_edit',\n\n ANALYSIS_APPROVE = 'analysis_approve',\n ANALYSIS_EDIT = 'analysis_edit',\n ANALYSIS_ADD = 'analysis_add',\n ANALYSIS_EXECUTION_START = 'analysis_execution_start',\n ANALYSIS_EXECUTION_STOP = 'analysis_execution_stop',\n ANALYSIS_DROP = 'analysis_drop',\n ANALYSIS_RESULT_READ = 'analysis_result_read', // todo: this is maybe not required anymore\n\n MASTER_IMAGE_MANAGE = 'master_image_manage',\n MASTER_IMAGE_GROUP_MANAGE = 'master_image_group_manage',\n\n SERVICE_MANAGE = 'service_manage',\n}\n\nexport const PermissionID = {\n ...PermissionKey,\n ...AuthPermissionName,\n};\n\nexport type PermissionIDType = typeof PermissionID[keyof typeof PermissionID];\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 SERVICE = 'service',\n ANALYSIS = 'analysis',\n ANALYSIS_BUCKET = 'analysisBucket',\n ANALYSIS_BUCKET_FILE = 'analysisBucketFile',\n ANALYSIS_LOG = 'analysisLog',\n ANALYSIS_NODE = 'analysisNode',\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\nimport type {\n DomainEventName, DomainEventSubscriptionName,\n} from './constants';\nimport type { DomainEventFullName, DomainEventSubscriptionFullName, DomainInput } from './types';\n\nexport function buildDomainEventFullName<T extends DomainInput>(\n type: T,\n event: `${DomainEventName}` | DomainEventName,\n) : DomainEventFullName<T> {\n const eventCapitalized = event.substring(0, 1).toUpperCase() + event.substring(1);\n\n return type + eventCapitalized as DomainEventFullName<T>;\n}\n\nexport function buildDomainEventSubscriptionFullName<\n T extends DomainInput,\n>(\n type: T,\n event: `${DomainEventSubscriptionName}` | DomainEventSubscriptionName,\n) : DomainEventSubscriptionFullName<T> {\n const eventCapitalized = event.substring(0, 1).toUpperCase() + event.substring(1);\n\n return type + eventCapitalized as DomainEventSubscriptionFullName<T>;\n}\n\nexport function buildDomainChannelName(type: DomainInput, id?: string | number) {\n return `${type}${id ? `:${id}` : ''}`;\n}\n\nexport function buildDomainNamespaceName(id?: string) {\n return id ?\n `/resources#${id}` :\n '/resources';\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","AnalysisBucketType","buildAnalysisBucketName","type","id","CODE","TEMP","RESULT","SyntaxError","AnalysisNodeApprovalCommand","AnalysisNodeApprovalStatus","AnalysisNodeRunStatus","AnalysisNodeStatic","PermissionKey","PermissionID","AuthPermissionName","buildSocketRealmNamespaceName","realmId","parseSocketRealmNamespaceName","name","startsWith","substring","length","MasterImageCommand","MasterImageGroupType","ProjectNodeApprovalCommand","ProjectNodeApprovalStatus","registryRobotSecretRegex","buildRegistryClientConnectionStringFromRegistry","entity","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","buildDomainEventFullName","event","eventCapitalized","toUpperCase","buildDomainEventSubscriptionFullName","buildDomainChannelName","buildDomainNamespaceName","EnvironmentName"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './error';
2
+ export * from './domains';
3
+ export * from './constants';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}