@owlmeans/client-planning 0.1.18-rc.8 → 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.
Files changed (146) hide show
  1. package/README.md +94 -11
  2. package/agent-meta/manifest.json +62 -4
  3. package/agent-meta/skills/client-planning/SKILL.md +60 -78
  4. package/agent-meta/skills/client-planning/parts/aux-mirrors.md +61 -0
  5. package/agent-meta/skills/client-planning/parts/mirror.md +67 -0
  6. package/agent-meta/skills/client-planning/parts/validation.md +60 -0
  7. package/build/client.d.ts +1 -1
  8. package/build/client.d.ts.map +1 -1
  9. package/build/client.js +66 -14
  10. package/build/client.js.map +1 -1
  11. package/build/commits.d.ts +2 -13
  12. package/build/commits.d.ts.map +1 -1
  13. package/build/commits.js +190 -132
  14. package/build/commits.js.map +1 -1
  15. package/build/consts.d.ts +4 -0
  16. package/build/consts.d.ts.map +1 -1
  17. package/build/consts.js +10 -4
  18. package/build/consts.js.map +1 -1
  19. package/build/definitions.d.ts +13 -0
  20. package/build/definitions.d.ts.map +1 -0
  21. package/build/definitions.js +70 -0
  22. package/build/definitions.js.map +1 -0
  23. package/build/events/types.d.ts +34 -0
  24. package/build/events/types.d.ts.map +1 -0
  25. package/build/events/types.js +2 -0
  26. package/build/events/types.js.map +1 -0
  27. package/build/events.d.ts +10 -21
  28. package/build/events.d.ts.map +1 -1
  29. package/build/events.js +104 -102
  30. package/build/events.js.map +1 -1
  31. package/build/facade.d.ts.map +1 -1
  32. package/build/facade.js +86 -49
  33. package/build/facade.js.map +1 -1
  34. package/build/feed.d.ts +4 -4
  35. package/build/feed.d.ts.map +1 -1
  36. package/build/feed.js +50 -27
  37. package/build/feed.js.map +1 -1
  38. package/build/helper/types.d.ts +15 -0
  39. package/build/helper/types.d.ts.map +1 -0
  40. package/build/helper/types.js +2 -0
  41. package/build/helper/types.js.map +1 -0
  42. package/build/helper.d.ts +7 -7
  43. package/build/helper.d.ts.map +1 -1
  44. package/build/helper.js +16 -8
  45. package/build/helper.js.map +1 -1
  46. package/build/index.d.ts +11 -0
  47. package/build/index.d.ts.map +1 -1
  48. package/build/index.js +6 -0
  49. package/build/index.js.map +1 -1
  50. package/build/lifecycle/types.d.ts +27 -0
  51. package/build/lifecycle/types.d.ts.map +1 -0
  52. package/build/lifecycle/types.js +2 -0
  53. package/build/lifecycle/types.js.map +1 -0
  54. package/build/lifecycle.d.ts +3 -0
  55. package/build/lifecycle.d.ts.map +1 -0
  56. package/build/lifecycle.js +157 -0
  57. package/build/lifecycle.js.map +1 -0
  58. package/build/resource-feed.d.ts +5 -0
  59. package/build/resource-feed.d.ts.map +1 -0
  60. package/build/resource-feed.js +97 -0
  61. package/build/resource-feed.js.map +1 -0
  62. package/build/resources.d.ts +6 -0
  63. package/build/resources.d.ts.map +1 -0
  64. package/build/resources.js +93 -0
  65. package/build/resources.js.map +1 -0
  66. package/build/stores.d.ts +4 -11
  67. package/build/stores.d.ts.map +1 -1
  68. package/build/stores.js +11 -35
  69. package/build/stores.js.map +1 -1
  70. package/build/sync/types.d.ts +18 -0
  71. package/build/sync/types.d.ts.map +1 -0
  72. package/build/sync/types.js +2 -0
  73. package/build/sync/types.js.map +1 -0
  74. package/build/sync.d.ts +4 -0
  75. package/build/sync.d.ts.map +1 -0
  76. package/build/sync.js +26 -0
  77. package/build/sync.js.map +1 -0
  78. package/build/types.d.ts +48 -3
  79. package/build/types.d.ts.map +1 -1
  80. package/build/types.local.d.ts +13 -0
  81. package/build/types.local.d.ts.map +1 -0
  82. package/build/types.local.js +2 -0
  83. package/build/types.local.js.map +1 -0
  84. package/build/utils/record/types.d.ts +28 -0
  85. package/build/utils/record/types.d.ts.map +1 -0
  86. package/build/utils/record/types.js +2 -0
  87. package/build/utils/record/types.js.map +1 -0
  88. package/build/utils/record.d.ts +3 -24
  89. package/build/utils/record.d.ts.map +1 -1
  90. package/build/utils/record.js +64 -70
  91. package/build/utils/record.js.map +1 -1
  92. package/build/validation/consts.d.ts +23 -0
  93. package/build/validation/consts.d.ts.map +1 -0
  94. package/build/validation/consts.js +289 -0
  95. package/build/validation/consts.js.map +1 -0
  96. package/build/validation/types.d.ts +17 -0
  97. package/build/validation/types.d.ts.map +1 -0
  98. package/build/validation/types.js +2 -0
  99. package/build/validation/types.js.map +1 -0
  100. package/build/validation.d.ts +10 -0
  101. package/build/validation.d.ts.map +1 -0
  102. package/build/validation.js +171 -0
  103. package/build/validation.js.map +1 -0
  104. package/package.json +20 -18
  105. package/src/client.ts +58 -15
  106. package/src/commits.ts +152 -184
  107. package/src/consts.ts +12 -4
  108. package/src/definitions.ts +93 -0
  109. package/src/events/types.ts +35 -0
  110. package/src/events.ts +118 -108
  111. package/src/facade.ts +87 -55
  112. package/src/feed.ts +47 -28
  113. package/src/helper/types.ts +15 -0
  114. package/src/helper.ts +27 -10
  115. package/src/index.ts +12 -0
  116. package/src/lifecycle/types.ts +28 -0
  117. package/src/lifecycle.ts +123 -0
  118. package/src/resource-feed.ts +79 -0
  119. package/src/resources.ts +84 -0
  120. package/src/stores.ts +11 -40
  121. package/src/sync/types.ts +18 -0
  122. package/src/sync.ts +40 -0
  123. package/src/types.local.ts +14 -0
  124. package/src/types.ts +53 -5
  125. package/src/utils/record/types.ts +27 -0
  126. package/src/utils/record.ts +68 -71
  127. package/src/validation/consts.ts +289 -0
  128. package/src/validation/types.ts +18 -0
  129. package/src/validation.ts +140 -0
  130. package/tests/app.spec.ts +72 -0
  131. package/tests/context.ts +46 -15
  132. package/tests/csp.spec.ts +119 -0
  133. package/tests/definitions.spec.ts +74 -0
  134. package/tests/draft7.spec.ts +13 -0
  135. package/tests/events.spec.ts +13 -9
  136. package/tests/facade.spec.ts +2 -1
  137. package/tests/lifecycle/context.ts +29 -0
  138. package/tests/lifecycle-close.spec.ts +103 -0
  139. package/tests/lifecycle-commits.spec.ts +92 -0
  140. package/tests/lifecycle-definitions.spec.ts +28 -0
  141. package/tests/lifecycle-feeds.spec.ts +92 -0
  142. package/tests/lifecycle-sockets.spec.ts +76 -0
  143. package/tests/replies.spec.ts +81 -0
  144. package/tests/resources.spec.ts +116 -0
  145. package/tests/stores.spec.ts +13 -11
  146. 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, 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, 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 receiptOf = (view) => {
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 { state, error } = view.transition.commit;
30
- if (state === CommitState.Failed) {
31
- throw new CommitFailed(error ?? id);
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
- if (state === CommitState.Committed && view.card !== undefined) {
34
- return view.card;
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(stores, view);
125
+ await planningMirrorOf(stores).applyReceipt(view, { lifecycle, operation });
115
126
  }
116
- const receipt = receiptOf(view);
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
- await opts.loadSchemas?.();
124
- const record = typeof card === 'string' ? await facade.cards.get(card) : card;
125
- return modelOf(record, facade);
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
@@ -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;AAM7G;;;;;;;;;;;;;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,YAsHF,CAAA"}
package/build/feed.js CHANGED
@@ -1,31 +1,39 @@
1
- import { criteriaOf, PLANNING_SERVICE } from '@owlmeans/planning';
2
- import { applyCards, applyCommitEvent } from './events.js';
3
- import { planningStoresOf, syncCards, syncLinks } from './stores.js';
4
- import { clean } from './utils/record.js';
5
- const linkCriteriaOf = (query) => clean({ from: query.from, to: query.to, type: query.type });
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 `replace()`: the store
12
- * holds every kind, and a board's list must not drop the projects beside it. A card a frame wrote
13
- * while the list was in flight is kept even when the list does not name it yet. A PAGED seed only
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 = planningStoresOf(context);
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 (stopped) {
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 (stopped) {
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(stores, answer.items);
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 (!stopped) {
62
- await syncLinks(stores.links, links.items, linkCriteriaOf(opts.links));
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 (!stopped) {
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 stop = await service.commits.subscribe(async (event) => {
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(stores, event, facade);
98
+ await mirror.applyCommitEvent(event, facade, { lifecycle, operation });
87
99
  }
88
100
  catch (e) {
89
- console.error('Planning feed apply error:', e);
101
+ if (active())
102
+ log.warn('Planning feed apply failed', { card: event.card, error: e });
90
103
  }
91
- }, opts.filter);
92
- if (stopped) {
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 (!stopped && opts.refresh != null && opts.refresh > 0) {
119
+ if (active() && opts.refresh != null && opts.refresh > 0) {
104
120
  timer = setInterval(() => { void seed(); }, opts.refresh);
105
121
  }
106
122
  })();
107
- return {
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":"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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,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
@@ -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,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,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;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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,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":"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"}