openxiangda-contracts 2.26.0 → 2.28.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/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +2 -0
- package/dist/browser.js.map +1 -1
- package/dist/concurrency.d.ts +145 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +2 -0
- package/dist/concurrency.js.map +1 -0
- 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 +25 -2
- package/dist/native-compiler/compiler.js.map +1 -1
- package/dist/native-compiler/data-surface.js +1 -1
- package/dist/native-compiler/data-surface.js.map +1 -1
- package/dist/native-compiler/index.cjs +5 -5
- package/dist/native-compiler/index.d.ts +2 -0
- package/dist/native-compiler/index.d.ts.map +1 -1
- package/dist/native-compiler/index.js +5 -5
- package/dist/native-compiler/managed-concurrency.d.ts +10 -0
- package/dist/native-compiler/managed-concurrency.d.ts.map +1 -0
- package/dist/native-compiler/managed-concurrency.js +238 -0
- package/dist/native-compiler/managed-concurrency.js.map +1 -0
- package/dist/native-compiler/unique-keys.d.ts +102 -0
- package/dist/native-compiler/unique-keys.d.ts.map +1 -0
- package/dist/native-compiler/unique-keys.js +112 -0
- package/dist/native-compiler/unique-keys.js.map +1 -0
- package/dist/native-version.d.ts +2 -0
- package/dist/native-version.d.ts.map +1 -1
- package/dist/native-version.js +2 -0
- package/dist/native-version.js.map +1 -1
- package/dist/native.d.ts +2 -0
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/schemas.d.ts +178 -2
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +5 -1
- package/dist/schemas.js.map +1 -1
- package/dist/surface.d.ts +1 -1
- package/dist/surface.d.ts.map +1 -1
- package/dist/types.d.ts +18 -0
- 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 +9 -0
- package/dist/validation.js.map +1 -1
- package/package.json +1 -1
package/dist/browser.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** Browser-safe contract surface. Node-only canonical hashing stays on the root export. */
|
|
2
|
+
export * from './concurrency.js';
|
|
2
3
|
export * from './field-values.js';
|
|
3
4
|
export * from './event-catalog.js';
|
|
4
5
|
export * from './ai.js';
|
|
@@ -15,4 +16,5 @@ export * from './workflow-correction.js';
|
|
|
15
16
|
export * from './native-compiler/data-audit-access.js';
|
|
16
17
|
export * from './process-resolution.js';
|
|
17
18
|
export * from './application-diagnostics.js';
|
|
19
|
+
export * from './native-compiler/unique-keys.js';
|
|
18
20
|
//# sourceMappingURL=browser.d.ts.map
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC"}
|
package/dist/browser.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** Browser-safe contract surface. Node-only canonical hashing stays on the root export. */
|
|
2
|
+
export * from './concurrency.js';
|
|
2
3
|
export * from './field-values.js';
|
|
3
4
|
export * from './event-catalog.js';
|
|
4
5
|
export * from './ai.js';
|
|
@@ -15,4 +16,5 @@ export * from './workflow-correction.js';
|
|
|
15
16
|
export * from './native-compiler/data-audit-access.js';
|
|
16
17
|
export * from './process-resolution.js';
|
|
17
18
|
export * from './application-diagnostics.js';
|
|
19
|
+
export * from './native-compiler/unique-keys.js';
|
|
18
20
|
//# sourceMappingURL=browser.js.map
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/** Optional platform-owned concurrency. No application Redis, SQL or worker code. */
|
|
2
|
+
export type ConcurrencyParameter = {
|
|
3
|
+
type: 'uuid';
|
|
4
|
+
} | {
|
|
5
|
+
type: 'string';
|
|
6
|
+
values: string[];
|
|
7
|
+
} | {
|
|
8
|
+
type: 'integer';
|
|
9
|
+
minimum: number;
|
|
10
|
+
maximum: number;
|
|
11
|
+
};
|
|
12
|
+
export type ConcurrencyBinding = {
|
|
13
|
+
from: 'input';
|
|
14
|
+
key: string;
|
|
15
|
+
} | {
|
|
16
|
+
from: 'actor';
|
|
17
|
+
} | {
|
|
18
|
+
from: 'literal';
|
|
19
|
+
value: string | number | boolean | null;
|
|
20
|
+
} | {
|
|
21
|
+
from: 'allocation';
|
|
22
|
+
};
|
|
23
|
+
export interface ManagedReadDeclaration {
|
|
24
|
+
code: string;
|
|
25
|
+
resourceCode: string;
|
|
26
|
+
parameters: Record<string, ConcurrencyParameter>;
|
|
27
|
+
select: string[];
|
|
28
|
+
where?: Array<{
|
|
29
|
+
field: string;
|
|
30
|
+
value: ConcurrencyBinding;
|
|
31
|
+
}>;
|
|
32
|
+
limit: number;
|
|
33
|
+
scope: 'subject' | 'application';
|
|
34
|
+
freshSeconds: number;
|
|
35
|
+
staleSeconds: number;
|
|
36
|
+
maxKeys: number;
|
|
37
|
+
sourcePerSecond: number;
|
|
38
|
+
/** Fields whose changes invalidate the snapshot; select/filter fields are mandatory. */
|
|
39
|
+
dependencies: string[];
|
|
40
|
+
}
|
|
41
|
+
export interface AdmissionPolicy {
|
|
42
|
+
perSecond: number;
|
|
43
|
+
burst: number;
|
|
44
|
+
maxInFlight: number;
|
|
45
|
+
maxQueue: number;
|
|
46
|
+
maxWaitSeconds: number;
|
|
47
|
+
permitSeconds: number;
|
|
48
|
+
}
|
|
49
|
+
export interface IntegerQuotaDeclaration {
|
|
50
|
+
code: string;
|
|
51
|
+
sourceResource: string;
|
|
52
|
+
capacityField: string;
|
|
53
|
+
allocationResource: string;
|
|
54
|
+
allocationField: string;
|
|
55
|
+
/** Omit to allow immediate committed allocations only. */
|
|
56
|
+
reservationSeconds?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface QueuedCommandDeclaration {
|
|
59
|
+
code: string;
|
|
60
|
+
capability: string;
|
|
61
|
+
parameters: Record<string, ConcurrencyParameter>;
|
|
62
|
+
resourceKey: ConcurrencyBinding;
|
|
63
|
+
admission: AdmissionPolicy;
|
|
64
|
+
deadlineSeconds: number;
|
|
65
|
+
guards?: Array<{
|
|
66
|
+
resourceCode: string;
|
|
67
|
+
id: ConcurrencyBinding;
|
|
68
|
+
conditions: Array<{
|
|
69
|
+
kind?: 'value';
|
|
70
|
+
field: string;
|
|
71
|
+
operator: 'eq' | 'neq' | 'lt' | 'lte' | 'gt' | 'gte';
|
|
72
|
+
value: ConcurrencyBinding;
|
|
73
|
+
} | {
|
|
74
|
+
kind: 'database-now';
|
|
75
|
+
field: string;
|
|
76
|
+
operator: 'lt' | 'lte' | 'gt' | 'gte';
|
|
77
|
+
}>;
|
|
78
|
+
}>;
|
|
79
|
+
operations: Array<{
|
|
80
|
+
operation: 'create' | 'update';
|
|
81
|
+
resourceCode: string;
|
|
82
|
+
id?: ConcurrencyBinding;
|
|
83
|
+
expectedRevision?: ConcurrencyBinding;
|
|
84
|
+
data: Record<string, ConcurrencyBinding>;
|
|
85
|
+
}>;
|
|
86
|
+
quota?: {
|
|
87
|
+
pool: string;
|
|
88
|
+
action: 'allocate' | 'confirm' | 'release';
|
|
89
|
+
units?: number;
|
|
90
|
+
mode?: 'reserved' | 'committed';
|
|
91
|
+
allocation?: ConcurrencyBinding;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export interface ManagedConcurrencyDeclaration {
|
|
95
|
+
version: 1;
|
|
96
|
+
/** Shared by all command/resource queues in this application and environment. */
|
|
97
|
+
admission: {
|
|
98
|
+
perSecond: number;
|
|
99
|
+
burst: number;
|
|
100
|
+
maxInFlight: number;
|
|
101
|
+
};
|
|
102
|
+
reads: ManagedReadDeclaration[];
|
|
103
|
+
quotas: IntegerQuotaDeclaration[];
|
|
104
|
+
commands: QueuedCommandDeclaration[];
|
|
105
|
+
}
|
|
106
|
+
export interface ManagedReadResult<T = Record<string, unknown>> {
|
|
107
|
+
items: T[];
|
|
108
|
+
generatedAt: string;
|
|
109
|
+
freshUntil: string;
|
|
110
|
+
staleUntil: string;
|
|
111
|
+
version: string;
|
|
112
|
+
freshness: 'fresh' | 'stale';
|
|
113
|
+
}
|
|
114
|
+
export type CommandState = 'accepted' | 'executing' | 'retry_wait' | 'succeeded' | 'rejected' | 'expired' | 'cancelled';
|
|
115
|
+
export interface CommandReceipt {
|
|
116
|
+
operationId: string;
|
|
117
|
+
command: string;
|
|
118
|
+
requestKey: string;
|
|
119
|
+
state: CommandState;
|
|
120
|
+
acceptedAt: string;
|
|
121
|
+
retryAfterMs: number;
|
|
122
|
+
result?: {
|
|
123
|
+
items?: Array<{
|
|
124
|
+
id: string;
|
|
125
|
+
revision?: number;
|
|
126
|
+
}>;
|
|
127
|
+
allocation?: {
|
|
128
|
+
id: string;
|
|
129
|
+
state: string;
|
|
130
|
+
units: number;
|
|
131
|
+
expiresAt: string | null;
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
errorCode?: string;
|
|
135
|
+
}
|
|
136
|
+
export interface WaitingReceipt {
|
|
137
|
+
state: 'waiting' | 'admitted' | 'expired';
|
|
138
|
+
ticket: string;
|
|
139
|
+
requestKey: string;
|
|
140
|
+
retryAfterMs: number;
|
|
141
|
+
position?: number;
|
|
142
|
+
permit?: string;
|
|
143
|
+
expiresAt: string;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=concurrency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../src/concurrency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency.js","sourceRoot":"","sources":["../src/concurrency.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './canonical.js';
|
|
2
|
+
export * from './concurrency.js';
|
|
2
3
|
export * from './native-compiler/decimal-reservation.js';
|
|
3
4
|
export * from './native-compiler/data-audit-access.js';
|
|
4
5
|
export * from './ai.js';
|
|
@@ -20,4 +21,5 @@ export * from './native-compiler/workflow-instance-policy.js';
|
|
|
20
21
|
export { validateDataFieldDefinition } from './data-field-validation.js';
|
|
21
22
|
export * from './process-resolution.js';
|
|
22
23
|
export * from './application-diagnostics.js';
|
|
24
|
+
export * from './native-compiler/unique-keys.js';
|
|
23
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './canonical.js';
|
|
2
|
+
export * from './concurrency.js';
|
|
2
3
|
export * from './native-compiler/decimal-reservation.js';
|
|
3
4
|
export * from './native-compiler/data-audit-access.js';
|
|
4
5
|
export * from './ai.js';
|
|
@@ -20,4 +21,5 @@ export * from './native-compiler/workflow-instance-policy.js';
|
|
|
20
21
|
export { validateDataFieldDefinition } from './data-field-validation.js';
|
|
21
22
|
export * from './process-resolution.js';
|
|
22
23
|
export * from './application-diagnostics.js';
|
|
24
|
+
export * from './native-compiler/unique-keys.js';
|
|
23
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,kCAAkC,IAAI,uCAAuC,EACnF,MAAM,aAAa,CAAC;AAyBrB,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAC3E,QAAA,MAAM,yBAAyB,YAA2C,CAAC;AAgF3E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAe7B,CAAC;AACZ,eAAO,MAAM,mBAAmB,6HAItB,CAAC;AACX,eAAO,MAAM,uBAAuB,u/CAkC1B,CAAC;AAGX,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1C,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B,CAAC,CAAC,GAAG,UAAU;IAC3D,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,aAAa,EAAE,OAAO,iBAAiB,CAAC;IACxC,uBAAuB,EAAE,OAAO,yBAAyB,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,6BAA6B,CAAC;QACrC,IAAI,EAAE,6BAA6B,CAAC;QACpC,MAAM,EAAE,6BAA6B,CAAC;QACtC,SAAS,EAAE,6BAA6B,CAAC;QACzC,OAAO,EAAE,6BAA6B,CAAC;QACvC,SAAS,EAAE,6BAA6B,CAAC;KAC1C,CAAC;IACF,4BAA4B,EAAE,uCAAuC,EAAE,CAAC;IACxE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAG3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAY5C;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,gCAAgC,GACtC,iCAAiC,CAmJnC;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,UAAU,GACjB,uCAAuC,EAAE,CAqT3C;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;CAChC,GAAG,wBAAwB,EAAE,CA4J7B"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { NativeUniqueKeyContractError, parseNativeUniqueKeys } from './unique-keys.js';
|
|
2
|
+
import { validateManagedConcurrency, ManagedConcurrencyContractError } from './managed-concurrency.js';
|
|
1
3
|
import { normalizeDecimalReservationEventDeclaration, decimalReservationEventContext } from './decimal-reservation.js';
|
|
2
4
|
import { NativeDecimalLifecycleContractError, parseDecimalReservationLifecycle, validateDecimalReservationLifecycles } from './decimal-lifecycle.js';
|
|
3
5
|
import { compileNativeEventAction } from './event-action.js';
|
|
@@ -200,6 +202,7 @@ export function compileNativeApplicationConfiguration(input) {
|
|
|
200
202
|
appCode,
|
|
201
203
|
resources: config.data.resources,
|
|
202
204
|
resourceContracts: expectedContract.resources,
|
|
205
|
+
...(expectedContract.concurrency ? { concurrency: expectedContract.concurrency } : {}),
|
|
203
206
|
...(expectedContract.subjectReadSurfaces
|
|
204
207
|
? { subjectReadSurfaces: expectedContract.subjectReadSurfaces }
|
|
205
208
|
: {}),
|
|
@@ -322,6 +325,10 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
|
|
|
322
325
|
},
|
|
323
326
|
};
|
|
324
327
|
const usages = [
|
|
328
|
+
...(resources.some(resource => resource.uniqueKeys?.length)
|
|
329
|
+
? [{ code: 'data.unique-keys', declaration: resources.filter(resource => resource.uniqueKeys?.length)
|
|
330
|
+
.map(resource => ({ code: resource.code, uniqueKeys: resource.uniqueKeys })) }] : []),
|
|
331
|
+
...(config.data.concurrency ? [{ code: 'data.managed-concurrency', declaration: config.data.concurrency }] : []),
|
|
325
332
|
...(resources.some(resource => resource.decimalReservationLifecycle)
|
|
326
333
|
? [{ code: 'data.decimal-reservation-lifecycle',
|
|
327
334
|
declaration: resources.filter(resource => resource.decimalReservationLifecycle)
|
|
@@ -734,6 +741,7 @@ function validateConfigurationEnvelope(config, appCode) {
|
|
|
734
741
|
exactKeys(data, ['resources'], '/config/data', [
|
|
735
742
|
'resourceDetailRoutes',
|
|
736
743
|
'subjectReadSurfaces',
|
|
744
|
+
'concurrency',
|
|
737
745
|
]);
|
|
738
746
|
boundedArray(data.resources, '/config/data/resources', 100);
|
|
739
747
|
if (data.subjectReadSurfaces !== undefined) {
|
|
@@ -814,6 +822,7 @@ function validateContractEnvelope(contract, appCode, configDigest) {
|
|
|
814
822
|
'publicAccess',
|
|
815
823
|
'adminAccess',
|
|
816
824
|
'subjectReadSurfaces',
|
|
825
|
+
'concurrency',
|
|
817
826
|
]);
|
|
818
827
|
equal(contract.schemaVersion, CONTRACT_SCHEMA, '/contracts/schemaVersion');
|
|
819
828
|
equal(contract.compilerContractVersion, COMPILER_CONTRACT_VERSION, '/contracts/compilerContractVersion');
|
|
@@ -947,6 +956,15 @@ function compileExpectedContract(config, configDigest, generatorVersion) {
|
|
|
947
956
|
]);
|
|
948
957
|
validateAdminNavigationReferences(config);
|
|
949
958
|
const adminPages = compileAdminPages(config);
|
|
959
|
+
let concurrency;
|
|
960
|
+
try {
|
|
961
|
+
concurrency = validateManagedConcurrency(config.data.concurrency, config.data.resources, capabilities);
|
|
962
|
+
}
|
|
963
|
+
catch (error) {
|
|
964
|
+
if (error instanceof ManagedConcurrencyContractError)
|
|
965
|
+
fail(error.code, error.pointer, { reason: error.reason });
|
|
966
|
+
throw error;
|
|
967
|
+
}
|
|
950
968
|
const subjectReadSurfaces = compileSubjectReadSurfaces(config, capabilities);
|
|
951
969
|
const operations = compileOperations(config);
|
|
952
970
|
try {
|
|
@@ -966,6 +984,7 @@ function compileExpectedContract(config, configDigest, generatorVersion) {
|
|
|
966
984
|
perspectives: config.perspectives,
|
|
967
985
|
resources: compileResources(config),
|
|
968
986
|
...(subjectReadSurfaces.length ? { subjectReadSurfaces } : {}),
|
|
987
|
+
...(concurrency ? { concurrency } : {}),
|
|
969
988
|
capabilities: sorted(capabilities, item => item.code),
|
|
970
989
|
operations,
|
|
971
990
|
eventConsumers,
|
|
@@ -3537,7 +3556,7 @@ function validateAuthorizationReferences(config, capabilities) {
|
|
|
3537
3556
|
const surface = resource.surface === undefined
|
|
3538
3557
|
? {}
|
|
3539
3558
|
: object(resource.surface, `${resourcePointer}/surface`);
|
|
3540
|
-
if ((surface.mutationOwner || 'native')
|
|
3559
|
+
if (['native', 'queued-command'].includes(surface.mutationOwner || 'native'))
|
|
3541
3560
|
return;
|
|
3542
3561
|
const resourceCapabilities = object(resource.capabilities, `${resourcePointer}/capabilities`);
|
|
3543
3562
|
for (const operation of ['create', 'update', 'delete']) {
|
|
@@ -4699,6 +4718,7 @@ function validateResource(raw, pointer, appCode) {
|
|
|
4699
4718
|
'surface',
|
|
4700
4719
|
'invariants',
|
|
4701
4720
|
'decimalReservationLifecycle',
|
|
4721
|
+
'uniqueKeys',
|
|
4702
4722
|
'capabilities',
|
|
4703
4723
|
'dataPolicyCode',
|
|
4704
4724
|
'fieldPolicies',
|
|
@@ -4712,14 +4732,16 @@ function validateResource(raw, pointer, appCode) {
|
|
|
4712
4732
|
let fields;
|
|
4713
4733
|
let invariants;
|
|
4714
4734
|
let decimalReservationLifecycle;
|
|
4735
|
+
let uniqueKeys;
|
|
4715
4736
|
try {
|
|
4716
4737
|
decimalReservationLifecycle = parseDecimalReservationLifecycle(resource.decimalReservationLifecycle, `${pointer}/decimalReservationLifecycle`);
|
|
4717
4738
|
fields = parseNativeDataFieldsV2(schema.fields, `${pointer}/schema/fields`);
|
|
4739
|
+
uniqueKeys = parseNativeUniqueKeys(resource.uniqueKeys, fields, `${pointer}/uniqueKeys`);
|
|
4718
4740
|
invariants = parseNativeDataResourceInvariantsV2(resource.invariants, fields, `${pointer}/invariants`);
|
|
4719
4741
|
validateNativeDataResourceSurfaceV2(resource.surface, fields, `${pointer}/surface`);
|
|
4720
4742
|
}
|
|
4721
4743
|
catch (error) {
|
|
4722
|
-
if (error instanceof NativeDataFieldContractV2Error || error instanceof NativeDecimalLifecycleContractError) {
|
|
4744
|
+
if (error instanceof NativeDataFieldContractV2Error || error instanceof NativeDecimalLifecycleContractError || error instanceof NativeUniqueKeyContractError) {
|
|
4723
4745
|
fail(error.code, error.pointer);
|
|
4724
4746
|
}
|
|
4725
4747
|
throw error;
|
|
@@ -4754,6 +4776,7 @@ function validateResource(raw, pointer, appCode) {
|
|
|
4754
4776
|
schema: { fields },
|
|
4755
4777
|
...(resource.invariants === undefined ? {} : { invariants }),
|
|
4756
4778
|
...(decimalReservationLifecycle ? { decimalReservationLifecycle } : {}),
|
|
4779
|
+
...(uniqueKeys !== undefined ? { uniqueKeys } : {}),
|
|
4757
4780
|
capabilities,
|
|
4758
4781
|
fieldPolicies,
|
|
4759
4782
|
};
|