@xemahq/contracts 0.86.0 → 0.87.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/.source-stamp.json +2 -2
- package/dist/action-catalog/index.d.ts +2 -0
- package/dist/action-catalog/index.d.ts.map +1 -0
- package/dist/action-catalog/index.js +18 -0
- package/dist/action-catalog/index.js.map +1 -0
- package/dist/action-catalog/lib/action-catalog-kind.d.ts +8 -0
- package/dist/action-catalog/lib/action-catalog-kind.d.ts.map +1 -0
- package/dist/action-catalog/lib/action-catalog-kind.js +12 -0
- package/dist/action-catalog/lib/action-catalog-kind.js.map +1 -0
- package/dist/deliverable-validation/index.d.ts +2 -0
- package/dist/deliverable-validation/index.d.ts.map +1 -1
- package/dist/deliverable-validation/index.js +2 -0
- package/dist/deliverable-validation/index.js.map +1 -1
- package/dist/deliverable-validation/lib/deliverable-acceptance-hook.d.ts +6 -0
- package/dist/deliverable-validation/lib/deliverable-acceptance-hook.d.ts.map +1 -0
- package/dist/deliverable-validation/lib/deliverable-acceptance-hook.js +45 -0
- package/dist/deliverable-validation/lib/deliverable-acceptance-hook.js.map +1 -0
- package/dist/{output → deliverable-validation}/lib/deliverable-output-contract.d.ts +6 -6
- package/dist/deliverable-validation/lib/deliverable-output-contract.d.ts.map +1 -0
- package/dist/{output → deliverable-validation}/lib/deliverable-output-contract.js +26 -22
- package/dist/deliverable-validation/lib/deliverable-output-contract.js.map +1 -0
- package/dist/deliverable-validation/lib/phase.d.ts +5 -3
- package/dist/deliverable-validation/lib/phase.d.ts.map +1 -1
- package/dist/deliverable-validation/lib/phase.js +10 -17
- package/dist/deliverable-validation/lib/phase.js.map +1 -1
- package/dist/deliverable-validation/lib/validator-declaration.d.ts +1 -11
- package/dist/deliverable-validation/lib/validator-declaration.d.ts.map +1 -1
- package/dist/deliverable-validation/lib/validator-declaration.js +10 -17
- package/dist/deliverable-validation/lib/validator-declaration.js.map +1 -1
- package/dist/edition-protocol/edition-contract.schema.json +1 -1
- package/dist/edition-protocol/edition-protocol.json +1 -1
- package/dist/edition-protocol/lib/edition-protocol.js +2 -2
- package/dist/hook/index.d.ts +12 -0
- package/dist/hook/index.d.ts.map +1 -0
- package/dist/hook/index.js +28 -0
- package/dist/hook/index.js.map +1 -0
- package/dist/hook/lib/hook-aggregation.d.ts +76 -0
- package/dist/hook/lib/hook-aggregation.d.ts.map +1 -0
- package/dist/hook/lib/hook-aggregation.js +163 -0
- package/dist/hook/lib/hook-aggregation.js.map +1 -0
- package/dist/hook/lib/hook-binding-feed.d.ts +40 -0
- package/dist/hook/lib/hook-binding-feed.d.ts.map +1 -0
- package/dist/hook/lib/hook-binding-feed.js +107 -0
- package/dist/hook/lib/hook-binding-feed.js.map +1 -0
- package/dist/hook/lib/hook-binding-set.d.ts +58 -0
- package/dist/hook/lib/hook-binding-set.d.ts.map +1 -0
- package/dist/hook/lib/hook-binding-set.js +103 -0
- package/dist/hook/lib/hook-binding-set.js.map +1 -0
- package/dist/hook/lib/hook-binding.d.ts +51 -0
- package/dist/hook/lib/hook-binding.d.ts.map +1 -0
- package/dist/hook/lib/hook-binding.js +119 -0
- package/dist/hook/lib/hook-binding.js.map +1 -0
- package/dist/hook/lib/hook-deferral.d.ts +46 -0
- package/dist/hook/lib/hook-deferral.d.ts.map +1 -0
- package/dist/hook/lib/hook-deferral.js +113 -0
- package/dist/hook/lib/hook-deferral.js.map +1 -0
- package/dist/hook/lib/hook-enums.d.ts +121 -0
- package/dist/hook/lib/hook-enums.d.ts.map +1 -0
- package/dist/hook/lib/hook-enums.js +165 -0
- package/dist/hook/lib/hook-enums.js.map +1 -0
- package/dist/hook/lib/hook-handler-request.d.ts +15 -0
- package/dist/hook/lib/hook-handler-request.d.ts.map +1 -0
- package/dist/hook/lib/hook-handler-request.js +36 -0
- package/dist/hook/lib/hook-handler-request.js.map +1 -0
- package/dist/hook/lib/hook-identifiers.d.ts +12 -0
- package/dist/hook/lib/hook-identifiers.d.ts.map +1 -0
- package/dist/hook/lib/hook-identifiers.js +66 -0
- package/dist/hook/lib/hook-identifiers.js.map +1 -0
- package/dist/hook/lib/hook-patch.d.ts +20 -0
- package/dist/hook/lib/hook-patch.d.ts.map +1 -0
- package/dist/hook/lib/hook-patch.js +145 -0
- package/dist/hook/lib/hook-patch.js.map +1 -0
- package/dist/hook/lib/hook-point.d.ts +33 -0
- package/dist/hook/lib/hook-point.d.ts.map +1 -0
- package/dist/hook/lib/hook-point.js +105 -0
- package/dist/hook/lib/hook-point.js.map +1 -0
- package/dist/hook/lib/hook-verdict.d.ts +49 -0
- package/dist/hook/lib/hook-verdict.d.ts.map +1 -0
- package/dist/hook/lib/hook-verdict.js +66 -0
- package/dist/hook/lib/hook-verdict.js.map +1 -0
- package/dist/output/index.d.ts +0 -1
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +0 -1
- package/dist/output/index.js.map +1 -1
- package/dist/search-source/lib/indexable-document.d.ts +3 -0
- package/dist/search-source/lib/indexable-document.d.ts.map +1 -1
- package/dist/search-source/lib/indexable-document.js +2 -0
- package/dist/search-source/lib/indexable-document.js.map +1 -1
- package/dist/search-source/lib/search-index-event.d.ts +4 -0
- package/dist/search-source/lib/search-index-event.d.ts.map +1 -1
- package/dist/search-source/lib/search-index-event.js +2 -0
- package/dist/search-source/lib/search-index-event.js.map +1 -1
- package/dist/search-source/lib/search-replay.d.ts +1 -0
- package/dist/search-source/lib/search-replay.d.ts.map +1 -1
- package/dist/state-version/index.d.ts +2 -0
- package/dist/state-version/index.d.ts.map +1 -0
- package/dist/state-version/index.js +18 -0
- package/dist/state-version/index.js.map +1 -0
- package/dist/state-version/lib/state-version.d.ts +4 -0
- package/dist/state-version/lib/state-version.d.ts.map +1 -0
- package/dist/state-version/lib/state-version.js +6 -0
- package/dist/state-version/lib/state-version.js.map +1 -0
- package/dist/worker-runtime/lib/enums.d.ts +1 -1
- package/dist/worker-runtime/lib/enums.d.ts.map +1 -1
- package/dist/worker-runtime/lib/enums.js +6 -2
- package/dist/worker-runtime/lib/enums.js.map +1 -1
- package/package.json +2 -2
- package/dist/output/lib/deliverable-output-contract.d.ts.map +0 -1
- package/dist/output/lib/deliverable-output-contract.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-deferral.js","sourceRoot":"","sources":["../../../src/hook/lib/hook-deferral.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ActionCatalogKind } from '../../action-catalog';
|
|
3
|
+
export declare enum HookMode {
|
|
4
|
+
Admit = "admit",
|
|
5
|
+
Transform = "transform",
|
|
6
|
+
Defer = "defer"
|
|
7
|
+
}
|
|
8
|
+
export declare const HookModeSchema: z.ZodEnum<typeof HookMode>;
|
|
9
|
+
export declare const HOOK_MODE_ACTION_KINDS: Readonly<Record<HookMode, readonly ActionCatalogKind[]>>;
|
|
10
|
+
export declare enum HookParticipation {
|
|
11
|
+
Required = "required",
|
|
12
|
+
Optional = "optional"
|
|
13
|
+
}
|
|
14
|
+
export declare const HookParticipationSchema: z.ZodEnum<typeof HookParticipation>;
|
|
15
|
+
export declare enum HookBindingPermission {
|
|
16
|
+
Manage = "manage",
|
|
17
|
+
Observe = "observe",
|
|
18
|
+
Execute = "execute"
|
|
19
|
+
}
|
|
20
|
+
export declare const HookBindingPermissionSchema: z.ZodEnum<typeof HookBindingPermission>;
|
|
21
|
+
export declare enum HookVerdictKind {
|
|
22
|
+
Allow = "allow",
|
|
23
|
+
Deny = "deny",
|
|
24
|
+
Patch = "patch",
|
|
25
|
+
Defer = "defer"
|
|
26
|
+
}
|
|
27
|
+
export declare const HookVerdictKindSchema: z.ZodEnum<typeof HookVerdictKind>;
|
|
28
|
+
export declare enum HookPhase {
|
|
29
|
+
Transform = "transform",
|
|
30
|
+
Validate = "validate"
|
|
31
|
+
}
|
|
32
|
+
export declare const HookPhaseSchema: z.ZodEnum<typeof HookPhase>;
|
|
33
|
+
export declare const HOOK_MODE_PHASE: Readonly<Record<HookMode, HookPhase>>;
|
|
34
|
+
export declare const HOOK_MODE_VERDICTS: Readonly<Record<HookMode, readonly HookVerdictKind[]>>;
|
|
35
|
+
export declare enum HookFailureCode {
|
|
36
|
+
Timeout = "timeout",
|
|
37
|
+
MalformedOutput = "malformed-output",
|
|
38
|
+
MissingSelectedExecution = "missing-selected-execution",
|
|
39
|
+
PatchConflict = "patch-conflict",
|
|
40
|
+
Saturation = "saturation",
|
|
41
|
+
Recursion = "recursion",
|
|
42
|
+
Revoked = "revoked",
|
|
43
|
+
CorrelationMismatch = "correlation-mismatch"
|
|
44
|
+
}
|
|
45
|
+
export declare const HookFailureCodeSchema: z.ZodEnum<typeof HookFailureCode>;
|
|
46
|
+
export declare const HOOK_ALWAYS_FATAL_FAILURES: ReadonlySet<HookFailureCode>;
|
|
47
|
+
export declare enum HookProjectionState {
|
|
48
|
+
Synced = "synced",
|
|
49
|
+
Unhydrated = "unhydrated",
|
|
50
|
+
Stale = "stale",
|
|
51
|
+
RevisionMismatched = "revision-mismatched",
|
|
52
|
+
Failed = "failed"
|
|
53
|
+
}
|
|
54
|
+
export declare const HookProjectionStateSchema: z.ZodEnum<typeof HookProjectionState>;
|
|
55
|
+
export declare enum HookOutcomeKind {
|
|
56
|
+
Proceed = "proceed",
|
|
57
|
+
Deny = "deny",
|
|
58
|
+
Defer = "defer",
|
|
59
|
+
Fail = "fail"
|
|
60
|
+
}
|
|
61
|
+
export declare const HookOutcomeKindSchema: z.ZodEnum<typeof HookOutcomeKind>;
|
|
62
|
+
export declare enum HookPatchOp {
|
|
63
|
+
Add = "add",
|
|
64
|
+
Replace = "replace",
|
|
65
|
+
Remove = "remove"
|
|
66
|
+
}
|
|
67
|
+
export declare const HookPatchOpSchema: z.ZodEnum<typeof HookPatchOp>;
|
|
68
|
+
export declare enum HookBindingRefusalCode {
|
|
69
|
+
HookPointMismatch = "hook-point-mismatch",
|
|
70
|
+
ModeNotDeclared = "mode-not-declared",
|
|
71
|
+
ActionKindIncompatible = "action-kind-incompatible",
|
|
72
|
+
ParticipationNotAllowed = "participation-not-allowed",
|
|
73
|
+
ProjectionOutsideDeclaration = "projection-outside-declaration",
|
|
74
|
+
AmbientExecuteAuthority = "ambient-execute-authority"
|
|
75
|
+
}
|
|
76
|
+
export declare const HookBindingRefusalCodeSchema: z.ZodEnum<typeof HookBindingRefusalCode>;
|
|
77
|
+
export declare enum HookScopeRefusalCode {
|
|
78
|
+
RequiredBindingSuppressed = "required-binding-suppressed",
|
|
79
|
+
UnknownBindingSuppressed = "unknown-binding-suppressed"
|
|
80
|
+
}
|
|
81
|
+
export declare const HookScopeRefusalCodeSchema: z.ZodEnum<typeof HookScopeRefusalCode>;
|
|
82
|
+
export declare enum HookDeferralState {
|
|
83
|
+
Pending = "pending",
|
|
84
|
+
Resumed = "resumed",
|
|
85
|
+
Rejected = "rejected",
|
|
86
|
+
Cancelled = "cancelled",
|
|
87
|
+
Expired = "expired"
|
|
88
|
+
}
|
|
89
|
+
export declare const HookDeferralStateSchema: z.ZodEnum<typeof HookDeferralState>;
|
|
90
|
+
export declare enum HookDecisionOutcome {
|
|
91
|
+
Approved = "approved",
|
|
92
|
+
Rejected = "rejected"
|
|
93
|
+
}
|
|
94
|
+
export declare const HookDecisionOutcomeSchema: z.ZodEnum<typeof HookDecisionOutcome>;
|
|
95
|
+
export declare enum HookDeferralEventKind {
|
|
96
|
+
Settled = "settled",
|
|
97
|
+
Cancelled = "cancelled",
|
|
98
|
+
Expired = "expired"
|
|
99
|
+
}
|
|
100
|
+
export declare const HookDeferralEventKindSchema: z.ZodEnum<typeof HookDeferralEventKind>;
|
|
101
|
+
export declare enum HookDeferralEffect {
|
|
102
|
+
Resume = "resume",
|
|
103
|
+
None = "none",
|
|
104
|
+
Reject = "reject",
|
|
105
|
+
RefuseUnknownRequirement = "refuse-unknown-requirement",
|
|
106
|
+
RefuseChangedCandidate = "refuse-changed-candidate"
|
|
107
|
+
}
|
|
108
|
+
export declare const HookDeferralEffectSchema: z.ZodEnum<typeof HookDeferralEffect>;
|
|
109
|
+
export declare enum HookBindingChangeKind {
|
|
110
|
+
BindingUpserted = "binding-upserted",
|
|
111
|
+
BindingRemoved = "binding-removed",
|
|
112
|
+
SuppressionAdded = "suppression-added",
|
|
113
|
+
SuppressionRemoved = "suppression-removed"
|
|
114
|
+
}
|
|
115
|
+
export declare const HookBindingChangeKindSchema: z.ZodEnum<typeof HookBindingChangeKind>;
|
|
116
|
+
export declare enum HookBindingFeedPageKind {
|
|
117
|
+
Changes = "changes",
|
|
118
|
+
ResyncRequired = "resync-required"
|
|
119
|
+
}
|
|
120
|
+
export declare const HookBindingFeedPageKindSchema: z.ZodEnum<typeof HookBindingFeedPageKind>;
|
|
121
|
+
//# sourceMappingURL=hook-enums.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-enums.d.ts","sourceRoot":"","sources":["../../../src/hook/lib/hook-enums.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HookBindingFeedPageKindSchema = exports.HookBindingFeedPageKind = exports.HookBindingChangeKindSchema = exports.HookBindingChangeKind = exports.HookDeferralEffectSchema = exports.HookDeferralEffect = exports.HookDeferralEventKindSchema = exports.HookDeferralEventKind = exports.HookDecisionOutcomeSchema = exports.HookDecisionOutcome = exports.HookDeferralStateSchema = exports.HookDeferralState = exports.HookScopeRefusalCodeSchema = exports.HookScopeRefusalCode = exports.HookBindingRefusalCodeSchema = exports.HookBindingRefusalCode = exports.HookPatchOpSchema = exports.HookPatchOp = exports.HookOutcomeKindSchema = exports.HookOutcomeKind = exports.HookProjectionStateSchema = exports.HookProjectionState = exports.HOOK_ALWAYS_FATAL_FAILURES = exports.HookFailureCodeSchema = exports.HookFailureCode = exports.HOOK_MODE_VERDICTS = exports.HOOK_MODE_PHASE = exports.HookPhaseSchema = exports.HookPhase = exports.HookVerdictKindSchema = exports.HookVerdictKind = exports.HookBindingPermissionSchema = exports.HookBindingPermission = exports.HookParticipationSchema = exports.HookParticipation = exports.HOOK_MODE_ACTION_KINDS = exports.HookModeSchema = exports.HookMode = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const action_catalog_1 = require("../../action-catalog");
|
|
6
|
+
var HookMode;
|
|
7
|
+
(function (HookMode) {
|
|
8
|
+
HookMode["Admit"] = "admit";
|
|
9
|
+
HookMode["Transform"] = "transform";
|
|
10
|
+
HookMode["Defer"] = "defer";
|
|
11
|
+
})(HookMode || (exports.HookMode = HookMode = {}));
|
|
12
|
+
exports.HookModeSchema = zod_1.z.nativeEnum(HookMode);
|
|
13
|
+
exports.HOOK_MODE_ACTION_KINDS = Object.freeze({
|
|
14
|
+
[HookMode.Admit]: Object.freeze([
|
|
15
|
+
action_catalog_1.ActionCatalogKind.Capability,
|
|
16
|
+
action_catalog_1.ActionCatalogKind.Function,
|
|
17
|
+
]),
|
|
18
|
+
[HookMode.Transform]: Object.freeze([
|
|
19
|
+
action_catalog_1.ActionCatalogKind.Capability,
|
|
20
|
+
action_catalog_1.ActionCatalogKind.Function,
|
|
21
|
+
]),
|
|
22
|
+
[HookMode.Defer]: Object.freeze([
|
|
23
|
+
action_catalog_1.ActionCatalogKind.Capability,
|
|
24
|
+
action_catalog_1.ActionCatalogKind.Function,
|
|
25
|
+
]),
|
|
26
|
+
});
|
|
27
|
+
var HookParticipation;
|
|
28
|
+
(function (HookParticipation) {
|
|
29
|
+
HookParticipation["Required"] = "required";
|
|
30
|
+
HookParticipation["Optional"] = "optional";
|
|
31
|
+
})(HookParticipation || (exports.HookParticipation = HookParticipation = {}));
|
|
32
|
+
exports.HookParticipationSchema = zod_1.z.nativeEnum(HookParticipation);
|
|
33
|
+
var HookBindingPermission;
|
|
34
|
+
(function (HookBindingPermission) {
|
|
35
|
+
HookBindingPermission["Manage"] = "manage";
|
|
36
|
+
HookBindingPermission["Observe"] = "observe";
|
|
37
|
+
HookBindingPermission["Execute"] = "execute";
|
|
38
|
+
})(HookBindingPermission || (exports.HookBindingPermission = HookBindingPermission = {}));
|
|
39
|
+
exports.HookBindingPermissionSchema = zod_1.z.nativeEnum(HookBindingPermission);
|
|
40
|
+
var HookVerdictKind;
|
|
41
|
+
(function (HookVerdictKind) {
|
|
42
|
+
HookVerdictKind["Allow"] = "allow";
|
|
43
|
+
HookVerdictKind["Deny"] = "deny";
|
|
44
|
+
HookVerdictKind["Patch"] = "patch";
|
|
45
|
+
HookVerdictKind["Defer"] = "defer";
|
|
46
|
+
})(HookVerdictKind || (exports.HookVerdictKind = HookVerdictKind = {}));
|
|
47
|
+
exports.HookVerdictKindSchema = zod_1.z.nativeEnum(HookVerdictKind);
|
|
48
|
+
var HookPhase;
|
|
49
|
+
(function (HookPhase) {
|
|
50
|
+
HookPhase["Transform"] = "transform";
|
|
51
|
+
HookPhase["Validate"] = "validate";
|
|
52
|
+
})(HookPhase || (exports.HookPhase = HookPhase = {}));
|
|
53
|
+
exports.HookPhaseSchema = zod_1.z.nativeEnum(HookPhase);
|
|
54
|
+
exports.HOOK_MODE_PHASE = Object.freeze({
|
|
55
|
+
[HookMode.Transform]: HookPhase.Transform,
|
|
56
|
+
[HookMode.Admit]: HookPhase.Validate,
|
|
57
|
+
[HookMode.Defer]: HookPhase.Validate,
|
|
58
|
+
});
|
|
59
|
+
exports.HOOK_MODE_VERDICTS = Object.freeze({
|
|
60
|
+
[HookMode.Admit]: Object.freeze([HookVerdictKind.Allow, HookVerdictKind.Deny]),
|
|
61
|
+
[HookMode.Transform]: Object.freeze([
|
|
62
|
+
HookVerdictKind.Allow,
|
|
63
|
+
HookVerdictKind.Patch,
|
|
64
|
+
]),
|
|
65
|
+
[HookMode.Defer]: Object.freeze([HookVerdictKind.Allow, HookVerdictKind.Defer]),
|
|
66
|
+
});
|
|
67
|
+
var HookFailureCode;
|
|
68
|
+
(function (HookFailureCode) {
|
|
69
|
+
HookFailureCode["Timeout"] = "timeout";
|
|
70
|
+
HookFailureCode["MalformedOutput"] = "malformed-output";
|
|
71
|
+
HookFailureCode["MissingSelectedExecution"] = "missing-selected-execution";
|
|
72
|
+
HookFailureCode["PatchConflict"] = "patch-conflict";
|
|
73
|
+
HookFailureCode["Saturation"] = "saturation";
|
|
74
|
+
HookFailureCode["Recursion"] = "recursion";
|
|
75
|
+
HookFailureCode["Revoked"] = "revoked";
|
|
76
|
+
HookFailureCode["CorrelationMismatch"] = "correlation-mismatch";
|
|
77
|
+
})(HookFailureCode || (exports.HookFailureCode = HookFailureCode = {}));
|
|
78
|
+
exports.HookFailureCodeSchema = zod_1.z.nativeEnum(HookFailureCode);
|
|
79
|
+
exports.HOOK_ALWAYS_FATAL_FAILURES = Object.freeze(new Set([HookFailureCode.PatchConflict, HookFailureCode.Recursion]));
|
|
80
|
+
var HookProjectionState;
|
|
81
|
+
(function (HookProjectionState) {
|
|
82
|
+
HookProjectionState["Synced"] = "synced";
|
|
83
|
+
HookProjectionState["Unhydrated"] = "unhydrated";
|
|
84
|
+
HookProjectionState["Stale"] = "stale";
|
|
85
|
+
HookProjectionState["RevisionMismatched"] = "revision-mismatched";
|
|
86
|
+
HookProjectionState["Failed"] = "failed";
|
|
87
|
+
})(HookProjectionState || (exports.HookProjectionState = HookProjectionState = {}));
|
|
88
|
+
exports.HookProjectionStateSchema = zod_1.z.nativeEnum(HookProjectionState);
|
|
89
|
+
var HookOutcomeKind;
|
|
90
|
+
(function (HookOutcomeKind) {
|
|
91
|
+
HookOutcomeKind["Proceed"] = "proceed";
|
|
92
|
+
HookOutcomeKind["Deny"] = "deny";
|
|
93
|
+
HookOutcomeKind["Defer"] = "defer";
|
|
94
|
+
HookOutcomeKind["Fail"] = "fail";
|
|
95
|
+
})(HookOutcomeKind || (exports.HookOutcomeKind = HookOutcomeKind = {}));
|
|
96
|
+
exports.HookOutcomeKindSchema = zod_1.z.nativeEnum(HookOutcomeKind);
|
|
97
|
+
var HookPatchOp;
|
|
98
|
+
(function (HookPatchOp) {
|
|
99
|
+
HookPatchOp["Add"] = "add";
|
|
100
|
+
HookPatchOp["Replace"] = "replace";
|
|
101
|
+
HookPatchOp["Remove"] = "remove";
|
|
102
|
+
})(HookPatchOp || (exports.HookPatchOp = HookPatchOp = {}));
|
|
103
|
+
exports.HookPatchOpSchema = zod_1.z.nativeEnum(HookPatchOp);
|
|
104
|
+
var HookBindingRefusalCode;
|
|
105
|
+
(function (HookBindingRefusalCode) {
|
|
106
|
+
HookBindingRefusalCode["HookPointMismatch"] = "hook-point-mismatch";
|
|
107
|
+
HookBindingRefusalCode["ModeNotDeclared"] = "mode-not-declared";
|
|
108
|
+
HookBindingRefusalCode["ActionKindIncompatible"] = "action-kind-incompatible";
|
|
109
|
+
HookBindingRefusalCode["ParticipationNotAllowed"] = "participation-not-allowed";
|
|
110
|
+
HookBindingRefusalCode["ProjectionOutsideDeclaration"] = "projection-outside-declaration";
|
|
111
|
+
HookBindingRefusalCode["AmbientExecuteAuthority"] = "ambient-execute-authority";
|
|
112
|
+
})(HookBindingRefusalCode || (exports.HookBindingRefusalCode = HookBindingRefusalCode = {}));
|
|
113
|
+
exports.HookBindingRefusalCodeSchema = zod_1.z.nativeEnum(HookBindingRefusalCode);
|
|
114
|
+
var HookScopeRefusalCode;
|
|
115
|
+
(function (HookScopeRefusalCode) {
|
|
116
|
+
HookScopeRefusalCode["RequiredBindingSuppressed"] = "required-binding-suppressed";
|
|
117
|
+
HookScopeRefusalCode["UnknownBindingSuppressed"] = "unknown-binding-suppressed";
|
|
118
|
+
})(HookScopeRefusalCode || (exports.HookScopeRefusalCode = HookScopeRefusalCode = {}));
|
|
119
|
+
exports.HookScopeRefusalCodeSchema = zod_1.z.nativeEnum(HookScopeRefusalCode);
|
|
120
|
+
var HookDeferralState;
|
|
121
|
+
(function (HookDeferralState) {
|
|
122
|
+
HookDeferralState["Pending"] = "pending";
|
|
123
|
+
HookDeferralState["Resumed"] = "resumed";
|
|
124
|
+
HookDeferralState["Rejected"] = "rejected";
|
|
125
|
+
HookDeferralState["Cancelled"] = "cancelled";
|
|
126
|
+
HookDeferralState["Expired"] = "expired";
|
|
127
|
+
})(HookDeferralState || (exports.HookDeferralState = HookDeferralState = {}));
|
|
128
|
+
exports.HookDeferralStateSchema = zod_1.z.nativeEnum(HookDeferralState);
|
|
129
|
+
var HookDecisionOutcome;
|
|
130
|
+
(function (HookDecisionOutcome) {
|
|
131
|
+
HookDecisionOutcome["Approved"] = "approved";
|
|
132
|
+
HookDecisionOutcome["Rejected"] = "rejected";
|
|
133
|
+
})(HookDecisionOutcome || (exports.HookDecisionOutcome = HookDecisionOutcome = {}));
|
|
134
|
+
exports.HookDecisionOutcomeSchema = zod_1.z.nativeEnum(HookDecisionOutcome);
|
|
135
|
+
var HookDeferralEventKind;
|
|
136
|
+
(function (HookDeferralEventKind) {
|
|
137
|
+
HookDeferralEventKind["Settled"] = "settled";
|
|
138
|
+
HookDeferralEventKind["Cancelled"] = "cancelled";
|
|
139
|
+
HookDeferralEventKind["Expired"] = "expired";
|
|
140
|
+
})(HookDeferralEventKind || (exports.HookDeferralEventKind = HookDeferralEventKind = {}));
|
|
141
|
+
exports.HookDeferralEventKindSchema = zod_1.z.nativeEnum(HookDeferralEventKind);
|
|
142
|
+
var HookDeferralEffect;
|
|
143
|
+
(function (HookDeferralEffect) {
|
|
144
|
+
HookDeferralEffect["Resume"] = "resume";
|
|
145
|
+
HookDeferralEffect["None"] = "none";
|
|
146
|
+
HookDeferralEffect["Reject"] = "reject";
|
|
147
|
+
HookDeferralEffect["RefuseUnknownRequirement"] = "refuse-unknown-requirement";
|
|
148
|
+
HookDeferralEffect["RefuseChangedCandidate"] = "refuse-changed-candidate";
|
|
149
|
+
})(HookDeferralEffect || (exports.HookDeferralEffect = HookDeferralEffect = {}));
|
|
150
|
+
exports.HookDeferralEffectSchema = zod_1.z.nativeEnum(HookDeferralEffect);
|
|
151
|
+
var HookBindingChangeKind;
|
|
152
|
+
(function (HookBindingChangeKind) {
|
|
153
|
+
HookBindingChangeKind["BindingUpserted"] = "binding-upserted";
|
|
154
|
+
HookBindingChangeKind["BindingRemoved"] = "binding-removed";
|
|
155
|
+
HookBindingChangeKind["SuppressionAdded"] = "suppression-added";
|
|
156
|
+
HookBindingChangeKind["SuppressionRemoved"] = "suppression-removed";
|
|
157
|
+
})(HookBindingChangeKind || (exports.HookBindingChangeKind = HookBindingChangeKind = {}));
|
|
158
|
+
exports.HookBindingChangeKindSchema = zod_1.z.nativeEnum(HookBindingChangeKind);
|
|
159
|
+
var HookBindingFeedPageKind;
|
|
160
|
+
(function (HookBindingFeedPageKind) {
|
|
161
|
+
HookBindingFeedPageKind["Changes"] = "changes";
|
|
162
|
+
HookBindingFeedPageKind["ResyncRequired"] = "resync-required";
|
|
163
|
+
})(HookBindingFeedPageKind || (exports.HookBindingFeedPageKind = HookBindingFeedPageKind = {}));
|
|
164
|
+
exports.HookBindingFeedPageKindSchema = zod_1.z.nativeEnum(HookBindingFeedPageKind);
|
|
165
|
+
//# sourceMappingURL=hook-enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-enums.js","sourceRoot":"","sources":["../../../src/hook/lib/hook-enums.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { HookMode, type HookPhase } from './hook-enums';
|
|
3
|
+
import { type HookRequestCorrelation } from './hook-verdict';
|
|
4
|
+
export interface HookHandlerRequest {
|
|
5
|
+
readonly hookPointId: string;
|
|
6
|
+
readonly operation: string;
|
|
7
|
+
readonly phase: HookPhase;
|
|
8
|
+
readonly mode: HookMode;
|
|
9
|
+
readonly correlation: HookRequestCorrelation;
|
|
10
|
+
readonly projection: Readonly<Record<string, unknown>>;
|
|
11
|
+
readonly writableFields: readonly string[];
|
|
12
|
+
readonly synchronousChain: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export declare const HookHandlerRequestSchema: z.ZodType<HookHandlerRequest>;
|
|
15
|
+
//# sourceMappingURL=hook-handler-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-handler-request.d.ts","sourceRoot":"","sources":["../../../src/hook/lib/hook-handler-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,QAAQ,EAGR,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAa3F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAE7C,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvD,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAK3C,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CA2BnB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HookHandlerRequestSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const hook_enums_1 = require("./hook-enums");
|
|
6
|
+
const hook_identifiers_1 = require("./hook-identifiers");
|
|
7
|
+
const hook_verdict_1 = require("./hook-verdict");
|
|
8
|
+
exports.HookHandlerRequestSchema = zod_1.z
|
|
9
|
+
.object({
|
|
10
|
+
hookPointId: hook_identifiers_1.HookPointIdSchema,
|
|
11
|
+
operation: hook_identifiers_1.HookOperationIdSchema,
|
|
12
|
+
phase: hook_enums_1.HookPhaseSchema,
|
|
13
|
+
mode: hook_enums_1.HookModeSchema,
|
|
14
|
+
correlation: hook_verdict_1.HookRequestCorrelationSchema,
|
|
15
|
+
projection: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).readonly(),
|
|
16
|
+
writableFields: zod_1.z.array(hook_identifiers_1.HookFieldPointerSchema).readonly(),
|
|
17
|
+
synchronousChain: zod_1.z.array(hook_identifiers_1.HookPointIdSchema).readonly(),
|
|
18
|
+
})
|
|
19
|
+
.strict()
|
|
20
|
+
.superRefine((request, context) => {
|
|
21
|
+
if (hook_enums_1.HOOK_MODE_PHASE[request.mode] !== request.phase) {
|
|
22
|
+
context.addIssue({
|
|
23
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
24
|
+
path: ['phase'],
|
|
25
|
+
message: `Mode \`${request.mode}\` runs in the \`${hook_enums_1.HOOK_MODE_PHASE[request.mode]}\` phase.`,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (request.mode !== hook_enums_1.HookMode.Transform && request.writableFields.length > 0) {
|
|
29
|
+
context.addIssue({
|
|
30
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
31
|
+
path: ['writableFields'],
|
|
32
|
+
message: 'Writable fields exist only in transform mode.',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=hook-handler-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-handler-request.js","sourceRoot":"","sources":["../../../src/hook/lib/hook-handler-request.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,6CAMsB;AACtB,yDAAsG;AACtG,iDAA2F;AA8B9E,QAAA,wBAAwB,GAAkC,OAAC;KACrE,MAAM,CAAC;IACN,WAAW,EAAE,oCAAiB;IAC9B,SAAS,EAAE,wCAAqB;IAChC,KAAK,EAAE,4BAAe;IACtB,IAAI,EAAE,2BAAc;IACpB,WAAW,EAAE,2CAA4B;IACzC,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,cAAc,EAAE,OAAC,CAAC,KAAK,CAAC,yCAAsB,CAAC,CAAC,QAAQ,EAAE;IAC1D,gBAAgB,EAAE,OAAC,CAAC,KAAK,CAAC,oCAAiB,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC;KACD,MAAM,EAAE;KACR,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAChC,IAAI,4BAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QACpD,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,OAAO,CAAC;YACf,OAAO,EAAE,UAAU,OAAO,CAAC,IAAI,oBAAoB,4BAAe,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;SAC5F,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,gBAAgB,CAAC;YACxB,OAAO,EAAE,+CAA+C;SACzD,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAA6C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const HOOK_IDENTIFIER_PATTERN: RegExp;
|
|
3
|
+
export declare const HookPointIdSchema: z.ZodString;
|
|
4
|
+
export declare const HookOperationIdSchema: z.ZodString;
|
|
5
|
+
export declare const HookRecordIdSchema: z.ZodString;
|
|
6
|
+
export declare const HookRevisionSchema: z.ZodNumber;
|
|
7
|
+
export declare const HOOK_FORBIDDEN_POINTER_TOKENS: ReadonlySet<string>;
|
|
8
|
+
export declare function parseHookFieldPointer(pointer: string): readonly string[];
|
|
9
|
+
export declare const HookFieldPointerSchema: z.ZodString;
|
|
10
|
+
export declare function isHookFieldPointerWithin(pointer: string, prefix: string): boolean;
|
|
11
|
+
export declare function hookFieldPointersOverlap(a: string, b: string): boolean;
|
|
12
|
+
//# sourceMappingURL=hook-identifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-identifiers.d.ts","sourceRoot":"","sources":["../../../src/hook/lib/hook-identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,uBAAuB,QAA4C,CAAC;AAEjF,eAAO,MAAM,iBAAiB,aAIG,CAAC;AAElC,eAAO,MAAM,qBAAqB,aAAoB,CAAC;AAGvD,eAAO,MAAM,kBAAkB,aAIY,CAAC;AAG5C,eAAO,MAAM,kBAAkB,aAA0B,CAAC;AAO1D,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAE7D,CAAC;AAOF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAsBxE;AAeD,eAAO,MAAM,sBAAsB,aAIyC,CAAC;AAG7E,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAKT;AAGD,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HookFieldPointerSchema = exports.HOOK_FORBIDDEN_POINTER_TOKENS = exports.HookRevisionSchema = exports.HookRecordIdSchema = exports.HookOperationIdSchema = exports.HookPointIdSchema = exports.HOOK_IDENTIFIER_PATTERN = void 0;
|
|
4
|
+
exports.parseHookFieldPointer = parseHookFieldPointer;
|
|
5
|
+
exports.isHookFieldPointerWithin = isHookFieldPointerWithin;
|
|
6
|
+
exports.hookFieldPointersOverlap = hookFieldPointersOverlap;
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
exports.HOOK_IDENTIFIER_PATTERN = /^[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*$/;
|
|
9
|
+
exports.HookPointIdSchema = zod_1.z
|
|
10
|
+
.string()
|
|
11
|
+
.min(1)
|
|
12
|
+
.max(200)
|
|
13
|
+
.regex(exports.HOOK_IDENTIFIER_PATTERN);
|
|
14
|
+
exports.HookOperationIdSchema = exports.HookPointIdSchema;
|
|
15
|
+
exports.HookRecordIdSchema = zod_1.z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.max(512)
|
|
19
|
+
.regex(/^[A-Za-z0-9][A-Za-z0-9._:@/-]*$/);
|
|
20
|
+
exports.HookRevisionSchema = zod_1.z.number().int().min(1);
|
|
21
|
+
exports.HOOK_FORBIDDEN_POINTER_TOKENS = Object.freeze(new Set(['__proto__', 'constructor', 'prototype']));
|
|
22
|
+
function parseHookFieldPointer(pointer) {
|
|
23
|
+
if (pointer === '')
|
|
24
|
+
return [];
|
|
25
|
+
if (!pointer.startsWith('/')) {
|
|
26
|
+
throw new TypeError(`JSON Pointer "${pointer}" must start with "/".`);
|
|
27
|
+
}
|
|
28
|
+
return pointer
|
|
29
|
+
.slice(1)
|
|
30
|
+
.split('/')
|
|
31
|
+
.map((token) => {
|
|
32
|
+
if (/~(?![01])/.test(token)) {
|
|
33
|
+
throw new TypeError(`JSON Pointer "${pointer}" has an invalid "~" escape in "${token}".`);
|
|
34
|
+
}
|
|
35
|
+
const decoded = token.replace(/~1/g, '/').replace(/~0/g, '~');
|
|
36
|
+
if (exports.HOOK_FORBIDDEN_POINTER_TOKENS.has(decoded)) {
|
|
37
|
+
throw new TypeError(`JSON Pointer "${pointer}" names the forbidden token "${decoded}".`);
|
|
38
|
+
}
|
|
39
|
+
return decoded;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function isValidPointer(pointer) {
|
|
43
|
+
try {
|
|
44
|
+
parseHookFieldPointer(pointer);
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.HookFieldPointerSchema = zod_1.z
|
|
52
|
+
.string()
|
|
53
|
+
.min(2)
|
|
54
|
+
.max(1024)
|
|
55
|
+
.refine(isValidPointer, { message: 'Not a valid RFC 6901 JSON Pointer.' });
|
|
56
|
+
function isHookFieldPointerWithin(pointer, prefix) {
|
|
57
|
+
const tokens = parseHookFieldPointer(pointer);
|
|
58
|
+
const prefixTokens = parseHookFieldPointer(prefix);
|
|
59
|
+
if (prefixTokens.length > tokens.length)
|
|
60
|
+
return false;
|
|
61
|
+
return prefixTokens.every((token, index) => tokens[index] === token);
|
|
62
|
+
}
|
|
63
|
+
function hookFieldPointersOverlap(a, b) {
|
|
64
|
+
return isHookFieldPointerWithin(a, b) || isHookFieldPointerWithin(b, a);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=hook-identifiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-identifiers.js","sourceRoot":"","sources":["../../../src/hook/lib/hook-identifiers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { HookPatchOp } from './hook-enums';
|
|
3
|
+
export type HookPatchOperation = {
|
|
4
|
+
readonly op: HookPatchOp.Add | HookPatchOp.Replace;
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly value: unknown;
|
|
7
|
+
} | {
|
|
8
|
+
readonly op: HookPatchOp.Remove;
|
|
9
|
+
readonly path: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const HookPatchOperationSchema: z.ZodType<HookPatchOperation>;
|
|
12
|
+
export declare function hookPatchOperationsConflict(document: unknown, a: HookPatchOperation, b: HookPatchOperation): boolean;
|
|
13
|
+
export declare enum HookPatchRefusal {
|
|
14
|
+
OutsideWritable = "outside-writable",
|
|
15
|
+
Unresolvable = "unresolvable",
|
|
16
|
+
SelfConflict = "self-conflict"
|
|
17
|
+
}
|
|
18
|
+
export declare function checkHookPatch(document: unknown, operations: readonly HookPatchOperation[], writableFields: readonly string[]): HookPatchRefusal | null;
|
|
19
|
+
export declare function applyHookPatch(document: unknown, operations: readonly HookPatchOperation[]): unknown;
|
|
20
|
+
//# sourceMappingURL=hook-patch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-patch.d.ts","sourceRoot":"","sources":["../../../src/hook/lib/hook-patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAC;AA0B9D,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACtG;IAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAmBnB,CAAC;AAiEjD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,OAAO,EACjB,CAAC,EAAE,kBAAkB,EACrB,CAAC,EAAE,kBAAkB,GACpB,OAAO,CAMT;AAOD,oBAAY,gBAAgB;IAC1B,eAAe,qBAAqB;IACpC,YAAY,iBAAiB;IAC7B,YAAY,kBAAkB;CAC/B;AAGD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,SAAS,kBAAkB,EAAE,EACzC,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,gBAAgB,GAAG,IAAI,CAmBzB;AAQD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,SAAS,kBAAkB,EAAE,GACxC,OAAO,CAqCT"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HookPatchRefusal = exports.HookPatchOperationSchema = void 0;
|
|
4
|
+
exports.hookPatchOperationsConflict = hookPatchOperationsConflict;
|
|
5
|
+
exports.checkHookPatch = checkHookPatch;
|
|
6
|
+
exports.applyHookPatch = applyHookPatch;
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const hook_enums_1 = require("./hook-enums");
|
|
9
|
+
const hook_identifiers_1 = require("./hook-identifiers");
|
|
10
|
+
exports.HookPatchOperationSchema = zod_1.z
|
|
11
|
+
.object({
|
|
12
|
+
op: hook_enums_1.HookPatchOpSchema,
|
|
13
|
+
path: hook_identifiers_1.HookFieldPointerSchema,
|
|
14
|
+
value: zod_1.z.unknown().optional(),
|
|
15
|
+
})
|
|
16
|
+
.strict()
|
|
17
|
+
.superRefine((operation, context) => {
|
|
18
|
+
const hasValue = Object.prototype.hasOwnProperty.call(operation, 'value');
|
|
19
|
+
if ((operation.op === hook_enums_1.HookPatchOp.Remove) === hasValue) {
|
|
20
|
+
context.addIssue({
|
|
21
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
22
|
+
path: ['value'],
|
|
23
|
+
message: operation.op === hook_enums_1.HookPatchOp.Remove
|
|
24
|
+
? '`remove` carries no value.'
|
|
25
|
+
: `\`${operation.op}\` requires a value.`,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
const isContainer = (value) => typeof value === 'object' && value !== null;
|
|
30
|
+
function resolveParent(document, tokens) {
|
|
31
|
+
let current = document;
|
|
32
|
+
for (const token of tokens.slice(0, -1)) {
|
|
33
|
+
if (Array.isArray(current)) {
|
|
34
|
+
if (!/^(0|[1-9][0-9]*)$/.test(token))
|
|
35
|
+
return undefined;
|
|
36
|
+
current = current[Number(token)];
|
|
37
|
+
}
|
|
38
|
+
else if (isContainer(current)) {
|
|
39
|
+
if (!Object.prototype.hasOwnProperty.call(current, token))
|
|
40
|
+
return undefined;
|
|
41
|
+
current = current[token];
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return isContainer(current) ? current : undefined;
|
|
48
|
+
}
|
|
49
|
+
const ARRAY_INDEX = /^(0|[1-9][0-9]*)$/;
|
|
50
|
+
const shiftsIndices = (operation) => operation.op !== hook_enums_1.HookPatchOp.Replace;
|
|
51
|
+
const positionOf = (token) => token === '-' ? Number.POSITIVE_INFINITY : ARRAY_INDEX.test(token) ? Number(token) : Number.NaN;
|
|
52
|
+
function shiftsAcross(document, shifter, other) {
|
|
53
|
+
if (!shiftsIndices(shifter))
|
|
54
|
+
return false;
|
|
55
|
+
const tokens = (0, hook_identifiers_1.parseHookFieldPointer)(shifter.path);
|
|
56
|
+
if (!Array.isArray(resolveParent(document, tokens)))
|
|
57
|
+
return false;
|
|
58
|
+
const arrayDepth = tokens.length - 1;
|
|
59
|
+
const otherTokens = (0, hook_identifiers_1.parseHookFieldPointer)(other.path);
|
|
60
|
+
if (otherTokens.length <= arrayDepth)
|
|
61
|
+
return false;
|
|
62
|
+
if (!tokens.slice(0, arrayDepth).every((token, index) => otherTokens[index] === token)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (otherTokens.length === arrayDepth + 1 && shiftsIndices(other))
|
|
66
|
+
return true;
|
|
67
|
+
const shifted = positionOf(tokens[arrayDepth]);
|
|
68
|
+
const touched = positionOf(otherTokens[arrayDepth]);
|
|
69
|
+
return Number.isNaN(shifted) || Number.isNaN(touched) || touched >= shifted;
|
|
70
|
+
}
|
|
71
|
+
function hookPatchOperationsConflict(document, a, b) {
|
|
72
|
+
return ((0, hook_identifiers_1.hookFieldPointersOverlap)(a.path, b.path) ||
|
|
73
|
+
shiftsAcross(document, a, b) ||
|
|
74
|
+
shiftsAcross(document, b, a));
|
|
75
|
+
}
|
|
76
|
+
var HookPatchRefusal;
|
|
77
|
+
(function (HookPatchRefusal) {
|
|
78
|
+
HookPatchRefusal["OutsideWritable"] = "outside-writable";
|
|
79
|
+
HookPatchRefusal["Unresolvable"] = "unresolvable";
|
|
80
|
+
HookPatchRefusal["SelfConflict"] = "self-conflict";
|
|
81
|
+
})(HookPatchRefusal || (exports.HookPatchRefusal = HookPatchRefusal = {}));
|
|
82
|
+
function checkHookPatch(document, operations, writableFields) {
|
|
83
|
+
for (const operation of operations) {
|
|
84
|
+
if (!writableFields.some((field) => (0, hook_identifiers_1.isHookFieldPointerWithin)(operation.path, field))) {
|
|
85
|
+
return HookPatchRefusal.OutsideWritable;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
for (let i = 0; i < operations.length; i += 1) {
|
|
89
|
+
for (let j = i + 1; j < operations.length; j += 1) {
|
|
90
|
+
if (hookPatchOperationsConflict(document, operations[i], operations[j])) {
|
|
91
|
+
return HookPatchRefusal.SelfConflict;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
applyHookPatch(document, operations);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return HookPatchRefusal.Unresolvable;
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
function applyHookPatch(document, operations) {
|
|
104
|
+
const result = structuredClone(document);
|
|
105
|
+
for (const operation of operations) {
|
|
106
|
+
const tokens = (0, hook_identifiers_1.parseHookFieldPointer)(operation.path);
|
|
107
|
+
const key = tokens[tokens.length - 1];
|
|
108
|
+
const parent = resolveParent(result, tokens);
|
|
109
|
+
if (parent === undefined) {
|
|
110
|
+
throw new TypeError(`Patch path "${operation.path}" has no parent container.`);
|
|
111
|
+
}
|
|
112
|
+
if (Array.isArray(parent)) {
|
|
113
|
+
const index = key === '-' ? parent.length : Number(key);
|
|
114
|
+
const indexable = /^(0|[1-9][0-9]*)$/.test(key) || key === '-';
|
|
115
|
+
const bound = operation.op === hook_enums_1.HookPatchOp.Add ? parent.length : parent.length - 1;
|
|
116
|
+
if (!indexable || index > bound || (key === '-' && operation.op !== hook_enums_1.HookPatchOp.Add)) {
|
|
117
|
+
throw new TypeError(`Patch path "${operation.path}" is not a valid array index.`);
|
|
118
|
+
}
|
|
119
|
+
if (operation.op === hook_enums_1.HookPatchOp.Add)
|
|
120
|
+
parent.splice(index, 0, structuredClone(operation.value));
|
|
121
|
+
else if (operation.op === hook_enums_1.HookPatchOp.Replace)
|
|
122
|
+
parent[index] = structuredClone(operation.value);
|
|
123
|
+
else
|
|
124
|
+
parent.splice(index, 1);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const exists = Object.prototype.hasOwnProperty.call(parent, key);
|
|
128
|
+
if (operation.op !== hook_enums_1.HookPatchOp.Add && !exists) {
|
|
129
|
+
throw new TypeError(`Patch path "${operation.path}" does not exist.`);
|
|
130
|
+
}
|
|
131
|
+
if (operation.op === hook_enums_1.HookPatchOp.Remove)
|
|
132
|
+
delete parent[key];
|
|
133
|
+
else {
|
|
134
|
+
Object.defineProperty(parent, key, {
|
|
135
|
+
value: structuredClone(operation.value),
|
|
136
|
+
writable: true,
|
|
137
|
+
enumerable: true,
|
|
138
|
+
configurable: true,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=hook-patch.js.map
|