@owlmeans/server-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 (438) hide show
  1. package/README.md +92 -19
  2. package/agent-meta/manifest.json +105 -4
  3. package/agent-meta/skills/server-planning/SKILL.md +89 -138
  4. package/agent-meta/skills/server-planning/parts/auxiliary.md +54 -0
  5. package/agent-meta/skills/server-planning/parts/executor.md +82 -0
  6. package/agent-meta/skills/server-planning/parts/schemas.md +26 -0
  7. package/agent-meta/skills/server-planning/parts/serving.md +88 -0
  8. package/agent-meta/skills/server-planning/parts/stores.md +91 -0
  9. package/build/actions/apply-schema-request.d.ts +8 -0
  10. package/build/actions/apply-schema-request.d.ts.map +1 -0
  11. package/build/actions/apply-schema-request.js +33 -0
  12. package/build/actions/apply-schema-request.js.map +1 -0
  13. package/build/actions/commit.d.ts +3 -3
  14. package/build/actions/commit.d.ts.map +1 -1
  15. package/build/actions/commit.js +5 -4
  16. package/build/actions/commit.js.map +1 -1
  17. package/build/actions/define-schemas.d.ts +13 -0
  18. package/build/actions/define-schemas.d.ts.map +1 -0
  19. package/build/actions/define-schemas.js +28 -0
  20. package/build/actions/define-schemas.js.map +1 -0
  21. package/build/actions/execute.d.ts +11 -10
  22. package/build/actions/execute.d.ts.map +1 -1
  23. package/build/actions/execute.js +17 -27
  24. package/build/actions/execute.js.map +1 -1
  25. package/build/actions/execution/types.d.ts +34 -0
  26. package/build/actions/execution/types.d.ts.map +1 -0
  27. package/build/actions/execution/types.js +2 -0
  28. package/build/actions/execution/types.js.map +1 -0
  29. package/build/actions/execution.d.ts +4 -0
  30. package/build/actions/execution.d.ts.map +1 -0
  31. package/build/actions/execution.js +88 -0
  32. package/build/actions/execution.js.map +1 -0
  33. package/build/actions/get-card.d.ts +6 -0
  34. package/build/actions/get-card.d.ts.map +1 -0
  35. package/build/actions/get-card.js +9 -0
  36. package/build/actions/get-card.js.map +1 -0
  37. package/build/actions/get-specification.d.ts +6 -0
  38. package/build/actions/get-specification.d.ts.map +1 -0
  39. package/build/actions/get-specification.js +9 -0
  40. package/build/actions/get-specification.js.map +1 -0
  41. package/build/actions/index.d.ts +12 -3
  42. package/build/actions/index.d.ts.map +1 -1
  43. package/build/actions/index.js +11 -3
  44. package/build/actions/index.js.map +1 -1
  45. package/build/actions/links.d.ts +3 -3
  46. package/build/actions/links.d.ts.map +1 -1
  47. package/build/actions/links.js +6 -5
  48. package/build/actions/links.js.map +1 -1
  49. package/build/actions/list-card-specifications.d.ts +6 -0
  50. package/build/actions/list-card-specifications.d.ts.map +1 -0
  51. package/build/actions/list-card-specifications.js +11 -0
  52. package/build/actions/list-card-specifications.js.map +1 -0
  53. package/build/actions/list-card-transitions.d.ts +6 -0
  54. package/build/actions/list-card-transitions.d.ts.map +1 -0
  55. package/build/actions/list-card-transitions.js +11 -0
  56. package/build/actions/list-card-transitions.js.map +1 -0
  57. package/build/actions/list-cards.d.ts +6 -0
  58. package/build/actions/list-cards.d.ts.map +1 -0
  59. package/build/actions/list-cards.js +10 -0
  60. package/build/actions/list-cards.js.map +1 -0
  61. package/build/actions/list-schemas.d.ts +13 -0
  62. package/build/actions/list-schemas.d.ts.map +1 -0
  63. package/build/actions/list-schemas.js +20 -0
  64. package/build/actions/list-schemas.js.map +1 -0
  65. package/build/actions/list-specification-revisions.d.ts +6 -0
  66. package/build/actions/list-specification-revisions.d.ts.map +1 -0
  67. package/build/actions/list-specification-revisions.js +10 -0
  68. package/build/actions/list-specification-revisions.js.map +1 -0
  69. package/build/actions/resources.d.ts +5 -0
  70. package/build/actions/resources.d.ts.map +1 -0
  71. package/build/actions/resources.js +111 -0
  72. package/build/actions/resources.js.map +1 -0
  73. package/build/actions/summarize-cards.d.ts +6 -0
  74. package/build/actions/summarize-cards.d.ts.map +1 -0
  75. package/build/actions/summarize-cards.js +11 -0
  76. package/build/actions/summarize-cards.js.map +1 -0
  77. package/build/actions/transitions.d.ts +3 -3
  78. package/build/actions/transitions.d.ts.map +1 -1
  79. package/build/actions/transitions.js +4 -3
  80. package/build/actions/transitions.js.map +1 -1
  81. package/build/actions/types.d.ts +6 -0
  82. package/build/actions/types.d.ts.map +1 -0
  83. package/build/actions/types.js +2 -0
  84. package/build/actions/types.js.map +1 -0
  85. package/build/actions/watch.d.ts +2 -2
  86. package/build/actions/watch.d.ts.map +1 -1
  87. package/build/actions/watch.js +8 -6
  88. package/build/actions/watch.js.map +1 -1
  89. package/build/conformance/assert/types.d.ts +19 -0
  90. package/build/conformance/assert/types.d.ts.map +1 -0
  91. package/build/conformance/assert/types.js +2 -0
  92. package/build/conformance/assert/types.js.map +1 -0
  93. package/build/conformance/assert.d.ts +15 -0
  94. package/build/conformance/assert.d.ts.map +1 -0
  95. package/build/conformance/assert.js +52 -0
  96. package/build/conformance/assert.js.map +1 -0
  97. package/build/conformance/cases.d.ts +7 -0
  98. package/build/conformance/cases.d.ts.map +1 -0
  99. package/build/conformance/cases.js +544 -0
  100. package/build/conformance/cases.js.map +1 -0
  101. package/build/conformance/clock.d.ts +6 -0
  102. package/build/conformance/clock.d.ts.map +1 -0
  103. package/build/conformance/clock.js +12 -0
  104. package/build/conformance/clock.js.map +1 -0
  105. package/build/conformance/consts.d.ts +30 -0
  106. package/build/conformance/consts.d.ts.map +1 -0
  107. package/build/conformance/consts.js +159 -0
  108. package/build/conformance/consts.js.map +1 -0
  109. package/build/conformance/errors.d.ts +5 -0
  110. package/build/conformance/errors.d.ts.map +1 -0
  111. package/build/conformance/errors.js +8 -0
  112. package/build/conformance/errors.js.map +1 -0
  113. package/build/conformance/fixtures/types.d.ts +13 -0
  114. package/build/conformance/fixtures/types.d.ts.map +1 -0
  115. package/build/conformance/fixtures/types.js +2 -0
  116. package/build/conformance/fixtures/types.js.map +1 -0
  117. package/build/conformance/fixtures.d.ts +14 -0
  118. package/build/conformance/fixtures.d.ts.map +1 -0
  119. package/build/conformance/fixtures.js +26 -0
  120. package/build/conformance/fixtures.js.map +1 -0
  121. package/build/conformance/index.d.ts +15 -0
  122. package/build/conformance/index.d.ts.map +1 -0
  123. package/build/conformance/index.js +12 -0
  124. package/build/conformance/index.js.map +1 -0
  125. package/build/conformance/resources.d.ts +4 -0
  126. package/build/conformance/resources.d.ts.map +1 -0
  127. package/build/conformance/resources.js +228 -0
  128. package/build/conformance/resources.js.map +1 -0
  129. package/build/conformance/types.d.ts +18 -0
  130. package/build/conformance/types.d.ts.map +1 -0
  131. package/build/conformance/types.js +2 -0
  132. package/build/conformance/types.js.map +1 -0
  133. package/build/consts.d.ts +5 -0
  134. package/build/consts.d.ts.map +1 -1
  135. package/build/consts.js +5 -0
  136. package/build/consts.js.map +1 -1
  137. package/build/definitions.d.ts +18 -0
  138. package/build/definitions.d.ts.map +1 -0
  139. package/build/definitions.js +225 -0
  140. package/build/definitions.js.map +1 -0
  141. package/build/executor/changes/types.d.ts +36 -0
  142. package/build/executor/changes/types.d.ts.map +1 -0
  143. package/build/executor/changes/types.js +2 -0
  144. package/build/executor/changes/types.js.map +1 -0
  145. package/build/executor/changes.d.ts +3 -30
  146. package/build/executor/changes.d.ts.map +1 -1
  147. package/build/executor/changes.js +42 -51
  148. package/build/executor/changes.js.map +1 -1
  149. package/build/executor/code/types.d.ts +17 -0
  150. package/build/executor/code/types.d.ts.map +1 -0
  151. package/build/executor/code/types.js +2 -0
  152. package/build/executor/code/types.js.map +1 -0
  153. package/build/executor/code.d.ts +3 -14
  154. package/build/executor/code.d.ts.map +1 -1
  155. package/build/executor/code.js +50 -54
  156. package/build/executor/code.js.map +1 -1
  157. package/build/executor/consts.local.d.ts +5 -0
  158. package/build/executor/consts.local.d.ts.map +1 -0
  159. package/build/executor/consts.local.js +6 -0
  160. package/build/executor/consts.local.js.map +1 -0
  161. package/build/executor/creator/types.d.ts +33 -0
  162. package/build/executor/creator/types.d.ts.map +1 -0
  163. package/build/executor/creator/types.js +2 -0
  164. package/build/executor/creator/types.js.map +1 -0
  165. package/build/executor/creator.d.ts +11 -0
  166. package/build/executor/creator.d.ts.map +1 -0
  167. package/build/executor/creator.js +32 -0
  168. package/build/executor/creator.js.map +1 -0
  169. package/build/executor/resolve/types.d.ts +30 -0
  170. package/build/executor/resolve/types.d.ts.map +1 -0
  171. package/build/executor/resolve/types.js +2 -0
  172. package/build/executor/resolve/types.js.map +1 -0
  173. package/build/executor/resolve.d.ts +5 -34
  174. package/build/executor/resolve.d.ts.map +1 -1
  175. package/build/executor/resolve.js +169 -110
  176. package/build/executor/resolve.js.map +1 -1
  177. package/build/executor/types.d.ts +23 -0
  178. package/build/executor/types.d.ts.map +1 -0
  179. package/build/executor/types.js +2 -0
  180. package/build/executor/types.js.map +1 -0
  181. package/build/executor/validate.d.ts +6 -5
  182. package/build/executor/validate.d.ts.map +1 -1
  183. package/build/executor/validate.js +38 -27
  184. package/build/executor/validate.js.map +1 -1
  185. package/build/executor.d.ts +11 -7
  186. package/build/executor.d.ts.map +1 -1
  187. package/build/executor.js +27 -21
  188. package/build/executor.js.map +1 -1
  189. package/build/facade.d.ts +20 -2
  190. package/build/facade.d.ts.map +1 -1
  191. package/build/facade.js +144 -22
  192. package/build/facade.js.map +1 -1
  193. package/build/helper.d.ts +5 -9
  194. package/build/helper.d.ts.map +1 -1
  195. package/build/helper.js +12 -11
  196. package/build/helper.js.map +1 -1
  197. package/build/hierarchy/types.d.ts +20 -0
  198. package/build/hierarchy/types.d.ts.map +1 -0
  199. package/build/hierarchy/types.js +2 -0
  200. package/build/hierarchy/types.js.map +1 -0
  201. package/build/hierarchy.d.ts +5 -0
  202. package/build/hierarchy.d.ts.map +1 -0
  203. package/build/hierarchy.js +133 -0
  204. package/build/hierarchy.js.map +1 -0
  205. package/build/index.d.ts +1 -0
  206. package/build/index.d.ts.map +1 -1
  207. package/build/index.js +1 -0
  208. package/build/index.js.map +1 -1
  209. package/build/invariants/types.d.ts +6 -0
  210. package/build/invariants/types.d.ts.map +1 -0
  211. package/build/invariants/types.js +2 -0
  212. package/build/invariants/types.js.map +1 -0
  213. package/build/invariants.d.ts +5 -0
  214. package/build/invariants.d.ts.map +1 -0
  215. package/build/invariants.js +126 -0
  216. package/build/invariants.js.map +1 -0
  217. package/build/projection.d.ts +4 -10
  218. package/build/projection.d.ts.map +1 -1
  219. package/build/projection.js +7 -5
  220. package/build/projection.js.map +1 -1
  221. package/build/queue/consts.d.ts +5 -0
  222. package/build/queue/consts.d.ts.map +1 -0
  223. package/build/queue/consts.js +5 -0
  224. package/build/queue/consts.js.map +1 -0
  225. package/build/queue/declare.d.ts +5 -0
  226. package/build/queue/declare.d.ts.map +1 -0
  227. package/build/queue/declare.js +5 -0
  228. package/build/queue/declare.js.map +1 -0
  229. package/build/queue/index.d.ts +3 -18
  230. package/build/queue/index.d.ts.map +1 -1
  231. package/build/queue/index.js +2 -7
  232. package/build/queue/index.js.map +1 -1
  233. package/build/queue/types.d.ts +13 -0
  234. package/build/queue/types.d.ts.map +1 -0
  235. package/build/queue/types.js +2 -0
  236. package/build/queue/types.js.map +1 -0
  237. package/build/registry.d.ts +5 -22
  238. package/build/registry.d.ts.map +1 -1
  239. package/build/registry.js +16 -10
  240. package/build/registry.js.map +1 -1
  241. package/build/resources.d.ts +5 -0
  242. package/build/resources.d.ts.map +1 -0
  243. package/build/resources.js +287 -0
  244. package/build/resources.js.map +1 -0
  245. package/build/service.d.ts +3 -16
  246. package/build/service.d.ts.map +1 -1
  247. package/build/service.js +12 -0
  248. package/build/service.js.map +1 -1
  249. package/build/store/commits.d.ts.map +1 -1
  250. package/build/store/commits.js +3 -1
  251. package/build/store/commits.js.map +1 -1
  252. package/build/store/composite.d.ts +1 -0
  253. package/build/store/composite.d.ts.map +1 -1
  254. package/build/store/composite.js +7 -2
  255. package/build/store/composite.js.map +1 -1
  256. package/build/store/consts.local.d.ts +2 -0
  257. package/build/store/consts.local.d.ts.map +1 -0
  258. package/build/store/consts.local.js +2 -0
  259. package/build/store/consts.local.js.map +1 -0
  260. package/build/store/fold/types.d.ts +43 -0
  261. package/build/store/fold/types.d.ts.map +1 -0
  262. package/build/store/fold/types.js +2 -0
  263. package/build/store/fold/types.js.map +1 -0
  264. package/build/store/fold.d.ts +8 -30
  265. package/build/store/fold.d.ts.map +1 -1
  266. package/build/store/fold.js +190 -198
  267. package/build/store/fold.js.map +1 -1
  268. package/build/store/index.d.ts +1 -0
  269. package/build/store/index.d.ts.map +1 -1
  270. package/build/store/index.js.map +1 -1
  271. package/build/store/memory.d.ts +12 -0
  272. package/build/store/memory.d.ts.map +1 -1
  273. package/build/store/memory.js +0 -0
  274. package/build/store/memory.js.map +1 -1
  275. package/build/store/types.d.ts +15 -1
  276. package/build/store/types.d.ts.map +1 -1
  277. package/build/store/types.local.d.ts +5 -0
  278. package/build/store/types.local.d.ts.map +1 -0
  279. package/build/store/types.local.js +2 -0
  280. package/build/store/types.local.js.map +1 -0
  281. package/build/types.d.ts +126 -2
  282. package/build/types.d.ts.map +1 -1
  283. package/build/types.local.d.ts +7 -0
  284. package/build/types.local.d.ts.map +1 -0
  285. package/build/types.local.js +2 -0
  286. package/build/types.local.js.map +1 -0
  287. package/build/utils/access/types.d.ts +30 -0
  288. package/build/utils/access/types.d.ts.map +1 -0
  289. package/build/utils/access/types.js +2 -0
  290. package/build/utils/access/types.js.map +1 -0
  291. package/build/utils/access.d.ts +4 -0
  292. package/build/utils/access.d.ts.map +1 -0
  293. package/build/utils/access.js +28 -0
  294. package/build/utils/access.js.map +1 -0
  295. package/build/utils/guard/types.d.ts +23 -0
  296. package/build/utils/guard/types.d.ts.map +1 -0
  297. package/build/utils/guard/types.js +2 -0
  298. package/build/utils/guard/types.js.map +1 -0
  299. package/build/utils/guard.d.ts +7 -10
  300. package/build/utils/guard.d.ts.map +1 -1
  301. package/build/utils/guard.js +36 -32
  302. package/build/utils/guard.js.map +1 -1
  303. package/build/utils/handler/types.d.ts +26 -0
  304. package/build/utils/handler/types.d.ts.map +1 -0
  305. package/build/utils/handler/types.js +2 -0
  306. package/build/utils/handler/types.js.map +1 -0
  307. package/build/utils/handler.d.ts +6 -0
  308. package/build/utils/handler.d.ts.map +1 -0
  309. package/build/utils/handler.js +21 -0
  310. package/build/utils/handler.js.map +1 -0
  311. package/build/utils/index.d.ts +8 -0
  312. package/build/utils/index.d.ts.map +1 -1
  313. package/build/utils/index.js +3 -0
  314. package/build/utils/index.js.map +1 -1
  315. package/build/utils/request/types.d.ts +23 -0
  316. package/build/utils/request/types.d.ts.map +1 -0
  317. package/build/utils/request/types.js +2 -0
  318. package/build/utils/request/types.js.map +1 -0
  319. package/build/utils/request.d.ts +4 -0
  320. package/build/utils/request.d.ts.map +1 -0
  321. package/build/utils/request.js +27 -0
  322. package/build/utils/request.js.map +1 -0
  323. package/build/utils/scope.d.ts +17 -13
  324. package/build/utils/scope.d.ts.map +1 -1
  325. package/build/utils/scope.js +21 -35
  326. package/build/utils/scope.js.map +1 -1
  327. package/build/utils/types.d.ts +8 -0
  328. package/build/utils/types.d.ts.map +1 -0
  329. package/build/utils/types.js +2 -0
  330. package/build/utils/types.js.map +1 -0
  331. package/package.json +30 -22
  332. package/src/actions/apply-schema-request.ts +36 -0
  333. package/src/actions/commit.ts +7 -5
  334. package/src/actions/define-schemas.ts +34 -0
  335. package/src/actions/execute.ts +32 -34
  336. package/src/actions/execution/types.ts +34 -0
  337. package/src/actions/execution.ts +100 -0
  338. package/src/actions/get-card.ts +14 -0
  339. package/src/actions/get-specification.ts +14 -0
  340. package/src/actions/index.ts +13 -3
  341. package/src/actions/links.ts +8 -6
  342. package/src/actions/list-card-specifications.ts +15 -0
  343. package/src/actions/list-card-transitions.ts +15 -0
  344. package/src/actions/list-cards.ts +14 -0
  345. package/src/actions/list-schemas.ts +29 -0
  346. package/src/actions/list-specification-revisions.ts +15 -0
  347. package/src/actions/resources.ts +79 -0
  348. package/src/actions/summarize-cards.ts +15 -0
  349. package/src/actions/transitions.ts +6 -4
  350. package/src/actions/types.ts +5 -0
  351. package/src/actions/watch.ts +11 -7
  352. package/src/conformance/assert/types.ts +16 -0
  353. package/src/conformance/assert.ts +67 -0
  354. package/src/conformance/cases.ts +631 -0
  355. package/src/conformance/clock.ts +11 -0
  356. package/src/conformance/consts.ts +165 -0
  357. package/src/conformance/errors.ts +7 -0
  358. package/src/conformance/fixtures/types.ts +11 -0
  359. package/src/conformance/fixtures.ts +46 -0
  360. package/src/conformance/index.ts +14 -0
  361. package/src/conformance/resources.ts +227 -0
  362. package/src/conformance/types.ts +20 -0
  363. package/src/consts.ts +6 -0
  364. package/src/definitions.ts +264 -0
  365. package/src/executor/changes/types.ts +38 -0
  366. package/src/executor/changes.ts +49 -68
  367. package/src/executor/code/types.ts +23 -0
  368. package/src/executor/code.ts +62 -69
  369. package/src/executor/consts.local.ts +8 -0
  370. package/src/executor/creator/types.ts +33 -0
  371. package/src/executor/creator.ts +43 -0
  372. package/src/executor/resolve/types.ts +30 -0
  373. package/src/executor/resolve.ts +181 -139
  374. package/src/executor/types.ts +23 -0
  375. package/src/executor/validate.ts +40 -38
  376. package/src/executor.ts +33 -27
  377. package/src/facade.ts +132 -29
  378. package/src/helper.ts +12 -11
  379. package/src/hierarchy/types.ts +20 -0
  380. package/src/hierarchy.ts +113 -0
  381. package/src/index.ts +1 -0
  382. package/src/invariants/types.ts +6 -0
  383. package/src/invariants.ts +106 -0
  384. package/src/projection.ts +12 -18
  385. package/src/queue/consts.ts +5 -0
  386. package/src/queue/declare.ts +7 -0
  387. package/src/queue/index.ts +3 -25
  388. package/src/queue/types.ts +14 -0
  389. package/src/registry.ts +18 -36
  390. package/src/resources.ts +256 -0
  391. package/src/service.ts +16 -20
  392. package/src/store/commits.ts +5 -4
  393. package/src/store/composite.ts +7 -2
  394. package/src/store/consts.local.ts +1 -0
  395. package/src/store/fold/types.ts +44 -0
  396. package/src/store/fold.ts +214 -212
  397. package/src/store/index.ts +1 -0
  398. package/src/store/memory.ts +0 -0
  399. package/src/store/types.local.ts +3 -0
  400. package/src/store/types.ts +16 -1
  401. package/src/types.local.ts +7 -0
  402. package/src/types.ts +139 -6
  403. package/src/utils/access/types.ts +30 -0
  404. package/src/utils/access.ts +33 -0
  405. package/src/utils/guard/types.ts +21 -0
  406. package/src/utils/guard.ts +44 -31
  407. package/src/utils/handler/types.ts +28 -0
  408. package/src/utils/handler.ts +35 -0
  409. package/src/utils/index.ts +9 -0
  410. package/src/utils/request/types.ts +23 -0
  411. package/src/utils/request.ts +40 -0
  412. package/src/utils/scope.ts +39 -42
  413. package/src/utils/types.ts +8 -0
  414. package/tests/access.spec.ts +160 -0
  415. package/tests/app.spec.ts +112 -0
  416. package/tests/conformance.spec.ts +47 -0
  417. package/tests/create-example.spec.ts +202 -0
  418. package/tests/creator.spec.ts +257 -0
  419. package/tests/entrypoints.spec.ts +5 -0
  420. package/tests/memory-store.spec.ts +52 -0
  421. package/tests/narrowing.spec.ts +94 -0
  422. package/tests/plugins.spec.ts +4 -3
  423. package/tests/writes.spec.ts +140 -0
  424. package/build/actions/cards.d.ts +0 -16
  425. package/build/actions/cards.d.ts.map +0 -1
  426. package/build/actions/cards.js +0 -32
  427. package/build/actions/cards.js.map +0 -1
  428. package/build/actions/schemas.d.ts +0 -6
  429. package/build/actions/schemas.d.ts.map +0 -1
  430. package/build/actions/schemas.js +0 -9
  431. package/build/actions/schemas.js.map +0 -1
  432. package/build/actions/specs.d.ts +0 -10
  433. package/build/actions/specs.d.ts.map +0 -1
  434. package/build/actions/specs.js +0 -14
  435. package/build/actions/specs.js.map +0 -1
  436. package/src/actions/cards.ts +0 -52
  437. package/src/actions/schemas.ts +0 -15
  438. package/src/actions/specs.ts +0 -23
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { ChangeSet, PlanningSchemaRegistry, PlanningScope, Transition, TransitionActor, TransitionExecution } from '@owlmeans/planning';
2
+ import type { Resolved } from '../types.js';
3
+ /** What step 11 builds the appended transition from. */
4
+ export interface AppendParams {
5
+ exec: TransitionExecution;
6
+ resolved: Resolved;
7
+ scope: PlanningScope;
8
+ set: ChangeSet;
9
+ cardId: string;
10
+ seq: number;
11
+ project?: string;
12
+ at: string;
13
+ }
14
+ /** The record an execution appends: its changes, its actor and the transition itself. */
15
+ export interface ChangesUtils {
16
+ /**
17
+ * Step 9: the recorded `changes`/`unset`, and whether an update wrote nothing.
18
+ *
19
+ * @throws {IllegalTransition | PlanningError}
20
+ */
21
+ changeSetOf: (exec: TransitionExecution, resolved: Resolved, schemas: PlanningSchemaRegistry, at: string) => {
22
+ set: ChangeSet;
23
+ empty: boolean;
24
+ };
25
+ /**
26
+ * Who wrote it — the SCOPE's identity, never the execution's.
27
+ *
28
+ * `profileId`, `userId`, `service` and `channel` come only from the scope (the server builds it
29
+ * from the authenticated request); the descriptive `agent`/`runId` an in-process caller passes on
30
+ * the execution are kept unless the scope's own actor names them.
31
+ */
32
+ actorOf: (scope: PlanningScope, exec: TransitionExecution) => TransitionActor;
33
+ /** Step 11's record: the event as it is appended, `pending`. */
34
+ transitionOf: (params: AppendParams) => Transition;
35
+ }
36
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/changes/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAAE,sBAAsB,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EACnG,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,aAAa,CAAA;IACpB,GAAG,EAAE,SAAS,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,WAAW,EAAE,CACX,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,KACvF;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAA;IACvC;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,KAAK,eAAe,CAAA;IAC7E,gEAAgE;IAChE,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,UAAU,CAAA;CACnD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/executor/changes/types.ts"],"names":[],"mappings":""}
@@ -1,31 +1,4 @@
1
- import type { ChangeSet, PlanningSchemaRegistry, PlanningScope, Transition, TransitionActor, TransitionExecution } from '@owlmeans/planning';
2
- import type { Resolved } from './resolve.js';
3
- /**
4
- * Step 9: the recorded `changes`/`unset`, and whether an update wrote nothing.
5
- *
6
- * @throws {IllegalTransition | PlanningError}
7
- */
8
- export declare const changeSetOf: (exec: TransitionExecution, resolved: Resolved, schemas: PlanningSchemaRegistry, at: string) => {
9
- set: ChangeSet;
10
- empty: boolean;
11
- };
12
- /**
13
- * Who wrote it — the SCOPE's identity, never the execution's.
14
- *
15
- * `profileId`, `userId`, `service` and `channel` come only from the scope (the server builds it
16
- * from the authenticated request); the descriptive `agent`/`runId` an in-process caller passes on
17
- * the execution are kept unless the scope's own actor names them.
18
- */
19
- export declare const actorOf: (scope: PlanningScope, exec: TransitionExecution) => TransitionActor;
20
- /** Step 11's record: the event as it is appended, `pending`. */
21
- export declare const transitionOf: (params: {
22
- exec: TransitionExecution;
23
- resolved: Resolved;
24
- scope: PlanningScope;
25
- set: ChangeSet;
26
- cardId: string;
27
- seq: number;
28
- project?: string;
29
- at: string;
30
- }) => Transition;
1
+ import type { ChangesUtils } from './changes/types.js';
2
+ export declare const createChangesUtils: () => ChangesUtils;
3
+ export declare const changesUtils: ChangesUtils;
31
4
  //# sourceMappingURL=changes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../src/executor/changes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EAAE,sBAAsB,EAAE,aAAa,EAAqB,UAAU,EAAE,eAAe,EAChG,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAK5C;;;;GAIG;AACH,eAAO,MAAM,WAAW,SAChB,mBAAmB,YAAY,QAAQ,WAAW,sBAAsB,MAAM,MAAM,KACzF;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAKlC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,UAAW,aAAa,QAAQ,mBAAmB,KAAG,eAMxE,CAAA;AAIF,gEAAgE;AAChE,eAAO,MAAM,YAAY,WAAY;IACnC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,aAAa,CAAA;IACpB,GAAG,EAAE,SAAS,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;CACX,KAAG,UA0BH,CAAA"}
