@owlmeans/client-planning 0.1.18-rc.3 → 0.1.18-rc.30
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 +94 -11
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/client-planning/SKILL.md +148 -36
- package/build/client.d.ts.map +1 -1
- package/build/client.js +50 -8
- package/build/client.js.map +1 -1
- package/build/commits.d.ts +2 -13
- package/build/commits.d.ts.map +1 -1
- package/build/commits.js +190 -132
- package/build/commits.js.map +1 -1
- package/build/consts.d.ts +4 -0
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +10 -4
- package/build/consts.js.map +1 -1
- package/build/definitions.d.ts +13 -0
- package/build/definitions.d.ts.map +1 -0
- package/build/definitions.js +70 -0
- package/build/definitions.js.map +1 -0
- package/build/events/types.d.ts +34 -0
- package/build/events/types.d.ts.map +1 -0
- package/build/events/types.js +2 -0
- package/build/events/types.js.map +1 -0
- package/build/events.d.ts +10 -21
- package/build/events.d.ts.map +1 -1
- package/build/events.js +104 -102
- package/build/events.js.map +1 -1
- package/build/facade.d.ts.map +1 -1
- package/build/facade.js +86 -49
- package/build/facade.js.map +1 -1
- package/build/feed.d.ts +4 -4
- package/build/feed.d.ts.map +1 -1
- package/build/feed.js +50 -27
- package/build/feed.js.map +1 -1
- package/build/helper/types.d.ts +15 -0
- package/build/helper/types.d.ts.map +1 -0
- package/build/helper/types.js +2 -0
- package/build/helper/types.js.map +1 -0
- package/build/helper.d.ts +7 -7
- package/build/helper.d.ts.map +1 -1
- package/build/helper.js +16 -8
- package/build/helper.js.map +1 -1
- package/build/index.d.ts +11 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +6 -0
- package/build/index.js.map +1 -1
- package/build/lifecycle/types.d.ts +27 -0
- package/build/lifecycle/types.d.ts.map +1 -0
- package/build/lifecycle/types.js +2 -0
- package/build/lifecycle/types.js.map +1 -0
- package/build/lifecycle.d.ts +3 -0
- package/build/lifecycle.d.ts.map +1 -0
- package/build/lifecycle.js +157 -0
- package/build/lifecycle.js.map +1 -0
- package/build/resource-feed.d.ts +5 -0
- package/build/resource-feed.d.ts.map +1 -0
- package/build/resource-feed.js +96 -0
- package/build/resource-feed.js.map +1 -0
- package/build/resources.d.ts +6 -0
- package/build/resources.d.ts.map +1 -0
- package/build/resources.js +93 -0
- package/build/resources.js.map +1 -0
- package/build/stores.d.ts +4 -11
- package/build/stores.d.ts.map +1 -1
- package/build/stores.js +11 -35
- package/build/stores.js.map +1 -1
- package/build/sync/types.d.ts +18 -0
- package/build/sync/types.d.ts.map +1 -0
- package/build/sync/types.js +2 -0
- package/build/sync/types.js.map +1 -0
- package/build/sync.d.ts +4 -0
- package/build/sync.d.ts.map +1 -0
- package/build/sync.js +26 -0
- package/build/sync.js.map +1 -0
- package/build/types.d.ts +48 -3
- package/build/types.d.ts.map +1 -1
- package/build/types.local.d.ts +13 -0
- package/build/types.local.d.ts.map +1 -0
- package/build/types.local.js +2 -0
- package/build/types.local.js.map +1 -0
- package/build/utils/record/types.d.ts +28 -0
- package/build/utils/record/types.d.ts.map +1 -0
- package/build/utils/record/types.js +2 -0
- package/build/utils/record/types.js.map +1 -0
- package/build/utils/record.d.ts +3 -24
- package/build/utils/record.d.ts.map +1 -1
- package/build/utils/record.js +64 -70
- package/build/utils/record.js.map +1 -1
- package/build/validation/consts.d.ts +16 -0
- package/build/validation/consts.d.ts.map +1 -0
- package/build/validation/consts.js +42 -0
- package/build/validation/consts.js.map +1 -0
- package/build/validation/types.d.ts +17 -0
- package/build/validation/types.d.ts.map +1 -0
- package/build/validation/types.js +2 -0
- package/build/validation/types.js.map +1 -0
- package/build/validation.d.ts +10 -0
- package/build/validation.d.ts.map +1 -0
- package/build/validation.js +172 -0
- package/build/validation.js.map +1 -0
- package/package.json +18 -16
- package/src/client.ts +42 -8
- package/src/commits.ts +152 -184
- package/src/consts.ts +12 -4
- package/src/definitions.ts +93 -0
- package/src/events/types.ts +35 -0
- package/src/events.ts +118 -108
- package/src/facade.ts +87 -55
- package/src/feed.ts +47 -28
- package/src/helper/types.ts +15 -0
- package/src/helper.ts +27 -10
- package/src/index.ts +12 -0
- package/src/lifecycle/types.ts +28 -0
- package/src/lifecycle.ts +123 -0
- package/src/resource-feed.ts +78 -0
- package/src/resources.ts +84 -0
- package/src/stores.ts +11 -40
- package/src/sync/types.ts +18 -0
- package/src/sync.ts +40 -0
- package/src/types.local.ts +14 -0
- package/src/types.ts +53 -5
- package/src/utils/record/types.ts +27 -0
- package/src/utils/record.ts +68 -71
- package/src/validation/consts.ts +41 -0
- package/src/validation/types.ts +19 -0
- package/src/validation.ts +141 -0
- package/tests/context.ts +46 -15
- package/tests/definitions.spec.ts +74 -0
- package/tests/events.spec.ts +13 -9
- package/tests/facade.spec.ts +2 -1
- package/tests/lifecycle/context.ts +29 -0
- package/tests/lifecycle-close.spec.ts +103 -0
- package/tests/lifecycle-commits.spec.ts +92 -0
- package/tests/lifecycle-definitions.spec.ts +28 -0
- package/tests/lifecycle-feeds.spec.ts +92 -0
- package/tests/lifecycle-sockets.spec.ts +76 -0
- package/tests/replies.spec.ts +81 -0
- package/tests/resources.spec.ts +90 -0
- package/tests/stores.spec.ts +13 -11
- package/tests/validation.spec.ts +127 -0
package/build/commits.js
CHANGED
|
@@ -1,205 +1,263 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { logger } from '@owlmeans/log';
|
|
2
|
+
import { planningReplyHelper, CommitFailed, CommitState, CommitTimeout, DEFAULT_COMMIT_POLL, DEFAULT_COMMIT_TIMEOUT, MAX_COMMIT_POLL, PLANNING_COMMIT_EVENT, PlanningError, WorkcardKind } from '@owlmeans/planning';
|
|
2
3
|
import { EARLY_POLL_LADDER, EARLY_POLL_MS, LONG_POLL_GRACE } from './consts.js';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
&& (filter.kind == null || filter.kind === event.kind));
|
|
8
|
-
const delay = (ms) => {
|
|
9
|
-
let handle;
|
|
10
|
-
const promise = new Promise(resolve => { handle = setTimeout(resolve, Math.max(0, ms)); });
|
|
11
|
-
return { promise, cancel: () => clearTimeout(handle) };
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* The commit source of a remote facade: the `commit.get` long poll and, when the host injects a
|
|
15
|
-
* socket opener, the `commit.events` feed.
|
|
16
|
-
*
|
|
17
|
-
* `wait` SUBSCRIBES FIRST and only then reads the status — a commit landing between a read and a
|
|
18
|
-
* subscription would otherwise be missed until the deadline. It then long-polls in holds of
|
|
19
|
-
* `min(poll, remaining)` seconds, so a client with no socket (a Node connector) still learns of a
|
|
20
|
-
* commit within one round trip of it landing, and a client with one learns from whichever arrives
|
|
21
|
-
* first. The deadline is a {@link CommitTimeout}; the transition stays pending — nothing is undone.
|
|
22
|
-
*
|
|
23
|
-
* ONE socket serves every subscription of the source; releasing a subscription never closes it.
|
|
24
|
-
*/
|
|
4
|
+
import { makePlanningClientLifecycle } from './lifecycle.js';
|
|
5
|
+
import { recordUtils } from './utils/record.js';
|
|
6
|
+
const log = logger('client-planning');
|
|
7
|
+
/** Subscribe before reading, then race the shared socket against bounded HTTP holds. */
|
|
25
8
|
export const makeRemoteCommitSource = (context, protocols, opts) => {
|
|
9
|
+
const lifecycle = opts?.lifecycle ?? makePlanningClientLifecycle({ scopeKey: opts?.scopeKey });
|
|
26
10
|
const poll = Math.max(0, Math.min(MAX_COMMIT_POLL, opts?.poll ?? DEFAULT_COMMIT_POLL));
|
|
27
11
|
const subscriptions = new Set();
|
|
12
|
+
const operations = new Set();
|
|
28
13
|
let opening = null;
|
|
14
|
+
const openingOf = () => opening;
|
|
29
15
|
let open = null;
|
|
30
16
|
let detach = null;
|
|
17
|
+
const capture = () => {
|
|
18
|
+
const captured = lifecycle.capture();
|
|
19
|
+
const operation = { ...captured, release: () => {
|
|
20
|
+
operations.delete(operation);
|
|
21
|
+
captured.release();
|
|
22
|
+
} };
|
|
23
|
+
operations.add(operation);
|
|
24
|
+
return operation;
|
|
25
|
+
};
|
|
26
|
+
const matches = (filter, event) => filter == null || ((filter.entityId == null || filter.entityId === event.entityId)
|
|
27
|
+
&& (filter.project == null || filter.project === event.project)
|
|
28
|
+
&& (filter.card == null || filter.card === event.card)
|
|
29
|
+
&& (filter.kind == null || filter.kind === event.kind));
|
|
30
|
+
const delay = (ms) => {
|
|
31
|
+
let handle;
|
|
32
|
+
const promise = new Promise(resolve => { handle = setTimeout(resolve, Math.max(0, ms)); });
|
|
33
|
+
return { promise, cancel: () => clearTimeout(handle) };
|
|
34
|
+
};
|
|
31
35
|
const dispatch = async (event) => {
|
|
32
36
|
for (const subscription of [...subscriptions]) {
|
|
33
|
-
if (!matches(subscription.filter, event))
|
|
37
|
+
if (!subscriptions.has(subscription) || !subscription.operation.active() || !matches(subscription.filter, event))
|
|
34
38
|
continue;
|
|
35
|
-
}
|
|
36
39
|
try {
|
|
37
|
-
await subscription.listener(event);
|
|
40
|
+
await subscription.operation.wait(Promise.resolve(subscription.listener(event)));
|
|
38
41
|
}
|
|
39
|
-
catch (
|
|
40
|
-
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (subscription.operation.active())
|
|
44
|
+
log.error('Planning commit listener failed', error);
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
};
|
|
44
48
|
const socket = async () => {
|
|
45
49
|
const opener = opts?.socket;
|
|
46
|
-
if (opener == null)
|
|
50
|
+
if (opener == null)
|
|
47
51
|
return null;
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
lifecycle.key(); // Observe an identity change before reusing an open carrier.
|
|
53
|
+
if (open != null)
|
|
54
|
+
return open;
|
|
55
|
+
if (opening != null)
|
|
56
|
+
return await opening.promise;
|
|
57
|
+
const operation = capture();
|
|
58
|
+
const pending = (async () => {
|
|
50
59
|
try {
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
const carrier = Promise.resolve().then(async () => {
|
|
61
|
+
operation.check();
|
|
62
|
+
return await opener(protocols.commit.events, { query: {}, signal: operation.signal });
|
|
63
|
+
}).then(async (connection) => {
|
|
64
|
+
if (connection == null)
|
|
65
|
+
return null;
|
|
66
|
+
if (!operation.active()) {
|
|
67
|
+
await connection.close();
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
open = connection;
|
|
71
|
+
detach = connection.observe(PLANNING_COMMIT_EVENT, async (message) => {
|
|
72
|
+
if (operation.active())
|
|
73
|
+
await dispatch(planningReplyHelper.hydrate(message.payload));
|
|
74
|
+
});
|
|
75
|
+
return connection;
|
|
60
76
|
});
|
|
61
|
-
return
|
|
77
|
+
return await operation.wait(carrier);
|
|
62
78
|
}
|
|
63
|
-
catch (
|
|
64
|
-
|
|
65
|
-
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (operation.active())
|
|
81
|
+
log.warn('Planning commit socket failed to open', error);
|
|
66
82
|
return null;
|
|
67
83
|
}
|
|
84
|
+
finally {
|
|
85
|
+
if (openingOf()?.operation === operation)
|
|
86
|
+
opening = null;
|
|
87
|
+
// Keep an open carrier's operation cancellable until close; it guards received frames.
|
|
88
|
+
if (open == null || !operation.active())
|
|
89
|
+
operation.release();
|
|
90
|
+
}
|
|
68
91
|
})();
|
|
69
|
-
|
|
92
|
+
opening = { operation, promise: pending };
|
|
93
|
+
return await pending;
|
|
70
94
|
};
|
|
71
95
|
const endpoint = () => context.entrypoint(protocols.commit.get);
|
|
72
|
-
const status = async (transition) =>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
const status = async (transition, operation) => {
|
|
97
|
+
operation.check();
|
|
98
|
+
return planningReplyHelper.hydrate(await operation.wait(endpoint().call({
|
|
99
|
+
params: { transition }, query: { wait: 0 }, timeout: opts?.timeout, signal: operation.signal,
|
|
100
|
+
})));
|
|
101
|
+
};
|
|
102
|
+
const hold = async (transition, wait, signal, operation) => {
|
|
103
|
+
operation.check();
|
|
76
104
|
try {
|
|
77
|
-
return await endpoint().call({
|
|
105
|
+
return planningReplyHelper.hydrate(await operation.wait(endpoint().call({
|
|
78
106
|
params: { transition }, query: { wait }, timeout: wait * 1000 + LONG_POLL_GRACE, signal,
|
|
79
|
-
});
|
|
107
|
+
})));
|
|
80
108
|
}
|
|
81
|
-
catch (
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
// A dropped hold
|
|
86
|
-
|
|
87
|
-
return await status(transition);
|
|
109
|
+
catch (error) {
|
|
110
|
+
operation.check();
|
|
111
|
+
if (signal.aborted || error instanceof PlanningError)
|
|
112
|
+
throw error;
|
|
113
|
+
// A dropped hold says nothing about the commit. Never retry it under another scope.
|
|
114
|
+
return await status(transition, operation);
|
|
88
115
|
}
|
|
89
116
|
};
|
|
90
|
-
|
|
91
|
-
const fold = async (transition, settled) => {
|
|
117
|
+
const answer = async (transition, settled, operation) => {
|
|
92
118
|
const stores = opts?.stores?.();
|
|
93
|
-
if (stores
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const answer = async (transition, settled) => {
|
|
111
|
-
await fold(transition, settled);
|
|
112
|
-
if (settled.state === CommitState.Failed) {
|
|
119
|
+
if (stores != null)
|
|
120
|
+
await lifecycle.mutate(operation, async () => {
|
|
121
|
+
const known = await stores.commits.load(transition);
|
|
122
|
+
await recordUtils.putCommit(stores.commits, {
|
|
123
|
+
id: transition, state: settled.state, at: settled.at, error: settled.error,
|
|
124
|
+
});
|
|
125
|
+
if (settled.state === CommitState.Committed) {
|
|
126
|
+
if (settled.card != null)
|
|
127
|
+
await recordUtils.putCard(stores.cards, settled.card);
|
|
128
|
+
else if (settled.card === null && known?.card != null)
|
|
129
|
+
await recordUtils.dropCard(stores, known.card, known.kind === WorkcardKind.Project);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
operation.check();
|
|
133
|
+
if (settled.state === CommitState.Failed)
|
|
113
134
|
throw new CommitFailed(settled.error ?? transition);
|
|
114
|
-
}
|
|
115
135
|
return settled.card ?? null;
|
|
116
136
|
};
|
|
117
|
-
const subscribe = async (listener, filter) => {
|
|
118
|
-
const
|
|
137
|
+
const subscribe = async (listener, filter, signal) => {
|
|
138
|
+
const operation = capture();
|
|
139
|
+
const subscription = { listener, filter, operation };
|
|
119
140
|
subscriptions.add(subscription);
|
|
120
|
-
|
|
121
|
-
|
|
141
|
+
const stop = () => {
|
|
142
|
+
subscriptions.delete(subscription);
|
|
143
|
+
operation.cancel();
|
|
144
|
+
operation.release();
|
|
145
|
+
signal?.removeEventListener('abort', stop);
|
|
146
|
+
};
|
|
147
|
+
signal?.addEventListener('abort', stop, { once: true });
|
|
148
|
+
if (signal?.aborted)
|
|
149
|
+
stop();
|
|
150
|
+
try {
|
|
151
|
+
await operation.wait(socket());
|
|
152
|
+
return stop;
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
stop();
|
|
156
|
+
throw error;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
const close = async () => {
|
|
160
|
+
for (const operation of operations) {
|
|
161
|
+
operation.cancel();
|
|
162
|
+
operation.release();
|
|
163
|
+
}
|
|
164
|
+
subscriptions.clear();
|
|
165
|
+
detach?.();
|
|
166
|
+
detach = null;
|
|
167
|
+
const connection = open;
|
|
168
|
+
open = null;
|
|
169
|
+
opening = null;
|
|
170
|
+
await Promise.all([connection?.close(), lifecycle.drain()]);
|
|
122
171
|
};
|
|
123
|
-
|
|
124
|
-
|
|
172
|
+
lifecycle.onInvalidate(close);
|
|
173
|
+
return {
|
|
174
|
+
status: async (transition) => {
|
|
175
|
+
const operation = capture();
|
|
176
|
+
try {
|
|
177
|
+
return await status(transition, operation);
|
|
178
|
+
}
|
|
179
|
+
finally {
|
|
180
|
+
operation.release();
|
|
181
|
+
}
|
|
182
|
+
},
|
|
125
183
|
subscribe,
|
|
126
184
|
wait: async (transition, waitOpts) => {
|
|
127
|
-
const
|
|
128
|
-
|
|
185
|
+
const operation = capture();
|
|
186
|
+
const duration = waitOpts?.timeout ?? DEFAULT_COMMIT_TIMEOUT;
|
|
187
|
+
const deadline = Date.now() + duration;
|
|
188
|
+
const deadlineTimer = setTimeout(() => operation.cancel(new CommitTimeout(transition)), Math.max(0, duration));
|
|
129
189
|
const frame = { landed: null };
|
|
130
190
|
let wake = () => { };
|
|
131
|
-
|
|
132
|
-
if (event.transition === transition && event.state !== CommitState.Pending) {
|
|
133
|
-
frame.landed = event;
|
|
134
|
-
wake();
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
/** A frame says it settled; the status read carries the card when the frame does not. */
|
|
138
|
-
const fromFrame = async (event) => event.record !== undefined
|
|
139
|
-
? await answer(transition, {
|
|
140
|
-
transition, state: event.state, at: event.at, error: event.error, card: event.record,
|
|
141
|
-
})
|
|
142
|
-
: await answer(transition, await status(transition));
|
|
191
|
+
let unsubscribe;
|
|
143
192
|
try {
|
|
144
|
-
|
|
193
|
+
const subscribing = subscribe(event => {
|
|
194
|
+
if (operation.active() && event.transition === transition && event.state !== CommitState.Pending) {
|
|
195
|
+
frame.landed = event;
|
|
196
|
+
wake();
|
|
197
|
+
}
|
|
198
|
+
}, undefined, operation.signal);
|
|
199
|
+
// A cancelled waiter must also release a subscription whose opener completes later.
|
|
200
|
+
void subscribing.then(stop => { if (!operation.active())
|
|
201
|
+
stop(); }, () => { });
|
|
202
|
+
unsubscribe = await operation.wait(subscribing);
|
|
203
|
+
const fromFrame = async (event) => await answer(transition, event.record !== undefined
|
|
204
|
+
? { transition, state: event.state, at: event.at, error: event.error, card: event.record }
|
|
205
|
+
: await status(transition, operation), operation);
|
|
206
|
+
let current = await status(transition, operation);
|
|
145
207
|
let early = 0;
|
|
146
208
|
while (current.state === CommitState.Pending) {
|
|
147
|
-
|
|
209
|
+
operation.check();
|
|
210
|
+
if (frame.landed != null)
|
|
148
211
|
return await fromFrame(frame.landed);
|
|
149
|
-
}
|
|
150
212
|
const remaining = deadline - Date.now();
|
|
151
|
-
if (remaining <= 0)
|
|
213
|
+
if (remaining <= 0)
|
|
152
214
|
throw new CommitTimeout(transition);
|
|
153
|
-
}
|
|
154
215
|
const wait = Math.min(poll, Math.ceil(remaining / 1000));
|
|
155
216
|
const abort = new AbortController();
|
|
217
|
+
const cancel = () => abort.abort(operation.signal.reason);
|
|
218
|
+
operation.signal.addEventListener('abort', cancel, { once: true });
|
|
156
219
|
const timer = delay(remaining);
|
|
157
220
|
const framed = new Promise(resolve => { wake = () => resolve('frame'); });
|
|
158
221
|
const started = Date.now();
|
|
159
222
|
try {
|
|
160
|
-
const outcome = await Promise.race([
|
|
161
|
-
hold(transition, wait, abort.signal),
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
]);
|
|
165
|
-
if (outcome === 'frame' || outcome === 'deadline') {
|
|
223
|
+
const outcome = await operation.wait(Promise.race([
|
|
224
|
+
hold(transition, wait, abort.signal, operation), framed, timer.promise.then(() => 'deadline'),
|
|
225
|
+
]));
|
|
226
|
+
if (outcome === 'frame' || outcome === 'deadline')
|
|
166
227
|
continue;
|
|
167
|
-
}
|
|
168
228
|
current = outcome;
|
|
169
229
|
}
|
|
170
230
|
finally {
|
|
171
231
|
abort.abort();
|
|
172
232
|
timer.cancel();
|
|
173
233
|
wake = () => { };
|
|
234
|
+
operation.signal.removeEventListener('abort', cancel);
|
|
174
235
|
}
|
|
175
236
|
if (current.state === CommitState.Pending && Date.now() - started < EARLY_POLL_MS) {
|
|
176
|
-
// The server did not hold — pause on a ladder rather than spin until the deadline.
|
|
177
237
|
const pause = delay(Math.min(EARLY_POLL_LADDER[Math.min(early, EARLY_POLL_LADDER.length - 1)], deadline - Date.now()));
|
|
178
|
-
early
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
238
|
+
early++;
|
|
239
|
+
try {
|
|
240
|
+
await operation.wait(Promise.race([pause.promise, new Promise(resolve => { wake = resolve; })]));
|
|
241
|
+
}
|
|
242
|
+
finally {
|
|
243
|
+
pause.cancel();
|
|
244
|
+
wake = () => { };
|
|
245
|
+
}
|
|
182
246
|
}
|
|
183
|
-
else
|
|
247
|
+
else
|
|
184
248
|
early = 0;
|
|
185
|
-
}
|
|
186
249
|
}
|
|
187
|
-
return await answer(transition, current);
|
|
250
|
+
return await answer(transition, current, operation);
|
|
188
251
|
}
|
|
189
252
|
finally {
|
|
190
|
-
|
|
253
|
+
clearTimeout(deadlineTimer);
|
|
254
|
+
unsubscribe?.();
|
|
255
|
+
operation.cancel();
|
|
256
|
+
operation.release();
|
|
191
257
|
}
|
|
192
258
|
},
|
|
193
|
-
connected: () => open != null,
|
|
194
|
-
close
|
|
195
|
-
detach?.();
|
|
196
|
-
detach = null;
|
|
197
|
-
const connection = open;
|
|
198
|
-
open = null;
|
|
199
|
-
opening = null;
|
|
200
|
-
await connection?.close();
|
|
201
|
-
},
|
|
259
|
+
connected: () => { lifecycle.key(); return open != null; },
|
|
260
|
+
close,
|
|
202
261
|
};
|
|
203
|
-
return source;
|
|
204
262
|
};
|
|
205
263
|
//# sourceMappingURL=commits.js.map
|
package/build/commits.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commits.js","sourceRoot":"","sources":["../src/commits.ts"],"names":[],"mappings":"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"}
|
package/build/consts.d.ts
CHANGED
|
@@ -9,6 +9,10 @@ export declare const CARDS: StateAlias<Workcard>;
|
|
|
9
9
|
export declare const LINKS: StateAlias<Relationship>;
|
|
10
10
|
/** What the client has learned about each transition it wrote or saw, keyed by transition id. */
|
|
11
11
|
export declare const COMMITS: StateAlias<PlanningCommitRecord>;
|
|
12
|
+
export declare const ASSIGNEES: StateAlias<import('@owlmeans/planning').Assignee>;
|
|
13
|
+
export declare const TEAMS: StateAlias<import('@owlmeans/planning').Team>;
|
|
14
|
+
export declare const COMMENTS: StateAlias<import('@owlmeans/planning').Comment>;
|
|
15
|
+
export declare const MENTIONS: StateAlias<import('@owlmeans/planning').CommentMention>;
|
|
12
16
|
export declare const DEFAULT_STORE_ALIASES: Readonly<PlanningStoreAliases>;
|
|
13
17
|
/**
|
|
14
18
|
* How much longer than its own `wait` a long poll's HTTP deadline is, in milliseconds — a held
|
package/build/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAK5E;;;GAGG;AACH,eAAO,MAAM,KAAK,EAA4B,UAAU,CAAC,QAAQ,CAAC,CAAA;AAElE,eAAO,MAAM,KAAK,EAA4B,UAAU,CAAC,YAAY,CAAC,CAAA;AAEtE,iGAAiG;AACjG,eAAO,MAAM,OAAO,EAA8B,UAAU,CAAC,oBAAoB,CAAC,CAAA;AAElF,eAAO,MAAM,SAAS,EAAgC,UAAU,CAAC,OAAO,oBAAoB,EAAE,QAAQ,CAAC,CAAA;AACvG,eAAO,MAAM,KAAK,EAA4B,UAAU,CAAC,OAAO,oBAAoB,EAAE,IAAI,CAAC,CAAA;AAC3F,eAAO,MAAM,QAAQ,EAA+B,UAAU,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAA;AACpG,eAAO,MAAM,QAAQ,EAA+B,UAAU,CAAC,OAAO,oBAAoB,EAAE,cAAc,CAAC,CAAA;AAE3G,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,oBAAoB,CAK/D,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAS,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAuC,CAAA;AAEtF,0DAA0D;AAC1D,eAAO,MAAM,aAAa,MAAM,CAAA"}
|
package/build/consts.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
// A state alias is the string itself at runtime (`stateAlias()` only attaches the record type), so
|
|
2
|
+
// each handle is declared as the constant it is.
|
|
2
3
|
/**
|
|
3
4
|
* The ONE card store. Projects, cards and specifications share an id space on the server, so they
|
|
4
5
|
* share it here too — a store per kind would let a list reload of one kind drop another's rows.
|
|
5
6
|
*/
|
|
6
|
-
export const CARDS =
|
|
7
|
-
export const LINKS =
|
|
7
|
+
export const CARDS = 'planning-card-state';
|
|
8
|
+
export const LINKS = 'planning-link-state';
|
|
8
9
|
/** What the client has learned about each transition it wrote or saw, keyed by transition id. */
|
|
9
|
-
export const COMMITS =
|
|
10
|
+
export const COMMITS = 'planning-commit-state';
|
|
11
|
+
export const ASSIGNEES = 'planning-assignee-state';
|
|
12
|
+
export const TEAMS = 'planning-team-state';
|
|
13
|
+
export const COMMENTS = 'planning-comment-state';
|
|
14
|
+
export const MENTIONS = 'planning-mention-state';
|
|
10
15
|
export const DEFAULT_STORE_ALIASES = Object.freeze({
|
|
16
|
+
assignees: ASSIGNEES, teams: TEAMS, comments: COMMENTS, mentions: MENTIONS,
|
|
11
17
|
cards: CARDS,
|
|
12
18
|
links: LINKS,
|
|
13
19
|
commits: COMMITS,
|
package/build/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAIA,mGAAmG;AACnG,iDAAiD;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,qBAA6C,CAAA;AAElE,MAAM,CAAC,MAAM,KAAK,GAAG,qBAAiD,CAAA;AAEtE,iGAAiG;AACjG,MAAM,CAAC,MAAM,OAAO,GAAG,uBAA2D,CAAA;AAElF,MAAM,CAAC,MAAM,SAAS,GAAG,yBAA8E,CAAA;AACvG,MAAM,CAAC,MAAM,KAAK,GAAG,qBAAsE,CAAA;AAC3F,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAA4E,CAAA;AACpG,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAAmF,CAAA;AAE3G,MAAM,CAAC,MAAM,qBAAqB,GAAmC,MAAM,CAAC,MAAM,CAAC;IACjF,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;IAC1E,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,OAAO;CACjB,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAA;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AAEtF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BasicConfig, BasicContext } from '@owlmeans/context';
|
|
2
|
+
import type { PlanningProtocols } from '@owlmeans/planning';
|
|
3
|
+
import type { RemoteDefinitions, RemoteDefinitionsOptions } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Data-defined types and flows over a tree declared with `definitions: true`: a layer's registry is
|
|
6
|
+
* read through `schema.list` (with its `project`) and cached per project; every write goes through
|
|
7
|
+
* `schema.define` and drops the whole cache — an organization-wide write reaches every project's
|
|
8
|
+
* layer. The records of a layer are the server's alone (`records` refuses).
|
|
9
|
+
*
|
|
10
|
+
* @throws {PlanningUnsupported} for a tree declared without `definitions`
|
|
11
|
+
*/
|
|
12
|
+
export declare const makeRemoteDefinitions: <C extends BasicConfig, T extends BasicContext<C>>(context: T, protocols: PlanningProtocols, opts?: RemoteDefinitionsOptions) => RemoteDefinitions;
|
|
13
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAM7E;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WAC3E,CAAC,aAAa,iBAAiB,SAAQ,wBAAwB,KACvE,iBAuEF,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { planningReplyHelper, PlanningUnsupported, SchemaWriteMode, scopedSchemaHelper } from '@owlmeans/planning';
|
|
2
|
+
import { makePlanningClientLifecycle } from './lifecycle.js';
|
|
3
|
+
const clean = (record) => Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
|
|
4
|
+
/**
|
|
5
|
+
* Data-defined types and flows over a tree declared with `definitions: true`: a layer's registry is
|
|
6
|
+
* read through `schema.list` (with its `project`) and cached per project; every write goes through
|
|
7
|
+
* `schema.define` and drops the whole cache — an organization-wide write reaches every project's
|
|
8
|
+
* layer. The records of a layer are the server's alone (`records` refuses).
|
|
9
|
+
*
|
|
10
|
+
* @throws {PlanningUnsupported} for a tree declared without `definitions`
|
|
11
|
+
*/
|
|
12
|
+
export const makeRemoteDefinitions = (context, protocols, opts = {}) => {
|
|
13
|
+
const lifecycle = opts.lifecycle ?? makePlanningClientLifecycle({ scopeKey: opts.scopeKey });
|
|
14
|
+
const define = protocols.schema.define;
|
|
15
|
+
if (define == null) {
|
|
16
|
+
throw new PlanningUnsupported('client:definitions');
|
|
17
|
+
}
|
|
18
|
+
const cache = new Map();
|
|
19
|
+
const invalidate = () => {
|
|
20
|
+
cache.clear();
|
|
21
|
+
opts.onWrite?.();
|
|
22
|
+
};
|
|
23
|
+
const registry = (project) => {
|
|
24
|
+
const identity = lifecycle.key();
|
|
25
|
+
const key = `${identity}\u0000${project ?? ''}`;
|
|
26
|
+
let entry = cache.get(key);
|
|
27
|
+
if (entry == null) {
|
|
28
|
+
const loading = lifecycle.run(async (operation) => {
|
|
29
|
+
const bundle = planningReplyHelper.hydrate(await operation.wait(context.entrypoint(protocols.schema.list).call({ query: project != null ? { project } : {}, timeout: opts.timeout, signal: operation.signal })));
|
|
30
|
+
return scopedSchemaHelper.scopedRegistryOf(bundle);
|
|
31
|
+
});
|
|
32
|
+
entry = loading;
|
|
33
|
+
cache.set(key, loading);
|
|
34
|
+
// A failed read is forgotten, so the next caller asks again instead of inheriting the error.
|
|
35
|
+
loading.catch(() => {
|
|
36
|
+
if (cache.get(key) === loading) {
|
|
37
|
+
cache.delete(key);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return entry;
|
|
42
|
+
};
|
|
43
|
+
const write = async (request) => lifecycle.run(async (operation) => {
|
|
44
|
+
try {
|
|
45
|
+
return planningReplyHelper.hydrate(await operation.wait(context.entrypoint(define).call({ body: clean(request), timeout: opts.timeout, signal: operation.signal })));
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
if (operation.active())
|
|
49
|
+
invalidate();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
bundle: async (project) => (await registry(project)).bundle(),
|
|
54
|
+
registry,
|
|
55
|
+
records: async () => {
|
|
56
|
+
throw new PlanningUnsupported('client:definitions:records');
|
|
57
|
+
},
|
|
58
|
+
putAssigneeType: async (schema) => (await write({ assigneeTypes: [schema], mode: SchemaWriteMode.Put })).records[0],
|
|
59
|
+
putType: async (type, layer) => (await write({ project: layer?.project, mode: SchemaWriteMode.Put, types: [type] })).records[0],
|
|
60
|
+
putFlow: async (flow, layer) => (await write({ project: layer?.project, mode: SchemaWriteMode.Put, flows: [flow] })).records[0],
|
|
61
|
+
define: async (declarations, layer) => (await write({ project: layer?.project, mode: SchemaWriteMode.Define, ...declarations })).records,
|
|
62
|
+
seed: async (declarations, layer) => (await write({ project: layer?.project, mode: SchemaWriteMode.Seed, ...declarations })).records,
|
|
63
|
+
retire: async (kind, key, layer) => {
|
|
64
|
+
const { records } = await write({ project: layer?.project, retire: [{ kind, key }] });
|
|
65
|
+
return records[records.length - 1];
|
|
66
|
+
},
|
|
67
|
+
invalidate,
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CommitEvent, PlanningFacade, TransitionReceiptView, Workcard } from '@owlmeans/planning';
|
|
2
|
+
import type { PlanningClientLifecycle, PlanningOperation } from '../lifecycle/types.js';
|
|
3
|
+
export interface PlanningMirrorOptions {
|
|
4
|
+
lifecycle: PlanningClientLifecycle;
|
|
5
|
+
operation: PlanningOperation;
|
|
6
|
+
}
|
|
7
|
+
/** What one set of mirror stores learns from the server: commit frames, receipts and cards read. */
|
|
8
|
+
export interface PlanningMirror {
|
|
9
|
+
/**
|
|
10
|
+
* Fold one commit frame into the mirror.
|
|
11
|
+
*
|
|
12
|
+
* - An OLDER `seq` never overwrites a newer record — frames and list answers race.
|
|
13
|
+
* - A committed `delete` REMOVES the row and every link touching it (and, for a project, the rows
|
|
14
|
+
* under it — the server purged them in the same fold).
|
|
15
|
+
* - A frame for an id the store never saw still writes a row: a card created in another tab
|
|
16
|
+
* appears here without waiting for the next list.
|
|
17
|
+
* - A `failed` commit leaves the card alone; the reason is recorded in the commit store.
|
|
18
|
+
*
|
|
19
|
+
* A frame from a cross-process bus carries ids only. When `record` is absent the card is re-read
|
|
20
|
+
* through `facade`; without one there is nothing to write but the commit itself.
|
|
21
|
+
*/
|
|
22
|
+
applyCommitEvent: (event: CommitEvent, facade?: PlanningFacade, options?: PlanningMirrorOptions) => Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Mark a receipt in the mirror the moment the server answers it.
|
|
25
|
+
*
|
|
26
|
+
* A pending transition raises the card's `head` to its `seq`, so `head > seq` — the model's
|
|
27
|
+
* `pending()` — is true before any frame arrives. A receipt that already carries the committed
|
|
28
|
+
* card writes it; a committed delete drops the row.
|
|
29
|
+
*/
|
|
30
|
+
applyReceipt: (receipt: TransitionReceiptView, options?: PlanningMirrorOptions) => Promise<void>;
|
|
31
|
+
/** Write cards the caller read on its own, under the same newer-fold-wins rule as a commit. */
|
|
32
|
+
applyCards: (cards: Workcard[], options?: PlanningMirrorOptions) => Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACtG,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEvF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,uBAAuB,CAAA;IAClC,SAAS,EAAE,iBAAiB,CAAA;CAC7B;AAED,oGAAoG;AACpG,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;;OAYG;IACH,gBAAgB,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjH;;;;;;OAMG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChG,+FAA+F;IAC/F,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClF"}
|