@ketvietlab/ketsuite 0.1.1 → 0.1.3

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 (2606) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +15 -1
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +59 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/deployment.d.ts +5 -0
  8. package/dist/deployment.d.ts.map +1 -0
  9. package/dist/deployment.js +152 -0
  10. package/dist/deployment.js.map +1 -0
  11. package/dist/development.d.ts +8 -0
  12. package/dist/development.d.ts.map +1 -0
  13. package/dist/development.js +40 -0
  14. package/dist/development.js.map +1 -0
  15. package/dist/index.d.ts +77 -6
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +66 -6
  18. package/dist/index.js.map +1 -1
  19. package/dist/modules/account/analytics.d.ts +32 -0
  20. package/dist/modules/account/analytics.d.ts.map +1 -0
  21. package/dist/modules/account/analytics.js +457 -0
  22. package/dist/modules/account/analytics.js.map +1 -0
  23. package/dist/modules/account/assets-costing.d.ts +4 -0
  24. package/dist/modules/account/assets-costing.d.ts.map +1 -0
  25. package/dist/modules/account/assets-costing.js +1134 -0
  26. package/dist/modules/account/assets-costing.js.map +1 -0
  27. package/dist/modules/account/audit.d.ts +3 -0
  28. package/dist/modules/account/audit.d.ts.map +1 -0
  29. package/dist/modules/account/audit.js +14 -0
  30. package/dist/modules/account/audit.js.map +1 -0
  31. package/dist/modules/account/books.d.ts +4 -0
  32. package/dist/modules/account/books.d.ts.map +1 -0
  33. package/dist/modules/account/books.js +150 -0
  34. package/dist/modules/account/books.js.map +1 -0
  35. package/dist/modules/account/cash-receivables.d.ts +3 -0
  36. package/dist/modules/account/cash-receivables.d.ts.map +1 -0
  37. package/dist/modules/account/cash-receivables.js +1087 -0
  38. package/dist/modules/account/cash-receivables.js.map +1 -0
  39. package/dist/modules/account/close.d.ts +4 -0
  40. package/dist/modules/account/close.d.ts.map +1 -0
  41. package/dist/modules/account/close.js +343 -0
  42. package/dist/modules/account/close.js.map +1 -0
  43. package/dist/modules/account/date.d.ts +21 -0
  44. package/dist/modules/account/date.d.ts.map +1 -0
  45. package/dist/modules/account/date.js +70 -0
  46. package/dist/modules/account/date.js.map +1 -0
  47. package/dist/modules/account/functions.d.ts +131 -3
  48. package/dist/modules/account/functions.d.ts.map +1 -1
  49. package/dist/modules/account/functions.js +2570 -389
  50. package/dist/modules/account/functions.js.map +1 -1
  51. package/dist/modules/account/index.d.ts +1 -2
  52. package/dist/modules/account/index.d.ts.map +1 -1
  53. package/dist/modules/account/index.js +403 -8
  54. package/dist/modules/account/index.js.map +1 -1
  55. package/dist/modules/account/models.d.ts.map +1 -1
  56. package/dist/modules/account/models.js +748 -0
  57. package/dist/modules/account/models.js.map +1 -1
  58. package/dist/modules/account/money.d.ts +60 -0
  59. package/dist/modules/account/money.d.ts.map +1 -0
  60. package/dist/modules/account/money.js +237 -0
  61. package/dist/modules/account/money.js.map +1 -0
  62. package/dist/modules/account/open-items.d.ts +3 -0
  63. package/dist/modules/account/open-items.d.ts.map +1 -0
  64. package/dist/modules/account/open-items.js +390 -0
  65. package/dist/modules/account/open-items.js.map +1 -0
  66. package/dist/modules/account/opening.d.ts +3 -0
  67. package/dist/modules/account/opening.d.ts.map +1 -0
  68. package/dist/modules/account/opening.js +323 -0
  69. package/dist/modules/account/opening.js.map +1 -0
  70. package/dist/modules/account/period.d.ts +21 -0
  71. package/dist/modules/account/period.d.ts.map +1 -0
  72. package/dist/modules/account/period.js +155 -0
  73. package/dist/modules/account/period.js.map +1 -0
  74. package/dist/modules/account/relations.d.ts.map +1 -1
  75. package/dist/modules/account/relations.js +46 -0
  76. package/dist/modules/account/relations.js.map +1 -1
  77. package/dist/modules/account/reports.d.ts +4 -0
  78. package/dist/modules/account/reports.d.ts.map +1 -0
  79. package/dist/modules/account/reports.js +125 -0
  80. package/dist/modules/account/reports.js.map +1 -0
  81. package/dist/modules/account/setup.d.ts +3 -1
  82. package/dist/modules/account/setup.d.ts.map +1 -1
  83. package/dist/modules/account/setup.js +45 -160
  84. package/dist/modules/account/setup.js.map +1 -1
  85. package/dist/modules/account_activity_backend/index.d.ts.map +1 -1
  86. package/dist/modules/account_activity_backend/index.js +0 -1
  87. package/dist/modules/account_activity_backend/index.js.map +1 -1
  88. package/dist/modules/account_backend/index.js +3339 -494
  89. package/dist/modules/account_backend/index.js.map +1 -1
  90. package/dist/modules/account_backend/overview.d.ts +92 -0
  91. package/dist/modules/account_backend/overview.d.ts.map +1 -0
  92. package/dist/modules/account_backend/overview.js +257 -0
  93. package/dist/modules/account_backend/overview.js.map +1 -0
  94. package/dist/modules/account_backend/relation-control.d.ts +48 -0
  95. package/dist/modules/account_backend/relation-control.d.ts.map +1 -0
  96. package/dist/modules/account_backend/relation-control.js +67 -0
  97. package/dist/modules/account_backend/relation-control.js.map +1 -0
  98. package/dist/modules/account_backend/screens/account-defaults.d.ts +28 -0
  99. package/dist/modules/account_backend/screens/account-defaults.d.ts.map +1 -0
  100. package/dist/modules/account_backend/screens/account-defaults.js +60 -0
  101. package/dist/modules/account_backend/screens/account-defaults.js.map +1 -0
  102. package/dist/modules/account_backend/screens/account-form.d.ts +16 -0
  103. package/dist/modules/account_backend/screens/account-form.d.ts.map +1 -0
  104. package/dist/modules/account_backend/screens/account-form.js +53 -0
  105. package/dist/modules/account_backend/screens/account-form.js.map +1 -0
  106. package/dist/modules/account_backend/screens/accounting-books.d.ts +15 -0
  107. package/dist/modules/account_backend/screens/accounting-books.d.ts.map +1 -0
  108. package/dist/modules/account_backend/screens/accounting-books.js +86 -0
  109. package/dist/modules/account_backend/screens/accounting-books.js.map +1 -0
  110. package/dist/modules/account_backend/screens/accounts-list.d.ts +50 -0
  111. package/dist/modules/account_backend/screens/accounts-list.d.ts.map +1 -0
  112. package/dist/modules/account_backend/screens/accounts-list.js +66 -0
  113. package/dist/modules/account_backend/screens/accounts-list.js.map +1 -0
  114. package/dist/modules/account_backend/screens/customer-invoice-form.d.ts +13 -0
  115. package/dist/modules/account_backend/screens/customer-invoice-form.d.ts.map +1 -0
  116. package/dist/modules/account_backend/screens/customer-invoice-form.js +20 -0
  117. package/dist/modules/account_backend/screens/customer-invoice-form.js.map +1 -0
  118. package/dist/modules/account_backend/screens/customer-invoices-list.d.ts +62 -0
  119. package/dist/modules/account_backend/screens/customer-invoices-list.d.ts.map +1 -0
  120. package/dist/modules/account_backend/screens/customer-invoices-list.js +82 -0
  121. package/dist/modules/account_backend/screens/customer-invoices-list.js.map +1 -0
  122. package/dist/modules/account_backend/screens/general-ledger.d.ts +24 -0
  123. package/dist/modules/account_backend/screens/general-ledger.d.ts.map +1 -0
  124. package/dist/modules/account_backend/screens/general-ledger.js +73 -0
  125. package/dist/modules/account_backend/screens/general-ledger.js.map +1 -0
  126. package/dist/modules/account_backend/screens/index.d.ts +27 -0
  127. package/dist/modules/account_backend/screens/index.d.ts.map +1 -0
  128. package/dist/modules/account_backend/screens/index.js +27 -0
  129. package/dist/modules/account_backend/screens/index.js.map +1 -0
  130. package/dist/modules/account_backend/screens/journal-entries-list.d.ts +48 -0
  131. package/dist/modules/account_backend/screens/journal-entries-list.d.ts.map +1 -0
  132. package/dist/modules/account_backend/screens/journal-entries-list.js +58 -0
  133. package/dist/modules/account_backend/screens/journal-entries-list.js.map +1 -0
  134. package/dist/modules/account_backend/screens/journal-entry-create.d.ts +14 -0
  135. package/dist/modules/account_backend/screens/journal-entry-create.d.ts.map +1 -0
  136. package/dist/modules/account_backend/screens/journal-entry-create.js +41 -0
  137. package/dist/modules/account_backend/screens/journal-entry-create.js.map +1 -0
  138. package/dist/modules/account_backend/screens/journal-form.d.ts +15 -0
  139. package/dist/modules/account_backend/screens/journal-form.d.ts.map +1 -0
  140. package/dist/modules/account_backend/screens/journal-form.js +53 -0
  141. package/dist/modules/account_backend/screens/journal-form.js.map +1 -0
  142. package/dist/modules/account_backend/screens/journals-list.d.ts +51 -0
  143. package/dist/modules/account_backend/screens/journals-list.d.ts.map +1 -0
  144. package/dist/modules/account_backend/screens/journals-list.js +70 -0
  145. package/dist/modules/account_backend/screens/journals-list.js.map +1 -0
  146. package/dist/modules/account_backend/screens/move-detail.d.ts +26 -0
  147. package/dist/modules/account_backend/screens/move-detail.d.ts.map +1 -0
  148. package/dist/modules/account_backend/screens/move-detail.js +130 -0
  149. package/dist/modules/account_backend/screens/move-detail.js.map +1 -0
  150. package/dist/modules/account_backend/screens/opening-balances.d.ts +28 -0
  151. package/dist/modules/account_backend/screens/opening-balances.d.ts.map +1 -0
  152. package/dist/modules/account_backend/screens/opening-balances.js +96 -0
  153. package/dist/modules/account_backend/screens/opening-balances.js.map +1 -0
  154. package/dist/modules/account_backend/screens/overview.d.ts +62 -0
  155. package/dist/modules/account_backend/screens/overview.d.ts.map +1 -0
  156. package/dist/modules/account_backend/screens/overview.js +215 -0
  157. package/dist/modules/account_backend/screens/overview.js.map +1 -0
  158. package/dist/modules/account_backend/screens/partner-statement.d.ts +26 -0
  159. package/dist/modules/account_backend/screens/partner-statement.d.ts.map +1 -0
  160. package/dist/modules/account_backend/screens/partner-statement.js +82 -0
  161. package/dist/modules/account_backend/screens/partner-statement.js.map +1 -0
  162. package/dist/modules/account_backend/screens/payment-form.d.ts +14 -0
  163. package/dist/modules/account_backend/screens/payment-form.d.ts.map +1 -0
  164. package/dist/modules/account_backend/screens/payment-form.js +21 -0
  165. package/dist/modules/account_backend/screens/payment-form.js.map +1 -0
  166. package/dist/modules/account_backend/screens/payment-term-form.d.ts +25 -0
  167. package/dist/modules/account_backend/screens/payment-term-form.d.ts.map +1 -0
  168. package/dist/modules/account_backend/screens/payment-term-form.js +96 -0
  169. package/dist/modules/account_backend/screens/payment-term-form.js.map +1 -0
  170. package/dist/modules/account_backend/screens/payment-terms-list.d.ts +23 -0
  171. package/dist/modules/account_backend/screens/payment-terms-list.d.ts.map +1 -0
  172. package/dist/modules/account_backend/screens/payment-terms-list.js +104 -0
  173. package/dist/modules/account_backend/screens/payment-terms-list.js.map +1 -0
  174. package/dist/modules/account_backend/screens/payments-list.d.ts +62 -0
  175. package/dist/modules/account_backend/screens/payments-list.d.ts.map +1 -0
  176. package/dist/modules/account_backend/screens/payments-list.js +71 -0
  177. package/dist/modules/account_backend/screens/payments-list.js.map +1 -0
  178. package/dist/modules/account_backend/screens/period-closes.d.ts +21 -0
  179. package/dist/modules/account_backend/screens/period-closes.d.ts.map +1 -0
  180. package/dist/modules/account_backend/screens/period-closes.js +123 -0
  181. package/dist/modules/account_backend/screens/period-closes.js.map +1 -0
  182. package/dist/modules/account_backend/screens/shared.d.ts +16 -0
  183. package/dist/modules/account_backend/screens/shared.d.ts.map +1 -0
  184. package/dist/modules/account_backend/screens/shared.js +15 -0
  185. package/dist/modules/account_backend/screens/shared.js.map +1 -0
  186. package/dist/modules/account_backend/screens/tax-form.d.ts +14 -0
  187. package/dist/modules/account_backend/screens/tax-form.d.ts.map +1 -0
  188. package/dist/modules/account_backend/screens/tax-form.js +25 -0
  189. package/dist/modules/account_backend/screens/tax-form.js.map +1 -0
  190. package/dist/modules/account_backend/screens/taxes-list.d.ts +55 -0
  191. package/dist/modules/account_backend/screens/taxes-list.d.ts.map +1 -0
  192. package/dist/modules/account_backend/screens/taxes-list.js +83 -0
  193. package/dist/modules/account_backend/screens/taxes-list.js.map +1 -0
  194. package/dist/modules/account_backend/screens/trial-balance.d.ts +19 -0
  195. package/dist/modules/account_backend/screens/trial-balance.d.ts.map +1 -0
  196. package/dist/modules/account_backend/screens/trial-balance.js +75 -0
  197. package/dist/modules/account_backend/screens/trial-balance.js.map +1 -0
  198. package/dist/modules/account_backend/screens/vendor-bill-form.d.ts +13 -0
  199. package/dist/modules/account_backend/screens/vendor-bill-form.d.ts.map +1 -0
  200. package/dist/modules/account_backend/screens/vendor-bill-form.js +20 -0
  201. package/dist/modules/account_backend/screens/vendor-bill-form.js.map +1 -0
  202. package/dist/modules/account_backend/screens/vendor-bills-list.d.ts +62 -0
  203. package/dist/modules/account_backend/screens/vendor-bills-list.d.ts.map +1 -0
  204. package/dist/modules/account_backend/screens/vendor-bills-list.js +84 -0
  205. package/dist/modules/account_backend/screens/vendor-bills-list.js.map +1 -0
  206. package/dist/modules/account_mail_backend/index.d.ts.map +1 -1
  207. package/dist/modules/account_mail_backend/index.js +0 -1
  208. package/dist/modules/account_mail_backend/index.js.map +1 -1
  209. package/dist/modules/account_partner/index.js +0 -2
  210. package/dist/modules/account_partner/index.js.map +1 -1
  211. package/dist/modules/account_partner_backend/index.d.ts +1 -1
  212. package/dist/modules/account_partner_backend/index.d.ts.map +1 -1
  213. package/dist/modules/account_partner_backend/index.js +2 -3
  214. package/dist/modules/account_partner_backend/index.js.map +1 -1
  215. package/dist/modules/account_partner_backend/routes.d.ts.map +1 -1
  216. package/dist/modules/account_partner_backend/routes.js +19 -25
  217. package/dist/modules/account_partner_backend/routes.js.map +1 -1
  218. package/dist/modules/account_partner_backend/screens/accounting-terms.d.ts +20 -0
  219. package/dist/modules/account_partner_backend/screens/accounting-terms.d.ts.map +1 -0
  220. package/dist/modules/account_partner_backend/screens/accounting-terms.js +63 -0
  221. package/dist/modules/account_partner_backend/screens/accounting-terms.js.map +1 -0
  222. package/dist/modules/account_partner_backend/screens/index.d.ts +2 -0
  223. package/dist/modules/account_partner_backend/screens/index.d.ts.map +1 -0
  224. package/dist/modules/account_partner_backend/screens/index.js +2 -0
  225. package/dist/modules/account_partner_backend/screens/index.js.map +1 -0
  226. package/dist/modules/account_staff_channel/channel-routes.d.ts +2 -0
  227. package/dist/modules/account_staff_channel/channel-routes.d.ts.map +1 -0
  228. package/dist/modules/account_staff_channel/channel-routes.js +787 -0
  229. package/dist/modules/account_staff_channel/channel-routes.js.map +1 -0
  230. package/dist/modules/account_staff_channel/functions.d.ts.map +1 -0
  231. package/dist/modules/account_staff_channel/functions.js +143 -0
  232. package/dist/modules/account_staff_channel/functions.js.map +1 -0
  233. package/dist/modules/account_staff_channel/index.d.ts +5 -0
  234. package/dist/modules/account_staff_channel/index.d.ts.map +1 -0
  235. package/dist/modules/account_staff_channel/index.js +42 -0
  236. package/dist/modules/account_staff_channel/index.js.map +1 -0
  237. package/dist/modules/account_staff_channel/models.d.ts.map +1 -0
  238. package/dist/modules/account_staff_channel/models.js +30 -0
  239. package/dist/modules/account_staff_channel/models.js.map +1 -0
  240. package/dist/modules/activity/index.d.ts.map +1 -1
  241. package/dist/modules/activity/index.js +0 -1
  242. package/dist/modules/activity/index.js.map +1 -1
  243. package/dist/modules/activity_backend/index.d.ts +1 -1
  244. package/dist/modules/activity_backend/index.d.ts.map +1 -1
  245. package/dist/modules/activity_backend/index.js +3 -12
  246. package/dist/modules/activity_backend/index.js.map +1 -1
  247. package/dist/modules/activity_backend/routes.d.ts.map +1 -1
  248. package/dist/modules/activity_backend/routes.js +36 -22
  249. package/dist/modules/activity_backend/routes.js.map +1 -1
  250. package/dist/modules/activity_backend/screens/activities-list.d.ts +15 -0
  251. package/dist/modules/activity_backend/screens/activities-list.d.ts.map +1 -0
  252. package/dist/modules/activity_backend/screens/activities-list.js +40 -0
  253. package/dist/modules/activity_backend/screens/activities-list.js.map +1 -0
  254. package/dist/modules/activity_backend/screens/index.d.ts +2 -0
  255. package/dist/modules/activity_backend/screens/index.d.ts.map +1 -0
  256. package/dist/modules/activity_backend/screens/index.js +2 -0
  257. package/dist/modules/activity_backend/screens/index.js.map +1 -0
  258. package/dist/modules/address/data/VN/NOTICE.md +1 -1
  259. package/dist/modules/address/index.d.ts.map +1 -1
  260. package/dist/modules/address/index.js +0 -1
  261. package/dist/modules/address/index.js.map +1 -1
  262. package/dist/modules/address_backend/index.d.ts +1 -1
  263. package/dist/modules/address_backend/index.d.ts.map +1 -1
  264. package/dist/modules/address_backend/index.js +1 -3
  265. package/dist/modules/address_backend/index.js.map +1 -1
  266. package/dist/modules/address_backend/routes.d.ts.map +1 -1
  267. package/dist/modules/address_backend/routes.js +20 -27
  268. package/dist/modules/address_backend/routes.js.map +1 -1
  269. package/dist/modules/address_backend/screens/catalogs-list.d.ts +14 -0
  270. package/dist/modules/address_backend/screens/catalogs-list.d.ts.map +1 -0
  271. package/dist/modules/address_backend/screens/catalogs-list.js +38 -0
  272. package/dist/modules/address_backend/screens/catalogs-list.js.map +1 -0
  273. package/dist/modules/address_backend/screens/country-browser.d.ts +12 -0
  274. package/dist/modules/address_backend/screens/country-browser.d.ts.map +1 -0
  275. package/dist/modules/address_backend/screens/country-browser.js +74 -0
  276. package/dist/modules/address_backend/screens/country-browser.js.map +1 -0
  277. package/dist/modules/address_backend/screens/index.d.ts +4 -0
  278. package/dist/modules/address_backend/screens/index.d.ts.map +1 -0
  279. package/dist/modules/address_backend/screens/index.js +3 -0
  280. package/dist/modules/address_backend/screens/index.js.map +1 -0
  281. package/dist/modules/address_backend/screens/types.d.ts +20 -0
  282. package/dist/modules/address_backend/screens/types.d.ts.map +1 -0
  283. package/dist/modules/address_backend/screens/types.js.map +1 -0
  284. package/dist/modules/attendance/channel-routes.d.ts +2 -0
  285. package/dist/modules/attendance/channel-routes.d.ts.map +1 -0
  286. package/dist/modules/attendance/channel-routes.js +234 -0
  287. package/dist/modules/attendance/channel-routes.js.map +1 -0
  288. package/dist/modules/attendance/functions.d.ts.map +1 -1
  289. package/dist/modules/attendance/functions.js +171 -22
  290. package/dist/modules/attendance/functions.js.map +1 -1
  291. package/dist/modules/attendance/index.d.ts.map +1 -1
  292. package/dist/modules/attendance/index.js +4 -2
  293. package/dist/modules/attendance/index.js.map +1 -1
  294. package/dist/modules/attendance/messages.d.ts +6 -0
  295. package/dist/modules/attendance/messages.d.ts.map +1 -1
  296. package/dist/modules/attendance/messages.js +6 -0
  297. package/dist/modules/attendance/messages.js.map +1 -1
  298. package/dist/modules/attendance/models.d.ts.map +1 -1
  299. package/dist/modules/attendance/models.js +1 -0
  300. package/dist/modules/attendance/models.js.map +1 -1
  301. package/dist/modules/attendance_backend/index.d.ts +3 -1
  302. package/dist/modules/attendance_backend/index.d.ts.map +1 -1
  303. package/dist/modules/attendance_backend/index.js +65 -4
  304. package/dist/modules/attendance_backend/index.js.map +1 -1
  305. package/dist/modules/attendance_backend/routes.d.ts.map +1 -1
  306. package/dist/modules/attendance_backend/routes.js +240 -53
  307. package/dist/modules/attendance_backend/routes.js.map +1 -1
  308. package/dist/modules/attendance_backend/screens/credentials.d.ts +32 -0
  309. package/dist/modules/attendance_backend/screens/credentials.d.ts.map +1 -0
  310. package/dist/modules/attendance_backend/screens/credentials.js +84 -0
  311. package/dist/modules/attendance_backend/screens/credentials.js.map +1 -0
  312. package/dist/modules/attendance_backend/screens/index.d.ts +4 -0
  313. package/dist/modules/attendance_backend/screens/index.d.ts.map +1 -0
  314. package/dist/modules/attendance_backend/screens/index.js +4 -0
  315. package/dist/modules/attendance_backend/screens/index.js.map +1 -0
  316. package/dist/modules/attendance_backend/screens/my-work.d.ts +35 -0
  317. package/dist/modules/attendance_backend/screens/my-work.d.ts.map +1 -0
  318. package/dist/modules/attendance_backend/screens/my-work.js +189 -0
  319. package/dist/modules/attendance_backend/screens/my-work.js.map +1 -0
  320. package/dist/modules/attendance_backend/screens/period.d.ts +22 -0
  321. package/dist/modules/attendance_backend/screens/period.d.ts.map +1 -0
  322. package/dist/modules/attendance_backend/screens/period.js +85 -0
  323. package/dist/modules/attendance_backend/screens/period.js.map +1 -0
  324. package/dist/modules/attendance_backend/screens.d.ts +0 -4
  325. package/dist/modules/attendance_backend/screens.d.ts.map +1 -1
  326. package/dist/modules/attendance_backend/screens.js +1 -209
  327. package/dist/modules/attendance_backend/screens.js.map +1 -1
  328. package/dist/modules/backend/catalogue.d.ts.map +1 -1
  329. package/dist/modules/backend/catalogue.js +53 -115
  330. package/dist/modules/backend/catalogue.js.map +1 -1
  331. package/dist/modules/backend/chart.d.ts +42 -0
  332. package/dist/modules/backend/chart.d.ts.map +1 -0
  333. package/dist/modules/backend/chart.js +39 -0
  334. package/dist/modules/backend/chart.js.map +1 -0
  335. package/dist/modules/backend/design/HANDOFF.md +118 -38
  336. package/dist/modules/backend/design/auth.css +463 -0
  337. package/dist/modules/backend/design/brand/logo-dark.png +0 -0
  338. package/dist/modules/backend/design/brand/logo-light.png +0 -0
  339. package/dist/modules/backend/design/charts.css +229 -0
  340. package/dist/modules/backend/design/client/chart.d.mts +31 -0
  341. package/dist/modules/backend/design/client/chart.d.mts.map +1 -0
  342. package/dist/modules/backend/design/client/chart.mjs +23 -0
  343. package/dist/modules/backend/design/client/chart.mjs.map +7 -0
  344. package/dist/modules/backend/design/client/relation-select.d.mts +6 -1
  345. package/dist/modules/backend/design/client/relation-select.d.mts.map +1 -1
  346. package/dist/modules/backend/design/client/relation-select.mjs +2 -7
  347. package/dist/modules/backend/design/client/relation-select.mjs.map +7 -1
  348. package/dist/modules/backend/design/client/table-selection.d.mts +7 -0
  349. package/dist/modules/backend/design/client/table-selection.d.mts.map +1 -0
  350. package/dist/modules/backend/design/client/table-selection.mjs +2 -0
  351. package/dist/modules/backend/design/client/table-selection.mjs.map +7 -0
  352. package/dist/modules/backend/design/content.css +766 -0
  353. package/dist/modules/backend/design/controls.css +451 -0
  354. package/dist/modules/backend/design/design-system.css +2 -0
  355. package/dist/modules/backend/design/forms.css +1134 -0
  356. package/dist/modules/backend/design/foundation.css +423 -0
  357. package/dist/modules/backend/design/lists.css +1462 -0
  358. package/dist/modules/backend/design/record.css +526 -0
  359. package/dist/modules/backend/design/responsive.css +331 -0
  360. package/dist/modules/backend/design/tokens.css +317 -92
  361. package/dist/modules/backend/index.d.ts +12 -5
  362. package/dist/modules/backend/index.d.ts.map +1 -1
  363. package/dist/modules/backend/index.js +32 -15
  364. package/dist/modules/backend/index.js.map +1 -1
  365. package/dist/modules/backend/islands.d.ts.map +1 -1
  366. package/dist/modules/backend/islands.js +22 -4
  367. package/dist/modules/backend/islands.js.map +1 -1
  368. package/dist/modules/backend/joints.d.ts +1 -1
  369. package/dist/modules/backend/joints.d.ts.map +1 -1
  370. package/dist/modules/backend/joints.js +14 -6
  371. package/dist/modules/backend/joints.js.map +1 -1
  372. package/dist/modules/backend/list-search.d.ts +33 -0
  373. package/dist/modules/backend/list-search.d.ts.map +1 -0
  374. package/dist/modules/backend/list-search.js +232 -0
  375. package/dist/modules/backend/list-search.js.map +1 -0
  376. package/dist/modules/backend/menus.d.ts.map +1 -1
  377. package/dist/modules/backend/menus.js +3 -12
  378. package/dist/modules/backend/menus.js.map +1 -1
  379. package/dist/modules/backend/messages.d.ts +1 -1
  380. package/dist/modules/backend/messages.d.ts.map +1 -1
  381. package/dist/modules/backend/messages.js +48 -35
  382. package/dist/modules/backend/messages.js.map +1 -1
  383. package/dist/modules/backend/paging.d.ts +1 -1
  384. package/dist/modules/backend/paging.d.ts.map +1 -1
  385. package/dist/modules/backend/paging.js +1 -1
  386. package/dist/modules/backend/paging.js.map +1 -1
  387. package/dist/modules/backend/relation-select.d.ts +2 -57
  388. package/dist/modules/backend/relation-select.d.ts.map +1 -1
  389. package/dist/modules/backend/relation-select.js +2 -0
  390. package/dist/modules/backend/relation-select.js.map +1 -1
  391. package/dist/modules/backend/routes.d.ts +1 -8
  392. package/dist/modules/backend/routes.d.ts.map +1 -1
  393. package/dist/modules/backend/routes.js +36 -111
  394. package/dist/modules/backend/routes.js.map +1 -1
  395. package/dist/modules/backend/screen.d.ts +130 -0
  396. package/dist/modules/backend/screen.d.ts.map +1 -0
  397. package/dist/modules/backend/screen.js +205 -0
  398. package/dist/modules/backend/screen.js.map +1 -0
  399. package/dist/modules/backend/screens.d.ts +11 -14
  400. package/dist/modules/backend/screens.d.ts.map +1 -1
  401. package/dist/modules/backend/screens.js +13 -70
  402. package/dist/modules/backend/screens.js.map +1 -1
  403. package/dist/modules/business_report_staff_channel/channel-routes.d.ts +2 -0
  404. package/dist/modules/business_report_staff_channel/channel-routes.d.ts.map +1 -0
  405. package/dist/modules/business_report_staff_channel/channel-routes.js +438 -0
  406. package/dist/modules/business_report_staff_channel/channel-routes.js.map +1 -0
  407. package/dist/modules/business_report_staff_channel/index.d.ts +5 -0
  408. package/dist/modules/business_report_staff_channel/index.d.ts.map +1 -0
  409. package/dist/modules/business_report_staff_channel/index.js +18 -0
  410. package/dist/modules/business_report_staff_channel/index.js.map +1 -0
  411. package/dist/modules/calendar/index.d.ts.map +1 -1
  412. package/dist/modules/calendar/index.js +0 -1
  413. package/dist/modules/calendar/index.js.map +1 -1
  414. package/dist/modules/calendar/recurrence.d.ts.map +1 -1
  415. package/dist/modules/calendar/recurrence.js +3 -11
  416. package/dist/modules/calendar/recurrence.js.map +1 -1
  417. package/dist/modules/calendar_activity/index.d.ts.map +1 -1
  418. package/dist/modules/calendar_activity/index.js +0 -2
  419. package/dist/modules/calendar_activity/index.js.map +1 -1
  420. package/dist/modules/calendar_backend/index.d.ts +1 -1
  421. package/dist/modules/calendar_backend/index.d.ts.map +1 -1
  422. package/dist/modules/calendar_backend/index.js +1 -3
  423. package/dist/modules/calendar_backend/index.js.map +1 -1
  424. package/dist/modules/calendar_backend/routes.d.ts.map +1 -1
  425. package/dist/modules/calendar_backend/routes.js +10 -22
  426. package/dist/modules/calendar_backend/routes.js.map +1 -1
  427. package/dist/modules/calendar_backend/screens/calendar.d.ts +5 -0
  428. package/dist/modules/calendar_backend/screens/calendar.d.ts.map +1 -0
  429. package/dist/modules/calendar_backend/screens/calendar.js +10 -0
  430. package/dist/modules/calendar_backend/screens/calendar.js.map +1 -0
  431. package/dist/modules/calendar_backend/screens/index.d.ts +2 -0
  432. package/dist/modules/calendar_backend/screens/index.d.ts.map +1 -0
  433. package/dist/modules/calendar_backend/screens/index.js +2 -0
  434. package/dist/modules/calendar_backend/screens/index.js.map +1 -0
  435. package/dist/modules/calendar_mail_transport/index.d.ts.map +1 -1
  436. package/dist/modules/calendar_mail_transport/index.js +0 -2
  437. package/dist/modules/calendar_mail_transport/index.js.map +1 -1
  438. package/dist/modules/channel_api/core.d.ts +253 -0
  439. package/dist/modules/channel_api/core.d.ts.map +1 -0
  440. package/dist/modules/channel_api/core.js +587 -0
  441. package/dist/modules/channel_api/core.js.map +1 -0
  442. package/dist/modules/channel_api/customer.d.ts +21 -0
  443. package/dist/modules/channel_api/customer.d.ts.map +1 -0
  444. package/dist/modules/channel_api/customer.js +368 -0
  445. package/dist/modules/channel_api/customer.js.map +1 -0
  446. package/dist/modules/channel_api/index.d.ts +6 -0
  447. package/dist/modules/channel_api/index.d.ts.map +1 -0
  448. package/dist/modules/channel_api/index.js +66 -0
  449. package/dist/modules/channel_api/index.js.map +1 -0
  450. package/dist/modules/channel_api/openapi.d.ts +17 -0
  451. package/dist/modules/channel_api/openapi.d.ts.map +1 -0
  452. package/dist/modules/channel_api/openapi.js +105 -0
  453. package/dist/modules/channel_api/openapi.js.map +1 -0
  454. package/dist/modules/channel_api/staff.d.ts +7 -0
  455. package/dist/modules/channel_api/staff.d.ts.map +1 -0
  456. package/dist/modules/channel_api/staff.js +209 -0
  457. package/dist/modules/channel_api/staff.js.map +1 -0
  458. package/dist/modules/company/functions.d.ts.map +1 -1
  459. package/dist/modules/company/functions.js +93 -12
  460. package/dist/modules/company/functions.js.map +1 -1
  461. package/dist/modules/company/index.js +3 -3
  462. package/dist/modules/company/index.js.map +1 -1
  463. package/dist/modules/company/messages.d.ts +8 -0
  464. package/dist/modules/company/messages.d.ts.map +1 -1
  465. package/dist/modules/company/messages.js +8 -0
  466. package/dist/modules/company/messages.js.map +1 -1
  467. package/dist/modules/company/models.d.ts +2 -2
  468. package/dist/modules/company/models.d.ts.map +1 -1
  469. package/dist/modules/company/models.js +12 -2
  470. package/dist/modules/company/models.js.map +1 -1
  471. package/dist/modules/company_backend/index.d.ts +2 -1
  472. package/dist/modules/company_backend/index.d.ts.map +1 -1
  473. package/dist/modules/company_backend/index.js +25 -4
  474. package/dist/modules/company_backend/index.js.map +1 -1
  475. package/dist/modules/company_backend/routes.d.ts.map +1 -1
  476. package/dist/modules/company_backend/routes.js +314 -96
  477. package/dist/modules/company_backend/routes.js.map +1 -1
  478. package/dist/modules/company_backend/screens/branch-form.d.ts +18 -0
  479. package/dist/modules/company_backend/screens/branch-form.d.ts.map +1 -0
  480. package/dist/modules/company_backend/screens/branch-form.js +63 -0
  481. package/dist/modules/company_backend/screens/branch-form.js.map +1 -0
  482. package/dist/modules/company_backend/screens/companies-list.d.ts +18 -0
  483. package/dist/modules/company_backend/screens/companies-list.d.ts.map +1 -0
  484. package/dist/modules/company_backend/screens/companies-list.js +49 -0
  485. package/dist/modules/company_backend/screens/companies-list.js.map +1 -0
  486. package/dist/modules/company_backend/screens/company-form.d.ts +25 -0
  487. package/dist/modules/company_backend/screens/company-form.d.ts.map +1 -0
  488. package/dist/modules/company_backend/screens/company-form.js +159 -0
  489. package/dist/modules/company_backend/screens/company-form.js.map +1 -0
  490. package/dist/modules/company_backend/screens/context.d.ts +30 -0
  491. package/dist/modules/company_backend/screens/context.d.ts.map +1 -0
  492. package/dist/modules/company_backend/screens/context.js +48 -0
  493. package/dist/modules/company_backend/screens/context.js.map +1 -0
  494. package/dist/modules/company_backend/screens/hierarchy.d.ts +16 -0
  495. package/dist/modules/company_backend/screens/hierarchy.d.ts.map +1 -0
  496. package/dist/modules/company_backend/screens/hierarchy.js +41 -0
  497. package/dist/modules/company_backend/screens/hierarchy.js.map +1 -0
  498. package/dist/modules/company_backend/screens/index.d.ts +7 -0
  499. package/dist/modules/company_backend/screens/index.d.ts.map +1 -0
  500. package/dist/modules/company_backend/screens/index.js +6 -0
  501. package/dist/modules/company_backend/screens/index.js.map +1 -0
  502. package/dist/modules/company_backend/screens/types.d.ts +22 -0
  503. package/dist/modules/company_backend/screens/types.d.ts.map +1 -0
  504. package/dist/modules/company_backend/screens/types.js +2 -0
  505. package/dist/modules/company_backend/screens/types.js.map +1 -0
  506. package/dist/modules/crm/functions.d.ts +1 -1
  507. package/dist/modules/crm/functions.d.ts.map +1 -1
  508. package/dist/modules/crm/functions.js +534 -75
  509. package/dist/modules/crm/functions.js.map +1 -1
  510. package/dist/modules/crm/index.d.ts +2 -1
  511. package/dist/modules/crm/index.d.ts.map +1 -1
  512. package/dist/modules/crm/index.js +3 -4
  513. package/dist/modules/crm/index.js.map +1 -1
  514. package/dist/modules/crm/jobs.d.ts +10 -0
  515. package/dist/modules/crm/jobs.d.ts.map +1 -1
  516. package/dist/modules/crm/jobs.js +50 -1
  517. package/dist/modules/crm/jobs.js.map +1 -1
  518. package/dist/modules/crm/messages.d.ts +14 -1
  519. package/dist/modules/crm/messages.d.ts.map +1 -1
  520. package/dist/modules/crm/messages.js +26 -0
  521. package/dist/modules/crm/messages.js.map +1 -1
  522. package/dist/modules/crm/models.d.ts.map +1 -1
  523. package/dist/modules/crm/models.js +25 -0
  524. package/dist/modules/crm/models.js.map +1 -1
  525. package/dist/modules/crm/operations.d.ts +110 -1
  526. package/dist/modules/crm/operations.d.ts.map +1 -1
  527. package/dist/modules/crm/operations.js +612 -84
  528. package/dist/modules/crm/operations.js.map +1 -1
  529. package/dist/modules/crm_backend/client/crm-kanban-view.d.mts.map +1 -1
  530. package/dist/modules/crm_backend/client/crm-kanban-view.mjs +132 -32
  531. package/dist/modules/crm_backend/client/crm-kanban-view.mjs.map +1 -1
  532. package/dist/modules/crm_backend/client/crm.css +398 -63
  533. package/dist/modules/crm_backend/index.d.ts.map +1 -1
  534. package/dist/modules/crm_backend/index.js +12 -4
  535. package/dist/modules/crm_backend/index.js.map +1 -1
  536. package/dist/modules/crm_backend/messages.d.ts +212 -0
  537. package/dist/modules/crm_backend/messages.d.ts.map +1 -1
  538. package/dist/modules/crm_backend/messages.js +212 -0
  539. package/dist/modules/crm_backend/messages.js.map +1 -1
  540. package/dist/modules/crm_backend/relation-control.d.ts +51 -0
  541. package/dist/modules/crm_backend/relation-control.d.ts.map +1 -0
  542. package/dist/modules/crm_backend/relation-control.js +107 -0
  543. package/dist/modules/crm_backend/relation-control.js.map +1 -0
  544. package/dist/modules/crm_backend/routes.d.ts.map +1 -1
  545. package/dist/modules/crm_backend/routes.js +1068 -260
  546. package/dist/modules/crm_backend/routes.js.map +1 -1
  547. package/dist/modules/crm_backend/screens/activity-planner.d.ts +22 -0
  548. package/dist/modules/crm_backend/screens/activity-planner.d.ts.map +1 -0
  549. package/dist/modules/crm_backend/screens/activity-planner.js +159 -0
  550. package/dist/modules/crm_backend/screens/activity-planner.js.map +1 -0
  551. package/dist/modules/crm_backend/screens/case-create.d.ts +15 -0
  552. package/dist/modules/crm_backend/screens/case-create.d.ts.map +1 -0
  553. package/dist/modules/crm_backend/screens/case-create.js +19 -0
  554. package/dist/modules/crm_backend/screens/case-create.js.map +1 -0
  555. package/dist/modules/crm_backend/screens/case-detail.d.ts +46 -0
  556. package/dist/modules/crm_backend/screens/case-detail.d.ts.map +1 -0
  557. package/dist/modules/crm_backend/screens/case-detail.js +506 -0
  558. package/dist/modules/crm_backend/screens/case-detail.js.map +1 -0
  559. package/dist/modules/crm_backend/screens/cases-list.d.ts +16 -0
  560. package/dist/modules/crm_backend/screens/cases-list.d.ts.map +1 -0
  561. package/dist/modules/crm_backend/screens/cases-list.js +86 -0
  562. package/dist/modules/crm_backend/screens/cases-list.js.map +1 -0
  563. package/dist/modules/crm_backend/screens/configuration.d.ts +28 -0
  564. package/dist/modules/crm_backend/screens/configuration.d.ts.map +1 -0
  565. package/dist/modules/crm_backend/screens/configuration.js +115 -0
  566. package/dist/modules/crm_backend/screens/configuration.js.map +1 -0
  567. package/dist/modules/crm_backend/screens/index.d.ts +14 -0
  568. package/dist/modules/crm_backend/screens/index.d.ts.map +1 -0
  569. package/dist/modules/crm_backend/screens/index.js +8 -0
  570. package/dist/modules/crm_backend/screens/index.js.map +1 -0
  571. package/dist/modules/crm_backend/screens/leaderboard.d.ts +12 -0
  572. package/dist/modules/crm_backend/screens/leaderboard.d.ts.map +1 -0
  573. package/dist/modules/crm_backend/screens/leaderboard.js +89 -0
  574. package/dist/modules/crm_backend/screens/leaderboard.js.map +1 -0
  575. package/dist/modules/crm_backend/screens/pipeline.d.ts +21 -0
  576. package/dist/modules/crm_backend/screens/pipeline.d.ts.map +1 -0
  577. package/dist/modules/crm_backend/screens/pipeline.js +22 -0
  578. package/dist/modules/crm_backend/screens/pipeline.js.map +1 -0
  579. package/dist/modules/crm_sale/index.d.ts.map +1 -1
  580. package/dist/modules/crm_sale/index.js +3 -4
  581. package/dist/modules/crm_sale/index.js.map +1 -1
  582. package/dist/modules/crm_sale/messages.d.ts +3 -1
  583. package/dist/modules/crm_sale/messages.d.ts.map +1 -1
  584. package/dist/modules/crm_sale/messages.js +4 -0
  585. package/dist/modules/crm_sale/messages.js.map +1 -1
  586. package/dist/modules/crm_sale/sale-functions.d.ts +8 -1
  587. package/dist/modules/crm_sale/sale-functions.d.ts.map +1 -1
  588. package/dist/modules/crm_sale/sale-functions.js +184 -55
  589. package/dist/modules/crm_sale/sale-functions.js.map +1 -1
  590. package/dist/modules/crm_staff_channel/channel-routes.d.ts +2 -0
  591. package/dist/modules/crm_staff_channel/channel-routes.d.ts.map +1 -0
  592. package/dist/modules/crm_staff_channel/channel-routes.js +788 -0
  593. package/dist/modules/crm_staff_channel/channel-routes.js.map +1 -0
  594. package/dist/modules/crm_staff_channel/index.d.ts +5 -0
  595. package/dist/modules/crm_staff_channel/index.d.ts.map +1 -0
  596. package/dist/modules/crm_staff_channel/index.js +30 -0
  597. package/dist/modules/crm_staff_channel/index.js.map +1 -0
  598. package/dist/modules/crm_website/functions.d.ts.map +1 -1
  599. package/dist/modules/crm_website/functions.js +89 -10
  600. package/dist/modules/crm_website/functions.js.map +1 -1
  601. package/dist/modules/crm_website/index.js +1 -2
  602. package/dist/modules/crm_website/index.js.map +1 -1
  603. package/dist/modules/crm_website/messages.d.ts +4 -1
  604. package/dist/modules/crm_website/messages.d.ts.map +1 -1
  605. package/dist/modules/crm_website/messages.js +6 -0
  606. package/dist/modules/crm_website/messages.js.map +1 -1
  607. package/dist/modules/crm_website/models.d.ts.map +1 -1
  608. package/dist/modules/crm_website/models.js +18 -0
  609. package/dist/modules/crm_website/models.js.map +1 -1
  610. package/dist/modules/crm_website/routes.d.ts.map +1 -1
  611. package/dist/modules/crm_website/routes.js +44 -12
  612. package/dist/modules/crm_website/routes.js.map +1 -1
  613. package/dist/modules/crm_website/screens.d.ts +7 -1
  614. package/dist/modules/crm_website/screens.d.ts.map +1 -1
  615. package/dist/modules/crm_website/screens.js +13 -8
  616. package/dist/modules/crm_website/screens.js.map +1 -1
  617. package/dist/modules/flow/functions.d.ts +3 -0
  618. package/dist/modules/flow/functions.d.ts.map +1 -0
  619. package/dist/modules/flow/functions.js +1876 -0
  620. package/dist/modules/flow/functions.js.map +1 -0
  621. package/dist/modules/flow/index.d.ts +12 -0
  622. package/dist/modules/flow/index.d.ts.map +1 -0
  623. package/dist/modules/flow/index.js +30 -0
  624. package/dist/modules/flow/index.js.map +1 -0
  625. package/dist/modules/flow/jobs.d.ts +3 -0
  626. package/dist/modules/flow/jobs.d.ts.map +1 -0
  627. package/dist/modules/flow/jobs.js +136 -0
  628. package/dist/modules/flow/jobs.js.map +1 -0
  629. package/dist/modules/flow/membership.d.ts +72 -0
  630. package/dist/modules/flow/membership.d.ts.map +1 -0
  631. package/dist/modules/flow/membership.js +176 -0
  632. package/dist/modules/flow/membership.js.map +1 -0
  633. package/dist/modules/flow/messages.d.ts +79 -0
  634. package/dist/modules/flow/messages.d.ts.map +1 -0
  635. package/dist/modules/flow/messages.js +152 -0
  636. package/dist/modules/flow/messages.js.map +1 -0
  637. package/dist/modules/flow/models.d.ts +3 -0
  638. package/dist/modules/flow/models.d.ts.map +1 -0
  639. package/dist/modules/flow/models.js +453 -0
  640. package/dist/modules/flow/models.js.map +1 -0
  641. package/dist/modules/flow/operations.d.ts +408 -0
  642. package/dist/modules/flow/operations.d.ts.map +1 -0
  643. package/dist/modules/flow/operations.js +1665 -0
  644. package/dist/modules/flow/operations.js.map +1 -0
  645. package/dist/modules/flow/pages.d.ts +146 -0
  646. package/dist/modules/flow/pages.d.ts.map +1 -0
  647. package/dist/modules/flow/pages.js +394 -0
  648. package/dist/modules/flow/pages.js.map +1 -0
  649. package/dist/modules/flow/projects.d.ts +41 -0
  650. package/dist/modules/flow/projects.d.ts.map +1 -0
  651. package/dist/modules/flow/projects.js +74 -0
  652. package/dist/modules/flow/projects.js.map +1 -0
  653. package/dist/modules/flow/search.d.ts +57 -0
  654. package/dist/modules/flow/search.d.ts.map +1 -0
  655. package/dist/modules/flow/search.js +110 -0
  656. package/dist/modules/flow/search.js.map +1 -0
  657. package/dist/modules/flow/types.d.ts +17 -0
  658. package/dist/modules/flow/types.d.ts.map +1 -0
  659. package/dist/modules/flow/types.js +13 -0
  660. package/dist/modules/flow/types.js.map +1 -0
  661. package/dist/modules/flow_backend/functions.d.ts +3 -0
  662. package/dist/modules/flow_backend/functions.d.ts.map +1 -0
  663. package/dist/modules/flow_backend/functions.js +162 -0
  664. package/dist/modules/flow_backend/functions.js.map +1 -0
  665. package/dist/modules/flow_backend/index.d.ts +3 -0
  666. package/dist/modules/flow_backend/index.d.ts.map +1 -0
  667. package/dist/modules/flow_backend/index.js +96 -0
  668. package/dist/modules/flow_backend/index.js.map +1 -0
  669. package/dist/modules/flow_backend/islands.d.ts +3 -0
  670. package/dist/modules/flow_backend/islands.d.ts.map +1 -0
  671. package/dist/modules/flow_backend/islands.js +31 -0
  672. package/dist/modules/flow_backend/islands.js.map +1 -0
  673. package/dist/modules/flow_backend/messages.d.ts +248 -0
  674. package/dist/modules/flow_backend/messages.d.ts.map +1 -0
  675. package/dist/modules/flow_backend/messages.js +470 -0
  676. package/dist/modules/flow_backend/messages.js.map +1 -0
  677. package/dist/modules/flow_backend/relation-control.d.ts +53 -0
  678. package/dist/modules/flow_backend/relation-control.d.ts.map +1 -0
  679. package/dist/modules/flow_backend/relation-control.js +106 -0
  680. package/dist/modules/flow_backend/relation-control.js.map +1 -0
  681. package/dist/modules/flow_backend/routes.d.ts +3 -0
  682. package/dist/modules/flow_backend/routes.d.ts.map +1 -0
  683. package/dist/modules/flow_backend/routes.js +2519 -0
  684. package/dist/modules/flow_backend/routes.js.map +1 -0
  685. package/dist/modules/flow_backend/screens/all-epics.d.ts +19 -0
  686. package/dist/modules/flow_backend/screens/all-epics.d.ts.map +1 -0
  687. package/dist/modules/flow_backend/screens/all-epics.js +59 -0
  688. package/dist/modules/flow_backend/screens/all-epics.js.map +1 -0
  689. package/dist/modules/flow_backend/screens/all-pages.d.ts +19 -0
  690. package/dist/modules/flow_backend/screens/all-pages.d.ts.map +1 -0
  691. package/dist/modules/flow_backend/screens/all-pages.js +65 -0
  692. package/dist/modules/flow_backend/screens/all-pages.js.map +1 -0
  693. package/dist/modules/flow_backend/screens/board.d.ts +5 -0
  694. package/dist/modules/flow_backend/screens/board.d.ts.map +1 -0
  695. package/dist/modules/flow_backend/screens/board.js +7 -0
  696. package/dist/modules/flow_backend/screens/board.js.map +1 -0
  697. package/dist/modules/flow_backend/screens/epic-detail.d.ts +22 -0
  698. package/dist/modules/flow_backend/screens/epic-detail.d.ts.map +1 -0
  699. package/dist/modules/flow_backend/screens/epic-detail.js +41 -0
  700. package/dist/modules/flow_backend/screens/epic-detail.js.map +1 -0
  701. package/dist/modules/flow_backend/screens/gantt.d.ts +21 -0
  702. package/dist/modules/flow_backend/screens/gantt.d.ts.map +1 -0
  703. package/dist/modules/flow_backend/screens/gantt.js +42 -0
  704. package/dist/modules/flow_backend/screens/gantt.js.map +1 -0
  705. package/dist/modules/flow_backend/screens/index.d.ts +29 -0
  706. package/dist/modules/flow_backend/screens/index.d.ts.map +1 -0
  707. package/dist/modules/flow_backend/screens/index.js +23 -0
  708. package/dist/modules/flow_backend/screens/index.js.map +1 -0
  709. package/dist/modules/flow_backend/screens/issue-detail.d.ts +38 -0
  710. package/dist/modules/flow_backend/screens/issue-detail.d.ts.map +1 -0
  711. package/dist/modules/flow_backend/screens/issue-detail.js +336 -0
  712. package/dist/modules/flow_backend/screens/issue-detail.js.map +1 -0
  713. package/dist/modules/flow_backend/screens/issues.d.ts +34 -0
  714. package/dist/modules/flow_backend/screens/issues.d.ts.map +1 -0
  715. package/dist/modules/flow_backend/screens/issues.js +118 -0
  716. package/dist/modules/flow_backend/screens/issues.js.map +1 -0
  717. package/dist/modules/flow_backend/screens/map.d.ts +13 -0
  718. package/dist/modules/flow_backend/screens/map.d.ts.map +1 -0
  719. package/dist/modules/flow_backend/screens/map.js +16 -0
  720. package/dist/modules/flow_backend/screens/map.js.map +1 -0
  721. package/dist/modules/flow_backend/screens/my-work.d.ts +42 -0
  722. package/dist/modules/flow_backend/screens/my-work.d.ts.map +1 -0
  723. package/dist/modules/flow_backend/screens/my-work.js +157 -0
  724. package/dist/modules/flow_backend/screens/my-work.js.map +1 -0
  725. package/dist/modules/flow_backend/screens/nav.d.ts +3 -0
  726. package/dist/modules/flow_backend/screens/nav.d.ts.map +1 -0
  727. package/dist/modules/flow_backend/screens/nav.js +79 -0
  728. package/dist/modules/flow_backend/screens/nav.js.map +1 -0
  729. package/dist/modules/flow_backend/screens/page-detail.d.ts +31 -0
  730. package/dist/modules/flow_backend/screens/page-detail.d.ts.map +1 -0
  731. package/dist/modules/flow_backend/screens/page-detail.js +113 -0
  732. package/dist/modules/flow_backend/screens/page-detail.js.map +1 -0
  733. package/dist/modules/flow_backend/screens/project-create.d.ts +26 -0
  734. package/dist/modules/flow_backend/screens/project-create.d.ts.map +1 -0
  735. package/dist/modules/flow_backend/screens/project-create.js +56 -0
  736. package/dist/modules/flow_backend/screens/project-create.js.map +1 -0
  737. package/dist/modules/flow_backend/screens/project-epics.d.ts +33 -0
  738. package/dist/modules/flow_backend/screens/project-epics.d.ts.map +1 -0
  739. package/dist/modules/flow_backend/screens/project-epics.js +90 -0
  740. package/dist/modules/flow_backend/screens/project-epics.js.map +1 -0
  741. package/dist/modules/flow_backend/screens/project-pages.d.ts +34 -0
  742. package/dist/modules/flow_backend/screens/project-pages.d.ts.map +1 -0
  743. package/dist/modules/flow_backend/screens/project-pages.js +66 -0
  744. package/dist/modules/flow_backend/screens/project-pages.js.map +1 -0
  745. package/dist/modules/flow_backend/screens/project-settings.d.ts +69 -0
  746. package/dist/modules/flow_backend/screens/project-settings.d.ts.map +1 -0
  747. package/dist/modules/flow_backend/screens/project-settings.js +248 -0
  748. package/dist/modules/flow_backend/screens/project-settings.js.map +1 -0
  749. package/dist/modules/flow_backend/screens/projects-list.d.ts +30 -0
  750. package/dist/modules/flow_backend/screens/projects-list.d.ts.map +1 -0
  751. package/dist/modules/flow_backend/screens/projects-list.js +121 -0
  752. package/dist/modules/flow_backend/screens/projects-list.js.map +1 -0
  753. package/dist/modules/flow_backend/screens/shared.d.ts +28 -0
  754. package/dist/modules/flow_backend/screens/shared.d.ts.map +1 -0
  755. package/dist/modules/flow_backend/screens/shared.js +46 -0
  756. package/dist/modules/flow_backend/screens/shared.js.map +1 -0
  757. package/dist/modules/flow_backend/screens/sprints.d.ts +33 -0
  758. package/dist/modules/flow_backend/screens/sprints.d.ts.map +1 -0
  759. package/dist/modules/flow_backend/screens/sprints.js +159 -0
  760. package/dist/modules/flow_backend/screens/sprints.js.map +1 -0
  761. package/dist/modules/flow_staff_channel/channel-routes.d.ts +2 -0
  762. package/dist/modules/flow_staff_channel/channel-routes.d.ts.map +1 -0
  763. package/dist/modules/flow_staff_channel/channel-routes.js +444 -0
  764. package/dist/modules/flow_staff_channel/channel-routes.js.map +1 -0
  765. package/dist/modules/flow_staff_channel/index.d.ts +5 -0
  766. package/dist/modules/flow_staff_channel/index.d.ts.map +1 -0
  767. package/dist/modules/flow_staff_channel/index.js +30 -0
  768. package/dist/modules/flow_staff_channel/index.js.map +1 -0
  769. package/dist/modules/hospitality_billing/functions.d.ts +18 -0
  770. package/dist/modules/hospitality_billing/functions.d.ts.map +1 -0
  771. package/dist/modules/hospitality_billing/functions.js +426 -0
  772. package/dist/modules/hospitality_billing/functions.js.map +1 -0
  773. package/dist/modules/hospitality_billing/index.d.ts +3 -0
  774. package/dist/modules/hospitality_billing/index.d.ts.map +1 -0
  775. package/dist/modules/hospitality_billing/index.js +25 -0
  776. package/dist/modules/hospitality_billing/index.js.map +1 -0
  777. package/dist/modules/hospitality_billing/jobs.d.ts +17 -0
  778. package/dist/modules/hospitality_billing/jobs.d.ts.map +1 -0
  779. package/dist/modules/hospitality_billing/jobs.js +83 -0
  780. package/dist/modules/hospitality_billing/jobs.js.map +1 -0
  781. package/dist/modules/hospitality_billing/menus.d.ts +9 -0
  782. package/dist/modules/hospitality_billing/menus.d.ts.map +1 -0
  783. package/dist/modules/hospitality_billing/menus.js +25 -0
  784. package/dist/modules/hospitality_billing/menus.js.map +1 -0
  785. package/dist/modules/hospitality_billing/messages.d.ts +3 -0
  786. package/dist/modules/hospitality_billing/messages.d.ts.map +1 -0
  787. package/dist/modules/hospitality_billing/messages.js +163 -0
  788. package/dist/modules/hospitality_billing/messages.js.map +1 -0
  789. package/dist/modules/hospitality_billing/models.d.ts +3 -0
  790. package/dist/modules/hospitality_billing/models.d.ts.map +1 -0
  791. package/dist/modules/hospitality_billing/models.js +65 -0
  792. package/dist/modules/hospitality_billing/models.js.map +1 -0
  793. package/dist/modules/hospitality_billing/routes.d.ts +3 -0
  794. package/dist/modules/hospitality_billing/routes.d.ts.map +1 -0
  795. package/dist/modules/hospitality_billing/routes.js +189 -0
  796. package/dist/modules/hospitality_billing/routes.js.map +1 -0
  797. package/dist/modules/hospitality_billing/screens/billing.d.ts +3 -0
  798. package/dist/modules/hospitality_billing/screens/billing.d.ts.map +1 -0
  799. package/dist/modules/hospitality_billing/screens/billing.js +20 -0
  800. package/dist/modules/hospitality_billing/screens/billing.js.map +1 -0
  801. package/dist/modules/hospitality_billing/screens/charge-rules.d.ts +12 -0
  802. package/dist/modules/hospitality_billing/screens/charge-rules.d.ts.map +1 -0
  803. package/dist/modules/hospitality_billing/screens/charge-rules.js +86 -0
  804. package/dist/modules/hospitality_billing/screens/charge-rules.js.map +1 -0
  805. package/dist/modules/hospitality_billing/screens/index.d.ts +4 -0
  806. package/dist/modules/hospitality_billing/screens/index.d.ts.map +1 -0
  807. package/dist/modules/hospitality_billing/screens/index.js +4 -0
  808. package/dist/modules/hospitality_billing/screens/index.js.map +1 -0
  809. package/dist/modules/hospitality_billing/screens/page-frame.d.ts +14 -0
  810. package/dist/modules/hospitality_billing/screens/page-frame.d.ts.map +1 -0
  811. package/dist/modules/hospitality_billing/screens/page-frame.js +6 -0
  812. package/dist/modules/hospitality_billing/screens/page-frame.js.map +1 -0
  813. package/dist/modules/hospitality_billing/screens/shared.d.ts +64 -0
  814. package/dist/modules/hospitality_billing/screens/shared.d.ts.map +1 -0
  815. package/dist/modules/hospitality_billing/screens/shared.js +117 -0
  816. package/dist/modules/hospitality_billing/screens/shared.js.map +1 -0
  817. package/dist/modules/hospitality_core/calendar.d.ts.map +1 -1
  818. package/dist/modules/hospitality_core/calendar.js +2 -1
  819. package/dist/modules/hospitality_core/calendar.js.map +1 -1
  820. package/dist/modules/hospitality_core/catalog.d.ts +3 -0
  821. package/dist/modules/hospitality_core/catalog.d.ts.map +1 -0
  822. package/dist/modules/hospitality_core/catalog.js +284 -0
  823. package/dist/modules/hospitality_core/catalog.js.map +1 -0
  824. package/dist/modules/hospitality_core/functions.d.ts.map +1 -1
  825. package/dist/modules/hospitality_core/functions.js +131 -14
  826. package/dist/modules/hospitality_core/functions.js.map +1 -1
  827. package/dist/modules/hospitality_core/index.d.ts +2 -2
  828. package/dist/modules/hospitality_core/index.d.ts.map +1 -1
  829. package/dist/modules/hospitality_core/index.js +6 -3
  830. package/dist/modules/hospitality_core/index.js.map +1 -1
  831. package/dist/modules/hospitality_core/inventory.d.ts +53 -4
  832. package/dist/modules/hospitality_core/inventory.d.ts.map +1 -1
  833. package/dist/modules/hospitality_core/inventory.js +121 -14
  834. package/dist/modules/hospitality_core/inventory.js.map +1 -1
  835. package/dist/modules/hospitality_core/menus.d.ts.map +1 -1
  836. package/dist/modules/hospitality_core/menus.js +31 -0
  837. package/dist/modules/hospitality_core/menus.js.map +1 -1
  838. package/dist/modules/hospitality_core/messages.d.ts.map +1 -1
  839. package/dist/modules/hospitality_core/messages.js +393 -183
  840. package/dist/modules/hospitality_core/messages.js.map +1 -1
  841. package/dist/modules/hospitality_core/models.d.ts +1 -1
  842. package/dist/modules/hospitality_core/models.d.ts.map +1 -1
  843. package/dist/modules/hospitality_core/models.js +48 -2
  844. package/dist/modules/hospitality_core/models.js.map +1 -1
  845. package/dist/modules/hospitality_core/night-audit.d.ts +1 -0
  846. package/dist/modules/hospitality_core/night-audit.d.ts.map +1 -1
  847. package/dist/modules/hospitality_core/night-audit.js +39 -1
  848. package/dist/modules/hospitality_core/night-audit.js.map +1 -1
  849. package/dist/modules/hospitality_core/online-booking.d.ts +5 -0
  850. package/dist/modules/hospitality_core/online-booking.d.ts.map +1 -0
  851. package/dist/modules/hospitality_core/online-booking.js +775 -0
  852. package/dist/modules/hospitality_core/online-booking.js.map +1 -0
  853. package/dist/modules/hospitality_core/operations.d.ts +21 -1
  854. package/dist/modules/hospitality_core/operations.d.ts.map +1 -1
  855. package/dist/modules/hospitality_core/operations.js +432 -67
  856. package/dist/modules/hospitality_core/operations.js.map +1 -1
  857. package/dist/modules/hospitality_core/relations.d.ts.map +1 -1
  858. package/dist/modules/hospitality_core/relations.js +1 -0
  859. package/dist/modules/hospitality_core/relations.js.map +1 -1
  860. package/dist/modules/hospitality_core/routes.d.ts.map +1 -1
  861. package/dist/modules/hospitality_core/routes.js +514 -107
  862. package/dist/modules/hospitality_core/routes.js.map +1 -1
  863. package/dist/modules/hospitality_core/screens/amenities.d.ts +10 -0
  864. package/dist/modules/hospitality_core/screens/amenities.d.ts.map +1 -0
  865. package/dist/modules/hospitality_core/screens/amenities.js +65 -0
  866. package/dist/modules/hospitality_core/screens/amenities.js.map +1 -0
  867. package/dist/modules/hospitality_core/screens/building-detail.d.ts +3 -0
  868. package/dist/modules/hospitality_core/screens/building-detail.d.ts.map +1 -0
  869. package/dist/modules/hospitality_core/screens/building-detail.js +69 -0
  870. package/dist/modules/hospitality_core/screens/building-detail.js.map +1 -0
  871. package/dist/modules/hospitality_core/screens/cleaning-task-detail.d.ts +7 -0
  872. package/dist/modules/hospitality_core/screens/cleaning-task-detail.d.ts.map +1 -0
  873. package/dist/modules/hospitality_core/screens/cleaning-task-detail.js +109 -0
  874. package/dist/modules/hospitality_core/screens/cleaning-task-detail.js.map +1 -0
  875. package/dist/modules/hospitality_core/screens/cleaning-tasks.d.ts +20 -0
  876. package/dist/modules/hospitality_core/screens/cleaning-tasks.d.ts.map +1 -0
  877. package/dist/modules/hospitality_core/screens/cleaning-tasks.js +139 -0
  878. package/dist/modules/hospitality_core/screens/cleaning-tasks.js.map +1 -0
  879. package/dist/modules/hospitality_core/screens/content.d.ts +3 -0
  880. package/dist/modules/hospitality_core/screens/content.d.ts.map +1 -0
  881. package/dist/modules/hospitality_core/screens/content.js +114 -0
  882. package/dist/modules/hospitality_core/screens/content.js.map +1 -0
  883. package/dist/modules/hospitality_core/screens/floor-detail.d.ts +3 -0
  884. package/dist/modules/hospitality_core/screens/floor-detail.d.ts.map +1 -0
  885. package/dist/modules/hospitality_core/screens/floor-detail.js +74 -0
  886. package/dist/modules/hospitality_core/screens/floor-detail.js.map +1 -0
  887. package/dist/modules/hospitality_core/screens/folio-detail.d.ts +3 -0
  888. package/dist/modules/hospitality_core/screens/folio-detail.d.ts.map +1 -0
  889. package/dist/modules/hospitality_core/screens/folio-detail.js +142 -0
  890. package/dist/modules/hospitality_core/screens/folio-detail.js.map +1 -0
  891. package/dist/modules/hospitality_core/screens/folios.d.ts +3 -0
  892. package/dist/modules/hospitality_core/screens/folios.d.ts.map +1 -0
  893. package/dist/modules/hospitality_core/screens/folios.js +7 -0
  894. package/dist/modules/hospitality_core/screens/folios.js.map +1 -0
  895. package/dist/modules/hospitality_core/screens/front-desk.d.ts +35 -0
  896. package/dist/modules/hospitality_core/screens/front-desk.d.ts.map +1 -0
  897. package/dist/modules/hospitality_core/screens/front-desk.js +195 -0
  898. package/dist/modules/hospitality_core/screens/front-desk.js.map +1 -0
  899. package/dist/modules/hospitality_core/screens/housekeeping-room-detail.d.ts +3 -0
  900. package/dist/modules/hospitality_core/screens/housekeeping-room-detail.d.ts.map +1 -0
  901. package/dist/modules/hospitality_core/screens/housekeeping-room-detail.js +121 -0
  902. package/dist/modules/hospitality_core/screens/housekeeping-room-detail.js.map +1 -0
  903. package/dist/modules/hospitality_core/screens/housekeeping-rooms.d.ts +9 -0
  904. package/dist/modules/hospitality_core/screens/housekeeping-rooms.d.ts.map +1 -0
  905. package/dist/modules/hospitality_core/screens/housekeeping-rooms.js +54 -0
  906. package/dist/modules/hospitality_core/screens/housekeeping-rooms.js.map +1 -0
  907. package/dist/modules/hospitality_core/screens/index.d.ts +33 -0
  908. package/dist/modules/hospitality_core/screens/index.d.ts.map +1 -0
  909. package/dist/modules/hospitality_core/screens/index.js +33 -0
  910. package/dist/modules/hospitality_core/screens/index.js.map +1 -0
  911. package/dist/modules/hospitality_core/screens/inventory.d.ts +8 -0
  912. package/dist/modules/hospitality_core/screens/inventory.d.ts.map +1 -0
  913. package/dist/modules/hospitality_core/screens/inventory.js +122 -0
  914. package/dist/modules/hospitality_core/screens/inventory.js.map +1 -0
  915. package/dist/modules/hospitality_core/screens/new-property.d.ts +3 -0
  916. package/dist/modules/hospitality_core/screens/new-property.d.ts.map +1 -0
  917. package/dist/modules/hospitality_core/screens/new-property.js +8 -0
  918. package/dist/modules/hospitality_core/screens/new-property.js.map +1 -0
  919. package/dist/modules/hospitality_core/screens/new-room-type.d.ts +3 -0
  920. package/dist/modules/hospitality_core/screens/new-room-type.d.ts.map +1 -0
  921. package/dist/modules/hospitality_core/screens/new-room-type.js +8 -0
  922. package/dist/modules/hospitality_core/screens/new-room-type.js.map +1 -0
  923. package/dist/modules/hospitality_core/screens/new-room.d.ts +3 -0
  924. package/dist/modules/hospitality_core/screens/new-room.d.ts.map +1 -0
  925. package/dist/modules/hospitality_core/screens/new-room.js +8 -0
  926. package/dist/modules/hospitality_core/screens/new-room.js.map +1 -0
  927. package/dist/modules/hospitality_core/screens/night-audit.d.ts +10 -0
  928. package/dist/modules/hospitality_core/screens/night-audit.d.ts.map +1 -0
  929. package/dist/modules/hospitality_core/screens/night-audit.js +67 -0
  930. package/dist/modules/hospitality_core/screens/night-audit.js.map +1 -0
  931. package/dist/modules/hospitality_core/screens/page-frame.d.ts +15 -0
  932. package/dist/modules/hospitality_core/screens/page-frame.d.ts.map +1 -0
  933. package/dist/modules/hospitality_core/screens/page-frame.js +10 -0
  934. package/dist/modules/hospitality_core/screens/page-frame.js.map +1 -0
  935. package/dist/modules/hospitality_core/screens/policies.d.ts +10 -0
  936. package/dist/modules/hospitality_core/screens/policies.d.ts.map +1 -0
  937. package/dist/modules/hospitality_core/screens/policies.js +72 -0
  938. package/dist/modules/hospitality_core/screens/policies.js.map +1 -0
  939. package/dist/modules/hospitality_core/screens/properties.d.ts +7 -0
  940. package/dist/modules/hospitality_core/screens/properties.d.ts.map +1 -0
  941. package/dist/modules/hospitality_core/screens/properties.js +45 -0
  942. package/dist/modules/hospitality_core/screens/properties.js.map +1 -0
  943. package/dist/modules/hospitality_core/screens/property-detail.d.ts +3 -0
  944. package/dist/modules/hospitality_core/screens/property-detail.d.ts.map +1 -0
  945. package/dist/modules/hospitality_core/screens/property-detail.js +92 -0
  946. package/dist/modules/hospitality_core/screens/property-detail.js.map +1 -0
  947. package/dist/modules/hospitality_core/screens/rate-plans.d.ts +10 -0
  948. package/dist/modules/hospitality_core/screens/rate-plans.d.ts.map +1 -0
  949. package/dist/modules/hospitality_core/screens/rate-plans.js +123 -0
  950. package/dist/modules/hospitality_core/screens/rate-plans.js.map +1 -0
  951. package/dist/modules/hospitality_core/screens/reservation-detail.d.ts +11 -0
  952. package/dist/modules/hospitality_core/screens/reservation-detail.d.ts.map +1 -0
  953. package/dist/modules/hospitality_core/screens/reservation-detail.js +237 -0
  954. package/dist/modules/hospitality_core/screens/reservation-detail.js.map +1 -0
  955. package/dist/modules/hospitality_core/screens/reservations.d.ts +17 -0
  956. package/dist/modules/hospitality_core/screens/reservations.d.ts.map +1 -0
  957. package/dist/modules/hospitality_core/screens/reservations.js +166 -0
  958. package/dist/modules/hospitality_core/screens/reservations.js.map +1 -0
  959. package/dist/modules/hospitality_core/screens/room-detail.d.ts +3 -0
  960. package/dist/modules/hospitality_core/screens/room-detail.d.ts.map +1 -0
  961. package/dist/modules/hospitality_core/screens/room-detail.js +75 -0
  962. package/dist/modules/hospitality_core/screens/room-detail.js.map +1 -0
  963. package/dist/modules/hospitality_core/screens/room-type-detail.d.ts +3 -0
  964. package/dist/modules/hospitality_core/screens/room-type-detail.d.ts.map +1 -0
  965. package/dist/modules/hospitality_core/screens/room-type-detail.js +91 -0
  966. package/dist/modules/hospitality_core/screens/room-type-detail.js.map +1 -0
  967. package/dist/modules/hospitality_core/screens/room-types.d.ts +3 -0
  968. package/dist/modules/hospitality_core/screens/room-types.d.ts.map +1 -0
  969. package/dist/modules/hospitality_core/screens/room-types.js +61 -0
  970. package/dist/modules/hospitality_core/screens/room-types.js.map +1 -0
  971. package/dist/modules/hospitality_core/screens/rooms.d.ts +10 -0
  972. package/dist/modules/hospitality_core/screens/rooms.d.ts.map +1 -0
  973. package/dist/modules/hospitality_core/screens/rooms.js +150 -0
  974. package/dist/modules/hospitality_core/screens/rooms.js.map +1 -0
  975. package/dist/modules/hospitality_core/screens/services.d.ts +18 -0
  976. package/dist/modules/hospitality_core/screens/services.d.ts.map +1 -0
  977. package/dist/modules/hospitality_core/screens/services.js +196 -0
  978. package/dist/modules/hospitality_core/screens/services.js.map +1 -0
  979. package/dist/modules/hospitality_core/screens/shared.d.ts +777 -0
  980. package/dist/modules/hospitality_core/screens/shared.d.ts.map +1 -0
  981. package/dist/modules/hospitality_core/screens/shared.js +1586 -0
  982. package/dist/modules/hospitality_core/screens/shared.js.map +1 -0
  983. package/dist/modules/hospitality_core/screens/stay-detail.d.ts +3 -0
  984. package/dist/modules/hospitality_core/screens/stay-detail.d.ts.map +1 -0
  985. package/dist/modules/hospitality_core/screens/stay-detail.js +233 -0
  986. package/dist/modules/hospitality_core/screens/stay-detail.js.map +1 -0
  987. package/dist/modules/hospitality_core/screens/stay-notices.d.ts +9 -0
  988. package/dist/modules/hospitality_core/screens/stay-notices.d.ts.map +1 -0
  989. package/dist/modules/hospitality_core/screens/stay-notices.js +87 -0
  990. package/dist/modules/hospitality_core/screens/stay-notices.js.map +1 -0
  991. package/dist/modules/hospitality_core/screens/stays.d.ts +3 -0
  992. package/dist/modules/hospitality_core/screens/stays.d.ts.map +1 -0
  993. package/dist/modules/hospitality_core/screens/stays.js +7 -0
  994. package/dist/modules/hospitality_core/screens/stays.js.map +1 -0
  995. package/dist/modules/hospitality_core/screens/tape-chart.d.ts +7 -0
  996. package/dist/modules/hospitality_core/screens/tape-chart.d.ts.map +1 -0
  997. package/dist/modules/hospitality_core/screens/tape-chart.js +99 -0
  998. package/dist/modules/hospitality_core/screens/tape-chart.js.map +1 -0
  999. package/dist/modules/hospitality_core/services.d.ts.map +1 -1
  1000. package/dist/modules/hospitality_core/services.js +133 -30
  1001. package/dist/modules/hospitality_core/services.js.map +1 -1
  1002. package/dist/modules/hospitality_core/stay-notices.js +2 -2
  1003. package/dist/modules/hospitality_core/stay-notices.js.map +1 -1
  1004. package/dist/modules/hospitality_core/types.d.ts +26 -5
  1005. package/dist/modules/hospitality_core/types.d.ts.map +1 -1
  1006. package/dist/modules/hospitality_core/types.js +47 -5
  1007. package/dist/modules/hospitality_core/types.js.map +1 -1
  1008. package/dist/modules/hospitality_staff_channel/channel-routes.d.ts +2 -0
  1009. package/dist/modules/hospitality_staff_channel/channel-routes.d.ts.map +1 -0
  1010. package/dist/modules/hospitality_staff_channel/channel-routes.js +1227 -0
  1011. package/dist/modules/hospitality_staff_channel/channel-routes.js.map +1 -0
  1012. package/dist/modules/hospitality_staff_channel/index.d.ts +5 -0
  1013. package/dist/modules/hospitality_staff_channel/index.d.ts.map +1 -0
  1014. package/dist/modules/hospitality_staff_channel/index.js +34 -0
  1015. package/dist/modules/hospitality_staff_channel/index.js.map +1 -0
  1016. package/dist/modules/hr/functions.d.ts.map +1 -1
  1017. package/dist/modules/hr/functions.js +108 -44
  1018. package/dist/modules/hr/functions.js.map +1 -1
  1019. package/dist/modules/hr/index.d.ts.map +1 -1
  1020. package/dist/modules/hr/index.js +0 -1
  1021. package/dist/modules/hr/index.js.map +1 -1
  1022. package/dist/modules/hr_backend/index.d.ts +2 -1
  1023. package/dist/modules/hr_backend/index.d.ts.map +1 -1
  1024. package/dist/modules/hr_backend/index.js +39 -7
  1025. package/dist/modules/hr_backend/index.js.map +1 -1
  1026. package/dist/modules/hr_backend/routes.d.ts.map +1 -1
  1027. package/dist/modules/hr_backend/routes.js +279 -42
  1028. package/dist/modules/hr_backend/routes.js.map +1 -1
  1029. package/dist/modules/hr_backend/screens/employee-form.d.ts +28 -0
  1030. package/dist/modules/hr_backend/screens/employee-form.d.ts.map +1 -0
  1031. package/dist/modules/hr_backend/screens/employee-form.js +110 -0
  1032. package/dist/modules/hr_backend/screens/employee-form.js.map +1 -0
  1033. package/dist/modules/hr_backend/screens/employees-list.d.ts +22 -0
  1034. package/dist/modules/hr_backend/screens/employees-list.d.ts.map +1 -0
  1035. package/dist/modules/hr_backend/screens/employees-list.js +53 -0
  1036. package/dist/modules/hr_backend/screens/employees-list.js.map +1 -0
  1037. package/dist/modules/hr_backend/screens/index.d.ts +5 -0
  1038. package/dist/modules/hr_backend/screens/index.d.ts.map +1 -0
  1039. package/dist/modules/hr_backend/screens/index.js +5 -0
  1040. package/dist/modules/hr_backend/screens/index.js.map +1 -0
  1041. package/dist/modules/hr_backend/screens/leaves-list.d.ts +22 -0
  1042. package/dist/modules/hr_backend/screens/leaves-list.d.ts.map +1 -0
  1043. package/dist/modules/hr_backend/screens/leaves-list.js +78 -0
  1044. package/dist/modules/hr_backend/screens/leaves-list.js.map +1 -0
  1045. package/dist/modules/hr_backend/screens/roster.d.ts +19 -0
  1046. package/dist/modules/hr_backend/screens/roster.d.ts.map +1 -0
  1047. package/dist/modules/hr_backend/screens/roster.js +83 -0
  1048. package/dist/modules/hr_backend/screens/roster.js.map +1 -0
  1049. package/dist/modules/inventory_staff_channel/channel-routes.d.ts +2 -0
  1050. package/dist/modules/inventory_staff_channel/channel-routes.d.ts.map +1 -0
  1051. package/dist/modules/inventory_staff_channel/channel-routes.js +724 -0
  1052. package/dist/modules/inventory_staff_channel/channel-routes.js.map +1 -0
  1053. package/dist/modules/inventory_staff_channel/index.d.ts +5 -0
  1054. package/dist/modules/inventory_staff_channel/index.d.ts.map +1 -0
  1055. package/dist/modules/inventory_staff_channel/index.js +38 -0
  1056. package/dist/modules/inventory_staff_channel/index.js.map +1 -0
  1057. package/dist/modules/livedoc/documents.d.ts +48 -0
  1058. package/dist/modules/livedoc/documents.d.ts.map +1 -0
  1059. package/dist/modules/livedoc/documents.js +99 -0
  1060. package/dist/modules/livedoc/documents.js.map +1 -0
  1061. package/dist/modules/livedoc/functions.d.ts +3 -0
  1062. package/dist/modules/livedoc/functions.d.ts.map +1 -0
  1063. package/dist/modules/livedoc/functions.js +47 -0
  1064. package/dist/modules/livedoc/functions.js.map +1 -0
  1065. package/dist/modules/livedoc/index.d.ts +22 -0
  1066. package/dist/modules/livedoc/index.d.ts.map +1 -0
  1067. package/dist/modules/livedoc/index.js +37 -0
  1068. package/dist/modules/livedoc/index.js.map +1 -0
  1069. package/dist/modules/livedoc/islands.d.ts +3 -0
  1070. package/dist/modules/livedoc/islands.d.ts.map +1 -0
  1071. package/dist/modules/livedoc/islands.js +22 -0
  1072. package/dist/modules/livedoc/islands.js.map +1 -0
  1073. package/dist/modules/livedoc/routes.d.ts +11 -0
  1074. package/dist/modules/livedoc/routes.d.ts.map +1 -0
  1075. package/dist/modules/livedoc/routes.js +232 -0
  1076. package/dist/modules/livedoc/routes.js.map +1 -0
  1077. package/dist/modules/livedoc/sync.d.ts +124 -0
  1078. package/dist/modules/livedoc/sync.d.ts.map +1 -0
  1079. package/dist/modules/livedoc/sync.js +218 -0
  1080. package/dist/modules/livedoc/sync.js.map +1 -0
  1081. package/dist/modules/loyalty/admin-functions.d.ts.map +1 -1
  1082. package/dist/modules/loyalty/admin-functions.js +42 -6
  1083. package/dist/modules/loyalty/admin-functions.js.map +1 -1
  1084. package/dist/modules/loyalty/engine.d.ts +1 -0
  1085. package/dist/modules/loyalty/engine.d.ts.map +1 -1
  1086. package/dist/modules/loyalty/engine.js +88 -28
  1087. package/dist/modules/loyalty/engine.js.map +1 -1
  1088. package/dist/modules/loyalty/index.d.ts.map +1 -1
  1089. package/dist/modules/loyalty/index.js +10 -2
  1090. package/dist/modules/loyalty/index.js.map +1 -1
  1091. package/dist/modules/loyalty/ledger.d.ts.map +1 -1
  1092. package/dist/modules/loyalty/ledger.js +11 -0
  1093. package/dist/modules/loyalty/ledger.js.map +1 -1
  1094. package/dist/modules/loyalty/membership-functions.d.ts.map +1 -1
  1095. package/dist/modules/loyalty/membership-functions.js +23 -7
  1096. package/dist/modules/loyalty/membership-functions.js.map +1 -1
  1097. package/dist/modules/loyalty/messages.d.ts +8 -0
  1098. package/dist/modules/loyalty/messages.d.ts.map +1 -1
  1099. package/dist/modules/loyalty/messages.js +8 -0
  1100. package/dist/modules/loyalty/messages.js.map +1 -1
  1101. package/dist/modules/loyalty/models.d.ts.map +1 -1
  1102. package/dist/modules/loyalty/models.js +20 -0
  1103. package/dist/modules/loyalty/models.js.map +1 -1
  1104. package/dist/modules/loyalty/order-functions.d.ts +16 -1
  1105. package/dist/modules/loyalty/order-functions.d.ts.map +1 -1
  1106. package/dist/modules/loyalty/order-functions.js +513 -291
  1107. package/dist/modules/loyalty/order-functions.js.map +1 -1
  1108. package/dist/modules/loyalty/stats.d.ts +17 -0
  1109. package/dist/modules/loyalty/stats.d.ts.map +1 -0
  1110. package/dist/modules/loyalty/stats.js +178 -0
  1111. package/dist/modules/loyalty/stats.js.map +1 -0
  1112. package/dist/modules/loyalty/stored-value.d.ts +42 -0
  1113. package/dist/modules/loyalty/stored-value.d.ts.map +1 -0
  1114. package/dist/modules/loyalty/stored-value.js +368 -0
  1115. package/dist/modules/loyalty/stored-value.js.map +1 -0
  1116. package/dist/modules/loyalty/types.d.ts +6 -4
  1117. package/dist/modules/loyalty/types.d.ts.map +1 -1
  1118. package/dist/modules/loyalty/types.js +1 -1
  1119. package/dist/modules/loyalty/types.js.map +1 -1
  1120. package/dist/modules/loyalty_backend/index.js +443 -172
  1121. package/dist/modules/loyalty_backend/index.js.map +1 -1
  1122. package/dist/modules/loyalty_backend/messages.d.ts +58 -1
  1123. package/dist/modules/loyalty_backend/messages.d.ts.map +1 -1
  1124. package/dist/modules/loyalty_backend/messages.js +114 -0
  1125. package/dist/modules/loyalty_backend/messages.js.map +1 -1
  1126. package/dist/modules/loyalty_backend/screens/index.d.ts +90 -0
  1127. package/dist/modules/loyalty_backend/screens/index.d.ts.map +1 -0
  1128. package/dist/modules/loyalty_backend/screens/index.js +912 -0
  1129. package/dist/modules/loyalty_backend/screens/index.js.map +1 -0
  1130. package/dist/modules/loyalty_backend/screens/page-frame.d.ts +14 -0
  1131. package/dist/modules/loyalty_backend/screens/page-frame.d.ts.map +1 -0
  1132. package/dist/modules/loyalty_backend/screens/page-frame.js +13 -0
  1133. package/dist/modules/loyalty_backend/screens/page-frame.js.map +1 -0
  1134. package/dist/modules/loyalty_pos/channel.d.ts +2 -0
  1135. package/dist/modules/loyalty_pos/channel.d.ts.map +1 -0
  1136. package/dist/modules/loyalty_pos/channel.js +270 -0
  1137. package/dist/modules/loyalty_pos/channel.js.map +1 -0
  1138. package/dist/modules/loyalty_pos/functions.d.ts +11 -17
  1139. package/dist/modules/loyalty_pos/functions.d.ts.map +1 -1
  1140. package/dist/modules/loyalty_pos/functions.js +454 -94
  1141. package/dist/modules/loyalty_pos/functions.js.map +1 -1
  1142. package/dist/modules/loyalty_pos/index.js +6 -16
  1143. package/dist/modules/loyalty_pos/index.js.map +1 -1
  1144. package/dist/modules/loyalty_pos/jobs.d.ts +3 -0
  1145. package/dist/modules/loyalty_pos/jobs.d.ts.map +1 -0
  1146. package/dist/modules/loyalty_pos/jobs.js +30 -0
  1147. package/dist/modules/loyalty_pos/jobs.js.map +1 -0
  1148. package/dist/modules/loyalty_sale/functions.d.ts +2 -2
  1149. package/dist/modules/loyalty_sale/functions.d.ts.map +1 -1
  1150. package/dist/modules/loyalty_sale/functions.js +53 -34
  1151. package/dist/modules/loyalty_sale/functions.js.map +1 -1
  1152. package/dist/modules/loyalty_sale/index.js +0 -2
  1153. package/dist/modules/loyalty_sale/index.js.map +1 -1
  1154. package/dist/modules/mail/functions.d.ts.map +1 -1
  1155. package/dist/modules/mail/functions.js +48 -6
  1156. package/dist/modules/mail/functions.js.map +1 -1
  1157. package/dist/modules/mail/index.d.ts.map +1 -1
  1158. package/dist/modules/mail/index.js +0 -1
  1159. package/dist/modules/mail/index.js.map +1 -1
  1160. package/dist/modules/mail/operations.d.ts +19 -0
  1161. package/dist/modules/mail/operations.d.ts.map +1 -1
  1162. package/dist/modules/mail/operations.js +69 -0
  1163. package/dist/modules/mail/operations.js.map +1 -1
  1164. package/dist/modules/mail_backend/index.d.ts +1 -1
  1165. package/dist/modules/mail_backend/index.d.ts.map +1 -1
  1166. package/dist/modules/mail_backend/index.js +5 -14
  1167. package/dist/modules/mail_backend/index.js.map +1 -1
  1168. package/dist/modules/mail_backend/islands.js +2 -2
  1169. package/dist/modules/mail_backend/islands.js.map +1 -1
  1170. package/dist/modules/mail_backend/routes.d.ts.map +1 -1
  1171. package/dist/modules/mail_backend/routes.js +25 -20
  1172. package/dist/modules/mail_backend/routes.js.map +1 -1
  1173. package/dist/modules/mail_backend/screens/inbox-list.d.ts +9 -0
  1174. package/dist/modules/mail_backend/screens/inbox-list.d.ts.map +1 -0
  1175. package/dist/modules/mail_backend/screens/inbox-list.js +13 -0
  1176. package/dist/modules/mail_backend/screens/inbox-list.js.map +1 -0
  1177. package/dist/modules/mail_backend/screens/index.d.ts +3 -0
  1178. package/dist/modules/mail_backend/screens/index.d.ts.map +1 -0
  1179. package/dist/modules/mail_backend/screens/index.js +2 -0
  1180. package/dist/modules/mail_backend/screens/index.js.map +1 -0
  1181. package/dist/modules/mail_inbound/index.d.ts.map +1 -1
  1182. package/dist/modules/mail_inbound/index.js +0 -1
  1183. package/dist/modules/mail_inbound/index.js.map +1 -1
  1184. package/dist/modules/mail_inbound_backend/index.d.ts +1 -1
  1185. package/dist/modules/mail_inbound_backend/index.d.ts.map +1 -1
  1186. package/dist/modules/mail_inbound_backend/index.js +3 -12
  1187. package/dist/modules/mail_inbound_backend/index.js.map +1 -1
  1188. package/dist/modules/mail_inbound_backend/routes.d.ts.map +1 -1
  1189. package/dist/modules/mail_inbound_backend/routes.js +6 -21
  1190. package/dist/modules/mail_inbound_backend/routes.js.map +1 -1
  1191. package/dist/modules/mail_inbound_backend/screens/inbound-list.d.ts +8 -0
  1192. package/dist/modules/mail_inbound_backend/screens/inbound-list.d.ts.map +1 -0
  1193. package/dist/modules/mail_inbound_backend/screens/inbound-list.js +20 -0
  1194. package/dist/modules/mail_inbound_backend/screens/inbound-list.js.map +1 -0
  1195. package/dist/modules/mail_inbound_backend/screens/index.d.ts +3 -0
  1196. package/dist/modules/mail_inbound_backend/screens/index.d.ts.map +1 -0
  1197. package/dist/modules/mail_inbound_backend/screens/index.js +2 -0
  1198. package/dist/modules/mail_inbound_backend/screens/index.js.map +1 -0
  1199. package/dist/modules/mail_staff_channel/channel-routes.d.ts +2 -0
  1200. package/dist/modules/mail_staff_channel/channel-routes.d.ts.map +1 -0
  1201. package/dist/modules/mail_staff_channel/channel-routes.js +183 -0
  1202. package/dist/modules/mail_staff_channel/channel-routes.js.map +1 -0
  1203. package/dist/modules/mail_staff_channel/index.d.ts +5 -0
  1204. package/dist/modules/mail_staff_channel/index.d.ts.map +1 -0
  1205. package/dist/modules/mail_staff_channel/index.js +28 -0
  1206. package/dist/modules/mail_staff_channel/index.js.map +1 -0
  1207. package/dist/modules/mail_transport/index.d.ts.map +1 -1
  1208. package/dist/modules/mail_transport/index.js +0 -1
  1209. package/dist/modules/mail_transport/index.js.map +1 -1
  1210. package/dist/modules/mail_transport_backend/index.d.ts +1 -1
  1211. package/dist/modules/mail_transport_backend/index.d.ts.map +1 -1
  1212. package/dist/modules/mail_transport_backend/index.js +3 -12
  1213. package/dist/modules/mail_transport_backend/index.js.map +1 -1
  1214. package/dist/modules/mail_transport_backend/routes.d.ts.map +1 -1
  1215. package/dist/modules/mail_transport_backend/routes.js +23 -22
  1216. package/dist/modules/mail_transport_backend/routes.js.map +1 -1
  1217. package/dist/modules/mail_transport_backend/screens/index.d.ts +3 -0
  1218. package/dist/modules/mail_transport_backend/screens/index.d.ts.map +1 -0
  1219. package/dist/modules/mail_transport_backend/screens/index.js +2 -0
  1220. package/dist/modules/mail_transport_backend/screens/index.js.map +1 -0
  1221. package/dist/modules/mail_transport_backend/screens/outbox-list.d.ts +9 -0
  1222. package/dist/modules/mail_transport_backend/screens/outbox-list.d.ts.map +1 -0
  1223. package/dist/modules/mail_transport_backend/screens/outbox-list.js +29 -0
  1224. package/dist/modules/mail_transport_backend/screens/outbox-list.js.map +1 -0
  1225. package/dist/modules/manufacturing/functions.d.ts +3 -0
  1226. package/dist/modules/manufacturing/functions.d.ts.map +1 -0
  1227. package/dist/modules/manufacturing/functions.js +912 -0
  1228. package/dist/modules/manufacturing/functions.js.map +1 -0
  1229. package/dist/modules/manufacturing/index.d.ts +6 -0
  1230. package/dist/modules/manufacturing/index.d.ts.map +1 -0
  1231. package/dist/modules/manufacturing/index.js +42 -0
  1232. package/dist/modules/manufacturing/index.js.map +1 -0
  1233. package/dist/modules/manufacturing/models.d.ts +8 -0
  1234. package/dist/modules/manufacturing/models.d.ts.map +1 -0
  1235. package/dist/modules/manufacturing/models.js +145 -0
  1236. package/dist/modules/manufacturing/models.js.map +1 -0
  1237. package/dist/modules/manufacturing/relations.d.ts.map +1 -0
  1238. package/dist/modules/manufacturing/relations.js +37 -0
  1239. package/dist/modules/manufacturing/relations.js.map +1 -0
  1240. package/dist/modules/manufacturing/types.d.ts +7 -0
  1241. package/dist/modules/manufacturing/types.d.ts.map +1 -0
  1242. package/dist/modules/manufacturing/types.js +11 -0
  1243. package/dist/modules/manufacturing/types.js.map +1 -0
  1244. package/dist/modules/manufacturing_backend/index.d.ts +5 -0
  1245. package/dist/modules/manufacturing_backend/index.d.ts.map +1 -0
  1246. package/dist/modules/manufacturing_backend/index.js +146 -0
  1247. package/dist/modules/manufacturing_backend/index.js.map +1 -0
  1248. package/dist/modules/manufacturing_backend/routes.d.ts +3 -0
  1249. package/dist/modules/manufacturing_backend/routes.d.ts.map +1 -0
  1250. package/dist/modules/manufacturing_backend/routes.js +477 -0
  1251. package/dist/modules/manufacturing_backend/routes.js.map +1 -0
  1252. package/dist/modules/manufacturing_backend/screens/bom-create.d.ts +15 -0
  1253. package/dist/modules/manufacturing_backend/screens/bom-create.d.ts.map +1 -0
  1254. package/dist/modules/manufacturing_backend/screens/bom-create.js +39 -0
  1255. package/dist/modules/manufacturing_backend/screens/bom-create.js.map +1 -0
  1256. package/dist/modules/manufacturing_backend/screens/boms-list.d.ts +18 -0
  1257. package/dist/modules/manufacturing_backend/screens/boms-list.d.ts.map +1 -0
  1258. package/dist/modules/manufacturing_backend/screens/boms-list.js +36 -0
  1259. package/dist/modules/manufacturing_backend/screens/boms-list.js.map +1 -0
  1260. package/dist/modules/manufacturing_backend/screens/index.d.ts +8 -0
  1261. package/dist/modules/manufacturing_backend/screens/index.d.ts.map +1 -0
  1262. package/dist/modules/manufacturing_backend/screens/index.js +8 -0
  1263. package/dist/modules/manufacturing_backend/screens/index.js.map +1 -0
  1264. package/dist/modules/manufacturing_backend/screens/order-create.d.ts +13 -0
  1265. package/dist/modules/manufacturing_backend/screens/order-create.d.ts.map +1 -0
  1266. package/dist/modules/manufacturing_backend/screens/order-create.js +20 -0
  1267. package/dist/modules/manufacturing_backend/screens/order-create.js.map +1 -0
  1268. package/dist/modules/manufacturing_backend/screens/order-execution.d.ts +7 -0
  1269. package/dist/modules/manufacturing_backend/screens/order-execution.d.ts.map +1 -0
  1270. package/dist/modules/manufacturing_backend/screens/order-execution.js +129 -0
  1271. package/dist/modules/manufacturing_backend/screens/order-execution.js.map +1 -0
  1272. package/dist/modules/manufacturing_backend/screens/orders-list.d.ts +21 -0
  1273. package/dist/modules/manufacturing_backend/screens/orders-list.d.ts.map +1 -0
  1274. package/dist/modules/manufacturing_backend/screens/orders-list.js +49 -0
  1275. package/dist/modules/manufacturing_backend/screens/orders-list.js.map +1 -0
  1276. package/dist/modules/manufacturing_backend/screens/work-center-form.d.ts +24 -0
  1277. package/dist/modules/manufacturing_backend/screens/work-center-form.d.ts.map +1 -0
  1278. package/dist/modules/manufacturing_backend/screens/work-center-form.js +80 -0
  1279. package/dist/modules/manufacturing_backend/screens/work-center-form.js.map +1 -0
  1280. package/dist/modules/manufacturing_backend/screens/work-centers-list.d.ts +23 -0
  1281. package/dist/modules/manufacturing_backend/screens/work-centers-list.d.ts.map +1 -0
  1282. package/dist/modules/manufacturing_backend/screens/work-centers-list.js +61 -0
  1283. package/dist/modules/manufacturing_backend/screens/work-centers-list.js.map +1 -0
  1284. package/dist/modules/oauth/index.d.ts.map +1 -1
  1285. package/dist/modules/oauth/index.js +0 -1
  1286. package/dist/modules/oauth/index.js.map +1 -1
  1287. package/dist/modules/oauth/models.d.ts.map +1 -1
  1288. package/dist/modules/oauth/models.js +2 -1
  1289. package/dist/modules/oauth/models.js.map +1 -1
  1290. package/dist/modules/oauth_backend/index.d.ts +1 -1
  1291. package/dist/modules/oauth_backend/index.d.ts.map +1 -1
  1292. package/dist/modules/oauth_backend/index.js +3 -5
  1293. package/dist/modules/oauth_backend/index.js.map +1 -1
  1294. package/dist/modules/oauth_backend/messages.d.ts +4 -0
  1295. package/dist/modules/oauth_backend/messages.d.ts.map +1 -1
  1296. package/dist/modules/oauth_backend/messages.js +4 -0
  1297. package/dist/modules/oauth_backend/messages.js.map +1 -1
  1298. package/dist/modules/oauth_backend/routes.d.ts.map +1 -1
  1299. package/dist/modules/oauth_backend/routes.js +28 -30
  1300. package/dist/modules/oauth_backend/routes.js.map +1 -1
  1301. package/dist/modules/oauth_backend/screens/index.d.ts +66 -0
  1302. package/dist/modules/oauth_backend/screens/index.d.ts.map +1 -0
  1303. package/dist/modules/oauth_backend/screens/index.js +306 -0
  1304. package/dist/modules/oauth_backend/screens/index.js.map +1 -0
  1305. package/dist/modules/partner/functions.d.ts.map +1 -1
  1306. package/dist/modules/partner/functions.js +74 -6
  1307. package/dist/modules/partner/functions.js.map +1 -1
  1308. package/dist/modules/partner/index.d.ts.map +1 -1
  1309. package/dist/modules/partner/index.js +0 -1
  1310. package/dist/modules/partner/index.js.map +1 -1
  1311. package/dist/modules/partner/models.d.ts +4 -4
  1312. package/dist/modules/partner/models.d.ts.map +1 -1
  1313. package/dist/modules/partner/models.js +9 -7
  1314. package/dist/modules/partner/models.js.map +1 -1
  1315. package/dist/modules/partner/types.d.ts +2 -2
  1316. package/dist/modules/partner/types.js +2 -2
  1317. package/dist/modules/partner_backend/client/address-view.mjs +5 -5
  1318. package/dist/modules/partner_backend/client/address-view.mjs.map +1 -1
  1319. package/dist/modules/partner_backend/client/address.css +22 -10
  1320. package/dist/modules/partner_backend/client/partner.css +116 -0
  1321. package/dist/modules/partner_backend/index.d.ts +1 -1
  1322. package/dist/modules/partner_backend/index.d.ts.map +1 -1
  1323. package/dist/modules/partner_backend/index.js +34 -4
  1324. package/dist/modules/partner_backend/index.js.map +1 -1
  1325. package/dist/modules/partner_backend/menus.js +2 -2
  1326. package/dist/modules/partner_backend/menus.js.map +1 -1
  1327. package/dist/modules/partner_backend/routes.d.ts +3 -1
  1328. package/dist/modules/partner_backend/routes.d.ts.map +1 -1
  1329. package/dist/modules/partner_backend/routes.js +236 -91
  1330. package/dist/modules/partner_backend/routes.js.map +1 -1
  1331. package/dist/modules/partner_backend/screens/form.d.ts +21 -0
  1332. package/dist/modules/partner_backend/screens/form.d.ts.map +1 -0
  1333. package/dist/modules/partner_backend/screens/form.js +101 -0
  1334. package/dist/modules/partner_backend/screens/form.js.map +1 -0
  1335. package/dist/modules/partner_backend/screens/index.d.ts +5 -0
  1336. package/dist/modules/partner_backend/screens/index.d.ts.map +1 -0
  1337. package/dist/modules/partner_backend/screens/index.js +4 -0
  1338. package/dist/modules/partner_backend/screens/index.js.map +1 -0
  1339. package/dist/modules/partner_backend/screens/list.d.ts +6 -0
  1340. package/dist/modules/partner_backend/screens/list.d.ts.map +1 -0
  1341. package/dist/modules/partner_backend/screens/list.js +94 -0
  1342. package/dist/modules/partner_backend/screens/list.js.map +1 -0
  1343. package/dist/modules/partner_backend/screens/new.d.ts +5 -0
  1344. package/dist/modules/partner_backend/screens/new.d.ts.map +1 -0
  1345. package/dist/modules/partner_backend/screens/new.js +58 -0
  1346. package/dist/modules/partner_backend/screens/new.js.map +1 -0
  1347. package/dist/modules/partner_backend/screens/types.d.ts +44 -0
  1348. package/dist/modules/partner_backend/screens/types.d.ts.map +1 -0
  1349. package/dist/modules/partner_backend/screens/types.js +2 -0
  1350. package/dist/modules/partner_backend/screens/types.js.map +1 -0
  1351. package/dist/modules/partner_mail_backend/index.d.ts +5 -0
  1352. package/dist/modules/partner_mail_backend/index.d.ts.map +1 -0
  1353. package/dist/modules/partner_mail_backend/index.js +29 -0
  1354. package/dist/modules/partner_mail_backend/index.js.map +1 -0
  1355. package/dist/modules/pos/functions.d.ts +18 -2
  1356. package/dist/modules/pos/functions.d.ts.map +1 -1
  1357. package/dist/modules/pos/functions.js +3279 -345
  1358. package/dist/modules/pos/functions.js.map +1 -1
  1359. package/dist/modules/pos/index.d.ts +2 -1
  1360. package/dist/modules/pos/index.d.ts.map +1 -1
  1361. package/dist/modules/pos/index.js +5 -5
  1362. package/dist/modules/pos/index.js.map +1 -1
  1363. package/dist/modules/pos/models.d.ts.map +1 -1
  1364. package/dist/modules/pos/models.js +189 -1
  1365. package/dist/modules/pos/models.js.map +1 -1
  1366. package/dist/modules/pos/relations.d.ts.map +1 -1
  1367. package/dist/modules/pos/relations.js +11 -0
  1368. package/dist/modules/pos/relations.js.map +1 -1
  1369. package/dist/modules/pos_backend/index.js +182 -154
  1370. package/dist/modules/pos_backend/index.js.map +1 -1
  1371. package/dist/modules/pos_backend/screens.d.ts +1 -0
  1372. package/dist/modules/pos_backend/screens.d.ts.map +1 -1
  1373. package/dist/modules/pos_backend/screens.js +28 -38
  1374. package/dist/modules/pos_backend/screens.js.map +1 -1
  1375. package/dist/modules/pos_channel/catalog.d.ts +27 -0
  1376. package/dist/modules/pos_channel/catalog.d.ts.map +1 -0
  1377. package/dist/modules/pos_channel/catalog.js +310 -0
  1378. package/dist/modules/pos_channel/catalog.js.map +1 -0
  1379. package/dist/modules/pos_channel/index.d.ts +7 -0
  1380. package/dist/modules/pos_channel/index.d.ts.map +1 -0
  1381. package/dist/modules/pos_channel/index.js +61 -0
  1382. package/dist/modules/pos_channel/index.js.map +1 -0
  1383. package/dist/modules/pos_channel/offline.d.ts +66 -0
  1384. package/dist/modules/pos_channel/offline.d.ts.map +1 -0
  1385. package/dist/modules/pos_channel/offline.js +16 -0
  1386. package/dist/modules/pos_channel/offline.js.map +1 -0
  1387. package/dist/modules/pos_channel/operations.d.ts +422 -0
  1388. package/dist/modules/pos_channel/operations.d.ts.map +1 -0
  1389. package/dist/modules/pos_channel/operations.js +1781 -0
  1390. package/dist/modules/pos_channel/operations.js.map +1 -0
  1391. package/dist/modules/pos_channel/sync.d.ts +6 -0
  1392. package/dist/modules/pos_channel/sync.d.ts.map +1 -0
  1393. package/dist/modules/pos_channel/sync.js +1161 -0
  1394. package/dist/modules/pos_channel/sync.js.map +1 -0
  1395. package/dist/modules/pricing/index.d.ts.map +1 -1
  1396. package/dist/modules/pricing/index.js +3 -4
  1397. package/dist/modules/pricing/index.js.map +1 -1
  1398. package/dist/modules/pricing_backend/index.js +135 -78
  1399. package/dist/modules/pricing_backend/index.js.map +1 -1
  1400. package/dist/modules/pricing_backend/screens/index.d.ts +5 -0
  1401. package/dist/modules/pricing_backend/screens/index.d.ts.map +1 -0
  1402. package/dist/modules/pricing_backend/screens/index.js +4 -0
  1403. package/dist/modules/pricing_backend/screens/index.js.map +1 -0
  1404. package/dist/modules/pricing_backend/screens/pricelist-create.d.ts +10 -0
  1405. package/dist/modules/pricing_backend/screens/pricelist-create.d.ts.map +1 -0
  1406. package/dist/modules/pricing_backend/screens/pricelist-create.js +30 -0
  1407. package/dist/modules/pricing_backend/screens/pricelist-create.js.map +1 -0
  1408. package/dist/modules/pricing_backend/screens/pricelist-detail.d.ts +15 -0
  1409. package/dist/modules/pricing_backend/screens/pricelist-detail.d.ts.map +1 -0
  1410. package/dist/modules/pricing_backend/screens/pricelist-detail.js +164 -0
  1411. package/dist/modules/pricing_backend/screens/pricelist-detail.js.map +1 -0
  1412. package/dist/modules/pricing_backend/screens/pricelists-list.d.ts +11 -0
  1413. package/dist/modules/pricing_backend/screens/pricelists-list.d.ts.map +1 -0
  1414. package/dist/modules/pricing_backend/screens/pricelists-list.js +27 -0
  1415. package/dist/modules/pricing_backend/screens/pricelists-list.js.map +1 -0
  1416. package/dist/modules/pricing_backend/screens/shared.d.ts +21 -0
  1417. package/dist/modules/pricing_backend/screens/shared.d.ts.map +1 -0
  1418. package/dist/modules/pricing_backend/screens/shared.js +3 -0
  1419. package/dist/modules/pricing_backend/screens/shared.js.map +1 -0
  1420. package/dist/modules/product/functions.d.ts.map +1 -1
  1421. package/dist/modules/product/functions.js +679 -50
  1422. package/dist/modules/product/functions.js.map +1 -1
  1423. package/dist/modules/product/index.d.ts +2 -0
  1424. package/dist/modules/product/index.d.ts.map +1 -1
  1425. package/dist/modules/product/index.js +2 -2
  1426. package/dist/modules/product/index.js.map +1 -1
  1427. package/dist/modules/product/models.d.ts +1 -1
  1428. package/dist/modules/product/models.d.ts.map +1 -1
  1429. package/dist/modules/product/models.js +27 -4
  1430. package/dist/modules/product/models.js.map +1 -1
  1431. package/dist/modules/product/relations.d.ts.map +1 -1
  1432. package/dist/modules/product/relations.js +4 -0
  1433. package/dist/modules/product/relations.js.map +1 -1
  1434. package/dist/modules/product/sellable.d.ts +26 -0
  1435. package/dist/modules/product/sellable.d.ts.map +1 -0
  1436. package/dist/modules/product/sellable.js +56 -0
  1437. package/dist/modules/product/sellable.js.map +1 -0
  1438. package/dist/modules/product/types.d.ts +2 -2
  1439. package/dist/modules/product/views.d.ts.map +1 -1
  1440. package/dist/modules/product/views.js +5 -1
  1441. package/dist/modules/product/views.js.map +1 -1
  1442. package/dist/modules/product_activity_backend/index.d.ts.map +1 -1
  1443. package/dist/modules/product_activity_backend/index.js +2 -3
  1444. package/dist/modules/product_activity_backend/index.js.map +1 -1
  1445. package/dist/modules/product_backend/client/media-upload-view.d.mts +2 -0
  1446. package/dist/modules/product_backend/client/media-upload-view.d.mts.map +1 -0
  1447. package/dist/modules/product_backend/client/media-upload-view.mjs +27 -0
  1448. package/dist/modules/product_backend/client/media-upload-view.mjs.map +1 -0
  1449. package/dist/modules/product_backend/client/product.css +964 -0
  1450. package/dist/modules/product_backend/client/product.d.mts +2 -0
  1451. package/dist/modules/product_backend/client/product.d.mts.map +1 -1
  1452. package/dist/modules/product_backend/client/product.mjs +3 -0
  1453. package/dist/modules/product_backend/client/product.mjs.map +1 -1
  1454. package/dist/modules/product_backend/index.d.ts +5 -6
  1455. package/dist/modules/product_backend/index.d.ts.map +1 -1
  1456. package/dist/modules/product_backend/index.js +205 -14
  1457. package/dist/modules/product_backend/index.js.map +1 -1
  1458. package/dist/modules/product_backend/islands.d.ts.map +1 -1
  1459. package/dist/modules/product_backend/islands.js +8 -0
  1460. package/dist/modules/product_backend/islands.js.map +1 -1
  1461. package/dist/modules/product_backend/menus.js +2 -2
  1462. package/dist/modules/product_backend/menus.js.map +1 -1
  1463. package/dist/modules/product_backend/relation-control.d.ts +85 -0
  1464. package/dist/modules/product_backend/relation-control.d.ts.map +1 -0
  1465. package/dist/modules/product_backend/relation-control.js +129 -0
  1466. package/dist/modules/product_backend/relation-control.js.map +1 -0
  1467. package/dist/modules/product_backend/routes.d.ts.map +1 -1
  1468. package/dist/modules/product_backend/routes.js +514 -194
  1469. package/dist/modules/product_backend/routes.js.map +1 -1
  1470. package/dist/modules/product_backend/screens/attributes.d.ts +7 -0
  1471. package/dist/modules/product_backend/screens/attributes.d.ts.map +1 -0
  1472. package/dist/modules/product_backend/screens/attributes.js +66 -0
  1473. package/dist/modules/product_backend/screens/attributes.js.map +1 -0
  1474. package/dist/modules/product_backend/screens/create.d.ts +16 -0
  1475. package/dist/modules/product_backend/screens/create.d.ts.map +1 -0
  1476. package/dist/modules/product_backend/screens/create.js +86 -0
  1477. package/dist/modules/product_backend/screens/create.js.map +1 -0
  1478. package/dist/modules/product_backend/screens/detail.d.ts +87 -0
  1479. package/dist/modules/product_backend/screens/detail.d.ts.map +1 -0
  1480. package/dist/modules/product_backend/screens/detail.js +381 -0
  1481. package/dist/modules/product_backend/screens/detail.js.map +1 -0
  1482. package/dist/modules/product_backend/screens/favorite.d.ts +6 -0
  1483. package/dist/modules/product_backend/screens/favorite.d.ts.map +1 -0
  1484. package/dist/modules/product_backend/screens/favorite.js +43 -0
  1485. package/dist/modules/product_backend/screens/favorite.js.map +1 -0
  1486. package/dist/modules/product_backend/screens/index.d.ts +10 -0
  1487. package/dist/modules/product_backend/screens/index.d.ts.map +1 -0
  1488. package/dist/modules/product_backend/screens/index.js +7 -0
  1489. package/dist/modules/product_backend/screens/index.js.map +1 -0
  1490. package/dist/modules/product_backend/screens/list.d.ts +54 -0
  1491. package/dist/modules/product_backend/screens/list.d.ts.map +1 -0
  1492. package/dist/modules/product_backend/screens/list.js +124 -0
  1493. package/dist/modules/product_backend/screens/list.js.map +1 -0
  1494. package/dist/modules/product_backend/screens/variant.d.ts +9 -0
  1495. package/dist/modules/product_backend/screens/variant.d.ts.map +1 -0
  1496. package/dist/modules/product_backend/screens/variant.js +113 -0
  1497. package/dist/modules/product_backend/screens/variant.js.map +1 -0
  1498. package/dist/modules/product_mail_backend/index.d.ts.map +1 -1
  1499. package/dist/modules/product_mail_backend/index.js +2 -3
  1500. package/dist/modules/product_mail_backend/index.js.map +1 -1
  1501. package/dist/modules/product_media/functions.d.ts.map +1 -1
  1502. package/dist/modules/product_media/functions.js +59 -6
  1503. package/dist/modules/product_media/functions.js.map +1 -1
  1504. package/dist/modules/product_media/index.js +0 -1
  1505. package/dist/modules/product_media/index.js.map +1 -1
  1506. package/dist/modules/product_variant_activity_backend/index.d.ts.map +1 -1
  1507. package/dist/modules/product_variant_activity_backend/index.js +2 -3
  1508. package/dist/modules/product_variant_activity_backend/index.js.map +1 -1
  1509. package/dist/modules/product_variant_mail_backend/index.d.ts.map +1 -1
  1510. package/dist/modules/product_variant_mail_backend/index.js +2 -3
  1511. package/dist/modules/product_variant_mail_backend/index.js.map +1 -1
  1512. package/dist/modules/purchase/functions.d.ts.map +1 -1
  1513. package/dist/modules/purchase/functions.js +852 -225
  1514. package/dist/modules/purchase/functions.js.map +1 -1
  1515. package/dist/modules/purchase/index.d.ts.map +1 -1
  1516. package/dist/modules/purchase/index.js +30 -5
  1517. package/dist/modules/purchase/index.js.map +1 -1
  1518. package/dist/modules/purchase/models.d.ts.map +1 -1
  1519. package/dist/modules/purchase/models.js +1 -0
  1520. package/dist/modules/purchase/models.js.map +1 -1
  1521. package/dist/modules/purchase/reports.d.ts +4 -0
  1522. package/dist/modules/purchase/reports.d.ts.map +1 -0
  1523. package/dist/modules/purchase/reports.js +86 -0
  1524. package/dist/modules/purchase/reports.js.map +1 -0
  1525. package/dist/modules/purchase_backend/index.js +513 -112
  1526. package/dist/modules/purchase_backend/index.js.map +1 -1
  1527. package/dist/modules/purchase_backend/screens/index.d.ts +10 -0
  1528. package/dist/modules/purchase_backend/screens/index.d.ts.map +1 -0
  1529. package/dist/modules/purchase_backend/screens/index.js +10 -0
  1530. package/dist/modules/purchase_backend/screens/index.js.map +1 -0
  1531. package/dist/modules/purchase_backend/screens/order-detail.d.ts +31 -0
  1532. package/dist/modules/purchase_backend/screens/order-detail.d.ts.map +1 -0
  1533. package/dist/modules/purchase_backend/screens/order-detail.js +204 -0
  1534. package/dist/modules/purchase_backend/screens/order-detail.js.map +1 -0
  1535. package/dist/modules/purchase_backend/screens/order-list-shared.d.ts +7 -0
  1536. package/dist/modules/purchase_backend/screens/order-list-shared.d.ts.map +1 -0
  1537. package/dist/modules/purchase_backend/screens/order-list-shared.js +58 -0
  1538. package/dist/modules/purchase_backend/screens/order-list-shared.js.map +1 -0
  1539. package/dist/modules/purchase_backend/screens/overview.d.ts +19 -0
  1540. package/dist/modules/purchase_backend/screens/overview.d.ts.map +1 -0
  1541. package/dist/modules/purchase_backend/screens/overview.js +52 -0
  1542. package/dist/modules/purchase_backend/screens/overview.js.map +1 -0
  1543. package/dist/modules/purchase_backend/screens/purchase-orders-list.d.ts +14 -0
  1544. package/dist/modules/purchase_backend/screens/purchase-orders-list.d.ts.map +1 -0
  1545. package/dist/modules/purchase_backend/screens/purchase-orders-list.js +26 -0
  1546. package/dist/modules/purchase_backend/screens/purchase-orders-list.js.map +1 -0
  1547. package/dist/modules/purchase_backend/screens/rfq-create.d.ts +16 -0
  1548. package/dist/modules/purchase_backend/screens/rfq-create.d.ts.map +1 -0
  1549. package/dist/modules/purchase_backend/screens/rfq-create.js +24 -0
  1550. package/dist/modules/purchase_backend/screens/rfq-create.js.map +1 -0
  1551. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts +18 -0
  1552. package/dist/modules/purchase_backend/screens/rfqs-list.d.ts.map +1 -0
  1553. package/dist/modules/purchase_backend/screens/rfqs-list.js +28 -0
  1554. package/dist/modules/purchase_backend/screens/rfqs-list.js.map +1 -0
  1555. package/dist/modules/purchase_backend/screens/shared.d.ts +18 -0
  1556. package/dist/modules/purchase_backend/screens/shared.d.ts.map +1 -0
  1557. package/dist/modules/purchase_backend/screens/shared.js +30 -0
  1558. package/dist/modules/purchase_backend/screens/shared.js.map +1 -0
  1559. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.d.ts +20 -0
  1560. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.d.ts.map +1 -0
  1561. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js +25 -0
  1562. package/dist/modules/purchase_backend/screens/vendor-pricelist-create.js.map +1 -0
  1563. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts +33 -0
  1564. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.d.ts.map +1 -0
  1565. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js +73 -0
  1566. package/dist/modules/purchase_backend/screens/vendor-pricelists-list.js.map +1 -0
  1567. package/dist/modules/purchase_staff_channel/channel-routes.d.ts +2 -0
  1568. package/dist/modules/purchase_staff_channel/channel-routes.d.ts.map +1 -0
  1569. package/dist/modules/purchase_staff_channel/channel-routes.js +119 -0
  1570. package/dist/modules/purchase_staff_channel/channel-routes.js.map +1 -0
  1571. package/dist/modules/purchase_staff_channel/index.d.ts +8 -0
  1572. package/dist/modules/purchase_staff_channel/index.d.ts.map +1 -0
  1573. package/dist/modules/purchase_staff_channel/index.js +45 -0
  1574. package/dist/modules/purchase_staff_channel/index.js.map +1 -0
  1575. package/dist/modules/purchase_staff_channel/order-routes.d.ts +2 -0
  1576. package/dist/modules/purchase_staff_channel/order-routes.d.ts.map +1 -0
  1577. package/dist/modules/purchase_staff_channel/order-routes.js +754 -0
  1578. package/dist/modules/purchase_staff_channel/order-routes.js.map +1 -0
  1579. package/dist/modules/purchase_staff_channel/product-routes.d.ts +2 -0
  1580. package/dist/modules/purchase_staff_channel/product-routes.d.ts.map +1 -0
  1581. package/dist/modules/purchase_staff_channel/product-routes.js +183 -0
  1582. package/dist/modules/purchase_staff_channel/product-routes.js.map +1 -0
  1583. package/dist/modules/purchase_staff_channel/vendor-bill-routes.d.ts +2 -0
  1584. package/dist/modules/purchase_staff_channel/vendor-bill-routes.d.ts.map +1 -0
  1585. package/dist/modules/purchase_staff_channel/vendor-bill-routes.js +189 -0
  1586. package/dist/modules/purchase_staff_channel/vendor-bill-routes.js.map +1 -0
  1587. package/dist/modules/quality/functions.d.ts +3 -0
  1588. package/dist/modules/quality/functions.d.ts.map +1 -0
  1589. package/dist/modules/quality/functions.js +381 -0
  1590. package/dist/modules/quality/functions.js.map +1 -0
  1591. package/dist/modules/quality/index.d.ts +5 -0
  1592. package/dist/modules/quality/index.d.ts.map +1 -0
  1593. package/dist/modules/quality/index.js +19 -0
  1594. package/dist/modules/quality/index.js.map +1 -0
  1595. package/dist/modules/quality/models.d.ts +3 -0
  1596. package/dist/modules/quality/models.d.ts.map +1 -0
  1597. package/dist/modules/quality/models.js +91 -0
  1598. package/dist/modules/quality/models.js.map +1 -0
  1599. package/dist/modules/quality_staff_channel/channel-routes.d.ts +2 -0
  1600. package/dist/modules/quality_staff_channel/channel-routes.d.ts.map +1 -0
  1601. package/dist/modules/quality_staff_channel/channel-routes.js +495 -0
  1602. package/dist/modules/quality_staff_channel/channel-routes.js.map +1 -0
  1603. package/dist/modules/quality_staff_channel/index.d.ts +5 -0
  1604. package/dist/modules/quality_staff_channel/index.d.ts.map +1 -0
  1605. package/dist/modules/quality_staff_channel/index.js +30 -0
  1606. package/dist/modules/quality_staff_channel/index.js.map +1 -0
  1607. package/dist/modules/report/functions.d.ts +3 -0
  1608. package/dist/modules/report/functions.d.ts.map +1 -0
  1609. package/dist/modules/report/functions.js +197 -0
  1610. package/dist/modules/report/functions.js.map +1 -0
  1611. package/dist/modules/report/index.d.ts +3 -0
  1612. package/dist/modules/report/index.d.ts.map +1 -0
  1613. package/dist/modules/report/index.js +21 -0
  1614. package/dist/modules/report/index.js.map +1 -0
  1615. package/dist/modules/report/jobs.d.ts +3 -0
  1616. package/dist/modules/report/jobs.d.ts.map +1 -0
  1617. package/dist/modules/report/jobs.js +18 -0
  1618. package/dist/modules/report/jobs.js.map +1 -0
  1619. package/dist/modules/report/models.d.ts +3 -0
  1620. package/dist/modules/report/models.d.ts.map +1 -0
  1621. package/dist/modules/report/models.js +45 -0
  1622. package/dist/modules/report/models.js.map +1 -0
  1623. package/dist/modules/report/routes.d.ts +19 -0
  1624. package/dist/modules/report/routes.d.ts.map +1 -0
  1625. package/dist/modules/report/routes.js +138 -0
  1626. package/dist/modules/report/routes.js.map +1 -0
  1627. package/dist/modules/report_backend/index.d.ts +3 -0
  1628. package/dist/modules/report_backend/index.d.ts.map +1 -0
  1629. package/dist/modules/report_backend/index.js +67 -0
  1630. package/dist/modules/report_backend/index.js.map +1 -0
  1631. package/dist/modules/report_backend/routes.d.ts +10 -0
  1632. package/dist/modules/report_backend/routes.d.ts.map +1 -0
  1633. package/dist/modules/report_backend/routes.js +87 -0
  1634. package/dist/modules/report_backend/routes.js.map +1 -0
  1635. package/dist/modules/report_backend/screens/index.d.ts +13 -0
  1636. package/dist/modules/report_backend/screens/index.d.ts.map +1 -0
  1637. package/dist/modules/report_backend/screens/index.js +91 -0
  1638. package/dist/modules/report_backend/screens/index.js.map +1 -0
  1639. package/dist/modules/sale/functions.d.ts.map +1 -1
  1640. package/dist/modules/sale/functions.js +796 -238
  1641. package/dist/modules/sale/functions.js.map +1 -1
  1642. package/dist/modules/sale/index.d.ts.map +1 -1
  1643. package/dist/modules/sale/index.js +44 -5
  1644. package/dist/modules/sale/index.js.map +1 -1
  1645. package/dist/modules/sale/models.d.ts.map +1 -1
  1646. package/dist/modules/sale/models.js +47 -1
  1647. package/dist/modules/sale/models.js.map +1 -1
  1648. package/dist/modules/sale/relations.d.ts.map +1 -1
  1649. package/dist/modules/sale/relations.js +6 -0
  1650. package/dist/modules/sale/relations.js.map +1 -1
  1651. package/dist/modules/sale/reports.d.ts +4 -0
  1652. package/dist/modules/sale/reports.d.ts.map +1 -0
  1653. package/dist/modules/sale/reports.js +132 -0
  1654. package/dist/modules/sale/reports.js.map +1 -0
  1655. package/dist/modules/sale/scope.d.ts +31 -0
  1656. package/dist/modules/sale/scope.d.ts.map +1 -0
  1657. package/dist/modules/sale/scope.js +34 -0
  1658. package/dist/modules/sale/scope.js.map +1 -0
  1659. package/dist/modules/sale_activity_backend/index.d.ts.map +1 -1
  1660. package/dist/modules/sale_activity_backend/index.js +0 -1
  1661. package/dist/modules/sale_activity_backend/index.js.map +1 -1
  1662. package/dist/modules/sale_backend/index.js +338 -121
  1663. package/dist/modules/sale_backend/index.js.map +1 -1
  1664. package/dist/modules/sale_backend/screens/index.d.ts +9 -0
  1665. package/dist/modules/sale_backend/screens/index.d.ts.map +1 -0
  1666. package/dist/modules/sale_backend/screens/index.js +9 -0
  1667. package/dist/modules/sale_backend/screens/index.js.map +1 -0
  1668. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts +14 -0
  1669. package/dist/modules/sale_backend/screens/invoicing-policies-list.d.ts.map +1 -0
  1670. package/dist/modules/sale_backend/screens/invoicing-policies-list.js +48 -0
  1671. package/dist/modules/sale_backend/screens/invoicing-policies-list.js.map +1 -0
  1672. package/dist/modules/sale_backend/screens/invoicing-policy-create.d.ts +14 -0
  1673. package/dist/modules/sale_backend/screens/invoicing-policy-create.d.ts.map +1 -0
  1674. package/dist/modules/sale_backend/screens/invoicing-policy-create.js +38 -0
  1675. package/dist/modules/sale_backend/screens/invoicing-policy-create.js.map +1 -0
  1676. package/dist/modules/sale_backend/screens/order-detail.d.ts +43 -0
  1677. package/dist/modules/sale_backend/screens/order-detail.d.ts.map +1 -0
  1678. package/dist/modules/sale_backend/screens/order-detail.js +226 -0
  1679. package/dist/modules/sale_backend/screens/order-detail.js.map +1 -0
  1680. package/dist/modules/sale_backend/screens/overview.d.ts +31 -0
  1681. package/dist/modules/sale_backend/screens/overview.d.ts.map +1 -0
  1682. package/dist/modules/sale_backend/screens/overview.js +73 -0
  1683. package/dist/modules/sale_backend/screens/overview.js.map +1 -0
  1684. package/dist/modules/sale_backend/screens/quotation-create.d.ts +13 -0
  1685. package/dist/modules/sale_backend/screens/quotation-create.d.ts.map +1 -0
  1686. package/dist/modules/sale_backend/screens/quotation-create.js +19 -0
  1687. package/dist/modules/sale_backend/screens/quotation-create.js.map +1 -0
  1688. package/dist/modules/sale_backend/screens/quotations-list.d.ts +25 -0
  1689. package/dist/modules/sale_backend/screens/quotations-list.d.ts.map +1 -0
  1690. package/dist/modules/sale_backend/screens/quotations-list.js +96 -0
  1691. package/dist/modules/sale_backend/screens/quotations-list.js.map +1 -0
  1692. package/dist/modules/sale_backend/screens/sales-orders-list.d.ts +25 -0
  1693. package/dist/modules/sale_backend/screens/sales-orders-list.d.ts.map +1 -0
  1694. package/dist/modules/sale_backend/screens/sales-orders-list.js +100 -0
  1695. package/dist/modules/sale_backend/screens/sales-orders-list.js.map +1 -0
  1696. package/dist/modules/sale_backend/screens/shared.d.ts +4 -0
  1697. package/dist/modules/sale_backend/screens/shared.d.ts.map +1 -0
  1698. package/dist/modules/sale_backend/screens/shared.js +4 -0
  1699. package/dist/modules/sale_backend/screens/shared.js.map +1 -0
  1700. package/dist/modules/sale_mail_backend/index.d.ts.map +1 -1
  1701. package/dist/modules/sale_mail_backend/index.js +0 -1
  1702. package/dist/modules/sale_mail_backend/index.js.map +1 -1
  1703. package/dist/modules/sale_staff_channel/channel-routes.d.ts +2 -0
  1704. package/dist/modules/sale_staff_channel/channel-routes.d.ts.map +1 -0
  1705. package/dist/modules/sale_staff_channel/channel-routes.js +296 -0
  1706. package/dist/modules/sale_staff_channel/channel-routes.js.map +1 -0
  1707. package/dist/modules/sale_staff_channel/index.d.ts +7 -0
  1708. package/dist/modules/sale_staff_channel/index.d.ts.map +1 -0
  1709. package/dist/modules/sale_staff_channel/index.js +44 -0
  1710. package/dist/modules/sale_staff_channel/index.js.map +1 -0
  1711. package/dist/modules/sale_staff_channel/order-routes.d.ts +2 -0
  1712. package/dist/modules/sale_staff_channel/order-routes.d.ts.map +1 -0
  1713. package/dist/modules/sale_staff_channel/order-routes.js +658 -0
  1714. package/dist/modules/sale_staff_channel/order-routes.js.map +1 -0
  1715. package/dist/modules/sale_staff_channel/product-routes.d.ts +2 -0
  1716. package/dist/modules/sale_staff_channel/product-routes.d.ts.map +1 -0
  1717. package/dist/modules/sale_staff_channel/product-routes.js +183 -0
  1718. package/dist/modules/sale_staff_channel/product-routes.js.map +1 -0
  1719. package/dist/modules/stock/functions.d.ts.map +1 -1
  1720. package/dist/modules/stock/functions.js +1239 -332
  1721. package/dist/modules/stock/functions.js.map +1 -1
  1722. package/dist/modules/stock/index.d.ts +2 -0
  1723. package/dist/modules/stock/index.d.ts.map +1 -1
  1724. package/dist/modules/stock/index.js +29 -6
  1725. package/dist/modules/stock/index.js.map +1 -1
  1726. package/dist/modules/stock/models.d.ts.map +1 -1
  1727. package/dist/modules/stock/models.js +1 -0
  1728. package/dist/modules/stock/models.js.map +1 -1
  1729. package/dist/modules/stock/reports.d.ts +4 -0
  1730. package/dist/modules/stock/reports.d.ts.map +1 -0
  1731. package/dist/modules/stock/reports.js +100 -0
  1732. package/dist/modules/stock/reports.js.map +1 -0
  1733. package/dist/modules/stock/routing.d.ts +1 -1
  1734. package/dist/modules/stock/routing.d.ts.map +1 -1
  1735. package/dist/modules/stock/routing.js +35 -30
  1736. package/dist/modules/stock/routing.js.map +1 -1
  1737. package/dist/modules/stock/scope.d.ts +23 -0
  1738. package/dist/modules/stock/scope.d.ts.map +1 -0
  1739. package/dist/modules/stock/scope.js +26 -0
  1740. package/dist/modules/stock/scope.js.map +1 -0
  1741. package/dist/modules/stock/units.d.ts +14 -0
  1742. package/dist/modules/stock/units.d.ts.map +1 -0
  1743. package/dist/modules/stock/units.js +50 -0
  1744. package/dist/modules/stock/units.js.map +1 -0
  1745. package/dist/modules/stock_activity_backend/index.d.ts.map +1 -1
  1746. package/dist/modules/stock_activity_backend/index.js +0 -1
  1747. package/dist/modules/stock_activity_backend/index.js.map +1 -1
  1748. package/dist/modules/stock_backend/client/editor-view.d.mts.map +1 -1
  1749. package/dist/modules/stock_backend/client/editor-view.mjs +12 -10
  1750. package/dist/modules/stock_backend/client/editor-view.mjs.map +1 -1
  1751. package/dist/modules/stock_backend/index.js +27 -20
  1752. package/dist/modules/stock_backend/index.js.map +1 -1
  1753. package/dist/modules/stock_backend/routes.d.ts.map +1 -1
  1754. package/dist/modules/stock_backend/routes.js +485 -232
  1755. package/dist/modules/stock_backend/routes.js.map +1 -1
  1756. package/dist/modules/stock_backend/screens/forecast.d.ts +28 -0
  1757. package/dist/modules/stock_backend/screens/forecast.d.ts.map +1 -0
  1758. package/dist/modules/stock_backend/screens/forecast.js +108 -0
  1759. package/dist/modules/stock_backend/screens/forecast.js.map +1 -0
  1760. package/dist/modules/stock_backend/screens/index.d.ts +22 -0
  1761. package/dist/modules/stock_backend/screens/index.d.ts.map +1 -0
  1762. package/dist/modules/stock_backend/screens/index.js +22 -0
  1763. package/dist/modules/stock_backend/screens/index.js.map +1 -0
  1764. package/dist/modules/stock_backend/screens/inventory.d.ts +27 -0
  1765. package/dist/modules/stock_backend/screens/inventory.d.ts.map +1 -0
  1766. package/dist/modules/stock_backend/screens/inventory.js +128 -0
  1767. package/dist/modules/stock_backend/screens/inventory.js.map +1 -0
  1768. package/dist/modules/stock_backend/screens/location-create.d.ts +15 -0
  1769. package/dist/modules/stock_backend/screens/location-create.d.ts.map +1 -0
  1770. package/dist/modules/stock_backend/screens/location-create.js +75 -0
  1771. package/dist/modules/stock_backend/screens/location-create.js.map +1 -0
  1772. package/dist/modules/stock_backend/screens/locations-list.d.ts +21 -0
  1773. package/dist/modules/stock_backend/screens/locations-list.d.ts.map +1 -0
  1774. package/dist/modules/stock_backend/screens/locations-list.js +62 -0
  1775. package/dist/modules/stock_backend/screens/locations-list.js.map +1 -0
  1776. package/dist/modules/stock_backend/screens/lot-create.d.ts +14 -0
  1777. package/dist/modules/stock_backend/screens/lot-create.d.ts.map +1 -0
  1778. package/dist/modules/stock_backend/screens/lot-create.js +60 -0
  1779. package/dist/modules/stock_backend/screens/lot-create.js.map +1 -0
  1780. package/dist/modules/stock_backend/screens/lot-detail.d.ts +30 -0
  1781. package/dist/modules/stock_backend/screens/lot-detail.d.ts.map +1 -0
  1782. package/dist/modules/stock_backend/screens/lot-detail.js +84 -0
  1783. package/dist/modules/stock_backend/screens/lot-detail.js.map +1 -0
  1784. package/dist/modules/stock_backend/screens/lots-list.d.ts +25 -0
  1785. package/dist/modules/stock_backend/screens/lots-list.d.ts.map +1 -0
  1786. package/dist/modules/stock_backend/screens/lots-list.js +54 -0
  1787. package/dist/modules/stock_backend/screens/lots-list.js.map +1 -0
  1788. package/dist/modules/stock_backend/screens/picking-type-create.d.ts +15 -0
  1789. package/dist/modules/stock_backend/screens/picking-type-create.d.ts.map +1 -0
  1790. package/dist/modules/stock_backend/screens/picking-type-create.js +89 -0
  1791. package/dist/modules/stock_backend/screens/picking-type-create.js.map +1 -0
  1792. package/dist/modules/stock_backend/screens/picking-types-list.d.ts +22 -0
  1793. package/dist/modules/stock_backend/screens/picking-types-list.d.ts.map +1 -0
  1794. package/dist/modules/stock_backend/screens/picking-types-list.js +80 -0
  1795. package/dist/modules/stock_backend/screens/picking-types-list.js.map +1 -0
  1796. package/dist/modules/stock_backend/screens/replenishment-create.d.ts +17 -0
  1797. package/dist/modules/stock_backend/screens/replenishment-create.d.ts.map +1 -0
  1798. package/dist/modules/stock_backend/screens/replenishment-create.js +74 -0
  1799. package/dist/modules/stock_backend/screens/replenishment-create.js.map +1 -0
  1800. package/dist/modules/stock_backend/screens/replenishment-list.d.ts +29 -0
  1801. package/dist/modules/stock_backend/screens/replenishment-list.d.ts.map +1 -0
  1802. package/dist/modules/stock_backend/screens/replenishment-list.js +84 -0
  1803. package/dist/modules/stock_backend/screens/replenishment-list.js.map +1 -0
  1804. package/dist/modules/stock_backend/screens/shared.d.ts +12 -0
  1805. package/dist/modules/stock_backend/screens/shared.d.ts.map +1 -0
  1806. package/dist/modules/stock_backend/screens/shared.js +29 -0
  1807. package/dist/modules/stock_backend/screens/shared.js.map +1 -0
  1808. package/dist/modules/stock_backend/screens/stock-route-create.d.ts +13 -0
  1809. package/dist/modules/stock_backend/screens/stock-route-create.d.ts.map +1 -0
  1810. package/dist/modules/stock_backend/screens/stock-route-create.js +52 -0
  1811. package/dist/modules/stock_backend/screens/stock-route-create.js.map +1 -0
  1812. package/dist/modules/stock_backend/screens/stock-route-detail.d.ts +30 -0
  1813. package/dist/modules/stock_backend/screens/stock-route-detail.d.ts.map +1 -0
  1814. package/dist/modules/stock_backend/screens/stock-route-detail.js +131 -0
  1815. package/dist/modules/stock_backend/screens/stock-route-detail.js.map +1 -0
  1816. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts +22 -0
  1817. package/dist/modules/stock_backend/screens/stock-routes-list.d.ts.map +1 -0
  1818. package/dist/modules/stock_backend/screens/stock-routes-list.js +51 -0
  1819. package/dist/modules/stock_backend/screens/stock-routes-list.js.map +1 -0
  1820. package/dist/modules/stock_backend/screens/stock.d.ts +7 -0
  1821. package/dist/modules/stock_backend/screens/stock.d.ts.map +1 -0
  1822. package/dist/modules/stock_backend/screens/stock.js +13 -0
  1823. package/dist/modules/stock_backend/screens/stock.js.map +1 -0
  1824. package/dist/modules/stock_backend/screens/transfer-create.d.ts +13 -0
  1825. package/dist/modules/stock_backend/screens/transfer-create.d.ts.map +1 -0
  1826. package/dist/modules/stock_backend/screens/transfer-create.js +38 -0
  1827. package/dist/modules/stock_backend/screens/transfer-create.js.map +1 -0
  1828. package/dist/modules/stock_backend/screens/transfer-detail.d.ts +27 -0
  1829. package/dist/modules/stock_backend/screens/transfer-detail.d.ts.map +1 -0
  1830. package/dist/modules/stock_backend/screens/transfer-detail.js +91 -0
  1831. package/dist/modules/stock_backend/screens/transfer-detail.js.map +1 -0
  1832. package/dist/modules/stock_backend/screens/transfers-list.d.ts +25 -0
  1833. package/dist/modules/stock_backend/screens/transfers-list.d.ts.map +1 -0
  1834. package/dist/modules/stock_backend/screens/transfers-list.js +81 -0
  1835. package/dist/modules/stock_backend/screens/transfers-list.js.map +1 -0
  1836. package/dist/modules/stock_backend/screens/warehouse-create.d.ts +13 -0
  1837. package/dist/modules/stock_backend/screens/warehouse-create.d.ts.map +1 -0
  1838. package/dist/modules/stock_backend/screens/warehouse-create.js +79 -0
  1839. package/dist/modules/stock_backend/screens/warehouse-create.js.map +1 -0
  1840. package/dist/modules/stock_backend/screens/warehouses-list.d.ts +21 -0
  1841. package/dist/modules/stock_backend/screens/warehouses-list.d.ts.map +1 -0
  1842. package/dist/modules/stock_backend/screens/warehouses-list.js +60 -0
  1843. package/dist/modules/stock_backend/screens/warehouses-list.js.map +1 -0
  1844. package/dist/modules/stock_lot_activity_backend/index.d.ts.map +1 -1
  1845. package/dist/modules/stock_lot_activity_backend/index.js +0 -1
  1846. package/dist/modules/stock_lot_activity_backend/index.js.map +1 -1
  1847. package/dist/modules/stock_lot_mail_backend/index.d.ts.map +1 -1
  1848. package/dist/modules/stock_lot_mail_backend/index.js +0 -1
  1849. package/dist/modules/stock_lot_mail_backend/index.js.map +1 -1
  1850. package/dist/modules/stock_mail_backend/index.d.ts.map +1 -1
  1851. package/dist/modules/stock_mail_backend/index.js +0 -1
  1852. package/dist/modules/stock_mail_backend/index.js.map +1 -1
  1853. package/dist/modules/stock_mail_inbound/index.d.ts.map +1 -1
  1854. package/dist/modules/stock_mail_inbound/index.js +0 -2
  1855. package/dist/modules/stock_mail_inbound/index.js.map +1 -1
  1856. package/dist/modules/stock_staff_channel/channel-routes.d.ts +656 -0
  1857. package/dist/modules/stock_staff_channel/channel-routes.d.ts.map +1 -0
  1858. package/dist/modules/stock_staff_channel/channel-routes.js +445 -0
  1859. package/dist/modules/stock_staff_channel/channel-routes.js.map +1 -0
  1860. package/dist/modules/stock_staff_channel/functions.d.ts +3 -0
  1861. package/dist/modules/stock_staff_channel/functions.d.ts.map +1 -0
  1862. package/dist/modules/stock_staff_channel/functions.js +954 -0
  1863. package/dist/modules/stock_staff_channel/functions.js.map +1 -0
  1864. package/dist/modules/stock_staff_channel/index.d.ts +8 -0
  1865. package/dist/modules/stock_staff_channel/index.d.ts.map +1 -0
  1866. package/dist/modules/stock_staff_channel/index.js +37 -0
  1867. package/dist/modules/stock_staff_channel/index.js.map +1 -0
  1868. package/dist/modules/stock_staff_channel/models.d.ts +4 -0
  1869. package/dist/modules/stock_staff_channel/models.d.ts.map +1 -0
  1870. package/dist/modules/stock_staff_channel/models.js +119 -0
  1871. package/dist/modules/stock_staff_channel/models.js.map +1 -0
  1872. package/dist/modules/stock_staff_channel/operation-routes.d.ts +2 -0
  1873. package/dist/modules/stock_staff_channel/operation-routes.d.ts.map +1 -0
  1874. package/dist/modules/stock_staff_channel/operation-routes.js +1269 -0
  1875. package/dist/modules/stock_staff_channel/operation-routes.js.map +1 -0
  1876. package/dist/modules/storage/functions.d.ts.map +1 -1
  1877. package/dist/modules/storage/functions.js +18 -5
  1878. package/dist/modules/storage/functions.js.map +1 -1
  1879. package/dist/modules/storage/index.js +0 -1
  1880. package/dist/modules/storage/index.js.map +1 -1
  1881. package/dist/modules/storage/jobs.d.ts +21 -1
  1882. package/dist/modules/storage/jobs.d.ts.map +1 -1
  1883. package/dist/modules/storage/jobs.js +142 -2
  1884. package/dist/modules/storage/jobs.js.map +1 -1
  1885. package/dist/modules/storage/models.d.ts.map +1 -1
  1886. package/dist/modules/storage/models.js +2 -0
  1887. package/dist/modules/storage/models.js.map +1 -1
  1888. package/dist/modules/storage/policy.d.ts +5 -0
  1889. package/dist/modules/storage/policy.d.ts.map +1 -0
  1890. package/dist/modules/storage/policy.js +13 -0
  1891. package/dist/modules/storage/policy.js.map +1 -0
  1892. package/dist/modules/storage/routes.d.ts +1 -0
  1893. package/dist/modules/storage/routes.d.ts.map +1 -1
  1894. package/dist/modules/storage/routes.js +19 -15
  1895. package/dist/modules/storage/routes.js.map +1 -1
  1896. package/dist/modules/uom/convert.d.ts +1 -1
  1897. package/dist/modules/uom/convert.js +2 -2
  1898. package/dist/modules/uom/convert.js.map +1 -1
  1899. package/dist/modules/uom/functions.d.ts.map +1 -1
  1900. package/dist/modules/uom/functions.js +39 -4
  1901. package/dist/modules/uom/functions.js.map +1 -1
  1902. package/dist/modules/uom/index.d.ts.map +1 -1
  1903. package/dist/modules/uom/index.js +1 -2
  1904. package/dist/modules/uom/index.js.map +1 -1
  1905. package/dist/modules/uom/messages.js +2 -2
  1906. package/dist/modules/uom/messages.js.map +1 -1
  1907. package/dist/modules/uom/models.d.ts +1 -1
  1908. package/dist/modules/uom/models.d.ts.map +1 -1
  1909. package/dist/modules/uom/models.js +1 -1
  1910. package/dist/modules/uom/models.js.map +1 -1
  1911. package/dist/modules/user/authorization.d.ts +80 -0
  1912. package/dist/modules/user/authorization.d.ts.map +1 -0
  1913. package/dist/modules/user/authorization.js +1039 -0
  1914. package/dist/modules/user/authorization.js.map +1 -0
  1915. package/dist/modules/user/functions.d.ts.map +1 -1
  1916. package/dist/modules/user/functions.js +188 -32
  1917. package/dist/modules/user/functions.js.map +1 -1
  1918. package/dist/modules/user/index.d.ts +4 -1
  1919. package/dist/modules/user/index.d.ts.map +1 -1
  1920. package/dist/modules/user/index.js +2 -3
  1921. package/dist/modules/user/index.js.map +1 -1
  1922. package/dist/modules/user/login.d.ts +1 -27
  1923. package/dist/modules/user/login.d.ts.map +1 -1
  1924. package/dist/modules/user/login.js +5 -45
  1925. package/dist/modules/user/login.js.map +1 -1
  1926. package/dist/modules/user/messages.d.ts +6 -0
  1927. package/dist/modules/user/messages.d.ts.map +1 -1
  1928. package/dist/modules/user/messages.js +6 -0
  1929. package/dist/modules/user/messages.js.map +1 -1
  1930. package/dist/modules/user/models.d.ts +1 -1
  1931. package/dist/modules/user/models.d.ts.map +1 -1
  1932. package/dist/modules/user/models.js +73 -9
  1933. package/dist/modules/user/models.js.map +1 -1
  1934. package/dist/modules/user/relations.d.ts.map +1 -1
  1935. package/dist/modules/user/relations.js +6 -0
  1936. package/dist/modules/user/relations.js.map +1 -1
  1937. package/dist/modules/user/roles.d.ts +11 -1
  1938. package/dist/modules/user/roles.d.ts.map +1 -1
  1939. package/dist/modules/user/roles.js +402 -117
  1940. package/dist/modules/user/roles.js.map +1 -1
  1941. package/dist/modules/user/routes.js +1 -1
  1942. package/dist/modules/user/routes.js.map +1 -1
  1943. package/dist/modules/user_backend/index.d.ts +1 -1
  1944. package/dist/modules/user_backend/index.d.ts.map +1 -1
  1945. package/dist/modules/user_backend/index.js +1 -3
  1946. package/dist/modules/user_backend/index.js.map +1 -1
  1947. package/dist/modules/user_backend/messages.d.ts +60 -0
  1948. package/dist/modules/user_backend/messages.d.ts.map +1 -1
  1949. package/dist/modules/user_backend/messages.js +60 -0
  1950. package/dist/modules/user_backend/messages.js.map +1 -1
  1951. package/dist/modules/user_backend/routes.d.ts.map +1 -1
  1952. package/dist/modules/user_backend/routes.js +352 -69
  1953. package/dist/modules/user_backend/routes.js.map +1 -1
  1954. package/dist/modules/user_backend/screens/index.d.ts +11 -0
  1955. package/dist/modules/user_backend/screens/index.d.ts.map +1 -0
  1956. package/dist/modules/user_backend/screens/index.js +8 -0
  1957. package/dist/modules/user_backend/screens/index.js.map +1 -0
  1958. package/dist/modules/user_backend/screens/presets-form.d.ts +16 -0
  1959. package/dist/modules/user_backend/screens/presets-form.d.ts.map +1 -0
  1960. package/dist/modules/user_backend/screens/presets-form.js +37 -0
  1961. package/dist/modules/user_backend/screens/presets-form.js.map +1 -0
  1962. package/dist/modules/user_backend/screens/profile-form.d.ts +14 -0
  1963. package/dist/modules/user_backend/screens/profile-form.d.ts.map +1 -0
  1964. package/dist/modules/user_backend/screens/profile-form.js +37 -0
  1965. package/dist/modules/user_backend/screens/profile-form.js.map +1 -0
  1966. package/dist/modules/user_backend/screens/role-form.d.ts +21 -0
  1967. package/dist/modules/user_backend/screens/role-form.d.ts.map +1 -0
  1968. package/dist/modules/user_backend/screens/role-form.js +93 -0
  1969. package/dist/modules/user_backend/screens/role-form.js.map +1 -0
  1970. package/dist/modules/user_backend/screens/roles-list.d.ts +15 -0
  1971. package/dist/modules/user_backend/screens/roles-list.d.ts.map +1 -0
  1972. package/dist/modules/user_backend/screens/roles-list.js +48 -0
  1973. package/dist/modules/user_backend/screens/roles-list.js.map +1 -0
  1974. package/dist/modules/user_backend/screens/sessions.d.ts +5 -0
  1975. package/dist/modules/user_backend/screens/sessions.d.ts.map +1 -0
  1976. package/dist/modules/user_backend/screens/sessions.js +35 -0
  1977. package/dist/modules/user_backend/screens/sessions.js.map +1 -0
  1978. package/dist/modules/user_backend/screens/types.d.ts +68 -0
  1979. package/dist/modules/user_backend/screens/types.d.ts.map +1 -0
  1980. package/dist/modules/user_backend/screens/types.js +2 -0
  1981. package/dist/modules/user_backend/screens/types.js.map +1 -0
  1982. package/dist/modules/user_backend/screens/user-form.d.ts +55 -0
  1983. package/dist/modules/user_backend/screens/user-form.d.ts.map +1 -0
  1984. package/dist/modules/user_backend/screens/user-form.js +174 -0
  1985. package/dist/modules/user_backend/screens/user-form.js.map +1 -0
  1986. package/dist/modules/user_backend/screens/users-list.d.ts +17 -0
  1987. package/dist/modules/user_backend/screens/users-list.d.ts.map +1 -0
  1988. package/dist/modules/user_backend/screens/users-list.js +56 -0
  1989. package/dist/modules/user_backend/screens/users-list.js.map +1 -0
  1990. package/dist/modules/website/cms.d.ts +18 -1
  1991. package/dist/modules/website/cms.d.ts.map +1 -1
  1992. package/dist/modules/website/cms.js +373 -38
  1993. package/dist/modules/website/cms.js.map +1 -1
  1994. package/dist/modules/website/customer.d.ts.map +1 -1
  1995. package/dist/modules/website/customer.js +249 -1
  1996. package/dist/modules/website/customer.js.map +1 -1
  1997. package/dist/modules/website/index.d.ts.map +1 -1
  1998. package/dist/modules/website/index.js +26 -4
  1999. package/dist/modules/website/index.js.map +1 -1
  2000. package/dist/modules/website/models.d.ts.map +1 -1
  2001. package/dist/modules/website/models.js +101 -0
  2002. package/dist/modules/website/models.js.map +1 -1
  2003. package/dist/modules/website/paths.d.ts +31 -0
  2004. package/dist/modules/website/paths.d.ts.map +1 -0
  2005. package/dist/modules/website/paths.js +48 -0
  2006. package/dist/modules/website/paths.js.map +1 -0
  2007. package/dist/modules/website/publication.d.ts +3 -0
  2008. package/dist/modules/website/publication.d.ts.map +1 -0
  2009. package/dist/modules/website/publication.js +366 -0
  2010. package/dist/modules/website/publication.js.map +1 -0
  2011. package/dist/modules/website/renderable.d.ts +32 -0
  2012. package/dist/modules/website/renderable.d.ts.map +1 -0
  2013. package/dist/modules/website/renderable.js +59 -0
  2014. package/dist/modules/website/renderable.js.map +1 -0
  2015. package/dist/modules/website/sections.d.ts.map +1 -1
  2016. package/dist/modules/website/sections.js +13 -0
  2017. package/dist/modules/website/sections.js.map +1 -1
  2018. package/dist/modules/website_backend/csv.d.ts +23 -0
  2019. package/dist/modules/website_backend/csv.d.ts.map +1 -0
  2020. package/dist/modules/website_backend/csv.js +31 -0
  2021. package/dist/modules/website_backend/csv.js.map +1 -0
  2022. package/dist/modules/website_backend/index.js +260 -2
  2023. package/dist/modules/website_backend/index.js.map +1 -1
  2024. package/dist/modules/website_backend/menus.d.ts.map +1 -1
  2025. package/dist/modules/website_backend/menus.js +28 -6
  2026. package/dist/modules/website_backend/menus.js.map +1 -1
  2027. package/dist/modules/website_backend/routes.d.ts.map +1 -1
  2028. package/dist/modules/website_backend/routes.js +684 -126
  2029. package/dist/modules/website_backend/routes.js.map +1 -1
  2030. package/dist/modules/website_backend/screens/index.d.ts +333 -0
  2031. package/dist/modules/website_backend/screens/index.d.ts.map +1 -0
  2032. package/dist/modules/website_backend/screens/index.js +1332 -0
  2033. package/dist/modules/website_backend/screens/index.js.map +1 -0
  2034. package/dist/modules/website_backend/screens/page-frame.d.ts +14 -0
  2035. package/dist/modules/website_backend/screens/page-frame.d.ts.map +1 -0
  2036. package/dist/modules/website_backend/screens/page-frame.js +13 -0
  2037. package/dist/modules/website_backend/screens/page-frame.js.map +1 -0
  2038. package/dist/modules/website_form/audit.d.ts +27 -0
  2039. package/dist/modules/website_form/audit.d.ts.map +1 -0
  2040. package/dist/modules/website_form/audit.js +30 -0
  2041. package/dist/modules/website_form/audit.js.map +1 -0
  2042. package/dist/modules/website_form/functions.d.ts.map +1 -1
  2043. package/dist/modules/website_form/functions.js +416 -12
  2044. package/dist/modules/website_form/functions.js.map +1 -1
  2045. package/dist/modules/website_form/index.js +24 -2
  2046. package/dist/modules/website_form/index.js.map +1 -1
  2047. package/dist/modules/website_form/jobs.d.ts +11 -0
  2048. package/dist/modules/website_form/jobs.d.ts.map +1 -0
  2049. package/dist/modules/website_form/jobs.js +80 -0
  2050. package/dist/modules/website_form/jobs.js.map +1 -0
  2051. package/dist/modules/website_form/models.d.ts.map +1 -1
  2052. package/dist/modules/website_form/models.js +89 -0
  2053. package/dist/modules/website_form/models.js.map +1 -1
  2054. package/dist/modules/website_form/purge.d.ts +22 -0
  2055. package/dist/modules/website_form/purge.d.ts.map +1 -0
  2056. package/dist/modules/website_form/purge.js +59 -0
  2057. package/dist/modules/website_form/purge.js.map +1 -0
  2058. package/dist/modules/website_form/retention.d.ts +70 -0
  2059. package/dist/modules/website_form/retention.d.ts.map +1 -0
  2060. package/dist/modules/website_form/retention.js +145 -0
  2061. package/dist/modules/website_form/retention.js.map +1 -0
  2062. package/dist/modules/website_form/routes.d.ts.map +1 -1
  2063. package/dist/modules/website_form/routes.js +37 -3
  2064. package/dist/modules/website_form/routes.js.map +1 -1
  2065. package/dist/modules/website_form_mail/index.d.ts +36 -0
  2066. package/dist/modules/website_form_mail/index.d.ts.map +1 -0
  2067. package/dist/modules/website_form_mail/index.js +137 -0
  2068. package/dist/modules/website_form_mail/index.js.map +1 -0
  2069. package/dist/modules/website_hospitality/channel-routes.d.ts +2 -0
  2070. package/dist/modules/website_hospitality/channel-routes.d.ts.map +1 -0
  2071. package/dist/modules/website_hospitality/channel-routes.js +355 -0
  2072. package/dist/modules/website_hospitality/channel-routes.js.map +1 -0
  2073. package/dist/modules/website_hospitality/functions.d.ts.map +1 -1
  2074. package/dist/modules/website_hospitality/functions.js +27 -2
  2075. package/dist/modules/website_hospitality/functions.js.map +1 -1
  2076. package/dist/modules/website_hospitality/index.js +4 -3
  2077. package/dist/modules/website_hospitality/index.js.map +1 -1
  2078. package/dist/modules/website_hospitality/models.d.ts.map +1 -1
  2079. package/dist/modules/website_hospitality/models.js +2 -0
  2080. package/dist/modules/website_hospitality/models.js.map +1 -1
  2081. package/dist/modules/website_menu/functions.d.ts.map +1 -1
  2082. package/dist/modules/website_menu/functions.js +184 -9
  2083. package/dist/modules/website_menu/functions.js.map +1 -1
  2084. package/dist/modules/website_menu/index.js +6 -1
  2085. package/dist/modules/website_menu/index.js.map +1 -1
  2086. package/dist/modules/website_retail/channel-routes.d.ts +2 -0
  2087. package/dist/modules/website_retail/channel-routes.d.ts.map +1 -0
  2088. package/dist/modules/website_retail/channel-routes.js +305 -0
  2089. package/dist/modules/website_retail/channel-routes.js.map +1 -0
  2090. package/dist/modules/website_retail/functions.d.ts +14 -1
  2091. package/dist/modules/website_retail/functions.d.ts.map +1 -1
  2092. package/dist/modules/website_retail/functions.js +6 -6
  2093. package/dist/modules/website_retail/functions.js.map +1 -1
  2094. package/dist/modules/website_retail/index.js +24 -3
  2095. package/dist/modules/website_retail/index.js.map +1 -1
  2096. package/dist/modules/website_retail/models.d.ts.map +1 -1
  2097. package/dist/modules/website_retail/models.js +30 -0
  2098. package/dist/modules/website_retail/models.js.map +1 -1
  2099. package/dist/modules/website_retail/online.d.ts +3 -0
  2100. package/dist/modules/website_retail/online.d.ts.map +1 -0
  2101. package/dist/modules/website_retail/online.js +710 -0
  2102. package/dist/modules/website_retail/online.js.map +1 -0
  2103. package/dist/modules/website_search/client/search.d.mts +16 -2
  2104. package/dist/modules/website_search/client/search.d.mts.map +1 -1
  2105. package/dist/modules/website_search/client/search.mjs +112 -6
  2106. package/dist/modules/website_search/client/search.mjs.map +1 -1
  2107. package/dist/modules/website_search/functions.d.ts +3 -0
  2108. package/dist/modules/website_search/functions.d.ts.map +1 -0
  2109. package/dist/modules/website_search/functions.js +239 -0
  2110. package/dist/modules/website_search/functions.js.map +1 -0
  2111. package/dist/modules/website_search/index.js +4 -1
  2112. package/dist/modules/website_search/index.js.map +1 -1
  2113. package/dist/modules/website_search/islands.d.ts +6 -0
  2114. package/dist/modules/website_search/islands.d.ts.map +1 -1
  2115. package/dist/modules/website_search/islands.js +8 -2
  2116. package/dist/modules/website_search/islands.js.map +1 -1
  2117. package/dist/modules/website_search/models.d.ts +15 -0
  2118. package/dist/modules/website_search/models.d.ts.map +1 -0
  2119. package/dist/modules/website_search/models.js +58 -0
  2120. package/dist/modules/website_search/models.js.map +1 -0
  2121. package/dist/modules/website_seo/functions.d.ts +3 -0
  2122. package/dist/modules/website_seo/functions.d.ts.map +1 -0
  2123. package/dist/modules/website_seo/functions.js +164 -0
  2124. package/dist/modules/website_seo/functions.js.map +1 -0
  2125. package/dist/modules/website_seo/index.js +15 -5
  2126. package/dist/modules/website_seo/index.js.map +1 -1
  2127. package/dist/modules/website_seo/projection.d.ts +52 -0
  2128. package/dist/modules/website_seo/projection.d.ts.map +1 -0
  2129. package/dist/modules/website_seo/projection.js +129 -0
  2130. package/dist/modules/website_seo/projection.js.map +1 -0
  2131. package/dist/modules/website_seo/routes.d.ts +3 -0
  2132. package/dist/modules/website_seo/routes.d.ts.map +1 -0
  2133. package/dist/modules/website_seo/routes.js +56 -0
  2134. package/dist/modules/website_seo/routes.js.map +1 -0
  2135. package/dist/permission-catalogue.d.ts +5 -0
  2136. package/dist/permission-catalogue.d.ts.map +1 -0
  2137. package/dist/permission-catalogue.js +1505 -0
  2138. package/dist/permission-catalogue.js.map +1 -0
  2139. package/dist/scaffold/index.d.ts +2 -0
  2140. package/dist/scaffold/index.d.ts.map +1 -0
  2141. package/dist/scaffold/index.js +31 -0
  2142. package/dist/scaffold/index.js.map +1 -0
  2143. package/dist/scaffold/templates/README.md.tmpl +17 -0
  2144. package/dist/scaffold/templates/gitignore.tmpl +2 -0
  2145. package/dist/scaffold/templates/ket.workspace.mjs.tmpl +1 -0
  2146. package/dist/scaffold/templates/package.json.tmpl +15 -0
  2147. package/dist/themes/hospitality/templates/website.columns.ktl +4 -0
  2148. package/dist/themes/paper/templates/website.columns.ktl +4 -0
  2149. package/dist/ui/actions.d.ts +4 -0
  2150. package/dist/ui/actions.d.ts.map +1 -1
  2151. package/dist/ui/actions.js +1 -1
  2152. package/dist/ui/actions.js.map +1 -1
  2153. package/dist/ui/activity.d.ts +1 -1
  2154. package/dist/ui/activity.d.ts.map +1 -1
  2155. package/dist/ui/activity.js +3 -5
  2156. package/dist/ui/activity.js.map +1 -1
  2157. package/dist/ui/attachments.js +1 -1
  2158. package/dist/ui/attachments.js.map +1 -1
  2159. package/dist/ui/auth.d.ts +36 -0
  2160. package/dist/ui/auth.d.ts.map +1 -1
  2161. package/dist/ui/auth.js +55 -0
  2162. package/dist/ui/auth.js.map +1 -1
  2163. package/dist/ui/board-page.d.ts +6 -0
  2164. package/dist/ui/board-page.d.ts.map +1 -0
  2165. package/dist/ui/board-page.js +4 -0
  2166. package/dist/ui/board-page.js.map +1 -0
  2167. package/dist/ui/charts.d.ts +83 -0
  2168. package/dist/ui/charts.d.ts.map +1 -0
  2169. package/dist/ui/charts.js +105 -0
  2170. package/dist/ui/charts.js.map +1 -0
  2171. package/dist/ui/chrome.d.ts +37 -2
  2172. package/dist/ui/chrome.d.ts.map +1 -1
  2173. package/dist/ui/chrome.js +39 -5
  2174. package/dist/ui/chrome.js.map +1 -1
  2175. package/dist/ui/client/activity-view.mjs +7 -7
  2176. package/dist/ui/client/activity-view.mjs.map +1 -1
  2177. package/dist/ui/client/activity.css +6 -34
  2178. package/dist/ui/client/calendar-view.d.mts.map +1 -1
  2179. package/dist/ui/client/calendar-view.mjs +7 -6
  2180. package/dist/ui/client/calendar-view.mjs.map +1 -1
  2181. package/dist/ui/client/calendar.css +4 -14
  2182. package/dist/ui/client/chart-view.d.ts +51 -0
  2183. package/dist/ui/client/chart-view.d.ts.map +1 -0
  2184. package/dist/ui/client/chart-view.js +192 -0
  2185. package/dist/ui/client/chart-view.js.map +1 -0
  2186. package/dist/ui/client/flow-app.css +387 -0
  2187. package/dist/ui/client/flow-board-view.d.mts +8 -0
  2188. package/dist/ui/client/flow-board-view.d.mts.map +1 -0
  2189. package/dist/ui/client/flow-board-view.mjs +161 -0
  2190. package/dist/ui/client/flow-board-view.mjs.map +1 -0
  2191. package/dist/ui/client/flow-board.d.mts +3 -0
  2192. package/dist/ui/client/flow-board.d.mts.map +1 -0
  2193. package/dist/ui/client/flow-board.mjs +7 -0
  2194. package/dist/ui/client/flow-board.mjs.map +1 -0
  2195. package/dist/ui/client/flow-map-view.d.mts +2 -0
  2196. package/dist/ui/client/flow-map-view.d.mts.map +1 -0
  2197. package/dist/ui/client/flow-map-view.mjs +235 -0
  2198. package/dist/ui/client/flow-map-view.mjs.map +1 -0
  2199. package/dist/ui/client/flow-map.d.mts +3 -0
  2200. package/dist/ui/client/flow-map.d.mts.map +1 -0
  2201. package/dist/ui/client/flow-map.mjs +7 -0
  2202. package/dist/ui/client/flow-map.mjs.map +1 -0
  2203. package/dist/ui/client/live-doc-blocks.d.ts +19 -0
  2204. package/dist/ui/client/live-doc-blocks.d.ts.map +1 -0
  2205. package/dist/ui/client/live-doc-blocks.js +23 -0
  2206. package/dist/ui/client/live-doc-blocks.js.map +1 -0
  2207. package/dist/ui/client/live-doc-markdown.d.ts +18 -0
  2208. package/dist/ui/client/live-doc-markdown.d.ts.map +1 -0
  2209. package/dist/ui/client/live-doc-markdown.js +175 -0
  2210. package/dist/ui/client/live-doc-markdown.js.map +1 -0
  2211. package/dist/ui/client/live-doc-shell.d.ts +101 -0
  2212. package/dist/ui/client/live-doc-shell.d.ts.map +1 -0
  2213. package/dist/ui/client/live-doc-shell.js +251 -0
  2214. package/dist/ui/client/live-doc-shell.js.map +1 -0
  2215. package/dist/ui/client/live-doc-view.d.ts +33 -0
  2216. package/dist/ui/client/live-doc-view.d.ts.map +1 -0
  2217. package/dist/ui/client/live-doc-view.js +1237 -0
  2218. package/dist/ui/client/live-doc-view.js.map +1 -0
  2219. package/dist/ui/client/live-doc.css +243 -0
  2220. package/dist/ui/client/live-doc.d.mts +12 -0
  2221. package/dist/ui/client/live-doc.d.mts.map +1 -0
  2222. package/dist/ui/client/live-doc.mjs +11 -0
  2223. package/dist/ui/client/live-doc.mjs.map +7 -0
  2224. package/dist/ui/client/mail-bundle.d.mts +9 -0
  2225. package/dist/ui/client/mail-bundle.d.mts.map +1 -0
  2226. package/dist/ui/client/mail-bundle.mjs +50 -0
  2227. package/dist/ui/client/mail-bundle.mjs.map +7 -0
  2228. package/dist/ui/client/mail-entry.d.mts +11 -0
  2229. package/dist/ui/client/mail-entry.d.mts.map +1 -0
  2230. package/dist/ui/client/mail-entry.mjs +9 -0
  2231. package/dist/ui/client/mail-entry.mjs.map +1 -0
  2232. package/dist/ui/client/mail-view.d.mts.map +1 -1
  2233. package/dist/ui/client/mail-view.mjs +5 -3
  2234. package/dist/ui/client/mail-view.mjs.map +1 -1
  2235. package/dist/ui/client/mail.css +3 -3
  2236. package/dist/ui/client/relation-select-view.d.ts +77 -0
  2237. package/dist/ui/client/relation-select-view.d.ts.map +1 -0
  2238. package/dist/ui/client/relation-select-view.js +216 -0
  2239. package/dist/ui/client/relation-select-view.js.map +1 -0
  2240. package/dist/ui/client/table-selection-view.d.ts +4 -0
  2241. package/dist/ui/client/table-selection-view.d.ts.map +1 -0
  2242. package/dist/ui/client/table-selection-view.js +283 -0
  2243. package/dist/ui/client/table-selection-view.js.map +1 -0
  2244. package/dist/ui/dashboard-page.d.ts +6 -0
  2245. package/dist/ui/dashboard-page.d.ts.map +1 -0
  2246. package/dist/ui/dashboard-page.js +4 -0
  2247. package/dist/ui/dashboard-page.js.map +1 -0
  2248. package/dist/ui/data.d.ts +51 -1
  2249. package/dist/ui/data.d.ts.map +1 -1
  2250. package/dist/ui/data.js +87 -1
  2251. package/dist/ui/data.js.map +1 -1
  2252. package/dist/ui/date-picker.d.ts.map +1 -1
  2253. package/dist/ui/date-picker.js +2 -2
  2254. package/dist/ui/date-picker.js.map +1 -1
  2255. package/dist/ui/form-page.d.ts +6 -0
  2256. package/dist/ui/form-page.d.ts.map +1 -0
  2257. package/dist/ui/form-page.js +5 -0
  2258. package/dist/ui/form-page.js.map +1 -0
  2259. package/dist/ui/form.d.ts +4 -1
  2260. package/dist/ui/form.d.ts.map +1 -1
  2261. package/dist/ui/form.js +7 -5
  2262. package/dist/ui/form.js.map +1 -1
  2263. package/dist/ui/format.d.ts +13 -2
  2264. package/dist/ui/format.d.ts.map +1 -1
  2265. package/dist/ui/format.js +28 -7
  2266. package/dist/ui/format.js.map +1 -1
  2267. package/dist/ui/gantt.d.ts +52 -0
  2268. package/dist/ui/gantt.d.ts.map +1 -0
  2269. package/dist/ui/gantt.js +92 -0
  2270. package/dist/ui/gantt.js.map +1 -0
  2271. package/dist/ui/hooks.d.ts.map +1 -1
  2272. package/dist/ui/hooks.js +14 -0
  2273. package/dist/ui/hooks.js.map +1 -1
  2274. package/dist/ui/icons.d.ts.map +1 -1
  2275. package/dist/ui/icons.js +6 -1
  2276. package/dist/ui/icons.js.map +1 -1
  2277. package/dist/ui/index.d.ts +95 -14
  2278. package/dist/ui/index.d.ts.map +1 -1
  2279. package/dist/ui/index.js +78 -13
  2280. package/dist/ui/index.js.map +1 -1
  2281. package/dist/ui/layout.d.ts +43 -38
  2282. package/dist/ui/layout.d.ts.map +1 -1
  2283. package/dist/ui/layout.js +29 -37
  2284. package/dist/ui/layout.js.map +1 -1
  2285. package/dist/ui/list-page.d.ts +19 -0
  2286. package/dist/ui/list-page.d.ts.map +1 -0
  2287. package/dist/ui/list-page.js +21 -0
  2288. package/dist/ui/list-page.js.map +1 -0
  2289. package/dist/ui/media.d.ts +2 -0
  2290. package/dist/ui/media.d.ts.map +1 -1
  2291. package/dist/ui/media.js +1 -1
  2292. package/dist/ui/media.js.map +1 -1
  2293. package/dist/ui/modal.d.ts +26 -1
  2294. package/dist/ui/modal.d.ts.map +1 -1
  2295. package/dist/ui/modal.js +18 -2
  2296. package/dist/ui/modal.js.map +1 -1
  2297. package/dist/ui/nav.d.ts +21 -1
  2298. package/dist/ui/nav.d.ts.map +1 -1
  2299. package/dist/ui/nav.js +43 -8
  2300. package/dist/ui/nav.js.map +1 -1
  2301. package/dist/ui/navigation.d.ts +36 -2
  2302. package/dist/ui/navigation.d.ts.map +1 -1
  2303. package/dist/ui/navigation.js +60 -5
  2304. package/dist/ui/navigation.js.map +1 -1
  2305. package/dist/ui/partner.d.ts +18 -0
  2306. package/dist/ui/partner.d.ts.map +1 -0
  2307. package/dist/ui/partner.js +11 -0
  2308. package/dist/ui/partner.js.map +1 -0
  2309. package/dist/ui/primitives.d.ts +28 -10
  2310. package/dist/ui/primitives.d.ts.map +1 -1
  2311. package/dist/ui/primitives.js +21 -7
  2312. package/dist/ui/primitives.js.map +1 -1
  2313. package/dist/ui/product-media.d.ts +47 -0
  2314. package/dist/ui/product-media.d.ts.map +1 -0
  2315. package/dist/ui/product-media.js +67 -0
  2316. package/dist/ui/product-media.js.map +1 -0
  2317. package/dist/ui/product-variants.d.ts +68 -0
  2318. package/dist/ui/product-variants.d.ts.map +1 -0
  2319. package/dist/ui/product-variants.js +81 -0
  2320. package/dist/ui/product-variants.js.map +1 -0
  2321. package/dist/ui/record-detail.d.ts +70 -0
  2322. package/dist/ui/record-detail.d.ts.map +1 -0
  2323. package/dist/ui/record-detail.js +35 -0
  2324. package/dist/ui/record-detail.js.map +1 -0
  2325. package/dist/ui/record-page.d.ts +16 -0
  2326. package/dist/ui/record-page.d.ts.map +1 -0
  2327. package/dist/ui/record-page.js +13 -0
  2328. package/dist/ui/record-page.js.map +1 -0
  2329. package/dist/ui/record.d.ts +15 -3
  2330. package/dist/ui/record.d.ts.map +1 -1
  2331. package/dist/ui/record.js +6 -5
  2332. package/dist/ui/record.js.map +1 -1
  2333. package/dist/ui/surfaces.d.ts +30 -2
  2334. package/dist/ui/surfaces.d.ts.map +1 -1
  2335. package/dist/ui/surfaces.js +39 -2
  2336. package/dist/ui/surfaces.js.map +1 -1
  2337. package/dist/ui/table.d.ts +25 -2
  2338. package/dist/ui/table.d.ts.map +1 -1
  2339. package/dist/ui/table.js +10 -6
  2340. package/dist/ui/table.js.map +1 -1
  2341. package/dist/ui/timeframe.d.ts +39 -0
  2342. package/dist/ui/timeframe.d.ts.map +1 -0
  2343. package/dist/ui/timeframe.js +36 -0
  2344. package/dist/ui/timeframe.js.map +1 -0
  2345. package/dist/ui/workspace-page.d.ts +16 -0
  2346. package/dist/ui/workspace-page.d.ts.map +1 -0
  2347. package/dist/ui/workspace-page.js +15 -0
  2348. package/dist/ui/workspace-page.js.map +1 -0
  2349. package/package.json +16 -3
  2350. package/dist/modules/account/tt99.d.ts +0 -30
  2351. package/dist/modules/account/tt99.d.ts.map +0 -1
  2352. package/dist/modules/account/tt99.js +0 -1661
  2353. package/dist/modules/account/tt99.js.map +0 -1
  2354. package/dist/modules/account_backend/accounting-overview-screen.d.ts +0 -18
  2355. package/dist/modules/account_backend/accounting-overview-screen.d.ts.map +0 -1
  2356. package/dist/modules/account_backend/accounting-overview-screen.js +0 -104
  2357. package/dist/modules/account_backend/accounting-overview-screen.js.map +0 -1
  2358. package/dist/modules/account_backend/accounts-screen.d.ts +0 -13
  2359. package/dist/modules/account_backend/accounts-screen.d.ts.map +0 -1
  2360. package/dist/modules/account_backend/accounts-screen.js +0 -49
  2361. package/dist/modules/account_backend/accounts-screen.js.map +0 -1
  2362. package/dist/modules/account_backend/customer-invoices-screen.d.ts +0 -14
  2363. package/dist/modules/account_backend/customer-invoices-screen.d.ts.map +0 -1
  2364. package/dist/modules/account_backend/customer-invoices-screen.js +0 -63
  2365. package/dist/modules/account_backend/customer-invoices-screen.js.map +0 -1
  2366. package/dist/modules/account_backend/general-ledger-screen.d.ts +0 -13
  2367. package/dist/modules/account_backend/general-ledger-screen.d.ts.map +0 -1
  2368. package/dist/modules/account_backend/general-ledger-screen.js +0 -56
  2369. package/dist/modules/account_backend/general-ledger-screen.js.map +0 -1
  2370. package/dist/modules/account_backend/journal-entries-screen.d.ts +0 -14
  2371. package/dist/modules/account_backend/journal-entries-screen.d.ts.map +0 -1
  2372. package/dist/modules/account_backend/journal-entries-screen.js +0 -45
  2373. package/dist/modules/account_backend/journal-entries-screen.js.map +0 -1
  2374. package/dist/modules/account_backend/journals-screen.d.ts +0 -14
  2375. package/dist/modules/account_backend/journals-screen.d.ts.map +0 -1
  2376. package/dist/modules/account_backend/journals-screen.js +0 -53
  2377. package/dist/modules/account_backend/journals-screen.js.map +0 -1
  2378. package/dist/modules/account_backend/move-detail-screen.d.ts +0 -10
  2379. package/dist/modules/account_backend/move-detail-screen.d.ts.map +0 -1
  2380. package/dist/modules/account_backend/move-detail-screen.js +0 -100
  2381. package/dist/modules/account_backend/move-detail-screen.js.map +0 -1
  2382. package/dist/modules/account_backend/partner-ledger-screen.d.ts +0 -14
  2383. package/dist/modules/account_backend/partner-ledger-screen.d.ts.map +0 -1
  2384. package/dist/modules/account_backend/partner-ledger-screen.js +0 -69
  2385. package/dist/modules/account_backend/partner-ledger-screen.js.map +0 -1
  2386. package/dist/modules/account_backend/payment-terms-screen.d.ts +0 -14
  2387. package/dist/modules/account_backend/payment-terms-screen.d.ts.map +0 -1
  2388. package/dist/modules/account_backend/payment-terms-screen.js +0 -40
  2389. package/dist/modules/account_backend/payment-terms-screen.js.map +0 -1
  2390. package/dist/modules/account_backend/payments-screen.d.ts +0 -14
  2391. package/dist/modules/account_backend/payments-screen.d.ts.map +0 -1
  2392. package/dist/modules/account_backend/payments-screen.js +0 -54
  2393. package/dist/modules/account_backend/payments-screen.js.map +0 -1
  2394. package/dist/modules/account_backend/screens.d.ts +0 -7
  2395. package/dist/modules/account_backend/screens.d.ts.map +0 -1
  2396. package/dist/modules/account_backend/screens.js +0 -7
  2397. package/dist/modules/account_backend/screens.js.map +0 -1
  2398. package/dist/modules/account_backend/taxes-screen.d.ts +0 -15
  2399. package/dist/modules/account_backend/taxes-screen.d.ts.map +0 -1
  2400. package/dist/modules/account_backend/taxes-screen.js +0 -73
  2401. package/dist/modules/account_backend/taxes-screen.js.map +0 -1
  2402. package/dist/modules/account_backend/trial-balance-screen.d.ts +0 -13
  2403. package/dist/modules/account_backend/trial-balance-screen.d.ts.map +0 -1
  2404. package/dist/modules/account_backend/trial-balance-screen.js +0 -62
  2405. package/dist/modules/account_backend/trial-balance-screen.js.map +0 -1
  2406. package/dist/modules/account_backend/vendor-bills-screen.d.ts +0 -14
  2407. package/dist/modules/account_backend/vendor-bills-screen.d.ts.map +0 -1
  2408. package/dist/modules/account_backend/vendor-bills-screen.js +0 -59
  2409. package/dist/modules/account_backend/vendor-bills-screen.js.map +0 -1
  2410. package/dist/modules/account_partner_backend/screens.d.ts +0 -16
  2411. package/dist/modules/account_partner_backend/screens.d.ts.map +0 -1
  2412. package/dist/modules/account_partner_backend/screens.js +0 -26
  2413. package/dist/modules/account_partner_backend/screens.js.map +0 -1
  2414. package/dist/modules/activity_backend/screens.d.ts +0 -5
  2415. package/dist/modules/activity_backend/screens.d.ts.map +0 -1
  2416. package/dist/modules/activity_backend/screens.js +0 -52
  2417. package/dist/modules/activity_backend/screens.js.map +0 -1
  2418. package/dist/modules/address_backend/screens.d.ts +0 -31
  2419. package/dist/modules/address_backend/screens.d.ts.map +0 -1
  2420. package/dist/modules/address_backend/screens.js +0 -147
  2421. package/dist/modules/address_backend/screens.js.map +0 -1
  2422. package/dist/modules/backend/design/admin.css +0 -4229
  2423. package/dist/modules/backend/design/client/relation-select-view.d.mts +0 -5
  2424. package/dist/modules/backend/design/client/relation-select-view.d.mts.map +0 -1
  2425. package/dist/modules/backend/design/client/relation-select-view.mjs +0 -335
  2426. package/dist/modules/backend/design/client/relation-select-view.mjs.map +0 -1
  2427. package/dist/modules/calendar_backend/screens.d.ts +0 -5
  2428. package/dist/modules/calendar_backend/screens.d.ts.map +0 -1
  2429. package/dist/modules/calendar_backend/screens.js +0 -4
  2430. package/dist/modules/calendar_backend/screens.js.map +0 -1
  2431. package/dist/modules/company_backend/screens.d.ts +0 -62
  2432. package/dist/modules/company_backend/screens.d.ts.map +0 -1
  2433. package/dist/modules/company_backend/screens.js +0 -268
  2434. package/dist/modules/company_backend/screens.js.map +0 -1
  2435. package/dist/modules/crm_backend/list-search.d.ts +0 -21
  2436. package/dist/modules/crm_backend/list-search.d.ts.map +0 -1
  2437. package/dist/modules/crm_backend/list-search.js +0 -220
  2438. package/dist/modules/crm_backend/list-search.js.map +0 -1
  2439. package/dist/modules/crm_backend/screens.d.ts +0 -32
  2440. package/dist/modules/crm_backend/screens.d.ts.map +0 -1
  2441. package/dist/modules/crm_backend/screens.js +0 -405
  2442. package/dist/modules/crm_backend/screens.js.map +0 -1
  2443. package/dist/modules/hospitality_core/screens.d.ts +0 -763
  2444. package/dist/modules/hospitality_core/screens.d.ts.map +0 -1
  2445. package/dist/modules/hospitality_core/screens.js +0 -4138
  2446. package/dist/modules/hospitality_core/screens.js.map +0 -1
  2447. package/dist/modules/hr_backend/screens.d.ts +0 -9
  2448. package/dist/modules/hr_backend/screens.d.ts.map +0 -1
  2449. package/dist/modules/hr_backend/screens.js +0 -144
  2450. package/dist/modules/hr_backend/screens.js.map +0 -1
  2451. package/dist/modules/loyalty_backend/screens.d.ts +0 -33
  2452. package/dist/modules/loyalty_backend/screens.d.ts.map +0 -1
  2453. package/dist/modules/loyalty_backend/screens.js +0 -562
  2454. package/dist/modules/loyalty_backend/screens.js.map +0 -1
  2455. package/dist/modules/mail_backend/screens.d.ts +0 -5
  2456. package/dist/modules/mail_backend/screens.d.ts.map +0 -1
  2457. package/dist/modules/mail_backend/screens.js +0 -11
  2458. package/dist/modules/mail_backend/screens.js.map +0 -1
  2459. package/dist/modules/mail_inbound_backend/screens.d.ts +0 -5
  2460. package/dist/modules/mail_inbound_backend/screens.d.ts.map +0 -1
  2461. package/dist/modules/mail_inbound_backend/screens.js +0 -25
  2462. package/dist/modules/mail_inbound_backend/screens.js.map +0 -1
  2463. package/dist/modules/mail_transport_backend/screens.d.ts +0 -5
  2464. package/dist/modules/mail_transport_backend/screens.d.ts.map +0 -1
  2465. package/dist/modules/mail_transport_backend/screens.js +0 -35
  2466. package/dist/modules/mail_transport_backend/screens.js.map +0 -1
  2467. package/dist/modules/oauth_backend/screens.d.ts +0 -66
  2468. package/dist/modules/oauth_backend/screens.d.ts.map +0 -1
  2469. package/dist/modules/oauth_backend/screens.js +0 -323
  2470. package/dist/modules/oauth_backend/screens.js.map +0 -1
  2471. package/dist/modules/odoo_collaboration_import/functions.d.ts.map +0 -1
  2472. package/dist/modules/odoo_collaboration_import/functions.js +0 -128
  2473. package/dist/modules/odoo_collaboration_import/functions.js.map +0 -1
  2474. package/dist/modules/odoo_collaboration_import/index.d.ts +0 -6
  2475. package/dist/modules/odoo_collaboration_import/index.d.ts.map +0 -1
  2476. package/dist/modules/odoo_collaboration_import/index.js +0 -31
  2477. package/dist/modules/odoo_collaboration_import/index.js.map +0 -1
  2478. package/dist/modules/odoo_collaboration_import/models.d.ts.map +0 -1
  2479. package/dist/modules/odoo_collaboration_import/models.js +0 -76
  2480. package/dist/modules/odoo_collaboration_import/models.js.map +0 -1
  2481. package/dist/modules/odoo_collaboration_import/operations.d.ts +0 -14
  2482. package/dist/modules/odoo_collaboration_import/operations.d.ts.map +0 -1
  2483. package/dist/modules/odoo_collaboration_import/operations.js +0 -1139
  2484. package/dist/modules/odoo_collaboration_import/operations.js.map +0 -1
  2485. package/dist/modules/odoo_collaboration_import/relations.d.ts.map +0 -1
  2486. package/dist/modules/odoo_collaboration_import/relations.js +0 -19
  2487. package/dist/modules/odoo_collaboration_import/relations.js.map +0 -1
  2488. package/dist/modules/odoo_collaboration_import/types.d.ts +0 -58
  2489. package/dist/modules/odoo_collaboration_import/types.d.ts.map +0 -1
  2490. package/dist/modules/odoo_collaboration_import/types.js.map +0 -1
  2491. package/dist/modules/partner_backend/screens.d.ts +0 -53
  2492. package/dist/modules/partner_backend/screens.d.ts.map +0 -1
  2493. package/dist/modules/partner_backend/screens.js +0 -169
  2494. package/dist/modules/partner_backend/screens.js.map +0 -1
  2495. package/dist/modules/pricing_backend/screens.d.ts +0 -13
  2496. package/dist/modules/pricing_backend/screens.d.ts.map +0 -1
  2497. package/dist/modules/pricing_backend/screens.js +0 -182
  2498. package/dist/modules/pricing_backend/screens.js.map +0 -1
  2499. package/dist/modules/product_backend/attributes-screen.d.ts +0 -7
  2500. package/dist/modules/product_backend/attributes-screen.d.ts.map +0 -1
  2501. package/dist/modules/product_backend/attributes-screen.js +0 -76
  2502. package/dist/modules/product_backend/attributes-screen.js.map +0 -1
  2503. package/dist/modules/product_backend/create-screen.d.ts +0 -12
  2504. package/dist/modules/product_backend/create-screen.d.ts.map +0 -1
  2505. package/dist/modules/product_backend/create-screen.js +0 -83
  2506. package/dist/modules/product_backend/create-screen.js.map +0 -1
  2507. package/dist/modules/product_backend/screens.d.ts +0 -68
  2508. package/dist/modules/product_backend/screens.d.ts.map +0 -1
  2509. package/dist/modules/product_backend/screens.js +0 -388
  2510. package/dist/modules/product_backend/screens.js.map +0 -1
  2511. package/dist/modules/purchase_backend/screens.d.ts +0 -29
  2512. package/dist/modules/purchase_backend/screens.d.ts.map +0 -1
  2513. package/dist/modules/purchase_backend/screens.js +0 -324
  2514. package/dist/modules/purchase_backend/screens.js.map +0 -1
  2515. package/dist/modules/sale_backend/invoicing-policies-screen.d.ts +0 -14
  2516. package/dist/modules/sale_backend/invoicing-policies-screen.d.ts.map +0 -1
  2517. package/dist/modules/sale_backend/invoicing-policies-screen.js +0 -36
  2518. package/dist/modules/sale_backend/invoicing-policies-screen.js.map +0 -1
  2519. package/dist/modules/sale_backend/order-detail-screen.d.ts +0 -18
  2520. package/dist/modules/sale_backend/order-detail-screen.d.ts.map +0 -1
  2521. package/dist/modules/sale_backend/order-detail-screen.js +0 -217
  2522. package/dist/modules/sale_backend/order-detail-screen.js.map +0 -1
  2523. package/dist/modules/sale_backend/quotations-screen.d.ts +0 -15
  2524. package/dist/modules/sale_backend/quotations-screen.d.ts.map +0 -1
  2525. package/dist/modules/sale_backend/quotations-screen.js +0 -64
  2526. package/dist/modules/sale_backend/quotations-screen.js.map +0 -1
  2527. package/dist/modules/sale_backend/sales-orders-screen.d.ts +0 -12
  2528. package/dist/modules/sale_backend/sales-orders-screen.d.ts.map +0 -1
  2529. package/dist/modules/sale_backend/sales-orders-screen.js +0 -65
  2530. package/dist/modules/sale_backend/sales-orders-screen.js.map +0 -1
  2531. package/dist/modules/sale_backend/screens.d.ts +0 -23
  2532. package/dist/modules/sale_backend/screens.d.ts.map +0 -1
  2533. package/dist/modules/sale_backend/screens.js +0 -275
  2534. package/dist/modules/sale_backend/screens.js.map +0 -1
  2535. package/dist/modules/stock_backend/forecast-screen.d.ts +0 -28
  2536. package/dist/modules/stock_backend/forecast-screen.d.ts.map +0 -1
  2537. package/dist/modules/stock_backend/forecast-screen.js +0 -108
  2538. package/dist/modules/stock_backend/forecast-screen.js.map +0 -1
  2539. package/dist/modules/stock_backend/inventory-screen.d.ts +0 -27
  2540. package/dist/modules/stock_backend/inventory-screen.d.ts.map +0 -1
  2541. package/dist/modules/stock_backend/inventory-screen.js +0 -141
  2542. package/dist/modules/stock_backend/inventory-screen.js.map +0 -1
  2543. package/dist/modules/stock_backend/locations-screen.d.ts +0 -18
  2544. package/dist/modules/stock_backend/locations-screen.d.ts.map +0 -1
  2545. package/dist/modules/stock_backend/locations-screen.js +0 -92
  2546. package/dist/modules/stock_backend/locations-screen.js.map +0 -1
  2547. package/dist/modules/stock_backend/lot-screen.d.ts +0 -30
  2548. package/dist/modules/stock_backend/lot-screen.d.ts.map +0 -1
  2549. package/dist/modules/stock_backend/lot-screen.js +0 -86
  2550. package/dist/modules/stock_backend/lot-screen.js.map +0 -1
  2551. package/dist/modules/stock_backend/lots-screen.d.ts +0 -21
  2552. package/dist/modules/stock_backend/lots-screen.d.ts.map +0 -1
  2553. package/dist/modules/stock_backend/lots-screen.js +0 -79
  2554. package/dist/modules/stock_backend/lots-screen.js.map +0 -1
  2555. package/dist/modules/stock_backend/picking-types-screen.d.ts +0 -21
  2556. package/dist/modules/stock_backend/picking-types-screen.d.ts.map +0 -1
  2557. package/dist/modules/stock_backend/picking-types-screen.js +0 -110
  2558. package/dist/modules/stock_backend/picking-types-screen.js.map +0 -1
  2559. package/dist/modules/stock_backend/replenishment-screen.d.ts +0 -29
  2560. package/dist/modules/stock_backend/replenishment-screen.d.ts.map +0 -1
  2561. package/dist/modules/stock_backend/replenishment-screen.js +0 -131
  2562. package/dist/modules/stock_backend/replenishment-screen.js.map +0 -1
  2563. package/dist/modules/stock_backend/screens.d.ts +0 -14
  2564. package/dist/modules/stock_backend/screens.d.ts.map +0 -1
  2565. package/dist/modules/stock_backend/screens.js +0 -40
  2566. package/dist/modules/stock_backend/screens.js.map +0 -1
  2567. package/dist/modules/stock_backend/stock-route-screen.d.ts +0 -30
  2568. package/dist/modules/stock_backend/stock-route-screen.d.ts.map +0 -1
  2569. package/dist/modules/stock_backend/stock-route-screen.js +0 -129
  2570. package/dist/modules/stock_backend/stock-route-screen.js.map +0 -1
  2571. package/dist/modules/stock_backend/stock-routes-screen.d.ts +0 -17
  2572. package/dist/modules/stock_backend/stock-routes-screen.d.ts.map +0 -1
  2573. package/dist/modules/stock_backend/stock-routes-screen.js +0 -60
  2574. package/dist/modules/stock_backend/stock-routes-screen.js.map +0 -1
  2575. package/dist/modules/stock_backend/transfer-screen.d.ts +0 -26
  2576. package/dist/modules/stock_backend/transfer-screen.d.ts.map +0 -1
  2577. package/dist/modules/stock_backend/transfer-screen.js +0 -95
  2578. package/dist/modules/stock_backend/transfer-screen.js.map +0 -1
  2579. package/dist/modules/stock_backend/transfers-screen.d.ts +0 -21
  2580. package/dist/modules/stock_backend/transfers-screen.d.ts.map +0 -1
  2581. package/dist/modules/stock_backend/transfers-screen.js +0 -88
  2582. package/dist/modules/stock_backend/transfers-screen.js.map +0 -1
  2583. package/dist/modules/stock_backend/warehouses-screen.d.ts +0 -17
  2584. package/dist/modules/stock_backend/warehouses-screen.d.ts.map +0 -1
  2585. package/dist/modules/stock_backend/warehouses-screen.js +0 -96
  2586. package/dist/modules/stock_backend/warehouses-screen.js.map +0 -1
  2587. package/dist/modules/user_backend/screens.d.ts +0 -70
  2588. package/dist/modules/user_backend/screens.d.ts.map +0 -1
  2589. package/dist/modules/user_backend/screens.js +0 -308
  2590. package/dist/modules/user_backend/screens.js.map +0 -1
  2591. package/dist/modules/website/customer-routes.d.ts +0 -3
  2592. package/dist/modules/website/customer-routes.d.ts.map +0 -1
  2593. package/dist/modules/website/customer-routes.js +0 -322
  2594. package/dist/modules/website/customer-routes.js.map +0 -1
  2595. package/dist/modules/website_backend/screens.d.ts +0 -114
  2596. package/dist/modules/website_backend/screens.d.ts.map +0 -1
  2597. package/dist/modules/website_backend/screens.js +0 -625
  2598. package/dist/modules/website_backend/screens.js.map +0 -1
  2599. package/dist/ui/client/mail.d.mts +0 -11
  2600. package/dist/ui/client/mail.d.mts.map +0 -1
  2601. package/dist/ui/client/mail.mjs +0 -10
  2602. package/dist/ui/client/mail.mjs.map +0 -1
  2603. /package/dist/modules/{odoo_collaboration_import → account_staff_channel}/functions.d.ts +0 -0
  2604. /package/dist/modules/{odoo_collaboration_import → account_staff_channel}/models.d.ts +0 -0
  2605. /package/dist/modules/{odoo_collaboration_import → address_backend/screens}/types.js +0 -0
  2606. /package/dist/modules/{odoo_collaboration_import → manufacturing}/relations.d.ts +0 -0