1
+ {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../src/executor/changes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,oBAAoB,CAAA;AAMpE,eAAO,MAAM,kBAAkB,QAAO,YAiDrC,CAAA;AAED,eAAO,MAAM,YAAY,cAAuB,CAAA"}
@@ -1,55 +1,46 @@
1
- import { CommitState, computeChanges, isEmptyChange, TransitionAction } from '@owlmeans/planning';
1
+ import { changesHelper, CommitState, TransitionAction } from '@owlmeans/planning';
2
2
  const clean = (record) => Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
3
- /**
4
- * Step 9: the recorded `changes`/`unset`, and whether an update wrote nothing.
5
- *
6
- * @throws {IllegalTransition | PlanningError}
7
- */
8
- export const changeSetOf = (exec, resolved, schemas, at) => {
9
- const set = computeChanges(resolved.card, exec, resolved.type, schemas, at, { slot: resolved.slot });
10
- const empty = exec.action === TransitionAction.Update && isEmptyChange(set);
11
- return { set, empty };
12
- };
13
- /**
14
- * Who wrote it — the SCOPE's identity, never the execution's.
15
- *
16
- * `profileId`, `userId`, `service` and `channel` come only from the scope (the server builds it
17
- * from the authenticated request); the descriptive `agent`/`runId` an in-process caller passes on
18
- * the execution are kept unless the scope's own actor names them.
19
- */
20
- export const actorOf = (scope, exec) => clean({
21
- agent: exec.actor?.agent,
22
- runId: exec.actor?.runId,
23
- ...clean({ profileId: scope.profileId, userId: scope.userId, service: scope.service }),
24
- ...clean(scope.actor ?? {}),
25
- channel: scope.channel ?? scope.actor?.channel,
26
- });
27
- const withFrom = (link, card) => ({ ...link, from: link.from ?? card });
28
- /** Step 11's record: the event as it is appended, `pending`. */
29
- export const transitionOf = (params) => {
30
- const { exec, resolved, scope, set, cardId, seq, project, at } = params;
31
- const kind = resolved.create ? exec.card.kind : resolved.card.kind;
32
- return clean({
33
- entityId: scope.entityId,
34
- card: cardId,
35
- kind,
36
- type: resolved.type.type,
37
- project,
38
- seq,
39
- action: exec.action,
40
- flow: set.flow,
41
- transition: exec.action === TransitionAction.Transit ? exec.transition : undefined,
42
- from: set.from,
43
- to: set.to,
44
- changes: set.changes,
45
- unset: set.unset.length > 0 ? set.unset : undefined,
46
- link: exec.link != null && exec.action !== TransitionAction.Create ? withFrom(exec.link, cardId) : undefined,
47
- links: resolved.create && (exec.links?.length ?? 0) > 0 ? exec.links.map(link => withFrom(link, cardId)) : undefined,
48
- actor: actorOf(scope, exec),
49
- cause: exec.cause,
50
- key: exec.key,
51
- at,
52
- commit: { state: CommitState.Pending },
3
+ export const createChangesUtils = () => {
4
+ const changeSetOf = (exec, resolved, schemas, at) => {
5
+ const set = changesHelper.computeChanges(resolved.card, exec, resolved.type, schemas, at, { slot: resolved.slot });
6
+ const empty = exec.action === TransitionAction.Update && changesHelper.isEmptyChange(set);
7
+ return { set, empty };
8
+ };
9
+ const actorOf = (scope, exec) => clean({
10
+ agent: exec.actor?.agent,
11
+ runId: exec.actor?.runId,
12
+ ...clean({ profileId: scope.profileId, userId: scope.userId, service: scope.service }),
13
+ ...clean(scope.actor ?? {}),
14
+ channel: scope.channel ?? scope.actor?.channel,
53
15
  });
16
+ const withFrom = (link, card) => ({ ...link, from: link.from ?? card });
17
+ const transitionOf = (params) => {
18
+ const { exec, resolved, scope, set, cardId, seq, project, at } = params;
19
+ const kind = resolved.create ? exec.card.kind : resolved.card.kind;
20
+ return clean({
21
+ entityId: scope.entityId,
22
+ card: cardId,
23
+ kind,
24
+ type: resolved.type.type,
25
+ project,
26
+ seq,
27
+ action: exec.action,
28
+ flow: set.flow,
29
+ transition: exec.action === TransitionAction.Transit ? exec.transition : undefined,
30
+ from: set.from,
31
+ to: set.to,
32
+ changes: set.changes,
33
+ unset: set.unset.length > 0 ? set.unset : undefined,
34
+ link: exec.link != null && exec.action !== TransitionAction.Create ? withFrom(exec.link, cardId) : undefined,
35
+ links: resolved.create && (exec.links?.length ?? 0) > 0 ? exec.links.map(link => withFrom(link, cardId)) : undefined,
36
+ actor: actorOf(scope, exec),
37
+ cause: exec.cause,
38
+ key: exec.key,
39
+ at,
40
+ commit: { state: CommitState.Pending },
41
+ });
42
+ };
43
+ return { changeSetOf, actorOf, transitionOf };
54
44
  };
45
+ export const changesUtils = createChangesUtils();
55
46
  //# sourceMappingURL=changes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../src/executor/changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../src/executor/changes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { PlanningExecContext, PlanningPlugin, PlanningScope, TransitionExecution } from '@owlmeans/planning';
2
+ import type { PluginRegistry } from '../../types.js';
3
+ import type { Resolved } from '../types.js';
4
+ /** Step 8 of the write path: the code a card gets, unique within its policy's scope. */
5
+ export interface CodeUtils {
6
+ /**
7
+ * Step 8: the code a new card gets, or the check a changed code passes.
8
+ *
9
+ * A caller-supplied code is checked for uniqueness; otherwise the plugins' `mintCode` chain answers
10
+ * (first answer wins, and is checked too); otherwise the type's policy mints one — a slug policy
11
+ * derives it from the title. A type with no policy and no supplied code gets none.
12
+ *
13
+ * @throws {CodeTaken}
14
+ */
15
+ assignCode: (exec: TransitionExecution, resolved: Resolved, scope: PlanningScope, registry: PluginRegistry, contextOf: (plugin: PlanningPlugin) => PlanningExecContext) => Promise<TransitionExecution>;
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/code/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACjH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,wFAAwF;AACxF,MAAM,WAAW,SAAS;IACxB;;;;;;;;OAQG;IACH,UAAU,EAAE,CACV,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,mBAAmB,KACvD,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAClC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/executor/code/types.ts"],"names":[],"mappings":""}
@@ -1,15 +1,4 @@
1
- import type { PlanningExecContext, PlanningPlugin, PlanningScope, TransitionExecution } from '@owlmeans/planning';
2
- import type { PluginRegistry } from '../registry.js';
3
- import type { Resolved } from './resolve.js';
4
- export declare const takenProbe: (resolved: Resolved, scope: PlanningScope, parent: string | undefined) => (code: string) => Promise<boolean>;
5
- /**
6
- * Step 8: the code a new card gets, or the check a changed code passes.
7
- *
8
- * A caller-supplied code is checked for uniqueness; otherwise the plugins' `mintCode` chain answers
9
- * (first answer wins, and is checked too); otherwise the type's policy mints one — a slug policy
10
- * derives it from the title. A type with no policy and no supplied code gets none.
11
- *
12
- * @throws {CodeTaken}
13
- */
14
- export declare const assignCode: (exec: TransitionExecution, resolved: Resolved, scope: PlanningScope, registry: PluginRegistry, contextOf: (plugin: PlanningPlugin) => PlanningExecContext) => Promise<TransitionExecution>;
1
+ import type { CodeUtils } from './code/types.js';
2
+ export declare const createCodeUtils: () => CodeUtils;
3
+ export declare const codeUtils: CodeUtils;
15
4
  //# sourceMappingURL=code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/executor/code.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EACpF,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAW5C,eAAO,MAAM,UAAU,aAAc,QAAQ,SAAS,aAAa,UAAU,MAAM,GAAG,SAAS,YAGzE,MAAM,KAAG,OAAO,CAAC,OAAO,CAE7C,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,SACf,mBAAmB,YACf,QAAQ,SACX,aAAa,YACV,cAAc,aACb,CAAC,MAAM,EAAE,cAAc,KAAK,mBAAmB,KACzD,OAAO,CAAC,mBAAmB,CAwC7B,CAAA"}
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/executor/code.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,eAAO,MAAM,eAAe,QAAO,SAmElC,CAAA;AAED,eAAO,MAAM,SAAS,WAAoB,CAAA"}
@@ -1,59 +1,55 @@
1
- import { CODE_MINT_ATTEMPTS, CodeScope, CodeStyle, CodeTaken, mintCode, TransitionAction, } from '@owlmeans/planning';
2
- /** The criteria a code must be unique within — the policy's scope, `parent` when there is none. */
3
- const scopeCriteria = (scope, type, parent, policy) => ({
4
- entityId: scope.entityId,
5
- type,
6
- ...((policy?.uniqueWithin ?? CodeScope.Parent) === CodeScope.Parent ? { parent: parent ?? null } : {}),
7
- });
8
- export const takenProbe = (resolved, scope, parent) => {
9
- const base = scopeCriteria(scope, resolved.type.type, parent, resolved.type.code);
10
- return async (code) => await resolved.store.cards.count({ ...base, code }) > 0;
11
- };
12
- /**
13
- * Step 8: the code a new card gets, or the check a changed code passes.
14
- *
15
- * A caller-supplied code is checked for uniqueness; otherwise the plugins' `mintCode` chain answers
16
- * (first answer wins, and is checked too); otherwise the type's policy mints one — a slug policy
17
- * derives it from the title. A type with no policy and no supplied code gets none.
18
- *
19
- * @throws {CodeTaken}
20
- */
21
- export const assignCode = async (exec, resolved, scope, registry, contextOf) => {
22
- const policy = resolved.type.code;
23
- if (exec.action !== TransitionAction.Create) {
24
- const code = exec.changes?.code;
25
- if (code != null && code !== resolved.card?.code
26
- && await takenProbe(resolved, scope, exec.changes?.parent ?? resolved.card?.parent)(code)) {
27
- throw new CodeTaken(code);
1
+ import { CODE_MINT_ATTEMPTS, codeHelper, CodeScope, CodeStyle, CodeTaken, TransitionAction } from '@owlmeans/planning';
2
+ export const createCodeUtils = () => {
3
+ /** The criteria a code must be unique within — the policy's scope, `parent` when there is none. */
4
+ const scopeCriteria = (scope, type, parent, policy) => ({
5
+ entityId: scope.entityId,
6
+ type,
7
+ ...((policy?.uniqueWithin ?? CodeScope.Parent) === CodeScope.Parent ? { parent: parent ?? null } : {}),
8
+ });
9
+ /** Is a code taken within the scope the type's policy names (its parent when it names none)? */
10
+ const takenProbe = (resolved, scope, parent) => {
11
+ const base = scopeCriteria(scope, resolved.type.type, parent, resolved.type.code);
12
+ return async (code) => await resolved.store.cards.count({ ...base, code }) > 0;
13
+ };
14
+ const assignCode = async (exec, resolved, scope, registry, contextOf) => {
15
+ const policy = resolved.type.code;
16
+ if (exec.action !== TransitionAction.Create) {
17
+ const code = exec.changes?.code;
18
+ if (code != null && code !== resolved.card?.code
19
+ && await takenProbe(resolved, scope, exec.changes?.parent ?? resolved.card?.parent)(code)) {
20
+ throw new CodeTaken(code);
21
+ }
22
+ return exec;
23
+ }
24
+ const draft = exec.card;
25
+ const taken = takenProbe(resolved, scope, draft.parent);
26
+ if (draft.code != null && draft.code !== '') {
27
+ if (await taken(draft.code)) {
28
+ throw new CodeTaken(draft.code);
29
+ }
30
+ return exec;
31
+ }
32
+ if (policy == null) {
33
+ return exec;
28
34
  }
29
- return exec;
30
- }
31
- const draft = exec.card;
32
- const taken = takenProbe(resolved, scope, draft.parent);
33
- if (draft.code != null && draft.code !== '') {
34
- if (await taken(draft.code)) {
35
- throw new CodeTaken(draft.code);
35
+ let code = await registry.mintCode(draft, taken, contextOf);
36
+ if (code != null) {
37
+ if (await taken(code)) {
38
+ throw new CodeTaken(code);
39
+ }
36
40
  }
37
- return exec;
38
- }
39
- if (policy == null) {
40
- return exec;
41
- }
42
- let code = await registry.mintCode(draft, taken, contextOf);
43
- if (code != null) {
44
- if (await taken(code)) {
45
- throw new CodeTaken(code);
41
+ else {
42
+ const count = policy.style === CodeStyle.Sequential
43
+ ? await resolved.store.cards.count(scopeCriteria(scope, draft.type, draft.parent, policy))
44
+ : undefined;
45
+ code = await codeHelper.mintCode(policy, taken, CODE_MINT_ATTEMPTS, {
46
+ ...(policy.style === CodeStyle.Slug ? { seed: draft.title } : {}),
47
+ ...(count != null ? { count } : {}),
48
+ });
46
49
  }
47
- }
48
- else {
49
- const count = policy.style === CodeStyle.Sequential
50
- ? await resolved.store.cards.count(scopeCriteria(scope, draft.type, draft.parent, policy))
51
- : undefined;
52
- code = await mintCode(policy, taken, CODE_MINT_ATTEMPTS, {
53
- ...(policy.style === CodeStyle.Slug ? { seed: draft.title } : {}),
54
- ...(count != null ? { count } : {}),
55
- });
56
- }
57
- return { ...exec, card: { ...draft, code } };
50
+ return { ...exec, card: { ...draft, code } };
51
+ };
52
+ return { assignCode };
58
53
  };
54
+ export const codeUtils = createCodeUtils();
59
55
  //# sourceMappingURL=code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/executor/code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/executor/code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** The field a create's draft writes once and nothing moves afterwards. */
2
+ export declare const CREATOR = "createdBy";
3
+ export declare const TRIMMED: readonly ['title', 'description', 'code'];
4
+ export declare const ACTIONS: Set<string>;
5
+ //# sourceMappingURL=consts.local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.local.d.ts","sourceRoot":"","sources":["../../src/executor/consts.local.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,eAAO,MAAM,OAAO,cAAc,CAAA;AAElC,eAAO,MAAM,OAAO,YAAI,OAAO,EAAE,aAAa,EAAE,MAAM,CAAU,CAAA;AAEhE,eAAO,MAAM,OAAO,aAAmD,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { TransitionAction } from '@owlmeans/planning';
2
+ /** The field a create's draft writes once and nothing moves afterwards. */
3
+ export const CREATOR = 'createdBy';
4
+ export const TRIMMED = ['title', 'description', 'code'];
5
+ export const ACTIONS = new Set(Object.values(TransitionAction));
6
+ //# sourceMappingURL=consts.local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.local.js","sourceRoot":"","sources":["../../src/executor/consts.local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAA;AAElC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAU,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,33 @@
1
+ import type { PlanningScope, TransitionExecution } from '@owlmeans/planning';
2
+ /** Who owns a card: `createdBy`, stamped from the scope on a create and fixed after it. */
3
+ export interface CreatorHelper {
4
+ /**
5
+ * The subject a create made under `scope` is stamped with as its `createdBy`: the scope's
6
+ * `profileId`, else its `userId`, else the same two of its `actor` — the authenticated subject an
7
+ * HTTP scope carries, in the same format. `undefined` for a scope that names nobody (a service or a
8
+ * system scope).
9
+ */
10
+ creatorOf: (scope: PlanningScope) => string | undefined;
11
+ /**
12
+ * A create's draft with `createdBy` defaulted to {@link CreatorHelper.creatorOf} the scope. A
13
+ * `createdBy` the caller supplied wins; a scope that names nobody leaves the draft as it is;
14
+ * anything but a create is returned untouched. Never mutates `exec`.
15
+ *
16
+ * The executor applies it to every execution, so an in-process facade create and a wire create
17
+ * stamp the same value.
18
+ */
19
+ withCreator: (exec: TransitionExecution, scope: PlanningScope) => TransitionExecution;
20
+ /**
21
+ * Refuse an execution that names `createdBy` in `changes` or `unset`, whatever the action — a
22
+ * create included, whose owner is its draft's. After the create it never moves, so an ownership
23
+ * check (`card.createdBy === profileId`) cannot be bypassed by anyone allowed to update the card.
24
+ *
25
+ * The executor runs it with the immutables of step 6, after the `before` chain, so a wire body, an
26
+ * in-process caller and a plugin are refused alike. It is the executor's own check, whatever
27
+ * `@owlmeans/planning` build `changesHelper.assertMutable` comes from.
28
+ *
29
+ * @throws {PlanningError} `planning:immutable:createdBy`
30
+ */
31
+ assertCreatorFixed: (exec: TransitionExecution) => void;
32
+ }
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/creator/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE5E,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAA;IACvD;;;;;;;OAOG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,KAAK,mBAAmB,CAAA;IACrF;;;;;;;;;;OAUG;IACH,kBAAkB,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAA;CACxD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/executor/creator/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { type PlanningScope, type TransitionExecution } from '@owlmeans/planning';
2
+ import type { CreatorHelper } from './creator/types.js';
3
+ export declare const createCreatorHelper: () => CreatorHelper;
4
+ export declare const creatorHelper: CreatorHelper;
5
+ /** @deprecated compat:factory-refactor — use `creatorHelper.creatorOf(…)` */
6
+ export declare const creatorOf: (scope: PlanningScope) => string | undefined;
7
+ /** @deprecated compat:factory-refactor — use `creatorHelper.withCreator(…)` */
8
+ export declare const withCreator: (exec: TransitionExecution, scope: PlanningScope) => TransitionExecution;
9
+ /** @deprecated compat:factory-refactor — use `creatorHelper.assertCreatorFixed(…)` */
10
+ export declare const assertCreatorFixed: (exec: TransitionExecution) => void;
11
+ //# sourceMappingURL=creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator.d.ts","sourceRoot":"","sources":["../../src/executor/creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAElH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIvD,eAAO,MAAM,mBAAmB,QAAO,aAwBtC,CAAA;AAED,eAAO,MAAM,aAAa,eAAwB,CAAA;AAElD,6EAA6E;AAC7E,eAAO,MAAM,SAAS,UAAW,aAAa,KAAG,MAAM,GAAG,SAA2C,CAAA;AAErG,+EAA+E;AAC/E,eAAO,MAAM,WAAW,SAAU,mBAAmB,SAAS,aAAa,KAAG,mBACtC,CAAA;AAExC,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,SAAU,mBAAmB,KAAG,IAA8C,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { PlanningError, TransitionAction } from '@owlmeans/planning';
2
+ import { CREATOR } from './consts.local.js';
3
+ const named = (value) => value != null && value !== '';
4
+ export const createCreatorHelper = () => {
5
+ const creatorOf = (scope) => [scope.profileId, scope.userId, scope.actor?.profileId, scope.actor?.userId].find(named);
6
+ const withCreator = (exec, scope) => {
7
+ if (exec.action !== TransitionAction.Create || exec.card == null || typeof exec.card !== 'object') {
8
+ return exec;
9
+ }
10
+ const creator = named(exec.card.createdBy) ? exec.card.createdBy : creatorOf(scope);
11
+ return { ...exec, card: { ...exec.card,
12
+ ...(creator != null ? { createdBy: creator } : {}),
13
+ ...(exec.card.reporter == null && scope.assigneeId != null ? { reporter: scope.assigneeId } : {}),
14
+ ...(exec.card.assignee == null && scope.defaultAssigneeId != null ? { assignee: scope.defaultAssigneeId } : {}),
15
+ } };
16
+ };
17
+ const assertCreatorFixed = (exec) => {
18
+ if (exec.changes?.[CREATOR] !== undefined
19
+ || (exec.unset ?? []).some(path => path.split('.')[0] === CREATOR)) {
20
+ throw new PlanningError(`immutable:${CREATOR}`);
21
+ }
22
+ };
23
+ return { creatorOf, withCreator, assertCreatorFixed };
24
+ };
25
+ export const creatorHelper = createCreatorHelper();
26
+ /** @deprecated compat:factory-refactor — use `creatorHelper.creatorOf(…)` */
27
+ export const creatorOf = (scope) => creatorHelper.creatorOf(scope);
28
+ /** @deprecated compat:factory-refactor — use `creatorHelper.withCreator(…)` */
29
+ export const withCreator = (exec, scope) => creatorHelper.withCreator(exec, scope);
30
+ /** @deprecated compat:factory-refactor — use `creatorHelper.assertCreatorFixed(…)` */
31
+ export const assertCreatorFixed = (exec) => creatorHelper.assertCreatorFixed(exec);
32
+ //# sourceMappingURL=creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator.js","sourceRoot":"","sources":["../../src/executor/creator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { PlanningFacade, PlanningSchemaRegistry, TransitionExecution, Workcard, WorkcardKind } from '@owlmeans/planning';
2
+ import type { Resolved } from '../types.js';
3
+ /** Steps 1 and 4 of the write path, over one service runtime. */
4
+ export interface ResolveUtils {
5
+ /**
6
+ * Step 1: a deep copy with trimmed text, `parents ∋ parent` on a draft, and no duplicate `unset`
7
+ * paths. The caller's object is never touched.
8
+ */
9
+ normalizeExecution: (input: TransitionExecution) => TransitionExecution;
10
+ /**
11
+ * The parent type's rule for a child of `kind`/`type`: a project lists the `cardTypes` (and
12
+ * `projectTypes`) it admits, and one declaring `scopedCardTypes` also admits a card type its layer
13
+ * (`view`, the parent project's resolved schemas) defines as data. Project types are code's alone.
14
+ *
15
+ * @throws {CardTypeNotAllowed}
16
+ */
17
+ assertChildAllowed: (parent: Workcard, kind: WorkcardKind, type: string, view?: PlanningSchemaRegistry) => void;
18
+ /** The layer a parent project admits data-defined children through — `undefined` without a schema port. */
19
+ childViewOf: (entityId: string, parent: Workcard) => Promise<PlanningSchemaRegistry | undefined>;
20
+ /**
21
+ * Step 4: the card, its type and flow, its parent and — for a specification — its slot.
22
+ *
23
+ * @throws {WorkcardNotFound | PlanningScopeMismatch | UnknownWorkcardType | UnknownStatusFlow}
24
+ * @throws {ParentNotFound | CardTypeNotAllowed | PlanningError}
25
+ */
26
+ resolveExecution: (facade: PlanningFacade, exec: TransitionExecution) => Promise<Resolved>;
27
+ /** The project a transition is filed under: a project's own id, else its parent's project. */
28
+ projectFor: (resolved: Resolved, exec: TransitionExecution, cardId: string) => string | undefined;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executor/resolve/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC7H,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,mBAAmB,CAAA;IACvE;;;;;;OAMG;IACH,kBAAkB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAA;IAC/G,2GAA2G;IAC3G,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,KAAK,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAA;IAChG;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC1F,8FAA8F;IAC9F,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;CAClG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/executor/resolve/types.ts"],"names":[],"mappings":""}