@owlmeans/client-planning 0.1.18-rc.9 → 0.1.18
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 +62 -4
- package/agent-meta/skills/client-planning/SKILL.md +60 -78
- package/agent-meta/skills/client-planning/parts/aux-mirrors.md +61 -0
- package/agent-meta/skills/client-planning/parts/mirror.md +67 -0
- package/agent-meta/skills/client-planning/parts/validation.md +60 -0
- package/build/client.d.ts +1 -1
- package/build/client.d.ts.map +1 -1
- package/build/client.js +66 -14
- 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 +97 -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 +23 -0
- package/build/validation/consts.d.ts.map +1 -0
- package/build/validation/consts.js +289 -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 +171 -0
- package/build/validation.js.map +1 -0
- package/package.json +20 -18
- package/src/client.ts +58 -15
- 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 +79 -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 +289 -0
- package/src/validation/types.ts +18 -0
- package/src/validation.ts +140 -0
- package/tests/app.spec.ts +72 -0
- package/tests/context.ts +46 -15
- package/tests/csp.spec.ts +119 -0
- package/tests/definitions.spec.ts +74 -0
- package/tests/draft7.spec.ts +13 -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 +116 -0
- package/tests/stores.spec.ts +13 -11
- package/tests/validation.spec.ts +127 -0
package/build/facade.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { CommitFailed, CommitState, DEFAULT_COMMIT_TIMEOUT, PlanningError, PlanningUnsupported,
|
|
2
|
-
import {
|
|
1
|
+
import { CommitFailed, CommitState, DEFAULT_COMMIT_TIMEOUT, modelOf, PlanningError, PlanningUnsupported, wireHelper, WorkcardKind, WorkcardNotFound, planningReplyHelper, } from '@owlmeans/planning';
|
|
2
|
+
import { makeRemoteResourceFacade } from './resources.js';
|
|
3
|
+
import { planningMirrorOf } from './events.js';
|
|
4
|
+
import { makePlanningClientLifecycle } from './lifecycle.js';
|
|
3
5
|
/**
|
|
4
6
|
* A {@link PlanningFacade} over the remote protocol tree — every method is one entrypoint call.
|
|
5
7
|
*
|
|
@@ -17,7 +19,9 @@ import { applyReceipt } from './events.js';
|
|
|
17
19
|
export const makeRemoteFacade = (context, protocols, scope, opts) => {
|
|
18
20
|
const timeout = opts.timeout;
|
|
19
21
|
const { commits } = opts;
|
|
20
|
-
const
|
|
22
|
+
const lifecycle = opts.lifecycle ?? makePlanningClientLifecycle({ scopeKey: opts.scopeKey });
|
|
23
|
+
const scopedCall = async (run) => lifecycle.run(async (operation) => planningReplyHelper.hydrate(await operation.wait(run(operation.signal))));
|
|
24
|
+
const receiptOf = (view, key) => {
|
|
21
25
|
const id = view.transition.id;
|
|
22
26
|
if (id == null) {
|
|
23
27
|
throw new PlanningError('malformed:receipt-without-transition');
|
|
@@ -26,22 +30,29 @@ export const makeRemoteFacade = (context, protocols, scope, opts) => {
|
|
|
26
30
|
transition: view.transition,
|
|
27
31
|
...(view.card !== undefined ? { card: view.card } : {}),
|
|
28
32
|
committed: async (waitOpts) => {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
const operation = lifecycle.capture(key);
|
|
34
|
+
try {
|
|
35
|
+
const { state, error } = view.transition.commit;
|
|
36
|
+
if (state === CommitState.Failed) {
|
|
37
|
+
throw new CommitFailed(error ?? id);
|
|
38
|
+
}
|
|
39
|
+
if (state === CommitState.Committed && view.card !== undefined) {
|
|
40
|
+
return view.card;
|
|
41
|
+
}
|
|
42
|
+
return await operation.wait(commits.wait(id, { timeout: waitOpts?.timeout ?? DEFAULT_COMMIT_TIMEOUT }));
|
|
32
43
|
}
|
|
33
|
-
|
|
34
|
-
|
|
44
|
+
finally {
|
|
45
|
+
operation.release();
|
|
35
46
|
}
|
|
36
|
-
return await commits.wait(id, { timeout: waitOpts?.timeout ?? DEFAULT_COMMIT_TIMEOUT });
|
|
37
47
|
},
|
|
38
48
|
};
|
|
39
49
|
};
|
|
40
50
|
const facade = {
|
|
51
|
+
...makeRemoteResourceFacade(context, protocols, { ...opts, lifecycle }),
|
|
41
52
|
scope: { ...scope, entityId: scope.entityId ?? '' },
|
|
42
53
|
schemas: opts.schemas,
|
|
43
54
|
cards: {
|
|
44
|
-
get: async (id) => await context.entrypoint(protocols.card.get).call({ params: { id }, timeout }),
|
|
55
|
+
get: async (id) => await scopedCall(signal => context.entrypoint(protocols.card.get).call({ params: { id }, timeout, signal })),
|
|
45
56
|
load: async (id) => {
|
|
46
57
|
try {
|
|
47
58
|
return await facade.cards.get(id);
|
|
@@ -53,78 +64,104 @@ export const makeRemoteFacade = (context, protocols, scope, opts) => {
|
|
|
53
64
|
throw e;
|
|
54
65
|
}
|
|
55
66
|
},
|
|
56
|
-
list: async (query) => await context.entrypoint(protocols.card.list).call({
|
|
57
|
-
query: encodeWorkcardQuery(query), timeout,
|
|
58
|
-
}),
|
|
67
|
+
list: async (query) => await scopedCall(signal => context.entrypoint(protocols.card.list).call({
|
|
68
|
+
query: wireHelper.encodeWorkcardQuery(query), timeout, signal,
|
|
69
|
+
})),
|
|
59
70
|
count: async (query) => {
|
|
60
71
|
const { page: _page, size: _size, sort: _sort, ...where } = query ?? {};
|
|
61
|
-
const answer = await context.entrypoint(protocols.card.list).call({
|
|
62
|
-
query: encodeWorkcardQuery({ ...where, page: 0, size: 1 }), timeout,
|
|
63
|
-
});
|
|
72
|
+
const answer = await scopedCall(signal => context.entrypoint(protocols.card.list).call({
|
|
73
|
+
query: wireHelper.encodeWorkcardQuery({ ...where, page: 0, size: 1 }), timeout, signal,
|
|
74
|
+
}));
|
|
64
75
|
return answer.total;
|
|
65
76
|
},
|
|
66
|
-
summary: async (parents, query) => await context.entrypoint(protocols.card.summary).call({
|
|
67
|
-
query: encodeSummaryQuery({ ...query, parents }), timeout,
|
|
68
|
-
}),
|
|
77
|
+
summary: async (parents, query) => await scopedCall(signal => context.entrypoint(protocols.card.summary).call({
|
|
78
|
+
query: wireHelper.encodeSummaryQuery({ ...query, parents }), timeout, signal,
|
|
79
|
+
})),
|
|
69
80
|
},
|
|
70
81
|
specifications: {
|
|
71
82
|
current: async (parent, category) => {
|
|
72
|
-
const answer = await context.entrypoint(protocols.card.specifications).call({
|
|
73
|
-
params: { id: parent }, query: encodeSpecificationQuery({ category }), timeout,
|
|
74
|
-
});
|
|
83
|
+
const answer = await scopedCall(signal => context.entrypoint(protocols.card.specifications).call({
|
|
84
|
+
params: { id: parent }, query: wireHelper.encodeSpecificationQuery({ category }), timeout, signal,
|
|
85
|
+
}));
|
|
75
86
|
return answer.items[0] ?? null;
|
|
76
87
|
},
|
|
77
|
-
list: async (parent, query) => await context.entrypoint(protocols.card.specifications).call({
|
|
78
|
-
params: { id: parent }, query: encodeSpecificationQuery(query), timeout,
|
|
79
|
-
}),
|
|
80
|
-
get: async (id) => await context.entrypoint(protocols.spec.get).call({ params: { id }, timeout }),
|
|
88
|
+
list: async (parent, query) => await scopedCall(signal => context.entrypoint(protocols.card.specifications).call({
|
|
89
|
+
params: { id: parent }, query: wireHelper.encodeSpecificationQuery(query), timeout, signal,
|
|
90
|
+
})),
|
|
91
|
+
get: async (id) => await scopedCall(signal => context.entrypoint(protocols.spec.get).call({ params: { id }, timeout, signal })),
|
|
81
92
|
revisions: async (id, limit) => {
|
|
82
|
-
const answer = await context.entrypoint(protocols.spec.revisions).call({
|
|
83
|
-
params: { id }, query: limit != null ? { limit } : {}, timeout,
|
|
84
|
-
});
|
|
93
|
+
const answer = await scopedCall(signal => context.entrypoint(protocols.spec.revisions).call({
|
|
94
|
+
params: { id }, query: limit != null ? { limit } : {}, timeout, signal,
|
|
95
|
+
}));
|
|
85
96
|
return answer.items;
|
|
86
97
|
},
|
|
87
98
|
},
|
|
88
99
|
relationships: {
|
|
89
|
-
list: async (query) => await context.entrypoint(protocols.link.list).call({
|
|
90
|
-
query: encodeRelationshipQuery(query), timeout,
|
|
91
|
-
}),
|
|
100
|
+
list: async (query) => await scopedCall(signal => context.entrypoint(protocols.link.list).call({
|
|
101
|
+
query: wireHelper.encodeRelationshipQuery(query), timeout, signal,
|
|
102
|
+
})),
|
|
92
103
|
},
|
|
93
104
|
transitions: {
|
|
94
|
-
get: async (id) => await context.entrypoint(protocols.transition.get).call({
|
|
95
|
-
params: { transition: id }, timeout,
|
|
96
|
-
}),
|
|
105
|
+
get: async (id) => await scopedCall(signal => context.entrypoint(protocols.transition.get).call({
|
|
106
|
+
params: { transition: id }, timeout, signal,
|
|
107
|
+
})),
|
|
97
108
|
list: async (query) => {
|
|
98
109
|
// The tree reads the log through ONE card; a project-wide read has no route to travel.
|
|
99
110
|
if (query.card == null) {
|
|
100
111
|
throw new PlanningUnsupported('client:transitions-without-card');
|
|
101
112
|
}
|
|
102
|
-
return await context.entrypoint(protocols.card.transitions).call({
|
|
103
|
-
params: { id: query.card }, query: encodeTransitionQuery(query), timeout,
|
|
104
|
-
});
|
|
113
|
+
return await scopedCall(signal => context.entrypoint(protocols.card.transitions).call({
|
|
114
|
+
params: { id: query.card }, query: wireHelper.encodeTransitionQuery(query), timeout, signal,
|
|
115
|
+
}));
|
|
105
116
|
},
|
|
106
117
|
},
|
|
107
118
|
commits,
|
|
108
|
-
execute: async (exec, executeOpts) => {
|
|
119
|
+
execute: async (exec, executeOpts) => lifecycle.run(async (operation) => {
|
|
109
120
|
// Neither the actor nor a hold travels: the server decides who wrote, and the wait is ours.
|
|
110
121
|
const { actor: _actor, ...body } = exec;
|
|
111
|
-
const view = await context.entrypoint(protocols.execute).call({ body, timeout });
|
|
122
|
+
const view = planningReplyHelper.hydrate(await operation.wait(context.entrypoint(protocols.execute).call({ body, timeout, signal: operation.signal })));
|
|
112
123
|
const stores = opts.stores?.();
|
|
113
124
|
if (stores != null) {
|
|
114
|
-
await applyReceipt(
|
|
125
|
+
await planningMirrorOf(stores).applyReceipt(view, { lifecycle, operation });
|
|
115
126
|
}
|
|
116
|
-
|
|
127
|
+
operation.check();
|
|
128
|
+
const receipt = receiptOf(view, operation.key);
|
|
117
129
|
if (executeOpts?.wait === true) {
|
|
118
|
-
receipt.card = await receipt.committed({ timeout: executeOpts.timeout });
|
|
130
|
+
receipt.card = await operation.wait(receipt.committed({ timeout: executeOpts.timeout }));
|
|
119
131
|
}
|
|
120
132
|
return receipt;
|
|
121
|
-
},
|
|
122
|
-
model: async (card) => {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
133
|
+
}),
|
|
134
|
+
model: async (card) => lifecycle.run(async (operation) => {
|
|
135
|
+
if (opts.loadSchemas != null)
|
|
136
|
+
await operation.wait(opts.loadSchemas());
|
|
137
|
+
const record = typeof card === 'string' ? await operation.wait(facade.cards.get(card)) : card;
|
|
138
|
+
// A card of a project resolves its types in that project's layer; the organization's layer
|
|
139
|
+
// is the service's own bundle, and a specification's type is always code's.
|
|
140
|
+
let project = opts.definitions == null ? undefined : record.kind === WorkcardKind.Project ? record.id : undefined;
|
|
141
|
+
if (opts.definitions != null && record.kind === WorkcardKind.Card) {
|
|
142
|
+
let parent = record.parent;
|
|
143
|
+
const seen = new Set(record.id != null ? [record.id] : []);
|
|
144
|
+
while (parent != null) {
|
|
145
|
+
if (seen.has(parent))
|
|
146
|
+
throw new PlanningError('hierarchy:cycle');
|
|
147
|
+
seen.add(parent);
|
|
148
|
+
const ancestor = await operation.wait(facade.cards.get(parent));
|
|
149
|
+
if (ancestor.kind === WorkcardKind.Project) {
|
|
150
|
+
project = ancestor.id;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
parent = ancestor.parent;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (project == null) {
|
|
157
|
+
return modelOf(record, facade);
|
|
158
|
+
}
|
|
159
|
+
return modelOf(record, { ...facade, schemas: await operation.wait(opts.definitions.registry(project)) });
|
|
160
|
+
}),
|
|
127
161
|
};
|
|
162
|
+
if (opts.definitions != null) {
|
|
163
|
+
facade.definitions = opts.definitions;
|
|
164
|
+
}
|
|
128
165
|
return facade;
|
|
129
166
|
};
|
|
130
167
|
//# sourceMappingURL=facade.js.map
|
package/build/facade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"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"}
|
package/build/feed.d.ts
CHANGED
|
@@ -5,10 +5,10 @@ import type { PlanningFeed, PlanningFeedOptions } from './types.js';
|
|
|
5
5
|
* every frame — and, with `refresh`, re-seed on an interval as the authoritative backstop to a
|
|
6
6
|
* socket that can drop frames. React-free: a hook wraps it, a Node process uses it as it is.
|
|
7
7
|
*
|
|
8
|
-
* The seed is `syncCards` over `where` (default `criteriaOf(query)`), never
|
|
9
|
-
* holds every kind, and a board's list must not drop the projects beside it. A
|
|
10
|
-
* while the list was in flight is kept even when the list does not name it yet. A
|
|
11
|
-
* writes — a page cannot say what does not exist.
|
|
8
|
+
* The seed is `syncHelper.syncCards` over `where` (default `queryHelper.criteriaOf(query)`), never
|
|
9
|
+
* `replace()`: the store holds every kind, and a board's list must not drop the projects beside it. A
|
|
10
|
+
* card a frame wrote while the list was in flight is kept even when the list does not name it yet. A
|
|
11
|
+
* PAGED seed only writes — a page cannot say what does not exist.
|
|
12
12
|
*
|
|
13
13
|
* Without a socket opener the feed is a seed plus its refresh; `commits.wait` still long-polls.
|
|
14
14
|
*
|
package/build/feed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAOlE,OAAO,KAAK,EAAyB,YAAY,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAA;AAQ7G;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WACtE,CAAC,SAAQ,mBAAmB,KACpC,YAsHF,CAAA"}
|
package/build/feed.js
CHANGED
|
@@ -1,31 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { logger } from '@owlmeans/log';
|
|
2
|
+
import { PLANNING_SERVICE, queryHelper } from '@owlmeans/planning';
|
|
3
|
+
import { planningMirrorOf } from './events.js';
|
|
4
|
+
import { planningContextOf } from './helper.js';
|
|
5
|
+
import { syncHelper } from './sync.js';
|
|
6
|
+
import { recordUtils } from './utils/record.js';
|
|
7
|
+
const log = logger('client-planning');
|
|
8
|
+
const linkCriteriaOf = (query) => recordUtils.clean({ from: query.from, to: query.to, type: query.type });
|
|
6
9
|
/**
|
|
7
10
|
* Keep the state mirror current: subscribe to commits FIRST, then seed from the list, then fold
|
|
8
11
|
* every frame — and, with `refresh`, re-seed on an interval as the authoritative backstop to a
|
|
9
12
|
* socket that can drop frames. React-free: a hook wraps it, a Node process uses it as it is.
|
|
10
13
|
*
|
|
11
|
-
* The seed is `syncCards` over `where` (default `criteriaOf(query)`), never
|
|
12
|
-
* holds every kind, and a board's list must not drop the projects beside it. A
|
|
13
|
-
* while the list was in flight is kept even when the list does not name it yet. A
|
|
14
|
-
* writes — a page cannot say what does not exist.
|
|
14
|
+
* The seed is `syncHelper.syncCards` over `where` (default `queryHelper.criteriaOf(query)`), never
|
|
15
|
+
* `replace()`: the store holds every kind, and a board's list must not drop the projects beside it. A
|
|
16
|
+
* card a frame wrote while the list was in flight is kept even when the list does not name it yet. A
|
|
17
|
+
* PAGED seed only writes — a page cannot say what does not exist.
|
|
15
18
|
*
|
|
16
19
|
* Without a socket opener the feed is a seed plus its refresh; `commits.wait` still long-polls.
|
|
17
20
|
*
|
|
18
21
|
* @throws {SyntaxError} when the context has no planning client or no planning stores
|
|
19
22
|
*/
|
|
20
23
|
export const makePlanningFeed = (context, opts = {}) => {
|
|
21
|
-
const stores =
|
|
24
|
+
const stores = planningContextOf(context).stores();
|
|
22
25
|
if (stores == null) {
|
|
23
26
|
throw new SyntaxError('Planning feed needs appendPlanningStores(context)');
|
|
24
27
|
}
|
|
25
28
|
const service = context.service(PLANNING_SERVICE);
|
|
29
|
+
const { lifecycle } = service;
|
|
30
|
+
const operation = lifecycle.capture();
|
|
26
31
|
const facade = service.for(opts.scope);
|
|
32
|
+
const mirror = planningMirrorOf(stores);
|
|
27
33
|
const state = { connected: false, seeded: false, error: null };
|
|
28
34
|
const report = (patch) => {
|
|
35
|
+
if (!active())
|
|
36
|
+
return;
|
|
29
37
|
const next = { ...state, ...patch };
|
|
30
38
|
if (next.connected === state.connected && next.seeded === state.seeded && next.error === state.error) {
|
|
31
39
|
return;
|
|
@@ -34,38 +42,40 @@ export const makePlanningFeed = (context, opts = {}) => {
|
|
|
34
42
|
opts.onChange?.({ ...state });
|
|
35
43
|
};
|
|
36
44
|
const paged = opts.query?.size != null && opts.query.size > 0;
|
|
37
|
-
const where = opts.where ?? criteriaOf(opts.query);
|
|
45
|
+
const where = opts.where ?? queryHelper.criteriaOf(opts.query);
|
|
38
46
|
const touched = new Set();
|
|
39
47
|
let seeding = 0;
|
|
40
48
|
let stopped = false;
|
|
49
|
+
const active = () => !stopped && operation.active();
|
|
41
50
|
let unsubscribe = null;
|
|
42
51
|
let timer;
|
|
43
52
|
const seed = async () => {
|
|
44
|
-
if (
|
|
53
|
+
if (!active()) {
|
|
45
54
|
return;
|
|
46
55
|
}
|
|
47
56
|
seeding += 1;
|
|
48
57
|
try {
|
|
49
|
-
const answer = await facade.cards.list(paged ? opts.query : { ...opts.query, size: 0 });
|
|
50
|
-
if (
|
|
58
|
+
const answer = await operation.wait(facade.cards.list(paged ? opts.query : { ...opts.query, size: 0 }));
|
|
59
|
+
if (!active()) {
|
|
51
60
|
return;
|
|
52
61
|
}
|
|
53
62
|
if (paged) {
|
|
54
|
-
await applyCards(
|
|
63
|
+
await mirror.applyCards(answer.items, { lifecycle, operation });
|
|
55
64
|
}
|
|
56
65
|
else {
|
|
57
|
-
await syncCards(stores.cards, answer.items, where, { keep: touched });
|
|
66
|
+
await lifecycle.mutate(operation, async () => await syncHelper.syncCards(stores.cards, answer.items, where, { keep: touched }));
|
|
58
67
|
}
|
|
59
68
|
if (opts.links != null) {
|
|
60
|
-
const links = await facade.relationships.list({ ...opts.links, size: opts.links.size ?? 0 });
|
|
61
|
-
if (
|
|
62
|
-
|
|
69
|
+
const links = await operation.wait(facade.relationships.list({ ...opts.links, size: opts.links.size ?? 0 }));
|
|
70
|
+
if (active()) {
|
|
71
|
+
const criteria = linkCriteriaOf(opts.links);
|
|
72
|
+
await lifecycle.mutate(operation, async () => await syncHelper.syncLinks(stores.links, links.items, criteria));
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
report({ seeded: true, error: null });
|
|
66
76
|
}
|
|
67
77
|
catch (e) {
|
|
68
|
-
if (
|
|
78
|
+
if (active()) {
|
|
69
79
|
report({ error: e });
|
|
70
80
|
}
|
|
71
81
|
}
|
|
@@ -78,18 +88,24 @@ export const makePlanningFeed = (context, opts = {}) => {
|
|
|
78
88
|
};
|
|
79
89
|
const ready = (async () => {
|
|
80
90
|
try {
|
|
81
|
-
const
|
|
91
|
+
const subscribing = Promise.resolve(service.commits.subscribe(async (event) => {
|
|
92
|
+
if (!active())
|
|
93
|
+
return;
|
|
82
94
|
if (seeding > 0) {
|
|
83
95
|
touched.add(event.card);
|
|
84
96
|
}
|
|
85
97
|
try {
|
|
86
|
-
await applyCommitEvent(
|
|
98
|
+
await mirror.applyCommitEvent(event, facade, { lifecycle, operation });
|
|
87
99
|
}
|
|
88
100
|
catch (e) {
|
|
89
|
-
|
|
101
|
+
if (active())
|
|
102
|
+
log.warn('Planning feed apply failed', { card: event.card, error: e });
|
|
90
103
|
}
|
|
91
|
-
}, opts.filter);
|
|
92
|
-
if (
|
|
104
|
+
}, opts.filter));
|
|
105
|
+
void subscribing.then(stop => { if (!active())
|
|
106
|
+
stop(); }, () => { });
|
|
107
|
+
const stop = await operation.wait(subscribing);
|
|
108
|
+
if (!active()) {
|
|
93
109
|
stop();
|
|
94
110
|
return;
|
|
95
111
|
}
|
|
@@ -100,11 +116,12 @@ export const makePlanningFeed = (context, opts = {}) => {
|
|
|
100
116
|
report({ error: e });
|
|
101
117
|
}
|
|
102
118
|
await seed();
|
|
103
|
-
if (
|
|
119
|
+
if (active() && opts.refresh != null && opts.refresh > 0) {
|
|
104
120
|
timer = setInterval(() => { void seed(); }, opts.refresh);
|
|
105
121
|
}
|
|
106
122
|
})();
|
|
107
|
-
|
|
123
|
+
let unregister;
|
|
124
|
+
const feed = {
|
|
108
125
|
get connected() { return state.connected; },
|
|
109
126
|
get seeded() { return state.seeded; },
|
|
110
127
|
get error() { return state.error; },
|
|
@@ -112,12 +129,18 @@ export const makePlanningFeed = (context, opts = {}) => {
|
|
|
112
129
|
refresh: seed,
|
|
113
130
|
stop: async () => {
|
|
114
131
|
stopped = true;
|
|
132
|
+
operation.cancel();
|
|
133
|
+
unregister?.();
|
|
115
134
|
if (timer != null) {
|
|
116
135
|
clearInterval(timer);
|
|
117
136
|
}
|
|
118
137
|
unsubscribe?.();
|
|
119
138
|
unsubscribe = null;
|
|
139
|
+
await lifecycle.drain();
|
|
140
|
+
operation.release();
|
|
120
141
|
},
|
|
121
142
|
};
|
|
143
|
+
unregister = service.registerFeed(feed);
|
|
144
|
+
return feed;
|
|
122
145
|
};
|
|
123
146
|
//# sourceMappingURL=feed.js.map
|
package/build/feed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PlanningFacade, PlanningScope, Workcard, WorkcardModel } from '@owlmeans/planning';
|
|
2
|
+
import type { PlanningStores } from '../types.js';
|
|
3
|
+
/** The planning client of one context, without the `WithPlanningClient` mixin type. */
|
|
4
|
+
export interface PlanningContextHelper {
|
|
5
|
+
/** The facade of the context's planning client — `context.planning().for(scope)`. */
|
|
6
|
+
facade: (scope?: Partial<PlanningScope>) => PlanningFacade;
|
|
7
|
+
/**
|
|
8
|
+
* The model of a card (read by id when given one), with the schema bundle loaded first so `can()` and
|
|
9
|
+
* `available()` answer from real flows. Built by `@owlmeans/planning`'s `modelOf(record, facade)`.
|
|
10
|
+
*/
|
|
11
|
+
model: <R extends Workcard = Workcard>(card: R | string, scope?: Partial<PlanningScope>) => Promise<WorkcardModel<R>>;
|
|
12
|
+
/** The stores `appendPlanningStores` registered, or `null` on a context that has none. */
|
|
13
|
+
stores: () => PlanningStores | null;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/helper/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,uFAAuF;AACvF,MAAM,WAAW,qBAAqB;IACpC,qFAAqF;IACrF,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,cAAc,CAAA;IAC1D;;;OAGG;IACH,KAAK,EAAE,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IACrH,0FAA0F;IAC1F,MAAM,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/helper/types.ts"],"names":[],"mappings":""}
|
package/build/helper.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type BasicConfig, type BasicContext } from '@owlmeans/context';
|
|
2
2
|
import type { PlanningFacade, PlanningScope, Workcard, WorkcardModel } from '@owlmeans/planning';
|
|
3
|
-
|
|
3
|
+
import type { PlanningContextHelper } from './helper/types.js';
|
|
4
|
+
export declare const makePlanningContextHelper: (context: BasicContext<BasicConfig>) => PlanningContextHelper;
|
|
5
|
+
/** The planning helper of a context — one per context. */
|
|
6
|
+
export declare const planningContextOf: (target: BasicContext<BasicConfig>) => PlanningContextHelper;
|
|
7
|
+
/** @deprecated compat:factory-refactor — use `planningContextOf(context).facade(…)` */
|
|
4
8
|
export declare const planningOf: <C extends BasicConfig, T extends BasicContext<C>>(context: T, scope?: Partial<PlanningScope>) => PlanningFacade;
|
|
5
|
-
/**
|
|
6
|
-
* The model of a card (read by id when given one), with the schema bundle loaded first so `can()` and
|
|
7
|
-
* `available()` answer from real flows. Named apart from `@owlmeans/planning`'s `modelOf(record,
|
|
8
|
-
* facade)`, which it calls.
|
|
9
|
-
*/
|
|
9
|
+
/** @deprecated compat:factory-refactor — use `planningContextOf(context).model(…)` */
|
|
10
10
|
export declare const planningModelOf: <R extends Workcard = Workcard, C extends BasicConfig = BasicConfig, T extends BasicContext<C> = BasicContext<C>>(context: T, card: R | string, scope?: Partial<PlanningScope>) => Promise<WorkcardModel<R>>;
|
|
11
11
|
//# sourceMappingURL=helper.d.ts.map
|
package/build/helper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEnF,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAChG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAG9D,eAAO,MAAM,yBAAyB,YAAa,YAAY,CAAC,WAAW,CAAC,KAAG,qBAe9E,CAAA;AAED,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,8DAAgD,CAAA;AAE9E,uFAAuF;AACvF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WAChE,CAAC,UAAU,OAAO,CAAC,aAAa,CAAC,KACzC,cAA0D,CAAA;AAE7D,sFAAsF;AACtF,eAAO,MAAM,eAAe,GAAU,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,WAC1I,CAAC,QAAQ,CAAC,GAAG,MAAM,UAAU,OAAO,CAAC,aAAa,CAAC,KAC3D,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAA2D,CAAA"}
|
package/build/helper.js
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
|
+
import { memoHelper } from '@owlmeans/context';
|
|
1
2
|
import { PLANNING_SERVICE } from '@owlmeans/planning';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
export const makePlanningContextHelper = (context) => {
|
|
4
|
+
const facade = (scope) => context.service(PLANNING_SERVICE).for(scope);
|
|
5
|
+
const model = async (card, scope) => await facade(scope).model(card);
|
|
6
|
+
const stores = () => {
|
|
7
|
+
const ctx = context;
|
|
8
|
+
return typeof ctx.planningStores === 'function' ? ctx.planningStores() : null;
|
|
9
|
+
};
|
|
10
|
+
return { facade, model, stores };
|
|
11
|
+
};
|
|
12
|
+
/** The planning helper of a context — one per context. */
|
|
13
|
+
export const planningContextOf = memoHelper.oncePer(makePlanningContextHelper);
|
|
14
|
+
/** @deprecated compat:factory-refactor — use `planningContextOf(context).facade(…)` */
|
|
15
|
+
export const planningOf = (context, scope) => planningContextOf(context).facade(scope);
|
|
16
|
+
/** @deprecated compat:factory-refactor — use `planningContextOf(context).model(…)` */
|
|
17
|
+
export const planningModelOf = async (context, card, scope) => await planningContextOf(context).model(card, scope);
|
|
10
18
|
//# sourceMappingURL=helper.js.map
|
package/build/helper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuC,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAKrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAkC,EAAyB,EAAE;IACrG,MAAM,MAAM,GAAG,CAAC,KAA8B,EAAkB,EAAE,CAChE,OAAO,CAAC,OAAO,CAAwB,gBAAgB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAErE,MAAM,KAAK,GAAG,KAAK,EACjB,IAAgB,EAAE,KAA8B,EACrB,EAAE,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAI,IAAI,CAAC,CAAA;IAElE,MAAM,MAAM,GAAG,GAA0B,EAAE;QACzC,MAAM,GAAG,GAAG,OAAsC,CAAA;QAElD,OAAO,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/E,CAAC,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAClC,CAAC,CAAA;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;AAE9E,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAU,EAAE,KAA8B,EAC1B,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAE7D,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,OAAU,EAAE,IAAgB,EAAE,KAA8B,EACjC,EAAE,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAI,IAAI,EAAE,KAAK,CAAC,CAAA"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
export type * from './types.js';
|
|
2
|
+
export type * from './events/types.js';
|
|
3
|
+
export type * from './helper/types.js';
|
|
4
|
+
export type * from './sync/types.js';
|
|
5
|
+
export type * from './lifecycle/types.js';
|
|
6
|
+
export type * from './validation/types.js';
|
|
2
7
|
export * from './consts.js';
|
|
3
8
|
export * from './client.js';
|
|
4
9
|
export * from './facade.js';
|
|
10
|
+
export * from './definitions.js';
|
|
5
11
|
export * from './commits.js';
|
|
6
12
|
export * from './stores.js';
|
|
13
|
+
export * from './sync.js';
|
|
7
14
|
export * from './events.js';
|
|
8
15
|
export * from './feed.js';
|
|
9
16
|
export * from './helper.js';
|
|
17
|
+
export * from './resources.js';
|
|
18
|
+
export * from './resource-feed.js';
|
|
19
|
+
export * from './lifecycle.js';
|
|
20
|
+
export * from './validation.js';
|
|
10
21
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAC/B,mBAAmB,mBAAmB,CAAA;AACtC,mBAAmB,mBAAmB,CAAA;AACtC,mBAAmB,iBAAiB,CAAA;AACpC,mBAAmB,sBAAsB,CAAA;AACzC,mBAAmB,uBAAuB,CAAA;AAE1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAE3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA"}
|
package/build/index.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
export * from './consts.js';
|
|
2
2
|
export * from './client.js';
|
|
3
3
|
export * from './facade.js';
|
|
4
|
+
export * from './definitions.js';
|
|
4
5
|
export * from './commits.js';
|
|
5
6
|
export * from './stores.js';
|
|
7
|
+
export * from './sync.js';
|
|
6
8
|
export * from './events.js';
|
|
7
9
|
export * from './feed.js';
|
|
8
10
|
export * from './helper.js';
|
|
11
|
+
export * from './resources.js';
|
|
12
|
+
export * from './resource-feed.js';
|
|
13
|
+
export * from './lifecycle.js';
|
|
14
|
+
export * from './validation.js';
|
|
9
15
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAE3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA"}
|