@owlmeans/client-planning 0.1.18-rc.21 → 0.1.18-rc.22

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.
Files changed (87) hide show
  1. package/README.md +13 -8
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/client-planning/SKILL.md +24 -23
  4. package/build/client.js +2 -2
  5. package/build/client.js.map +1 -1
  6. package/build/commits.js +4 -4
  7. package/build/commits.js.map +1 -1
  8. package/build/consts.d.ts +12 -0
  9. package/build/consts.d.ts.map +1 -1
  10. package/build/consts.js +15 -0
  11. package/build/consts.js.map +1 -1
  12. package/build/definitions.js +2 -2
  13. package/build/definitions.js.map +1 -1
  14. package/build/events/types.d.ts +29 -0
  15. package/build/events/types.d.ts.map +1 -0
  16. package/build/events/types.js.map +1 -0
  17. package/build/events.d.ts +9 -20
  18. package/build/events.d.ts.map +1 -1
  19. package/build/events.js +97 -103
  20. package/build/events.js.map +1 -1
  21. package/build/facade.d.ts.map +1 -1
  22. package/build/facade.js +10 -10
  23. package/build/facade.js.map +1 -1
  24. package/build/feed.d.ts +4 -4
  25. package/build/feed.d.ts.map +1 -1
  26. package/build/feed.js +17 -15
  27. package/build/feed.js.map +1 -1
  28. package/build/helper/types.d.ts +15 -0
  29. package/build/helper/types.d.ts.map +1 -0
  30. package/build/helper/types.js +2 -0
  31. package/build/helper/types.js.map +1 -0
  32. package/build/helper.d.ts +7 -7
  33. package/build/helper.d.ts.map +1 -1
  34. package/build/helper.js +16 -8
  35. package/build/helper.js.map +1 -1
  36. package/build/index.d.ts +4 -1
  37. package/build/index.d.ts.map +1 -1
  38. package/build/index.js +1 -1
  39. package/build/index.js.map +1 -1
  40. package/build/stores.d.ts +3 -10
  41. package/build/stores.d.ts.map +1 -1
  42. package/build/stores.js +9 -36
  43. package/build/stores.js.map +1 -1
  44. package/build/sync/types.d.ts +18 -0
  45. package/build/sync/types.d.ts.map +1 -0
  46. package/build/sync/types.js +2 -0
  47. package/build/{utils → sync}/types.js.map +1 -1
  48. package/build/sync.d.ts +4 -0
  49. package/build/sync.d.ts.map +1 -0
  50. package/build/sync.js +26 -0
  51. package/build/sync.js.map +1 -0
  52. package/build/utils/record/types.d.ts +28 -0
  53. package/build/utils/record/types.d.ts.map +1 -0
  54. package/build/utils/record/types.js +2 -0
  55. package/build/utils/record/types.js.map +1 -0
  56. package/build/utils/record.d.ts +3 -43
  57. package/build/utils/record.d.ts.map +1 -1
  58. package/build/utils/record.js +64 -72
  59. package/build/utils/record.js.map +1 -1
  60. package/package.json +15 -15
  61. package/src/client.ts +2 -2
  62. package/src/commits.ts +4 -4
  63. package/src/consts.ts +23 -0
  64. package/src/definitions.ts +2 -2
  65. package/src/events/types.ts +29 -0
  66. package/src/events.ts +105 -103
  67. package/src/facade.ts +11 -12
  68. package/src/feed.ts +17 -15
  69. package/src/helper/types.ts +15 -0
  70. package/src/helper.ts +27 -10
  71. package/src/index.ts +4 -1
  72. package/src/stores.ts +9 -39
  73. package/src/sync/types.ts +18 -0
  74. package/src/sync.ts +40 -0
  75. package/src/utils/record/types.ts +27 -0
  76. package/src/utils/record.ts +68 -75
  77. package/tests/events.spec.ts +12 -8
  78. package/tests/stores.spec.ts +13 -11
  79. package/build/utils/types.d.ts +0 -3
  80. package/build/utils/types.d.ts.map +0 -1
  81. package/build/utils.d.ts +0 -13
  82. package/build/utils.d.ts.map +0 -1
  83. package/build/utils.js +0 -15
  84. package/build/utils.js.map +0 -1
  85. package/src/utils/types.ts +0 -3
  86. package/src/utils.ts +0 -20
  87. /package/build/{utils → events}/types.js +0 -0
