@blue-repository/types 0.10.0 → 0.12.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/README.md +1 -1
- package/dist/meta.d.ts +2 -2
- package/dist/meta.d.ts.map +1 -1
- package/dist/meta.js +2 -3
- package/dist/meta.js.map +1 -1
- package/dist/packages/common/blue-ids.d.ts +1 -0
- package/dist/packages/common/blue-ids.d.ts.map +1 -1
- package/dist/packages/common/blue-ids.js +1 -0
- package/dist/packages/common/blue-ids.js.map +1 -1
- package/dist/packages/common/contents/Currency.d.ts +8 -0
- package/dist/packages/common/contents/Currency.d.ts.map +1 -0
- package/dist/packages/common/contents/Currency.js +8 -0
- package/dist/packages/common/contents/Currency.js.map +1 -0
- package/dist/packages/common/contents/index.d.ts +8 -0
- package/dist/packages/common/contents/index.d.ts.map +1 -1
- package/dist/packages/common/contents/index.js +3 -0
- package/dist/packages/common/contents/index.js.map +1 -1
- package/dist/packages/common/index.d.ts +22 -0
- package/dist/packages/common/index.d.ts.map +1 -1
- package/dist/packages/common/meta.d.ts +10 -0
- package/dist/packages/common/meta.d.ts.map +1 -1
- package/dist/packages/common/meta.js +11 -0
- package/dist/packages/common/meta.js.map +1 -1
- package/dist/packages/common/schemas/Currency.d.ts +8 -0
- package/dist/packages/common/schemas/Currency.d.ts.map +1 -0
- package/dist/packages/common/schemas/Currency.js +5 -0
- package/dist/packages/common/schemas/Currency.js.map +1 -0
- package/dist/packages/common/schemas/index.d.ts +6 -0
- package/dist/packages/common/schemas/index.d.ts.map +1 -1
- package/dist/packages/common/schemas/index.js +3 -0
- package/dist/packages/common/schemas/index.js.map +1 -1
- package/dist/packages/conversation/blue-ids.d.ts +10 -7
- package/dist/packages/conversation/blue-ids.d.ts.map +1 -1
- package/dist/packages/conversation/blue-ids.js +10 -7
- package/dist/packages/conversation/blue-ids.js.map +1 -1
- package/dist/packages/conversation/contents/AcceptChangeWorkflow.d.ts +1 -1
- package/dist/packages/conversation/contents/AcceptChangeWorkflow.js +1 -1
- package/dist/packages/conversation/contents/AcceptChangeWorkflow.js.map +1 -1
- package/dist/packages/conversation/contents/ChangeOperation.d.ts +1 -1
- package/dist/packages/conversation/contents/ChangeOperation.js +1 -1
- package/dist/packages/conversation/contents/ChangeRequest.d.ts +8 -8
- package/dist/packages/conversation/contents/ChangeRequest.js +8 -8
- package/dist/packages/conversation/contents/ChangeRequest.js.map +1 -1
- package/dist/packages/conversation/contents/ChangeWorkflow.d.ts +2 -2
- package/dist/packages/conversation/contents/ChangeWorkflow.js +2 -2
- package/dist/packages/conversation/contents/ChangeWorkflow.js.map +1 -1
- package/dist/packages/conversation/contents/CustomerActionRequested.d.ts +44 -0
- package/dist/packages/conversation/contents/CustomerActionRequested.d.ts.map +1 -0
- package/dist/packages/conversation/contents/CustomerActionRequested.js +44 -0
- package/dist/packages/conversation/contents/CustomerActionRequested.js.map +1 -0
- package/dist/packages/conversation/contents/CustomerConsent.d.ts +233 -0
- package/dist/packages/conversation/contents/CustomerConsent.d.ts.map +1 -0
- package/dist/packages/conversation/contents/CustomerConsent.js +244 -0
- package/dist/packages/conversation/contents/CustomerConsent.js.map +1 -0
- package/dist/packages/conversation/contents/CustomerConsentRevoked.d.ts +17 -0
- package/dist/packages/conversation/contents/CustomerConsentRevoked.d.ts.map +1 -0
- package/dist/packages/conversation/contents/CustomerConsentRevoked.js +17 -0
- package/dist/packages/conversation/contents/CustomerConsentRevoked.js.map +1 -0
- package/dist/packages/conversation/contents/ProposeChangeOperation.d.ts +1 -1
- package/dist/packages/conversation/contents/ProposeChangeOperation.js +1 -1
- package/dist/packages/conversation/contents/ProposeChangeWorkflow.d.ts +2 -2
- package/dist/packages/conversation/contents/ProposeChangeWorkflow.js +2 -2
- package/dist/packages/conversation/contents/ProposeChangeWorkflow.js.map +1 -1
- package/dist/packages/conversation/contents/RejectChangeWorkflow.d.ts +1 -1
- package/dist/packages/conversation/contents/RejectChangeWorkflow.js +1 -1
- package/dist/packages/conversation/contents/RejectChangeWorkflow.js.map +1 -1
- package/dist/packages/conversation/contents/index.d.ts +482 -188
- package/dist/packages/conversation/contents/index.d.ts.map +1 -1
- package/dist/packages/conversation/contents/index.js +30 -21
- package/dist/packages/conversation/contents/index.js.map +1 -1
- package/dist/packages/conversation/index.d.ts +1319 -390
- package/dist/packages/conversation/index.d.ts.map +1 -1
- package/dist/packages/conversation/meta.d.ts +57 -27
- package/dist/packages/conversation/meta.d.ts.map +1 -1
- package/dist/packages/conversation/meta.js +53 -20
- package/dist/packages/conversation/meta.js.map +1 -1
- package/dist/packages/conversation/schemas/ChangeOperation.d.ts +5 -5
- package/dist/packages/conversation/schemas/ChangeRequest.d.ts +3 -3
- package/dist/packages/conversation/schemas/ChangeRequest.js +1 -1
- package/dist/packages/conversation/schemas/ChangeRequest.js.map +1 -1
- package/dist/packages/conversation/schemas/ChangeWorkflow.d.ts +5 -5
- package/dist/packages/conversation/schemas/CustomerActionRequested.d.ts +40 -0
- package/dist/packages/conversation/schemas/CustomerActionRequested.d.ts.map +1 -0
- package/dist/packages/conversation/schemas/CustomerActionRequested.js +15 -0
- package/dist/packages/conversation/schemas/CustomerActionRequested.js.map +1 -0
- package/dist/packages/conversation/schemas/CustomerConsent.d.ts +548 -0
- package/dist/packages/conversation/schemas/CustomerConsent.d.ts.map +1 -0
- package/dist/packages/conversation/schemas/CustomerConsent.js +31 -0
- package/dist/packages/conversation/schemas/CustomerConsent.js.map +1 -0
- package/dist/packages/conversation/schemas/CustomerConsentRevoked.d.ts +29 -0
- package/dist/packages/conversation/schemas/CustomerConsentRevoked.d.ts.map +1 -0
- package/dist/packages/conversation/schemas/CustomerConsentRevoked.js +11 -0
- package/dist/packages/conversation/schemas/CustomerConsentRevoked.js.map +1 -0
- package/dist/packages/conversation/schemas/DocumentBootstrapFailed.d.ts +2 -2
- package/dist/packages/conversation/schemas/DocumentBootstrapResponded.d.ts +2 -2
- package/dist/packages/conversation/schemas/ProposeChangeOperation.d.ts +5 -5
- package/dist/packages/conversation/schemas/ProposeChangeWorkflow.d.ts +5 -5
- package/dist/packages/conversation/schemas/index.d.ts +645 -34
- package/dist/packages/conversation/schemas/index.d.ts.map +1 -1
- package/dist/packages/conversation/schemas/index.js +16 -7
- package/dist/packages/conversation/schemas/index.js.map +1 -1
- package/dist/packages/myos/index.d.ts +284 -284
- package/dist/packages/myos/schemas/AddingParticipantRequested.d.ts +4 -4
- package/dist/packages/myos/schemas/AddingParticipantResponded.d.ts +6 -6
- package/dist/packages/myos/schemas/CallOperationFailed.d.ts +2 -2
- package/dist/packages/myos/schemas/ChatGPTConnectorAgent.d.ts +6 -6
- package/dist/packages/myos/schemas/DocumentSessionBootstrap.d.ts +4 -4
- package/dist/packages/myos/schemas/LinkedDocumentsPermissionGrantToAccount.d.ts +60 -60
- package/dist/packages/myos/schemas/LinkedDocumentsPermissionGrantToDocument.d.ts +34 -34
- package/dist/packages/myos/schemas/LinkedDocumentsPermissionRejected.d.ts +2 -2
- package/dist/packages/myos/schemas/LinkedDocumentsPermissionRevokeRequested.d.ts +2 -2
- package/dist/packages/myos/schemas/LinkedDocumentsPermissionRevoked.d.ts +2 -2
- package/dist/packages/myos/schemas/LinkedDocumentsPermissionRevokingInProgress.d.ts +2 -2
- package/dist/packages/myos/schemas/MyOSAdminBase.d.ts +6 -6
- package/dist/packages/myos/schemas/MyOSTimelineChannel.d.ts +2 -2
- package/dist/packages/myos/schemas/Participant.d.ts +2 -2
- package/dist/packages/myos/schemas/ParticipantActivated.d.ts +4 -4
- package/dist/packages/myos/schemas/ParticipantResolved.d.ts +4 -4
- package/dist/packages/myos/schemas/SingleDocumentPermissionGrantResponded.d.ts +2 -2
- package/dist/packages/myos/schemas/SingleDocumentPermissionGrantToAccount.d.ts +60 -60
- package/dist/packages/myos/schemas/SingleDocumentPermissionGrantToDocument.d.ts +34 -34
- package/dist/packages/myos/schemas/SingleDocumentPermissionRejected.d.ts +2 -2
- package/dist/packages/myos/schemas/SingleDocumentPermissionRevokeRequested.d.ts +2 -2
- package/dist/packages/myos/schemas/SubscriptionToSessionFailed.d.ts +2 -2
- package/dist/packages/myos/schemas/SubscriptionToSessionRevoked.d.ts +2 -2
- package/dist/packages/myos/schemas/WorkerAgencyPermissionGrant.d.ts +34 -34
- package/dist/packages/myos/schemas/WorkerAgencyPermissionRejected.d.ts +2 -2
- package/dist/packages/myos/schemas/WorkerAgencyPermissionRevokeRequested.d.ts +2 -2
- package/dist/packages/myos/schemas/index.d.ts +284 -284
- package/dist/packages/paynote/blue-ids.d.ts +10 -2
- package/dist/packages/paynote/blue-ids.d.ts.map +1 -1
- package/dist/packages/paynote/blue-ids.js +10 -2
- package/dist/packages/paynote/blue-ids.js.map +1 -1
- package/dist/packages/paynote/contents/CardTransactionMonitoringRequestRejected.d.ts +34 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringRequestRejected.d.ts.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringRequestRejected.js +34 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringRequestRejected.js.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringStarted.d.ts +38 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringStarted.d.ts.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringStarted.js +38 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringStarted.js.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringStopped.d.ts +30 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringStopped.d.ts.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringStopped.js +30 -0
- package/dist/packages/paynote/contents/CardTransactionMonitoringStopped.js.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionPayNote.d.ts +13 -0
- package/dist/packages/paynote/contents/CardTransactionPayNote.d.ts.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionPayNote.js +13 -0
- package/dist/packages/paynote/contents/CardTransactionPayNote.js.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionReport.d.ts +43 -0
- package/dist/packages/paynote/contents/CardTransactionReport.d.ts.map +1 -0
- package/dist/packages/paynote/contents/CardTransactionReport.js +43 -0
- package/dist/packages/paynote/contents/CardTransactionReport.js.map +1 -0
- package/dist/packages/paynote/contents/MerchantToCustomerPayNote.d.ts +8 -0
- package/dist/packages/paynote/contents/MerchantToCustomerPayNote.d.ts.map +1 -0
- package/dist/packages/paynote/contents/MerchantToCustomerPayNote.js +8 -0
- package/dist/packages/paynote/contents/MerchantToCustomerPayNote.js.map +1 -0
- package/dist/packages/paynote/contents/PayNote.d.ts +44 -0
- package/dist/packages/paynote/contents/PayNote.d.ts.map +1 -1
- package/dist/packages/paynote/contents/PayNote.js +46 -0
- package/dist/packages/paynote/contents/PayNote.js.map +1 -1
- package/dist/packages/paynote/contents/PayNoteDelivery.d.ts +4 -10
- package/dist/packages/paynote/contents/PayNoteDelivery.d.ts.map +1 -1
- package/dist/packages/paynote/contents/PayNoteDelivery.js +4 -10
- package/dist/packages/paynote/contents/PayNoteDelivery.js.map +1 -1
- package/dist/packages/paynote/contents/StartCardTransactionMonitoringRequested.d.ts +28 -0
- package/dist/packages/paynote/contents/StartCardTransactionMonitoringRequested.d.ts.map +1 -0
- package/dist/packages/paynote/contents/StartCardTransactionMonitoringRequested.js +28 -0
- package/dist/packages/paynote/contents/StartCardTransactionMonitoringRequested.js.map +1 -0
- package/dist/packages/paynote/contents/TransactionStatus.d.ts +26 -0
- package/dist/packages/paynote/contents/TransactionStatus.d.ts.map +1 -0
- package/dist/packages/paynote/contents/TransactionStatus.js +26 -0
- package/dist/packages/paynote/contents/TransactionStatus.js.map +1 -0
- package/dist/packages/paynote/contents/index.d.ts +590 -332
- package/dist/packages/paynote/contents/index.d.ts.map +1 -1
- package/dist/packages/paynote/contents/index.js +30 -6
- package/dist/packages/paynote/contents/index.js.map +1 -1
- package/dist/packages/paynote/index.d.ts +2383 -792
- package/dist/packages/paynote/index.d.ts.map +1 -1
- package/dist/packages/paynote/meta.d.ts +87 -7
- package/dist/packages/paynote/meta.d.ts.map +1 -1
- package/dist/packages/paynote/meta.js +93 -5
- package/dist/packages/paynote/meta.js.map +1 -1
- package/dist/packages/paynote/schemas/CaptureDeclined.d.ts +2 -2
- package/dist/packages/paynote/schemas/CaptureFailed.d.ts +2 -2
- package/dist/packages/paynote/schemas/CardTransactionCaptureLockChangeFailed.d.ts +2 -2
- package/dist/packages/paynote/schemas/CardTransactionMonitoringRequestRejected.d.ts +34 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringRequestRejected.d.ts.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringRequestRejected.js +13 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringRequestRejected.js.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringStarted.d.ts +37 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringStarted.d.ts.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringStarted.js +14 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringStarted.js.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringStopped.d.ts +27 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringStopped.d.ts.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringStopped.js +12 -0
- package/dist/packages/paynote/schemas/CardTransactionMonitoringStopped.js.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionPayNote.d.ts +473 -0
- package/dist/packages/paynote/schemas/CardTransactionPayNote.d.ts.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionPayNote.js +11 -0
- package/dist/packages/paynote/schemas/CardTransactionPayNote.js.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionReport.d.ts +85 -0
- package/dist/packages/paynote/schemas/CardTransactionReport.d.ts.map +1 -0
- package/dist/packages/paynote/schemas/CardTransactionReport.js +18 -0
- package/dist/packages/paynote/schemas/CardTransactionReport.js.map +1 -0
- package/dist/packages/paynote/schemas/ChildPayNoteIssuanceDeclined.d.ts +2 -2
- package/dist/packages/paynote/schemas/MerchantToCustomerPayNote.d.ts +435 -0
- package/dist/packages/paynote/schemas/MerchantToCustomerPayNote.d.ts.map +1 -0
- package/dist/packages/paynote/schemas/MerchantToCustomerPayNote.js +9 -0
- package/dist/packages/paynote/schemas/MerchantToCustomerPayNote.js.map +1 -0
- package/dist/packages/paynote/schemas/PayNote.d.ts +200 -0
- package/dist/packages/paynote/schemas/PayNote.d.ts.map +1 -1
- package/dist/packages/paynote/schemas/PayNote.js +6 -0
- package/dist/packages/paynote/schemas/PayNote.js.map +1 -1
- package/dist/packages/paynote/schemas/PayNoteCancellationRejected.d.ts +2 -2
- package/dist/packages/paynote/schemas/PayNoteDelivery.d.ts +58 -128
- package/dist/packages/paynote/schemas/PayNoteDelivery.d.ts.map +1 -1
- package/dist/packages/paynote/schemas/PayNoteDelivery.js +0 -1
- package/dist/packages/paynote/schemas/PayNoteDelivery.js.map +1 -1
- package/dist/packages/paynote/schemas/PayNoteRejected.d.ts +2 -2
- package/dist/packages/paynote/schemas/ReservationDeclined.d.ts +2 -2
- package/dist/packages/paynote/schemas/ReservationReleaseDeclined.d.ts +2 -2
- package/dist/packages/paynote/schemas/SettlementAmountRejected.d.ts +2 -2
- package/dist/packages/paynote/schemas/StartCardTransactionMonitoringRequested.d.ts +31 -0
- package/dist/packages/paynote/schemas/StartCardTransactionMonitoringRequested.d.ts.map +1 -0
- package/dist/packages/paynote/schemas/StartCardTransactionMonitoringRequested.js +12 -0
- package/dist/packages/paynote/schemas/StartCardTransactionMonitoringRequested.js.map +1 -0
- package/dist/packages/paynote/schemas/TransactionStatus.d.ts +33 -0
- package/dist/packages/paynote/schemas/TransactionStatus.d.ts.map +1 -0
- package/dist/packages/paynote/schemas/TransactionStatus.js +13 -0
- package/dist/packages/paynote/schemas/TransactionStatus.js.map +1 -0
- package/dist/packages/paynote/schemas/index.d.ts +1508 -239
- package/dist/packages/paynote/schemas/index.d.ts.map +1 -1
- package/dist/packages/paynote/schemas/index.js +26 -2
- package/dist/packages/paynote/schemas/index.js.map +1 -1
- package/dist/repository.d.ts +5577 -3035
- package/dist/repository.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,41 +1,44 @@
|
|
|
1
1
|
export { DocumentBootstrapResponded } from './DocumentBootstrapResponded.js';
|
|
2
|
+
export { AcceptChangeWorkflow } from './AcceptChangeWorkflow.js';
|
|
2
3
|
export { TriggerEvent } from './TriggerEvent.js';
|
|
3
|
-
export {
|
|
4
|
+
export { ChangeWorkflow } from './ChangeWorkflow.js';
|
|
4
5
|
export { Response } from './Response.js';
|
|
5
6
|
export { Timeline } from './Timeline.js';
|
|
6
7
|
export { RejectChangeOperation } from './RejectChangeOperation.js';
|
|
7
8
|
export { StatusInProgress } from './StatusInProgress.js';
|
|
8
9
|
export { DocumentStatus } from './DocumentStatus.js';
|
|
10
|
+
export { ProposeChangeWorkflow } from './ProposeChangeWorkflow.js';
|
|
9
11
|
export { Event } from './Event.js';
|
|
10
12
|
export { LifecycleEvent } from './LifecycleEvent.js';
|
|
11
13
|
export { ContractsChangePolicy } from './ContractsChangePolicy.js';
|
|
14
|
+
export { ChangeRequest } from './ChangeRequest.js';
|
|
15
|
+
export { CustomerConsent } from './CustomerConsent.js';
|
|
12
16
|
export { DocumentBootstrapRequested } from './DocumentBootstrapRequested.js';
|
|
13
17
|
export { SequentialWorkflow } from './SequentialWorkflow.js';
|
|
14
18
|
export { InformUserAboutPendingAction } from './InformUserAboutPendingAction.js';
|
|
15
19
|
export { Request } from './Request.js';
|
|
16
|
-
export {
|
|
20
|
+
export { RejectChangeWorkflow } from './RejectChangeWorkflow.js';
|
|
21
|
+
export { CustomerConsentRevoked } from './CustomerConsentRevoked.js';
|
|
17
22
|
export { DocumentSectionChangeEntry } from './DocumentSectionChangeEntry.js';
|
|
18
|
-
export {
|
|
23
|
+
export { ChangeOperation } from './ChangeOperation.js';
|
|
24
|
+
export { CustomerActionRequested } from './CustomerActionRequested.js';
|
|
19
25
|
export { ChatMessage } from './ChatMessage.js';
|
|
20
26
|
export { AcceptChangeOperation } from './AcceptChangeOperation.js';
|
|
21
27
|
export { DocumentBootstrapFailed } from './DocumentBootstrapFailed.js';
|
|
22
28
|
export { Operation } from './Operation.js';
|
|
23
|
-
export { ChangeOperation } from './ChangeOperation.js';
|
|
24
29
|
export { StatusChange } from './StatusChange.js';
|
|
25
30
|
export { SequentialWorkflowOperation } from './SequentialWorkflowOperation.js';
|
|
26
31
|
export { Actor } from './Actor.js';
|
|
27
32
|
export { DocumentSectionChanges } from './DocumentSectionChanges.js';
|
|
28
33
|
export { ProposedChangeInvalid } from './ProposedChangeInvalid.js';
|
|
29
|
-
export { ProposeChangeWorkflow } from './ProposeChangeWorkflow.js';
|
|
30
34
|
export { StatusCompleted } from './StatusCompleted.js';
|
|
31
35
|
export { StatusPending } from './StatusPending.js';
|
|
32
36
|
export { TimelineChannel } from './TimelineChannel.js';
|
|
33
37
|
export { JavaScriptCode } from './JavaScriptCode.js';
|
|
34
38
|
export { TimelineEntry } from './TimelineEntry.js';
|
|
35
39
|
export { UpdateDocument } from './UpdateDocument.js';
|
|
36
|
-
export { AcceptChangeWorkflow } from './AcceptChangeWorkflow.js';
|
|
37
|
-
export { RejectChangeWorkflow } from './RejectChangeWorkflow.js';
|
|
38
40
|
export { StatusFailed } from './StatusFailed.js';
|
|
41
|
+
export { ProposeChangeOperation } from './ProposeChangeOperation.js';
|
|
39
42
|
export { DocumentBootstrapCompleted } from './DocumentBootstrapCompleted.js';
|
|
40
43
|
export { OperationRequest } from './OperationRequest.js';
|
|
41
44
|
export { CompositeTimelineChannel } from './CompositeTimelineChannel.js';
|
|
@@ -61,6 +64,44 @@ export declare const contents: {
|
|
|
61
64
|
readonly blueId: "36epvrpVHZLjapbeZsNodz2NDnm7XZeNZcnkWHgkP1pp";
|
|
62
65
|
};
|
|
63
66
|
};
|
|
67
|
+
readonly '29xcoYKf9p47xagTDwGLuQyFrT9WBN3Sd7FaPtqLvydy': {
|
|
68
|
+
readonly description: "Applies a previously proposed change and removes its proposal state.";
|
|
69
|
+
readonly name: "Accept Change Workflow";
|
|
70
|
+
readonly postfix: {
|
|
71
|
+
readonly description: "Optional postfix used while building proposed change state key.";
|
|
72
|
+
readonly type: {
|
|
73
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
readonly steps: {
|
|
77
|
+
readonly items: readonly [{
|
|
78
|
+
readonly code: {
|
|
79
|
+
readonly type: {
|
|
80
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
81
|
+
};
|
|
82
|
+
readonly value: "const invalid = (reason) => ({\n changeset: [],\n events: [{ type: 'Conversation/Proposed Change Invalid', reason }]\n});\n\nconst isArray = Array.isArray;\n\nconst postfixValue = currentContract?.postfix || '';\nconst proposedPath = '/proposedChange' + postfixValue;\n\nconst change = document(proposedPath);\nif (!change) {\n return invalid('no proposed change at ' + proposedPath);\n}\n\nconst requestChangeset = isArray(change?.changeset) ? change.changeset : [];\nconst sectionChanges = change.sectionChanges;\n\nconst entryPath = (entry) => `${entry?.path || ''}`;\nconst isContractsPath = (p) => p === '/contracts' || p.startsWith('/contracts/');\nconst isProposedChangePath = (p) => p.startsWith('/proposedChange');\n\nconst contracts = document('/contracts') || {};\nconst policy = Object.values(contracts).find((c) => c?.requireSectionChanges !== undefined);\nconst policyEnabled = !!policy && policy.requireSectionChanges !== false;\n\nif (\n policyEnabled &&\n requestChangeset.some((e) => isContractsPath(entryPath(e)))\n) {\n return invalid('changeset cannot modify /contracts when Contracts Change Policy is enabled');\n}\n\nif (requestChangeset.some((e) => isProposedChangePath(entryPath(e)))) {\n return invalid('changeset cannot modify /proposedChange');\n}\n\nconst escapePointer = (value) =>\n `${value}`.split('~').join('~0').split('/').join('~1');\n\nconst contractPtr = (key) => '/contracts/' + escapePointer(key);\n\nconst isMetaKey = (key) =>\n key === 'type' || key === 'keyType' || key === 'valueType' || key === 'description';\n\nconst contractKeysFromMap = (contractsMap) =>\n Object.keys(contractsMap || {}).filter((k) => !isMetaKey(k));\n\nconst normalizeSection = (section, contractKeys) => ({\n ...(section || {}),\n type: 'Conversation/Document Section',\n relatedContracts: (section?.relatedContracts?.length ? section.relatedContracts : contractKeys)\n});\n\nconst hasMatchingRelatedContracts = (section, contractKeys) => {\n const related = isArray(section?.relatedContracts)\n ? section.relatedContracts.map((value) => `${value}`)\n : [];\n if (!related.length) {\n return true;\n }\n if (related.length !== contractKeys.length) {\n return false;\n }\n const relatedMap = {};\n for (const value of related) {\n const key = `${value}`;\n relatedMap[key] = (relatedMap[key] || 0) + 1;\n }\n if (Object.keys(relatedMap).length !== contractKeys.length) {\n return false;\n }\n for (const key of contractKeys) {\n if (!relatedMap[key]) {\n return false;\n }\n }\n return true;\n};\n\nconst sectionChangeset = [];\nconst seenSectionKeys = {};\nconst seenContractKeys = {};\nconst existingContractKeys = {};\nfor (const key of Object.keys(contracts || {}).filter((k) => !isMetaKey(k))) {\n existingContractKeys[key] = true;\n}\n\nconst trackSectionKey = (sectionKey) => {\n if (seenSectionKeys[sectionKey]) {\n return invalid(`section key duplicated in sectionChanges: ${sectionKey}`);\n }\n seenSectionKeys[sectionKey] = true;\n return null;\n};\n\nconst trackContractKey = (sectionKey, contractKey) => {\n const existingSection = seenContractKeys[contractKey];\n if (existingSection && existingSection !== sectionKey) {\n return invalid(`contract key used by multiple sections in request: ${contractKey}`);\n }\n seenContractKeys[contractKey] = sectionKey;\n return null;\n};\n\nconst addList = isArray(sectionChanges?.add) ? sectionChanges.add : [];\nfor (const entry of addList) {\n const sectionKey = `${entry?.sectionKey || ''}`;\n if (!sectionKey) return invalid('sectionChanges.add is missing sectionKey');\n\n const sectionKeyDup = trackSectionKey(sectionKey);\n if (sectionKeyDup) return sectionKeyDup;\n\n if (existingContractKeys[sectionKey]) {\n return invalid(`contract key already exists at ${contractPtr(sectionKey)}`);\n }\n\n const contractsMap = entry?.contracts || {};\n const contractKeys = contractKeysFromMap(contractsMap).map((key) => `${key}`);\n\n if (!hasMatchingRelatedContracts(entry?.section, contractKeys)) {\n return invalid('relatedContracts must match contracts');\n }\n\n for (const key of contractKeys) {\n if (existingContractKeys[key]) {\n return invalid(`contract key already exists at ${contractPtr(key)}`);\n }\n const dup = trackContractKey(sectionKey, key);\n if (dup) return dup;\n }\n\n for (const key of contractKeys) {\n sectionChangeset.push({ op: 'add', path: contractPtr(key), val: contractsMap[key] });\n }\n\n sectionChangeset.push({\n op: 'add',\n path: contractPtr(sectionKey),\n val: normalizeSection(entry?.section, contractKeys)\n });\n}\n\nconst modifyList = isArray(sectionChanges?.modify) ? sectionChanges.modify : [];\nfor (const entry of modifyList) {\n const sectionKey = `${entry?.sectionKey || ''}`;\n if (!sectionKey) return invalid('sectionChanges.modify is missing sectionKey');\n\n const sectionKeyDup = trackSectionKey(sectionKey);\n if (sectionKeyDup) return sectionKeyDup;\n\n const existingRelated = isArray(contracts?.[sectionKey]?.relatedContracts)\n ? contracts[sectionKey].relatedContracts.map((value) => `${value}`)\n : [];\n const existingRelatedMap = {};\n for (const value of existingRelated) {\n existingRelatedMap[`${value}`] = true;\n }\n\n const contractsMap = entry?.contracts || {};\n const contractKeys = contractKeysFromMap(contractsMap).map((key) => `${key}`);\n\n if (!hasMatchingRelatedContracts(entry?.section, contractKeys)) {\n return invalid('relatedContracts must match contracts');\n }\n\n for (const key of contractKeys) {\n const dup = trackContractKey(sectionKey, key);\n if (dup) return dup;\n if (existingContractKeys[key] && !existingRelatedMap[key]) {\n return invalid(`contract key already exists at ${contractPtr(key)}`);\n }\n }\n\n for (const key of contractKeys) {\n sectionChangeset.push({ op: 'add', path: contractPtr(key), val: contractsMap[key] });\n }\n\n for (const oldKey of existingRelated) {\n if (contractKeys.indexOf(oldKey) === -1) {\n sectionChangeset.push({ op: 'remove', path: contractPtr(oldKey) });\n }\n }\n\n sectionChangeset.push({\n op: 'add',\n path: contractPtr(sectionKey),\n val: normalizeSection(entry?.section, contractKeys)\n });\n}\n\nconst removeList = isArray(sectionChanges?.remove) ? sectionChanges.remove : [];\nfor (const entry of removeList) {\n const sectionKey = `${entry?.sectionKey || entry || ''}`;\n if (!sectionKey) return invalid('sectionChanges.remove is missing sectionKey');\n\n const related = isArray(contracts?.[sectionKey]?.relatedContracts)\n ? contracts[sectionKey].relatedContracts\n : [];\n\n for (const key of related) {\n sectionChangeset.push({ op: 'remove', path: contractPtr(key) });\n }\n sectionChangeset.push({ op: 'remove', path: contractPtr(sectionKey) });\n}\n\nconst combined = sectionChangeset.concat(requestChangeset);\n\nif (combined.length === 0) {\n return invalid('no changes provided');\n}\n\nreturn {\n changeset: combined.concat({ op: 'remove', path: proposedPath })\n};\n";
|
|
83
|
+
};
|
|
84
|
+
readonly name: "Prepare";
|
|
85
|
+
readonly type: {
|
|
86
|
+
readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
|
|
87
|
+
};
|
|
88
|
+
}, {
|
|
89
|
+
readonly changeset: {
|
|
90
|
+
readonly type: {
|
|
91
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
92
|
+
};
|
|
93
|
+
readonly value: "${steps.Prepare.changeset}";
|
|
94
|
+
};
|
|
95
|
+
readonly name: "Apply";
|
|
96
|
+
readonly type: {
|
|
97
|
+
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
98
|
+
};
|
|
99
|
+
}];
|
|
100
|
+
};
|
|
101
|
+
readonly type: {
|
|
102
|
+
readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
|
|
103
|
+
};
|
|
104
|
+
};
|
|
64
105
|
readonly '2bSWEoMSZwzf32Hnr4BDVsuq8NRjrWEpnhZvMZAJGhh2': {
|
|
65
106
|
readonly description: "Conversation workflow step that enqueues an event as part of the workflow.\n- Gas accounting (when and what is charged):\n - Base step charge (once per run of this step): 30.\n - Expression/template resolution under \"/event\" (if present):\n - Expressions run in the deterministic QuickJS VM (same sandbox and\n bindings as the JavaScript Code step).\n - VM gas is converted to host gas as:\n hostGas = ceil(wasmFuel / 1700)\n (calibration factor currently 1700 fuel per host gas unit).\n - Any document(<pointer>) used inside expressions/templates charges\n per call: 8 + depth(pointer) + ceil(snapshotBytes/100).\n - Event emission (enqueue): 20 + ceil(eventBytes/100) for the final event\n payload after expression resolution.\n";
|
|
66
107
|
readonly event: {
|
|
@@ -71,16 +112,42 @@ export declare const contents: {
|
|
|
71
112
|
readonly blueId: "HYsLiqsqk7t98d5fK6YxKEQGeqBaHNVjM4rRNdxK4yUW";
|
|
72
113
|
};
|
|
73
114
|
};
|
|
74
|
-
readonly '
|
|
75
|
-
readonly description: "
|
|
76
|
-
readonly name: "
|
|
115
|
+
readonly '2jSne57MeM1HvhrQscpbDqhR46TwpmpiEpfG6h8PfMZP': {
|
|
116
|
+
readonly description: "Applies a requested changeset immediately to the document.";
|
|
117
|
+
readonly name: "Change Workflow";
|
|
77
118
|
readonly request: {
|
|
119
|
+
readonly description: "Expected request payload for this workflow.";
|
|
78
120
|
readonly type: {
|
|
79
|
-
readonly blueId: "
|
|
121
|
+
readonly blueId: "6KZwmcsyYNiJhn2pAfS9LAFTxTRHcDw4yzPwV3A3SSQp";
|
|
80
122
|
};
|
|
81
123
|
};
|
|
124
|
+
readonly steps: {
|
|
125
|
+
readonly items: readonly [{
|
|
126
|
+
readonly code: {
|
|
127
|
+
readonly type: {
|
|
128
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
129
|
+
};
|
|
130
|
+
readonly value: "const invalid = (reason) => ({\n changeset: [],\n events: [{ type: 'Conversation/Proposed Change Invalid', reason }]\n});\n\nconst isArray = Array.isArray;\n\nconst change = event.message.request;\n\nconst summary = change?.summary;\nif (!summary || typeof summary !== 'string') {\n return invalid('summary is missing');\n}\n\nconst requestChangeset = isArray(change?.changeset) ? change.changeset : [];\nconst sectionChanges = change.sectionChanges;\n\nconst entryPath = (entry) => `${entry?.path || ''}`;\nconst isContractsPath = (p) => p === '/contracts' || p.startsWith('/contracts/');\nconst isProposedChangePath = (p) => p.startsWith('/proposedChange');\n\nconst contracts = document('/contracts') || {};\nconst policy = Object.values(contracts).find((c) => c?.requireSectionChanges !== undefined);\nconst policyEnabled = !!policy && policy.requireSectionChanges !== false;\n\nif (\n policyEnabled &&\n requestChangeset.some((e) => isContractsPath(entryPath(e)))\n) {\n return invalid('changeset cannot modify /contracts when Contracts Change Policy is enabled');\n}\n\nif (requestChangeset.some((e) => isProposedChangePath(entryPath(e)))) {\n return invalid('changeset cannot modify /proposedChange');\n}\n\nconst escapePointer = (value) =>\n `${value}`.split('~').join('~0').split('/').join('~1');\n\nconst contractPtr = (key) => '/contracts/' + escapePointer(key);\n\nconst isMetaKey = (key) =>\n key === 'type' || key === 'keyType' || key === 'valueType' || key === 'description';\n\nconst contractKeysFromMap = (contractsMap) =>\n Object.keys(contractsMap || {}).filter((k) => !isMetaKey(k));\n\nconst normalizeSection = (section, contractKeys) => ({\n ...(section || {}),\n type: 'Conversation/Document Section',\n relatedContracts: (section?.relatedContracts?.length ? section.relatedContracts : contractKeys)\n});\n\nconst hasMatchingRelatedContracts = (section, contractKeys) => {\n const related = isArray(section?.relatedContracts)\n ? section.relatedContracts.map((value) => `${value}`)\n : [];\n if (!related.length) {\n return true;\n }\n if (related.length !== contractKeys.length) {\n return false;\n }\n const relatedMap = {};\n for (const value of related) {\n const key = `${value}`;\n relatedMap[key] = (relatedMap[key] || 0) + 1;\n }\n if (Object.keys(relatedMap).length !== contractKeys.length) {\n return false;\n }\n for (const key of contractKeys) {\n if (!relatedMap[key]) {\n return false;\n }\n }\n return true;\n};\n\nconst sectionChangeset = [];\nconst seenSectionKeys = {};\nconst seenContractKeys = {};\nconst existingContractKeys = {};\nfor (const key of Object.keys(contracts || {}).filter((k) => !isMetaKey(k))) {\n existingContractKeys[key] = true;\n}\n\nconst trackSectionKey = (sectionKey) => {\n if (seenSectionKeys[sectionKey]) {\n return invalid(`section key duplicated in sectionChanges: ${sectionKey}`);\n }\n seenSectionKeys[sectionKey] = true;\n return null;\n};\n\nconst trackContractKey = (sectionKey, contractKey) => {\n const existingSection = seenContractKeys[contractKey];\n if (existingSection && existingSection !== sectionKey) {\n return invalid(`contract key used by multiple sections in request: ${contractKey}`);\n }\n seenContractKeys[contractKey] = sectionKey;\n return null;\n};\n\nconst addList = isArray(sectionChanges?.add) ? sectionChanges.add : [];\nfor (const entry of addList) {\n const sectionKey = `${entry?.sectionKey || ''}`;\n if (!sectionKey) return invalid('sectionChanges.add is missing sectionKey');\n\n const sectionKeyDup = trackSectionKey(sectionKey);\n if (sectionKeyDup) return sectionKeyDup;\n\n if (existingContractKeys[sectionKey]) {\n return invalid(`contract key already exists at ${contractPtr(sectionKey)}`);\n }\n\n const contractsMap = entry?.contracts || {};\n const contractKeys = contractKeysFromMap(contractsMap).map((key) => `${key}`);\n\n if (!hasMatchingRelatedContracts(entry?.section, contractKeys)) {\n return invalid('relatedContracts must match contracts');\n }\n\n for (const key of contractKeys) {\n if (existingContractKeys[key]) {\n return invalid(`contract key already exists at ${contractPtr(key)}`);\n }\n const dup = trackContractKey(sectionKey, key);\n if (dup) return dup;\n }\n\n for (const key of contractKeys) {\n sectionChangeset.push({ op: 'add', path: contractPtr(key), val: contractsMap[key] });\n }\n\n sectionChangeset.push({\n op: 'add',\n path: contractPtr(sectionKey),\n val: normalizeSection(entry?.section, contractKeys)\n });\n}\n\nconst modifyList = isArray(sectionChanges?.modify) ? sectionChanges.modify : [];\nfor (const entry of modifyList) {\n const sectionKey = `${entry?.sectionKey || ''}`;\n if (!sectionKey) return invalid('sectionChanges.modify is missing sectionKey');\n\n const sectionKeyDup = trackSectionKey(sectionKey);\n if (sectionKeyDup) return sectionKeyDup;\n\n const existingRelated = isArray(contracts?.[sectionKey]?.relatedContracts)\n ? contracts[sectionKey].relatedContracts.map((value) => `${value}`)\n : [];\n const existingRelatedMap = {};\n for (const value of existingRelated) {\n existingRelatedMap[`${value}`] = true;\n }\n\n const contractsMap = entry?.contracts || {};\n const contractKeys = contractKeysFromMap(contractsMap).map((key) => `${key}`);\n\n if (!hasMatchingRelatedContracts(entry?.section, contractKeys)) {\n return invalid('relatedContracts must match contracts');\n }\n\n for (const key of contractKeys) {\n const dup = trackContractKey(sectionKey, key);\n if (dup) return dup;\n if (existingContractKeys[key] && !existingRelatedMap[key]) {\n return invalid(`contract key already exists at ${contractPtr(key)}`);\n }\n }\n\n for (const key of contractKeys) {\n sectionChangeset.push({ op: 'add', path: contractPtr(key), val: contractsMap[key] });\n }\n\n for (const oldKey of existingRelated) {\n if (contractKeys.indexOf(oldKey) === -1) {\n sectionChangeset.push({ op: 'remove', path: contractPtr(oldKey) });\n }\n }\n\n sectionChangeset.push({\n op: 'add',\n path: contractPtr(sectionKey),\n val: normalizeSection(entry?.section, contractKeys)\n });\n}\n\nconst removeList = isArray(sectionChanges?.remove) ? sectionChanges.remove : [];\nfor (const entry of removeList) {\n const sectionKey = `${entry?.sectionKey || entry || ''}`;\n if (!sectionKey) return invalid('sectionChanges.remove is missing sectionKey');\n\n const related = isArray(contracts?.[sectionKey]?.relatedContracts)\n ? contracts[sectionKey].relatedContracts\n : [];\n\n for (const key of related) {\n sectionChangeset.push({ op: 'remove', path: contractPtr(key) });\n }\n sectionChangeset.push({ op: 'remove', path: contractPtr(sectionKey) });\n}\n\nconst combined = sectionChangeset.concat(requestChangeset);\n\nif (combined.length === 0) {\n return invalid('no changes provided');\n}\n\nreturn { changeset: combined };\n";
|
|
131
|
+
};
|
|
132
|
+
readonly name: "Prepare";
|
|
133
|
+
readonly type: {
|
|
134
|
+
readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
|
|
135
|
+
};
|
|
136
|
+
}, {
|
|
137
|
+
readonly changeset: {
|
|
138
|
+
readonly type: {
|
|
139
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
140
|
+
};
|
|
141
|
+
readonly value: "${steps.Prepare.changeset}";
|
|
142
|
+
};
|
|
143
|
+
readonly name: "Apply";
|
|
144
|
+
readonly type: {
|
|
145
|
+
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
146
|
+
};
|
|
147
|
+
}];
|
|
148
|
+
};
|
|
82
149
|
readonly type: {
|
|
83
|
-
readonly blueId: "
|
|
150
|
+
readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
|
|
84
151
|
};
|
|
85
152
|
};
|
|
86
153
|
readonly '36epvrpVHZLjapbeZsNodz2NDnm7XZeNZcnkWHgkP1pp': {
|
|
@@ -145,6 +212,50 @@ export declare const contents: {
|
|
|
145
212
|
};
|
|
146
213
|
readonly name: "Document Status";
|
|
147
214
|
};
|
|
215
|
+
readonly '5Ptp4ykWNiYNCmSbYEDpxjE21DGpBxdDR6CQeAaZUSva': {
|
|
216
|
+
readonly description: "Stores a proposed change under /proposedChange{postfix}.";
|
|
217
|
+
readonly name: "Propose Change Workflow";
|
|
218
|
+
readonly postfix: {
|
|
219
|
+
readonly description: "Optional postfix used while building proposed change state key.";
|
|
220
|
+
readonly type: {
|
|
221
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
readonly request: {
|
|
225
|
+
readonly description: "Expected request payload for this workflow.";
|
|
226
|
+
readonly type: {
|
|
227
|
+
readonly blueId: "6KZwmcsyYNiJhn2pAfS9LAFTxTRHcDw4yzPwV3A3SSQp";
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
readonly steps: {
|
|
231
|
+
readonly items: readonly [{
|
|
232
|
+
readonly code: {
|
|
233
|
+
readonly type: {
|
|
234
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
235
|
+
};
|
|
236
|
+
readonly value: "const invalid = (reason) => ({\n changeset: [],\n events: [{ type: 'Conversation/Proposed Change Invalid', reason }]\n});\n\nconst request = event.message.request;\n\nconst summary = request?.summary;\nif (!summary || typeof summary !== 'string') {\n return invalid('summary is missing');\n}\n\nconst postfixValue = currentContract?.postfix || '';\nconst path = '/proposedChange' + postfixValue;\n\nif (document(path)) {\n return invalid('proposed change already exists at ' + path);\n}\n\nreturn {\n changeset: [{ op: 'add', path, val: request }]\n};\n";
|
|
237
|
+
};
|
|
238
|
+
readonly name: "Prepare";
|
|
239
|
+
readonly type: {
|
|
240
|
+
readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
|
|
241
|
+
};
|
|
242
|
+
}, {
|
|
243
|
+
readonly changeset: {
|
|
244
|
+
readonly type: {
|
|
245
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
246
|
+
};
|
|
247
|
+
readonly value: "${steps.Prepare.changeset}";
|
|
248
|
+
};
|
|
249
|
+
readonly name: "Apply";
|
|
250
|
+
readonly type: {
|
|
251
|
+
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
252
|
+
};
|
|
253
|
+
}];
|
|
254
|
+
};
|
|
255
|
+
readonly type: {
|
|
256
|
+
readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
|
|
257
|
+
};
|
|
258
|
+
};
|
|
148
259
|
readonly '5Wz4G9qcnBJnntYRkz4dgLK5bSuoMpYJZj4j5M59z4we': {
|
|
149
260
|
readonly description: "Conversation package type. Abstract base for domain events (payload nodes delivered via channels). Not a contract; carries no runtime behavior by itself.\n";
|
|
150
261
|
readonly name: "Event";
|
|
@@ -169,6 +280,263 @@ export declare const contents: {
|
|
|
169
280
|
readonly blueId: "7QACj919YMRvFCTELCf6jfQTp41RVhtHdE6bPazLUZQ6";
|
|
170
281
|
};
|
|
171
282
|
};
|
|
283
|
+
readonly '6KZwmcsyYNiJhn2pAfS9LAFTxTRHcDw4yzPwV3A3SSQp': {
|
|
284
|
+
readonly changeset: {
|
|
285
|
+
readonly description: "RFC 6902 patch entries outside /contracts (blocked by policy if it touches /contracts).";
|
|
286
|
+
readonly itemType: {
|
|
287
|
+
readonly blueId: "Bz49DbfqKC1yJeCfv5RYPZUKTfb7rtZnmreCaz4RsXn5";
|
|
288
|
+
};
|
|
289
|
+
readonly type: {
|
|
290
|
+
readonly blueId: "6aehfNAxHLC1PHHoDr3tYtFH3RWNbiWdFancJ1bypXEY";
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
readonly description: "Payload for propose/make change operations.";
|
|
294
|
+
readonly name: "Change Request";
|
|
295
|
+
readonly sectionChanges: {
|
|
296
|
+
readonly description: "Section-based /contracts mutations (required when Contracts Change Policy is enabled).";
|
|
297
|
+
readonly type: {
|
|
298
|
+
readonly blueId: "DEmFwGa1sWm2BKhrN98LREKiB8j8B8kFAo7KBkkaojnN";
|
|
299
|
+
};
|
|
300
|
+
};
|
|
301
|
+
readonly summary: {
|
|
302
|
+
readonly description: "Human-readable summary of the requested change. Required when proposal is created.";
|
|
303
|
+
readonly type: {
|
|
304
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
readonly '7czpW4QyEqJy3d2X8dqsxcu3Q1G2CftTJUCTTyJSY6J8': {
|
|
309
|
+
readonly consentDetails: {
|
|
310
|
+
readonly description: "Generic scope details (merchant id, event categories, requesting contract refs, etc.).";
|
|
311
|
+
readonly keyType: {
|
|
312
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
313
|
+
};
|
|
314
|
+
readonly type: {
|
|
315
|
+
readonly blueId: "G7fBT9PSod1RfHLHkpafAGBDVAJMrMhAMY51ERcyXNrj";
|
|
316
|
+
};
|
|
317
|
+
readonly valueType: {
|
|
318
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
319
|
+
};
|
|
320
|
+
};
|
|
321
|
+
readonly consentKind: {
|
|
322
|
+
readonly description: "Classification of the consent (e.g., cardTransactionMonitoring).";
|
|
323
|
+
readonly type: {
|
|
324
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
325
|
+
};
|
|
326
|
+
};
|
|
327
|
+
readonly consentStatus: {
|
|
328
|
+
readonly description: "Consent state (granted, revoked).";
|
|
329
|
+
readonly type: {
|
|
330
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
331
|
+
};
|
|
332
|
+
readonly value: "granted";
|
|
333
|
+
};
|
|
334
|
+
readonly contracts: {
|
|
335
|
+
readonly granteeChannel: {
|
|
336
|
+
readonly description: "Grantee (e.g., merchant MyOS timeline).";
|
|
337
|
+
readonly type: {
|
|
338
|
+
readonly blueId: "HCF8mXnX3dFjQ8osjxb4Wzm2Nm1DoXnTYuA5sPnV7NTs";
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
readonly granterChannel: {
|
|
342
|
+
readonly description: "Granter (customer represented by the bank; customer has no MyOS account).";
|
|
343
|
+
readonly type: {
|
|
344
|
+
readonly blueId: "HCF8mXnX3dFjQ8osjxb4Wzm2Nm1DoXnTYuA5sPnV7NTs";
|
|
345
|
+
};
|
|
346
|
+
};
|
|
347
|
+
readonly guarantorChannel: {
|
|
348
|
+
readonly description: "Bank/admin channel.";
|
|
349
|
+
readonly type: {
|
|
350
|
+
readonly blueId: "HCF8mXnX3dFjQ8osjxb4Wzm2Nm1DoXnTYuA5sPnV7NTs";
|
|
351
|
+
};
|
|
352
|
+
};
|
|
353
|
+
readonly initialize: {
|
|
354
|
+
readonly channel: {
|
|
355
|
+
readonly type: {
|
|
356
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
357
|
+
};
|
|
358
|
+
readonly value: "initLifecycleChannel";
|
|
359
|
+
};
|
|
360
|
+
readonly steps: {
|
|
361
|
+
readonly items: readonly [{
|
|
362
|
+
readonly changeset: {
|
|
363
|
+
readonly items: readonly [{
|
|
364
|
+
readonly op: {
|
|
365
|
+
readonly type: {
|
|
366
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
367
|
+
};
|
|
368
|
+
readonly value: "replace";
|
|
369
|
+
};
|
|
370
|
+
readonly path: {
|
|
371
|
+
readonly type: {
|
|
372
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
373
|
+
};
|
|
374
|
+
readonly value: "/consentStatus";
|
|
375
|
+
};
|
|
376
|
+
readonly val: {
|
|
377
|
+
readonly type: {
|
|
378
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
379
|
+
};
|
|
380
|
+
readonly value: "granted";
|
|
381
|
+
};
|
|
382
|
+
}];
|
|
383
|
+
};
|
|
384
|
+
readonly name: "Initialize";
|
|
385
|
+
readonly type: {
|
|
386
|
+
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
387
|
+
};
|
|
388
|
+
}];
|
|
389
|
+
};
|
|
390
|
+
readonly type: {
|
|
391
|
+
readonly blueId: "7X3LkN54Yp88JgZbppPhP6hM3Jqiqv8Z2i4kS7phXtQe";
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
readonly initLifecycleChannel: {
|
|
395
|
+
readonly event: {
|
|
396
|
+
readonly type: {
|
|
397
|
+
readonly blueId: "BrpmpNt5JkapeUvPqYcxgXZrHNZX3R757dRwuXXdfNM2";
|
|
398
|
+
};
|
|
399
|
+
};
|
|
400
|
+
readonly type: {
|
|
401
|
+
readonly blueId: "H2aCCTUcLMTJozWkn7HPUjyFBFxamraw1q8DyWk87zxr";
|
|
402
|
+
};
|
|
403
|
+
};
|
|
404
|
+
readonly revokeConsent: {
|
|
405
|
+
readonly channel: {
|
|
406
|
+
readonly type: {
|
|
407
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
408
|
+
};
|
|
409
|
+
readonly value: "granterChannel";
|
|
410
|
+
};
|
|
411
|
+
readonly description: "Customer revokes the consent.";
|
|
412
|
+
readonly request: {
|
|
413
|
+
readonly reason: {
|
|
414
|
+
readonly type: {
|
|
415
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
416
|
+
};
|
|
417
|
+
};
|
|
418
|
+
readonly revokedAt: {
|
|
419
|
+
readonly type: {
|
|
420
|
+
readonly blueId: "GQaGqFxHDz64L1c9QkCbz52ths6bMVtpHnw4QDngzQYs";
|
|
421
|
+
};
|
|
422
|
+
};
|
|
423
|
+
};
|
|
424
|
+
readonly type: {
|
|
425
|
+
readonly blueId: "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
|
|
426
|
+
};
|
|
427
|
+
};
|
|
428
|
+
readonly revokeConsentImpl: {
|
|
429
|
+
readonly operation: {
|
|
430
|
+
readonly type: {
|
|
431
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
432
|
+
};
|
|
433
|
+
readonly value: "revokeConsent";
|
|
434
|
+
};
|
|
435
|
+
readonly steps: {
|
|
436
|
+
readonly items: readonly [{
|
|
437
|
+
readonly code: {
|
|
438
|
+
readonly type: {
|
|
439
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
440
|
+
};
|
|
441
|
+
readonly value: "const request = event?.message?.request || {};\nconst reason = request.reason || \"\";\nconst revokedAt = request.revokedAt || \"\";\nconst canRevoke = document('/consentStatus') === \"granted\";\n\nreturn {\n reason,\n revokedAt,\n canRevoke,\n events: canRevoke\n ? [{ type: \"Conversation/Customer Consent Revoked\", reason, revokedAt }]\n : []\n};\n";
|
|
442
|
+
};
|
|
443
|
+
readonly name: "Capture";
|
|
444
|
+
readonly type: {
|
|
445
|
+
readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
|
|
446
|
+
};
|
|
447
|
+
}, {
|
|
448
|
+
readonly changeset: {
|
|
449
|
+
readonly items: readonly [{
|
|
450
|
+
readonly op: {
|
|
451
|
+
readonly type: {
|
|
452
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
453
|
+
};
|
|
454
|
+
readonly value: "replace";
|
|
455
|
+
};
|
|
456
|
+
readonly path: {
|
|
457
|
+
readonly type: {
|
|
458
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
459
|
+
};
|
|
460
|
+
readonly value: "/consentStatus";
|
|
461
|
+
};
|
|
462
|
+
readonly val: {
|
|
463
|
+
readonly type: {
|
|
464
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
465
|
+
};
|
|
466
|
+
readonly value: "revoked";
|
|
467
|
+
};
|
|
468
|
+
}, {
|
|
469
|
+
readonly op: {
|
|
470
|
+
readonly type: {
|
|
471
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
472
|
+
};
|
|
473
|
+
readonly value: "replace";
|
|
474
|
+
};
|
|
475
|
+
readonly path: {
|
|
476
|
+
readonly type: {
|
|
477
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
478
|
+
};
|
|
479
|
+
readonly value: "/revocationReason";
|
|
480
|
+
};
|
|
481
|
+
readonly val: {
|
|
482
|
+
readonly type: {
|
|
483
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
484
|
+
};
|
|
485
|
+
readonly value: "${steps['Capture'].reason}";
|
|
486
|
+
};
|
|
487
|
+
}, {
|
|
488
|
+
readonly op: {
|
|
489
|
+
readonly type: {
|
|
490
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
491
|
+
};
|
|
492
|
+
readonly value: "replace";
|
|
493
|
+
};
|
|
494
|
+
readonly path: {
|
|
495
|
+
readonly type: {
|
|
496
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
497
|
+
};
|
|
498
|
+
readonly value: "/revokedAt";
|
|
499
|
+
};
|
|
500
|
+
readonly val: {
|
|
501
|
+
readonly type: {
|
|
502
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
503
|
+
};
|
|
504
|
+
readonly value: "${steps['Capture'].revokedAt}";
|
|
505
|
+
};
|
|
506
|
+
}];
|
|
507
|
+
};
|
|
508
|
+
readonly name: "Apply";
|
|
509
|
+
readonly type: {
|
|
510
|
+
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
511
|
+
};
|
|
512
|
+
}];
|
|
513
|
+
};
|
|
514
|
+
readonly type: {
|
|
515
|
+
readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
|
|
516
|
+
};
|
|
517
|
+
};
|
|
518
|
+
};
|
|
519
|
+
readonly description: "Generic customer consent granted to a grantee (e.g., merchant).";
|
|
520
|
+
readonly grantedAt: {
|
|
521
|
+
readonly description: "Timestamp when consent was granted.";
|
|
522
|
+
readonly type: {
|
|
523
|
+
readonly blueId: "GQaGqFxHDz64L1c9QkCbz52ths6bMVtpHnw4QDngzQYs";
|
|
524
|
+
};
|
|
525
|
+
};
|
|
526
|
+
readonly name: "Customer Consent";
|
|
527
|
+
readonly revocationReason: {
|
|
528
|
+
readonly description: "Reason for revocation.";
|
|
529
|
+
readonly type: {
|
|
530
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
531
|
+
};
|
|
532
|
+
};
|
|
533
|
+
readonly revokedAt: {
|
|
534
|
+
readonly description: "Timestamp when consent was revoked.";
|
|
535
|
+
readonly type: {
|
|
536
|
+
readonly blueId: "GQaGqFxHDz64L1c9QkCbz52ths6bMVtpHnw4QDngzQYs";
|
|
537
|
+
};
|
|
538
|
+
};
|
|
539
|
+
};
|
|
172
540
|
readonly '7JqBn4KcmZbHBBiQf3CAfpHBNaTKS1qhtkATsF7f6Sxg': {
|
|
173
541
|
readonly bootstrapAssignee: {
|
|
174
542
|
readonly description: "Channel name of a participant in the requesting document which is asked to bootstrap the requested document";
|
|
@@ -281,30 +649,59 @@ export declare const contents: {
|
|
|
281
649
|
readonly blueId: "5Wz4G9qcnBJnntYRkz4dgLK5bSuoMpYJZj4j5M59z4we";
|
|
282
650
|
};
|
|
283
651
|
};
|
|
284
|
-
readonly '
|
|
285
|
-
readonly
|
|
286
|
-
|
|
652
|
+
readonly '9fnXwi4Za8hjEj6zDSEjhbA5dLrDzs7sxoDMGLmRT2Gz': {
|
|
653
|
+
readonly description: "Discards a previously proposed change by removing its proposal state.";
|
|
654
|
+
readonly name: "Reject Change Workflow";
|
|
655
|
+
readonly postfix: {
|
|
656
|
+
readonly description: "Optional postfix used while building proposed change state key.";
|
|
287
657
|
readonly type: {
|
|
288
658
|
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
289
659
|
};
|
|
290
660
|
};
|
|
291
|
-
readonly
|
|
292
|
-
readonly
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
661
|
+
readonly steps: {
|
|
662
|
+
readonly items: readonly [{
|
|
663
|
+
readonly code: {
|
|
664
|
+
readonly type: {
|
|
665
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
666
|
+
};
|
|
667
|
+
readonly value: "const invalid = (reason) => ({\n changeset: [],\n events: [{ type: 'Conversation/Proposed Change Invalid', reason }]\n});\n\nconst postfixValue = currentContract?.postfix || '';\nconst path = '/proposedChange' + postfixValue;\n\nif (!document(path)) {\n return invalid('no proposed change at ' + path);\n}\n\nreturn {\n changeset: [{ op: 'remove', path }]\n};\n";
|
|
668
|
+
};
|
|
669
|
+
readonly name: "Prepare";
|
|
670
|
+
readonly type: {
|
|
671
|
+
readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
|
|
672
|
+
};
|
|
673
|
+
}, {
|
|
674
|
+
readonly changeset: {
|
|
675
|
+
readonly type: {
|
|
676
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
677
|
+
};
|
|
678
|
+
readonly value: "${steps.Prepare.changeset}";
|
|
679
|
+
};
|
|
680
|
+
readonly name: "Apply";
|
|
681
|
+
readonly type: {
|
|
682
|
+
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
683
|
+
};
|
|
684
|
+
}];
|
|
685
|
+
};
|
|
686
|
+
readonly type: {
|
|
687
|
+
readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
|
|
688
|
+
};
|
|
689
|
+
};
|
|
690
|
+
readonly '9h1AhEexkxxKLYv1NHbEESYCPtvW7Nt51msGtuQC5jWK': {
|
|
691
|
+
readonly name: "Customer Consent Revoked";
|
|
692
|
+
readonly reason: {
|
|
296
693
|
readonly type: {
|
|
297
|
-
readonly blueId: "
|
|
694
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
298
695
|
};
|
|
299
696
|
};
|
|
300
|
-
readonly
|
|
301
|
-
readonly name: "Change Request";
|
|
302
|
-
readonly sectionChanges: {
|
|
303
|
-
readonly description: "Section-based /contracts mutations (required when Contracts Change Policy is enabled).";
|
|
697
|
+
readonly revokedAt: {
|
|
304
698
|
readonly type: {
|
|
305
|
-
readonly blueId: "
|
|
699
|
+
readonly blueId: "GQaGqFxHDz64L1c9QkCbz52ths6bMVtpHnw4QDngzQYs";
|
|
306
700
|
};
|
|
307
701
|
};
|
|
702
|
+
readonly type: {
|
|
703
|
+
readonly blueId: "5Wz4G9qcnBJnntYRkz4dgLK5bSuoMpYJZj4j5M59z4we";
|
|
704
|
+
};
|
|
308
705
|
};
|
|
309
706
|
readonly '9xv7YjqsSn7W7P8rnUhSpdWGfSrgL4Jt3cmiACJT5VQs': {
|
|
310
707
|
readonly contracts: {
|
|
@@ -334,42 +731,59 @@ export declare const contents: {
|
|
|
334
731
|
};
|
|
335
732
|
};
|
|
336
733
|
};
|
|
337
|
-
readonly
|
|
338
|
-
readonly description: "
|
|
339
|
-
readonly name: "Change
|
|
734
|
+
readonly A3jjsMRLxrKo5pyPgLoT6e9jPGWfFPdkMs2wjyYMRpXk: {
|
|
735
|
+
readonly description: "Operation that applies a changeset immediately without proposal/accept.";
|
|
736
|
+
readonly name: "Change Operation";
|
|
340
737
|
readonly request: {
|
|
341
|
-
readonly description: "Expected request payload for this workflow.";
|
|
342
738
|
readonly type: {
|
|
343
|
-
readonly blueId: "
|
|
739
|
+
readonly blueId: "6KZwmcsyYNiJhn2pAfS9LAFTxTRHcDw4yzPwV3A3SSQp";
|
|
344
740
|
};
|
|
345
741
|
};
|
|
346
|
-
readonly
|
|
347
|
-
readonly
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
readonly value: "const issues = [];\n\nconst request = event.message.request || {};\n\nconst changeDescription = request.changeDescription;\nconst rawChangeset = request.changeset;\nconst rawSectionChanges = request.sectionChanges;\nconst requestSectionChanges = rawSectionChanges || {};\n\nconst toText = (value) => {\n const raw = value && value.value ? value.value : value;\n return raw && raw.trim ? raw.trim() : '';\n};\nconst asList = (value) => Array.isArray(value) ? value : [];\nconst hasType = (value) => value && value.type;\nconst escapePointer = (value) => {\n const text = toText(value);\n return text.split('~').join('~0').split('/').join('~1');\n};\nconst requestChangeset = asList(rawChangeset);\n\nconst uniqueKeys = (values, label) => {\n const seen = new Set();\n const output = [];\n for (const value of values) {\n const key = toText(value);\n if (!key) {\n issues.push(label + ' contains invalid key');\n continue;\n }\n if (seen.has(key)) {\n issues.push(label + ' contains duplicate key: ' + key);\n continue;\n }\n seen.add(key);\n output.push(key);\n }\n return output;\n};\n\nconst sameStringSet = (left, right) => {\n if (left.length !== right.length) return false;\n const set = new Set(left);\n if (set.size !== right.length) return false;\n for (const value of right) {\n if (!set.has(value)) return false;\n }\n return true;\n};\n\nconst contracts = Object(document('/contracts') || {});\n\nconst isDocumentSection = (contract) =>\n !!contract && Array.isArray(contract.relatedContracts);\n\nconst isContractsChangePolicy = (contract) => {\n if (!contract) return false;\n return 'requireSectionChanges' in contract;\n};\n\nconst findPolicy = () => {\n for (const key of Object.keys(contracts)) {\n const contract = contracts[key];\n if (isContractsChangePolicy(contract)) {\n return contract;\n }\n }\n return null;\n};\n\nconst policy = findPolicy();\nconst policyEnabled = !!policy && policy.requireSectionChanges !== false;\n\nif (!toText(changeDescription)) {\n issues.push('changeDescription is missing');\n}\n\nconst hasChangeset = !!rawChangeset;\nconst hasSectionChanges = !!rawSectionChanges;\n\nif (!hasChangeset && !hasSectionChanges) {\n issues.push('changeset or sectionChanges is required');\n}\n\nconst isContractsPath = (path) => {\n const value = toText(path);\n return value === '/contracts' || value.startsWith('/contracts/');\n};\nif (policyEnabled && hasChangeset) {\n for (const entry of requestChangeset) {\n if (entry && isContractsPath(entry.path)) {\n issues.push('changeset cannot modify /contracts when Contracts Change Policy is enabled');\n break;\n }\n }\n}\nconst isProposedChangePath = (path) =>\n toText(path).startsWith('/proposedChange');\nif (hasChangeset) {\n for (const entry of requestChangeset) {\n if (entry && isProposedChangePath(entry.path)) {\n issues.push('changeset cannot modify /proposedChange');\n break;\n }\n }\n}\n\nconst existingSections = {};\nfor (const key of Object.keys(contracts)) {\n const contract = contracts[key];\n if (isDocumentSection(contract)) {\n existingSections[key] = contract;\n }\n}\n\nconst contractIndex = {};\nfor (const sectionKey of Object.keys(existingSections)) {\n const section = existingSections[sectionKey];\n const related = asList(section.relatedContracts);\n for (const relatedKey of related) {\n const contractKey = toText(relatedKey);\n if (!contractKey) continue;\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n contractIndex[contractKey] = null;\n } else if (!contractIndex[contractKey]) {\n contractIndex[contractKey] = sectionKey;\n }\n }\n}\n\nconst normalizeSectionDefinition = (sectionDef, label) => {\n if (!sectionDef) {\n issues.push(label + ' entry must be an object');\n return null;\n }\n const sectionKey = toText(sectionDef.sectionKey);\n if (!sectionKey) {\n issues.push(label + ' sectionKey is missing');\n return null;\n }\n const section = sectionDef.section;\n if (!section) {\n issues.push(label + ' section is missing');\n return null;\n }\n\n const rawContractsMap = sectionDef.contracts && sectionDef.contracts.value\n ? sectionDef.contracts.value\n : sectionDef.contracts || {};\n const contractDefs = [];\n const contractKeys = [];\n for (const [rawKey, contract] of Object.entries(rawContractsMap)) {\n if (\n rawKey === 'type' ||\n rawKey === 'keyType' ||\n rawKey === 'valueType' ||\n rawKey === 'description'\n ) {\n continue;\n }\n const key = toText(rawKey);\n if (!key) {\n issues.push(label + ' contract key is missing');\n continue;\n }\n if (!contract) {\n issues.push(label + ' contract ' + key + ' is missing or invalid');\n continue;\n }\n if (!hasType(contract)) {\n issues.push(label + ' contract ' + key + ' is missing type');\n }\n contractDefs.push({ key, contract });\n contractKeys.push(key);\n }\n\n if (!hasType(section)) {\n issues.push(label + ' section ' + sectionKey + ' is missing type');\n }\n\n const related = section.relatedContracts\n ? uniqueKeys(asList(section.relatedContracts), label + ' section ' + sectionKey + ' relatedContracts')\n : null;\n if (related && !sameStringSet(related, contractKeys)) {\n issues.push(label + ' section ' + sectionKey + ' relatedContracts must match contracts');\n }\n\n const normalizedRelated = related || contractKeys;\n const normalizedSection = Object.assign({}, section, {\n type: 'Conversation/Document Section',\n relatedContracts: normalizedRelated\n });\n\n return {\n sectionKey,\n section: normalizedSection,\n contractDefs,\n contractKeys\n };\n};\n\nconst sectionChangeset = [];\nconst seenSectionKeys = new Set();\nconst seenContractKeys = new Set();\n\nconst addList = asList(requestSectionChanges.add);\nconst modifyList = asList(requestSectionChanges.modify);\nconst removeList = asList(requestSectionChanges.remove);\n\nfor (const entry of addList) {\n const normalized = normalizeSectionDefinition(entry, 'sectionChanges.add');\n if (!normalized) continue;\n const sectionKey = normalized.sectionKey;\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n if (contracts[sectionKey]) {\n issues.push('section key already exists at /contracts/' + sectionKey);\n }\n\n for (const contractKey of normalized.contractKeys) {\n if (seenContractKeys.has(contractKey)) {\n issues.push('contract key used by multiple sections in request: ' + contractKey);\n continue;\n }\n seenContractKeys.add(contractKey);\n if (contracts[contractKey]) {\n issues.push('contract key already exists at /contracts/' + contractKey);\n }\n }\n\n for (const contractDef of normalized.contractDefs) {\n sectionChangeset.push({\n op: 'add',\n path: '/contracts/' + escapePointer(contractDef.key),\n val: contractDef.contract\n });\n }\n sectionChangeset.push({\n op: 'add',\n path: '/contracts/' + escapePointer(sectionKey),\n val: normalized.section\n });\n}\n\nfor (const entry of modifyList) {\n const normalized = normalizeSectionDefinition(entry, 'sectionChanges.modify');\n if (!normalized) continue;\n const sectionKey = normalized.sectionKey;\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n const existingSection = contracts[sectionKey];\n if (!existingSection) {\n issues.push('section key does not exist at /contracts/' + sectionKey);\n } else if (!isDocumentSection(existingSection)) {\n issues.push('existing section at /contracts/' + sectionKey + ' is not a Document Section');\n }\n\n const existingRelated =\n existingSection && existingSection.relatedContracts\n ? asList(existingSection.relatedContracts)\n : [];\n if (existingSection && !existingSection.relatedContracts) {\n issues.push('existing section ' + sectionKey + ' is missing relatedContracts');\n }\n\n for (const contractKey of normalized.contractKeys) {\n if (seenContractKeys.has(contractKey)) {\n issues.push('contract key used by multiple sections in request: ' + contractKey);\n continue;\n }\n seenContractKeys.add(contractKey);\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n }\n }\n\n for (const contractDef of normalized.contractDefs) {\n const op = contracts[contractDef.key] ? 'replace' : 'add';\n sectionChangeset.push({\n op,\n path: '/contracts/' + escapePointer(contractDef.key),\n val: contractDef.contract\n });\n }\n\n const toRemove = uniqueKeys(existingRelated, 'sectionChanges.modify remove list').filter(\n (key) => !normalized.contractKeys.includes(key)\n );\n for (const contractKey of toRemove) {\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n continue;\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(contractKey)\n });\n }\n\n sectionChangeset.push({\n op: 'replace',\n path: '/contracts/' + escapePointer(sectionKey),\n val: normalized.section\n });\n}\n\nconst removeKeys = uniqueKeys(removeList, 'sectionChanges.remove');\nfor (const sectionKey of removeKeys) {\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n const existingSection = contracts[sectionKey];\n if (!existingSection) {\n issues.push('section key does not exist at /contracts/' + sectionKey);\n continue;\n }\n if (!isDocumentSection(existingSection)) {\n issues.push('existing section at /contracts/' + sectionKey + ' is not a Document Section');\n continue;\n }\n\n const related = existingSection.relatedContracts\n ? uniqueKeys(asList(existingSection.relatedContracts), 'sectionChanges.remove relatedContracts')\n : [];\n if (!existingSection.relatedContracts) {\n issues.push('existing section ' + sectionKey + ' is missing relatedContracts');\n }\n\n for (const contractKey of related) {\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n continue;\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(contractKey)\n });\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(sectionKey)\n });\n}\nconst combinedChangeset = sectionChangeset.concat(hasChangeset ? requestChangeset : []);\n\nif (combinedChangeset.length === 0) {\n issues.push('no changes provided');\n}\n\nif (issues.length > 0) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: issues.join('; ')\n }\n ]\n }\n}\n\nreturn {\n changeset: combinedChangeset\n};\n";
|
|
353
|
-
|
|
354
|
-
readonly
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
742
|
+
readonly type: {
|
|
743
|
+
readonly blueId: "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
|
|
744
|
+
};
|
|
745
|
+
};
|
|
746
|
+
readonly AemAG9Bb3XUZm6hLPMipUeYmpFFG6X4CUYZFSLC88WjV: {
|
|
747
|
+
readonly actionId: {
|
|
748
|
+
readonly description: "Optional idempotency key for the action request.";
|
|
749
|
+
readonly type: {
|
|
750
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
751
|
+
};
|
|
752
|
+
};
|
|
753
|
+
readonly actionType: {
|
|
754
|
+
readonly description: "consentApproval | callOperation | informational";
|
|
755
|
+
readonly type: {
|
|
756
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
757
|
+
};
|
|
758
|
+
};
|
|
759
|
+
readonly description: "A document suggests that the bank should ask the customer to take a specific action in the bank UI.";
|
|
760
|
+
readonly message: {
|
|
761
|
+
readonly description: "Human-readable message describing what is expected.";
|
|
762
|
+
readonly type: {
|
|
763
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
764
|
+
};
|
|
765
|
+
};
|
|
766
|
+
readonly name: "Customer Action Requested";
|
|
767
|
+
readonly operationName: {
|
|
768
|
+
readonly description: "Optional contract operation to execute (used for callOperation).";
|
|
769
|
+
readonly type: {
|
|
770
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
771
|
+
};
|
|
772
|
+
};
|
|
773
|
+
readonly prefillRequestJson: {
|
|
774
|
+
readonly description: "Optional JSON string to prefill the operation request form.";
|
|
775
|
+
readonly type: {
|
|
776
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
777
|
+
};
|
|
778
|
+
};
|
|
779
|
+
readonly title: {
|
|
780
|
+
readonly description: "Short title for the pending action.";
|
|
781
|
+
readonly type: {
|
|
782
|
+
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
783
|
+
};
|
|
370
784
|
};
|
|
371
785
|
readonly type: {
|
|
372
|
-
readonly blueId: "
|
|
786
|
+
readonly blueId: "8f9UhHMbRe62sFgzQVheToaJPYi7t7HPNVvpQTbqfL5n";
|
|
373
787
|
};
|
|
374
788
|
};
|
|
375
789
|
readonly AkUKoKY1hHY1CytCrAXDPKCd4md1QGmn1WNcQtWBsyAD: {
|
|
@@ -421,18 +835,6 @@ export declare const contents: {
|
|
|
421
835
|
readonly blueId: "7QACj919YMRvFCTELCf6jfQTp41RVhtHdE6bPazLUZQ6";
|
|
422
836
|
};
|
|
423
837
|
};
|
|
424
|
-
readonly BoyJNkH7CAzjuuzbZFpxB7HguZVtLCxpBLnuYY5k1eqB: {
|
|
425
|
-
readonly description: "Operation that applies a changeset immediately without proposal/accept.";
|
|
426
|
-
readonly name: "Change Operation";
|
|
427
|
-
readonly request: {
|
|
428
|
-
readonly type: {
|
|
429
|
-
readonly blueId: "9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw";
|
|
430
|
-
};
|
|
431
|
-
};
|
|
432
|
-
readonly type: {
|
|
433
|
-
readonly blueId: "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
|
|
434
|
-
};
|
|
435
|
-
};
|
|
436
838
|
readonly C48nKSkbxraMSv4gCiGYVHKFjmtK12k63Yasn95zknWE: {
|
|
437
839
|
readonly description: "An event indicating that the document's status has transitioned.";
|
|
438
840
|
readonly name: "Status Change";
|
|
@@ -507,50 +909,6 @@ export declare const contents: {
|
|
|
507
909
|
readonly blueId: "5Wz4G9qcnBJnntYRkz4dgLK5bSuoMpYJZj4j5M59z4we";
|
|
508
910
|
};
|
|
509
911
|
};
|
|
510
|
-
readonly Ecj8Y7rb7kMCkNFfvyZ36CNB2JjCWrqy7BiHcvcNELEL: {
|
|
511
|
-
readonly description: "Stores a proposed change under /proposedChange{postfix}.";
|
|
512
|
-
readonly name: "Propose Change Workflow";
|
|
513
|
-
readonly postfix: {
|
|
514
|
-
readonly description: "Optional postfix used while building proposed change state key.";
|
|
515
|
-
readonly type: {
|
|
516
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
517
|
-
};
|
|
518
|
-
};
|
|
519
|
-
readonly request: {
|
|
520
|
-
readonly description: "Expected request payload for this workflow.";
|
|
521
|
-
readonly type: {
|
|
522
|
-
readonly blueId: "9KDfK6k1HBAyHckj5VuWXFMLkgY5cJBESKT4eoq1bnrw";
|
|
523
|
-
};
|
|
524
|
-
};
|
|
525
|
-
readonly steps: {
|
|
526
|
-
readonly items: readonly [{
|
|
527
|
-
readonly code: {
|
|
528
|
-
readonly type: {
|
|
529
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
530
|
-
};
|
|
531
|
-
readonly value: "const issues = [];\n\nconst request = event.message.request || {};\n\nconst changeDescription = request.changeDescription;\nconst rawChangeset = request.changeset;\nconst rawSectionChanges = request.sectionChanges;\nconst requestSectionChanges = rawSectionChanges || {};\n\nconst toText = (value) => {\n const raw = value && value.value ? value.value : value;\n return raw && raw.trim ? raw.trim() : '';\n};\nconst asList = (value) => Array.isArray(value) ? value : [];\nconst hasType = (value) => value && value.type;\nconst escapePointer = (value) => {\n const text = toText(value);\n return text.split('~').join('~0').split('/').join('~1');\n};\nconst requestChangeset = asList(rawChangeset);\n\nconst uniqueKeys = (values, label) => {\n const seen = new Set();\n const output = [];\n for (const value of values) {\n const key = toText(value);\n if (!key) {\n issues.push(label + ' contains invalid key');\n continue;\n }\n if (seen.has(key)) {\n issues.push(label + ' contains duplicate key: ' + key);\n continue;\n }\n seen.add(key);\n output.push(key);\n }\n return output;\n};\n\nconst sameStringSet = (left, right) => {\n if (left.length !== right.length) return false;\n const set = new Set(left);\n if (set.size !== right.length) return false;\n for (const value of right) {\n if (!set.has(value)) return false;\n }\n return true;\n};\n\nconst contracts = Object(document('/contracts') || {});\n\nconst isDocumentSection = (contract) =>\n !!contract && Array.isArray(contract.relatedContracts);\n\nconst isContractsChangePolicy = (contract) => {\n if (!contract) return false;\n return 'requireSectionChanges' in contract;\n};\n\nconst findPolicy = () => {\n for (const key of Object.keys(contracts)) {\n const contract = contracts[key];\n if (isContractsChangePolicy(contract)) {\n return contract;\n }\n }\n return null;\n};\n\nconst policy = findPolicy();\nconst policyEnabled = !!policy && policy.requireSectionChanges !== false;\n\nif (!toText(changeDescription)) {\n issues.push('changeDescription is missing');\n}\n\nconst hasChangeset = !!rawChangeset;\nconst hasSectionChanges = !!rawSectionChanges;\n\nif (!hasChangeset && !hasSectionChanges) {\n issues.push('changeset or sectionChanges is required');\n}\n\nconst isContractsPath = (path) => {\n const value = toText(path);\n return value === '/contracts' || value.startsWith('/contracts/');\n};\nif (policyEnabled && hasChangeset) {\n for (const entry of requestChangeset) {\n if (entry && isContractsPath(entry.path)) {\n issues.push('changeset cannot modify /contracts when Contracts Change Policy is enabled');\n break;\n }\n }\n}\nconst isProposedChangePath = (path) =>\n toText(path).startsWith('/proposedChange');\nif (hasChangeset) {\n for (const entry of requestChangeset) {\n if (entry && isProposedChangePath(entry.path)) {\n issues.push('changeset cannot modify /proposedChange');\n break;\n }\n }\n}\n\nconst existingSections = {};\nfor (const key of Object.keys(contracts)) {\n const contract = contracts[key];\n if (isDocumentSection(contract)) {\n existingSections[key] = contract;\n }\n}\n\nconst contractIndex = {};\nfor (const sectionKey of Object.keys(existingSections)) {\n const section = existingSections[sectionKey];\n const related = asList(section.relatedContracts);\n for (const relatedKey of related) {\n const contractKey = toText(relatedKey);\n if (!contractKey) continue;\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n contractIndex[contractKey] = null;\n } else if (!contractIndex[contractKey]) {\n contractIndex[contractKey] = sectionKey;\n }\n }\n}\n\nconst normalizeSectionDefinition = (sectionDef, label) => {\n if (!sectionDef) {\n issues.push(label + ' entry must be an object');\n return null;\n }\n const sectionKey = toText(sectionDef.sectionKey);\n if (!sectionKey) {\n issues.push(label + ' sectionKey is missing');\n return null;\n }\n const section = sectionDef.section;\n if (!section) {\n issues.push(label + ' section is missing');\n return null;\n }\n\n const rawContractsMap = sectionDef.contracts && sectionDef.contracts.value\n ? sectionDef.contracts.value\n : sectionDef.contracts || {};\n const contractDefs = [];\n const contractKeys = [];\n for (const [rawKey, contract] of Object.entries(rawContractsMap)) {\n if (\n rawKey === 'type' ||\n rawKey === 'keyType' ||\n rawKey === 'valueType' ||\n rawKey === 'description'\n ) {\n continue;\n }\n const key = toText(rawKey);\n if (!key) {\n issues.push(label + ' contract key is missing');\n continue;\n }\n if (!contract) {\n issues.push(label + ' contract ' + key + ' is missing or invalid');\n continue;\n }\n if (!hasType(contract)) {\n issues.push(label + ' contract ' + key + ' is missing type');\n }\n contractDefs.push({ key, contract });\n contractKeys.push(key);\n }\n\n if (!hasType(section)) {\n issues.push(label + ' section ' + sectionKey + ' is missing type');\n }\n\n const related = section.relatedContracts\n ? uniqueKeys(asList(section.relatedContracts), label + ' section ' + sectionKey + ' relatedContracts')\n : null;\n if (related && !sameStringSet(related, contractKeys)) {\n issues.push(label + ' section ' + sectionKey + ' relatedContracts must match contracts');\n }\n\n const normalizedRelated = related || contractKeys;\n const normalizedSection = Object.assign({}, section, {\n type: 'Conversation/Document Section',\n relatedContracts: normalizedRelated\n });\n\n return {\n sectionKey,\n section: normalizedSection,\n contractDefs,\n contractKeys\n };\n};\n\nconst sectionChangeset = [];\nconst seenSectionKeys = new Set();\nconst seenContractKeys = new Set();\n\nconst addList = asList(requestSectionChanges.add);\nconst modifyList = asList(requestSectionChanges.modify);\nconst removeList = asList(requestSectionChanges.remove);\n\nfor (const entry of addList) {\n const normalized = normalizeSectionDefinition(entry, 'sectionChanges.add');\n if (!normalized) continue;\n const sectionKey = normalized.sectionKey;\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n if (contracts[sectionKey]) {\n issues.push('section key already exists at /contracts/' + sectionKey);\n }\n\n for (const contractKey of normalized.contractKeys) {\n if (seenContractKeys.has(contractKey)) {\n issues.push('contract key used by multiple sections in request: ' + contractKey);\n continue;\n }\n seenContractKeys.add(contractKey);\n if (contracts[contractKey]) {\n issues.push('contract key already exists at /contracts/' + contractKey);\n }\n }\n\n for (const contractDef of normalized.contractDefs) {\n sectionChangeset.push({\n op: 'add',\n path: '/contracts/' + escapePointer(contractDef.key),\n val: contractDef.contract\n });\n }\n sectionChangeset.push({\n op: 'add',\n path: '/contracts/' + escapePointer(sectionKey),\n val: normalized.section\n });\n}\n\nfor (const entry of modifyList) {\n const normalized = normalizeSectionDefinition(entry, 'sectionChanges.modify');\n if (!normalized) continue;\n const sectionKey = normalized.sectionKey;\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n const existingSection = contracts[sectionKey];\n if (!existingSection) {\n issues.push('section key does not exist at /contracts/' + sectionKey);\n } else if (!isDocumentSection(existingSection)) {\n issues.push('existing section at /contracts/' + sectionKey + ' is not a Document Section');\n }\n\n const existingRelated =\n existingSection && existingSection.relatedContracts\n ? asList(existingSection.relatedContracts)\n : [];\n if (existingSection && !existingSection.relatedContracts) {\n issues.push('existing section ' + sectionKey + ' is missing relatedContracts');\n }\n\n for (const contractKey of normalized.contractKeys) {\n if (seenContractKeys.has(contractKey)) {\n issues.push('contract key used by multiple sections in request: ' + contractKey);\n continue;\n }\n seenContractKeys.add(contractKey);\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n }\n }\n\n for (const contractDef of normalized.contractDefs) {\n const op = contracts[contractDef.key] ? 'replace' : 'add';\n sectionChangeset.push({\n op,\n path: '/contracts/' + escapePointer(contractDef.key),\n val: contractDef.contract\n });\n }\n\n const toRemove = uniqueKeys(existingRelated, 'sectionChanges.modify remove list').filter(\n (key) => !normalized.contractKeys.includes(key)\n );\n for (const contractKey of toRemove) {\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n continue;\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(contractKey)\n });\n }\n\n sectionChangeset.push({\n op: 'replace',\n path: '/contracts/' + escapePointer(sectionKey),\n val: normalized.section\n });\n}\n\nconst removeKeys = uniqueKeys(removeList, 'sectionChanges.remove');\nfor (const sectionKey of removeKeys) {\n if (seenSectionKeys.has(sectionKey)) {\n issues.push('section key duplicated in sectionChanges: ' + sectionKey);\n continue;\n }\n seenSectionKeys.add(sectionKey);\n\n const existingSection = contracts[sectionKey];\n if (!existingSection) {\n issues.push('section key does not exist at /contracts/' + sectionKey);\n continue;\n }\n if (!isDocumentSection(existingSection)) {\n issues.push('existing section at /contracts/' + sectionKey + ' is not a Document Section');\n continue;\n }\n\n const related = existingSection.relatedContracts\n ? uniqueKeys(asList(existingSection.relatedContracts), 'sectionChanges.remove relatedContracts')\n : [];\n if (!existingSection.relatedContracts) {\n issues.push('existing section ' + sectionKey + ' is missing relatedContracts');\n }\n\n for (const contractKey of related) {\n if (contractIndex[contractKey] && contractIndex[contractKey] !== sectionKey) {\n issues.push('contract key ' + contractKey + ' is linked to another section');\n continue;\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(contractKey)\n });\n }\n sectionChangeset.push({\n op: 'remove',\n path: '/contracts/' + escapePointer(sectionKey)\n });\n}\nconst combinedChangeset = sectionChangeset.concat(hasChangeset ? requestChangeset : []);\n\nif (combinedChangeset.length === 0) {\n issues.push('no changes provided');\n}\n\nif (issues.length > 0) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: issues.join('; ')\n }\n ]\n }\n}\n\nconst postfixValue = currentContract.postfix || '';\nconst path = '/proposedChange' + postfixValue;\n\nif (document(path)) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: \"Can not propose change when it already exists at \" + path\n }\n ]\n }\n}\n\nconst proposedPayload = {\n changeDescription\n};\n\nproposedPayload.preparedChangeset = combinedChangeset;\n\nif (hasChangeset) {\n proposedPayload.changeset = requestChangeset;\n}\n\nconst hasSectionChangesData = addList.length || modifyList.length || removeList.length;\nif (hasSectionChangesData) {\n proposedPayload.sectionChanges = rawSectionChanges;\n}\n\nreturn {\n changeset: [{\n op: 'add',\n path,\n val: proposedPayload\n }]\n};\n";
|
|
532
|
-
};
|
|
533
|
-
readonly name: "Prepare";
|
|
534
|
-
readonly type: {
|
|
535
|
-
readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
|
|
536
|
-
};
|
|
537
|
-
}, {
|
|
538
|
-
readonly changeset: {
|
|
539
|
-
readonly type: {
|
|
540
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
541
|
-
};
|
|
542
|
-
readonly value: "${steps.Prepare.changeset}";
|
|
543
|
-
};
|
|
544
|
-
readonly name: "Apply";
|
|
545
|
-
readonly type: {
|
|
546
|
-
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
547
|
-
};
|
|
548
|
-
}];
|
|
549
|
-
};
|
|
550
|
-
readonly type: {
|
|
551
|
-
readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
|
|
552
|
-
};
|
|
553
|
-
};
|
|
554
912
|
readonly EhPFqrRCreg7StsZEcW8fRQ1FQVdqYSsMSis2CHHJZ1G: {
|
|
555
913
|
readonly description: "A successful final state. The document has achieved its goal and its\nprocess has finished as expected.\n";
|
|
556
914
|
readonly mode: {
|
|
@@ -646,82 +1004,6 @@ export declare const contents: {
|
|
|
646
1004
|
readonly blueId: "HYsLiqsqk7t98d5fK6YxKEQGeqBaHNVjM4rRNdxK4yUW";
|
|
647
1005
|
};
|
|
648
1006
|
};
|
|
649
|
-
readonly G6GMCB3AQvH2xR12RiDvaCiEbCjgz4uhjKssDMRXbCTG: {
|
|
650
|
-
readonly description: "Applies a previously proposed change and removes its proposal state.";
|
|
651
|
-
readonly name: "Accept Change Workflow";
|
|
652
|
-
readonly postfix: {
|
|
653
|
-
readonly description: "Optional postfix used while building proposed change state key.";
|
|
654
|
-
readonly type: {
|
|
655
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
656
|
-
};
|
|
657
|
-
};
|
|
658
|
-
readonly steps: {
|
|
659
|
-
readonly items: readonly [{
|
|
660
|
-
readonly code: {
|
|
661
|
-
readonly type: {
|
|
662
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
663
|
-
};
|
|
664
|
-
readonly value: "const postfix = currentContract.postfix || '';\nconst path = '/proposedChange' + postfix;\n\nconst proposedChange = document(path);\nif (!proposedChange) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: \"Proposed change does not exist at \" + path\n }\n ]\n };\n}\n\nconst preparedChangeset = proposedChange.preparedChangeset;\nif (!preparedChangeset || preparedChangeset.length === 0) {\n return {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: \"Proposed change is missing prepared changeset at \" + path\n }\n ]\n };\n}\n\nreturn {\n changeset: preparedChangeset.concat({ op: 'remove', path })\n};\n";
|
|
665
|
-
};
|
|
666
|
-
readonly name: "Prepare";
|
|
667
|
-
readonly type: {
|
|
668
|
-
readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
|
|
669
|
-
};
|
|
670
|
-
}, {
|
|
671
|
-
readonly changeset: {
|
|
672
|
-
readonly type: {
|
|
673
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
674
|
-
};
|
|
675
|
-
readonly value: "${steps.Prepare.changeset}";
|
|
676
|
-
};
|
|
677
|
-
readonly name: "Apply";
|
|
678
|
-
readonly type: {
|
|
679
|
-
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
680
|
-
};
|
|
681
|
-
}];
|
|
682
|
-
};
|
|
683
|
-
readonly type: {
|
|
684
|
-
readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
|
|
685
|
-
};
|
|
686
|
-
};
|
|
687
|
-
readonly GfqZJJtSJfd69v3pJ67XURdzhC4byWJZAstCh6i4X6MZ: {
|
|
688
|
-
readonly description: "Discards a previously proposed change by removing its proposal state.";
|
|
689
|
-
readonly name: "Reject Change Workflow";
|
|
690
|
-
readonly postfix: {
|
|
691
|
-
readonly description: "Optional postfix used while building proposed change state key.";
|
|
692
|
-
readonly type: {
|
|
693
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
694
|
-
};
|
|
695
|
-
};
|
|
696
|
-
readonly steps: {
|
|
697
|
-
readonly items: readonly [{
|
|
698
|
-
readonly code: {
|
|
699
|
-
readonly type: {
|
|
700
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
701
|
-
};
|
|
702
|
-
readonly value: "const postfix = currentContract.postfix || ''\nconst path = '/proposedChange' + postfix\n\nconst proposedChange = document(path)\nif (proposedChange) {\n return {\n changeset: [{ op: 'remove', path }]\n }\n}\n\nreturn {\n changeset: [],\n events: [\n {\n type: \"Conversation/Proposed Change Invalid\",\n reason: \"Proposed change does not exist at \" + path\n }\n ]\n};\n";
|
|
703
|
-
};
|
|
704
|
-
readonly name: "Prepare";
|
|
705
|
-
readonly type: {
|
|
706
|
-
readonly blueId: "ExZxT61PSpWHpEAtP2WKMXXqxEYN7Z13j7Zv36Dp99kS";
|
|
707
|
-
};
|
|
708
|
-
}, {
|
|
709
|
-
readonly changeset: {
|
|
710
|
-
readonly type: {
|
|
711
|
-
readonly blueId: "DLRQwz7MQeCrzjy9bohPNwtCxKEBbKaMK65KBrwjfG6K";
|
|
712
|
-
};
|
|
713
|
-
readonly value: "${steps.Prepare.changeset}";
|
|
714
|
-
};
|
|
715
|
-
readonly name: "Apply";
|
|
716
|
-
readonly type: {
|
|
717
|
-
readonly blueId: "FtHZJzH4hqAoGxFBjsmy1svfT4BwEBB4aHpFSZycZLLa";
|
|
718
|
-
};
|
|
719
|
-
}];
|
|
720
|
-
};
|
|
721
|
-
readonly type: {
|
|
722
|
-
readonly blueId: "CGdxkNjPcsdescqLPz6SNLsMyak6demQQr7RoKNHbCyv";
|
|
723
|
-
};
|
|
724
|
-
};
|
|
725
1007
|
readonly Guus3kHbivXvy5G93yhiKs3Pc8sxCc4XVvSo7CqLsQEc: {
|
|
726
1008
|
readonly description: "A final state indicating that the document encountered an unrecoverable\nerror and could not complete its process.\n";
|
|
727
1009
|
readonly mode: {
|
|
@@ -735,6 +1017,18 @@ export declare const contents: {
|
|
|
735
1017
|
readonly blueId: "58B8orsFkxxy7bWqjLXJmtBs2b5rwnNQNbeoAbGhPkJc";
|
|
736
1018
|
};
|
|
737
1019
|
};
|
|
1020
|
+
readonly GzA8QNJnfYyFpFKmeM2HWzXJxYXoWgW6PtbyCAHhgoy4: {
|
|
1021
|
+
readonly description: "Operation to propose a document change for later acceptance or rejection.";
|
|
1022
|
+
readonly name: "Propose Change Operation";
|
|
1023
|
+
readonly request: {
|
|
1024
|
+
readonly type: {
|
|
1025
|
+
readonly blueId: "6KZwmcsyYNiJhn2pAfS9LAFTxTRHcDw4yzPwV3A3SSQp";
|
|
1026
|
+
};
|
|
1027
|
+
};
|
|
1028
|
+
readonly type: {
|
|
1029
|
+
readonly blueId: "BoAiqVUZv9Fum3wFqaX2JnQMBHJLxJSo2V9U2UBmCfsC";
|
|
1030
|
+
};
|
|
1031
|
+
};
|
|
738
1032
|
readonly HH5u8PwvdXrARNkT4oyWR4QjgkwhKfPWGnNtEwfUBiUg: {
|
|
739
1033
|
readonly description: "Response event confirming completion of the document bootstrap.";
|
|
740
1034
|
readonly documentId: {
|