@ketvietlab/ketsuite 0.1.29 → 0.1.30

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 (762) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/modules/account_backend/index.js +0 -6
  3. package/dist/modules/account_backend/index.js.map +1 -1
  4. package/dist/modules/account_backend/screens/account-defaults.d.ts.map +1 -1
  5. package/dist/modules/account_backend/screens/account-defaults.js +1 -1
  6. package/dist/modules/account_backend/screens/account-defaults.js.map +1 -1
  7. package/dist/modules/account_backend/screens/account-form.d.ts.map +1 -1
  8. package/dist/modules/account_backend/screens/account-form.js +3 -1
  9. package/dist/modules/account_backend/screens/account-form.js.map +1 -1
  10. package/dist/modules/account_backend/screens/accounts-list.d.ts.map +1 -1
  11. package/dist/modules/account_backend/screens/accounts-list.js +1 -1
  12. package/dist/modules/account_backend/screens/accounts-list.js.map +1 -1
  13. package/dist/modules/account_backend/screens/customer-invoice-form.d.ts.map +1 -1
  14. package/dist/modules/account_backend/screens/customer-invoice-form.js +1 -1
  15. package/dist/modules/account_backend/screens/customer-invoice-form.js.map +1 -1
  16. package/dist/modules/account_backend/screens/customer-invoices-list.d.ts.map +1 -1
  17. package/dist/modules/account_backend/screens/customer-invoices-list.js +1 -1
  18. package/dist/modules/account_backend/screens/customer-invoices-list.js.map +1 -1
  19. package/dist/modules/account_backend/screens/journal-entries-list.d.ts.map +1 -1
  20. package/dist/modules/account_backend/screens/journal-entries-list.js +1 -1
  21. package/dist/modules/account_backend/screens/journal-entries-list.js.map +1 -1
  22. package/dist/modules/account_backend/screens/journal-entry-create.d.ts.map +1 -1
  23. package/dist/modules/account_backend/screens/journal-entry-create.js +1 -1
  24. package/dist/modules/account_backend/screens/journal-entry-create.js.map +1 -1
  25. package/dist/modules/account_backend/screens/journal-form.d.ts.map +1 -1
  26. package/dist/modules/account_backend/screens/journal-form.js +3 -3
  27. package/dist/modules/account_backend/screens/journal-form.js.map +1 -1
  28. package/dist/modules/account_backend/screens/journals-list.d.ts.map +1 -1
  29. package/dist/modules/account_backend/screens/journals-list.js +1 -1
  30. package/dist/modules/account_backend/screens/journals-list.js.map +1 -1
  31. package/dist/modules/account_backend/screens/move-detail.d.ts.map +1 -1
  32. package/dist/modules/account_backend/screens/move-detail.js +3 -1
  33. package/dist/modules/account_backend/screens/move-detail.js.map +1 -1
  34. package/dist/modules/account_backend/screens/opening-balances.d.ts.map +1 -1
  35. package/dist/modules/account_backend/screens/opening-balances.js +2 -2
  36. package/dist/modules/account_backend/screens/opening-balances.js.map +1 -1
  37. package/dist/modules/account_backend/screens/overview.js +4 -2
  38. package/dist/modules/account_backend/screens/overview.js.map +1 -1
  39. package/dist/modules/account_backend/screens/payment-form.d.ts.map +1 -1
  40. package/dist/modules/account_backend/screens/payment-form.js +1 -1
  41. package/dist/modules/account_backend/screens/payment-form.js.map +1 -1
  42. package/dist/modules/account_backend/screens/payment-term-form.d.ts.map +1 -1
  43. package/dist/modules/account_backend/screens/payment-term-form.js +4 -2
  44. package/dist/modules/account_backend/screens/payment-term-form.js.map +1 -1
  45. package/dist/modules/account_backend/screens/payment-terms-list.d.ts.map +1 -1
  46. package/dist/modules/account_backend/screens/payment-terms-list.js +1 -1
  47. package/dist/modules/account_backend/screens/payment-terms-list.js.map +1 -1
  48. package/dist/modules/account_backend/screens/payments-list.d.ts.map +1 -1
  49. package/dist/modules/account_backend/screens/payments-list.js +1 -1
  50. package/dist/modules/account_backend/screens/payments-list.js.map +1 -1
  51. package/dist/modules/account_backend/screens/period-closes.d.ts.map +1 -1
  52. package/dist/modules/account_backend/screens/period-closes.js +1 -1
  53. package/dist/modules/account_backend/screens/period-closes.js.map +1 -1
  54. package/dist/modules/account_backend/screens/tax-form.d.ts.map +1 -1
  55. package/dist/modules/account_backend/screens/tax-form.js +3 -1
  56. package/dist/modules/account_backend/screens/tax-form.js.map +1 -1
  57. package/dist/modules/account_backend/screens/taxes-list.d.ts.map +1 -1
  58. package/dist/modules/account_backend/screens/taxes-list.js +1 -1
  59. package/dist/modules/account_backend/screens/taxes-list.js.map +1 -1
  60. package/dist/modules/account_backend/screens/vendor-bill-form.d.ts.map +1 -1
  61. package/dist/modules/account_backend/screens/vendor-bill-form.js +1 -1
  62. package/dist/modules/account_backend/screens/vendor-bill-form.js.map +1 -1
  63. package/dist/modules/account_backend/screens/vendor-bills-list.d.ts.map +1 -1
  64. package/dist/modules/account_backend/screens/vendor-bills-list.js +1 -1
  65. package/dist/modules/account_backend/screens/vendor-bills-list.js.map +1 -1
  66. package/dist/modules/account_partner_backend/screens/accounting-terms.d.ts.map +1 -1
  67. package/dist/modules/account_partner_backend/screens/accounting-terms.js +1 -1
  68. package/dist/modules/account_partner_backend/screens/accounting-terms.js.map +1 -1
  69. package/dist/modules/activity_backend/index.d.ts.map +1 -1
  70. package/dist/modules/activity_backend/index.js +0 -2
  71. package/dist/modules/activity_backend/index.js.map +1 -1
  72. package/dist/modules/activity_backend/screens/activities-list.d.ts.map +1 -1
  73. package/dist/modules/activity_backend/screens/activities-list.js +1 -1
  74. package/dist/modules/activity_backend/screens/activities-list.js.map +1 -1
  75. package/dist/modules/address_backend/index.d.ts.map +1 -1
  76. package/dist/modules/address_backend/index.js +0 -2
  77. package/dist/modules/address_backend/index.js.map +1 -1
  78. package/dist/modules/address_backend/screens/catalogs-list.d.ts.map +1 -1
  79. package/dist/modules/address_backend/screens/catalogs-list.js +1 -1
  80. package/dist/modules/address_backend/screens/catalogs-list.js.map +1 -1
  81. package/dist/modules/attendance_backend/screens/credentials.d.ts.map +1 -1
  82. package/dist/modules/attendance_backend/screens/credentials.js +1 -1
  83. package/dist/modules/attendance_backend/screens/credentials.js.map +1 -1
  84. package/dist/modules/attendance_backend/screens/period.d.ts.map +1 -1
  85. package/dist/modules/attendance_backend/screens/period.js +1 -1
  86. package/dist/modules/attendance_backend/screens/period.js.map +1 -1
  87. package/dist/modules/backend/current-company.d.ts +4 -0
  88. package/dist/modules/backend/current-company.d.ts.map +1 -0
  89. package/dist/modules/backend/current-company.js +27 -0
  90. package/dist/modules/backend/current-company.js.map +1 -0
  91. package/dist/modules/backend/design/client/backend-shell.d.mts +2 -2
  92. package/dist/modules/backend/design/client/backend-shell.d.mts.map +1 -1
  93. package/dist/modules/backend/design/client/backend-shell.mjs +1 -1
  94. package/dist/modules/backend/design/client/backend-shell.mjs.map +4 -4
  95. package/dist/modules/backend/design/client/ket-table.d.mts +2 -2
  96. package/dist/modules/backend/design/client/ket-table.d.mts.map +1 -1
  97. package/dist/modules/backend/design/client/ket-table.mjs +1 -1
  98. package/dist/modules/backend/design/client/ket-table.mjs.map +3 -3
  99. package/dist/modules/backend/design/client/search-filter.d.mts +2 -2
  100. package/dist/modules/backend/design/client/search-filter.d.mts.map +1 -1
  101. package/dist/modules/backend/design/client/search-filter.mjs +1 -1
  102. package/dist/modules/backend/design/client/search-filter.mjs.map +3 -3
  103. package/dist/modules/backend/design/forms.css +31 -0
  104. package/dist/modules/backend/index.d.ts +1 -0
  105. package/dist/modules/backend/index.d.ts.map +1 -1
  106. package/dist/modules/backend/index.js +1 -0
  107. package/dist/modules/backend/index.js.map +1 -1
  108. package/dist/modules/backend/optional-read.d.ts +4 -0
  109. package/dist/modules/backend/optional-read.d.ts.map +1 -0
  110. package/dist/modules/backend/optional-read.js +7 -0
  111. package/dist/modules/backend/optional-read.js.map +1 -0
  112. package/dist/modules/company_backend/index.d.ts.map +1 -1
  113. package/dist/modules/company_backend/index.js +0 -2
  114. package/dist/modules/company_backend/index.js.map +1 -1
  115. package/dist/modules/company_backend/screens/branch-form.d.ts.map +1 -1
  116. package/dist/modules/company_backend/screens/branch-form.js +3 -1
  117. package/dist/modules/company_backend/screens/branch-form.js.map +1 -1
  118. package/dist/modules/company_backend/screens/companies-list.d.ts.map +1 -1
  119. package/dist/modules/company_backend/screens/companies-list.js +1 -1
  120. package/dist/modules/company_backend/screens/companies-list.js.map +1 -1
  121. package/dist/modules/company_backend/screens/company-form.d.ts.map +1 -1
  122. package/dist/modules/company_backend/screens/company-form.js +1 -3
  123. package/dist/modules/company_backend/screens/company-form.js.map +1 -1
  124. package/dist/modules/company_backend/screens/context.d.ts.map +1 -1
  125. package/dist/modules/company_backend/screens/context.js +1 -1
  126. package/dist/modules/company_backend/screens/context.js.map +1 -1
  127. package/dist/modules/company_backend/screens/hierarchy.d.ts.map +1 -1
  128. package/dist/modules/company_backend/screens/hierarchy.js +1 -1
  129. package/dist/modules/company_backend/screens/hierarchy.js.map +1 -1
  130. package/dist/modules/crm_backend/client/crm-case-modal.d.mts +7 -7
  131. package/dist/modules/crm_backend/client/crm-case-modal.d.mts.map +1 -1
  132. package/dist/modules/crm_backend/client/crm-case-modal.mjs +1 -1
  133. package/dist/modules/crm_backend/client/crm-case-modal.mjs.map +3 -3
  134. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts +50 -50
  135. package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts.map +1 -1
  136. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs +1 -1
  137. package/dist/modules/crm_backend/client/crm-configuration-modal.mjs.map +3 -3
  138. package/dist/modules/crm_backend/messages.d.ts +0 -10
  139. package/dist/modules/crm_backend/messages.d.ts.map +1 -1
  140. package/dist/modules/crm_backend/messages.js +0 -10
  141. package/dist/modules/crm_backend/messages.js.map +1 -1
  142. package/dist/modules/crm_backend/screens/activity-planner.d.ts.map +1 -1
  143. package/dist/modules/crm_backend/screens/activity-planner.js +1 -1
  144. package/dist/modules/crm_backend/screens/activity-planner.js.map +1 -1
  145. package/dist/modules/crm_backend/screens/case-create.d.ts.map +1 -1
  146. package/dist/modules/crm_backend/screens/case-create.js +1 -1
  147. package/dist/modules/crm_backend/screens/case-create.js.map +1 -1
  148. package/dist/modules/crm_backend/screens/case-detail.d.ts.map +1 -1
  149. package/dist/modules/crm_backend/screens/case-detail.js +2 -2
  150. package/dist/modules/crm_backend/screens/case-detail.js.map +1 -1
  151. package/dist/modules/crm_backend/screens/cases-list.d.ts.map +1 -1
  152. package/dist/modules/crm_backend/screens/cases-list.js +1 -1
  153. package/dist/modules/crm_backend/screens/cases-list.js.map +1 -1
  154. package/dist/modules/crm_backend/screens/configuration.d.ts.map +1 -1
  155. package/dist/modules/crm_backend/screens/configuration.js +1 -1
  156. package/dist/modules/crm_backend/screens/configuration.js.map +1 -1
  157. package/dist/modules/crm_backend/screens/leaderboard.d.ts.map +1 -1
  158. package/dist/modules/crm_backend/screens/leaderboard.js +1 -1
  159. package/dist/modules/crm_backend/screens/leaderboard.js.map +1 -1
  160. package/dist/modules/crm_backend/screens/pipeline.d.ts.map +1 -1
  161. package/dist/modules/crm_backend/screens/pipeline.js +1 -1
  162. package/dist/modules/crm_backend/screens/pipeline.js.map +1 -1
  163. package/dist/modules/flow/domain/command-check.d.ts +3 -0
  164. package/dist/modules/flow/domain/command-check.d.ts.map +1 -0
  165. package/dist/modules/flow/domain/command-check.js +9 -0
  166. package/dist/modules/flow/domain/command-check.js.map +1 -0
  167. package/dist/modules/flow/domain/command.d.ts +33 -0
  168. package/dist/modules/flow/domain/command.d.ts.map +1 -0
  169. package/dist/modules/flow/domain/command.js +35 -0
  170. package/dist/modules/flow/domain/command.js.map +1 -0
  171. package/dist/modules/flow/domain/issue-bulk.d.ts +50 -0
  172. package/dist/modules/flow/domain/issue-bulk.d.ts.map +1 -0
  173. package/dist/modules/flow/domain/issue-bulk.js +97 -0
  174. package/dist/modules/flow/domain/issue-bulk.js.map +1 -0
  175. package/dist/modules/flow/domain/issue-dependency.d.ts +19 -0
  176. package/dist/modules/flow/domain/issue-dependency.d.ts.map +1 -0
  177. package/dist/modules/flow/domain/issue-dependency.js +59 -0
  178. package/dist/modules/flow/domain/issue-dependency.js.map +1 -0
  179. package/dist/modules/flow/domain/issue-discussion.d.ts +52 -0
  180. package/dist/modules/flow/domain/issue-discussion.d.ts.map +1 -0
  181. package/dist/modules/flow/domain/issue-discussion.js +114 -0
  182. package/dist/modules/flow/domain/issue-discussion.js.map +1 -0
  183. package/dist/modules/flow/domain/issue-transfer.d.ts +62 -0
  184. package/dist/modules/flow/domain/issue-transfer.d.ts.map +1 -0
  185. package/dist/modules/flow/domain/issue-transfer.js +171 -0
  186. package/dist/modules/flow/domain/issue-transfer.js.map +1 -0
  187. package/dist/modules/flow/domain/issue-validation.d.ts +68 -0
  188. package/dist/modules/flow/domain/issue-validation.d.ts.map +1 -0
  189. package/dist/modules/flow/domain/issue-validation.js +136 -0
  190. package/dist/modules/flow/domain/issue-validation.js.map +1 -0
  191. package/dist/modules/flow/domain/issue-write.d.ts +118 -0
  192. package/dist/modules/flow/domain/issue-write.d.ts.map +1 -0
  193. package/dist/modules/flow/domain/issue-write.js +372 -0
  194. package/dist/modules/flow/domain/issue-write.js.map +1 -0
  195. package/dist/modules/flow/domain/sprint-lifecycle.d.ts +61 -0
  196. package/dist/modules/flow/domain/sprint-lifecycle.d.ts.map +1 -0
  197. package/dist/modules/flow/domain/sprint-lifecycle.js +145 -0
  198. package/dist/modules/flow/domain/sprint-lifecycle.js.map +1 -0
  199. package/dist/modules/flow/functions/board.d.ts +7 -0
  200. package/dist/modules/flow/functions/board.d.ts.map +1 -0
  201. package/dist/modules/flow/functions/board.js +59 -0
  202. package/dist/modules/flow/functions/board.js.map +1 -0
  203. package/dist/modules/flow/functions/column.d.ts +8 -0
  204. package/dist/modules/flow/functions/column.d.ts.map +1 -0
  205. package/dist/modules/flow/functions/column.js +64 -0
  206. package/dist/modules/flow/functions/column.js.map +1 -0
  207. package/dist/modules/flow/functions/effects.d.ts +21 -0
  208. package/dist/modules/flow/functions/effects.d.ts.map +1 -0
  209. package/dist/modules/flow/functions/effects.js +96 -0
  210. package/dist/modules/flow/functions/effects.js.map +1 -0
  211. package/dist/modules/flow/functions/entity-save.d.ts +4 -0
  212. package/dist/modules/flow/functions/entity-save.d.ts.map +1 -0
  213. package/dist/modules/flow/functions/entity-save.js +60 -0
  214. package/dist/modules/flow/functions/entity-save.js.map +1 -0
  215. package/dist/modules/flow/functions/epic.d.ts +26 -0
  216. package/dist/modules/flow/functions/epic.d.ts.map +1 -0
  217. package/dist/modules/flow/functions/epic.js +151 -0
  218. package/dist/modules/flow/functions/epic.js.map +1 -0
  219. package/dist/modules/flow/functions/field.d.ts +9 -0
  220. package/dist/modules/flow/functions/field.d.ts.map +1 -0
  221. package/dist/modules/flow/functions/field.js +117 -0
  222. package/dist/modules/flow/functions/field.js.map +1 -0
  223. package/dist/modules/flow/functions/index.d.ts +5 -0
  224. package/dist/modules/flow/functions/index.d.ts.map +1 -0
  225. package/dist/modules/flow/functions/index.js +42 -0
  226. package/dist/modules/flow/functions/index.js.map +1 -0
  227. package/dist/modules/flow/functions/issue-batch.d.ts +6 -0
  228. package/dist/modules/flow/functions/issue-batch.d.ts.map +1 -0
  229. package/dist/modules/flow/functions/issue-batch.js +149 -0
  230. package/dist/modules/flow/functions/issue-batch.js.map +1 -0
  231. package/dist/modules/flow/functions/issue-dependency.d.ts +8 -0
  232. package/dist/modules/flow/functions/issue-dependency.d.ts.map +1 -0
  233. package/dist/modules/flow/functions/issue-dependency.js +54 -0
  234. package/dist/modules/flow/functions/issue-dependency.js.map +1 -0
  235. package/dist/modules/flow/functions/issue-discussion.d.ts +6 -0
  236. package/dist/modules/flow/functions/issue-discussion.d.ts.map +1 -0
  237. package/dist/modules/flow/functions/issue-discussion.js +86 -0
  238. package/dist/modules/flow/functions/issue-discussion.js.map +1 -0
  239. package/dist/modules/flow/functions/issue-read.d.ts +18 -0
  240. package/dist/modules/flow/functions/issue-read.d.ts.map +1 -0
  241. package/dist/modules/flow/functions/issue-read.js +159 -0
  242. package/dist/modules/flow/functions/issue-read.js.map +1 -0
  243. package/dist/modules/flow/functions/issue-write.d.ts +9 -0
  244. package/dist/modules/flow/functions/issue-write.d.ts.map +1 -0
  245. package/dist/modules/flow/functions/issue-write.js +149 -0
  246. package/dist/modules/flow/functions/issue-write.js.map +1 -0
  247. package/dist/modules/flow/functions/issueType.d.ts +8 -0
  248. package/dist/modules/flow/functions/issueType.d.ts.map +1 -0
  249. package/dist/modules/flow/functions/issueType.js +66 -0
  250. package/dist/modules/flow/functions/issueType.js.map +1 -0
  251. package/dist/modules/flow/functions/page.d.ts +22 -0
  252. package/dist/modules/flow/functions/page.d.ts.map +1 -0
  253. package/dist/modules/flow/functions/page.js +202 -0
  254. package/dist/modules/flow/functions/page.js.map +1 -0
  255. package/dist/modules/flow/functions/project.d.ts +26 -0
  256. package/dist/modules/flow/functions/project.d.ts.map +1 -0
  257. package/dist/modules/flow/functions/project.js +381 -0
  258. package/dist/modules/flow/functions/project.js.map +1 -0
  259. package/dist/modules/flow/functions/sprint.d.ts +17 -0
  260. package/dist/modules/flow/functions/sprint.d.ts.map +1 -0
  261. package/dist/modules/flow/functions/sprint.js +173 -0
  262. package/dist/modules/flow/functions/sprint.js.map +1 -0
  263. package/dist/modules/flow/functions/tag.d.ts +14 -0
  264. package/dist/modules/flow/functions/tag.d.ts.map +1 -0
  265. package/dist/modules/flow/functions/tag.js +88 -0
  266. package/dist/modules/flow/functions/tag.js.map +1 -0
  267. package/dist/modules/flow/index.d.ts +8 -2
  268. package/dist/modules/flow/index.d.ts.map +1 -1
  269. package/dist/modules/flow/index.js +7 -2
  270. package/dist/modules/flow/index.js.map +1 -1
  271. package/dist/modules/flow/pages.d.ts +1 -1
  272. package/dist/modules/flow/pages.d.ts.map +1 -1
  273. package/dist/modules/flow/pages.js +1 -1
  274. package/dist/modules/flow/pages.js.map +1 -1
  275. package/dist/modules/flow/queries/calendar.d.ts +21 -0
  276. package/dist/modules/flow/queries/calendar.d.ts.map +1 -0
  277. package/dist/modules/flow/queries/calendar.js +31 -0
  278. package/dist/modules/flow/queries/calendar.js.map +1 -0
  279. package/dist/modules/flow/queries/issue-dependencies.d.ts +17 -0
  280. package/dist/modules/flow/queries/issue-dependencies.d.ts.map +1 -0
  281. package/dist/modules/flow/queries/issue-dependencies.js +46 -0
  282. package/dist/modules/flow/queries/issue-dependencies.js.map +1 -0
  283. package/dist/modules/flow/queries/issue-followers.d.ts +6 -0
  284. package/dist/modules/flow/queries/issue-followers.d.ts.map +1 -0
  285. package/dist/modules/flow/queries/issue-followers.js +18 -0
  286. package/dist/modules/flow/queries/issue-followers.js.map +1 -0
  287. package/dist/modules/flow/queries/issue-list.d.ts +153 -0
  288. package/dist/modules/flow/queries/issue-list.d.ts.map +1 -0
  289. package/dist/modules/flow/queries/issue-list.js +439 -0
  290. package/dist/modules/flow/queries/issue-list.js.map +1 -0
  291. package/dist/modules/flow/queries/options.d.ts +4 -0
  292. package/dist/modules/flow/queries/options.d.ts.map +1 -0
  293. package/dist/modules/flow/queries/options.js +13 -0
  294. package/dist/modules/flow/queries/options.js.map +1 -0
  295. package/dist/modules/flow/queries/progress.d.ts +24 -0
  296. package/dist/modules/flow/queries/progress.d.ts.map +1 -0
  297. package/dist/modules/flow/queries/progress.js +54 -0
  298. package/dist/modules/flow/queries/progress.js.map +1 -0
  299. package/dist/modules/flow/queries/project-list.d.ts +4 -0
  300. package/dist/modules/flow/queries/project-list.d.ts.map +1 -0
  301. package/dist/modules/flow/queries/project-list.js +19 -0
  302. package/dist/modules/flow/queries/project-list.js.map +1 -0
  303. package/dist/modules/flow_backend/messages.d.ts +1 -2
  304. package/dist/modules/flow_backend/messages.d.ts.map +1 -1
  305. package/dist/modules/flow_backend/messages.js +0 -2
  306. package/dist/modules/flow_backend/messages.js.map +1 -1
  307. package/dist/modules/flow_backend/routes.js +1 -1
  308. package/dist/modules/flow_backend/routes.js.map +1 -1
  309. package/dist/modules/flow_backend/screens/all-epics.d.ts.map +1 -1
  310. package/dist/modules/flow_backend/screens/all-epics.js +1 -1
  311. package/dist/modules/flow_backend/screens/all-epics.js.map +1 -1
  312. package/dist/modules/flow_backend/screens/all-pages.d.ts.map +1 -1
  313. package/dist/modules/flow_backend/screens/all-pages.js +1 -1
  314. package/dist/modules/flow_backend/screens/all-pages.js.map +1 -1
  315. package/dist/modules/flow_backend/screens/epic-detail.js +1 -1
  316. package/dist/modules/flow_backend/screens/epic-detail.js.map +1 -1
  317. package/dist/modules/flow_backend/screens/gantt.d.ts.map +1 -1
  318. package/dist/modules/flow_backend/screens/gantt.js +1 -1
  319. package/dist/modules/flow_backend/screens/gantt.js.map +1 -1
  320. package/dist/modules/flow_backend/screens/issue-detail.js +2 -1
  321. package/dist/modules/flow_backend/screens/issue-detail.js.map +1 -1
  322. package/dist/modules/flow_backend/screens/issues.d.ts.map +1 -1
  323. package/dist/modules/flow_backend/screens/issues.js +1 -1
  324. package/dist/modules/flow_backend/screens/issues.js.map +1 -1
  325. package/dist/modules/flow_backend/screens/map.js +1 -1
  326. package/dist/modules/flow_backend/screens/map.js.map +1 -1
  327. package/dist/modules/flow_backend/screens/my-work.d.ts.map +1 -1
  328. package/dist/modules/flow_backend/screens/my-work.js +1 -1
  329. package/dist/modules/flow_backend/screens/my-work.js.map +1 -1
  330. package/dist/modules/flow_backend/screens/page-detail.js +1 -1
  331. package/dist/modules/flow_backend/screens/page-detail.js.map +1 -1
  332. package/dist/modules/flow_backend/screens/project-create.d.ts.map +1 -1
  333. package/dist/modules/flow_backend/screens/project-create.js +1 -1
  334. package/dist/modules/flow_backend/screens/project-create.js.map +1 -1
  335. package/dist/modules/flow_backend/screens/project-pages.d.ts.map +1 -1
  336. package/dist/modules/flow_backend/screens/project-pages.js +1 -1
  337. package/dist/modules/flow_backend/screens/project-pages.js.map +1 -1
  338. package/dist/modules/flow_backend/screens/projects-list.d.ts.map +1 -1
  339. package/dist/modules/flow_backend/screens/projects-list.js +1 -1
  340. package/dist/modules/flow_backend/screens/projects-list.js.map +1 -1
  341. package/dist/modules/flow_backend/screens/sprints.d.ts.map +1 -1
  342. package/dist/modules/flow_backend/screens/sprints.js +1 -1
  343. package/dist/modules/flow_backend/screens/sprints.js.map +1 -1
  344. package/dist/modules/flow_staff_channel/channel-routes.js +1 -1
  345. package/dist/modules/flow_staff_channel/channel-routes.js.map +1 -1
  346. package/dist/modules/hospitality_billing/messages.d.ts.map +1 -1
  347. package/dist/modules/hospitality_billing/messages.js +0 -2
  348. package/dist/modules/hospitality_billing/messages.js.map +1 -1
  349. package/dist/modules/hospitality_billing/screens/billing.d.ts.map +1 -1
  350. package/dist/modules/hospitality_billing/screens/billing.js +1 -1
  351. package/dist/modules/hospitality_billing/screens/billing.js.map +1 -1
  352. package/dist/modules/hospitality_billing/screens/page-frame.d.ts +1 -2
  353. package/dist/modules/hospitality_billing/screens/page-frame.d.ts.map +1 -1
  354. package/dist/modules/hospitality_billing/screens/page-frame.js +1 -1
  355. package/dist/modules/hospitality_billing/screens/page-frame.js.map +1 -1
  356. package/dist/modules/hospitality_core/messages.js +2 -2
  357. package/dist/modules/hospitality_core/messages.js.map +1 -1
  358. package/dist/modules/hospitality_core/screens/check-out-prep.d.ts.map +1 -1
  359. package/dist/modules/hospitality_core/screens/check-out-prep.js +1 -1
  360. package/dist/modules/hospitality_core/screens/check-out-prep.js.map +1 -1
  361. package/dist/modules/hospitality_core/screens/front-desk.d.ts.map +1 -1
  362. package/dist/modules/hospitality_core/screens/front-desk.js +40 -40
  363. package/dist/modules/hospitality_core/screens/front-desk.js.map +1 -1
  364. package/dist/modules/hospitality_core/screens/page-frame.d.ts +2 -3
  365. package/dist/modules/hospitality_core/screens/page-frame.d.ts.map +1 -1
  366. package/dist/modules/hospitality_core/screens/page-frame.js +3 -3
  367. package/dist/modules/hospitality_core/screens/page-frame.js.map +1 -1
  368. package/dist/modules/hospitality_core/screens/tape-chart.d.ts.map +1 -1
  369. package/dist/modules/hospitality_core/screens/tape-chart.js +3 -12
  370. package/dist/modules/hospitality_core/screens/tape-chart.js.map +1 -1
  371. package/dist/modules/hr_backend/screens/employee-form.d.ts.map +1 -1
  372. package/dist/modules/hr_backend/screens/employee-form.js +1 -1
  373. package/dist/modules/hr_backend/screens/employee-form.js.map +1 -1
  374. package/dist/modules/hr_backend/screens/leaves-list.d.ts.map +1 -1
  375. package/dist/modules/hr_backend/screens/leaves-list.js +1 -1
  376. package/dist/modules/hr_backend/screens/leaves-list.js.map +1 -1
  377. package/dist/modules/livedoc/islands.d.ts +9 -0
  378. package/dist/modules/livedoc/islands.d.ts.map +1 -1
  379. package/dist/modules/loyalty_backend/messages.d.ts +0 -10
  380. package/dist/modules/loyalty_backend/messages.d.ts.map +1 -1
  381. package/dist/modules/loyalty_backend/messages.js +0 -10
  382. package/dist/modules/loyalty_backend/messages.js.map +1 -1
  383. package/dist/modules/loyalty_backend/screens/index.d.ts.map +1 -1
  384. package/dist/modules/loyalty_backend/screens/index.js +5 -5
  385. package/dist/modules/loyalty_backend/screens/index.js.map +1 -1
  386. package/dist/modules/loyalty_backend/screens/page-frame.d.ts +2 -3
  387. package/dist/modules/loyalty_backend/screens/page-frame.d.ts.map +1 -1
  388. package/dist/modules/loyalty_backend/screens/page-frame.js +2 -2
  389. package/dist/modules/loyalty_backend/screens/page-frame.js.map +1 -1
  390. package/dist/modules/mail_backend/index.d.ts.map +1 -1
  391. package/dist/modules/mail_backend/index.js +0 -2
  392. package/dist/modules/mail_backend/index.js.map +1 -1
  393. package/dist/modules/mail_backend/screens/inbox-list.d.ts.map +1 -1
  394. package/dist/modules/mail_backend/screens/inbox-list.js +1 -1
  395. package/dist/modules/mail_backend/screens/inbox-list.js.map +1 -1
  396. package/dist/modules/mail_inbound_backend/index.d.ts.map +1 -1
  397. package/dist/modules/mail_inbound_backend/index.js +0 -2
  398. package/dist/modules/mail_inbound_backend/index.js.map +1 -1
  399. package/dist/modules/mail_inbound_backend/screens/inbound-list.d.ts.map +1 -1
  400. package/dist/modules/mail_inbound_backend/screens/inbound-list.js +1 -1
  401. package/dist/modules/mail_inbound_backend/screens/inbound-list.js.map +1 -1
  402. package/dist/modules/mail_transport_backend/index.d.ts.map +1 -1
  403. package/dist/modules/mail_transport_backend/index.js +0 -2
  404. package/dist/modules/mail_transport_backend/index.js.map +1 -1
  405. package/dist/modules/mail_transport_backend/screens/outbox-list.d.ts.map +1 -1
  406. package/dist/modules/mail_transport_backend/screens/outbox-list.js +1 -1
  407. package/dist/modules/mail_transport_backend/screens/outbox-list.js.map +1 -1
  408. package/dist/modules/manufacturing_backend/screens/order-execution.d.ts.map +1 -1
  409. package/dist/modules/manufacturing_backend/screens/order-execution.js +1 -1
  410. package/dist/modules/manufacturing_backend/screens/order-execution.js.map +1 -1
  411. package/dist/modules/oauth_backend/messages.d.ts +0 -4
  412. package/dist/modules/oauth_backend/messages.d.ts.map +1 -1
  413. package/dist/modules/oauth_backend/messages.js +0 -4
  414. package/dist/modules/oauth_backend/messages.js.map +1 -1
  415. package/dist/modules/oauth_backend/screens/index.d.ts.map +1 -1
  416. package/dist/modules/oauth_backend/screens/index.js +5 -5
  417. package/dist/modules/oauth_backend/screens/index.js.map +1 -1
  418. package/dist/modules/partner_backend/screens/form.d.ts.map +1 -1
  419. package/dist/modules/partner_backend/screens/form.js +3 -1
  420. package/dist/modules/partner_backend/screens/form.js.map +1 -1
  421. package/dist/modules/partner_backend/screens/list.d.ts.map +1 -1
  422. package/dist/modules/partner_backend/screens/list.js +1 -1
  423. package/dist/modules/partner_backend/screens/list.js.map +1 -1
  424. package/dist/modules/partner_backend/screens/new.d.ts.map +1 -1
  425. package/dist/modules/partner_backend/screens/new.js +1 -1
  426. package/dist/modules/partner_backend/screens/new.js.map +1 -1
  427. package/dist/modules/pricing_backend/index.js +0 -2
  428. package/dist/modules/pricing_backend/index.js.map +1 -1
  429. package/dist/modules/pricing_backend/screens/pricelist-detail.d.ts.map +1 -1
  430. package/dist/modules/pricing_backend/screens/pricelist-detail.js +1 -1
  431. package/dist/modules/pricing_backend/screens/pricelist-detail.js.map +1 -1
  432. package/dist/modules/pricing_backend/screens/pricelists-list.d.ts.map +1 -1
  433. package/dist/modules/pricing_backend/screens/pricelists-list.js +1 -1
  434. package/dist/modules/pricing_backend/screens/pricelists-list.js.map +1 -1
  435. package/dist/modules/product_backend/client/attribute-modal.d.mts +4 -4
  436. package/dist/modules/product_backend/client/attribute-modal.d.mts.map +1 -1
  437. package/dist/modules/product_backend/client/attribute-modal.mjs +1 -1
  438. package/dist/modules/product_backend/client/attribute-modal.mjs.map +3 -3
  439. package/dist/modules/product_backend/client/product-modal.d.mts +8 -8
  440. package/dist/modules/product_backend/client/product-modal.d.mts.map +1 -1
  441. package/dist/modules/product_backend/client/product-modal.mjs +1 -1
  442. package/dist/modules/product_backend/client/product-modal.mjs.map +3 -3
  443. package/dist/modules/product_backend/client/variant-editor.d.mts +3 -3
  444. package/dist/modules/product_backend/client/variant-editor.d.mts.map +1 -1
  445. package/dist/modules/product_backend/client/variant-editor.mjs +1 -1
  446. package/dist/modules/product_backend/client/variant-editor.mjs.map +3 -3
  447. package/dist/modules/product_backend/screens/detail.d.ts.map +1 -1
  448. package/dist/modules/product_backend/screens/detail.js +3 -2
  449. package/dist/modules/product_backend/screens/detail.js.map +1 -1
  450. package/dist/modules/product_backend/screens/variant.d.ts.map +1 -1
  451. package/dist/modules/product_backend/screens/variant.js +3 -2
  452. package/dist/modules/product_backend/screens/variant.js.map +1 -1
  453. package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts +185 -0
  454. package/dist/modules/purchase_backend/client/purchase-order-modal.d.mts.map +1 -0
  455. package/dist/modules/purchase_backend/client/purchase-order-modal.mjs +2 -0
  456. package/dist/modules/purchase_backend/client/purchase-order-modal.mjs.map +7 -0
  457. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts +52 -0
  458. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.d.mts.map +1 -0
  459. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs +2 -0
  460. package/dist/modules/purchase_backend/client/vendor-pricelist-modal.mjs.map +7 -0
  461. package/dist/modules/purchase_backend/index.js +83 -14
  462. package/dist/modules/purchase_backend/index.js.map +1 -1
  463. package/dist/modules/purchase_backend/modal/context.d.ts +4 -0
  464. package/dist/modules/purchase_backend/modal/context.d.ts.map +1 -0
  465. package/dist/modules/purchase_backend/modal/context.js +94 -0
  466. package/dist/modules/purchase_backend/modal/context.js.map +1 -0
  467. package/dist/modules/purchase_backend/modal/order-modal-view.d.ts +18 -0
  468. package/dist/modules/purchase_backend/modal/order-modal-view.d.ts.map +1 -0
  469. package/dist/modules/purchase_backend/modal/order-modal-view.js +290 -0
  470. package/dist/modules/purchase_backend/modal/order-modal-view.js.map +1 -0
  471. package/dist/modules/purchase_backend/modal/pricelist-context.d.ts +3 -0
  472. package/dist/modules/purchase_backend/modal/pricelist-context.d.ts.map +1 -0
  473. package/dist/modules/purchase_backend/modal/pricelist-context.js +36 -0
  474. package/dist/modules/purchase_backend/modal/pricelist-context.js.map +1 -0
  475. package/dist/modules/purchase_backend/modal/pricelist-view.d.ts +12 -0
  476. package/dist/modules/purchase_backend/modal/pricelist-view.d.ts.map +1 -0
  477. package/dist/modules/purchase_backend/modal/pricelist-view.js +78 -0
  478. package/dist/modules/purchase_backend/modal/pricelist-view.js.map +1 -0
  479. package/dist/modules/purchase_backend/screens/order-detail.d.ts.map +1 -1
  480. package/dist/modules/purchase_backend/screens/order-detail.js +4 -2
  481. package/dist/modules/purchase_backend/screens/order-detail.js.map +1 -1
  482. package/dist/modules/purchase_backend/screens/overview.d.ts +5 -0
  483. package/dist/modules/purchase_backend/screens/overview.d.ts.map +1 -1
  484. package/dist/modules/purchase_backend/screens/overview.js +27 -6
  485. package/dist/modules/purchase_backend/screens/overview.js.map +1 -1
  486. package/dist/modules/purchase_backend/screens/rfq-create.d.ts.map +1 -1
  487. package/dist/modules/purchase_backend/screens/rfq-create.js +1 -1
  488. package/dist/modules/purchase_backend/screens/rfq-create.js.map +1 -1
  489. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts +1 -1
  490. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts.map +1 -1
  491. package/dist/modules/purchase_backend/screens/rfqs-list.js +1 -1
  492. package/dist/modules/purchase_backend/screens/rfqs-list.js.map +1 -1
  493. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.d.ts.map +1 -1
  494. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js +1 -1
  495. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js.map +1 -1
  496. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts +2 -1
  497. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts.map +1 -1
  498. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js +2 -2
  499. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js.map +1 -1
  500. package/dist/modules/purchase_backend/search.d.ts +1 -1
  501. package/dist/modules/sale/functions/line-edit.d.ts +4 -0
  502. package/dist/modules/sale/functions/line-edit.d.ts.map +1 -0
  503. package/dist/modules/sale/functions/line-edit.js +120 -0
  504. package/dist/modules/sale/functions/line-edit.js.map +1 -0
  505. package/dist/modules/sale/index.d.ts.map +1 -1
  506. package/dist/modules/sale/index.js +16 -1
  507. package/dist/modules/sale/index.js.map +1 -1
  508. package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts +53 -0
  509. package/dist/modules/sale_backend/client/invoicing-policy-modal.d.mts.map +1 -0
  510. package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs +2 -0
  511. package/dist/modules/sale_backend/client/invoicing-policy-modal.mjs.map +7 -0
  512. package/dist/modules/sale_backend/client/sale-order-modal.d.mts +161 -0
  513. package/dist/modules/sale_backend/client/sale-order-modal.d.mts.map +1 -0
  514. package/dist/modules/sale_backend/client/sale-order-modal.mjs +2 -0
  515. package/dist/modules/sale_backend/client/sale-order-modal.mjs.map +7 -0
  516. package/dist/modules/sale_backend/index.js +81 -20
  517. package/dist/modules/sale_backend/index.js.map +1 -1
  518. package/dist/modules/sale_backend/modal/context.d.ts +4 -0
  519. package/dist/modules/sale_backend/modal/context.d.ts.map +1 -0
  520. package/dist/modules/sale_backend/modal/context.js +94 -0
  521. package/dist/modules/sale_backend/modal/context.js.map +1 -0
  522. package/dist/modules/sale_backend/modal/order-modal-view.d.ts +18 -0
  523. package/dist/modules/sale_backend/modal/order-modal-view.d.ts.map +1 -0
  524. package/dist/modules/sale_backend/modal/order-modal-view.js +289 -0
  525. package/dist/modules/sale_backend/modal/order-modal-view.js.map +1 -0
  526. package/dist/modules/sale_backend/modal/policy-context.d.ts +3 -0
  527. package/dist/modules/sale_backend/modal/policy-context.d.ts.map +1 -0
  528. package/dist/modules/sale_backend/modal/policy-context.js +26 -0
  529. package/dist/modules/sale_backend/modal/policy-context.js.map +1 -0
  530. package/dist/modules/sale_backend/modal/policy-view.d.ts +11 -0
  531. package/dist/modules/sale_backend/modal/policy-view.d.ts.map +1 -0
  532. package/dist/modules/sale_backend/modal/policy-view.js +70 -0
  533. package/dist/modules/sale_backend/modal/policy-view.js.map +1 -0
  534. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts +1 -1
  535. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts.map +1 -1
  536. package/dist/modules/sale_backend/screens/invoicing-policies-list.js +1 -1
  537. package/dist/modules/sale_backend/screens/invoicing-policies-list.js.map +1 -1
  538. package/dist/modules/sale_backend/screens/invoicing-policy-create.d.ts.map +1 -1
  539. package/dist/modules/sale_backend/screens/invoicing-policy-create.js +1 -1
  540. package/dist/modules/sale_backend/screens/invoicing-policy-create.js.map +1 -1
  541. package/dist/modules/sale_backend/screens/order-detail.d.ts.map +1 -1
  542. package/dist/modules/sale_backend/screens/order-detail.js +3 -1
  543. package/dist/modules/sale_backend/screens/order-detail.js.map +1 -1
  544. package/dist/modules/sale_backend/screens/overview.d.ts +3 -0
  545. package/dist/modules/sale_backend/screens/overview.d.ts.map +1 -1
  546. package/dist/modules/sale_backend/screens/overview.js +22 -14
  547. package/dist/modules/sale_backend/screens/overview.js.map +1 -1
  548. package/dist/modules/sale_backend/screens/quotation-create.d.ts.map +1 -1
  549. package/dist/modules/sale_backend/screens/quotation-create.js +1 -1
  550. package/dist/modules/sale_backend/screens/quotation-create.js.map +1 -1
  551. package/dist/modules/sale_backend/screens/quotations-list.d.ts +1 -1
  552. package/dist/modules/sale_backend/screens/quotations-list.d.ts.map +1 -1
  553. package/dist/modules/sale_backend/screens/quotations-list.js +1 -1
  554. package/dist/modules/sale_backend/screens/quotations-list.js.map +1 -1
  555. package/dist/modules/sale_backend/screens/sales-orders-list.d.ts.map +1 -1
  556. package/dist/modules/sale_backend/screens/sales-orders-list.js +1 -1
  557. package/dist/modules/sale_backend/screens/sales-orders-list.js.map +1 -1
  558. package/dist/modules/stock/functions/inventory-preview.d.ts +4 -0
  559. package/dist/modules/stock/functions/inventory-preview.d.ts.map +1 -0
  560. package/dist/modules/stock/functions/inventory-preview.js +68 -0
  561. package/dist/modules/stock/functions/inventory-preview.js.map +1 -0
  562. package/dist/modules/stock/index.d.ts.map +1 -1
  563. package/dist/modules/stock/index.js +14 -1
  564. package/dist/modules/stock/index.js.map +1 -1
  565. package/dist/modules/stock_backend/client/inventory-count-modal.d.mts +60 -0
  566. package/dist/modules/stock_backend/client/inventory-count-modal.d.mts.map +1 -0
  567. package/dist/modules/stock_backend/client/inventory-count-modal.mjs +2 -0
  568. package/dist/modules/stock_backend/client/inventory-count-modal.mjs.map +7 -0
  569. package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts +105 -0
  570. package/dist/modules/stock_backend/client/stock-configuration-modal.d.mts.map +1 -0
  571. package/dist/modules/stock_backend/client/stock-configuration-modal.mjs +2 -0
  572. package/dist/modules/stock_backend/client/stock-configuration-modal.mjs.map +7 -0
  573. package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts +130 -0
  574. package/dist/modules/stock_backend/client/stock-transfer-modal.d.mts.map +1 -0
  575. package/dist/modules/stock_backend/client/stock-transfer-modal.mjs +2 -0
  576. package/dist/modules/stock_backend/client/stock-transfer-modal.mjs.map +7 -0
  577. package/dist/modules/stock_backend/functions/index.d.ts +10 -0
  578. package/dist/modules/stock_backend/functions/index.d.ts.map +1 -0
  579. package/dist/modules/stock_backend/functions/index.js +20 -0
  580. package/dist/modules/stock_backend/functions/index.js.map +1 -0
  581. package/dist/modules/stock_backend/functions.d.ts +1 -9
  582. package/dist/modules/stock_backend/functions.d.ts.map +1 -1
  583. package/dist/modules/stock_backend/functions.js +1 -18
  584. package/dist/modules/stock_backend/functions.js.map +1 -1
  585. package/dist/modules/stock_backend/index.js +52 -0
  586. package/dist/modules/stock_backend/index.js.map +1 -1
  587. package/dist/modules/stock_backend/islands.d.ts +8 -0
  588. package/dist/modules/stock_backend/islands.d.ts.map +1 -1
  589. package/dist/modules/stock_backend/islands.js +41 -0
  590. package/dist/modules/stock_backend/islands.js.map +1 -1
  591. package/dist/modules/stock_backend/modal/configuration-context.d.ts +3 -0
  592. package/dist/modules/stock_backend/modal/configuration-context.d.ts.map +1 -0
  593. package/dist/modules/stock_backend/modal/configuration-context.js +65 -0
  594. package/dist/modules/stock_backend/modal/configuration-context.js.map +1 -0
  595. package/dist/modules/stock_backend/modal/configuration-view.d.ts +21 -0
  596. package/dist/modules/stock_backend/modal/configuration-view.d.ts.map +1 -0
  597. package/dist/modules/stock_backend/modal/configuration-view.js +201 -0
  598. package/dist/modules/stock_backend/modal/configuration-view.js.map +1 -0
  599. package/dist/modules/stock_backend/modal/configuration.d.ts +20 -0
  600. package/dist/modules/stock_backend/modal/configuration.d.ts.map +1 -0
  601. package/dist/modules/stock_backend/modal/configuration.js +117 -0
  602. package/dist/modules/stock_backend/modal/configuration.js.map +1 -0
  603. package/dist/modules/stock_backend/modal/inventory-context.d.ts +3 -0
  604. package/dist/modules/stock_backend/modal/inventory-context.d.ts.map +1 -0
  605. package/dist/modules/stock_backend/modal/inventory-context.js +37 -0
  606. package/dist/modules/stock_backend/modal/inventory-context.js.map +1 -0
  607. package/dist/modules/stock_backend/modal/inventory-view.d.ts +14 -0
  608. package/dist/modules/stock_backend/modal/inventory-view.d.ts.map +1 -0
  609. package/dist/modules/stock_backend/modal/inventory-view.js +142 -0
  610. package/dist/modules/stock_backend/modal/inventory-view.js.map +1 -0
  611. package/dist/modules/stock_backend/modal/transfer-context.d.ts +3 -0
  612. package/dist/modules/stock_backend/modal/transfer-context.d.ts.map +1 -0
  613. package/dist/modules/stock_backend/modal/transfer-context.js +54 -0
  614. package/dist/modules/stock_backend/modal/transfer-context.js.map +1 -0
  615. package/dist/modules/stock_backend/modal/transfer-view.d.ts +15 -0
  616. package/dist/modules/stock_backend/modal/transfer-view.d.ts.map +1 -0
  617. package/dist/modules/stock_backend/modal/transfer-view.js +252 -0
  618. package/dist/modules/stock_backend/modal/transfer-view.js.map +1 -0
  619. package/dist/modules/stock_backend/routes.d.ts.map +1 -1
  620. package/dist/modules/stock_backend/routes.js +117 -34
  621. package/dist/modules/stock_backend/routes.js.map +1 -1
  622. package/dist/modules/stock_backend/screens/forecast.d.ts.map +1 -1
  623. package/dist/modules/stock_backend/screens/forecast.js +5 -32
  624. package/dist/modules/stock_backend/screens/forecast.js.map +1 -1
  625. package/dist/modules/stock_backend/screens/inventory.d.ts +3 -1
  626. package/dist/modules/stock_backend/screens/inventory.d.ts.map +1 -1
  627. package/dist/modules/stock_backend/screens/inventory.js +27 -74
  628. package/dist/modules/stock_backend/screens/inventory.js.map +1 -1
  629. package/dist/modules/stock_backend/screens/location-create.d.ts.map +1 -1
  630. package/dist/modules/stock_backend/screens/location-create.js +1 -1
  631. package/dist/modules/stock_backend/screens/location-create.js.map +1 -1
  632. package/dist/modules/stock_backend/screens/locations-list.d.ts +1 -1
  633. package/dist/modules/stock_backend/screens/locations-list.d.ts.map +1 -1
  634. package/dist/modules/stock_backend/screens/locations-list.js +1 -1
  635. package/dist/modules/stock_backend/screens/locations-list.js.map +1 -1
  636. package/dist/modules/stock_backend/screens/lot-create.d.ts.map +1 -1
  637. package/dist/modules/stock_backend/screens/lot-create.js +1 -1
  638. package/dist/modules/stock_backend/screens/lot-create.js.map +1 -1
  639. package/dist/modules/stock_backend/screens/lot-detail.d.ts.map +1 -1
  640. package/dist/modules/stock_backend/screens/lot-detail.js +3 -2
  641. package/dist/modules/stock_backend/screens/lot-detail.js.map +1 -1
  642. package/dist/modules/stock_backend/screens/lots-list.d.ts +1 -1
  643. package/dist/modules/stock_backend/screens/lots-list.d.ts.map +1 -1
  644. package/dist/modules/stock_backend/screens/lots-list.js +1 -1
  645. package/dist/modules/stock_backend/screens/lots-list.js.map +1 -1
  646. package/dist/modules/stock_backend/screens/overview.d.ts +9 -0
  647. package/dist/modules/stock_backend/screens/overview.d.ts.map +1 -0
  648. package/dist/modules/stock_backend/screens/overview.js +38 -0
  649. package/dist/modules/stock_backend/screens/overview.js.map +1 -0
  650. package/dist/modules/stock_backend/screens/picking-type-create.d.ts.map +1 -1
  651. package/dist/modules/stock_backend/screens/picking-type-create.js +1 -1
  652. package/dist/modules/stock_backend/screens/picking-type-create.js.map +1 -1
  653. package/dist/modules/stock_backend/screens/picking-types-list.d.ts +1 -1
  654. package/dist/modules/stock_backend/screens/picking-types-list.d.ts.map +1 -1
  655. package/dist/modules/stock_backend/screens/picking-types-list.js +1 -1
  656. package/dist/modules/stock_backend/screens/picking-types-list.js.map +1 -1
  657. package/dist/modules/stock_backend/screens/replenishment-create.d.ts.map +1 -1
  658. package/dist/modules/stock_backend/screens/replenishment-create.js +1 -1
  659. package/dist/modules/stock_backend/screens/replenishment-create.js.map +1 -1
  660. package/dist/modules/stock_backend/screens/replenishment-list.d.ts +2 -2
  661. package/dist/modules/stock_backend/screens/replenishment-list.d.ts.map +1 -1
  662. package/dist/modules/stock_backend/screens/replenishment-list.js +2 -2
  663. package/dist/modules/stock_backend/screens/replenishment-list.js.map +1 -1
  664. package/dist/modules/stock_backend/screens/stock-route-create.d.ts.map +1 -1
  665. package/dist/modules/stock_backend/screens/stock-route-create.js +1 -1
  666. package/dist/modules/stock_backend/screens/stock-route-create.js.map +1 -1
  667. package/dist/modules/stock_backend/screens/stock-route-detail.js +2 -1
  668. package/dist/modules/stock_backend/screens/stock-route-detail.js.map +1 -1
  669. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts +1 -1
  670. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts.map +1 -1
  671. package/dist/modules/stock_backend/screens/stock-routes-list.js +1 -1
  672. package/dist/modules/stock_backend/screens/stock-routes-list.js.map +1 -1
  673. package/dist/modules/stock_backend/screens/transfer-create.d.ts.map +1 -1
  674. package/dist/modules/stock_backend/screens/transfer-create.js +1 -1
  675. package/dist/modules/stock_backend/screens/transfer-create.js.map +1 -1
  676. package/dist/modules/stock_backend/screens/transfer-detail.d.ts.map +1 -1
  677. package/dist/modules/stock_backend/screens/transfer-detail.js +3 -2
  678. package/dist/modules/stock_backend/screens/transfer-detail.js.map +1 -1
  679. package/dist/modules/stock_backend/screens/transfers-list.d.ts +1 -1
  680. package/dist/modules/stock_backend/screens/transfers-list.d.ts.map +1 -1
  681. package/dist/modules/stock_backend/screens/transfers-list.js +1 -1
  682. package/dist/modules/stock_backend/screens/transfers-list.js.map +1 -1
  683. package/dist/modules/stock_backend/screens/warehouse-create.d.ts.map +1 -1
  684. package/dist/modules/stock_backend/screens/warehouse-create.js +1 -1
  685. package/dist/modules/stock_backend/screens/warehouse-create.js.map +1 -1
  686. package/dist/modules/stock_backend/screens/warehouses-list.d.ts +1 -1
  687. package/dist/modules/stock_backend/screens/warehouses-list.d.ts.map +1 -1
  688. package/dist/modules/stock_backend/screens/warehouses-list.js +1 -1
  689. package/dist/modules/stock_backend/screens/warehouses-list.js.map +1 -1
  690. package/dist/modules/stock_backend/search.d.ts +29 -0
  691. package/dist/modules/stock_backend/search.d.ts.map +1 -1
  692. package/dist/modules/stock_backend/search.js +22 -0
  693. package/dist/modules/stock_backend/search.js.map +1 -1
  694. package/dist/modules/user_backend/client/access-policy-modal.d.mts +4 -4
  695. package/dist/modules/user_backend/client/access-policy-modal.d.mts.map +1 -1
  696. package/dist/modules/user_backend/client/access-policy-modal.mjs +1 -1
  697. package/dist/modules/user_backend/client/access-policy-modal.mjs.map +3 -3
  698. package/dist/modules/user_backend/client/role-modal.d.mts +6 -6
  699. package/dist/modules/user_backend/client/role-modal.d.mts.map +1 -1
  700. package/dist/modules/user_backend/client/role-modal.mjs +1 -1
  701. package/dist/modules/user_backend/client/role-modal.mjs.map +3 -3
  702. package/dist/modules/user_backend/client/user-modal.d.mts +8 -8
  703. package/dist/modules/user_backend/client/user-modal.d.mts.map +1 -1
  704. package/dist/modules/user_backend/client/user-modal.mjs +1 -1
  705. package/dist/modules/user_backend/client/user-modal.mjs.map +3 -3
  706. package/dist/modules/user_backend/messages.d.ts +0 -6
  707. package/dist/modules/user_backend/messages.d.ts.map +1 -1
  708. package/dist/modules/user_backend/messages.js +0 -6
  709. package/dist/modules/user_backend/messages.js.map +1 -1
  710. package/dist/modules/user_backend/screens/access-policies-list.d.ts.map +1 -1
  711. package/dist/modules/user_backend/screens/access-policies-list.js +1 -1
  712. package/dist/modules/user_backend/screens/access-policies-list.js.map +1 -1
  713. package/dist/modules/user_backend/screens/profile-form.d.ts.map +1 -1
  714. package/dist/modules/user_backend/screens/profile-form.js +1 -1
  715. package/dist/modules/user_backend/screens/profile-form.js.map +1 -1
  716. package/dist/modules/user_backend/screens/roles-list.d.ts.map +1 -1
  717. package/dist/modules/user_backend/screens/roles-list.js +1 -1
  718. package/dist/modules/user_backend/screens/roles-list.js.map +1 -1
  719. package/dist/modules/user_backend/screens/users-list.d.ts.map +1 -1
  720. package/dist/modules/user_backend/screens/users-list.js +1 -1
  721. package/dist/modules/user_backend/screens/users-list.js.map +1 -1
  722. package/dist/modules/website_backend/screens/page-frame.d.ts +2 -3
  723. package/dist/modules/website_backend/screens/page-frame.d.ts.map +1 -1
  724. package/dist/modules/website_backend/screens/page-frame.js +2 -2
  725. package/dist/modules/website_backend/screens/page-frame.js.map +1 -1
  726. package/dist/permission-catalogue.d.ts.map +1 -1
  727. package/dist/permission-catalogue.js +2 -0
  728. package/dist/permission-catalogue.js.map +1 -1
  729. package/dist/role-templates.d.ts.map +1 -1
  730. package/dist/role-templates.js +23 -3
  731. package/dist/role-templates.js.map +1 -1
  732. package/dist/scaffold/index.js +1 -1
  733. package/dist/ui/client/live-doc-shell.d.ts +27 -1
  734. package/dist/ui/client/live-doc-shell.d.ts.map +1 -1
  735. package/dist/ui/client/live-doc-shell.js +43 -5
  736. package/dist/ui/client/live-doc-shell.js.map +1 -1
  737. package/dist/ui/client/live-doc-tail.d.ts +4 -0
  738. package/dist/ui/client/live-doc-tail.d.ts.map +1 -0
  739. package/dist/ui/client/live-doc-tail.js +21 -0
  740. package/dist/ui/client/live-doc-tail.js.map +1 -0
  741. package/dist/ui/client/live-doc-view.d.ts +18 -0
  742. package/dist/ui/client/live-doc-view.d.ts.map +1 -1
  743. package/dist/ui/client/live-doc-view.js +183 -4
  744. package/dist/ui/client/live-doc-view.js.map +1 -1
  745. package/dist/ui/client/live-doc.css +81 -0
  746. package/dist/ui/client/live-doc.d.mts +6 -3
  747. package/dist/ui/client/live-doc.d.mts.map +1 -1
  748. package/dist/ui/client/live-doc.mjs +14 -10
  749. package/dist/ui/client/live-doc.mjs.map +4 -4
  750. package/dist/ui/layout.d.ts +2 -2
  751. package/dist/ui/layout.d.ts.map +1 -1
  752. package/dist/ui/layout.js +3 -3
  753. package/dist/ui/layout.js.map +1 -1
  754. package/package.json +4 -4
  755. package/dist/modules/flow/functions.d.ts +0 -3
  756. package/dist/modules/flow/functions.d.ts.map +0 -1
  757. package/dist/modules/flow/functions.js +0 -1857
  758. package/dist/modules/flow/functions.js.map +0 -1
  759. package/dist/modules/flow/operations.d.ts +0 -414
  760. package/dist/modules/flow/operations.d.ts.map +0 -1
  761. package/dist/modules/flow/operations.js +0 -1671
  762. package/dist/modules/flow/operations.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-transfer.d.ts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/flow/domain/issue-transfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAMzD;;;;GAIG;AACH;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA6BrC;AAED,yEAAyE;AACzE,wBAAsB,WAAW,CAC/B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB/C;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;IACL,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;CACvB,GACA,OAAO,CAAC,UAAU,CAAC,CAgErB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;IACL,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB,GACA,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
