openxiangda-devkit-core 2.0.0-alpha.29 → 2.0.0-alpha.34

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 (69) hide show
  1. package/README.md +2 -1
  2. package/dist/application-services.d.ts +79 -43
  3. package/dist/application-services.d.ts.map +1 -1
  4. package/dist/application-services.js +257 -160
  5. package/dist/application-services.js.map +1 -1
  6. package/dist/backend-image-build.d.ts +23 -0
  7. package/dist/backend-image-build.d.ts.map +1 -0
  8. package/dist/backend-image-build.js +192 -0
  9. package/dist/backend-image-build.js.map +1 -0
  10. package/dist/command-registry.d.ts +26 -576
  11. package/dist/command-registry.d.ts.map +1 -1
  12. package/dist/command-registry.js +9 -374
  13. package/dist/command-registry.js.map +1 -1
  14. package/dist/compiler/bundle.d.ts +23 -0
  15. package/dist/compiler/bundle.d.ts.map +1 -0
  16. package/dist/compiler/bundle.js +604 -0
  17. package/dist/compiler/bundle.js.map +1 -0
  18. package/dist/compiler/config.d.ts +377 -0
  19. package/dist/compiler/config.d.ts.map +1 -0
  20. package/dist/compiler/config.js +1137 -0
  21. package/dist/compiler/config.js.map +1 -0
  22. package/dist/compiler/index.d.ts +4 -0
  23. package/dist/compiler/index.d.ts.map +1 -0
  24. package/dist/compiler/index.js +4 -0
  25. package/dist/compiler/index.js.map +1 -0
  26. package/dist/compiler/package-compiler.d.ts +22 -0
  27. package/dist/compiler/package-compiler.d.ts.map +1 -0
  28. package/dist/compiler/package-compiler.js +60 -0
  29. package/dist/compiler/package-compiler.js.map +1 -0
  30. package/dist/config.d.ts +1 -1
  31. package/dist/config.js +1 -1
  32. package/dist/connected-development.d.ts +62 -0
  33. package/dist/connected-development.d.ts.map +1 -0
  34. package/dist/connected-development.js +389 -0
  35. package/dist/connected-development.js.map +1 -0
  36. package/dist/control-plane-client.d.ts +50 -1
  37. package/dist/control-plane-client.d.ts.map +1 -1
  38. package/dist/control-plane-client.js +43 -2
  39. package/dist/control-plane-client.js.map +1 -1
  40. package/dist/deployment.d.ts +3 -1
  41. package/dist/deployment.d.ts.map +1 -1
  42. package/dist/deployment.js +18 -8
  43. package/dist/deployment.js.map +1 -1
  44. package/dist/index.d.ts +2 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +2 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/internal/workflow.d.ts +81 -0
  49. package/dist/internal/workflow.d.ts.map +1 -0
  50. package/dist/internal/workflow.js +351 -0
  51. package/dist/internal/workflow.js.map +1 -0
  52. package/dist/package-compiler.d.ts +1 -1
  53. package/dist/package-compiler.d.ts.map +1 -1
  54. package/dist/package-compiler.js +1 -1
  55. package/dist/package-compiler.js.map +1 -1
  56. package/dist/testing.d.ts +38 -0
  57. package/dist/testing.d.ts.map +1 -0
  58. package/dist/testing.js +46 -0
  59. package/dist/testing.js.map +1 -0
  60. package/dist/workspace-loader.d.ts +1 -1
  61. package/package.json +8 -4
  62. package/dist/local-development.d.ts +0 -85
  63. package/dist/local-development.d.ts.map +0 -1
  64. package/dist/local-development.js +0 -919
  65. package/dist/local-development.js.map +0 -1
  66. package/dist/local-postgres.d.ts +0 -32
  67. package/dist/local-postgres.d.ts.map +0 -1
  68. package/dist/local-postgres.js +0 -324
  69. package/dist/local-postgres.js.map +0 -1