@@ -0,0 +1,1876 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { deleteFrom, defineFn, desc, eq, from, inArray } from '@ketvietlab/ketjs';
3
+ import { FIELD_KINDS } from './types.js';
4
+ import { actorRequired, addComment, bulkIssues, copyIssue, epicTotals, sprintTotals, archiveIssue, restoreIssue, startFollowing, stopFollowing, addDependency, assignSprint, closeSprint, deleteSprint, commandKey, dependenciesFor, groupIssues, issueBuckets, issue, invalid, issueDetail, listIssues, moveIssue, n, normalized, saveIssue, startSprint, transferIssue, } from './operations.js';
5
+ import { emptyIssueListState } from './search.js';
6
+ import { addMember, canReadProject, membersOf, readableProject, readableRow, removeMember, visibleProjects, visibleRows, } from './membership.js';
7
+ import { projectsWithMyWork, projectStateOf, projectStats } from './projects.js';
8
+ import { archivePage, listAllPages, listPages, movePage, pageDetail, reorderPage, restorePage, savePage, } from './pages.js';
9
+ /**
10
+ * What passing the membership gate costs in effects.
11
+ *
12
+ * Spread into every command that touches a project's data. Named because it is
13
+ * not a capability one function happens to need — it is the condition all of
14
+ * them read under, and a list copied at thirty call sites is a list that will
15
+ * disagree with itself.
16
+ */
17
+ const membershipEffects = [
18
+ 'read:flow.Project',
19
+ 'read:flow.ProjectMember',
20
+ 'read:flow.ProjectAccessGrant',
21
+ 'read:user.User',
22
+ ];
23
+ const flowReadEffects = [
24
+ 'read:flow.Project',
25
+ // The membership gate every Flow read now passes through — see membership.ts.
26
+ // Named here rather than at each call site because it is not a capability one
27
+ // function happens to need; it is the condition all of them read under.
28
+ 'read:flow.ProjectMember',
29
+ 'read:flow.ProjectAccessGrant',
30
+ 'read:flow.Column',
31
+ 'read:flow.IssueType',
32
+ 'read:flow.FieldDef',
33
+ 'read:mail.Follower',
34
+ 'read:flow.IssueFieldValue',
35
+ 'read:flow.Epic',
36
+ 'read:flow.Sprint',
37
+ 'read:flow.Issue',
38
+ 'read:flow.IssueDependency',
39
+ 'read:flow.Tag',
40
+ 'read:flow.IssueTag',
41
+ 'read:user.User',
42
+ 'read:mail.Thread',
43
+ 'read:mail.Message',
44
+ ];
45
+ /**
46
+ * What writing one system entry to an issue's thread costs in effects.
47
+ *
48
+ * `postMessage` resolves the author, addresses the followers and writes the
49
+ * notification, so a command that leaves a timeline entry touches the same mail
50
+ * tables a comment does. Named here because three commands now do it.
51
+ */
52
+ const timelineEntryEffects = [
53
+ 'read:mail.Thread',
54
+ 'read:mail.Follower',
55
+ 'write:mail.Follower',
56
+ 'read:mail.FollowerSubtype',
57
+ 'write:mail.FollowerSubtype',
58
+ 'read:mail.Subtype',
59
+ 'write:mail.Message',
60
+ 'write:mail.TrackingValue',
61
+ 'write:mail.Notification',
62
+ 'read:user.User',
63
+ 'read:partner.Partner',
64
+ ];
65
+ const issueWriteEffects = [
66
+ ...flowReadEffects,
67
+ 'write:flow.Issue',
68
+ 'write:flow.IssueTag',
69
+ 'write:flow.IssueFieldValue',
70
+ 'write:mail.Thread',
71
+ // Saving an issue now subscribes its author and its assignee to the thread,
72
+ // and writes a system entry when it changes hands — so it touches the same
73
+ // mail tables a comment does.
74
+ 'read:mail.Follower',
75
+ 'write:mail.Follower',
76
+ 'read:mail.FollowerSubtype',
77
+ 'write:mail.FollowerSubtype',
78
+ 'read:mail.Subtype',
79
+ 'write:mail.Message',
80
+ 'write:mail.Mention',
81
+ 'write:mail.MessageAttachment',
82
+ 'write:mail.TrackingValue',
83
+ 'write:mail.Notification',
84
+ 'read:partner.Partner',
85
+ ];
86
+ const commentEffects = [
87
+ 'read:flow.Issue',
88
+ 'read:mail.Thread',
89
+ 'write:mail.Thread',
90
+ 'read:mail.Message',
91
+ 'write:mail.Message',
92
+ 'read:mail.Follower',
93
+ 'read:mail.FollowerSubtype',
94
+ 'read:mail.Subtype',
95
+ 'write:mail.Mention',
96
+ 'write:mail.MessageAttachment',
97
+ 'write:mail.TrackingValue',
98
+ 'write:mail.Notification',
99
+ 'write:mail.Follower',
100
+ 'write:mail.FollowerSubtype',
101
+ 'read:user.User',
102
+ 'read:partner.Partner',
103
+ ];
104
+ const command = (ctx, key) => {
105
+ if (!actorRequired(ctx))
106
+ return invalid(issue('actor', 'flow.error.actorRequired'));
107
+ if (!commandKey(key))
108
+ return invalid(issue('idempotencyKey', 'flow.error.idempotencyRequired'));
109
+ return null;
110
+ };
111
+ /** Small pickers read this shape: active first, filtered by name, capped to a page. */
112
+ const optionRows = async (ctx, model, args, order) => {
113
+ const rows = await ctx.db.select(model, args.includeArchived === true ? {} : { active: true });
114
+ const needle = normalized(args.search);
115
+ return rows
116
+ .filter((row) => !needle || normalized(row.name).includes(needle) || normalized(row.code).includes(needle))
117
+ .sort((a, b) => (order ? order(a, b) : 0) ||
118
+ String(a.name ?? '').localeCompare(String(b.name ?? '')) ||
119
+ String(a.id).localeCompare(String(b.id)))
120
+ .slice(Math.max(0, n(args.cursor ?? 0)), Math.max(0, n(args.cursor ?? 0)) + Math.max(1, Math.min(200, n(args.limit ?? 80))));
121
+ };
122
+ /**
123
+ * How many rows `optionRows` would have to choose from, before the page.
124
+ *
125
+ * The same read and the same filter, stopping short of the slice. Separate
126
+ * rather than folded into `optionRows` because every caller of that wants an
127
+ * array and only the list screens want a figure — and a screen that shows the
128
+ * length of its own page as the total is a screen that lies the moment there
129
+ * is a second page (FLW-039).
130
+ */
131
+ const optionCount = async (ctx, model, args, keep = () => true) => {
132
+ const rows = await ctx.db.select(model, args.includeArchived === true ? {} : { active: true });
133
+ const needle = normalized(args.search);
134
+ return rows.filter((row) => keep(row) &&
135
+ (!needle || normalized(row.name).includes(needle) || normalized(row.code).includes(needle))).length;
136
+ };
137
+ /** Plain upsert for the entities with no CAS field — no concurrent editor to race against. */
138
+ const saveEntity = (model, fields, required, defaults) => defineFn({
139
+ input: { values: 'json', idempotencyKey: 'text' },
140
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
141
+ effects: [
142
+ `read:${model}`,
143
+ `write:${model}`,
144
+ 'read:flow.Project',
145
+ 'write:flow.ProjectMember',
146
+ 'read:flow.ProjectMember',
147
+ 'read:flow.ProjectAccessGrant',
148
+ 'read:user.User',
149
+ ],
150
+ idempotent: true,
151
+ agent: true,
152
+ handler: async (ctx, args) => {
153
+ const error = command(ctx, args.idempotencyKey);
154
+ if (error)
155
+ return error;
156
+ if (!args.values || typeof args.values !== 'object')
157
+ return invalid(issue('values', 'flow.error.required'));
158
+ const values = args.values;
159
+ const id = String(values.id ?? '');
160
+ if (!id)
161
+ return invalid(issue('id', 'flow.error.required'));
162
+ // Two shapes, one rule. A project's own row is named by its id; everything
163
+ // else this builds — columns, issue types, epics — names its project in a
164
+ // column. Either way, writing into a project a caller cannot see is the
165
+ // thing this refuses, and it refuses it as "not found".
166
+ const target = model === 'flow.Project' ? id : String(values.projectId ?? '');
167
+ const existing = (await ctx.db.select(model, { id }))[0];
168
+ const known = model === 'flow.Project' ? Boolean(existing) : true;
169
+ if (known && target && !(await canReadProject(ctx, target)))
170
+ return invalid(issue('id', 'flow.error.notFound'));
171
+ const cs = ctx
172
+ .change(model, { ...defaults(values, existing), ...values }, existing ?? null)
173
+ .cast(fields);
174
+ const withRequired = required.length ? cs.required(required) : cs;
175
+ if (!withRequired.valid)
176
+ return { ok: false, errors: withRequired.errors };
177
+ await ctx.db.commit(withRequired, existing ? { id } : undefined);
178
+ // A project nobody can see is not a project anybody asked for, and there
179
+ // is no other door: membership is what makes it visible, so the person
180
+ // who created it has to walk through first.
181
+ if (model === 'flow.Project' && !existing && ctx.actor)
182
+ await addMember(ctx, {
183
+ projectId: id,
184
+ userId: ctx.actor,
185
+ addedByUserId: ctx.actor,
186
+ at: new Date().toISOString(),
187
+ });
188
+ return { ok: true, id };
189
+ },
190
+ });
191
+ export const functions = {
192
+ 'project.list': defineFn({
193
+ input: {
194
+ search: 'text?',
195
+ limit: 'int?',
196
+ includeArchived: 'bool?',
197
+ /** Where in the ordered list this page starts — see project.count. */
198
+ cursor: 'int?',
199
+ /** Only projects the caller has an issue in — see the note on projectsWithMyWork. */
200
+ mine: 'bool?',
201
+ },
202
+ output: { id: 'id', key: 'text', name: 'text', description: 'text?', active: 'bool' },
203
+ effects: [
204
+ 'read:flow.Project',
205
+ 'read:flow.Issue',
206
+ 'read:flow.ProjectMember',
207
+ 'read:flow.ProjectAccessGrant',
208
+ 'read:user.User',
209
+ ],
210
+ agent: true,
211
+ handler: async (ctx, args) => {
212
+ // Membership first, then the caller's own `mine` filter. They answer
213
+ // different questions — "which projects exist for me" and "which of those
214
+ // am I carrying work in" — and only the first one is a rule.
215
+ const visible = await visibleProjects(ctx);
216
+ const rows = (await optionRows(ctx, 'flow.Project', args)).filter((row) => visible === null || visible.includes(String(row.id)));
217
+ if (args.mine !== true)
218
+ return rows;
219
+ const mine = await projectsWithMyWork(ctx);
220
+ return rows.filter((row) => mine.has(String(row.id)));
221
+ },
222
+ }),
223
+ /**
224
+ * Who is on a project.
225
+ *
226
+ * Reading the membership of a project is reading the project, so it is gated
227
+ * the same way: somebody who cannot see the project cannot see who is on it,
228
+ * and finds out nothing by asking.
229
+ */
230
+ 'project.member.list': defineFn({
231
+ input: { projectId: 'id' },
232
+ output: { id: 'id', projectId: 'id', userId: 'id', userName: 'text', addedAt: 'datetime' },
233
+ effects: [...membershipEffects],
234
+ agent: true,
235
+ handler: async (ctx, args) => {
236
+ if (!(await canReadProject(ctx, args.projectId)))
237
+ return [];
238
+ return membersOf(ctx, String(args.projectId));
239
+ },
240
+ }),
241
+ /**
242
+ * Put somebody on a project, or take them off.
243
+ *
244
+ * Configuration rather than everyday work: adding a person decides what they
245
+ * may read, which is a different act from moving their cards around. The
246
+ * caller has to be able to see the project first — you cannot staff a project
247
+ * you are not on unless you hold the company-wide grant.
248
+ */
249
+ 'project.member.add': defineFn({
250
+ input: { projectId: 'id', userId: 'id', idempotencyKey: 'text' },
251
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
252
+ effects: [...membershipEffects, 'write:flow.ProjectMember'],
253
+ idempotent: true,
254
+ agent: true,
255
+ handler: async (ctx, args) => {
256
+ const error = command(ctx, args.idempotencyKey);
257
+ if (error)
258
+ return error;
259
+ if (!(await canReadProject(ctx, args.projectId)))
260
+ return invalid(issue('projectId', 'flow.error.notFound'));
261
+ const user = (await ctx.db.select('user.User', { id: args.userId, active: true }))[0];
262
+ if (!user)
263
+ return invalid(issue('userId', 'flow.error.notFound'));
264
+ await addMember(ctx, {
265
+ projectId: String(args.projectId),
266
+ userId: String(args.userId),
267
+ addedByUserId: ctx.actor,
268
+ at: new Date().toISOString(),
269
+ });
270
+ return { ok: true, id: `${String(args.projectId)}:${String(args.userId)}` };
271
+ },
272
+ }),
273
+ 'project.member.remove': defineFn({
274
+ input: { projectId: 'id', userId: 'id', idempotencyKey: 'text' },
275
+ output: { ok: 'bool', errors: 'json?' },
276
+ effects: [...membershipEffects, 'write:flow.ProjectMember'],
277
+ idempotent: true,
278
+ agent: true,
279
+ handler: async (ctx, args) => {
280
+ const error = command(ctx, args.idempotencyKey);
281
+ if (error)
282
+ return error;
283
+ if (!(await canReadProject(ctx, args.projectId)))
284
+ return invalid(issue('projectId', 'flow.error.notFound'));
285
+ // Removing the last member is allowed and is not an accident to guard
286
+ // against: a project with nobody on it is closed, which is what somebody
287
+ // clearing out a project wants. The company-wide grant is how it is
288
+ // reopened, and that is the point of having one.
289
+ const removed = await removeMember(ctx, String(args.projectId), String(args.userId));
290
+ return removed ? { ok: true } : invalid(issue('userId', 'flow.error.notFound'));
291
+ },
292
+ }),
293
+ /**
294
+ * Who reads every project in the company, and the two commands that decide it.
295
+ *
296
+ * The widest reach Flow grants, so it is `security` risk with an authority of
297
+ * its own: this is the row that makes somebody able to read a project nobody
298
+ * added them to. It exists so membership can be administered at all, and so a
299
+ * project whose members have left is not unreachable.
300
+ */
301
+ 'project.access.list': defineFn({
302
+ input: {},
303
+ output: { id: 'id', userId: 'id', addedAt: 'datetime' },
304
+ effects: ['read:flow.ProjectAccessGrant'],
305
+ agent: true,
306
+ handler: (ctx) => ctx.db.select('flow.ProjectAccessGrant', {}),
307
+ }),
308
+ 'project.access.grant': defineFn({
309
+ input: { userId: 'id', idempotencyKey: 'text' },
310
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
311
+ effects: ['read:flow.ProjectAccessGrant', 'write:flow.ProjectAccessGrant', 'read:user.User'],
312
+ idempotent: true,
313
+ agent: true,
314
+ handler: async (ctx, args) => {
315
+ const error = command(ctx, args.idempotencyKey);
316
+ if (error)
317
+ return error;
318
+ const user = (await ctx.db.select('user.User', { id: args.userId, active: true }))[0];
319
+ if (!user)
320
+ return invalid(issue('userId', 'flow.error.notFound'));
321
+ await ctx.db.insertIfAbsent('flow.ProjectAccessGrant', {
322
+ id: String(args.userId),
323
+ userId: args.userId,
324
+ addedAt: new Date().toISOString(),
325
+ addedByUserId: ctx.actor,
326
+ });
327
+ return { ok: true, id: String(args.userId) };
328
+ },
329
+ }),
330
+ 'project.access.revoke': defineFn({
331
+ input: { userId: 'id', idempotencyKey: 'text' },
332
+ output: { ok: 'bool', errors: 'json?' },
333
+ effects: ['read:flow.ProjectAccessGrant', 'write:flow.ProjectAccessGrant'],
334
+ idempotent: true,
335
+ agent: true,
336
+ handler: async (ctx, args) => {
337
+ const error = command(ctx, args.idempotencyKey);
338
+ if (error)
339
+ return error;
340
+ const held = (await ctx.db.select('flow.ProjectAccessGrant', { userId: args.userId }))[0];
341
+ if (!held)
342
+ return invalid(issue('userId', 'flow.error.notFound'));
343
+ const G = ctx.table('flow.ProjectAccessGrant');
344
+ await ctx.db.del(deleteFrom(G).where(eq(G.id, held.id)));
345
+ return { ok: true };
346
+ },
347
+ }),
348
+ /**
349
+ * How many projects there are to page through.
350
+ *
351
+ * The list screen used to show the length of the page it had — capped at two
352
+ * hundred — as though it were the total, so a company with more projects was
353
+ * told a number that was simply wrong, and the rest were unreachable. This
354
+ * answers the real figure, through the same membership filter the list uses
355
+ * (FLW-039).
356
+ */
357
+ 'project.count': defineFn({
358
+ input: { search: 'text?', includeArchived: 'bool?', mine: 'bool?' },
359
+ output: { total: 'int' },
360
+ effects: [
361
+ 'read:flow.Project',
362
+ 'read:flow.Issue',
363
+ 'read:flow.ProjectMember',
364
+ 'read:flow.ProjectAccessGrant',
365
+ 'read:user.User',
366
+ ],
367
+ agent: true,
368
+ handler: async (ctx, args) => {
369
+ const visible = await visibleProjects(ctx);
370
+ if (visible !== null && !visible.length)
371
+ return { total: 0 };
372
+ // Counted over the rows themselves rather than with a SQL count, because
373
+ // `optionRows` matches a normalised name in JS: a count in the database
374
+ // would answer a different, larger question for exactly the searches
375
+ // people type. Reading every project is what the list already does.
376
+ const rows = await optionCount(ctx, 'flow.Project', args, (row) => visible === null || visible.includes(String(row.id)));
377
+ if (args.mine !== true)
378
+ return { total: rows };
379
+ const mine = await projectsWithMyWork(ctx);
380
+ return {
381
+ total: await optionCount(ctx, 'flow.Project', args, (row) => (visible === null || visible.includes(String(row.id))) && mine.has(String(row.id))),
382
+ };
383
+ },
384
+ }),
385
+ /**
386
+ * The issue counts behind a list of projects, in two reads rather than one
387
+ * per project — see `projectStats`.
388
+ */
389
+ 'project.stats': defineFn({
390
+ input: { projectIds: 'json' },
391
+ output: { id: 'id', total: 'int', done: 'int', state: 'text' },
392
+ effects: [
393
+ 'read:flow.Issue',
394
+ 'read:flow.Column',
395
+ 'read:flow.Project',
396
+ 'read:flow.ProjectMember',
397
+ 'read:flow.ProjectAccessGrant',
398
+ 'read:user.User',
399
+ ],
400
+ agent: true,
401
+ handler: async (ctx, args) => {
402
+ const asked = Array.isArray(args.projectIds) ? args.projectIds.map(String) : [];
403
+ // A count is a reading. Asking for the totals of a project you are not on
404
+ // would answer "how much work is in there", which is most of what the
405
+ // project is.
406
+ const visible = await visibleProjects(ctx);
407
+ const ids = visible === null ? asked : asked.filter((id) => visible.includes(id));
408
+ const stats = await projectStats(ctx, ids);
409
+ return [...stats].map(([id, counted]) => ({
410
+ id,
411
+ total: counted.total,
412
+ done: counted.done,
413
+ state: projectStateOf(counted),
414
+ }));
415
+ },
416
+ }),
417
+ /**
418
+ * One project by id, the way `issue.get` answers one issue.
419
+ *
420
+ * Every project-scoped screen needs the project behind the id in its URL.
421
+ * Resolving that through `project.list` means listing and filtering, and
422
+ * `optionRows` caps at 200 rows sorted by name — so the 201st project by
423
+ * name would answer "not found" on its own board.
424
+ */
425
+ 'project.get': defineFn({
426
+ input: { id: 'id' },
427
+ output: {
428
+ id: 'id',
429
+ key: 'text',
430
+ name: 'text',
431
+ description: 'text?',
432
+ previewText: 'text?',
433
+ contentAttachmentId: 'id?',
434
+ active: 'bool',
435
+ },
436
+ effects: [
437
+ 'read:flow.Project',
438
+ 'read:flow.ProjectMember',
439
+ 'read:flow.ProjectAccessGrant',
440
+ 'read:user.User',
441
+ ],
442
+ agent: true,
443
+ // Nothing rather than a refusal: that a project exists is itself the half of
444
+ // the answer a hidden project must not give away — see readableProject.
445
+ handler: async (ctx, args) => (await readableProject(ctx, args.id)) ?? null,
446
+ }),
447
+ /**
448
+ * Rewriting a project's brief, as a permission key of its own — separate
449
+ * from `project.save`, which renames the project and archives it.
450
+ */
451
+ 'project.editContent': defineFn({
452
+ input: { id: 'id' },
453
+ // The fields as they are actually returned, not a `value` wrapper the
454
+ // handler never builds: output is projected against these keys, so
455
+ // declaring `value` and answering `{ id, contentAttachmentId }` threw both
456
+ // away and handed the caller `{}`. Live Doc reads `contentAttachmentId`
457
+ // off this to find the stored snapshot, so an empty answer read as "never
458
+ // written" — and the next push started from a blank document and flattened
459
+ // it over the real one.
460
+ output: { id: 'id?', contentAttachmentId: 'id?' },
461
+ effects: ['read:flow.Project', ...membershipEffects],
462
+ agent: true,
463
+ handler: async (ctx, args) => {
464
+ const row = await readableProject(ctx, args.id);
465
+ return row ? { id: row.id, contentAttachmentId: row.contentAttachmentId ?? null } : null;
466
+ },
467
+ }),
468
+ /**
469
+ * Destroy a project and everything in it.
470
+ *
471
+ * Archiving is the default and stays the default — this is the other thing,
472
+ * for when somebody has asked for the data to be gone rather than hidden
473
+ * (FLW-DEC-018). It is not `flow.configure`: configuring a project and
474
+ * ending one are not the same act, and a role that does the first every week
475
+ * should not be able to do the second by accident.
476
+ *
477
+ * Three things happen here and the order is the point. The name typed by the
478
+ * caller has to match the project's own, so that destroying the wrong
479
+ * project takes more than a mis-click on a list. The record of the request
480
+ * is written **before** anything else, because a record that appears only on
481
+ * success misses the case worth auditing. Only then is the work queued —
482
+ * fifteen tables, every thread, and the bytes behind every document do not
483
+ * fit in a request, and the blob store is reachable only from a job.
484
+ */
485
+ 'project.delete': defineFn({
486
+ input: { projectId: 'id', confirmName: 'text', reason: 'text?', idempotencyKey: 'text' },
487
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
488
+ effects: [
489
+ ...membershipEffects,
490
+ 'read:flow.ProjectDeletion',
491
+ 'write:flow.ProjectDeletion',
492
+ 'enqueue:flow.purgeProject',
493
+ ],
494
+ idempotent: true,
495
+ agent: true,
496
+ handler: async (ctx, args) => {
497
+ const error = command(ctx, args.idempotencyKey);
498
+ if (error)
499
+ return error;
500
+ // Through the membership gate like everything else: a project you cannot
501
+ // see is a project you cannot end, and it answers the same "not found" a
502
+ // project that was never there would.
503
+ const project = await readableProject(ctx, args.projectId);
504
+ if (!project)
505
+ return invalid(issue('projectId', 'flow.error.notFound'));
506
+ // Exactly the name, untrimmed of meaning: a confirmation that accepts a
507
+ // near-match is a confirmation that will be typed without reading.
508
+ if (String(args.confirmName ?? '').trim() !== String(project.name ?? ''))
509
+ return invalid(issue('confirmName', 'flow.error.confirmNameMismatch'));
510
+ const id = randomUUID();
511
+ await ctx.db.insert('flow.ProjectDeletion', {
512
+ id,
513
+ projectId: String(project.id),
514
+ // Copied, not referenced. After the purge there is nowhere left to
515
+ // read these from, and an audit row naming an id nobody recognises
516
+ // answers no question anybody will ask of it.
517
+ projectKey: String(project.key ?? ''),
518
+ projectName: String(project.name ?? ''),
519
+ requestedAt: new Date().toISOString(),
520
+ requestedByUserId: ctx.actor,
521
+ reason: args.reason ? String(args.reason) : null,
522
+ state: 'requested',
523
+ completedAt: null,
524
+ removed: null,
525
+ });
526
+ await ctx.jobs.enqueue('flow.purgeProject', { projectId: String(project.id), deletionId: id },
527
+ // One purge per project. Asking twice while the first is still running
528
+ // is the same request, and running two at once over the same rows is
529
+ // two jobs racing to delete what the other is reading.
530
+ { uniqueKey: `flow.purgeProject:${String(project.id)}` });
531
+ return { ok: true, id };
532
+ },
533
+ }),
534
+ /** What was asked to be deleted, and what became of it. */
535
+ 'project.deletion.list': defineFn({
536
+ input: { limit: 'int?' },
537
+ output: {
538
+ id: 'id',
539
+ projectId: 'id',
540
+ projectKey: 'text',
541
+ projectName: 'text',
542
+ requestedAt: 'datetime',
543
+ requestedByUserId: 'id?',
544
+ reason: 'text?',
545
+ state: 'text',
546
+ completedAt: 'datetime?',
547
+ },
548
+ effects: ['read:flow.ProjectDeletion'],
549
+ agent: true,
550
+ handler: async (ctx, args) => {
551
+ const D = ctx.table('flow.ProjectDeletion');
552
+ // No membership filter, and it cannot have one: the projects these rows
553
+ // name do not exist any more, so there is nothing left to be a member of.
554
+ // That is why reading this list is its own authority rather than `view`.
555
+ return ctx.db.all(from(D)
556
+ .orderBy(desc(D.requestedAt), desc(D.id))
557
+ .limit(Math.max(1, Math.min(200, n(args.limit ?? 50)))));
558
+ },
559
+ }),
560
+ 'project.save': saveEntity('flow.Project', ['id', 'key', 'name', 'description', 'active'], ['key', 'name'], (args, existing) => ({ active: existing?.active ?? true, ...args })),
561
+ 'column.list': defineFn({
562
+ input: { projectId: 'id', includeArchived: 'bool?' },
563
+ output: {
564
+ id: 'id',
565
+ projectId: 'id',
566
+ code: 'text',
567
+ name: 'text',
568
+ sequence: 'int',
569
+ terminalState: 'bool',
570
+ active: 'bool',
571
+ },
572
+ effects: [
573
+ 'read:flow.Column',
574
+ 'read:flow.Project',
575
+ 'read:flow.ProjectMember',
576
+ 'read:flow.ProjectAccessGrant',
577
+ 'read:user.User',
578
+ ...membershipEffects,
579
+ ],
580
+ agent: true,
581
+ handler: async (ctx, args) => {
582
+ // A project's configuration is the project. Answering with its columns
583
+ // for somebody who cannot see the project describes it to them.
584
+ if (!(await canReadProject(ctx, args.projectId)))
585
+ return [];
586
+ const rows = await ctx.db.select('flow.Column', args.includeArchived === true
587
+ ? { projectId: args.projectId }
588
+ : { projectId: args.projectId, active: true });
589
+ return rows.sort((a, b) => n(a.sequence) - n(b.sequence) || String(a.id).localeCompare(String(b.id)));
590
+ },
591
+ }),
592
+ 'column.save': saveEntity('flow.Column', ['id', 'projectId', 'code', 'name', 'sequence', 'terminalState', 'active'], ['projectId', 'code', 'name'], (args, existing) => ({
593
+ sequence: existing?.sequence ?? 10,
594
+ terminalState: existing?.terminalState ?? false,
595
+ active: existing?.active ?? true,
596
+ ...args,
597
+ })),
598
+ 'column.archive': defineFn({
599
+ input: { id: 'id' },
600
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
601
+ effects: ['read:flow.Column', 'write:flow.Column', 'read:flow.Issue', ...membershipEffects],
602
+ idempotent: true,
603
+ agent: true,
604
+ handler: async (ctx, args) => {
605
+ const existing = await readableRow(ctx, 'flow.Column', args.id);
606
+ if (!existing)
607
+ return invalid(issue('id', 'flow.error.notFound'));
608
+ const held = await ctx.db.select('flow.Issue', { columnId: args.id, active: true });
609
+ if (held.length)
610
+ return invalid(issue('id', 'flow.error.columnHasIssues'));
611
+ await ctx.db.update('flow.Column', { id: args.id }, { active: false });
612
+ return { ok: true, id: args.id };
613
+ },
614
+ }),
615
+ 'issueType.list': defineFn({
616
+ input: { projectId: 'id', includeArchived: 'bool?' },
617
+ output: {
618
+ id: 'id',
619
+ projectId: 'id',
620
+ code: 'text',
621
+ name: 'text',
622
+ color: 'text?',
623
+ sequence: 'int',
624
+ active: 'bool',
625
+ },
626
+ effects: [
627
+ 'read:flow.IssueType',
628
+ 'read:flow.Project',
629
+ 'read:flow.ProjectMember',
630
+ 'read:flow.ProjectAccessGrant',
631
+ 'read:user.User',
632
+ ...membershipEffects,
633
+ ],
634
+ agent: true,
635
+ handler: async (ctx, args) => {
636
+ if (!(await canReadProject(ctx, args.projectId)))
637
+ return [];
638
+ const rows = await ctx.db.select('flow.IssueType', args.includeArchived === true
639
+ ? { projectId: args.projectId }
640
+ : { projectId: args.projectId, active: true });
641
+ return rows.sort((a, b) => n(a.sequence) - n(b.sequence) || String(a.id).localeCompare(String(b.id)));
642
+ },
643
+ }),
644
+ 'issueType.save': saveEntity('flow.IssueType', ['id', 'projectId', 'code', 'name', 'color', 'sequence', 'active'], ['projectId', 'code', 'name'], (args, existing) => ({
645
+ sequence: existing?.sequence ?? 10,
646
+ active: existing?.active ?? true,
647
+ ...args,
648
+ })),
649
+ /**
650
+ * Archiving a type in use would leave those issues pointing at a row no
651
+ * screen lists any more, so they would read as untyped while still carrying
652
+ * it — the same refusal `column.archive` makes, for the same reason.
653
+ */
654
+ 'issueType.archive': defineFn({
655
+ input: { id: 'id' },
656
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
657
+ effects: ['read:flow.IssueType', 'write:flow.IssueType', 'read:flow.Issue', ...membershipEffects],
658
+ idempotent: true,
659
+ agent: true,
660
+ handler: async (ctx, args) => {
661
+ const existing = await readableRow(ctx, 'flow.IssueType', args.id);
662
+ if (!existing)
663
+ return invalid(issue('id', 'flow.error.notFound'));
664
+ const held = await ctx.db.select('flow.Issue', { typeId: args.id, active: true });
665
+ if (held.length)
666
+ return invalid(issue('id', 'flow.error.typeHasIssues'));
667
+ await ctx.db.update('flow.IssueType', { id: args.id }, { active: false });
668
+ return { ok: true, id: args.id };
669
+ },
670
+ }),
671
+ /**
672
+ * The project this reader's board last showed, if any.
673
+ *
674
+ * Answers null rather than guessing a project: the board asks them to pick
675
+ * once, and a wrong guess would show one team's work to somebody who wanted
676
+ * another's.
677
+ */
678
+ 'board.scope': defineFn({
679
+ input: {},
680
+ output: { projectId: 'id?' },
681
+ effects: ['read:flow.BoardScope', ...membershipEffects],
682
+ agent: true,
683
+ handler: async (ctx) => {
684
+ if (!ctx.actor)
685
+ return { projectId: null };
686
+ const held = (await ctx.db.select('flow.BoardScope', { userId: ctx.actor }))[0];
687
+ if (!held)
688
+ return { projectId: null };
689
+ // Where they were last is not where they may still go: somebody taken off
690
+ // a project keeps the row that remembers it, and answering with it would
691
+ // send the screen to a board that is no longer theirs — and would name a
692
+ // project they can no longer be told exists.
693
+ return (await canReadProject(ctx, held.projectId)) ? { projectId: held.projectId } : { projectId: null };
694
+ },
695
+ }),
696
+ 'board.remember': defineFn({
697
+ input: { projectId: 'id' },
698
+ output: { ok: 'bool', errors: 'json?' },
699
+ effects: ['read:flow.BoardScope', 'write:flow.BoardScope', 'read:flow.Project', ...membershipEffects],
700
+ idempotent: true,
701
+ agent: true,
702
+ handler: async (ctx, args) => {
703
+ if (!ctx.actor)
704
+ return invalid(issue('actor', 'flow.error.actorRequired'));
705
+ const project = await readableProject(ctx, args.projectId);
706
+ if (!project || project.active !== true)
707
+ return invalid(issue('projectId', 'flow.error.notFound'));
708
+ // One row per reader **per company**. The id used to be the user id
709
+ // alone, which read as "one row per reader" and was not: the primary key
710
+ // is not company-scoped, so somebody who works in two companies got one
711
+ // row in whichever they opened first, and every later company answered
712
+ // `ok: true` and remembered nothing. Silent, and only visible as a board
713
+ // that would not stay where you left it (FLW-023).
714
+ const id = `${String(ctx.scope.company)}:${String(ctx.actor)}`;
715
+ const row = { id, userId: ctx.actor, projectId: args.projectId, updatedAt: new Date().toISOString() };
716
+ await ctx.db.insertIfAbsent('flow.BoardScope', row);
717
+ await ctx.db.update('flow.BoardScope', { id }, row);
718
+ return { ok: true };
719
+ },
720
+ }),
721
+ 'field.list': defineFn({
722
+ input: { projectId: 'id', includeArchived: 'bool?' },
723
+ output: {
724
+ id: 'id',
725
+ projectId: 'id',
726
+ code: 'text',
727
+ name: 'text',
728
+ kind: 'text',
729
+ config: 'json?',
730
+ sequence: 'int',
731
+ active: 'bool',
732
+ },
733
+ effects: [
734
+ 'read:flow.FieldDef',
735
+ 'read:flow.Project',
736
+ 'read:flow.ProjectMember',
737
+ 'read:flow.ProjectAccessGrant',
738
+ 'read:user.User',
739
+ ...membershipEffects,
740
+ ],
741
+ agent: true,
742
+ handler: async (ctx, args) => {
743
+ if (!(await canReadProject(ctx, args.projectId)))
744
+ return [];
745
+ const rows = await ctx.db.select('flow.FieldDef', args.includeArchived === true
746
+ ? { projectId: args.projectId }
747
+ : { projectId: args.projectId, active: true });
748
+ return rows.sort((a, b) => n(a.sequence) - n(b.sequence) || String(a.id).localeCompare(String(b.id)));
749
+ },
750
+ }),
751
+ /**
752
+ * `kind` is checked here rather than left to the changeset: it is what
753
+ * `saveIssue` branches on to decide whether a value is well-formed, so a
754
+ * kind nothing knows how to check would be a field that accepts anything.
755
+ */
756
+ 'field.save': defineFn({
757
+ input: {
758
+ id: 'id',
759
+ projectId: 'id',
760
+ code: 'text',
761
+ name: 'text',
762
+ kind: 'text',
763
+ config: 'json?',
764
+ sequence: 'int?',
765
+ idempotencyKey: 'text',
766
+ },
767
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
768
+ effects: ['read:flow.FieldDef', 'write:flow.FieldDef', ...membershipEffects],
769
+ idempotent: true,
770
+ agent: true,
771
+ handler: async (ctx, args) => {
772
+ const error = command(ctx, args.idempotencyKey);
773
+ if (error)
774
+ return error;
775
+ const kind = String(args.kind);
776
+ if (!FIELD_KINDS.includes(kind))
777
+ return invalid(issue('kind', 'flow.error.fieldKind'));
778
+ // A select with no options is a control nobody can answer.
779
+ const options = args.config?.options;
780
+ if (kind === 'select' && (!Array.isArray(options) || options.length === 0))
781
+ return invalid(issue('config', 'flow.error.fieldOptionsRequired'));
782
+ const id = String(args.id);
783
+ const existing = (await ctx.db.select('flow.FieldDef', { id }))[0];
784
+ const row = {
785
+ id,
786
+ projectId: args.projectId,
787
+ code: String(args.code),
788
+ name: String(args.name),
789
+ kind,
790
+ config: args.config ?? null,
791
+ sequence: args.sequence == null ? (existing?.sequence ?? 10) : Number(args.sequence),
792
+ active: existing?.active ?? true,
793
+ };
794
+ if (existing)
795
+ await ctx.db.update('flow.FieldDef', { id }, row);
796
+ else {
797
+ const inserted = await ctx.db.insertIfAbsent('flow.FieldDef', row);
798
+ if (!('inserted' in inserted) || !inserted.inserted)
799
+ return invalid(issue('code', 'flow.error.fieldCodeUnique'));
800
+ }
801
+ return { ok: true, id };
802
+ },
803
+ }),
804
+ /**
805
+ * Archiving a field keeps the values already recorded against it.
806
+ *
807
+ * Unlike a column or a type, nothing points *at* a field from a row anyone
808
+ * reads — the values point the other way. So the answers stay, unlisted, and
809
+ * come back if the field is ever restored. Deleting them would be the one
810
+ * irreversible thing on this screen.
811
+ */
812
+ 'field.archive': defineFn({
813
+ input: { id: 'id' },
814
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
815
+ effects: ['read:flow.FieldDef', 'write:flow.FieldDef', ...membershipEffects],
816
+ idempotent: true,
817
+ agent: true,
818
+ handler: async (ctx, args) => {
819
+ const existing = (await ctx.db.select('flow.FieldDef', { id: args.id }))[0];
820
+ if (!existing)
821
+ return invalid(issue('id', 'flow.error.notFound'));
822
+ await ctx.db.update('flow.FieldDef', { id: args.id }, { active: false });
823
+ return { ok: true, id: args.id };
824
+ },
825
+ }),
826
+ 'epic.list': defineFn({
827
+ input: { projectId: 'id', id: 'id?', search: 'text?', limit: 'int?', includeArchived: 'bool?' },
828
+ output: {
829
+ id: 'id',
830
+ projectId: 'id',
831
+ title: 'text',
832
+ color: 'text?',
833
+ previewText: 'text?',
834
+ contentAttachmentId: 'id?',
835
+ active: 'bool',
836
+ total: 'int',
837
+ done: 'int',
838
+ estimate: 'decimal',
839
+ estimateDone: 'decimal',
840
+ },
841
+ effects: ['read:flow.Epic', 'read:flow.Issue', 'read:flow.Column', ...membershipEffects],
842
+ agent: true,
843
+ handler: async (ctx, args) => {
844
+ if (!(await canReadProject(ctx, args.projectId)))
845
+ return [];
846
+ const where = { projectId: args.projectId };
847
+ if (args.id)
848
+ where.id = args.id;
849
+ if (args.includeArchived !== true)
850
+ where.active = true;
851
+ const [rows, totals] = await Promise.all([
852
+ ctx.db.select('flow.Epic', where),
853
+ epicTotals(ctx, String(args.projectId)),
854
+ ]);
855
+ const needle = normalized(args.search);
856
+ const filtered = rows
857
+ .filter((row) => !needle || normalized(row.title).includes(needle))
858
+ .map((row) => ({
859
+ ...row,
860
+ ...(totals.get(String(row.id)) ?? { total: 0, done: 0, estimate: 0, estimateDone: 0 }),
861
+ }));
862
+ return args.id ? filtered : filtered.slice(0, Math.max(1, Math.min(200, n(args.limit ?? 80))));
863
+ },
864
+ }),
865
+ /**
866
+ * The menu-level epic collection, paged after one company-scoped read.
867
+ *
868
+ * `epic.list` remains project-scoped for relation controls and project
869
+ * screens. Folding those calls together in the backend inherited both its
870
+ * 80-row default and `project.list`'s 200-row cap, so an "all" screen could
871
+ * silently omit valid records.
872
+ */
873
+ 'epic.listAll': defineFn({
874
+ input: { search: 'text?', cursor: 'int?', limit: 'int?' },
875
+ output: { rows: 'json', total: 'int' },
876
+ effects: [
877
+ 'read:flow.Epic',
878
+ 'read:flow.Project',
879
+ 'read:flow.ProjectMember',
880
+ 'read:flow.ProjectAccessGrant',
881
+ 'read:user.User',
882
+ ],
883
+ agent: true,
884
+ handler: async (ctx, args) => {
885
+ // Every project's epics means every project this caller may see. The
886
+ // screen behind it is the cross-project one, so nothing else narrows it.
887
+ const [epics, projects] = await Promise.all([
888
+ visibleRows(ctx, 'flow.Epic', { active: true }),
889
+ ctx.db.select('flow.Project', { active: true }),
890
+ ]);
891
+ const named = new Map(projects.map((project) => [String(project.id), String(project.name ?? '')]));
892
+ const needle = normalized(args.search);
893
+ const rows = epics
894
+ .filter((epic) => named.has(String(epic.projectId)) && (!needle || normalized(epic.title).includes(needle)))
895
+ .map((epic) => ({
896
+ ...epic,
897
+ projectName: named.get(String(epic.projectId)) ?? '',
898
+ }))
899
+ .sort((a, b) => String(a.projectName).localeCompare(String(b.projectName)) ||
900
+ String(a.title ?? '').localeCompare(String(b.title ?? '')) ||
901
+ String(a.id).localeCompare(String(b.id)));
902
+ const cursor = Math.max(0, n(args.cursor ?? 0));
903
+ const limit = Math.max(1, Math.min(200, n(args.limit ?? 50)));
904
+ return { rows: rows.slice(cursor, cursor + limit), total: rows.length };
905
+ },
906
+ }),
907
+ /**
908
+ * One epic by id — what Live Doc reads to find its stored document, and what
909
+ * the epic's own screen is built from.
910
+ */
911
+ 'epic.get': defineFn({
912
+ input: { id: 'id' },
913
+ output: { value: 'json?' },
914
+ effects: [
915
+ 'read:flow.Epic',
916
+ 'read:flow.Project',
917
+ 'read:flow.ProjectMember',
918
+ 'read:flow.ProjectAccessGrant',
919
+ 'read:user.User',
920
+ ],
921
+ agent: true,
922
+ handler: async (ctx, args) => {
923
+ const held = (await ctx.db.select('flow.Epic', { id: args.id }))[0] ?? null;
924
+ return { value: held && (await canReadProject(ctx, held.projectId)) ? held : null };
925
+ },
926
+ }),
927
+ /**
928
+ * Rewriting an epic's document, as a permission key of its own — the same
929
+ * split `page.editContent` makes, and for the same reason.
930
+ */
931
+ 'epic.editContent': defineFn({
932
+ input: { id: 'id' },
933
+ // The fields as they are actually returned, not a `value` wrapper the
934
+ // handler never builds: output is projected against these keys, so
935
+ // declaring `value` and answering `{ id, contentAttachmentId }` threw both
936
+ // away and handed the caller `{}`. Live Doc reads `contentAttachmentId`
937
+ // off this to find the stored snapshot, so an empty answer read as "never
938
+ // written" — and the next push started from a blank document and flattened
939
+ // it over the real one.
940
+ output: { id: 'id?', contentAttachmentId: 'id?' },
941
+ effects: ['read:flow.Epic', ...membershipEffects],
942
+ agent: true,
943
+ handler: async (ctx, args) => {
944
+ const row = await readableRow(ctx, 'flow.Epic', args.id);
945
+ return row ? { id: row.id, contentAttachmentId: row.contentAttachmentId ?? null } : null;
946
+ },
947
+ }),
948
+ 'epic.save': saveEntity('flow.Epic', ['id', 'projectId', 'title', 'color', 'active'], ['projectId', 'title'], (args, existing) => ({ active: existing?.active ?? true, ...args })),
949
+ 'epic.archive': defineFn({
950
+ input: { id: 'id' },
951
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
952
+ effects: ['read:flow.Epic', 'write:flow.Epic', ...membershipEffects],
953
+ idempotent: true,
954
+ agent: true,
955
+ handler: async (ctx, args) => {
956
+ const existing = await readableRow(ctx, 'flow.Epic', args.id);
957
+ if (!existing)
958
+ return invalid(issue('id', 'flow.error.notFound'));
959
+ await ctx.db.update('flow.Epic', { id: args.id }, { active: false });
960
+ return { ok: true, id: args.id };
961
+ },
962
+ }),
963
+ /**
964
+ * Every page in a project, flat — the screen assembles the tree.
965
+ *
966
+ * See listPages for why the whole project comes back at once rather than a
967
+ * level per request.
968
+ */
969
+ 'page.list': defineFn({
970
+ input: { projectId: 'id?', search: 'text?', includeArchived: 'bool?', limit: 'int?' },
971
+ output: {
972
+ id: 'id',
973
+ projectId: 'id',
974
+ parentPageId: 'id?',
975
+ title: 'text',
976
+ previewText: 'text?',
977
+ contentAttachmentId: 'id?',
978
+ contentUpdatedAt: 'datetime?',
979
+ sequence: 'int',
980
+ active: 'bool',
981
+ version: 'int',
982
+ updatedAt: 'datetime',
983
+ childCount: 'int',
984
+ },
985
+ effects: [
986
+ 'read:flow.Page',
987
+ 'read:flow.Project',
988
+ 'read:flow.ProjectMember',
989
+ 'read:flow.ProjectAccessGrant',
990
+ 'read:user.User',
991
+ ...membershipEffects,
992
+ ],
993
+ agent: true,
994
+ handler: async (ctx, args) => {
995
+ // Without a project this is the cross-project search, which listPages
996
+ // filters itself; with one it is that project's tree.
997
+ if (args.projectId != null && !(await canReadProject(ctx, args.projectId)))
998
+ return [];
999
+ return listPages(ctx, {
1000
+ projectId: args.projectId == null ? null : String(args.projectId),
1001
+ search: args.search == null ? null : String(args.search),
1002
+ includeArchived: args.includeArchived === true,
1003
+ limit: args.limit == null ? undefined : n(args.limit),
1004
+ });
1005
+ },
1006
+ }),
1007
+ /**
1008
+ * Every project's pages, paged and counted — see listAllPages.
1009
+ *
1010
+ * `page.list` answers "this project's tree" and stays that. This answers
1011
+ * "every document there is", a different question needing a different shape:
1012
+ * a total the pager can trust, and the project name beside each row.
1013
+ */
1014
+ 'page.listAll': defineFn({
1015
+ input: { search: 'text?', cursor: 'int?', limit: 'int?' },
1016
+ output: { rows: 'json', total: 'int' },
1017
+ effects: ['read:flow.Page', ...membershipEffects],
1018
+ agent: true,
1019
+ handler: (ctx, args) => listAllPages(ctx, {
1020
+ search: args.search == null ? null : String(args.search),
1021
+ cursor: args.cursor == null ? undefined : n(args.cursor),
1022
+ limit: args.limit == null ? undefined : n(args.limit),
1023
+ }),
1024
+ }),
1025
+ 'page.get': defineFn({
1026
+ input: { id: 'id' },
1027
+ output: { value: 'json?' },
1028
+ effects: [
1029
+ 'read:flow.Page',
1030
+ 'read:flow.Project',
1031
+ 'read:flow.ProjectMember',
1032
+ 'read:flow.ProjectAccessGrant',
1033
+ 'read:user.User',
1034
+ ],
1035
+ agent: true,
1036
+ handler: async (ctx, args) => {
1037
+ const held = await pageDetail(ctx, String(args.id));
1038
+ return { value: held && (await canReadProject(ctx, held.projectId)) ? held : null };
1039
+ },
1040
+ }),
1041
+ 'page.save': defineFn({
1042
+ input: {
1043
+ id: 'id',
1044
+ projectId: 'id',
1045
+ title: 'text',
1046
+ parentPageId: 'id?',
1047
+ sequence: 'int?',
1048
+ expectedVersion: 'int?',
1049
+ idempotencyKey: 'text',
1050
+ },
1051
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1052
+ effects: ['read:flow.Page', 'write:flow.Page', 'read:flow.Project', ...membershipEffects],
1053
+ idempotent: true,
1054
+ agent: true,
1055
+ handler: (ctx, args) => savePage(ctx, {
1056
+ id: String(args.id),
1057
+ projectId: String(args.projectId),
1058
+ title: String(args.title),
1059
+ parentPageId: args.parentPageId === undefined ? undefined : args.parentPageId,
1060
+ sequence: args.sequence == null ? null : n(args.sequence),
1061
+ expectedVersion: args.expectedVersion == null ? undefined : n(args.expectedVersion),
1062
+ idempotencyKey: String(args.idempotencyKey),
1063
+ }),
1064
+ }),
1065
+ /**
1066
+ * Re-parenting, as its own key.
1067
+ *
1068
+ * A hierarchy is only useful if it can be rearranged, and rearranging is a
1069
+ * different right from writing: someone may be trusted to edit a page
1070
+ * without being trusted to move a whole branch of the wiki.
1071
+ */
1072
+ 'page.move': defineFn({
1073
+ input: { id: 'id', parentPageId: 'id?', sequence: 'int?' },
1074
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1075
+ effects: ['read:flow.Page', 'write:flow.Page', ...membershipEffects],
1076
+ idempotent: true,
1077
+ agent: true,
1078
+ handler: (ctx, args) => movePage(ctx, {
1079
+ id: String(args.id),
1080
+ parentPageId: args.parentPageId ?? null,
1081
+ sequence: args.sequence == null ? null : n(args.sequence),
1082
+ }),
1083
+ }),
1084
+ 'page.reorder': defineFn({
1085
+ input: { id: 'id', direction: 'text' },
1086
+ output: { ok: 'bool', id: 'id?', moved: 'bool?', errors: 'json?' },
1087
+ effects: ['read:flow.Page', 'write:flow.Page', ...membershipEffects],
1088
+ idempotent: true,
1089
+ agent: true,
1090
+ handler: (ctx, args) => reorderPage(ctx, {
1091
+ id: String(args.id),
1092
+ direction: String(args.direction) === 'up' ? 'up' : 'down',
1093
+ }),
1094
+ }),
1095
+ 'page.archive': defineFn({
1096
+ input: { id: 'id' },
1097
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1098
+ effects: ['read:flow.Page', 'write:flow.Page', ...membershipEffects],
1099
+ idempotent: true,
1100
+ agent: true,
1101
+ handler: (ctx, args) => archivePage(ctx, String(args.id)),
1102
+ }),
1103
+ 'page.restore': defineFn({
1104
+ input: { id: 'id' },
1105
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1106
+ effects: ['read:flow.Page', 'write:flow.Page', ...membershipEffects],
1107
+ idempotent: true,
1108
+ agent: true,
1109
+ handler: (ctx, args) => restorePage(ctx, String(args.id)),
1110
+ }),
1111
+ /**
1112
+ * Rewriting a page's document, as a permission key of its own.
1113
+ *
1114
+ * It grants nothing by itself — Live Doc calls it only to ask whether this
1115
+ * caller may write, and hands back the row it returns (documents.ts). It is
1116
+ * separate from `page.save` because writing prose and renaming a page are
1117
+ * different rights: a reviewer may hold one without the other.
1118
+ */
1119
+ 'page.editContent': defineFn({
1120
+ input: { id: 'id' },
1121
+ // The fields as they are actually returned, not a `value` wrapper the
1122
+ // handler never builds: output is projected against these keys, so
1123
+ // declaring `value` and answering `{ id, contentAttachmentId }` threw both
1124
+ // away and handed the caller `{}`. Live Doc reads `contentAttachmentId`
1125
+ // off this to find the stored snapshot, so an empty answer read as "never
1126
+ // written" — and the next push started from a blank document and flattened
1127
+ // it over the real one.
1128
+ output: { id: 'id?', contentAttachmentId: 'id?' },
1129
+ effects: ['read:flow.Page', ...membershipEffects],
1130
+ agent: true,
1131
+ handler: async (ctx, args) => {
1132
+ const row = await readableRow(ctx, 'flow.Page', args.id);
1133
+ return row ? { id: row.id, contentAttachmentId: row.contentAttachmentId ?? null } : null;
1134
+ },
1135
+ }),
1136
+ /**
1137
+ * The project's sprints with what each is carrying — see sprintTotals.
1138
+ *
1139
+ * The totals live here rather than behind a key of their own because every
1140
+ * caller that wants a sprint wants to know how big it is, and the screen that
1141
+ * closes one needs the unfinished count before it can offer anywhere to put it.
1142
+ */
1143
+ 'sprint.list': defineFn({
1144
+ input: { projectId: 'id' },
1145
+ output: {
1146
+ id: 'id',
1147
+ projectId: 'id',
1148
+ name: 'text',
1149
+ startDate: 'date?',
1150
+ endDate: 'date?',
1151
+ state: 'text',
1152
+ total: 'int',
1153
+ done: 'int',
1154
+ unfinished: 'int',
1155
+ estimate: 'decimal',
1156
+ estimateDone: 'decimal',
1157
+ },
1158
+ effects: [
1159
+ 'read:flow.Sprint',
1160
+ 'read:flow.Issue',
1161
+ 'read:flow.Column',
1162
+ 'read:flow.Project',
1163
+ 'read:flow.ProjectMember',
1164
+ 'read:flow.ProjectAccessGrant',
1165
+ 'read:user.User',
1166
+ ...membershipEffects,
1167
+ ],
1168
+ agent: true,
1169
+ handler: async (ctx, args) => {
1170
+ if (!(await canReadProject(ctx, args.projectId)))
1171
+ return [];
1172
+ const [rows, totals] = await Promise.all([
1173
+ ctx.db.select('flow.Sprint', { projectId: args.projectId }),
1174
+ sprintTotals(ctx, String(args.projectId)),
1175
+ ]);
1176
+ return rows.map((row) => ({
1177
+ ...row,
1178
+ ...(totals.get(String(row.id)) ?? {
1179
+ total: 0,
1180
+ done: 0,
1181
+ unfinished: 0,
1182
+ estimate: 0,
1183
+ estimateDone: 0,
1184
+ }),
1185
+ }));
1186
+ },
1187
+ }),
1188
+ 'sprint.save': defineFn({
1189
+ input: {
1190
+ id: 'id',
1191
+ projectId: 'id',
1192
+ name: 'text',
1193
+ startDate: 'date?',
1194
+ endDate: 'date?',
1195
+ idempotencyKey: 'text',
1196
+ },
1197
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1198
+ effects: ['read:flow.Sprint', 'write:flow.Sprint', ...membershipEffects],
1199
+ idempotent: true,
1200
+ agent: true,
1201
+ handler: async (ctx, args) => {
1202
+ const error = command(ctx, args.idempotencyKey);
1203
+ if (error)
1204
+ return error;
1205
+ const existing = await readableRow(ctx, 'flow.Sprint', args.id);
1206
+ if (existing && existing.state !== 'planned')
1207
+ return invalid(issue('id', 'flow.error.invalidSprintState'));
1208
+ if (!(await canReadProject(ctx, args.projectId)))
1209
+ return invalid(issue('projectId', 'flow.error.notFound'));
1210
+ const name = String(args.name ?? '').trim();
1211
+ if (!name)
1212
+ return invalid(issue('name', 'flow.error.required'));
1213
+ const values = {
1214
+ projectId: args.projectId,
1215
+ name,
1216
+ startDate: args.startDate ?? null,
1217
+ endDate: args.endDate ?? null,
1218
+ state: 'planned',
1219
+ };
1220
+ if (existing)
1221
+ await ctx.db.update('flow.Sprint', { id: args.id }, values);
1222
+ else
1223
+ await ctx.db.insert('flow.Sprint', { id: args.id, ...values });
1224
+ return { ok: true, id: args.id };
1225
+ },
1226
+ }),
1227
+ 'sprint.start': defineFn({
1228
+ input: { id: 'id', idempotencyKey: 'text' },
1229
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1230
+ effects: [
1231
+ 'read:flow.Sprint',
1232
+ 'write:flow.Sprint',
1233
+ // The guard row this contends on, so two callers cannot both be told
1234
+ // they started a sprint — see flow.ProjectGuard.
1235
+ 'read:flow.ProjectGuard',
1236
+ 'write:flow.ProjectGuard',
1237
+ ...membershipEffects,
1238
+ ],
1239
+ idempotent: true,
1240
+ agent: true,
1241
+ handler: (ctx, args) => startSprint(ctx, { id: String(args.id), idempotencyKey: String(args.idempotencyKey) }),
1242
+ }),
1243
+ /**
1244
+ * Close it, and decide what happens to the work that did not finish.
1245
+ *
1246
+ * `carryTo` is absent by default, which is exactly what closing used to do —
1247
+ * so nothing that calls this today behaves differently.
1248
+ */
1249
+ /**
1250
+ * Delete a sprint nobody ever started — see deleteSprint for why only those.
1251
+ */
1252
+ 'sprint.delete': defineFn({
1253
+ input: { id: 'id', idempotencyKey: 'text' },
1254
+ output: { ok: 'bool', id: 'id?', released: 'int?', errors: 'json?' },
1255
+ effects: [
1256
+ 'read:flow.Sprint',
1257
+ 'write:flow.Sprint',
1258
+ 'read:flow.Issue',
1259
+ 'write:flow.Issue',
1260
+ ...membershipEffects,
1261
+ ],
1262
+ idempotent: true,
1263
+ agent: true,
1264
+ handler: (ctx, args) => deleteSprint(ctx, { id: String(args.id), idempotencyKey: String(args.idempotencyKey) }),
1265
+ }),
1266
+ 'sprint.close': defineFn({
1267
+ input: { id: 'id', carryTo: 'id?', carry: 'bool?', idempotencyKey: 'text' },
1268
+ output: { ok: 'bool', id: 'id?', carried: 'int?', errors: 'json?' },
1269
+ effects: [
1270
+ 'read:flow.Sprint',
1271
+ 'write:flow.Sprint',
1272
+ 'read:flow.Issue',
1273
+ 'write:flow.Issue',
1274
+ 'read:flow.Column',
1275
+ ...timelineEntryEffects,
1276
+ ...membershipEffects,
1277
+ ],
1278
+ idempotent: true,
1279
+ agent: true,
1280
+ handler: (ctx, args) => closeSprint(ctx, {
1281
+ id: String(args.id),
1282
+ // Three answers, not two: leave it (omit), move it (an id), or take it
1283
+ // out of every sprint (`carry: true` with no target).
1284
+ ...(args.carryTo || args.carry === true
1285
+ ? { carryTo: args.carryTo ? String(args.carryTo) : null }
1286
+ : {}),
1287
+ idempotencyKey: String(args.idempotencyKey),
1288
+ }),
1289
+ }),
1290
+ /**
1291
+ * Every tag, with how much work in the company carries it.
1292
+ *
1293
+ * The count is here rather than on the screen because of what archiving a tag
1294
+ * does: it deletes every `IssueTag` row for it, across every project, and
1295
+ * cannot be undone. The block that offers that button sits inside a *project's*
1296
+ * settings — so the number is the only thing that says how far the button
1297
+ * reaches. One grouped query, not one count per tag.
1298
+ */
1299
+ 'tag.list': defineFn({
1300
+ input: { search: 'text?', limit: 'int?', includeArchived: 'bool?' },
1301
+ output: { id: 'id', name: 'text', color: 'text?', active: 'bool', usage: 'int' },
1302
+ effects: ['read:flow.Tag', 'read:flow.IssueTag'],
1303
+ agent: true,
1304
+ handler: async (ctx, args) => {
1305
+ const rows = await optionRows(ctx, 'flow.Tag', args);
1306
+ if (!rows.length)
1307
+ return rows;
1308
+ const IT = ctx.table('flow.IssueTag');
1309
+ // Every row, archived issues included, because that is what `tag.archive`
1310
+ // deletes. A count that quietly skipped archived work would understate
1311
+ // exactly the thing the reader is about to lose.
1312
+ //
1313
+ // Counted across every project on purpose, membership notwithstanding.
1314
+ // The figure exists to answer "what will archiving this destroy", and
1315
+ // archiving a tag clears it from every project at once (FLW-DEC-006) — a
1316
+ // count narrowed to the reader's own projects would understate the damage
1317
+ // and make the warning a lie. What it gives away is one number about work
1318
+ // the reader cannot otherwise see, which is the price of the warning
1319
+ // being true. See the exception list in flow-membership.test.ts.
1320
+ const groups = await ctx.db.group(from(IT)
1321
+ .where(inArray(IT.tagId, rows.map((row) => String(row.id))))
1322
+ .groupBy({ col: IT.tagId }));
1323
+ const counted = new Map(groups.map((group) => [String(group.key[0] ?? ''), n(group.count)]));
1324
+ return rows.map((row) => ({ ...row, usage: counted.get(String(row.id)) ?? 0 }));
1325
+ },
1326
+ }),
1327
+ 'tag.save': defineFn({
1328
+ input: { id: 'id', name: 'text', color: 'text?', active: 'bool?' },
1329
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1330
+ effects: ['read:flow.Tag', 'write:flow.Tag'],
1331
+ idempotent: true,
1332
+ agent: true,
1333
+ handler: async (ctx, args) => {
1334
+ const name = String(args.name ?? '').trim();
1335
+ if (!name)
1336
+ return invalid(issue('name', 'flow.error.required'));
1337
+ const existing = (await ctx.db.select('flow.Tag', { id: args.id }))[0];
1338
+ const clash = (await ctx.db.select('flow.Tag', { name })).find((row) => row.id !== args.id);
1339
+ if (clash)
1340
+ return invalid(issue('name', 'flow.error.duplicateName'));
1341
+ const values = {
1342
+ name,
1343
+ color: args.color ? String(args.color) : (existing?.color ?? null),
1344
+ active: args.active ?? existing?.active ?? true,
1345
+ };
1346
+ if (existing)
1347
+ await ctx.db.update('flow.Tag', { id: args.id }, values);
1348
+ else
1349
+ await ctx.db.insert('flow.Tag', { id: args.id, ...values });
1350
+ return { ok: true, id: args.id };
1351
+ },
1352
+ }),
1353
+ 'tag.archive': defineFn({
1354
+ input: { id: 'id' },
1355
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1356
+ effects: ['read:flow.Tag', 'write:flow.Tag', 'read:flow.IssueTag', 'write:flow.IssueTag'],
1357
+ idempotent: true,
1358
+ agent: true,
1359
+ handler: async (ctx, args) => {
1360
+ const existing = (await ctx.db.select('flow.Tag', { id: args.id }))[0];
1361
+ if (!existing)
1362
+ return invalid(issue('id', 'flow.error.notFound'));
1363
+ await ctx.db.update('flow.Tag', { id: args.id }, { active: false });
1364
+ const IT = ctx.table('flow.IssueTag');
1365
+ await ctx.db.del(deleteFrom(IT).where(eq(IT.tagId, args.id)));
1366
+ return { ok: true, id: args.id };
1367
+ },
1368
+ }),
1369
+ 'issue.list': defineFn({
1370
+ input: {
1371
+ /** A day; narrows to issues due before it that are not finished. */
1372
+ overdueOn: 'text?',
1373
+ projectId: 'id?',
1374
+ columnId: 'id?',
1375
+ epicId: 'id?',
1376
+ sprintId: 'id?',
1377
+ assigneeUserId: 'id?',
1378
+ /** Assigned to whoever is asking; resolved from the actor, not the caller. */
1379
+ mine: 'bool?',
1380
+ includeArchived: 'bool?',
1381
+ cursor: 'text?',
1382
+ limit: 'int?',
1383
+ listState: 'json?',
1384
+ path: 'json?',
1385
+ timezone: 'text?',
1386
+ },
1387
+ output: { rows: 'json', total: 'int', nextCursor: 'text?', fieldFilterTruncated: 'bool?' },
1388
+ effects: [...flowReadEffects, 'read:company.Company'],
1389
+ agent: true,
1390
+ handler: (ctx, args) => listIssues(ctx, args),
1391
+ }),
1392
+ /**
1393
+ * How the issues under the same filter divide up — see `issueBuckets`.
1394
+ *
1395
+ * Four counts, not a page of rows, so the figures beside a list of a
1396
+ * thousand issues cost four queries.
1397
+ */
1398
+ 'issue.buckets': defineFn({
1399
+ input: {
1400
+ projectId: 'id?',
1401
+ epicId: 'id?',
1402
+ sprintId: 'id?',
1403
+ assigneeUserId: 'id?',
1404
+ mine: 'bool?',
1405
+ includeArchived: 'bool?',
1406
+ listState: 'json',
1407
+ /** Optional: the company's own civil date when the caller names none. */
1408
+ today: 'text?',
1409
+ },
1410
+ output: {
1411
+ total: 'int',
1412
+ done: 'int',
1413
+ overdue: 'int',
1414
+ waiting: 'int',
1415
+ working: 'int',
1416
+ today: 'text',
1417
+ },
1418
+ // The same `issueQuery` `issue.list` and `issue.group` run, so the same
1419
+ // `flow.IssueFieldValue` read whenever the state carries a `field:<code>`
1420
+ // rule — see resolveFieldFilters. A capability nobody declares is one
1421
+ // nobody reviewed, and this one was missing while the other two had it.
1422
+ effects: [
1423
+ 'read:flow.Issue',
1424
+ 'read:flow.Column',
1425
+ 'read:flow.FieldDef',
1426
+ 'read:flow.IssueFieldValue',
1427
+ // Where the company keeps its calendar — see businessTimezone.
1428
+ 'read:company.Company',
1429
+ ...membershipEffects,
1430
+ ],
1431
+ agent: true,
1432
+ handler: (ctx, args) => issueBuckets(ctx, args, args.today == null ? undefined : String(args.today)),
1433
+ }),
1434
+ 'issue.group': defineFn({
1435
+ input: {
1436
+ projectId: 'id?',
1437
+ columnId: 'id?',
1438
+ epicId: 'id?',
1439
+ sprintId: 'id?',
1440
+ assigneeUserId: 'id?',
1441
+ mine: 'bool?',
1442
+ includeArchived: 'bool?',
1443
+ listState: 'json',
1444
+ path: 'json?',
1445
+ timezone: 'text?',
1446
+ limit: 'int?',
1447
+ offset: 'int?',
1448
+ },
1449
+ effects: [...flowReadEffects, 'read:company.Company'],
1450
+ agent: true,
1451
+ handler: (ctx, args) => groupIssues(ctx, args),
1452
+ }),
1453
+ 'issue.get': defineFn({
1454
+ input: { id: 'id' },
1455
+ effects: [
1456
+ ...flowReadEffects,
1457
+ 'read:flow.Project',
1458
+ 'read:flow.ProjectMember',
1459
+ 'read:flow.ProjectAccessGrant',
1460
+ 'read:user.User',
1461
+ ],
1462
+ agent: true,
1463
+ // Not found rather than forbidden: that an issue exists in a project this
1464
+ // caller cannot see is itself the half of the answer to withhold.
1465
+ handler: async (ctx, args) => {
1466
+ const held = await issueDetail(ctx, String(args.id));
1467
+ return held && (await canReadProject(ctx, held.projectId)) ? held : null;
1468
+ },
1469
+ }),
1470
+ /**
1471
+ * The permission that guards the collaborative description.
1472
+ *
1473
+ * The description is a Yjs document edited over flow_backend's `/push` and
1474
+ * `/leave` routes, not through `issue.save`, so it needs its own grantable
1475
+ * key — those routes used to authorize with `issue.get`, which made a
1476
+ * read-only role able to rewrite any issue's text. It answers with the
1477
+ * issue so the caller does not read it twice.
1478
+ */
1479
+ 'issue.editDescription': defineFn({
1480
+ input: { id: 'id' },
1481
+ effects: ['read:flow.Issue', ...membershipEffects],
1482
+ agent: true,
1483
+ handler: async (ctx, args) => (await readableRow(ctx, 'flow.Issue', args.id)) ?? null,
1484
+ }),
1485
+ 'issue.save': defineFn({
1486
+ input: {
1487
+ id: 'id',
1488
+ projectId: 'id',
1489
+ columnId: 'id',
1490
+ typeId: 'id?',
1491
+ epicId: 'id?',
1492
+ sprintId: 'id?',
1493
+ parentIssueId: 'id?',
1494
+ title: 'text',
1495
+ assigneeUserId: 'id?',
1496
+ priority: 'text?',
1497
+ startDate: 'date?',
1498
+ dueDate: 'date?',
1499
+ estimate: 'decimal?',
1500
+ tagIds: 'json?',
1501
+ /** Custom field values, keyed by field id or by field code. */
1502
+ fields: 'json?',
1503
+ expectedVersion: 'int?',
1504
+ idempotencyKey: 'text',
1505
+ },
1506
+ output: { ok: 'bool', id: 'id?', version: 'int?', errors: 'json?' },
1507
+ effects: [...issueWriteEffects],
1508
+ idempotent: true,
1509
+ agent: true,
1510
+ handler: (ctx, args) => saveIssue(ctx, {
1511
+ ...args,
1512
+ id: String(args.id),
1513
+ projectId: String(args.projectId),
1514
+ columnId: String(args.columnId),
1515
+ title: String(args.title),
1516
+ idempotencyKey: String(args.idempotencyKey),
1517
+ tagIds: Array.isArray(args.tagIds) ? args.tagIds.map(String) : undefined,
1518
+ fields: args.fields && typeof args.fields === 'object'
1519
+ ? args.fields
1520
+ : undefined,
1521
+ }),
1522
+ }),
1523
+ 'issue.move': defineFn({
1524
+ input: { id: 'id', columnId: 'id', expectedVersion: 'int', idempotencyKey: 'text' },
1525
+ output: { ok: 'bool', id: 'id?', version: 'int?', errors: 'json?' },
1526
+ // The move leaves a timeline entry now — "who put this in Done, and when"
1527
+ // is the question the cluster could not answer — so it writes to the thread.
1528
+ effects: [
1529
+ 'read:flow.Issue',
1530
+ 'write:flow.Issue',
1531
+ 'read:flow.Column',
1532
+ 'read:flow.IssueDependency',
1533
+ ...timelineEntryEffects,
1534
+ ...membershipEffects,
1535
+ ],
1536
+ idempotent: true,
1537
+ agent: true,
1538
+ handler: (ctx, args) => moveIssue(ctx, {
1539
+ id: String(args.id),
1540
+ columnId: String(args.columnId),
1541
+ expectedVersion: Number(args.expectedVersion),
1542
+ idempotencyKey: String(args.idempotencyKey),
1543
+ }),
1544
+ }),
1545
+ /**
1546
+ * One action over many issues — see bulkIssues, and read the note there
1547
+ * about what it deliberately does not guarantee.
1548
+ */
1549
+ 'issue.bulk': defineFn({
1550
+ input: { ids: 'json', action: 'text', value: 'id?', idempotencyKey: 'text' },
1551
+ output: { ok: 'bool', applied: 'int?', refused: 'json?', errors: 'json?' },
1552
+ effects: [
1553
+ 'read:flow.Issue',
1554
+ 'write:flow.Issue',
1555
+ 'read:flow.Column',
1556
+ 'write:flow.IssueFieldValue',
1557
+ 'write:flow.IssueTag',
1558
+ 'read:flow.Tag',
1559
+ 'read:flow.IssueTag',
1560
+ 'read:flow.FieldDef',
1561
+ 'read:flow.IssueType',
1562
+ 'read:flow.Sprint',
1563
+ 'read:mail.Thread',
1564
+ 'write:mail.Thread',
1565
+ 'read:mail.Message',
1566
+ 'write:mail.Message',
1567
+ 'read:mail.Follower',
1568
+ 'write:mail.Follower',
1569
+ 'read:mail.Subtype',
1570
+ 'write:mail.Notification',
1571
+ 'write:mail.TrackingValue',
1572
+ 'read:user.User',
1573
+ ...membershipEffects,
1574
+ ],
1575
+ idempotent: true,
1576
+ agent: true,
1577
+ handler: (ctx, args) => bulkIssues(ctx, {
1578
+ ids: Array.isArray(args.ids) ? args.ids.map(String) : [],
1579
+ action: String(args.action),
1580
+ value: args.value ? String(args.value) : null,
1581
+ idempotencyKey: String(args.idempotencyKey),
1582
+ }),
1583
+ }),
1584
+ /** A copy of an issue in another project — see copyIssue for what it brings. */
1585
+ 'issue.copyTo': defineFn({
1586
+ input: { id: 'id', projectId: 'id', columnId: 'id?', title: 'text?', idempotencyKey: 'text' },
1587
+ output: {
1588
+ ok: 'bool',
1589
+ id: 'id?',
1590
+ columnId: 'id?',
1591
+ fieldsCarried: 'int?',
1592
+ fieldsDropped: 'int?',
1593
+ typeCleared: 'bool?',
1594
+ errors: 'json?',
1595
+ },
1596
+ effects: [
1597
+ 'read:flow.Issue',
1598
+ 'write:flow.Issue',
1599
+ 'read:flow.Column',
1600
+ 'read:flow.IssueType',
1601
+ 'read:flow.FieldDef',
1602
+ 'read:flow.IssueFieldValue',
1603
+ 'write:flow.IssueFieldValue',
1604
+ 'read:flow.Tag',
1605
+ 'read:flow.IssueTag',
1606
+ 'write:flow.IssueTag',
1607
+ 'read:flow.Sprint',
1608
+ 'read:mail.Thread',
1609
+ 'write:mail.Thread',
1610
+ 'read:mail.Message',
1611
+ 'write:mail.Message',
1612
+ 'read:mail.Follower',
1613
+ 'write:mail.Follower',
1614
+ 'read:mail.Subtype',
1615
+ 'write:mail.Notification',
1616
+ 'write:mail.TrackingValue',
1617
+ 'read:user.User',
1618
+ ...membershipEffects,
1619
+ ],
1620
+ idempotent: true,
1621
+ agent: true,
1622
+ handler: (ctx, args) => copyIssue(ctx, {
1623
+ id: String(args.id),
1624
+ projectId: String(args.projectId),
1625
+ columnId: args.columnId ? String(args.columnId) : null,
1626
+ title: args.title ? String(args.title) : null,
1627
+ idempotencyKey: String(args.idempotencyKey),
1628
+ }),
1629
+ }),
1630
+ /**
1631
+ * Take an issue to another project — see transferIssue for what travels.
1632
+ *
1633
+ * Its own key rather than a shape of `issue.save`, which refuses to change
1634
+ * a project at all: moving work between projects touches columns, types,
1635
+ * epics, sprints and custom fields, and priced as an edit it would look like
1636
+ * renaming a title.
1637
+ */
1638
+ 'issue.transfer': defineFn({
1639
+ input: {
1640
+ id: 'id',
1641
+ projectId: 'id',
1642
+ columnId: 'id?',
1643
+ expectedVersion: 'int',
1644
+ idempotencyKey: 'text',
1645
+ },
1646
+ output: {
1647
+ ok: 'bool',
1648
+ id: 'id?',
1649
+ version: 'int?',
1650
+ columnId: 'id?',
1651
+ fieldsCarried: 'int?',
1652
+ fieldsDropped: 'int?',
1653
+ typeCleared: 'bool?',
1654
+ epicCleared: 'bool?',
1655
+ sprintCleared: 'bool?',
1656
+ errors: 'json?',
1657
+ },
1658
+ effects: [
1659
+ 'read:flow.Issue',
1660
+ 'write:flow.Issue',
1661
+ 'read:flow.Column',
1662
+ 'read:flow.IssueType',
1663
+ 'read:flow.FieldDef',
1664
+ 'read:flow.IssueFieldValue',
1665
+ 'write:flow.IssueFieldValue',
1666
+ ...membershipEffects,
1667
+ ],
1668
+ idempotent: true,
1669
+ agent: true,
1670
+ handler: (ctx, args) => transferIssue(ctx, {
1671
+ id: String(args.id),
1672
+ projectId: String(args.projectId),
1673
+ columnId: args.columnId ? String(args.columnId) : null,
1674
+ expectedVersion: Number(args.expectedVersion),
1675
+ idempotencyKey: String(args.idempotencyKey),
1676
+ }),
1677
+ }),
1678
+ 'issue.assignSprint': defineFn({
1679
+ input: { id: 'id', sprintId: 'id?', expectedVersion: 'int', idempotencyKey: 'text' },
1680
+ output: { ok: 'bool', id: 'id?', version: 'int?', errors: 'json?' },
1681
+ effects: [
1682
+ 'read:flow.Issue',
1683
+ 'write:flow.Issue',
1684
+ 'read:flow.Sprint',
1685
+ ...timelineEntryEffects,
1686
+ ...membershipEffects,
1687
+ ],
1688
+ idempotent: true,
1689
+ agent: true,
1690
+ handler: (ctx, args) => assignSprint(ctx, {
1691
+ id: String(args.id),
1692
+ sprintId: args.sprintId ? String(args.sprintId) : null,
1693
+ expectedVersion: Number(args.expectedVersion),
1694
+ idempotencyKey: String(args.idempotencyKey),
1695
+ }),
1696
+ }),
1697
+ 'issue.comment': defineFn({
1698
+ input: {
1699
+ id: 'id',
1700
+ issueId: 'id',
1701
+ body: 'text',
1702
+ kind: 'text?',
1703
+ /** Users this comment is addressed to, beyond whoever already follows. */
1704
+ mentionUserIds: 'json?',
1705
+ idempotencyKey: 'text',
1706
+ },
1707
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1708
+ effects: [...commentEffects, 'read:user.User', 'write:mail.Mention', ...membershipEffects],
1709
+ idempotent: true,
1710
+ agent: true,
1711
+ handler: (ctx, args) => addComment(ctx, {
1712
+ id: String(args.id),
1713
+ issueId: String(args.issueId),
1714
+ body: String(args.body),
1715
+ kind: args.kind === 'note' ? 'note' : 'comment',
1716
+ mentionUserIds: Array.isArray(args.mentionUserIds) ? args.mentionUserIds.map(String) : [],
1717
+ idempotencyKey: String(args.idempotencyKey),
1718
+ }),
1719
+ }),
1720
+ /**
1721
+ * Off the board, without claiming it was finished — see archiveIssue.
1722
+ *
1723
+ * Its own key rather than a flag on `issue.save`: taking work out of every
1724
+ * figure the project reports is a different act from editing a field, and the
1725
+ * catalogue can price it separately.
1726
+ */
1727
+ 'issue.archive': defineFn({
1728
+ input: { id: 'id', expectedVersion: 'int', idempotencyKey: 'text' },
1729
+ output: { ok: 'bool', id: 'id?', version: 'int?', errors: 'json?' },
1730
+ effects: ['read:flow.Issue', 'write:flow.Issue', ...membershipEffects],
1731
+ idempotent: true,
1732
+ agent: true,
1733
+ handler: (ctx, args) => archiveIssue(ctx, {
1734
+ id: String(args.id),
1735
+ expectedVersion: n(args.expectedVersion),
1736
+ idempotencyKey: String(args.idempotencyKey),
1737
+ }),
1738
+ }),
1739
+ 'issue.restore': defineFn({
1740
+ input: { id: 'id', expectedVersion: 'int', idempotencyKey: 'text' },
1741
+ output: { ok: 'bool', id: 'id?', version: 'int?', errors: 'json?' },
1742
+ effects: ['read:flow.Issue', 'write:flow.Issue', ...membershipEffects],
1743
+ idempotent: true,
1744
+ agent: true,
1745
+ handler: (ctx, args) => restoreIssue(ctx, {
1746
+ id: String(args.id),
1747
+ expectedVersion: n(args.expectedVersion),
1748
+ idempotencyKey: String(args.idempotencyKey),
1749
+ }),
1750
+ }),
1751
+ /** The door `issue.unfollow` never had a pair for — see startFollowing. */
1752
+ 'issue.follow': defineFn({
1753
+ input: { issueId: 'id', idempotencyKey: 'text' },
1754
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1755
+ effects: [
1756
+ 'read:flow.Issue',
1757
+ 'read:user.User',
1758
+ 'read:mail.Thread',
1759
+ 'read:partner.Partner',
1760
+ 'read:mail.Follower',
1761
+ 'write:mail.Follower',
1762
+ ...membershipEffects,
1763
+ ],
1764
+ idempotent: true,
1765
+ agent: true,
1766
+ handler: (ctx, args) => startFollowing(ctx, {
1767
+ issueId: String(args.issueId),
1768
+ idempotencyKey: String(args.idempotencyKey),
1769
+ }),
1770
+ }),
1771
+ /**
1772
+ * Leaves an issue's thread.
1773
+ *
1774
+ * A separate key from commenting, because it is the opposite act: everything
1775
+ * else in this module hands out subscriptions, and this is the only way to
1776
+ * give one back.
1777
+ */
1778
+ 'issue.unfollow': defineFn({
1779
+ input: { issueId: 'id', idempotencyKey: 'text' },
1780
+ output: { ok: 'bool', removed: 'int?', errors: 'json?' },
1781
+ // `unfollowThread` clears the follower's per-subtype rows too, which the
1782
+ // effect system refused until it was said out loud — which is the point of
1783
+ // it: a capability nobody declared is one nobody reviewed.
1784
+ effects: [
1785
+ 'read:flow.Issue',
1786
+ 'read:user.User',
1787
+ 'read:mail.Follower',
1788
+ 'write:mail.Follower',
1789
+ 'write:mail.FollowerSubtype',
1790
+ ...membershipEffects,
1791
+ ],
1792
+ idempotent: true,
1793
+ agent: true,
1794
+ handler: (ctx, args) => stopFollowing(ctx, {
1795
+ issueId: String(args.issueId),
1796
+ idempotencyKey: String(args.idempotencyKey),
1797
+ }),
1798
+ }),
1799
+ 'issue.dependency.add': defineFn({
1800
+ input: { id: 'id', issueId: 'id', dependsOnIssueId: 'id', relation: 'text', idempotencyKey: 'text' },
1801
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1802
+ effects: [
1803
+ 'read:flow.Issue',
1804
+ 'read:flow.IssueDependency',
1805
+ 'write:flow.IssueDependency',
1806
+ ...membershipEffects,
1807
+ ],
1808
+ idempotent: true,
1809
+ agent: true,
1810
+ handler: (ctx, args) => addDependency(ctx, {
1811
+ id: String(args.id),
1812
+ issueId: String(args.issueId),
1813
+ dependsOnIssueId: String(args.dependsOnIssueId),
1814
+ relation: String(args.relation),
1815
+ idempotencyKey: String(args.idempotencyKey),
1816
+ }),
1817
+ }),
1818
+ 'issue.dependency.remove': defineFn({
1819
+ input: { id: 'id' },
1820
+ output: { ok: 'bool', id: 'id?', errors: 'json?' },
1821
+ effects: [
1822
+ 'read:flow.IssueDependency',
1823
+ 'write:flow.IssueDependency',
1824
+ 'read:flow.Issue',
1825
+ ...membershipEffects,
1826
+ ],
1827
+ idempotent: true,
1828
+ agent: true,
1829
+ handler: async (ctx, args) => {
1830
+ const existing = (await ctx.db.select('flow.IssueDependency', { id: args.id }))[0];
1831
+ // The edge carries no project of its own, so it is read through the issue
1832
+ // it hangs off — cutting a link between two issues is editing the project
1833
+ // they are in, and needs the same standing as anything else there.
1834
+ if (!existing || !(await readableRow(ctx, 'flow.Issue', existing.issueId)))
1835
+ return invalid(issue('id', 'flow.error.notFound'));
1836
+ const D = ctx.table('flow.IssueDependency');
1837
+ await ctx.db.del(deleteFrom(D).where(eq(D.id, args.id)));
1838
+ return { ok: true, id: args.id };
1839
+ },
1840
+ }),
1841
+ /**
1842
+ * Issues as picker rows, for the one field that points at another issue —
1843
+ * the dependency target. `issue.list` answers a paged envelope the picker
1844
+ * cannot read, and its search only takes a `listState`, so this wraps that
1845
+ * the same way `crm.case.options` wraps `listCases`.
1846
+ */
1847
+ 'issue.options': defineFn({
1848
+ input: { search: 'text?', limit: 'int?', projectId: 'id?', excludeId: 'id?' },
1849
+ output: { id: 'id', title: 'text', columnName: 'text?' },
1850
+ effects: [...flowReadEffects, 'read:company.Company'],
1851
+ agent: true,
1852
+ handler: async (ctx, args) => {
1853
+ const found = await listIssues(ctx, {
1854
+ ...(args.projectId ? { projectId: args.projectId } : {}),
1855
+ listState: args.search ? { ...emptyIssueListState(), q: String(args.search) } : undefined,
1856
+ limit: Math.max(1, Math.min(100, n(args.limit ?? 40))),
1857
+ });
1858
+ return found.rows
1859
+ .filter((row) => !args.excludeId || row.id !== args.excludeId)
1860
+ .map((row) => ({ id: row.id, title: row.title, columnName: row.columnName ?? null }));
1861
+ },
1862
+ }),
1863
+ /** Blocking edges among a node set — the map view's one batch read, see dependenciesFor. */
1864
+ 'issue.dependencies': defineFn({
1865
+ input: { issueIds: 'json', includeExternalTargets: 'bool?' },
1866
+ output: { issueId: 'id', dependsOnIssueId: 'id', relation: 'text' },
1867
+ effects: ['read:flow.IssueDependency', 'read:flow.Issue', ...membershipEffects],
1868
+ agent: true,
1869
+ // The ids come from the caller, so this answered about any issue anybody
1870
+ // named — including whether an issue in a project they cannot see has
1871
+ // blockers, which is an existence answer about a hidden project. The map
1872
+ // view passes ids it just read, so filtering costs it nothing (FLW-018).
1873
+ handler: (ctx, args) => dependenciesFor(ctx, Array.isArray(args.issueIds) ? args.issueIds.map(String) : [], args.includeExternalTargets === true),
1874
+ }),
1875
+ };
1876
+ //# sourceMappingURL=functions.js.map