@@ -0,0 +1,171 @@
1
+ import { actorRequired, commandKey, commandRecordId, invalid, issue, n, now } from './command.js';
2
+ import { deleteFrom, eq, inArray } from '@ketvietlab/ketjs';
3
+ import { readableProject, readableRow } from '../membership.js';
4
+ import { saveIssue } from './issue-write.js';
5
+ export async function planTransfer(ctx, held, projectId, columnId) {
6
+ const columns = await ctx.db.select('flow.Column', { projectId, active: true });
7
+ if (!columns.length)
8
+ return issue('projectId', 'flow.error.projectHasNoColumns');
9
+ const named = columnId ? columns.find((row) => String(row.id) === String(columnId)) : undefined;
10
+ if (columnId && !named)
11
+ return issue('columnId', 'flow.error.notFound');
12
+ // No column named: the first one work arrives in, by the order the board
13
+ // shows. Landing in a terminal column would report the issue as finished
14
+ // the moment it moved, which is the one answer a move must not invent.
15
+ const landing = named ??
16
+ [...columns]
17
+ .filter((row) => row.terminalState !== true)
18
+ .sort((a, b) => n(a.sequence) - n(b.sequence) || String(a.id).localeCompare(String(b.id)))[0] ??
19
+ columns[0];
20
+ let typeId = null;
21
+ if (held.typeId) {
22
+ const from = (await ctx.db.select('flow.IssueType', { id: held.typeId }))[0];
23
+ const to = from
24
+ ? (await ctx.db.select('flow.IssueType', { projectId, code: from.code, active: true }))[0]
25
+ : undefined;
26
+ typeId = to ? String(to.id) : null;
27
+ }
28
+ return {
29
+ columnId: String(landing.id),
30
+ typeId,
31
+ epicCleared: held.epicId != null,
32
+ sprintCleared: held.sprintId != null,
33
+ };
34
+ }
35
+ /** Carry the custom field values whose code exists on the other side. */
36
+ export async function carryFields(ctx, fromIssueId, toIssueId, projectId) {
37
+ const values = await ctx.db.select('flow.IssueFieldValue', { issueId: fromIssueId });
38
+ if (!values.length)
39
+ return { carried: 0, dropped: 0 };
40
+ const defs = await ctx.db.select('flow.FieldDef', { projectId, active: true });
41
+ const byCode = new Map(defs.map((def) => [String(def.code), def]));
42
+ let carried = 0;
43
+ for (const value of values) {
44
+ const from = (await ctx.db.select('flow.FieldDef', { id: value.fieldId }))[0];
45
+ const to = from ? byCode.get(String(from.code)) : undefined;
46
+ if (!to)
47
+ continue;
48
+ await ctx.db.insertIfAbsent('flow.IssueFieldValue', {
49
+ id: `${toIssueId}:${String(to.id)}`,
50
+ issueId: toIssueId,
51
+ fieldId: to.id,
52
+ value: value.value ?? null,
53
+ });
54
+ carried += 1;
55
+ }
56
+ return { carried, dropped: values.length - carried };
57
+ }
58
+ export async function transferIssue(ctx, input) {
59
+ if (!actorRequired(ctx))
60
+ return invalid(issue('actor', 'flow.error.actorRequired'));
61
+ if (!commandKey(input.idempotencyKey))
62
+ return invalid(issue('idempotencyKey', 'flow.error.idempotencyRequired'));
63
+ return ctx.tx(async (tx) => {
64
+ const held = await readableRow(tx, 'flow.Issue', input.id);
65
+ if (!held)
66
+ return invalid(issue('id', 'flow.error.notFound'));
67
+ if (String(held.projectId) === String(input.projectId))
68
+ return invalid(issue('projectId', 'flow.error.sameProject'));
69
+ if (n(held.version) !== input.expectedVersion)
70
+ return invalid(issue('version', 'flow.error.conflict', { current: held.version }));
71
+ const destination = await readableProject(tx, input.projectId);
72
+ if (!destination || destination.active !== true)
73
+ return invalid(issue('projectId', 'flow.error.notFound'));
74
+ const children = await tx.db.select('flow.Issue', { parentIssueId: input.id, active: true });
75
+ if (children.length)
76
+ return invalid(issue('id', 'flow.error.issueHasChildren'));
77
+ const plan = await planTransfer(tx, held, String(input.projectId), input.columnId);
78
+ if ('code' in plan)
79
+ return invalid(plan);
80
+ // The values move rather than being copied, so they are read before the
81
+ // old ones go and written against the destination's own definitions.
82
+ const carried = await carryFields(tx, input.id, input.id, String(input.projectId));
83
+ const V = tx.table('flow.IssueFieldValue');
84
+ const defs = await tx.db.select('flow.FieldDef', { projectId: held.projectId });
85
+ if (defs.length)
86
+ await tx.db.del(deleteFrom(V).where(eq(V.issueId, input.id), inArray(V.fieldId, defs.map((def) => String(def.id)))));
87
+ const version = n(held.version) + 1;
88
+ await tx.db.update('flow.Issue', { id: input.id }, {
89
+ projectId: input.projectId,
90
+ columnId: plan.columnId,
91
+ typeId: plan.typeId,
92
+ // Neither means anything on the other side, and keeping either would
93
+ // put an issue in a sprint its new project does not run.
94
+ epicId: null,
95
+ sprintId: null,
96
+ parentIssueId: null,
97
+ version,
98
+ updatedAt: now(),
99
+ });
100
+ return {
101
+ ok: true,
102
+ id: input.id,
103
+ version,
104
+ columnId: plan.columnId,
105
+ fieldsCarried: carried.carried,
106
+ fieldsDropped: carried.dropped,
107
+ typeCleared: Boolean(held.typeId) && plan.typeId === null,
108
+ epicCleared: plan.epicCleared,
109
+ sprintCleared: plan.sprintCleared,
110
+ };
111
+ });
112
+ }
113
+ /**
114
+ * Put a copy of an issue into another project, leaving the original alone.
115
+ *
116
+ * The same mapping `transferIssue` uses, because the crossing is the same
117
+ * crossing — a type or a field that has no counterpart on the other side has
118
+ * none whether the issue is moving or being duplicated.
119
+ *
120
+ * What a copy deliberately does not bring is the history: the comments, the
121
+ * followers and the document are the record of a conversation that happened
122
+ * about *that* issue, and duplicating them would put words in people's mouths
123
+ * on a record they never saw. The copy starts with a title and the fields, and
124
+ * whoever asked for it can say the rest themselves (FLW-020).
125
+ */
126
+ export async function copyIssue(ctx, input) {
127
+ if (!actorRequired(ctx))
128
+ return invalid(issue('actor', 'flow.error.actorRequired'));
129
+ if (!commandKey(input.idempotencyKey))
130
+ return invalid(issue('idempotencyKey', 'flow.error.idempotencyRequired'));
131
+ const held = await readableRow(ctx, 'flow.Issue', input.id);
132
+ if (!held)
133
+ return invalid(issue('id', 'flow.error.notFound'));
134
+ const destination = await readableProject(ctx, input.projectId);
135
+ if (!destination || destination.active !== true)
136
+ return invalid(issue('projectId', 'flow.error.notFound'));
137
+ const plan = await planTransfer(ctx, held, String(input.projectId), input.columnId);
138
+ if ('code' in plan)
139
+ return invalid(plan);
140
+ // Derived from the key, so a double click makes one copy rather than two —
141
+ // the same reason the create form derives its id (FLW-033).
142
+ const id = commandRecordId(`flow.issue.copy:${input.id}:${String(input.projectId)}`, input.idempotencyKey);
143
+ const tags = await ctx.db.select('flow.IssueTag', { issueId: input.id });
144
+ const made = await saveIssue(ctx, {
145
+ id,
146
+ projectId: String(input.projectId),
147
+ columnId: plan.columnId,
148
+ typeId: plan.typeId,
149
+ title: String(input.title ?? held.title ?? ''),
150
+ assigneeUserId: held.assigneeUserId ? String(held.assigneeUserId) : null,
151
+ priority: String(held.priority ?? '2'),
152
+ startDate: held.startDate ? String(held.startDate) : null,
153
+ dueDate: held.dueDate ? String(held.dueDate) : null,
154
+ estimate: held.estimate ?? undefined,
155
+ // A tag is the company's, so it means the same thing in both projects.
156
+ tagIds: tags.map((row) => String(row.tagId)),
157
+ idempotencyKey: input.idempotencyKey,
158
+ });
159
+ if (!made.ok)
160
+ return made;
161
+ const carried = await carryFields(ctx, input.id, id, String(input.projectId));
162
+ return {
163
+ ok: true,
164
+ id,
165
+ columnId: plan.columnId,
166
+ fieldsCarried: carried.carried,
167
+ fieldsDropped: carried.dropped,
168
+ typeCleared: Boolean(held.typeId) && plan.typeId === null,
169
+ };
170
+ }
171
+ //# sourceMappingURL=issue-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-transfer.js","sourceRoot":"","sources":["../../../../../../../../packages/ketsuite/src/modules/flow/domain/issue-transfer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { Ctx, Row } from '@ketvietlab/ketjs';
2
+ import type { FlowIssue } from './command.ts';
3
+ /**
4
+ * Live, and readable by this caller.
5
+ *
6
+ * Creating an issue in a project somebody cannot see is writing to a project
7
+ * they cannot see, so the same gate answers both. The caller turns a false here
8
+ * into "not found", which is also the right answer for a project that is real
9
+ * but not theirs.
10
+ */
11
+ export declare const projectExists: (ctx: Ctx, id: unknown) => Promise<boolean>;
12
+ export declare const columnOf: (ctx: Ctx, id: unknown) => Promise<Row | null>;
13
+ export declare const userExists: (ctx: Ctx, id: unknown) => Promise<boolean>;
14
+ /**
15
+ * A sprint an issue may still be dropped into.
16
+ *
17
+ * `null` reads as "no sprint" (always allowed). A closed sprint is the one
18
+ * state that refuses new membership — see the design note on the Sprint model.
19
+ */
20
+ export declare function assignableSprint(ctx: Ctx, sprintId: unknown): Promise<Row | null | undefined>;
21
+ /**
22
+ * An epic an issue may belong to.
23
+ *
24
+ * `undefined` means "named but not found". Every other reference on an issue
25
+ * — column, sprint, parent — is checked for existence and for belonging to
26
+ * the same project; epic was the one that was written straight through, so an
27
+ * issue in project A could be filed under project B's epic and would then
28
+ * appear on B's epic panel and dependency map while still living on A's board.
29
+ */
30
+ export declare function issueEpic(ctx: Ctx, epicId: unknown): Promise<Row | null | undefined>;
31
+ /**
32
+ * A type an issue may be filed as.
33
+ *
34
+ * Checked for existence and for belonging to the same project, which is what
35
+ * `epicId` was not and had to be taught — a reference written straight through
36
+ * puts a row on a board it does not belong to, and every screen downstream
37
+ * then agrees with it.
38
+ */
39
+ export declare function issueType(ctx: Ctx, typeId: unknown): Promise<Row | null | undefined>;
40
+ /** The options a `select` field offers, as codes. */
41
+ export declare const optionCodes: (config: unknown) => string[];
42
+ /**
43
+ * Whether a value is well-formed for the kind of field holding it.
44
+ *
45
+ * Empty always passes and clears the value: a field a team added last week is
46
+ * blank on every issue that already existed, and refusing to save those until
47
+ * somebody fills it in would make adding a field an act of vandalism.
48
+ */
49
+ export declare function fieldValueError(field: Row, raw: unknown): FlowIssue | null;
50
+ /**
51
+ * The custom fields of one project, by id and by code.
52
+ *
53
+ * Callers name a field either way — a screen posts ids, an agent writing
54
+ * `{ environment: 'production' }` names codes — and both have to land on the
55
+ * same definition.
56
+ */
57
+ export declare function fieldsOfProject(ctx: Ctx, projectId: unknown): Promise<Map<string, Row>>;
58
+ /**
59
+ * A parent an issue may point at.
60
+ *
61
+ * Sub-tasks nest inside one project's board, so a parent from another project
62
+ * would put a child on a board its parent is not on. A cycle is worse: the
63
+ * pair becomes each other's ancestor and any walk up the tree runs forever.
64
+ * `blocks` already refuses cycles for the same reason (see createsBlockCycle);
65
+ * parentage had no check at all, and accepted a parent id that did not exist.
66
+ */
67
+ export declare function parentIssueError(ctx: Ctx, issueId: string, parentIssueId: unknown, projectId: string): Promise<FlowIssue | null>;
68
+ //# sourceMappingURL=issue-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-validation.d.ts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/flow/domain/issue-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAI7C;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAe,GAAG,MAAM,OAAO,KAAG,OAAO,CAAC,OAAO,CAG1E,CAAA;AAED,eAAO,MAAM,QAAQ,QAAe,GAAG,MAAM,OAAO,KAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CACF,CAAA;AAEvE,eAAO,MAAM,UAAU,QAAe,GAAG,MAAM,OAAO,KAAG,OAAO,CAAC,OAAO,CACK,CAAA;AAE7E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC,CAKnG;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC,CAG1F;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC,CAG1F;AAED,qDAAqD;AACrD,eAAO,MAAM,WAAW,WAAY,OAAO,KAAG,MAAM,EAGnD,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAa1E;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAQ7F;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAgB3B"}
@@ -0,0 +1,136 @@
1
+ import { readableProject } from '../membership.js';
2
+ import { issue } from './command.js';
3
+ /**
4
+ * Live, and readable by this caller.
5
+ *
6
+ * Creating an issue in a project somebody cannot see is writing to a project
7
+ * they cannot see, so the same gate answers both. The caller turns a false here
8
+ * into "not found", which is also the right answer for a project that is real
9
+ * but not theirs.
10
+ */
11
+ export const projectExists = async (ctx, id) => {
12
+ const project = await readableProject(ctx, id);
13
+ return Boolean(project && project.active === true);
14
+ };
15
+ export const columnOf = async (ctx, id) => (await ctx.db.select('flow.Column', { id, active: true }))[0] ?? null;
16
+ export const userExists = async (ctx, id) => !id || Boolean((await ctx.db.select('user.User', { id, active: true }))[0]);
17
+ /**
18
+ * A sprint an issue may still be dropped into.
19
+ *
20
+ * `null` reads as "no sprint" (always allowed). A closed sprint is the one
21
+ * state that refuses new membership — see the design note on the Sprint model.
22
+ */
23
+ export async function assignableSprint(ctx, sprintId) {
24
+ if (!sprintId)
25
+ return null;
26
+ const sprint = (await ctx.db.select('flow.Sprint', { id: sprintId }))[0];
27
+ if (!sprint)
28
+ return undefined;
29
+ return sprint.state === 'closed' ? undefined : sprint;
30
+ }
31
+ /**
32
+ * An epic an issue may belong to.
33
+ *
34
+ * `undefined` means "named but not found". Every other reference on an issue
35
+ * — column, sprint, parent — is checked for existence and for belonging to
36
+ * the same project; epic was the one that was written straight through, so an
37
+ * issue in project A could be filed under project B's epic and would then
38
+ * appear on B's epic panel and dependency map while still living on A's board.
39
+ */
40
+ export async function issueEpic(ctx, epicId) {
41
+ if (!epicId)
42
+ return null;
43
+ return (await ctx.db.select('flow.Epic', { id: epicId }))[0] ?? undefined;
44
+ }
45
+ /**
46
+ * A type an issue may be filed as.
47
+ *
48
+ * Checked for existence and for belonging to the same project, which is what
49
+ * `epicId` was not and had to be taught — a reference written straight through
50
+ * puts a row on a board it does not belong to, and every screen downstream
51
+ * then agrees with it.
52
+ */
53
+ export async function issueType(ctx, typeId) {
54
+ if (!typeId)
55
+ return null;
56
+ return (await ctx.db.select('flow.IssueType', { id: typeId }))[0] ?? undefined;
57
+ }
58
+ /** The options a `select` field offers, as codes. */
59
+ export const optionCodes = (config) => {
60
+ const options = config?.options;
61
+ return Array.isArray(options) ? options.map((option) => String(option?.code ?? '')) : [];
62
+ };
63
+ /**
64
+ * Whether a value is well-formed for the kind of field holding it.
65
+ *
66
+ * Empty always passes and clears the value: a field a team added last week is
67
+ * blank on every issue that already existed, and refusing to save those until
68
+ * somebody fills it in would make adding a field an act of vandalism.
69
+ */
70
+ export function fieldValueError(field, raw) {
71
+ const value = String(raw ?? '').trim();
72
+ if (!value)
73
+ return null;
74
+ const kind = String(field.kind);
75
+ const bad = (code) => issue(`field:${String(field.code)}`, code);
76
+ if (kind === 'number' && !Number.isFinite(Number(value)))
77
+ return bad('flow.error.fieldNumber');
78
+ if (kind === 'date' && Number.isNaN(Date.parse(value)))
79
+ return bad('flow.error.fieldDate');
80
+ if (kind === 'bool' && value !== 'true' && value !== 'false')
81
+ return bad('flow.error.fieldBool');
82
+ // http/https only, the same rule the editor applies to a link it renders:
83
+ // this one ends up in an href on somebody else's screen too.
84
+ if (kind === 'url' && !/^https?:\/\//i.test(value))
85
+ return bad('flow.error.fieldUrl');
86
+ if (kind === 'select' && !optionCodes(field.config).includes(value))
87
+ return bad('flow.error.fieldOption');
88
+ return null;
89
+ }
90
+ /**
91
+ * The custom fields of one project, by id and by code.
92
+ *
93
+ * Callers name a field either way — a screen posts ids, an agent writing
94
+ * `{ environment: 'production' }` names codes — and both have to land on the
95
+ * same definition.
96
+ */
97
+ export async function fieldsOfProject(ctx, projectId) {
98
+ const defs = await ctx.db.select('flow.FieldDef', { projectId, active: true });
99
+ const by = new Map();
100
+ for (const def of defs) {
101
+ by.set(String(def.id), def);
102
+ by.set(String(def.code), def);
103
+ }
104
+ return by;
105
+ }
106
+ /**
107
+ * A parent an issue may point at.
108
+ *
109
+ * Sub-tasks nest inside one project's board, so a parent from another project
110
+ * would put a child on a board its parent is not on. A cycle is worse: the
111
+ * pair becomes each other's ancestor and any walk up the tree runs forever.
112
+ * `blocks` already refuses cycles for the same reason (see createsBlockCycle);
113
+ * parentage had no check at all, and accepted a parent id that did not exist.
114
+ */
115
+ export async function parentIssueError(ctx, issueId, parentIssueId, projectId) {
116
+ if (!parentIssueId)
117
+ return null;
118
+ if (String(parentIssueId) === issueId)
119
+ return issue('parentIssueId', 'flow.error.selfParent');
120
+ const parent = (await ctx.db.select('flow.Issue', { id: parentIssueId }))[0];
121
+ if (!parent)
122
+ return issue('parentIssueId', 'flow.error.notFound');
123
+ if (String(parent.projectId) !== projectId)
124
+ return issue('parentIssueId', 'flow.error.parentProjectMismatch');
125
+ const seen = new Set([issueId]);
126
+ let at = parent;
127
+ while (at) {
128
+ const id = String(at.id);
129
+ if (seen.has(id))
130
+ return issue('parentIssueId', 'flow.error.parentCycle');
131
+ seen.add(id);
132
+ at = at.parentIssueId ? (await ctx.db.select('flow.Issue', { id: at.parentIssueId }))[0] : undefined;
133
+ }
134
+ return null;
135
+ }
136
+ //# sourceMappingURL=issue-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-validation.js","sourceRoot":"","sources":["../../../../../../../../packages/ketsuite/src/modules/flow/domain/issue-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import type { Ctx, Row } from '@ketvietlab/ketjs';
2
+ import type { FlowResult } from './command.ts';
3
+ export type SaveIssueInput = {
4
+ id: string;
5
+ projectId: string;
6
+ columnId: string;
7
+ typeId?: string | null;
8
+ epicId?: string | null;
9
+ sprintId?: string | null;
10
+ parentIssueId?: string | null;
11
+ title: string;
12
+ assigneeUserId?: string | null;
13
+ priority?: string;
14
+ startDate?: string | null;
15
+ dueDate?: string | null;
16
+ estimate?: unknown;
17
+ tagIds?: string[];
18
+ /** Custom field values, keyed by field id or by field code. */
19
+ fields?: Record<string, unknown>;
20
+ expectedVersion?: number;
21
+ idempotencyKey: string;
22
+ };
23
+ export declare function saveIssue(ctx: Ctx, input: SaveIssueInput): Promise<FlowResult>;
24
+ /**
25
+ * One system entry per command, carrying every tracked field that moved.
26
+ *
27
+ * The timeline used to record exactly one thing — who an issue was handed to —
28
+ * so "who put this in Done, and when" had no answer anywhere in the system. The
29
+ * fields tracked are the ones a person asks about afterwards: the column, the
30
+ * deadline, the priority and the sprint. Title and description are deliberately
31
+ * out: an entry per keystroke is what makes a timeline unreadable, and both
32
+ * already have their own history in the Live Doc.
33
+ *
34
+ * One message rather than one per field, because a single edit that moved three
35
+ * of them is one thing that happened.
36
+ */
37
+ export declare function trackIssueChange(tx: Ctx, input: {
38
+ issueId: string;
39
+ threadId: unknown;
40
+ version: number;
41
+ body: string;
42
+ changes: Array<{
43
+ field: string;
44
+ oldValue?: string;
45
+ newValue?: string;
46
+ }>;
47
+ }): Promise<void>;
48
+ /** A change worth an entry, or nothing when the value did not actually move. */
49
+ export declare const moved: (field: string, before: unknown, after: unknown) => Array<{
50
+ field: string;
51
+ oldValue?: string;
52
+ newValue?: string;
53
+ }>;
54
+ export declare function ensureIssueThread(ctx: Ctx, issueId: string, title: string, createdAt: string): Promise<Row>;
55
+ export declare function moveIssue(ctx: Ctx, input: {
56
+ id: string;
57
+ columnId: string;
58
+ expectedVersion: number;
59
+ idempotencyKey: string;
60
+ }): Promise<FlowResult>;
61
+ export declare function assignSprint(ctx: Ctx, input: {
62
+ id: string;
63
+ sprintId: string | null;
64
+ expectedVersion: number;
65
+ idempotencyKey: string;
66
+ }): Promise<FlowResult>;
67
+ /**
68
+ * Leaves an issue's thread.
69
+ *
70
+ * The only way out of a subscription this module hands out freely: being
71
+ * assigned an issue, commenting on one, or being mentioned in one all
72
+ * subscribe you, and every comment afterwards reaches you. Without this the
73
+ * follower set only ever grows, and a single mention in a busy spec is a
74
+ * standing appointment nobody agreed to.
75
+ *
76
+ * Answers ok when there was nothing to remove, because "I do not want these"
77
+ * is satisfied either way.
78
+ */
79
+ /**
80
+ * Take an issue off the board without pretending it was finished.
81
+ *
82
+ * `Issue.active` has been in the model and in four indexes since Flow was
83
+ * written, `issue.list` has taken `includeArchived`, and nothing has ever
84
+ * written `false` — so the only way to clear a cancelled task was to drop it in
85
+ * the done column, which made every progress figure lie about it.
86
+ *
87
+ * Under compare-and-set, unlike `page.archive`: an issue carries a version
88
+ * because two people work the same one, and archiving from a stale screen is
89
+ * exactly the kind of mistake that guard exists for.
90
+ *
91
+ * What archiving is *not*: it is not completion and it is not deletion.
92
+ * Dependencies stay, so an archived blocker still blocks — silently unblocking
93
+ * work is the worst way to clear a blocker (FLW-DEC-011). Sub-tasks keep their
94
+ * parent, so restoring a parent restores the branch as it was.
95
+ */
96
+ export declare function archiveIssue(ctx: Ctx, input: {
97
+ id: string;
98
+ expectedVersion: number;
99
+ idempotencyKey: string;
100
+ }): Promise<FlowResult>;
101
+ /**
102
+ * Put it back, exactly where it was.
103
+ *
104
+ * Unlike `page.restore` this needs no reparenting rule: a sub-task of an
105
+ * archived parent is still listed on every board and list of its own, so it
106
+ * cannot come back invisible the way a page under an archived page would.
107
+ */
108
+ export declare function restoreIssue(ctx: Ctx, input: {
109
+ id: string;
110
+ expectedVersion: number;
111
+ idempotencyKey: string;
112
+ }): Promise<FlowResult>;
113
+ export declare function setIssueActive(ctx: Ctx, input: {
114
+ id: string;
115
+ expectedVersion: number;
116
+ idempotencyKey: string;
117
+ }, active: boolean): Promise<FlowResult>;
118
+ //# sourceMappingURL=issue-write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-write.d.ts","sourceRoot":"","sources":["../../../../../../../packages/ketsuite/src/modules/flow/domain/issue-write.ts"],"names":[],"mappings":"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"}