package/build/events.js CHANGED
@@ -1,109 +1,103 @@
1
+ import { memoHelper } from '@owlmeans/context';
1
2
  import { CommitState, TransitionAction, WorkcardKind } from '@owlmeans/planning';
2
- import { syncLinks } from './stores.js';
3
- import { recordHelper } from './utils/record.js';
4
- /**
5
- * Fold one commit frame into the mirror.
6
- *
7
- * - An OLDER `seq` never overwrites a newer record — frames and list answers race.
8
- * - A committed `delete` REMOVES the row and every link touching it (and, for a project, the rows
9
- * under it — the server purged them in the same fold).
10
- * - A frame for an id the store never saw still writes a row: a card created in another tab
11
- * appears here without waiting for the next list.
12
- * - A `failed` commit leaves the card alone; the reason is recorded in the commit store.
13
- *
14
- * A frame from a cross-process bus carries ids only. When `record` is absent the card is re-read
15
- * through `facade`; without one there is nothing to write but the commit itself.
16
- */
17
- export const applyCommitEvent = async (stores, event, facade) => {
18
- const known = await stores.cards.load(event.card);
19
- await recordHelper.putCommit(stores.commits, {
20
- id: event.transition,
21
- card: event.card,
22
- entityId: event.entityId,
23
- project: event.project,
24
- kind: event.kind,
25
- type: event.type,
26
- seq: event.seq,
27
- action: event.action,
28
- state: event.state,
29
- at: event.at,
30
- error: event.error,
31
- });
32
- if (event.state === CommitState.Failed) {
33
- return;
34
- }
35
- if (event.state === CommitState.Pending) {
36
- if (known != null && (known.head ?? known.seq) < event.seq) {
37
- await stores.cards.save({ ...known, head: event.seq });
3
+ import { syncHelper } from './sync.js';
4
+ import { recordUtils } from './utils/record.js';
5
+ export const makePlanningMirror = (stores) => {
6
+ const applyCommitEvent = async (event, facade) => {
7
+ const known = await stores.cards.load(event.card);
8
+ await recordUtils.putCommit(stores.commits, {
9
+ id: event.transition,
10
+ card: event.card,
11
+ entityId: event.entityId,
12
+ project: event.project,
13
+ kind: event.kind,
14
+ type: event.type,
15
+ seq: event.seq,
16
+ action: event.action,
17
+ state: event.state,
18
+ at: event.at,
19
+ error: event.error,
20
+ });
21
+ if (event.state === CommitState.Failed) {
22
+ return;
23
+ }
24
+ if (event.state === CommitState.Pending) {
25
+ if (known != null && (known.head ?? known.seq) < event.seq) {
26
+ await stores.cards.save({ ...known, head: event.seq });
27
+ }
28
+ return;
29
+ }
30
+ if (known != null && known.seq > event.seq) {
31
+ return;
32
+ }
33
+ if (event.action === TransitionAction.Delete) {
34
+ await recordUtils.dropCard(stores, event.card, event.kind === WorkcardKind.Project);
35
+ return;
36
+ }
37
+ const record = event.record !== undefined
38
+ ? event.record
39
+ : facade != null ? await facade.cards.load(event.card) : undefined;
40
+ if (record === null) {
41
+ // Committed, and gone by the time it was read: a later delete won the race.
42
+ await recordUtils.dropCard(stores, event.card, event.kind === WorkcardKind.Project);
43
+ }
44
+ else if (record !== undefined) {
45
+ await recordUtils.putCard(stores.cards, record);
46
+ }
47
+ if (facade != null && (event.action === TransitionAction.Link || event.action === TransitionAction.Unlink)) {
48
+ const links = await facade.relationships.list({ from: event.card, size: 0 });
49
+ await syncHelper.syncLinks(stores.links, links.items, { from: event.card });
38
50
  }
39
- return;
40
- }
41
- if (known != null && known.seq > event.seq) {
42
- return;
43
- }
44
- if (event.action === TransitionAction.Delete) {
45
- await recordHelper.dropCard(stores, event.card, event.kind === WorkcardKind.Project);
46
- return;
47
- }
48
- const record = event.record !== undefined
49
- ? event.record
50
- : facade != null ? await facade.cards.load(event.card) : undefined;
51
- if (record === null) {
52
- // Committed, and gone by the time it was read: a later delete won the race.
53
- await recordHelper.dropCard(stores, event.card, event.kind === WorkcardKind.Project);
54
- }
55
- else if (record !== undefined) {
56
- await recordHelper.putCard(stores.cards, record);
57
- }
58
- if (facade != null && (event.action === TransitionAction.Link || event.action === TransitionAction.Unlink)) {
59
- const links = await facade.relationships.list({ from: event.card, size: 0 });
60
- await syncLinks(stores.links, links.items, { from: event.card });
61
- }
51
+ };
52
+ const applyReceipt = async (receipt) => {
53
+ const { transition } = receipt;
54
+ if (transition.id != null) {
55
+ await recordUtils.putCommit(stores.commits, {
56
+ id: transition.id,
57
+ card: transition.card,
58
+ entityId: transition.entityId,
59
+ project: transition.project,
60
+ kind: transition.kind,
61
+ type: transition.type,
62
+ seq: transition.seq,
63
+ action: transition.action,
64
+ state: transition.commit.state,
65
+ at: transition.commit.at,
66
+ error: transition.commit.error,
67
+ });
68
+ }
69
+ if (transition.commit.state === CommitState.Failed) {
70
+ return;
71
+ }
72
+ if (transition.commit.state === CommitState.Committed && transition.action === TransitionAction.Delete) {
73
+ await recordUtils.dropCard(stores, transition.card, transition.kind === WorkcardKind.Project);
74
+ return;
75
+ }
76
+ if (receipt.card != null) {
77
+ await recordUtils.putCard(stores.cards, receipt.card);
78
+ return;
79
+ }
80
+ const known = await stores.cards.load(transition.card);
81
+ if (known != null && (known.head ?? known.seq) < transition.seq) {
82
+ await stores.cards.save({ ...known, head: transition.seq });
83
+ }
84
+ };
85
+ const applyCards = async (cards) => {
86
+ for (const card of cards) {
87
+ await recordUtils.putCard(stores.cards, card);
88
+ }
89
+ };
90
+ return { applyCommitEvent, applyReceipt, applyCards };
62
91
  };
92
+ /** The mirror of one set of stores — one per stores object. */
93
+ export const planningMirrorOf = memoHelper.oncePer(makePlanningMirror);
94
+ /** @deprecated compat:factory-refactor — use `planningMirrorOf(stores).applyCommitEvent(…)` */
95
+ export const applyCommitEvent = async (stores, event, facade) => await planningMirrorOf(stores).applyCommitEvent(event, facade);
96
+ /** @deprecated compat:factory-refactor — use `planningMirrorOf(stores).applyReceipt(…)` */
97
+ export const applyReceipt = async (stores, receipt) => await planningMirrorOf(stores).applyReceipt(receipt);
63
98
  /**
64
- * Mark a receipt in the mirror the moment the server answers it.
65
- *
66
- * A pending transition raises the card's `head` to its `seq`, so `head > seq` — the model's
67
- * `pending()` — is true before any frame arrives. A receipt that already carries the committed
68
- * card writes it; a committed delete drops the row.
99
+ * @deprecated compat:factory-refactor — use `planningMirrorOf(stores).applyCards(…)`. Only `cards` is
100
+ * read, so a narrower stores object still works here.
69
101
  */
70
- export const applyReceipt = async (stores, receipt) => {
71
- const { transition } = receipt;
72
- if (transition.id != null) {
73
- await recordHelper.putCommit(stores.commits, {
74
- id: transition.id,
75
- card: transition.card,
76
- entityId: transition.entityId,
77
- project: transition.project,
78
- kind: transition.kind,
79
- type: transition.type,
80
- seq: transition.seq,
81
- action: transition.action,
82
- state: transition.commit.state,
83
- at: transition.commit.at,
84
- error: transition.commit.error,
85
- });
86
- }
87
- if (transition.commit.state === CommitState.Failed) {
88
- return;
89
- }
90
- if (transition.commit.state === CommitState.Committed && transition.action === TransitionAction.Delete) {
91
- await recordHelper.dropCard(stores, transition.card, transition.kind === WorkcardKind.Project);
92
- return;
93
- }
94
- if (receipt.card != null) {
95
- await recordHelper.putCard(stores.cards, receipt.card);
96
- return;
97
- }
98
- const known = await stores.cards.load(transition.card);
99
- if (known != null && (known.head ?? known.seq) < transition.seq) {
100
- await stores.cards.save({ ...known, head: transition.seq });
101
- }
102
- };
103
- /** Write cards the caller read on its own, under the same newer-fold-wins rule as a commit. */
104
- export const applyCards = async (stores, cards) => {
105
- for (const card of cards) {
106
- await recordHelper.putCard(stores.cards, card);
107
- }
108
- };
102
+ export const applyCards = async (stores, cards) => await planningMirrorOf(stores).applyCards(cards);
109
103
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAMlE,OAAO,KAAK,EACV,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAEjD,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WACtE,CAAC,aAAa,iBAAiB,SAAS,OAAO,CAAC,aAAa,CAAC,QAAQ,mBAAmB,KACjG,cAsJF,CAAA"}
1
+ {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKlE,OAAO,KAAK,EACV,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAEjD,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WACtE,CAAC,aAAa,iBAAiB,SAAS,OAAO,CAAC,aAAa,CAAC,QAAQ,mBAAmB,KACjG,cAsJF,CAAA"}
package/build/facade.js CHANGED
@@ -1,5 +1,5 @@
1
- import { CommitFailed, CommitState, DEFAULT_COMMIT_TIMEOUT, PlanningError, PlanningUnsupported, WorkcardKind, WorkcardNotFound, encodeRelationshipQuery, encodeSpecificationQuery, encodeSummaryQuery, encodeTransitionQuery, encodeWorkcardQuery, modelOf, } from '@owlmeans/planning';
2
- import { applyReceipt } from './events.js';
1
+ import { CommitFailed, CommitState, DEFAULT_COMMIT_TIMEOUT, modelOf, PlanningError, PlanningUnsupported, wireHelper, WorkcardKind, WorkcardNotFound, } from '@owlmeans/planning';
2
+ import { planningMirrorOf } from './events.js';
3
3
  /**
4
4
  * A {@link PlanningFacade} over the remote protocol tree — every method is one entrypoint call.
5
5
  *
@@ -54,28 +54,28 @@ export const makeRemoteFacade = (context, protocols, scope, opts) => {
54
54
  }
55
55
  },
56
56
  list: async (query) => await context.entrypoint(protocols.card.list).call({
57
- query: encodeWorkcardQuery(query), timeout,
57
+ query: wireHelper.encodeWorkcardQuery(query), timeout,
58
58
  }),
59
59
  count: async (query) => {
60
60
  const { page: _page, size: _size, sort: _sort, ...where } = query ?? {};
61
61
  const answer = await context.entrypoint(protocols.card.list).call({
62
- query: encodeWorkcardQuery({ ...where, page: 0, size: 1 }), timeout,
62
+ query: wireHelper.encodeWorkcardQuery({ ...where, page: 0, size: 1 }), timeout,
63
63
  });
64
64
  return answer.total;
65
65
  },
66
66
  summary: async (parents, query) => await context.entrypoint(protocols.card.summary).call({
67
- query: encodeSummaryQuery({ ...query, parents }), timeout,
67
+ query: wireHelper.encodeSummaryQuery({ ...query, parents }), timeout,
68
68
  }),
69
69
  },
70
70
  specifications: {
71
71
  current: async (parent, category) => {
72
72
  const answer = await context.entrypoint(protocols.card.specifications).call({
73
- params: { id: parent }, query: encodeSpecificationQuery({ category }), timeout,
73
+ params: { id: parent }, query: wireHelper.encodeSpecificationQuery({ category }), timeout,
74
74
  });
75
75
  return answer.items[0] ?? null;
76
76
  },
77
77
  list: async (parent, query) => await context.entrypoint(protocols.card.specifications).call({
78
- params: { id: parent }, query: encodeSpecificationQuery(query), timeout,
78
+ params: { id: parent }, query: wireHelper.encodeSpecificationQuery(query), timeout,
79
79
  }),
80
80
  get: async (id) => await context.entrypoint(protocols.spec.get).call({ params: { id }, timeout }),
81
81
  revisions: async (id, limit) => {
@@ -87,7 +87,7 @@ export const makeRemoteFacade = (context, protocols, scope, opts) => {
87
87
  },
88
88
  relationships: {
89
89
  list: async (query) => await context.entrypoint(protocols.link.list).call({
90
- query: encodeRelationshipQuery(query), timeout,
90
+ query: wireHelper.encodeRelationshipQuery(query), timeout,
91
91
  }),
92
92
  },
93
93
  transitions: {
@@ -100,7 +100,7 @@ export const makeRemoteFacade = (context, protocols, scope, opts) => {
100
100
  throw new PlanningUnsupported('client:transitions-without-card');
101
101
  }
102
102
  return await context.entrypoint(protocols.card.transitions).call({
103
- params: { id: query.card }, query: encodeTransitionQuery(query), timeout,
103
+ params: { id: query.card }, query: wireHelper.encodeTransitionQuery(query), timeout,
104
104
  });
105
105
  },
106
106
  },
@@ -111,7 +111,7 @@ export const makeRemoteFacade = (context, protocols, scope, opts) => {
111
111
  const view = await context.entrypoint(protocols.execute).call({ body, timeout });
112
112
  const stores = opts.stores?.();
113
113
  if (stores != null) {
114
- await applyReceipt(stores, view);
114
+ await planningMirrorOf(stores).applyReceipt(view);
115
115
  }
116
116
  const receipt = receiptOf(view);
117
117
  if (executeOpts?.wait === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"facade.js","sourceRoot":"","sources":["../src/facade.ts"],"names":[],"mappings":"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"}
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 `replace()`: the store
9
- * holds every kind, and a board's list must not drop the projects beside it. A card a frame wrote
10
- * while the list was in flight is kept even when the list does not name it yet. A PAGED seed only
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
  *
@@ -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;AAMlE,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,YAsGF,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,YAuGF,CAAA"}
package/build/feed.js CHANGED
@@ -1,31 +1,33 @@
1
1
  import { logger } from '@owlmeans/log';
2
- import { criteriaOf, PLANNING_SERVICE } from '@owlmeans/planning';
3
- import { applyCards, applyCommitEvent } from './events.js';
4
- import { planningStoresOf, syncCards, syncLinks } from './stores.js';
5
- import { recordHelper } from './utils/record.js';
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';
6
7
  const log = logger('client-planning');
7
- const linkCriteriaOf = (query) => recordHelper.clean({ from: query.from, to: query.to, type: query.type });
8
+ const linkCriteriaOf = (query) => recordUtils.clean({ from: query.from, to: query.to, type: query.type });
8
9
  /**
9
10
  * Keep the state mirror current: subscribe to commits FIRST, then seed from the list, then fold
10
11
  * every frame — and, with `refresh`, re-seed on an interval as the authoritative backstop to a
11
12
  * socket that can drop frames. React-free: a hook wraps it, a Node process uses it as it is.
12
13
  *
13
- * The seed is `syncCards` over `where` (default `criteriaOf(query)`), never `replace()`: the store
14
- * holds every kind, and a board's list must not drop the projects beside it. A card a frame wrote
15
- * while the list was in flight is kept even when the list does not name it yet. A PAGED seed only
16
- * 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.
17
18
  *
18
19
  * Without a socket opener the feed is a seed plus its refresh; `commits.wait` still long-polls.
19
20
  *
20
21
  * @throws {SyntaxError} when the context has no planning client or no planning stores
21
22
  */
22
23
  export const makePlanningFeed = (context, opts = {}) => {
23
- const stores = planningStoresOf(context);
24
+ const stores = planningContextOf(context).stores();
24
25
  if (stores == null) {
25
26
  throw new SyntaxError('Planning feed needs appendPlanningStores(context)');
26
27
  }
27
28
  const service = context.service(PLANNING_SERVICE);
28
29
  const facade = service.for(opts.scope);
30
+ const mirror = planningMirrorOf(stores);
29
31
  const state = { connected: false, seeded: false, error: null };
30
32
  const report = (patch) => {
31
33
  const next = { ...state, ...patch };
@@ -36,7 +38,7 @@ export const makePlanningFeed = (context, opts = {}) => {
36
38
  opts.onChange?.({ ...state });
37
39
  };
38
40
  const paged = opts.query?.size != null && opts.query.size > 0;
39
- const where = opts.where ?? criteriaOf(opts.query);
41
+ const where = opts.where ?? queryHelper.criteriaOf(opts.query);
40
42
  const touched = new Set();
41
43
  let seeding = 0;
42
44
  let stopped = false;
@@ -53,15 +55,15 @@ export const makePlanningFeed = (context, opts = {}) => {
53
55
  return;
54
56
  }
55
57
  if (paged) {
56
- await applyCards(stores, answer.items);
58
+ await mirror.applyCards(answer.items);
57
59
  }
58
60
  else {
59
- await syncCards(stores.cards, answer.items, where, { keep: touched });
61
+ await syncHelper.syncCards(stores.cards, answer.items, where, { keep: touched });
60
62
  }
61
63
  if (opts.links != null) {
62
64
  const links = await facade.relationships.list({ ...opts.links, size: opts.links.size ?? 0 });
63
65
  if (!stopped) {
64
- await syncLinks(stores.links, links.items, linkCriteriaOf(opts.links));
66
+ await syncHelper.syncLinks(stores.links, links.items, linkCriteriaOf(opts.links));
65
67
  }
66
68
  }
67
69
  report({ seeded: true, error: null });
@@ -85,7 +87,7 @@ export const makePlanningFeed = (context, opts = {}) => {
85
87
  touched.add(event.card);
86
88
  }
87
89
  try {
88
- await applyCommitEvent(stores, event, facade);
90
+ await mirror.applyCommitEvent(event, facade);
89
91
  }
90
92
  catch (e) {
91
93
  log.warn('Planning feed apply failed', { card: event.card, error: e });
package/build/feed.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"feed.js","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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 { BasicConfig, BasicContext } from '@owlmeans/context';
1
+ import { type BasicConfig, type BasicContext } from '@owlmeans/context';
2
2
  import type { PlanningFacade, PlanningScope, Workcard, WorkcardModel } from '@owlmeans/planning';
3
- /** The facade of the context's planning client — `context.planning().for(scope)` without the mixin type. */
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
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGhG,4GAA4G;AAC5G,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WAChE,CAAC,UAAU,OAAO,CAAC,aAAa,CAAC,KACzC,cAAqF,CAAA;AAExF;;;;GAIG;AACH,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,CAA0D,CAAA"}
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
- /** The facade of the context's planning client — `context.planning().for(scope)` without the mixin type. */
3
- export const planningOf = (context, scope) => context.service(PLANNING_SERVICE).for(scope);
4
- /**
5
- * The model of a card (read by id when given one), with the schema bundle loaded first so `can()` and
6
- * `available()` answer from real flows. Named apart from `@owlmeans/planning`'s `modelOf(record,
7
- * facade)`, which it calls.
8
- */
9
- export const planningModelOf = async (context, card, scope) => await planningOf(context, scope).model(card);
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
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAIrD,4GAA4G;AAC5G,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAU,EAAE,KAA8B,EAC1B,EAAE,CAAC,OAAO,CAAC,OAAO,CAAwB,gBAAgB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAExF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,OAAU,EAAE,IAAgB,EAAE,KAA8B,EACjC,EAAE,CAAC,MAAM,UAAU,CAAO,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,CAAI,IAAI,CAAC,CAAA"}
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,11 +1,14 @@
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';
2
5
  export * from './consts.js';
3
- export * from './utils.js';
4
6
  export * from './client.js';
5
7
  export * from './facade.js';
6
8
  export * from './definitions.js';
7
9
  export * from './commits.js';
8
10
  export * from './stores.js';
11
+ export * from './sync.js';
9
12
  export * from './events.js';
10
13
  export * from './feed.js';
11
14
  export * from './helper.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAE/B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,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;AAEpC,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"}
package/build/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  export * from './consts.js';
2
- export * from './utils.js';
3
2
  export * from './client.js';
4
3
  export * from './facade.js';
5
4
  export * from './definitions.js';
6
5
  export * from './commits.js';
7
6
  export * from './stores.js';
7
+ export * from './sync.js';
8
8
  export * from './events.js';
9
9
  export * from './feed.js';
10
10
  export * from './helper.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,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"}