openxiangda-contracts 2.8.0 → 2.10.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/native-compiler/compiler.d.ts +2 -0
- package/dist/native-compiler/compiler.d.ts.map +1 -1
- package/dist/native-compiler/compiler.js +28 -1
- package/dist/native-compiler/compiler.js.map +1 -1
- package/dist/native-compiler/index.cjs +3 -3
- package/dist/native-compiler/index.js +3 -3
- package/dist/native-version.d.ts +1 -0
- package/dist/native-version.d.ts.map +1 -1
- package/dist/native-version.js +1 -0
- package/dist/native-version.js.map +1 -1
- package/dist/native.d.ts +6 -0
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/notification.d.ts +55 -0
- package/dist/notification.d.ts.map +1 -1
- package/dist/schemas.d.ts +34 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +8 -0
- package/dist/schemas.js.map +1 -1
- package/package.json +1 -1
|
@@ -69,6 +69,7 @@ export interface NativeEventCapturePlanV2 {
|
|
|
69
69
|
authorizationFields: string[];
|
|
70
70
|
captureFields: string[];
|
|
71
71
|
digest: string;
|
|
72
|
+
capturedEventTypes?: string[];
|
|
72
73
|
}
|
|
73
74
|
/**
|
|
74
75
|
* Compiles the immutable data-event capture closure. The result deliberately
|
|
@@ -79,6 +80,7 @@ export declare function compileNativeEventCapturePlansV2(input: {
|
|
|
79
80
|
resources: JsonObject[];
|
|
80
81
|
dataPolicies: JsonObject[];
|
|
81
82
|
subscriptions: JsonObject[];
|
|
83
|
+
capturePolicies?: JsonObject[];
|
|
82
84
|
}): NativeEventCapturePlanV2[];
|
|
83
85
|
export {};
|
|
84
86
|
//# sourceMappingURL=compiler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,kCAAkC,IAAI,uCAAuC,EACnF,MAAM,aAAa,CAAC;AAwBrB,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAC3E,QAAA,MAAM,yBAAyB,YAA2C,CAAC;AAgF3E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;EAc7B,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,
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,kCAAkC,IAAI,uCAAuC,EACnF,MAAM,aAAa,CAAC;AAwBrB,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAC3E,QAAA,MAAM,yBAAyB,YAA2C,CAAC;AAgF3E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;EAc7B,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,CA8InC;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,UAAU,GACjB,uCAAuC,EAAE,CAwR3C;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"}
|
|
@@ -206,6 +206,7 @@ export function compileNativeApplicationConfiguration(input) {
|
|
|
206
206
|
resources: config.data.resources,
|
|
207
207
|
dataPolicies: config.authz.dataPolicies,
|
|
208
208
|
subscriptions: expectedContract.eventConsumers,
|
|
209
|
+
capturePolicies: config.events.capturePolicies,
|
|
209
210
|
}),
|
|
210
211
|
},
|
|
211
212
|
workflows: {
|
|
@@ -397,6 +398,9 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
|
|
|
397
398
|
},
|
|
398
399
|
]
|
|
399
400
|
: []),
|
|
401
|
+
...(config.events.capturePolicies?.length
|
|
402
|
+
? [{ code: 'events.capture-policy', declaration: config.events.capturePolicies }]
|
|
403
|
+
: []),
|
|
400
404
|
...(usesEvents
|
|
401
405
|
? [
|
|
402
406
|
{ code: 'events-v2', declaration: config.events },
|
|
@@ -493,6 +497,21 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
|
|
|
493
497
|
* selected at runtime by that same revision tuple.
|
|
494
498
|
*/
|
|
495
499
|
export function compileNativeEventCapturePlansV2(input) {
|
|
500
|
+
const capturePolicies = new Map();
|
|
501
|
+
const resources = new Set(input.resources.map(resource => String(resource.code)));
|
|
502
|
+
for (const [index, raw] of boundedArray(input.capturePolicies === undefined ? [] : input.capturePolicies, '/capturePlan/capturePolicies', 100).entries()) {
|
|
503
|
+
const pointer = `/capturePlan/capturePolicies/${index}`;
|
|
504
|
+
const policy = object(raw, pointer);
|
|
505
|
+
exactKeys(policy, ['resourceCode', 'mode'], pointer);
|
|
506
|
+
const code = resourceCode(policy.resourceCode, `${pointer}/resourceCode`);
|
|
507
|
+
if (!resources.has(code))
|
|
508
|
+
fail('NATIVE_EVENT_CAPTURE_RESOURCE_NOT_FOUND', pointer, { resourceCode: code });
|
|
509
|
+
if (capturePolicies.has(code))
|
|
510
|
+
fail('NATIVE_EVENT_CAPTURE_POLICY_DUPLICATE', pointer, { resourceCode: code });
|
|
511
|
+
if (policy.mode !== 'all' && policy.mode !== 'subscribed')
|
|
512
|
+
fail('NATIVE_EVENT_CAPTURE_MODE_INVALID', `${pointer}/mode`);
|
|
513
|
+
capturePolicies.set(code, policy.mode);
|
|
514
|
+
}
|
|
496
515
|
const policies = new Map(input.dataPolicies.map((raw, index) => {
|
|
497
516
|
const policy = object(raw, `/capturePlan/dataPolicies/${index}`);
|
|
498
517
|
return [String(policy.code), policy];
|
|
@@ -528,6 +547,7 @@ export function compileNativeEventCapturePlansV2(input) {
|
|
|
528
547
|
}
|
|
529
548
|
const filterFields = new Set();
|
|
530
549
|
const projectionFields = new Set();
|
|
550
|
+
const capturedEventTypes = new Set();
|
|
531
551
|
for (const [subscriptionIndex, subscription] of subscriptions.entries()) {
|
|
532
552
|
const eventTypes = boundedArray(subscription.eventTypes, `/capturePlan/subscriptions/${subscriptionIndex}/eventTypes`, 20).map(String);
|
|
533
553
|
if (!eventTypes.some(type => type.startsWith('openxiangda.data.'))) {
|
|
@@ -540,6 +560,10 @@ export function compileNativeEventCapturePlansV2(input) {
|
|
|
540
560
|
if (selectedResources.length && !selectedResources.includes(code)) {
|
|
541
561
|
continue;
|
|
542
562
|
}
|
|
563
|
+
for (const type of eventTypes) {
|
|
564
|
+
if (DATA_EVENT_TYPES_V2.includes(type))
|
|
565
|
+
capturedEventTypes.add(type);
|
|
566
|
+
}
|
|
543
567
|
for (const field of eventCaptureFilterFieldsV2(filter, `/capturePlan/subscriptions/${subscriptionIndex}/filter`)) {
|
|
544
568
|
filterFields.add(field);
|
|
545
569
|
}
|
|
@@ -577,6 +601,9 @@ export function compileNativeEventCapturePlansV2(input) {
|
|
|
577
601
|
}
|
|
578
602
|
const plan = {
|
|
579
603
|
resourceCode: code,
|
|
604
|
+
...(capturePolicies.get(code) === 'subscribed'
|
|
605
|
+
? { capturedEventTypes: [...capturedEventTypes].sort() }
|
|
606
|
+
: {}),
|
|
580
607
|
filterFields: [...filterFields].sort(),
|
|
581
608
|
projectionFields: [...projectionFields].sort(),
|
|
582
609
|
authorizationFields: [...authorizationFields].sort(),
|
|
@@ -676,7 +703,7 @@ function validateConfigurationEnvelope(config, appCode) {
|
|
|
676
703
|
boundedArray(data.resourceDetailRoutes, '/config/data/resourceDetailRoutes', 100);
|
|
677
704
|
}
|
|
678
705
|
const events = object(config.events, '/config/events');
|
|
679
|
-
exactKeys(events, ['schemas', 'subscriptions', 'timers', 'dateTriggers'], '/config/events');
|
|
706
|
+
exactKeys(events, ['schemas', 'subscriptions', 'timers', 'dateTriggers'], '/config/events', ['capturePolicies']);
|
|
680
707
|
boundedArray(events.schemas, '/config/events/schemas', 100);
|
|
681
708
|
boundedArray(events.subscriptions, '/config/events/subscriptions', 100);
|
|
682
709
|
boundedArray(events.timers, '/config/events/timers', 100);
|