openxiangda-contracts 2.22.0 → 2.24.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.
- package/dist/application-diagnostics.d.ts +59 -0
- package/dist/application-diagnostics.d.ts.map +1 -0
- package/dist/application-diagnostics.js +104 -0
- package/dist/application-diagnostics.js.map +1 -0
- package/dist/browser.d.ts +1 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +1 -0
- package/dist/browser.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/native-compiler/compiler.d.ts.map +1 -1
- package/dist/native-compiler/compiler.js +24 -10
- package/dist/native-compiler/compiler.js.map +1 -1
- package/dist/native-compiler/decimal-reservation.d.ts +37 -0
- package/dist/native-compiler/decimal-reservation.d.ts.map +1 -0
- package/dist/native-compiler/decimal-reservation.js +71 -0
- package/dist/native-compiler/decimal-reservation.js.map +1 -0
- package/dist/native-compiler/index.cjs +4 -4
- package/dist/native-compiler/index.js +4 -4
- package/dist/native-version.d.ts +1 -1
- package/dist/native-version.js +1 -1
- package/dist/native.d.ts +10 -0
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/schemas.d.ts +180 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +31 -0
- package/dist/schemas.js.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +13 -0
- package/dist/validation.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { AppEventDecimalReservationDeclaration } from '../native.js';
|
|
2
|
+
export declare const DECIMAL_RESERVATION_EVENT_MODES: {
|
|
3
|
+
readonly 'openxiangda.workflow.instance.completed.v2': "commit";
|
|
4
|
+
readonly 'openxiangda.workflow.instance.rejected.v2': "release";
|
|
5
|
+
readonly 'openxiangda.workflow.instance.withdrawn.v2': "release";
|
|
6
|
+
};
|
|
7
|
+
type Resource = {
|
|
8
|
+
code: string;
|
|
9
|
+
fields: readonly {
|
|
10
|
+
code: string;
|
|
11
|
+
type: string;
|
|
12
|
+
options?: readonly {
|
|
13
|
+
value: string;
|
|
14
|
+
}[];
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
type Reserve = {
|
|
18
|
+
mode?: unknown;
|
|
19
|
+
resourceCode?: unknown;
|
|
20
|
+
statusFieldCode?: unknown;
|
|
21
|
+
};
|
|
22
|
+
export interface DecimalReservationEventDeclarationContext {
|
|
23
|
+
eventTypes: readonly string[];
|
|
24
|
+
execution?: unknown;
|
|
25
|
+
resources: readonly Resource[];
|
|
26
|
+
reservations: readonly Reserve[];
|
|
27
|
+
workflows: readonly {
|
|
28
|
+
code: string;
|
|
29
|
+
resourceCode?: string;
|
|
30
|
+
}[];
|
|
31
|
+
}
|
|
32
|
+
/** Shared by application and platform compilers; never creates runtime authority. */
|
|
33
|
+
export declare function normalizeDecimalReservationEventDeclaration(value: unknown, context: DecimalReservationEventDeclarationContext): AppEventDecimalReservationDeclaration;
|
|
34
|
+
/** Both compiler inputs use the canonical resource/workflow envelope here. */
|
|
35
|
+
export declare function decimalReservationEventContext(config: Record<string, any>, subscription: Record<string, any>): DecimalReservationEventDeclarationContext;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=decimal-reservation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimal-reservation.d.ts","sourceRoot":"","sources":["../../src/native-compiler/decimal-reservation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,cAAc,CAAC;AAE1E,eAAO,MAAM,+BAA+B;;;;CAIlC,CAAC;AAEX,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,SAAS;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC;AAC5H,KAAK,OAAO,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACrF,MAAM,WAAW,yCAAyC;IACxD,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC;IACjC,SAAS,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/D;AAED,qFAAqF;AACrF,wBAAgB,2CAA2C,CACzD,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,yCAAyC,GACjD,qCAAqC,CAuCvC;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAChC,yCAAyC,CAkB3C"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export const DECIMAL_RESERVATION_EVENT_MODES = {
|
|
2
|
+
'openxiangda.workflow.instance.completed.v2': 'commit',
|
|
3
|
+
'openxiangda.workflow.instance.rejected.v2': 'release',
|
|
4
|
+
'openxiangda.workflow.instance.withdrawn.v2': 'release',
|
|
5
|
+
};
|
|
6
|
+
/** Shared by application and platform compilers; never creates runtime authority. */
|
|
7
|
+
export function normalizeDecimalReservationEventDeclaration(value, context) {
|
|
8
|
+
const fail = () => { throw new Error('NATIVE_EVENT_DECIMAL_RESERVATION_INVALID'); };
|
|
9
|
+
const record = (input) => {
|
|
10
|
+
if (!input || typeof input !== 'object' || Array.isArray(input))
|
|
11
|
+
return fail();
|
|
12
|
+
return input;
|
|
13
|
+
};
|
|
14
|
+
const input = record(value);
|
|
15
|
+
if (Object.keys(input).some(key => !['resourceCode', 'workflowCode', 'outcomes'].includes(key)) ||
|
|
16
|
+
typeof input.resourceCode !== 'string' || !/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(input.resourceCode) ||
|
|
17
|
+
typeof input.workflowCode !== 'string' || !/^[A-Za-z0-9._:-]{1,128}$/.test(input.workflowCode) ||
|
|
18
|
+
context.execution !== undefined || !Array.isArray(input.outcomes) ||
|
|
19
|
+
!input.outcomes.length || input.outcomes.length > 3)
|
|
20
|
+
return fail();
|
|
21
|
+
const resource = context.resources.find(item => item.code === input.resourceCode);
|
|
22
|
+
const reservation = context.reservations.find(item => item.mode === 'reserve' && item.resourceCode === input.resourceCode);
|
|
23
|
+
const workflow = context.workflows.find(item => item.code === input.workflowCode);
|
|
24
|
+
if (!resource || !reservation || !workflow || workflow.resourceCode !== resource.code)
|
|
25
|
+
return fail();
|
|
26
|
+
const status = resource.fields.find(field => field.code === reservation.statusFieldCode);
|
|
27
|
+
if (status?.type !== 'option.single')
|
|
28
|
+
return fail();
|
|
29
|
+
const allowed = new Set(status.options?.map(option => option.value));
|
|
30
|
+
const seen = new Set();
|
|
31
|
+
const outcomes = input.outcomes.map(raw => {
|
|
32
|
+
const outcome = record(raw);
|
|
33
|
+
const eventType = outcome.eventType;
|
|
34
|
+
if (Object.keys(outcome).some(key => !['eventType', 'mode', 'eligibleChildStatuses'].includes(key)) ||
|
|
35
|
+
typeof eventType !== 'string' || !Object.prototype.hasOwnProperty.call(DECIMAL_RESERVATION_EVENT_MODES, eventType) ||
|
|
36
|
+
!context.eventTypes.includes(eventType) || seen.has(eventType) ||
|
|
37
|
+
outcome.mode !== DECIMAL_RESERVATION_EVENT_MODES[eventType] ||
|
|
38
|
+
!Array.isArray(outcome.eligibleChildStatuses) || !outcome.eligibleChildStatuses.length ||
|
|
39
|
+
outcome.eligibleChildStatuses.length > 16 ||
|
|
40
|
+
new Set(outcome.eligibleChildStatuses).size !== outcome.eligibleChildStatuses.length ||
|
|
41
|
+
outcome.eligibleChildStatuses.some(value => typeof value !== 'string' || !/^[A-Za-z0-9._:-]{1,128}$/.test(value) || !allowed.has(value)))
|
|
42
|
+
return fail();
|
|
43
|
+
seen.add(eventType);
|
|
44
|
+
return {
|
|
45
|
+
eventType: eventType,
|
|
46
|
+
mode: outcome.mode,
|
|
47
|
+
eligibleChildStatuses: [...outcome.eligibleChildStatuses].sort(),
|
|
48
|
+
};
|
|
49
|
+
}).sort((a, b) => a.eventType.localeCompare(b.eventType));
|
|
50
|
+
return { resourceCode: input.resourceCode, workflowCode: input.workflowCode, outcomes };
|
|
51
|
+
}
|
|
52
|
+
/** Both compiler inputs use the canonical resource/workflow envelope here. */
|
|
53
|
+
export function decimalReservationEventContext(config, subscription) {
|
|
54
|
+
const list = (value) => Array.isArray(value)
|
|
55
|
+
? value.filter(item => item && typeof item === 'object' && !Array.isArray(item)) : [];
|
|
56
|
+
return {
|
|
57
|
+
eventTypes: Array.isArray(subscription.eventTypes) ? subscription.eventTypes : [],
|
|
58
|
+
execution: subscription.execution,
|
|
59
|
+
resources: list(config.data?.resources).map(resource => ({
|
|
60
|
+
code: resource.code, fields: list(resource.schema?.fields).map(field => ({
|
|
61
|
+
code: field.code, type: field.type,
|
|
62
|
+
options: list(field.options).map(option => ({ value: option.value })),
|
|
63
|
+
})),
|
|
64
|
+
})),
|
|
65
|
+
reservations: list(config.backend?.operations).flatMap(operation => operation.platformAccess?.decimalReservation ? [operation.platformAccess.decimalReservation] : []),
|
|
66
|
+
workflows: list(config.workflows?.definitions).map(item => ({
|
|
67
|
+
code: item.definition?.code, resourceCode: item.definition?.subject?.resourceCode,
|
|
68
|
+
})),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=decimal-reservation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimal-reservation.js","sourceRoot":"","sources":["../../src/native-compiler/decimal-reservation.ts"],"names":[],"mappings":"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"}
|