@@ -0,0 +1,377 @@
1
+ import { type AppApiOperationDeclaration, type AppAuthorizationTransitionDeclaration, type AppBackendSecretDeclaration, type AppCapabilityDeclaration, type AppDataPolicyDeclaration, type AppDataPolicyRuleDeclaration, type AppFrontendRouteDeclaration, type AppRoleDeclaration, type AppScopeDimensionDeclaration, type AppScopeSourceDeclaration, type NativeWorkflowEditableParameterDeclaration, type DataResource, type Diagnostic, type EventSubscription, type TimerSubscription, type WorkflowBinding, type WorkflowDefinition } from 'openxiangda-contracts';
2
+ export type EventSubscriptionDeclaration = Pick<EventSubscription, 'code' | 'eventTypes' | 'subjectFilters' | 'endpointPath'> & {
3
+ description?: string;
4
+ delivery?: Partial<EventSubscription['delivery']>;
5
+ };
6
+ export type TimerSubscriptionDeclaration = Pick<TimerSubscription, 'code' | 'eventType' | 'cronExpression' | 'timezone' | 'payload'>;
7
+ export interface WorkflowDefinitionDeclaration {
8
+ version: number;
9
+ definition: WorkflowDefinition;
10
+ }
11
+ export interface WorkflowBindingDeclaration {
12
+ version: number;
13
+ binding: WorkflowBinding;
14
+ }
15
+ export interface WorkflowActivationDeclaration {
16
+ workflowCode: string;
17
+ definitionVersion: number;
18
+ bindingVersion: number;
19
+ }
20
+ export interface WorkflowAssigneeProviderDeclaration {
21
+ code: string;
22
+ endpointPath: string;
23
+ timeoutMs?: number;
24
+ status?: 'active' | 'paused';
25
+ }
26
+ export type BackendSecretDeclaration = AppBackendSecretDeclaration;
27
+ export type AuthzRoleDeclaration = AppRoleDeclaration;
28
+ export type AuthzScopeDimensionDeclaration = AppScopeDimensionDeclaration;
29
+ export type AuthzScopeSourceDeclaration = AppScopeSourceDeclaration;
30
+ export type AuthzDataPolicyRuleDeclaration = AppDataPolicyRuleDeclaration;
31
+ export type AuthzDataPolicyDeclaration = AppDataPolicyDeclaration;
32
+ export interface OpenXiangdaAppConfig {
33
+ schemaVersion: 3;
34
+ app: {
35
+ code: string;
36
+ name: string;
37
+ };
38
+ frontend: {
39
+ root: string;
40
+ routes?: AppFrontendRouteDeclaration[];
41
+ };
42
+ backend: {
43
+ root: string;
44
+ runtime: 'node';
45
+ framework: 'nestjs';
46
+ runMode?: 'shared' | 'dedicated';
47
+ secrets?: BackendSecretDeclaration[];
48
+ operations?: AppApiOperationDeclaration[];
49
+ };
50
+ platform: {
51
+ root: string;
52
+ };
53
+ data?: {
54
+ resources: DataResource[];
55
+ };
56
+ authz?: {
57
+ capabilities: AppCapabilityDeclaration[];
58
+ roles: AuthzRoleDeclaration[];
59
+ scopeDimensions?: AuthzScopeDimensionDeclaration[];
60
+ scopeSources?: AuthzScopeSourceDeclaration[];
61
+ dataPolicies?: AuthzDataPolicyDeclaration[];
62
+ authorizationTransitions?: AppAuthorizationTransitionDeclaration[];
63
+ };
64
+ events?: {
65
+ subscriptions: EventSubscriptionDeclaration[];
66
+ timers?: TimerSubscriptionDeclaration[];
67
+ };
68
+ workflows?: {
69
+ definitions: WorkflowDefinitionDeclaration[];
70
+ bindings: WorkflowBindingDeclaration[];
71
+ activations: WorkflowActivationDeclaration[];
72
+ providers?: WorkflowAssigneeProviderDeclaration[];
73
+ editableParameters?: NativeWorkflowEditableParameterDeclaration[];
74
+ };
75
+ }
76
+ export declare const openXiangdaAppConfigSchema: {
77
+ readonly $id: "openxiangda.app-config/v3";
78
+ readonly type: "object";
79
+ readonly additionalProperties: false;
80
+ readonly required: readonly ["schemaVersion", "app", "frontend", "backend", "platform"];
81
+ readonly properties: {
82
+ readonly schemaVersion: {
83
+ readonly const: 3;
84
+ };
85
+ readonly app: {
86
+ readonly type: "object";
87
+ readonly additionalProperties: false;
88
+ readonly required: readonly ["code", "name"];
89
+ readonly properties: {
90
+ readonly code: {
91
+ readonly type: "string";
92
+ readonly pattern: "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$";
93
+ readonly minLength: 2;
94
+ readonly maxLength: 128;
95
+ };
96
+ readonly name: {
97
+ readonly type: "string";
98
+ readonly minLength: 1;
99
+ readonly maxLength: 255;
100
+ };
101
+ };
102
+ };
103
+ readonly frontend: {
104
+ readonly type: "object";
105
+ readonly additionalProperties: false;
106
+ readonly required: readonly ["root"];
107
+ readonly properties: {
108
+ readonly root: {
109
+ readonly type: "string";
110
+ readonly minLength: 1;
111
+ };
112
+ readonly routes: {
113
+ readonly type: "array";
114
+ readonly maxItems: 500;
115
+ readonly items: {
116
+ readonly type: "object";
117
+ };
118
+ };
119
+ };
120
+ };
121
+ readonly backend: {
122
+ readonly type: "object";
123
+ readonly additionalProperties: false;
124
+ readonly required: readonly ["root", "runtime", "framework"];
125
+ readonly properties: {
126
+ readonly root: {
127
+ readonly type: "string";
128
+ readonly minLength: 1;
129
+ };
130
+ readonly runtime: {
131
+ readonly const: "node";
132
+ };
133
+ readonly framework: {
134
+ readonly const: "nestjs";
135
+ };
136
+ readonly runMode: {
137
+ readonly enum: readonly ["shared", "dedicated"];
138
+ };
139
+ readonly secrets: {
140
+ readonly type: "array";
141
+ readonly maxItems: 100;
142
+ readonly items: {
143
+ readonly type: "object";
144
+ readonly additionalProperties: false;
145
+ readonly required: readonly ["name", "env"];
146
+ readonly properties: {
147
+ readonly name: {
148
+ readonly type: "string";
149
+ readonly pattern: "^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$";
150
+ readonly maxLength: 128;
151
+ };
152
+ readonly env: {
153
+ readonly type: "string";
154
+ readonly pattern: "^[A-Z][A-Z0-9_]*$";
155
+ readonly maxLength: 128;
156
+ };
157
+ readonly description: {
158
+ readonly type: "string";
159
+ readonly maxLength: 2000;
160
+ };
161
+ readonly required: {
162
+ readonly type: "boolean";
163
+ };
164
+ };
165
+ };
166
+ };
167
+ readonly operations: {
168
+ readonly type: "array";
169
+ readonly maxItems: 500;
170
+ readonly items: {
171
+ readonly type: "object";
172
+ };
173
+ };
174
+ };
175
+ };
176
+ readonly platform: {
177
+ readonly type: "object";
178
+ readonly additionalProperties: false;
179
+ readonly required: readonly ["root"];
180
+ readonly properties: {
181
+ readonly root: {
182
+ readonly type: "string";
183
+ readonly minLength: 1;
184
+ };
185
+ };
186
+ };
187
+ readonly data: {
188
+ readonly type: "object";
189
+ readonly additionalProperties: false;
190
+ readonly required: readonly ["resources"];
191
+ readonly properties: {
192
+ readonly resources: {
193
+ readonly type: "array";
194
+ readonly maxItems: 100;
195
+ readonly items: {
196
+ readonly type: "object";
197
+ };
198
+ };
199
+ };
200
+ };
201
+ readonly authz: {
202
+ readonly type: "object";
203
+ readonly additionalProperties: false;
204
+ readonly required: readonly ["capabilities", "roles"];
205
+ readonly properties: {
206
+ readonly capabilities: {
207
+ readonly type: "array";
208
+ readonly maxItems: 2000;
209
+ readonly items: {
210
+ readonly type: "object";
211
+ };
212
+ };
213
+ readonly roles: {
214
+ readonly type: "array";
215
+ readonly maxItems: 100;
216
+ readonly items: {
217
+ readonly type: "object";
218
+ };
219
+ };
220
+ readonly scopeDimensions: {
221
+ readonly type: "array";
222
+ readonly maxItems: 100;
223
+ readonly items: {
224
+ readonly type: "object";
225
+ readonly additionalProperties: false;
226
+ readonly required: readonly ["code", "name"];
227
+ readonly properties: {
228
+ readonly code: {
229
+ readonly type: "string";
230
+ };
231
+ readonly name: {
232
+ readonly type: "string";
233
+ };
234
+ readonly resourceCode: {
235
+ readonly type: "string";
236
+ };
237
+ readonly valueType: {
238
+ readonly enum: readonly ["string", "uuid"];
239
+ };
240
+ readonly hierarchyMode: {
241
+ readonly enum: readonly ["flat", "self_parent"];
242
+ };
243
+ readonly valueSource: {
244
+ readonly type: "object";
245
+ readonly additionalProperties: false;
246
+ readonly required: readonly ["kind", "resourceCode", "labelField"];
247
+ readonly properties: {
248
+ readonly kind: {
249
+ readonly const: "native_resource";
250
+ };
251
+ readonly resourceCode: {
252
+ readonly type: "string";
253
+ };
254
+ readonly labelField: {
255
+ readonly type: "string";
256
+ };
257
+ readonly enabledField: {
258
+ readonly type: "string";
259
+ };
260
+ };
261
+ };
262
+ };
263
+ };
264
+ };
265
+ readonly scopeSources: {
266
+ readonly type: "array";
267
+ readonly maxItems: 100;
268
+ readonly items: {
269
+ readonly type: "object";
270
+ };
271
+ };
272
+ readonly dataPolicies: {
273
+ readonly type: "array";
274
+ readonly maxItems: 100;
275
+ readonly items: {
276
+ readonly type: "object";
277
+ };
278
+ };
279
+ readonly authorizationTransitions: {
280
+ readonly type: "array";
281
+ readonly maxItems: 100;
282
+ readonly items: {
283
+ readonly type: "object";
284
+ };
285
+ };
286
+ };
287
+ };
288
+ readonly events: {
289
+ readonly type: "object";
290
+ readonly additionalProperties: false;
291
+ readonly required: readonly ["subscriptions"];
292
+ readonly properties: {
293
+ readonly subscriptions: {
294
+ readonly type: "array";
295
+ readonly maxItems: 100;
296
+ readonly items: {
297
+ readonly type: "object";
298
+ };
299
+ };
300
+ readonly timers: {
301
+ readonly type: "array";
302
+ readonly maxItems: 100;
303
+ readonly items: {
304
+ readonly type: "object";
305
+ };
306
+ };
307
+ };
308
+ };
309
+ readonly workflows: {
310
+ readonly type: "object";
311
+ readonly additionalProperties: false;
312
+ readonly required: readonly ["definitions", "bindings", "activations"];
313
+ readonly properties: {
314
+ readonly definitions: {
315
+ readonly type: "array";
316
+ readonly maxItems: 100;
317
+ readonly items: {
318
+ readonly type: "object";
319
+ };
320
+ };
321
+ readonly bindings: {
322
+ readonly type: "array";
323
+ readonly maxItems: 100;
324
+ readonly items: {
325
+ readonly type: "object";
326
+ };
327
+ };
328
+ readonly activations: {
329
+ readonly type: "array";
330
+ readonly maxItems: 100;
331
+ readonly items: {
332
+ readonly type: "object";
333
+ };
334
+ };
335
+ readonly providers: {
336
+ readonly type: "array";
337
+ readonly maxItems: 100;
338
+ readonly items: {
339
+ readonly type: "object";
340
+ readonly additionalProperties: false;
341
+ readonly required: readonly ["code", "endpointPath"];
342
+ readonly properties: {
343
+ readonly code: {
344
+ readonly type: "string";
345
+ readonly pattern: "^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$";
346
+ };
347
+ readonly endpointPath: {
348
+ readonly type: "string";
349
+ readonly pattern: "^/[A-Za-z0-9/_-]+$";
350
+ };
351
+ readonly timeoutMs: {
352
+ readonly type: "integer";
353
+ readonly minimum: 100;
354
+ readonly maximum: 10000;
355
+ };
356
+ };
357
+ };
358
+ };
359
+ readonly editableParameters: {
360
+ readonly type: "array";
361
+ readonly maxItems: 100;
362
+ readonly items: {
363
+ readonly type: "object";
364
+ };
365
+ };
366
+ };
367
+ };
368
+ };
369
+ };
370
+ export declare function validateAppConfig(value: unknown): Diagnostic[];
371
+ export declare class AppConfigValidationError extends Error {
372
+ readonly diagnostics: Diagnostic[];
373
+ readonly code = "OPENXIANGDA_APP_CONFIG_INVALID";
374
+ constructor(diagnostics: Diagnostic[]);
375
+ }
376
+ export declare function defineOpenXiangdaApp(config: OpenXiangdaAppConfig): OpenXiangdaAppConfig;
377
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/compiler/config.ts"],"names":[],"mappings":"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"}