@astrale-os/kernel-client 0.3.1 → 0.4.1
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/auth/api.d.ts +2 -1
- package/dist/auth/api.d.ts.map +1 -1
- package/dist/auth/api.js +13 -1
- package/dist/auth/api.js.map +1 -1
- package/dist/auth/defaults.d.ts +3 -0
- package/dist/auth/defaults.d.ts.map +1 -0
- package/dist/auth/defaults.js +3 -0
- package/dist/auth/defaults.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/minting.d.ts.map +1 -1
- package/dist/auth/minting.js +2 -6
- package/dist/auth/minting.js.map +1 -1
- package/dist/auth/shorthands.d.ts +19 -0
- package/dist/auth/shorthands.d.ts.map +1 -0
- package/dist/auth/shorthands.js +27 -0
- package/dist/auth/shorthands.js.map +1 -0
- package/dist/graph/api.d.ts +3 -0
- package/dist/graph/api.d.ts.map +1 -1
- package/dist/graph/api.js +2 -0
- package/dist/graph/api.js.map +1 -1
- package/dist/graph/index.d.ts +2 -0
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js +1 -0
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/reconcile/execute.d.ts +8 -0
- package/dist/graph/reconcile/execute.d.ts.map +1 -0
- package/dist/graph/reconcile/execute.js +56 -0
- package/dist/graph/reconcile/execute.js.map +1 -0
- package/dist/graph/reconcile/index.d.ts +5 -0
- package/dist/graph/reconcile/index.d.ts.map +1 -0
- package/dist/graph/reconcile/index.js +3 -0
- package/dist/graph/reconcile/index.js.map +1 -0
- package/dist/graph/reconcile/input.d.ts +80 -0
- package/dist/graph/reconcile/input.d.ts.map +1 -0
- package/dist/graph/reconcile/input.js +5 -0
- package/dist/graph/reconcile/input.js.map +1 -0
- package/dist/graph/reconcile/normalize.d.ts +3 -0
- package/dist/graph/reconcile/normalize.d.ts.map +1 -0
- package/dist/graph/reconcile/normalize.js +144 -0
- package/dist/graph/reconcile/normalize.js.map +1 -0
- package/dist/graph/reconcile/result.d.ts +19 -0
- package/dist/graph/reconcile/result.d.ts.map +1 -0
- package/dist/graph/reconcile/result.js +95 -0
- package/dist/graph/reconcile/result.js.map +1 -0
- package/dist/graph/reconcile/scope.d.ts +6 -0
- package/dist/graph/reconcile/scope.d.ts.map +1 -0
- package/dist/graph/reconcile/scope.js +69 -0
- package/dist/graph/reconcile/scope.js.map +1 -0
- package/dist/schema/class-proxy.d.ts.map +1 -1
- package/dist/schema/class-proxy.js +5 -0
- package/dist/schema/class-proxy.js.map +1 -1
- package/dist/schema/node-proxy.d.ts.map +1 -1
- package/dist/schema/node-proxy.js +10 -0
- package/dist/schema/node-proxy.js.map +1 -1
- package/dist/schema/proxy-types.d.ts +8 -2
- package/dist/schema/proxy-types.d.ts.map +1 -1
- package/dist/session/bound.d.ts +2 -2
- package/dist/session/bound.d.ts.map +1 -1
- package/dist/session/bound.js +12 -7
- package/dist/session/bound.js.map +1 -1
- package/dist/session/client-session.d.ts +2 -2
- package/dist/session/client-session.d.ts.map +1 -1
- package/dist/session/client-session.js +63 -32
- package/dist/session/client-session.js.map +1 -1
- package/dist/session/config.d.ts +8 -1
- package/dist/session/config.d.ts.map +1 -1
- package/dist/session/delegation/cache.d.ts +13 -6
- package/dist/session/delegation/cache.d.ts.map +1 -1
- package/dist/session/delegation/cache.js +13 -15
- package/dist/session/delegation/cache.js.map +1 -1
- package/dist/session/delegation/utils.d.ts +4 -0
- package/dist/session/delegation/utils.d.ts.map +1 -0
- package/dist/session/delegation/utils.js +12 -0
- package/dist/session/delegation/utils.js.map +1 -0
- package/dist/session/delegation-mint.d.ts +4 -4
- package/dist/session/delegation-mint.d.ts.map +1 -1
- package/dist/session/delegation-mint.js +23 -15
- package/dist/session/delegation-mint.js.map +1 -1
- package/dist/session/dispatch-routes.d.ts +27 -0
- package/dist/session/dispatch-routes.d.ts.map +1 -0
- package/dist/session/dispatch-routes.js +77 -0
- package/dist/session/dispatch-routes.js.map +1 -0
- package/dist/session/forward.d.ts +5 -4
- package/dist/session/forward.d.ts.map +1 -1
- package/dist/session/forward.js +11 -15
- package/dist/session/forward.js.map +1 -1
- package/dist/session/index.d.ts +2 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +1 -0
- package/dist/session/index.js.map +1 -1
- package/dist/session/types.d.ts +6 -1
- package/dist/session/types.d.ts.map +1 -1
- package/dist/store/memory.d.ts +3 -1
- package/dist/store/memory.d.ts.map +1 -1
- package/dist/store/memory.js +23 -0
- package/dist/store/memory.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { AbsolutePath, isConflictStrategy, isReconcileEntityPolicy, rawOf, toEdgeKey, } from '@astrale-os/kernel-core';
|
|
2
|
+
import { DEFAULT_CLIENT_RECONCILE_POLICY } from './input';
|
|
3
|
+
export function normalizeReconcileInput(input) {
|
|
4
|
+
if (input.integrity !== undefined && Object.keys(input.integrity).length > 0) {
|
|
5
|
+
throw new Error('graph.reconcile: client v0 does not support integrity constraints');
|
|
6
|
+
}
|
|
7
|
+
const scope = normalizeScope(input);
|
|
8
|
+
const policy = normalizePolicy(input.policy);
|
|
9
|
+
const nodeConflictByPath = new Map();
|
|
10
|
+
const edgeConflictByKey = new Map();
|
|
11
|
+
const nodePaths = new Set();
|
|
12
|
+
const edgeKeys = new Set();
|
|
13
|
+
const specNodePaths = [];
|
|
14
|
+
const specEdgeClasses = new Set();
|
|
15
|
+
const nodes = (input.spec.nodes ?? []).map((node) => {
|
|
16
|
+
const path = normalizeAbsolute(node.path, 'spec node path');
|
|
17
|
+
if (nodePaths.has(path))
|
|
18
|
+
throw new Error(`graph.reconcile: duplicate spec node path "${path}"`);
|
|
19
|
+
nodePaths.add(path);
|
|
20
|
+
specNodePaths.push(path);
|
|
21
|
+
assertInScope(path, scope.roots, scope.depth, 'spec node path');
|
|
22
|
+
const cls = rawOf(node.class);
|
|
23
|
+
assertClassAllowed(cls, scope.classes, 'spec node class');
|
|
24
|
+
if (node.onConflict !== undefined) {
|
|
25
|
+
assertConflictStrategy(node.onConflict, 'spec node onConflict');
|
|
26
|
+
nodeConflictByPath.set(path, node.onConflict);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
class: cls,
|
|
30
|
+
path,
|
|
31
|
+
props: { ...node.props },
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
const edges = (input.spec.edges ?? []).map((edge) => {
|
|
35
|
+
const cls = rawOf(edge.class);
|
|
36
|
+
assertClassAllowed(cls, scope.classes, 'spec edge class');
|
|
37
|
+
const source = normalizeAbsolute(edge.source, 'spec edge source');
|
|
38
|
+
assertInScope(source, scope.roots, scope.depth, 'spec edge source');
|
|
39
|
+
const target = normalizeAbsolute(edge.target, 'spec edge target');
|
|
40
|
+
const normalized = {
|
|
41
|
+
class: cls,
|
|
42
|
+
source,
|
|
43
|
+
...(edge.slug !== undefined ? { slug: edge.slug } : {}),
|
|
44
|
+
target,
|
|
45
|
+
props: { ...edge.props },
|
|
46
|
+
};
|
|
47
|
+
const key = toEdgeKey(normalized);
|
|
48
|
+
if (edgeKeys.has(key))
|
|
49
|
+
throw new Error(`graph.reconcile: duplicate spec edge identity "${key}"`);
|
|
50
|
+
edgeKeys.add(key);
|
|
51
|
+
specEdgeClasses.add(cls);
|
|
52
|
+
if (edge.onConflict !== undefined) {
|
|
53
|
+
assertConflictStrategy(edge.onConflict, 'spec edge onConflict');
|
|
54
|
+
edgeConflictByKey.set(key, edge.onConflict);
|
|
55
|
+
}
|
|
56
|
+
return normalized;
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
spec: { nodes, edges },
|
|
60
|
+
scope,
|
|
61
|
+
policy,
|
|
62
|
+
dryRun: input.dryRun === true,
|
|
63
|
+
nodeConflictByPath,
|
|
64
|
+
edgeConflictByKey,
|
|
65
|
+
specNodePaths,
|
|
66
|
+
specEdgeKeys: edgeKeys,
|
|
67
|
+
specEdgeClasses: [...specEdgeClasses],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function normalizeScope(input) {
|
|
71
|
+
const roots = input.scope.roots.map((root) => normalizeAbsolute(root, 'scope root'));
|
|
72
|
+
if (roots.length === 0)
|
|
73
|
+
throw new Error('graph.reconcile: scope.roots must be non-empty');
|
|
74
|
+
const depth = input.scope.depth ?? 0;
|
|
75
|
+
if (!Number.isInteger(depth) || depth < 0 || depth > 5) {
|
|
76
|
+
throw new Error('graph.reconcile: scope.depth must be an integer from 0 to 5');
|
|
77
|
+
}
|
|
78
|
+
const classes = input.scope.classes === undefined ? undefined : new Set(input.scope.classes.map(rawOf));
|
|
79
|
+
return { roots, depth, ...(classes !== undefined ? { classes } : {}) };
|
|
80
|
+
}
|
|
81
|
+
function normalizePolicy(input) {
|
|
82
|
+
const onConflict = input?.onConflict ?? DEFAULT_CLIENT_RECONCILE_POLICY.onConflict;
|
|
83
|
+
assertConflictStrategy(onConflict, 'policy.onConflict');
|
|
84
|
+
const onRemoved = {
|
|
85
|
+
nodes: input?.onRemoved?.nodes ?? DEFAULT_CLIENT_RECONCILE_POLICY.onRemoved.nodes,
|
|
86
|
+
edges: input?.onRemoved?.edges ?? DEFAULT_CLIENT_RECONCILE_POLICY.onRemoved.edges,
|
|
87
|
+
};
|
|
88
|
+
assertUntrackedPolicy(onRemoved, 'policy.onRemoved');
|
|
89
|
+
if (input?.onUntracked !== undefined)
|
|
90
|
+
assertUntrackedPolicy(input.onUntracked, 'policy.onUntracked');
|
|
91
|
+
return {
|
|
92
|
+
onConflict,
|
|
93
|
+
onRemoved,
|
|
94
|
+
...(input?.onUntracked !== undefined ? { onUntracked: input.onUntracked } : {}),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function normalizeAbsolute(path, label) {
|
|
98
|
+
const raw = rawOf(path);
|
|
99
|
+
try {
|
|
100
|
+
AbsolutePath.parse(raw);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
throw new Error(`graph.reconcile: invalid ${label} "${raw}": ${error.message}`);
|
|
104
|
+
}
|
|
105
|
+
return raw;
|
|
106
|
+
}
|
|
107
|
+
function assertInScope(path, roots, depth, label) {
|
|
108
|
+
for (const root of roots) {
|
|
109
|
+
const distance = distanceFromRoot(path, root);
|
|
110
|
+
if (distance !== null && distance <= depth)
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
throw new Error(`graph.reconcile: ${label} "${path}" is outside scope`);
|
|
114
|
+
}
|
|
115
|
+
function distanceFromRoot(path, root) {
|
|
116
|
+
const rootSegments = AbsolutePath.segments(root);
|
|
117
|
+
const pathSegments = AbsolutePath.segments(path);
|
|
118
|
+
if (pathSegments.length < rootSegments.length)
|
|
119
|
+
return null;
|
|
120
|
+
for (let i = 0; i < rootSegments.length; i++) {
|
|
121
|
+
if (pathSegments[i] !== rootSegments[i])
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
return pathSegments.length - rootSegments.length;
|
|
125
|
+
}
|
|
126
|
+
function assertClassAllowed(cls, classes, label) {
|
|
127
|
+
if (classes !== undefined && !classes.has(cls)) {
|
|
128
|
+
throw new Error(`graph.reconcile: ${label} "${cls}" is outside scope.classes`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function assertConflictStrategy(value, label) {
|
|
132
|
+
if (!isConflictStrategy(value)) {
|
|
133
|
+
throw new Error(`graph.reconcile: unsupported ${label} "${String(value)}"`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function assertUntrackedPolicy(policy, label) {
|
|
137
|
+
if (!isReconcileEntityPolicy(policy.nodes)) {
|
|
138
|
+
throw new Error(`graph.reconcile: unsupported ${label}.nodes "${String(policy.nodes)}"`);
|
|
139
|
+
}
|
|
140
|
+
if (!isReconcileEntityPolicy(policy.edges)) {
|
|
141
|
+
throw new Error(`graph.reconcile: unsupported ${label}.edges "${String(policy.edges)}"`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/graph/reconcile/normalize.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,EACL,SAAS,GACV,MAAM,yBAAyB,CAAA;AAUhC,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,UAAU,uBAAuB,CAAC,KAAqB;IAC3D,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;IACtF,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA4B,CAAA;IAC9D,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA6B,CAAA;IAC9D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAW,CAAA;IACnC,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IAEzC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAA2B,EAAE;QAC3E,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;QAC3D,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,GAAG,CAAC,CAAA;QAC/F,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAExB,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;QAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAA;YAC/D,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO;YACL,KAAK,EAAE,GAAG;YACV,IAAI;YACJ,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;SACzB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAA2B,EAAE;QAC3E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;QACjE,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;QACjE,MAAM,UAAU,GAAG;YACjB,KAAK,EAAE,GAAG;YACV,MAAM;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM;YACN,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;SACzB,CAAA;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;QACjC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,GAAG,CAAC,CAAA;QAChG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjB,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAA;YAC/D,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC7C,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACtB,KAAK;QACL,MAAM;QACN,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI;QAC7B,kBAAkB;QAClB,iBAAiB;QACjB,aAAa;QACb,YAAY,EAAE,QAAQ;QACtB,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;KACtC,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAqB;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;IACpF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACzF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAA;IACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IACD,MAAM,OAAO,GACX,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACzF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AACxE,CAAC;AAED,SAAS,eAAe,CACtB,KAAuC;IAEvC,MAAM,UAAU,GAAG,KAAK,EAAE,UAAU,IAAI,+BAA+B,CAAC,UAAU,CAAA;IAClF,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,+BAA+B,CAAC,SAAS,CAAC,KAAK;QACjF,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,+BAA+B,CAAC,SAAS,CAAC,KAAK;KAClF,CAAA;IACD,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;IACpD,IAAI,KAAK,EAAE,WAAW,KAAK,SAAS;QAClC,qBAAqB,CAAC,KAAK,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IAChE,OAAO;QACL,UAAU;QACV,SAAS;QACT,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAc,EAAE,KAAa;IACtD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IACvB,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,KAAK,GAAG,MAAO,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;IAC5F,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAwB,EAAE,KAAa,EAAE,KAAa;IACzF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK;YAAE,OAAM;IACpD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,KAAK,IAAI,oBAAoB,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAY;IAClD,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,IAAI,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IACtD,CAAC;IACD,OAAO,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAA;AAClD,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAW,EACX,OAAwC,EACxC,KAAa;IAEb,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,KAAK,GAAG,4BAA4B,CAAC,CAAA;IAChF,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAuB,EAAE,KAAa;IACpE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAuB,EAAE,KAAa;IACnE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,WAAW,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1F,CAAC;IACD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,WAAW,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1F,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MutationResult, NodeId, PatchData, PatchDataInput, PatchValidationResult } from '@astrale-os/kernel-core';
|
|
2
|
+
export interface ReconcileResult {
|
|
3
|
+
/** False only for dryRun or validation failure. */
|
|
4
|
+
applied: boolean;
|
|
5
|
+
/** PatchDataInput is the client/wire shape accepted by graph.mutate(). */
|
|
6
|
+
patch: PatchDataInput;
|
|
7
|
+
/** Path raw -> NodeId for every spec node that exists after apply. */
|
|
8
|
+
nodes: Record<string, NodeId>;
|
|
9
|
+
/** Existing function.mutate result. Undefined for dryRun. */
|
|
10
|
+
mutation?: MutationResult;
|
|
11
|
+
validation?: PatchValidationResult;
|
|
12
|
+
}
|
|
13
|
+
export declare const EMPTY_MUTATION_RESULT: MutationResult;
|
|
14
|
+
export declare function dryRunResult(patch: PatchDataInput, nodes: Record<string, NodeId>): ReconcileResult;
|
|
15
|
+
export declare function emptyApplyResult(patch: PatchDataInput, nodes: Record<string, NodeId>): ReconcileResult;
|
|
16
|
+
export declare function applyResult(patch: PatchDataInput, existingNodes: Record<string, NodeId>, mutation: MutationResult): ReconcileResult;
|
|
17
|
+
export declare function isPatchEmpty(patch: PatchDataInput): boolean;
|
|
18
|
+
export declare function toPatchInput(patch: PatchData): PatchDataInput;
|
|
19
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/graph/reconcile/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EAGd,MAAM,EAEN,SAAS,EACT,cAAc,EACd,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAIhC,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAA;IAChB,0EAA0E;IAC1E,KAAK,EAAE,cAAc,CAAA;IACrB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,UAAU,CAAC,EAAE,qBAAqB,CAAA;CACnC;AAED,eAAO,MAAM,qBAAqB,EAAE,cAGnC,CAAA;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,eAAe,CAEjB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,eAAe,CAEjB;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,QAAQ,EAAE,cAAc,GACvB,eAAe,CAOjB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAW3D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,CAO7D"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { rawOf } from '@astrale-os/kernel-core';
|
|
2
|
+
export const EMPTY_MUTATION_RESULT = {
|
|
3
|
+
createdNodes: {},
|
|
4
|
+
createdEdges: {},
|
|
5
|
+
};
|
|
6
|
+
export function dryRunResult(patch, nodes) {
|
|
7
|
+
return { applied: false, patch, nodes };
|
|
8
|
+
}
|
|
9
|
+
export function emptyApplyResult(patch, nodes) {
|
|
10
|
+
return { applied: true, patch, nodes, mutation: EMPTY_MUTATION_RESULT };
|
|
11
|
+
}
|
|
12
|
+
export function applyResult(patch, existingNodes, mutation) {
|
|
13
|
+
return {
|
|
14
|
+
applied: true,
|
|
15
|
+
patch,
|
|
16
|
+
mutation,
|
|
17
|
+
nodes: { ...existingNodes, ...mutation.createdNodes },
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function isPatchEmpty(patch) {
|
|
21
|
+
const nodes = patch.nodes;
|
|
22
|
+
const edges = patch.edges;
|
|
23
|
+
return ((nodes?.create?.length ?? 0) === 0 &&
|
|
24
|
+
(nodes?.update?.length ?? 0) === 0 &&
|
|
25
|
+
(nodes?.delete?.length ?? 0) === 0 &&
|
|
26
|
+
(edges?.create?.length ?? 0) === 0 &&
|
|
27
|
+
(edges?.update?.length ?? 0) === 0 &&
|
|
28
|
+
(edges?.delete?.length ?? 0) === 0);
|
|
29
|
+
}
|
|
30
|
+
export function toPatchInput(patch) {
|
|
31
|
+
const out = {};
|
|
32
|
+
const nodes = compactNodes(patch.nodes);
|
|
33
|
+
const edges = compactEdges(patch.edges);
|
|
34
|
+
if (nodes !== undefined)
|
|
35
|
+
out.nodes = nodes;
|
|
36
|
+
if (edges !== undefined)
|
|
37
|
+
out.edges = edges;
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
function compactNodes(nodes) {
|
|
41
|
+
const out = {};
|
|
42
|
+
if (nodes.create.length > 0)
|
|
43
|
+
out.create = nodes.create.map(wireNodeCreate);
|
|
44
|
+
if (nodes.update.length > 0)
|
|
45
|
+
out.update = nodes.update.map(wireNodeUpdate);
|
|
46
|
+
if (nodes.delete.length > 0)
|
|
47
|
+
out.delete = nodes.delete.map(wireNodeDelete);
|
|
48
|
+
return Object.keys(out).length === 0 ? undefined : out;
|
|
49
|
+
}
|
|
50
|
+
function compactEdges(edges) {
|
|
51
|
+
const out = {};
|
|
52
|
+
if (edges.create.length > 0)
|
|
53
|
+
out.create = edges.create.map(wireEdgeCreate);
|
|
54
|
+
if (edges.update.length > 0)
|
|
55
|
+
out.update = edges.update.map(wireEdgeUpdate);
|
|
56
|
+
if (edges.delete.length > 0)
|
|
57
|
+
out.delete = edges.delete.map(wireEdgeDelete);
|
|
58
|
+
return Object.keys(out).length === 0 ? undefined : out;
|
|
59
|
+
}
|
|
60
|
+
function wireNodeCreate(node) {
|
|
61
|
+
return { class: rawOf(node.class), at: rawOf(node.at), props: { ...node.props } };
|
|
62
|
+
}
|
|
63
|
+
function wireNodeUpdate(node) {
|
|
64
|
+
return { class: rawOf(node.class), path: rawOf(node.path), props: { ...node.props } };
|
|
65
|
+
}
|
|
66
|
+
function wireNodeDelete(node) {
|
|
67
|
+
return { class: rawOf(node.class), path: rawOf(node.path) };
|
|
68
|
+
}
|
|
69
|
+
function wireEdgeCreate(edge) {
|
|
70
|
+
return {
|
|
71
|
+
class: rawOf(edge.class),
|
|
72
|
+
source: rawOf(edge.source),
|
|
73
|
+
...(edge.slug !== undefined ? { slug: edge.slug } : {}),
|
|
74
|
+
target: rawOf(edge.target),
|
|
75
|
+
props: { ...edge.props },
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function wireEdgeUpdate(edge) {
|
|
79
|
+
return {
|
|
80
|
+
class: rawOf(edge.class),
|
|
81
|
+
source: rawOf(edge.source),
|
|
82
|
+
...(edge.slug !== undefined ? { slug: edge.slug } : {}),
|
|
83
|
+
target: rawOf(edge.target),
|
|
84
|
+
props: { ...edge.props },
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function wireEdgeDelete(edge) {
|
|
88
|
+
return {
|
|
89
|
+
class: rawOf(edge.class),
|
|
90
|
+
source: rawOf(edge.source),
|
|
91
|
+
...(edge.slug !== undefined ? { slug: edge.slug } : {}),
|
|
92
|
+
target: rawOf(edge.target),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/graph/reconcile/result.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EdgeKey, Graph, NodeId } from '@astrale-os/kernel-core';
|
|
2
|
+
import type { NormalizedReconcileInput } from './input';
|
|
3
|
+
export declare function filterOwnedBase(base: Graph, scope: NormalizedReconcileInput['scope'], specEdgeKeys: ReadonlySet<EdgeKey>): Graph;
|
|
4
|
+
export declare function resolveExistingSpecNodeIds(base: Graph, specNodePaths: readonly string[]): Record<string, NodeId>;
|
|
5
|
+
export declare function assertNoSpecClassMismatches(base: Graph, spec: NormalizedReconcileInput['spec']): void;
|
|
6
|
+
//# sourceMappingURL=scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../src/graph/reconcile/scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEvD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACxC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,GACjC,KAAK,CAwBP;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,KAAK,EACX,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACrC,IAAI,CAWN"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Graph as CoreGraph, rawOf, toEdgeKey } from '@astrale-os/kernel-core';
|
|
2
|
+
export function filterOwnedBase(base, scope, specEdgeKeys) {
|
|
3
|
+
const nodes = base.nodes.filter((node) => pathInScope(rawOf(node.path), scope.roots, scope.depth) &&
|
|
4
|
+
classAllowed(rawOf(node.class), scope.classes));
|
|
5
|
+
const nodeIds = new Set(nodes.map((node) => node.id));
|
|
6
|
+
const edges = base.edges.filter((edge) => {
|
|
7
|
+
if (specEdgeKeys.has(toEdgeKey(edge)))
|
|
8
|
+
return true;
|
|
9
|
+
if (!classAllowed(rawOf(edge.class), scope.classes))
|
|
10
|
+
return false;
|
|
11
|
+
const endpoints = base.endpoints(edge);
|
|
12
|
+
return (endpoints.source !== null &&
|
|
13
|
+
endpoints.target !== null &&
|
|
14
|
+
nodeIds.has(endpoints.source.id) &&
|
|
15
|
+
nodeIds.has(endpoints.target.id));
|
|
16
|
+
});
|
|
17
|
+
const aliases = base.aliases?.filter(([id]) => nodeIds.has(id));
|
|
18
|
+
return CoreGraph.from({
|
|
19
|
+
nodes,
|
|
20
|
+
edges,
|
|
21
|
+
...(aliases !== undefined && aliases.length > 0 ? { aliases } : {}),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
export function resolveExistingSpecNodeIds(base, specNodePaths) {
|
|
25
|
+
const nodes = {};
|
|
26
|
+
for (const path of specNodePaths) {
|
|
27
|
+
const existing = base.nodes.at(path);
|
|
28
|
+
if (existing !== undefined && existing !== null)
|
|
29
|
+
nodes[path] = existing.id;
|
|
30
|
+
}
|
|
31
|
+
return nodes;
|
|
32
|
+
}
|
|
33
|
+
export function assertNoSpecClassMismatches(base, spec) {
|
|
34
|
+
for (const node of spec.nodes) {
|
|
35
|
+
const existing = base.nodes.at(node.path);
|
|
36
|
+
if (existing === undefined || existing === null)
|
|
37
|
+
continue;
|
|
38
|
+
const existingClass = rawOf(existing.class);
|
|
39
|
+
if (existingClass !== node.class) {
|
|
40
|
+
throw new Error(`graph.reconcile: node path "${node.path}" already has class "${existingClass}", not "${node.class}"`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function pathInScope(path, roots, depth) {
|
|
45
|
+
for (const root of roots) {
|
|
46
|
+
const distance = distanceFromRoot(path, root);
|
|
47
|
+
if (distance !== null && distance <= depth)
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
function distanceFromRoot(path, root) {
|
|
53
|
+
const rootParts = pathParts(root);
|
|
54
|
+
const pathPartsValue = pathParts(path);
|
|
55
|
+
if (pathPartsValue.length < rootParts.length)
|
|
56
|
+
return null;
|
|
57
|
+
for (let i = 0; i < rootParts.length; i++) {
|
|
58
|
+
if (pathPartsValue[i] !== rootParts[i])
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return pathPartsValue.length - rootParts.length;
|
|
62
|
+
}
|
|
63
|
+
function pathParts(path) {
|
|
64
|
+
return path.split('/').filter(Boolean);
|
|
65
|
+
}
|
|
66
|
+
function classAllowed(cls, classes) {
|
|
67
|
+
return classes === undefined || classes.has(cls);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../../src/graph/reconcile/scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-proxy.d.ts","sourceRoot":"","sources":["../../src/schema/class-proxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAQhD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"class-proxy.d.ts","sourceRoot":"","sources":["../../src/schema/class-proxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAQhD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CA+BT"}
|
|
@@ -30,6 +30,11 @@ export function createClassProxy(caller, domain, className, knownMethods) {
|
|
|
30
30
|
signal: opts?.signal,
|
|
31
31
|
correlationId: opts?.correlationId,
|
|
32
32
|
url: opts?.url,
|
|
33
|
+
delegation: opts?.delegation,
|
|
34
|
+
attestation: opts?.attestation,
|
|
35
|
+
skipDelegation: opts?.skipDelegation,
|
|
36
|
+
maxHops: opts?.maxHops,
|
|
37
|
+
self: opts?.self,
|
|
33
38
|
});
|
|
34
39
|
};
|
|
35
40
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-proxy.js","sourceRoot":"","sources":["../../src/schema/class-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAA;AAKhE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAmB,EACnB,MAAc,EACd,SAAiB,EACjB,YAA0B;IAE1B,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpC,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YAC9C,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAA;YAE7D,OAAO,CAAC,YAAsB,EAAE,SAA4B,EAAE,EAAE;gBAC9D,8DAA8D;gBAC9D,kDAAkD;gBAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC/B,MAAM;oBACN,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE;oBACjD,UAAU,EAAE,OAAO;oBACnB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC,GAAG,CAAA;gBACN,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;gBAE/D,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;oBAChD,OAAO,EAAE,IAAI,EAAE,OAAO;oBACtB,MAAM,EAAE,IAAI,EAAE,MAAM;oBACpB,aAAa,EAAE,IAAI,EAAE,aAAa;oBAClC,GAAG,EAAE,IAAI,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"class-proxy.js","sourceRoot":"","sources":["../../src/schema/class-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAA;AAKhE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAmB,EACnB,MAAc,EACd,SAAiB,EACjB,YAA0B;IAE1B,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpC,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YAC9C,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAA;YAE7D,OAAO,CAAC,YAAsB,EAAE,SAA4B,EAAE,EAAE;gBAC9D,8DAA8D;gBAC9D,kDAAkD;gBAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC/B,MAAM;oBACN,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE;oBACjD,UAAU,EAAE,OAAO;oBACnB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC,GAAG,CAAA;gBACN,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;gBAE/D,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;oBAChD,OAAO,EAAE,IAAI,EAAE,OAAO;oBACtB,MAAM,EAAE,IAAI,EAAE,MAAM;oBACpB,aAAa,EAAE,IAAI,EAAE,aAAa;oBAClC,GAAG,EAAE,IAAI,EAAE,GAAG;oBACd,UAAU,EAAE,IAAI,EAAE,UAAU;oBAC5B,WAAW,EAAE,IAAI,EAAE,WAAW;oBAC9B,cAAc,EAAE,IAAI,EAAE,cAAc;oBACpC,OAAO,EAAE,IAAI,EAAE,OAAO;oBACtB,IAAI,EAAE,IAAI,EAAE,IAAI;iBACjB,CAAC,CAAA;YACJ,CAAC,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-proxy.d.ts","sourceRoot":"","sources":["../../src/schema/node-proxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,eAAe,CAAA;AAIlE;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"node-proxy.d.ts","sourceRoot":"","sources":["../../src/schema/node-proxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,eAAe,CAAA;AAIlE;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CA2BT;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EAClC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CA2BT"}
|
|
@@ -24,6 +24,11 @@ export function createNodeProxy(caller, className, nodeId, knownMethods) {
|
|
|
24
24
|
class: className,
|
|
25
25
|
correlationId: opts?.correlationId,
|
|
26
26
|
url: opts?.url,
|
|
27
|
+
delegation: opts?.delegation,
|
|
28
|
+
attestation: opts?.attestation,
|
|
29
|
+
skipDelegation: opts?.skipDelegation,
|
|
30
|
+
maxHops: opts?.maxHops,
|
|
31
|
+
self: opts?.self,
|
|
27
32
|
});
|
|
28
33
|
};
|
|
29
34
|
},
|
|
@@ -54,6 +59,11 @@ export function createInstanceProxy(caller, selfRaw, knownMethods, classHint) {
|
|
|
54
59
|
...(classHint !== undefined ? { class: classHint } : {}),
|
|
55
60
|
correlationId: opts?.correlationId,
|
|
56
61
|
url: opts?.url,
|
|
62
|
+
delegation: opts?.delegation,
|
|
63
|
+
attestation: opts?.attestation,
|
|
64
|
+
skipDelegation: opts?.skipDelegation,
|
|
65
|
+
maxHops: opts?.maxHops,
|
|
66
|
+
self: opts?.self,
|
|
57
67
|
});
|
|
58
68
|
};
|
|
59
69
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-proxy.js","sourceRoot":"","sources":["../../src/schema/node-proxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAInE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,YAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAA;IAE5C,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpC,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YAC9C,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAA;YAE7D,OAAO,CAAC,YAAsB,EAAE,SAA4B,EAAE,EAAE;gBAC9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAA;gBAC1D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;gBAE/D,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;oBAChD,OAAO,EAAE,IAAI,EAAE,OAAO;oBACtB,MAAM,EAAE,IAAI,EAAE,MAAM;oBACpB,KAAK,EAAE,SAAS;oBAChB,aAAa,EAAE,IAAI,EAAE,aAAa;oBAClC,GAAG,EAAE,IAAI,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"node-proxy.js","sourceRoot":"","sources":["../../src/schema/node-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CredentialInput, z } from '@astrale-os/kernel-core';
|
|
2
|
+
import type { SelfIdentityExpr, UnresolvedIdentityExpr } from '@astrale-os/kernel-core/expression';
|
|
2
3
|
import type { AllMethods, ExtractMethodNames, ExtractMethodParams, ExtractMethodReturnValue, Schema } from '@astrale-os/kernel-dsl';
|
|
3
|
-
import type { CallOptions } from '../client/config';
|
|
4
4
|
/**
|
|
5
5
|
* Def lookup by type name — the def-keyed surface. Classes shadow same-named
|
|
6
6
|
* interfaces (homonyms, e.g. kernel `Function`): deterministic, and mirrors the
|
|
@@ -87,6 +87,12 @@ export type ProxyCallOptions = {
|
|
|
87
87
|
* (layer D) to retarget after a redirect.
|
|
88
88
|
*/
|
|
89
89
|
url?: string;
|
|
90
|
+
class?: string;
|
|
91
|
+
delegation?: UnresolvedIdentityExpr;
|
|
92
|
+
attestation?: SelfIdentityExpr;
|
|
93
|
+
skipDelegation?: boolean;
|
|
94
|
+
maxHops?: number;
|
|
95
|
+
self?: string;
|
|
90
96
|
};
|
|
91
97
|
/**
|
|
92
98
|
* A function that sends a method call through the client.
|
|
@@ -95,7 +101,7 @@ export type ProxyCallOptions = {
|
|
|
95
101
|
* credential strategy. Proxies call this without knowing which
|
|
96
102
|
* client type they're working with.
|
|
97
103
|
*/
|
|
98
|
-
export type ProxyCaller = (method: string, params: Record<string, unknown>, credential?: CredentialInput, callOpts?:
|
|
104
|
+
export type ProxyCaller = (method: string, params: Record<string, unknown>, credential?: CredentialInput, callOpts?: ProxyCallOptions) => Promise<unknown>;
|
|
99
105
|
/**
|
|
100
106
|
* A KernelClient view bound to a specific schema.
|
|
101
107
|
* Provides typed `node()` and `static()` without repeating the schema.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-types.d.ts","sourceRoot":"","sources":["../../src/schema/proxy-types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,MAAM,EACP,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"proxy-types.d.ts","sourceRoot":"","sources":["../../src/schema/proxy-types.ts"],"names":[],"mappings":"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"}
|
package/dist/session/bound.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { CredentialInput } from '@astrale-os/kernel-core';
|
|
2
2
|
import type { FnMap } from '../client/fn-map';
|
|
3
3
|
import type { ClientSession } from './client-session';
|
|
4
|
-
import type { BoundClientSessionView } from './types';
|
|
4
|
+
import type { BoundClientSessionOptions, BoundClientSessionView } from './types';
|
|
5
5
|
/**
|
|
6
6
|
* Credential-bound view over a `ClientSession`. Every dispatch primitive delegates
|
|
7
7
|
* to the underlying ClientSession with `opts.credential` replaced by the captured
|
|
8
8
|
* credential. `as(next)` returns a fresh view — rebindings don't mutate.
|
|
9
9
|
*/
|
|
10
|
-
export declare function createBoundSessionView<M extends FnMap>(session: ClientSession<M>, credential: CredentialInput | (() => CredentialInput)): BoundClientSessionView<M>;
|
|
10
|
+
export declare function createBoundSessionView<M extends FnMap>(session: ClientSession<M>, credential: CredentialInput | (() => CredentialInput), opts?: BoundClientSessionOptions): BoundClientSessionView<M>;
|
|
11
11
|
//# sourceMappingURL=bound.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bound.d.ts","sourceRoot":"","sources":["../../src/session/bound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"bound.d.ts","sourceRoot":"","sources":["../../src/session/bound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMhF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,KAAK,EACpD,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,UAAU,EAAE,eAAe,GAAG,CAAC,MAAM,eAAe,CAAC,EACrD,IAAI,GAAE,yBAA8B,GACnC,sBAAsB,CAAC,CAAC,CAAC,CAiC3B"}
|
package/dist/session/bound.js
CHANGED
|
@@ -6,10 +6,15 @@ import { createSchemaBoundView } from '../schema/bound';
|
|
|
6
6
|
* to the underlying ClientSession with `opts.credential` replaced by the captured
|
|
7
7
|
* credential. `as(next)` returns a fresh view — rebindings don't mutate.
|
|
8
8
|
*/
|
|
9
|
-
export function createBoundSessionView(session, credential) {
|
|
9
|
+
export function createBoundSessionView(session, credential, opts = {}) {
|
|
10
10
|
const cred = () => (typeof credential === 'function' ? credential() : credential);
|
|
11
|
+
const callOpts = (callOptions) => ({
|
|
12
|
+
...(opts.delegation !== undefined ? { delegation: opts.delegation } : {}),
|
|
13
|
+
...callOptions,
|
|
14
|
+
credential: cred(),
|
|
15
|
+
});
|
|
11
16
|
// One call capability, shared by graph (data plane) and auth (control plane).
|
|
12
|
-
const boundCall = (method, params) => session.call(method, params,
|
|
17
|
+
const boundCall = (method, params) => session.call(method, params, callOpts(undefined));
|
|
13
18
|
const graph = createGraph(boundCall);
|
|
14
19
|
const auth = createAuth(boundCall, { credential: cred });
|
|
15
20
|
// Name the view so `withSchema` can compose over it — the schema-bound surface
|
|
@@ -24,13 +29,13 @@ export function createBoundSessionView(session, credential) {
|
|
|
24
29
|
},
|
|
25
30
|
...graph,
|
|
26
31
|
auth,
|
|
27
|
-
call: (method, params, opts) => session.call(method, params,
|
|
28
|
-
stream: (method, params, opts) => session.stream(method, params,
|
|
29
|
-
binary: (method, params, opts) => session.binary(method, params,
|
|
30
|
-
signal: (method, params, opts) => session.signal(method, params,
|
|
32
|
+
call: (method, params, opts) => session.call(method, params, callOpts(opts)),
|
|
33
|
+
stream: (method, params, opts) => session.stream(method, params, callOpts(opts)),
|
|
34
|
+
binary: (method, params, opts) => session.binary(method, params, callOpts(opts)),
|
|
35
|
+
signal: (method, params, opts) => session.signal(method, params, callOpts(opts)),
|
|
31
36
|
describe: (method) => session.describe(method),
|
|
32
37
|
withSchema: (schema) => createSchemaBoundView(view, schema),
|
|
33
|
-
as: (next) => createBoundSessionView(session, next),
|
|
38
|
+
as: (next, nextOpts) => createBoundSessionView(session, next, nextOpts),
|
|
34
39
|
};
|
|
35
40
|
return view;
|
|
36
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bound.js","sourceRoot":"","sources":["../../src/session/bound.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAyB,EACzB,UAAqD;
|
|
1
|
+
{"version":3,"file":"bound.js","sourceRoot":"","sources":["../../src/session/bound.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAyB,EACzB,UAAqD,EACrD,IAAI,GAA8B,EAAE;IAEpC,MAAM,IAAI,GAAG,GAAoB,EAAE,CAAC,CAAC,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAClG,MAAM,QAAQ,GAAG,CAA+B,WAAc,EAAE,EAAE,CAAC,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,WAAW;QACd,UAAU,EAAE,IAAI,EAAE;KACnB,CAAC,CAAA;IACF,8EAA8E;IAC9E,MAAM,SAAS,GAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAC9C,OAAO,CAAC,IAAI,CAAC,MAAe,EAAE,MAAe,EAAE,QAAQ,CAAC,SAAS,CAAU,CAAC,CAAA;IAC9E,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,+EAA+E;IAC/E,+EAA+E;IAC/E,gFAAgF;IAChF,MAAM,IAAI,GAA8B;QACtC,IAAI,OAAO;YACT,OAAO,OAAO,CAAC,OAAO,CAAA;QACxB,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,OAAO,CAAC,QAAQ,CAAA;QACzB,CAAC;QACD,GAAG,KAAK;QACR,IAAI;QACJ,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChF,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChF,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9C,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC;QAC3D,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;KACxE,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -5,7 +5,7 @@ import type { ClientPool } from '../pool/pool';
|
|
|
5
5
|
import type { BinaryResponse } from '../transport/binary';
|
|
6
6
|
import type { ClientSessionCallOptions, ClientSessionConfig } from './config';
|
|
7
7
|
import type { DelegationCache } from './delegation/cache';
|
|
8
|
-
import type { BoundClientSessionView, SchemaTypedClientSession } from './types';
|
|
8
|
+
import type { BoundClientSessionOptions, BoundClientSessionView, SchemaTypedClientSession } from './types';
|
|
9
9
|
import { SchemaRegistry } from '../schema/registry';
|
|
10
10
|
/**
|
|
11
11
|
* ClientSession — the orchestration layer above `KernelClient`.
|
|
@@ -37,7 +37,7 @@ export declare class ClientSession<M extends FnMap = FnMap> {
|
|
|
37
37
|
stream<K extends StreamFns<M>>(method: K, params: M[K]['params'], opts?: ClientSessionCallOptions): Promise<AsyncIterable<M[K]['result']>>;
|
|
38
38
|
binary<K extends BinaryFns<M>>(method: K, params: M[K]['params'], opts?: ClientSessionCallOptions): Promise<BinaryResponse>;
|
|
39
39
|
signal<K extends SignalFns<M>>(method: K, params: M[K]['params'], opts?: ClientSessionCallOptions): void;
|
|
40
|
-
as(credential: CredentialInput | (() => CredentialInput)): BoundClientSessionView<M>;
|
|
40
|
+
as(credential: CredentialInput | (() => CredentialInput), opts?: BoundClientSessionOptions): BoundClientSessionView<M>;
|
|
41
41
|
withSchema<S extends Schema>(schema: S): SchemaTypedClientSession<S>;
|
|
42
42
|
private dispatch;
|
|
43
43
|
private runSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-session.d.ts","sourceRoot":"","sources":["../../src/session/client-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAGpD,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,KAAK,EAIL,SAAS,EACT,SAAS,EACV,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAA0C,MAAM,oBAAoB,CAAA;AAajG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client-session.d.ts","sourceRoot":"","sources":["../../src/session/client-session.ts"],"names":[],"mappings":"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"}
|