@owlmeans/planning 0.1.18-rc.2 → 0.1.18-rc.21

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 (228) hide show
  1. package/README.md +69 -26
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/planning/SKILL.md +157 -45
  4. package/build/aliases/types.d.ts +49 -0
  5. package/build/aliases/types.d.ts.map +1 -0
  6. package/build/aliases/types.js +2 -0
  7. package/build/aliases/types.js.map +1 -0
  8. package/build/aliases.d.ts +4 -0
  9. package/build/aliases.d.ts.map +1 -0
  10. package/build/aliases.js +27 -0
  11. package/build/aliases.js.map +1 -0
  12. package/build/consts.d.ts +23 -34
  13. package/build/consts.d.ts.map +1 -1
  14. package/build/consts.js +26 -25
  15. package/build/consts.js.map +1 -1
  16. package/build/entrypoints/types.d.ts +96 -0
  17. package/build/entrypoints/types.d.ts.map +1 -0
  18. package/build/entrypoints/types.js +2 -0
  19. package/build/entrypoints/types.js.map +1 -0
  20. package/build/entrypoints.d.ts +5 -1
  21. package/build/entrypoints.d.ts.map +1 -1
  22. package/build/entrypoints.js +17 -6
  23. package/build/entrypoints.js.map +1 -1
  24. package/build/errors.d.ts +41 -0
  25. package/build/errors.d.ts.map +1 -1
  26. package/build/errors.js +61 -0
  27. package/build/errors.js.map +1 -1
  28. package/build/helpers/apply/consts.local.d.ts +7 -0
  29. package/build/helpers/apply/consts.local.d.ts.map +1 -0
  30. package/build/helpers/apply/consts.local.js +9 -0
  31. package/build/helpers/apply/consts.local.js.map +1 -0
  32. package/build/helpers/apply/types.d.ts +32 -0
  33. package/build/helpers/apply/types.d.ts.map +1 -0
  34. package/build/helpers/apply/types.js +2 -0
  35. package/build/helpers/apply/types.js.map +1 -0
  36. package/build/helpers/apply.d.ts +5 -23
  37. package/build/helpers/apply.d.ts.map +1 -1
  38. package/build/helpers/apply.js +121 -143
  39. package/build/helpers/apply.js.map +1 -1
  40. package/build/helpers/card/types.d.ts +20 -0
  41. package/build/helpers/card/types.d.ts.map +1 -0
  42. package/build/helpers/card/types.js +2 -0
  43. package/build/helpers/card/types.js.map +1 -0
  44. package/build/helpers/card.d.ts +11 -7
  45. package/build/helpers/card.d.ts.map +1 -1
  46. package/build/helpers/card.js +41 -28
  47. package/build/helpers/card.js.map +1 -1
  48. package/build/helpers/changes/consts.local.d.ts +13 -0
  49. package/build/helpers/changes/consts.local.d.ts.map +1 -0
  50. package/build/helpers/changes/consts.local.js +13 -0
  51. package/build/helpers/changes/consts.local.js.map +1 -0
  52. package/build/helpers/changes/types.d.ts +58 -0
  53. package/build/helpers/changes/types.d.ts.map +1 -0
  54. package/build/helpers/changes/types.js +2 -0
  55. package/build/helpers/changes/types.js.map +1 -0
  56. package/build/helpers/changes.d.ts +11 -42
  57. package/build/helpers/changes.d.ts.map +1 -1
  58. package/build/helpers/changes.js +234 -251
  59. package/build/helpers/changes.js.map +1 -1
  60. package/build/helpers/code/types.d.ts +27 -0
  61. package/build/helpers/code/types.d.ts.map +1 -0
  62. package/build/helpers/code/types.js +2 -0
  63. package/build/helpers/code/types.js.map +1 -0
  64. package/build/helpers/code.d.ts +6 -17
  65. package/build/helpers/code.d.ts.map +1 -1
  66. package/build/helpers/code.js +39 -40
  67. package/build/helpers/code.js.map +1 -1
  68. package/build/helpers/index.d.ts +12 -0
  69. package/build/helpers/index.d.ts.map +1 -1
  70. package/build/helpers/index.js +2 -0
  71. package/build/helpers/index.js.map +1 -1
  72. package/build/helpers/query/types.d.ts +23 -0
  73. package/build/helpers/query/types.d.ts.map +1 -0
  74. package/build/helpers/query/types.js +2 -0
  75. package/build/helpers/query/types.js.map +1 -0
  76. package/build/helpers/query.d.ts +25 -17
  77. package/build/helpers/query.d.ts.map +1 -1
  78. package/build/helpers/query.js +108 -280
  79. package/build/helpers/query.js.map +1 -1
  80. package/build/helpers/scoped/types.d.ts +59 -0
  81. package/build/helpers/scoped/types.d.ts.map +1 -0
  82. package/build/helpers/scoped/types.js +2 -0
  83. package/build/helpers/scoped/types.js.map +1 -0
  84. package/build/helpers/scoped.d.ts +24 -0
  85. package/build/helpers/scoped.d.ts.map +1 -0
  86. package/build/helpers/scoped.js +197 -0
  87. package/build/helpers/scoped.js.map +1 -0
  88. package/build/helpers/specification/types.d.ts +24 -0
  89. package/build/helpers/specification/types.d.ts.map +1 -0
  90. package/build/helpers/specification/types.js +2 -0
  91. package/build/helpers/specification/types.js.map +1 -0
  92. package/build/helpers/specification.d.ts +9 -13
  93. package/build/helpers/specification.d.ts.map +1 -1
  94. package/build/helpers/specification.js +47 -44
  95. package/build/helpers/specification.js.map +1 -1
  96. package/build/helpers/status/types.d.ts +48 -0
  97. package/build/helpers/status/types.d.ts.map +1 -0
  98. package/build/helpers/status/types.js +2 -0
  99. package/build/helpers/status/types.js.map +1 -0
  100. package/build/helpers/status.d.ts +16 -29
  101. package/build/helpers/status.d.ts.map +1 -1
  102. package/build/helpers/status.js +77 -73
  103. package/build/helpers/status.js.map +1 -1
  104. package/build/helpers/types.local.d.ts +17 -0
  105. package/build/helpers/types.local.d.ts.map +1 -0
  106. package/build/helpers/types.local.js +2 -0
  107. package/build/helpers/types.local.js.map +1 -0
  108. package/build/helpers/validate/types.d.ts +30 -0
  109. package/build/helpers/validate/types.d.ts.map +1 -0
  110. package/build/helpers/validate/types.js +2 -0
  111. package/build/helpers/validate/types.js.map +1 -0
  112. package/build/helpers/validate.d.ts +8 -19
  113. package/build/helpers/validate.d.ts.map +1 -1
  114. package/build/helpers/validate.js +74 -79
  115. package/build/helpers/validate.js.map +1 -1
  116. package/build/helpers/wire/types.d.ts +28 -0
  117. package/build/helpers/wire/types.d.ts.map +1 -0
  118. package/build/helpers/wire/types.js +2 -0
  119. package/build/helpers/wire/types.js.map +1 -0
  120. package/build/helpers/wire.d.ts +4 -0
  121. package/build/helpers/wire.d.ts.map +1 -0
  122. package/build/helpers/wire.js +215 -0
  123. package/build/helpers/wire.js.map +1 -0
  124. package/build/i18n/be.json +5 -0
  125. package/build/i18n/de.json +5 -0
  126. package/build/i18n/en.json +5 -0
  127. package/build/i18n/es.json +5 -0
  128. package/build/i18n/fr.json +56 -0
  129. package/build/i18n/pl.json +5 -0
  130. package/build/i18n/ru.json +5 -0
  131. package/build/i18n/uk.json +5 -0
  132. package/build/i18n.js +5 -4
  133. package/build/i18n.js.map +1 -1
  134. package/build/index.d.ts +4 -0
  135. package/build/index.d.ts.map +1 -1
  136. package/build/index.js +2 -0
  137. package/build/index.js.map +1 -1
  138. package/build/models/index.d.ts +2 -3
  139. package/build/models/index.d.ts.map +1 -1
  140. package/build/models/index.js +1 -15
  141. package/build/models/index.js.map +1 -1
  142. package/build/models/model.d.ts +5 -0
  143. package/build/models/model.d.ts.map +1 -0
  144. package/build/models/model.js +16 -0
  145. package/build/models/model.js.map +1 -0
  146. package/build/models/project.d.ts +2 -1
  147. package/build/models/project.d.ts.map +1 -1
  148. package/build/models/project.js.map +1 -1
  149. package/build/models/specification.d.ts +2 -1
  150. package/build/models/specification.d.ts.map +1 -1
  151. package/build/models/specification.js.map +1 -1
  152. package/build/models/types.d.ts +69 -0
  153. package/build/models/types.d.ts.map +1 -0
  154. package/build/models/types.js +2 -0
  155. package/build/models/types.js.map +1 -0
  156. package/build/models/workcard.d.ts +2 -1
  157. package/build/models/workcard.d.ts.map +1 -1
  158. package/build/models/workcard.js +12 -12
  159. package/build/models/workcard.js.map +1 -1
  160. package/build/schemas.d.ts +10 -2
  161. package/build/schemas.d.ts.map +1 -1
  162. package/build/schemas.js +87 -1
  163. package/build/schemas.js.map +1 -1
  164. package/build/types.d.ts +199 -148
  165. package/build/types.d.ts.map +1 -1
  166. package/build/utils.d.ts +6 -0
  167. package/build/utils.d.ts.map +1 -0
  168. package/build/utils.js +6 -0
  169. package/build/utils.js.map +1 -0
  170. package/package.json +11 -11
  171. package/src/aliases/types.ts +38 -0
  172. package/src/aliases.ts +31 -0
  173. package/src/consts.ts +26 -25
  174. package/src/entrypoints/types.ts +68 -0
  175. package/src/entrypoints.ts +34 -14
  176. package/src/errors.ts +71 -0
  177. package/src/helpers/apply/consts.local.ts +10 -0
  178. package/src/helpers/apply/types.ts +32 -0
  179. package/src/helpers/apply.ts +135 -152
  180. package/src/helpers/card/types.ts +20 -0
  181. package/src/helpers/card.ts +59 -33
  182. package/src/helpers/changes/consts.local.ts +17 -0
  183. package/src/helpers/changes/types.ts +66 -0
  184. package/src/helpers/changes.ts +267 -280
  185. package/src/helpers/code/types.ts +31 -0
  186. package/src/helpers/code.ts +52 -48
  187. package/src/helpers/index.ts +13 -0
  188. package/src/helpers/query/types.ts +26 -0
  189. package/src/helpers/query.ts +144 -314
  190. package/src/helpers/scoped/types.ts +64 -0
  191. package/src/helpers/scoped.ts +257 -0
  192. package/src/helpers/specification/types.ts +26 -0
  193. package/src/helpers/specification.ts +69 -51
  194. package/src/helpers/status/types.ts +46 -0
  195. package/src/helpers/status.ts +117 -93
  196. package/src/helpers/types.local.ts +18 -0
  197. package/src/helpers/validate/types.ts +30 -0
  198. package/src/helpers/validate.ts +84 -77
  199. package/src/helpers/wire/types.ts +31 -0
  200. package/src/helpers/wire.ts +251 -0
  201. package/src/i18n/be.json +5 -0
  202. package/src/i18n/de.json +5 -0
  203. package/src/i18n/en.json +5 -0
  204. package/src/i18n/es.json +5 -0
  205. package/src/i18n/fr.json +56 -0
  206. package/src/i18n/pl.json +5 -0
  207. package/src/i18n/ru.json +5 -0
  208. package/src/i18n/uk.json +5 -0
  209. package/src/i18n.ts +6 -4
  210. package/src/index.ts +4 -0
  211. package/src/models/index.ts +2 -17
  212. package/src/models/model.ts +18 -0
  213. package/src/models/project.ts +2 -1
  214. package/src/models/specification.ts +2 -1
  215. package/src/models/types.ts +70 -0
  216. package/src/models/workcard.ts +14 -16
  217. package/src/schemas.ts +98 -2
  218. package/src/types.ts +207 -126
  219. package/src/utils.ts +9 -0
  220. package/tests/apply.spec.ts +95 -31
  221. package/tests/code.spec.ts +9 -9
  222. package/tests/entrypoints.spec.ts +18 -2
  223. package/tests/error-status.spec.ts +6 -1
  224. package/tests/models.spec.ts +16 -15
  225. package/tests/query.spec.ts +13 -15
  226. package/tests/schemas.spec.ts +8 -8
  227. package/tests/scoped.spec.ts +154 -0
  228. package/tests/status.spec.ts +31 -22
@@ -1,293 +1,121 @@
1
1
  import { IntrinsicStatus, WorkcardKind } from '../consts.js';
2
- import { PlanningError } from '../errors.js';
2
+ import { wireHelper } from './wire.js';
3
3
  const clean = (record) => Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
4
- /** `%`, `_` and `\` are wildcards/escapes to `$ilike`; a search text means them literally. */
5
- const escapeLike = (text) => text.replace(/[\\%_]/g, char => `\\${char}`);
6
- /**
7
- * `WorkcardQuery` → `Criteria<Workcard>` — the ONE translation every store answers, so a query
8
- * means the same thing in memory, in Mongo and in a client mirror.
9
- *
10
- * `entityId` always comes from the scope (a query that forgot it would be a cross-tenant read);
11
- * `undefined` values are omitted. Paging and sorting are {@link listOptionsOf}'s.
12
- */
13
- export const criteriaOf = (query, scope) => {
14
- const where = {
15
- entityId: scope?.entityId,
16
- kind: query?.kind,
17
- type: query?.type,
18
- status: query?.status,
19
- intrinsic: query?.intrinsic,
20
- code: query?.code,
21
- parent: query?.parent,
22
- parents: query?.within != null ? { $contains: query.within } : undefined,
23
- labels: query?.labels != null ? { $overlaps: query.labels } : undefined,
24
- id: query?.ids != null ? { $in: query.ids } : undefined,
25
- category: query?.category,
26
- updatedAt: query?.updatedSince != null ? { $gte: query.updatedSince } : undefined,
27
- };
28
- if (query?.flow != null) {
29
- where[`flows.${query.flow.id}`] = query.flow.status;
30
- }
31
- for (const [key, value] of Object.entries(query?.fields ?? {})) {
32
- if (value !== undefined) {
33
- where[`fields.${key}`] = value;
4
+ export const createQueryHelper = () => {
5
+ /** `%`, `_` and `\` are wildcards/escapes to `$ilike`; a search text means them literally. */
6
+ const escapeLike = (text) => text.replace(/[\\%_]/g, char => `\\${char}`);
7
+ const criteriaOf = (query, scope) => {
8
+ const where = {
9
+ entityId: scope?.entityId,
10
+ kind: query?.kind,
11
+ type: query?.type,
12
+ status: query?.status,
13
+ intrinsic: query?.intrinsic,
14
+ code: query?.code,
15
+ parent: query?.parent,
16
+ parents: query?.within != null ? { $contains: query.within } : undefined,
17
+ labels: query?.labels != null ? { $overlaps: query.labels } : undefined,
18
+ id: query?.ids != null ? { $in: query.ids } : undefined,
19
+ category: query?.category,
20
+ updatedAt: query?.updatedSince != null ? { $gte: query.updatedSince } : undefined,
21
+ };
22
+ if (query?.flow != null) {
23
+ where[`flows.${query.flow.id}`] = query.flow.status;
34
24
  }
35
- }
36
- if (query?.q != null && query.q !== '') {
37
- const like = `%${escapeLike(query.q)}%`;
38
- where.$or = [
39
- { title: { $ilike: like } },
40
- { description: { $ilike: like } },
41
- { code: { $startsWith: query.q } },
42
- ];
43
- }
44
- return clean(where);
45
- };
46
- /** Paging and sorting out of a query. `size: 0` (no limit) survives. */
47
- export const listOptionsOf = (query) => clean({
48
- page: query?.page,
49
- size: query?.size,
50
- sort: query?.sort,
51
- });
52
- /** The criteria over a parent's specifications. */
53
- export const specCriteriaOf = (parent, query, scope) => clean({
54
- entityId: scope?.entityId,
55
- kind: WorkcardKind.Specification,
56
- parent,
57
- category: query?.category,
58
- });
59
- export const linkWhereOf = (query, scope) => clean({
60
- entityId: scope.entityId,
61
- from: query?.from,
62
- to: query?.to,
63
- type: query?.type,
64
- });
65
- export const transitionWhereOf = (query, scope) => clean({
66
- entityId: scope.entityId,
67
- card: query?.card,
68
- project: query?.project,
69
- sinceSeq: query?.sinceSeq,
70
- action: query?.action,
71
- state: query?.state,
72
- });
73
- const emptyCounts = () => ({
74
- total: 0, [IntrinsicStatus.Planned]: 0, [IntrinsicStatus.InProgress]: 0, [IntrinsicStatus.Closed]: 0,
75
- });
76
- /** Counts of DIRECT children (`card.parent`) per parent, by intrinsic state. No key for a parent with none. */
77
- export const summaryOf = (cards, parents) => cards.reduce((view, card) => {
78
- if (card.parent == null || !parents.includes(card.parent)) {
79
- return view;
80
- }
81
- const counts = view[card.parent] ?? emptyCounts();
82
- counts.total += 1;
83
- counts[card.intrinsic] = (counts[card.intrinsic] ?? 0) + 1;
84
- view[card.parent] = counts;
85
- return view;
86
- }, {});
87
- // ─── Wire encoding ───────────────────────────────────────────────────────────────────────────────
88
- /** A list as one query value: comma-joined, or JSON when an element itself holds a comma. */
89
- export const encodeList = (value) => {
90
- if (value == null) {
91
- return undefined;
92
- }
93
- if (typeof value === 'string') {
94
- return encodeList([value]);
95
- }
96
- if (value.length === 0) {
97
- return undefined;
98
- }
99
- return value.some(entry => entry.includes(',') || entry.startsWith('['))
100
- ? JSON.stringify(value)
101
- : value.join(',');
102
- };
103
- /** Every entry of a list query value, whatever shape the transport left it in. */
104
- export const decodeList = (value, key = 'list') => {
105
- if (value == null || value === '') {
106
- return undefined;
107
- }
108
- if (Array.isArray(value)) {
109
- const entries = value.filter(entry => entry != null && entry !== '').map(entry => `${entry}`);
110
- return entries.length > 0 ? entries : undefined;
111
- }
112
- if (typeof value !== 'string') {
113
- return [`${value}`];
114
- }
115
- if (value.startsWith('[')) {
116
- const parsed = (() => {
117
- try {
118
- return JSON.parse(value);
119
- }
120
- catch {
121
- throw new PlanningError(`malformed:query:${key}`);
25
+ for (const [key, value] of Object.entries(query?.fields ?? {})) {
26
+ if (value !== undefined) {
27
+ where[`fields.${key}`] = value;
122
28
  }
123
- })();
124
- return Array.isArray(parsed) ? parsed.map(entry => `${entry}`) : undefined;
125
- }
126
- const entries = value.split(',').map(entry => entry.trim()).filter(entry => entry !== '');
127
- return entries.length > 0 ? entries : undefined;
128
- };
129
- /** A list decoded to a bare value when it holds one — the same criteria either way. */
130
- const decodeOneOrMany = (value, key) => {
131
- const entries = decodeList(value, key);
132
- return entries == null ? undefined : entries.length === 1 ? entries[0] : entries;
133
- };
134
- const encodeJson = (value) => value == null ? undefined : JSON.stringify(value);
135
- const decodeJson = (value, key) => {
136
- if (value == null || value === '') {
137
- return undefined;
138
- }
139
- if (typeof value !== 'string') {
140
- return value;
141
- }
142
- try {
143
- return JSON.parse(value);
144
- }
145
- catch {
146
- throw new PlanningError(`malformed:query:${key}`);
147
- }
148
- };
149
- const decodeNumber = (value, key) => {
150
- if (value == null || value === '') {
151
- return undefined;
152
- }
153
- const number = typeof value === 'number' ? value : Number(value);
154
- if (Number.isNaN(number)) {
155
- throw new PlanningError(`malformed:query:${key}`);
156
- }
157
- return number;
158
- };
159
- const decodeBoolean = (value) => value == null || value === '' ? undefined : value === true || value === 'true' || value === '1';
160
- const decodeText = (value) => value == null || value === '' ? undefined : `${Array.isArray(value) ? value[0] : value}`;
161
- /** `[{ field: 'order' }, { field: 'updatedAt', order: 'desc' }]` ⇄ `order,-updatedAt`. */
162
- export const encodeSort = (sort) => sort == null || sort.length === 0 ? undefined : sort.map(entry => typeof entry === 'string'
163
- ? entry
164
- : `${entry.order === 'desc' ? '-' : ''}${entry.field}`).join(',');
165
- export const decodeSort = (value) => {
166
- if (value == null || value === '') {
167
- return undefined;
168
- }
169
- const entries = Array.isArray(value) ? value : typeof value === 'string' ? value.split(',') : [value];
170
- const sort = entries.flatMap((entry) => {
171
- if (typeof entry !== 'string') {
172
- return entry != null && typeof entry === 'object' && 'field' in entry ? [entry] : [];
173
29
  }
174
- const field = entry.trim();
175
- if (field === '' || field === '-') {
176
- return [];
30
+ if (query?.q != null && query.q !== '') {
31
+ const like = `%${escapeLike(query.q)}%`;
32
+ where.$or = [
33
+ { title: { $ilike: like } },
34
+ { description: { $ilike: like } },
35
+ { code: { $startsWith: query.q } },
36
+ ];
177
37
  }
178
- return field.startsWith('-')
179
- ? [{ field: field.slice(1), order: 'desc' }]
180
- : [field];
181
- });
182
- return sort.length > 0 ? sort : undefined;
183
- };
184
- const encodeListOptions = (query) => clean({
185
- page: query?.page,
186
- size: query?.size,
187
- sort: encodeSort(query?.sort),
188
- });
189
- const decodeListOptions = (wire) => clean({
190
- page: decodeNumber(wire.page, 'page'),
191
- size: decodeNumber(wire.size, 'size'),
192
- sort: decodeSort(wire.sort),
193
- });
194
- const asRecord = (wire) => wire != null && typeof wire === 'object' ? wire : {};
195
- export const encodeWorkcardQuery = (query) => clean({
196
- ...encodeListOptions(query),
197
- kind: encodeList(query?.kind),
198
- type: encodeList(query?.type),
199
- parent: query?.parent,
200
- within: query?.within,
201
- status: encodeList(query?.status),
202
- intrinsic: encodeList(query?.intrinsic),
203
- flow: encodeJson(query?.flow),
204
- labels: encodeList(query?.labels),
205
- code: encodeList(query?.code),
206
- ids: encodeList(query?.ids),
207
- fields: query?.fields != null && Object.keys(query.fields).length > 0 ? encodeJson(query.fields) : undefined,
208
- q: query?.q,
209
- category: encodeList(query?.category),
210
- updatedSince: query?.updatedSince,
211
- });
212
- /** @throws {PlanningError} `malformed:query:<key>` for a value that does not decode */
213
- export const decodeWorkcardQuery = (wire) => {
214
- const value = asRecord(wire);
215
- return clean({
216
- ...decodeListOptions(value),
217
- kind: decodeOneOrMany(value.kind, 'kind'),
218
- type: decodeOneOrMany(value.type, 'type'),
219
- parent: decodeText(value.parent),
220
- within: decodeText(value.within),
221
- status: decodeOneOrMany(value.status, 'status'),
222
- intrinsic: decodeOneOrMany(value.intrinsic, 'intrinsic'),
223
- flow: decodeJson(value.flow, 'flow'),
224
- labels: decodeList(value.labels, 'labels'),
225
- code: decodeOneOrMany(value.code, 'code'),
226
- ids: decodeList(value.ids, 'ids'),
227
- fields: decodeJson(value.fields, 'fields'),
228
- q: decodeText(value.q),
229
- category: decodeOneOrMany(value.category, 'category'),
230
- updatedSince: decodeText(value.updatedSince),
38
+ return clean(where);
39
+ };
40
+ const listOptionsOf = (query) => clean({
41
+ page: query?.page,
42
+ size: query?.size,
43
+ sort: query?.sort,
231
44
  });
232
- };
233
- export const encodeSummaryQuery = (query) => clean({
234
- parents: encodeList(query.parents) ?? '',
235
- kind: query.kind,
236
- type: encodeList(query.type),
237
- });
238
- export const decodeSummaryQuery = (wire) => {
239
- const value = asRecord(wire);
240
- return clean({
241
- parents: decodeList(value.parents, 'parents') ?? [],
242
- kind: decodeText(value.kind),
243
- type: decodeOneOrMany(value.type, 'type'),
45
+ const specCriteriaOf = (parent, query, scope) => clean({
46
+ entityId: scope?.entityId,
47
+ kind: WorkcardKind.Specification,
48
+ parent,
49
+ category: query?.category,
244
50
  });
245
- };
246
- export const encodeTransitionQuery = (query) => clean({
247
- ...encodeListOptions(query),
248
- card: query?.card,
249
- project: query?.project,
250
- sinceSeq: query?.sinceSeq,
251
- action: encodeList(query?.action),
252
- state: query?.state,
253
- });
254
- export const decodeTransitionQuery = (wire) => {
255
- const value = asRecord(wire);
256
- return clean({
257
- ...decodeListOptions(value),
258
- card: decodeText(value.card),
259
- project: decodeText(value.project),
260
- sinceSeq: decodeNumber(value.sinceSeq, 'sinceSeq'),
261
- action: decodeOneOrMany(value.action, 'action'),
262
- state: decodeText(value.state),
51
+ const linkWhereOf = (query, scope) => clean({
52
+ entityId: scope.entityId,
53
+ from: query?.from,
54
+ to: query?.to,
55
+ type: query?.type,
263
56
  });
264
- };
265
- export const encodeSpecificationQuery = (query) => clean({
266
- ...encodeListOptions(query),
267
- category: encodeList(query?.category),
268
- all: query?.all,
269
- });
270
- export const decodeSpecificationQuery = (wire) => {
271
- const value = asRecord(wire);
272
- return clean({
273
- ...decodeListOptions(value),
274
- category: decodeOneOrMany(value.category, 'category'),
275
- all: decodeBoolean(value.all),
57
+ const transitionWhereOf = (query, scope) => clean({
58
+ entityId: scope.entityId,
59
+ card: query?.card,
60
+ project: query?.project,
61
+ sinceSeq: query?.sinceSeq,
62
+ action: query?.action,
63
+ state: query?.state,
276
64
  });
277
- };
278
- export const encodeRelationshipQuery = (query) => clean({
279
- ...encodeListOptions(query),
280
- from: encodeList(query?.from),
281
- to: encodeList(query?.to),
282
- type: encodeList(query?.type),
283
- });
284
- export const decodeRelationshipQuery = (wire) => {
285
- const value = asRecord(wire);
286
- return clean({
287
- ...decodeListOptions(value),
288
- from: decodeOneOrMany(value.from, 'from'),
289
- to: decodeOneOrMany(value.to, 'to'),
290
- type: decodeOneOrMany(value.type, 'type'),
65
+ const emptyCounts = () => ({
66
+ total: 0, [IntrinsicStatus.Planned]: 0, [IntrinsicStatus.InProgress]: 0, [IntrinsicStatus.Closed]: 0,
291
67
  });
68
+ const summaryOf = (cards, parents) => cards.reduce((view, card) => {
69
+ if (card.parent == null || !parents.includes(card.parent)) {
70
+ return view;
71
+ }
72
+ const counts = view[card.parent] ?? emptyCounts();
73
+ counts.total += 1;
74
+ counts[card.intrinsic] = (counts[card.intrinsic] ?? 0) + 1;
75
+ view[card.parent] = counts;
76
+ return view;
77
+ }, {});
78
+ return { criteriaOf, listOptionsOf, specCriteriaOf, linkWhereOf, transitionWhereOf, summaryOf };
292
79
  };
80
+ export const queryHelper = createQueryHelper();
81
+ /** @deprecated compat:factory-refactor — use `queryHelper.criteriaOf(…)` */
82
+ export const criteriaOf = (query, scope) => queryHelper.criteriaOf(query, scope);
83
+ /** @deprecated compat:factory-refactor — use `queryHelper.listOptionsOf(…)` */
84
+ export const listOptionsOf = (query) => queryHelper.listOptionsOf(query);
85
+ /** @deprecated compat:factory-refactor — use `queryHelper.specCriteriaOf(…)` */
86
+ export const specCriteriaOf = (parent, query, scope) => queryHelper.specCriteriaOf(parent, query, scope);
87
+ /** @deprecated compat:factory-refactor — use `queryHelper.linkWhereOf(…)` */
88
+ export const linkWhereOf = (query, scope) => queryHelper.linkWhereOf(query, scope);
89
+ /** @deprecated compat:factory-refactor — use `queryHelper.transitionWhereOf(…)` */
90
+ export const transitionWhereOf = (query, scope) => queryHelper.transitionWhereOf(query, scope);
91
+ /** @deprecated compat:factory-refactor — use `queryHelper.summaryOf(…)` */
92
+ export const summaryOf = (cards, parents) => queryHelper.summaryOf(cards, parents);
93
+ /** @deprecated compat:factory-refactor — use `wireHelper.encodeList(…)` */
94
+ export const encodeList = (value) => wireHelper.encodeList(value);
95
+ /** @deprecated compat:factory-refactor — use `wireHelper.decodeList(…)` */
96
+ export const decodeList = (value, key = 'list') => wireHelper.decodeList(value, key);
97
+ /** @deprecated compat:factory-refactor — use `wireHelper.encodeSort(…)` */
98
+ export const encodeSort = (sort) => wireHelper.encodeSort(sort);
99
+ /** @deprecated compat:factory-refactor — use `wireHelper.decodeSort(…)` */
100
+ export const decodeSort = (value) => wireHelper.decodeSort(value);
101
+ /** @deprecated compat:factory-refactor — use `wireHelper.encodeWorkcardQuery(…)` */
102
+ export const encodeWorkcardQuery = (query) => wireHelper.encodeWorkcardQuery(query);
103
+ /** @deprecated compat:factory-refactor — use `wireHelper.decodeWorkcardQuery(…)` */
104
+ export const decodeWorkcardQuery = (wire) => wireHelper.decodeWorkcardQuery(wire);
105
+ /** @deprecated compat:factory-refactor — use `wireHelper.encodeSummaryQuery(…)` */
106
+ export const encodeSummaryQuery = (query) => wireHelper.encodeSummaryQuery(query);
107
+ /** @deprecated compat:factory-refactor — use `wireHelper.decodeSummaryQuery(…)` */
108
+ export const decodeSummaryQuery = (wire) => wireHelper.decodeSummaryQuery(wire);
109
+ /** @deprecated compat:factory-refactor — use `wireHelper.encodeTransitionQuery(…)` */
110
+ export const encodeTransitionQuery = (query) => wireHelper.encodeTransitionQuery(query);
111
+ /** @deprecated compat:factory-refactor — use `wireHelper.decodeTransitionQuery(…)` */
112
+ export const decodeTransitionQuery = (wire) => wireHelper.decodeTransitionQuery(wire);
113
+ /** @deprecated compat:factory-refactor — use `wireHelper.encodeSpecificationQuery(…)` */
114
+ export const encodeSpecificationQuery = (query) => wireHelper.encodeSpecificationQuery(query);
115
+ /** @deprecated compat:factory-refactor — use `wireHelper.decodeSpecificationQuery(…)` */
116
+ export const decodeSpecificationQuery = (wire) => wireHelper.decodeSpecificationQuery(wire);
117
+ /** @deprecated compat:factory-refactor — use `wireHelper.encodeRelationshipQuery(…)` */
118
+ export const encodeRelationshipQuery = (query) => wireHelper.encodeRelationshipQuery(query);
119
+ /** @deprecated compat:factory-refactor — use `wireHelper.decodeRelationshipQuery(…)` */
120
+ export const decodeRelationshipQuery = (wire) => wireHelper.decodeRelationshipQuery(wire);
293
121
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/helpers/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/helpers/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { PlanningSchemaKind } from '../../consts.js';
2
+ import type { PlanningSchemaBundle, PlanningSchemaRegistry, SchemaScope, ScopedSchemaBundle, ScopedSchemaRecord, ScopedSchemaRegistry, StatusFlowSchema, WorkcardTypeSchema } from '../../types.js';
3
+ /** Data-defined (scoped) types and flows: their keys, the checks a write passes, and the layer they resolve to. */
4
+ export interface ScopedSchemaHelper {
5
+ /** One layer's identity of a record: organization, project (or none), kind, key. */
6
+ schemaRecordKey: (record: Pick<ScopedSchemaRecord, 'entityId' | 'project' | 'kind' | 'key'>) => string;
7
+ /** The key a declaration is addressed by: a type's `type`, a flow's `id`. */
8
+ schemaKeyOf: (kind: PlanningSchemaKind, definition: WorkcardTypeSchema | StatusFlowSchema) => string;
9
+ /**
10
+ * Refuse a data-defined declaration of a key the code registry seals: a code type or flow that does
11
+ * not say `overridable: true`, and any project or specification type.
12
+ *
13
+ * @throws {SchemaSealed}
14
+ */
15
+ assertOverridable: (code: Pick<PlanningSchemaRegistry, 'has' | 'type' | 'flows'>, kind: PlanningSchemaKind, key: string) => void;
16
+ /**
17
+ * The closed-form checks of a data-defined flow: the declaration's own schema, at least one status,
18
+ * unique status keys, every rule's `to` declared, and a `from` that is `'*'` or a list of declared
19
+ * statuses.
20
+ *
21
+ * @throws {SchemaInvalid}
22
+ */
23
+ assertFlowSchema: (flow: StatusFlowSchema) => void;
24
+ /**
25
+ * The closed-form checks of a data-defined type: the declaration's own schema, the `card` kind,
26
+ * a `fields` schema that compiles, and unique flow ids every one of which resolves.
27
+ *
28
+ * @throws {SchemaInvalid}
29
+ */
30
+ assertTypeSchema: (type: WorkcardTypeSchema, flows: Pick<PlanningSchemaRegistry, 'flow'>) => void;
31
+ /**
32
+ * One layer resolved: the code bundle, overlaid by the organization-wide records, then by the
33
+ * project's (when `scope.project` names one). Pure — every store and both sides of the wire resolve
34
+ * the same records to the same bundle.
35
+ *
36
+ * - A code key is sealed unless it says `overridable: true`; project and specification types are
37
+ * always sealed, so only card types and flows are data-defined. A record under a sealed key is
38
+ * ignored here (the write path refuses it with `SchemaSealed`).
39
+ * - A project record overrides an organization-wide one of the same key.
40
+ * - A retired record gives way to the nearest live declaration below it; a key retired in every
41
+ * layer resolves retired — present in `types`/`flows`, listed in `retired`.
42
+ * - A data-defined declaration carries its record's `version`.
43
+ */
44
+ resolveScopedBundle: (code: PlanningSchemaBundle, records: readonly ScopedSchemaRecord[], scope: SchemaScope & {
45
+ revision?: number;
46
+ }) => ScopedSchemaBundle;
47
+ /**
48
+ * A read-only registry over a resolved layer. It answers exactly what `makeSchemaRegistry` answers
49
+ * for the same types and flows, plus where each key came from and whether it is retired; its
50
+ * `registerType`, `registerFlow` and `load` refuse with `PlanningUnsupported`.
51
+ */
52
+ scopedRegistryOf: (bundle: ScopedSchemaBundle) => ScopedSchemaRegistry;
53
+ /**
54
+ * The live type that keeps a flow from being retired in a resolved layer: the flow resolves retired
55
+ * (no live declaration below the retired record) while a type that is not retired still runs it.
56
+ */
57
+ flowInUse: (bundle: ScopedSchemaBundle, flow: string) => string | undefined;
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/helpers/scoped/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EACV,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EACjG,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAC3D,MAAM,gBAAgB,CAAA;AAEvB,mHAAmH;AACnH,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,eAAe,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,MAAM,CAAA;IACtG,6EAA6E;IAC7E,WAAW,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,GAAG,gBAAgB,KAAK,MAAM,CAAA;IACpG;;;;;OAKG;IACH,iBAAiB,EAAE,CACjB,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,KAChG,IAAI,CAAA;IACT;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAClD;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA;IACjG;;;;;;;;;;;;OAYG;IACH,mBAAmB,EAAE,CACnB,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,SAAS,kBAAkB,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAC3G,kBAAkB,CAAA;IACvB;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,oBAAoB,CAAA;IACtE;;;OAGG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;CAC5E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/helpers/scoped/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import { PlanningSchemaKind } from '../consts.js';
2
+ import type { PlanningSchemaBundle, PlanningSchemaRegistry, SchemaScope, ScopedSchemaBundle, ScopedSchemaRecord, ScopedSchemaRegistry, StatusFlowSchema, WorkcardTypeSchema } from '../types.js';
3
+ import type { ScopedSchemaHelper } from './scoped/types.js';
4
+ export declare const createScopedSchemaHelper: () => ScopedSchemaHelper;
5
+ export declare const scopedSchemaHelper: ScopedSchemaHelper;
6
+ /** @deprecated compat:factory-refactor — use `scopedSchemaHelper.schemaRecordKey(…)` */
7
+ export declare const schemaRecordKey: (record: Pick<ScopedSchemaRecord, 'entityId' | 'project' | 'kind' | 'key'>) => string;
8
+ /** @deprecated compat:factory-refactor — use `scopedSchemaHelper.schemaKeyOf(…)` */
9
+ export declare const schemaKeyOf: (kind: PlanningSchemaKind, definition: WorkcardTypeSchema | StatusFlowSchema) => string;
10
+ /** @deprecated compat:factory-refactor — use `scopedSchemaHelper.assertOverridable(…)` */
11
+ export declare const assertOverridable: (code: Pick<PlanningSchemaRegistry, 'has' | 'type' | 'flows'>, kind: PlanningSchemaKind, key: string) => void;
12
+ /** @deprecated compat:factory-refactor — use `scopedSchemaHelper.assertFlowSchema(…)` */
13
+ export declare const assertFlowSchema: (flow: StatusFlowSchema) => void;
14
+ /** @deprecated compat:factory-refactor — use `scopedSchemaHelper.assertTypeSchema(…)` */
15
+ export declare const assertTypeSchema: (type: WorkcardTypeSchema, flows: Pick<PlanningSchemaRegistry, 'flow'>) => void;
16
+ /** @deprecated compat:factory-refactor — use `scopedSchemaHelper.resolveScopedBundle(…)` */
17
+ export declare const resolveScopedBundle: (code: PlanningSchemaBundle, records: readonly ScopedSchemaRecord[], scope: SchemaScope & {
18
+ revision?: number;
19
+ }) => ScopedSchemaBundle;
20
+ /** @deprecated compat:factory-refactor — use `scopedSchemaHelper.scopedRegistryOf(…)` */
21
+ export declare const scopedRegistryOf: (bundle: ScopedSchemaBundle) => ScopedSchemaRegistry;
22
+ /** @deprecated compat:factory-refactor — use `scopedSchemaHelper.flowInUse(…)` */
23
+ export declare const flowInUse: (bundle: ScopedSchemaBundle, flow: string) => string | undefined;
24
+ //# sourceMappingURL=scoped.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped.d.ts","sourceRoot":"","sources":["../../src/helpers/scoped.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA8B,MAAM,cAAc,CAAA;AAI7E,OAAO,KAAK,EACK,oBAAoB,EAAE,sBAAsB,EAAE,WAAW,EAAE,kBAAkB,EAC5F,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAC/E,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAM3D,eAAO,MAAM,wBAAwB,QAAO,kBAgN3C,CAAA;AAED,eAAO,MAAM,kBAAkB,oBAA6B,CAAA;AAE5D,wFAAwF;AACxF,eAAO,MAAM,eAAe,WAAY,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,KAAG,MAChE,CAAA;AAE5C,oFAAoF;AACpF,eAAO,MAAM,WAAW,SAAU,kBAAkB,cAAc,kBAAkB,GAAG,gBAAgB,KAAG,MACxD,CAAA;AAElD,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,SACtB,IAAI,CAAC,sBAAsB,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,kBAAkB,OAAO,MAAM,KAClG,IAA6D,CAAA;AAEhE,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,SAAU,gBAAgB,KAAG,IAAiD,CAAA;AAE3G,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,SAAU,kBAAkB,SAAS,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,KAAG,IACvD,CAAA;AAElD,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,SACxB,oBAAoB,WAAW,SAAS,kBAAkB,EAAE,SAAS,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAC7G,kBAAkF,CAAA;AAErF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,WAAY,kBAAkB,KAAG,oBAAmE,CAAA;AAEjI,kFAAkF;AAClF,eAAO,MAAM,SAAS,WAAY,kBAAkB,QAAQ,MAAM,KAAG,MAAM,GAAG,SAAuD,CAAA"}