@marinoscar/platform-contract 0.1.0-next.3 → 0.1.0-next.4

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 (673) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/README.md +23 -1
  3. package/dist/cjs/ai/capabilities.d.ts +85 -0
  4. package/dist/cjs/ai/capabilities.d.ts.map +1 -0
  5. package/dist/cjs/ai/capabilities.js +93 -0
  6. package/dist/cjs/ai/capabilities.js.map +1 -0
  7. package/dist/cjs/ai/constants.d.ts +239 -0
  8. package/dist/cjs/ai/constants.d.ts.map +1 -0
  9. package/dist/cjs/ai/constants.js +233 -0
  10. package/dist/cjs/ai/constants.js.map +1 -0
  11. package/dist/cjs/ai/features.d.ts +24 -0
  12. package/dist/cjs/ai/features.d.ts.map +1 -0
  13. package/dist/cjs/ai/features.js +33 -0
  14. package/dist/cjs/ai/features.js.map +1 -0
  15. package/dist/cjs/ai/index.d.ts +11 -0
  16. package/dist/cjs/ai/index.d.ts.map +1 -0
  17. package/dist/cjs/ai/index.js +81 -0
  18. package/dist/cjs/ai/index.js.map +1 -0
  19. package/dist/cjs/ai/org-keys.d.ts +50 -0
  20. package/dist/cjs/ai/org-keys.d.ts.map +1 -0
  21. package/dist/cjs/ai/org-keys.js +43 -0
  22. package/dist/cjs/ai/org-keys.js.map +1 -0
  23. package/dist/cjs/ai/schemas.d.ts +642 -0
  24. package/dist/cjs/ai/schemas.d.ts.map +1 -0
  25. package/dist/cjs/ai/schemas.js +894 -0
  26. package/dist/cjs/ai/schemas.js.map +1 -0
  27. package/dist/cjs/android-app/constants.d.ts +337 -0
  28. package/dist/cjs/android-app/constants.d.ts.map +1 -0
  29. package/dist/cjs/android-app/constants.js +312 -0
  30. package/dist/cjs/android-app/constants.js.map +1 -0
  31. package/dist/cjs/android-app/index.d.ts +5 -0
  32. package/dist/cjs/android-app/index.d.ts.map +1 -0
  33. package/dist/cjs/android-app/index.js +57 -0
  34. package/dist/cjs/android-app/index.js.map +1 -0
  35. package/dist/cjs/android-app/schemas.d.ts +358 -0
  36. package/dist/cjs/android-app/schemas.d.ts.map +1 -0
  37. package/dist/cjs/android-app/schemas.js +310 -0
  38. package/dist/cjs/android-app/schemas.js.map +1 -0
  39. package/dist/cjs/credentials/constants.d.ts +35 -0
  40. package/dist/cjs/credentials/constants.d.ts.map +1 -0
  41. package/dist/cjs/credentials/constants.js +39 -0
  42. package/dist/cjs/credentials/constants.js.map +1 -0
  43. package/dist/cjs/credentials/index.d.ts +5 -0
  44. package/dist/cjs/credentials/index.d.ts.map +1 -0
  45. package/dist/cjs/credentials/index.js +17 -0
  46. package/dist/cjs/credentials/index.js.map +1 -0
  47. package/dist/cjs/credentials/schemas.d.ts +64 -0
  48. package/dist/cjs/credentials/schemas.d.ts.map +1 -0
  49. package/dist/cjs/credentials/schemas.js +82 -0
  50. package/dist/cjs/credentials/schemas.js.map +1 -0
  51. package/dist/cjs/db-backup/config.d.ts +76 -0
  52. package/dist/cjs/db-backup/config.d.ts.map +1 -0
  53. package/dist/cjs/db-backup/config.js +115 -0
  54. package/dist/cjs/db-backup/config.js.map +1 -0
  55. package/dist/cjs/db-backup/constants.d.ts +314 -0
  56. package/dist/cjs/db-backup/constants.d.ts.map +1 -0
  57. package/dist/cjs/db-backup/constants.js +243 -0
  58. package/dist/cjs/db-backup/constants.js.map +1 -0
  59. package/dist/cjs/db-backup/index.d.ts +19 -0
  60. package/dist/cjs/db-backup/index.d.ts.map +1 -0
  61. package/dist/cjs/db-backup/index.js +81 -0
  62. package/dist/cjs/db-backup/index.js.map +1 -0
  63. package/dist/cjs/db-backup/node-credential.d.ts +37 -0
  64. package/dist/cjs/db-backup/node-credential.d.ts.map +1 -0
  65. package/dist/cjs/db-backup/node-credential.js +107 -0
  66. package/dist/cjs/db-backup/node-credential.js.map +1 -0
  67. package/dist/cjs/db-backup/node-result.d.ts +34 -0
  68. package/dist/cjs/db-backup/node-result.d.ts.map +1 -0
  69. package/dist/cjs/db-backup/node-result.js +168 -0
  70. package/dist/cjs/db-backup/node-result.js.map +1 -0
  71. package/dist/cjs/db-backup/restore.d.ts +405 -0
  72. package/dist/cjs/db-backup/restore.d.ts.map +1 -0
  73. package/dist/cjs/db-backup/restore.js +497 -0
  74. package/dist/cjs/db-backup/restore.js.map +1 -0
  75. package/dist/cjs/db-backup/run-actions.d.ts +49 -0
  76. package/dist/cjs/db-backup/run-actions.d.ts.map +1 -0
  77. package/dist/cjs/db-backup/run-actions.js +121 -0
  78. package/dist/cjs/db-backup/run-actions.js.map +1 -0
  79. package/dist/cjs/db-backup/runs-list-query.d.ts +20 -0
  80. package/dist/cjs/db-backup/runs-list-query.d.ts.map +1 -0
  81. package/dist/cjs/db-backup/runs-list-query.js +53 -0
  82. package/dist/cjs/db-backup/runs-list-query.js.map +1 -0
  83. package/dist/cjs/db-backup/runs.d.ts +46 -0
  84. package/dist/cjs/db-backup/runs.d.ts.map +1 -0
  85. package/dist/cjs/db-backup/runs.js +232 -0
  86. package/dist/cjs/db-backup/runs.js.map +1 -0
  87. package/dist/cjs/db-backup/schemas.d.ts +9 -0
  88. package/dist/cjs/db-backup/schemas.d.ts.map +1 -0
  89. package/dist/cjs/db-backup/schemas.js +31 -0
  90. package/dist/cjs/db-backup/schemas.js.map +1 -0
  91. package/dist/cjs/db-backup/settings-schemas.d.ts +217 -0
  92. package/dist/cjs/db-backup/settings-schemas.d.ts.map +1 -0
  93. package/dist/cjs/db-backup/settings-schemas.js +319 -0
  94. package/dist/cjs/db-backup/settings-schemas.js.map +1 -0
  95. package/dist/cjs/email/constants.d.ts +82 -0
  96. package/dist/cjs/email/constants.d.ts.map +1 -0
  97. package/dist/cjs/email/constants.js +82 -0
  98. package/dist/cjs/email/constants.js.map +1 -0
  99. package/dist/cjs/email/index.d.ts +5 -0
  100. package/dist/cjs/email/index.d.ts.map +1 -0
  101. package/dist/cjs/email/index.js +30 -0
  102. package/dist/cjs/email/index.js.map +1 -0
  103. package/dist/cjs/email/schemas.d.ts +276 -0
  104. package/dist/cjs/email/schemas.d.ts.map +1 -0
  105. package/dist/cjs/email/schemas.js +280 -0
  106. package/dist/cjs/email/schemas.js.map +1 -0
  107. package/dist/cjs/exports/constants.d.ts +123 -0
  108. package/dist/cjs/exports/constants.d.ts.map +1 -0
  109. package/dist/cjs/exports/constants.js +109 -0
  110. package/dist/cjs/exports/constants.js.map +1 -0
  111. package/dist/cjs/exports/index.d.ts +5 -0
  112. package/dist/cjs/exports/index.d.ts.map +1 -0
  113. package/dist/cjs/exports/index.js +42 -0
  114. package/dist/cjs/exports/index.js.map +1 -0
  115. package/dist/cjs/exports/schemas.d.ts +386 -0
  116. package/dist/cjs/exports/schemas.d.ts.map +1 -0
  117. package/dist/cjs/exports/schemas.js +288 -0
  118. package/dist/cjs/exports/schemas.js.map +1 -0
  119. package/dist/cjs/identity/constants.d.ts +273 -0
  120. package/dist/cjs/identity/constants.d.ts.map +1 -0
  121. package/dist/cjs/identity/constants.js +248 -0
  122. package/dist/cjs/identity/constants.js.map +1 -0
  123. package/dist/cjs/identity/index.d.ts +5 -0
  124. package/dist/cjs/identity/index.d.ts.map +1 -0
  125. package/dist/cjs/identity/index.js +73 -0
  126. package/dist/cjs/identity/index.js.map +1 -0
  127. package/dist/cjs/identity/schemas.d.ts +784 -0
  128. package/dist/cjs/identity/schemas.d.ts.map +1 -0
  129. package/dist/cjs/identity/schemas.js +684 -0
  130. package/dist/cjs/identity/schemas.js.map +1 -0
  131. package/dist/cjs/jobs/constants.d.ts +135 -0
  132. package/dist/cjs/jobs/constants.d.ts.map +1 -0
  133. package/dist/cjs/jobs/constants.js +130 -0
  134. package/dist/cjs/jobs/constants.js.map +1 -0
  135. package/dist/cjs/jobs/index.d.ts +9 -0
  136. package/dist/cjs/jobs/index.d.ts.map +1 -0
  137. package/dist/cjs/jobs/index.js +59 -0
  138. package/dist/cjs/jobs/index.js.map +1 -0
  139. package/dist/cjs/jobs/retention-schemas.d.ts +252 -0
  140. package/dist/cjs/jobs/retention-schemas.d.ts.map +1 -0
  141. package/dist/cjs/jobs/retention-schemas.js +233 -0
  142. package/dist/cjs/jobs/retention-schemas.js.map +1 -0
  143. package/dist/cjs/jobs/schemas.d.ts +361 -0
  144. package/dist/cjs/jobs/schemas.d.ts.map +1 -0
  145. package/dist/cjs/jobs/schemas.js +706 -0
  146. package/dist/cjs/jobs/schemas.js.map +1 -0
  147. package/dist/cjs/jobs/settings-schemas.d.ts +84 -0
  148. package/dist/cjs/jobs/settings-schemas.d.ts.map +1 -0
  149. package/dist/cjs/jobs/settings-schemas.js +116 -0
  150. package/dist/cjs/jobs/settings-schemas.js.map +1 -0
  151. package/dist/cjs/nodes/admin-schemas.d.ts +204 -0
  152. package/dist/cjs/nodes/admin-schemas.d.ts.map +1 -0
  153. package/dist/cjs/nodes/admin-schemas.js +153 -0
  154. package/dist/cjs/nodes/admin-schemas.js.map +1 -0
  155. package/dist/cjs/nodes/constants.d.ts +86 -0
  156. package/dist/cjs/nodes/constants.d.ts.map +1 -0
  157. package/dist/cjs/nodes/constants.js +102 -0
  158. package/dist/cjs/nodes/constants.js.map +1 -0
  159. package/dist/cjs/nodes/index.d.ts +8 -0
  160. package/dist/cjs/nodes/index.d.ts.map +1 -0
  161. package/dist/cjs/nodes/index.js +50 -0
  162. package/dist/cjs/nodes/index.js.map +1 -0
  163. package/dist/cjs/nodes/schemas.d.ts +332 -0
  164. package/dist/cjs/nodes/schemas.d.ts.map +1 -0
  165. package/dist/cjs/nodes/schemas.js +937 -0
  166. package/dist/cjs/nodes/schemas.js.map +1 -0
  167. package/dist/cjs/nodes/settings-schemas.d.ts +82 -0
  168. package/dist/cjs/nodes/settings-schemas.d.ts.map +1 -0
  169. package/dist/cjs/nodes/settings-schemas.js +106 -0
  170. package/dist/cjs/nodes/settings-schemas.js.map +1 -0
  171. package/dist/cjs/notifications/constants.d.ts +197 -0
  172. package/dist/cjs/notifications/constants.d.ts.map +1 -0
  173. package/dist/cjs/notifications/constants.js +181 -0
  174. package/dist/cjs/notifications/constants.js.map +1 -0
  175. package/dist/cjs/notifications/index.d.ts +5 -0
  176. package/dist/cjs/notifications/index.d.ts.map +1 -0
  177. package/dist/cjs/notifications/index.js +86 -0
  178. package/dist/cjs/notifications/index.js.map +1 -0
  179. package/dist/cjs/notifications/schemas.d.ts +1016 -0
  180. package/dist/cjs/notifications/schemas.d.ts.map +1 -0
  181. package/dist/cjs/notifications/schemas.js +851 -0
  182. package/dist/cjs/notifications/schemas.js.map +1 -0
  183. package/dist/cjs/onboarding/constants.d.ts +138 -0
  184. package/dist/cjs/onboarding/constants.d.ts.map +1 -0
  185. package/dist/cjs/onboarding/constants.js +123 -0
  186. package/dist/cjs/onboarding/constants.js.map +1 -0
  187. package/dist/cjs/onboarding/index.d.ts +5 -0
  188. package/dist/cjs/onboarding/index.d.ts.map +1 -0
  189. package/dist/cjs/onboarding/index.js +42 -0
  190. package/dist/cjs/onboarding/index.js.map +1 -0
  191. package/dist/cjs/onboarding/schemas.d.ts +360 -0
  192. package/dist/cjs/onboarding/schemas.d.ts.map +1 -0
  193. package/dist/cjs/onboarding/schemas.js +260 -0
  194. package/dist/cjs/onboarding/schemas.js.map +1 -0
  195. package/dist/cjs/settings/constants.d.ts +206 -0
  196. package/dist/cjs/settings/constants.d.ts.map +1 -0
  197. package/dist/cjs/settings/constants.js +200 -0
  198. package/dist/cjs/settings/constants.js.map +1 -0
  199. package/dist/cjs/settings/index.d.ts +6 -0
  200. package/dist/cjs/settings/index.d.ts.map +1 -0
  201. package/dist/cjs/settings/index.js +62 -0
  202. package/dist/cjs/settings/index.js.map +1 -0
  203. package/dist/cjs/settings/schemas.d.ts +574 -0
  204. package/dist/cjs/settings/schemas.d.ts.map +1 -0
  205. package/dist/cjs/settings/schemas.js +437 -0
  206. package/dist/cjs/settings/schemas.js.map +1 -0
  207. package/dist/cjs/settings/types.d.ts +79 -0
  208. package/dist/cjs/settings/types.d.ts.map +1 -0
  209. package/dist/cjs/settings/types.js +6 -0
  210. package/dist/cjs/settings/types.js.map +1 -0
  211. package/dist/cjs/sharing/constants.d.ts +216 -0
  212. package/dist/cjs/sharing/constants.d.ts.map +1 -0
  213. package/dist/cjs/sharing/constants.js +163 -0
  214. package/dist/cjs/sharing/constants.js.map +1 -0
  215. package/dist/cjs/sharing/enum.d.ts +5 -0
  216. package/dist/cjs/sharing/enum.d.ts.map +1 -0
  217. package/dist/cjs/sharing/enum.js +9 -0
  218. package/dist/cjs/sharing/enum.js.map +1 -0
  219. package/dist/cjs/sharing/grants.d.ts +490 -0
  220. package/dist/cjs/sharing/grants.d.ts.map +1 -0
  221. package/dist/cjs/sharing/grants.js +447 -0
  222. package/dist/cjs/sharing/grants.js.map +1 -0
  223. package/dist/cjs/sharing/groups.d.ts +410 -0
  224. package/dist/cjs/sharing/groups.d.ts.map +1 -0
  225. package/dist/cjs/sharing/groups.js +375 -0
  226. package/dist/cjs/sharing/groups.js.map +1 -0
  227. package/dist/cjs/sharing/index.d.ts +5 -0
  228. package/dist/cjs/sharing/index.d.ts.map +1 -0
  229. package/dist/cjs/sharing/index.js +77 -0
  230. package/dist/cjs/sharing/index.js.map +1 -0
  231. package/dist/cjs/sharing/schemas.d.ts +3 -0
  232. package/dist/cjs/sharing/schemas.d.ts.map +1 -0
  233. package/dist/cjs/sharing/schemas.js +21 -0
  234. package/dist/cjs/sharing/schemas.js.map +1 -0
  235. package/dist/cjs/storage/constants.d.ts +111 -0
  236. package/dist/cjs/storage/constants.d.ts.map +1 -0
  237. package/dist/cjs/storage/constants.js +107 -0
  238. package/dist/cjs/storage/constants.js.map +1 -0
  239. package/dist/cjs/storage/index.d.ts +27 -0
  240. package/dist/cjs/storage/index.d.ts.map +1 -0
  241. package/dist/cjs/storage/index.js +69 -0
  242. package/dist/cjs/storage/index.js.map +1 -0
  243. package/dist/cjs/storage/objects-complete-upload.d.ts +19 -0
  244. package/dist/cjs/storage/objects-complete-upload.d.ts.map +1 -0
  245. package/dist/cjs/storage/objects-complete-upload.js +19 -0
  246. package/dist/cjs/storage/objects-complete-upload.js.map +1 -0
  247. package/dist/cjs/storage/objects-download-url.d.ts +17 -0
  248. package/dist/cjs/storage/objects-download-url.d.ts.map +1 -0
  249. package/dist/cjs/storage/objects-download-url.js +16 -0
  250. package/dist/cjs/storage/objects-download-url.js.map +1 -0
  251. package/dist/cjs/storage/objects-init-upload.d.ts +39 -0
  252. package/dist/cjs/storage/objects-init-upload.d.ts.map +1 -0
  253. package/dist/cjs/storage/objects-init-upload.js +40 -0
  254. package/dist/cjs/storage/objects-init-upload.js.map +1 -0
  255. package/dist/cjs/storage/objects-list-query.d.ts +50 -0
  256. package/dist/cjs/storage/objects-list-query.d.ts.map +1 -0
  257. package/dist/cjs/storage/objects-list-query.js +23 -0
  258. package/dist/cjs/storage/objects-list-query.js.map +1 -0
  259. package/dist/cjs/storage/objects-object-response.d.ts +49 -0
  260. package/dist/cjs/storage/objects-object-response.d.ts.map +1 -0
  261. package/dist/cjs/storage/objects-object-response.js +54 -0
  262. package/dist/cjs/storage/objects-object-response.js.map +1 -0
  263. package/dist/cjs/storage/objects-update-metadata.d.ts +16 -0
  264. package/dist/cjs/storage/objects-update-metadata.d.ts.map +1 -0
  265. package/dist/cjs/storage/objects-update-metadata.js +14 -0
  266. package/dist/cjs/storage/objects-update-metadata.js.map +1 -0
  267. package/dist/cjs/storage/schemas.d.ts +13 -0
  268. package/dist/cjs/storage/schemas.d.ts.map +1 -0
  269. package/dist/cjs/storage/schemas.js +35 -0
  270. package/dist/cjs/storage/schemas.js.map +1 -0
  271. package/dist/cjs/storage/settings-schemas.d.ts +188 -0
  272. package/dist/cjs/storage/settings-schemas.d.ts.map +1 -0
  273. package/dist/cjs/storage/settings-schemas.js +223 -0
  274. package/dist/cjs/storage/settings-schemas.js.map +1 -0
  275. package/dist/cjs/storage/storage-bucket-provision.d.ts +152 -0
  276. package/dist/cjs/storage/storage-bucket-provision.d.ts.map +1 -0
  277. package/dist/cjs/storage/storage-bucket-provision.js +216 -0
  278. package/dist/cjs/storage/storage-bucket-provision.js.map +1 -0
  279. package/dist/cjs/storage/storage-config-response.d.ts +99 -0
  280. package/dist/cjs/storage/storage-config-response.d.ts.map +1 -0
  281. package/dist/cjs/storage/storage-config-response.js +173 -0
  282. package/dist/cjs/storage/storage-config-response.js.map +1 -0
  283. package/dist/cjs/storage/storage-config-update.d.ts +46 -0
  284. package/dist/cjs/storage/storage-config-update.d.ts.map +1 -0
  285. package/dist/cjs/storage/storage-config-update.js +133 -0
  286. package/dist/cjs/storage/storage-config-update.js.map +1 -0
  287. package/dist/cjs/storage/storage-connection-test.d.ts +129 -0
  288. package/dist/cjs/storage/storage-connection-test.d.ts.map +1 -0
  289. package/dist/cjs/storage/storage-connection-test.js +244 -0
  290. package/dist/cjs/storage/storage-connection-test.js.map +1 -0
  291. package/dist/cjs/storage/storage-status.d.ts +16 -0
  292. package/dist/cjs/storage/storage-status.d.ts.map +1 -0
  293. package/dist/cjs/storage/storage-status.js +23 -0
  294. package/dist/cjs/storage/storage-status.js.map +1 -0
  295. package/dist/cjs/telemetry/config.d.ts +4 -0
  296. package/dist/cjs/telemetry/config.d.ts.map +1 -1
  297. package/dist/cjs/telemetry/config.js +16 -2
  298. package/dist/cjs/telemetry/config.js.map +1 -1
  299. package/dist/cjs/telemetry/connection.d.ts +1 -1
  300. package/dist/cjs/telemetry/constants.d.ts +378 -6
  301. package/dist/cjs/telemetry/constants.d.ts.map +1 -1
  302. package/dist/cjs/telemetry/constants.js +290 -5
  303. package/dist/cjs/telemetry/constants.js.map +1 -1
  304. package/dist/cjs/telemetry/dashboard.d.ts +188 -17
  305. package/dist/cjs/telemetry/dashboard.d.ts.map +1 -1
  306. package/dist/cjs/telemetry/dashboard.js +61 -3
  307. package/dist/cjs/telemetry/dashboard.js.map +1 -1
  308. package/dist/cjs/telemetry/index.d.ts +4 -4
  309. package/dist/cjs/telemetry/index.d.ts.map +1 -1
  310. package/dist/cjs/telemetry/index.js +35 -3
  311. package/dist/cjs/telemetry/index.js.map +1 -1
  312. package/dist/cjs/telemetry/presentation.d.ts +243 -0
  313. package/dist/cjs/telemetry/presentation.d.ts.map +1 -0
  314. package/dist/cjs/telemetry/presentation.js +300 -0
  315. package/dist/cjs/telemetry/presentation.js.map +1 -0
  316. package/dist/cjs/telemetry/query.d.ts +2 -2
  317. package/dist/cjs/telemetry/schemas.d.ts +5 -2
  318. package/dist/cjs/telemetry/schemas.d.ts.map +1 -1
  319. package/dist/cjs/telemetry/schemas.js +21 -1
  320. package/dist/cjs/telemetry/schemas.js.map +1 -1
  321. package/dist/cjs/telemetry/stack.d.ts +5 -5
  322. package/dist/cjs/telemetry/store.d.ts +111 -0
  323. package/dist/cjs/telemetry/store.d.ts.map +1 -0
  324. package/dist/cjs/telemetry/store.js +83 -0
  325. package/dist/cjs/telemetry/store.js.map +1 -0
  326. package/dist/cjs/user-data/constants.d.ts +157 -0
  327. package/dist/cjs/user-data/constants.d.ts.map +1 -0
  328. package/dist/cjs/user-data/constants.js +137 -0
  329. package/dist/cjs/user-data/constants.js.map +1 -0
  330. package/dist/cjs/user-data/index.d.ts +5 -0
  331. package/dist/cjs/user-data/index.d.ts.map +1 -0
  332. package/dist/cjs/user-data/index.js +46 -0
  333. package/dist/cjs/user-data/index.js.map +1 -0
  334. package/dist/cjs/user-data/schemas.d.ts +306 -0
  335. package/dist/cjs/user-data/schemas.d.ts.map +1 -0
  336. package/dist/cjs/user-data/schemas.js +333 -0
  337. package/dist/cjs/user-data/schemas.js.map +1 -0
  338. package/dist/esm/ai/capabilities.d.ts +85 -0
  339. package/dist/esm/ai/capabilities.d.ts.map +1 -0
  340. package/dist/esm/ai/capabilities.js +90 -0
  341. package/dist/esm/ai/capabilities.js.map +1 -0
  342. package/dist/esm/ai/constants.d.ts +239 -0
  343. package/dist/esm/ai/constants.d.ts.map +1 -0
  344. package/dist/esm/ai/constants.js +229 -0
  345. package/dist/esm/ai/constants.js.map +1 -0
  346. package/dist/esm/ai/features.d.ts +24 -0
  347. package/dist/esm/ai/features.d.ts.map +1 -0
  348. package/dist/esm/ai/features.js +30 -0
  349. package/dist/esm/ai/features.js.map +1 -0
  350. package/dist/esm/ai/index.d.ts +11 -0
  351. package/dist/esm/ai/index.d.ts.map +1 -0
  352. package/dist/esm/ai/index.js +16 -0
  353. package/dist/esm/ai/index.js.map +1 -0
  354. package/dist/esm/ai/org-keys.d.ts +50 -0
  355. package/dist/esm/ai/org-keys.d.ts.map +1 -0
  356. package/dist/esm/ai/org-keys.js +40 -0
  357. package/dist/esm/ai/org-keys.js.map +1 -0
  358. package/dist/esm/ai/schemas.d.ts +642 -0
  359. package/dist/esm/ai/schemas.d.ts.map +1 -0
  360. package/dist/esm/ai/schemas.js +889 -0
  361. package/dist/esm/ai/schemas.js.map +1 -0
  362. package/dist/esm/android-app/constants.d.ts +337 -0
  363. package/dist/esm/android-app/constants.d.ts.map +1 -0
  364. package/dist/esm/android-app/constants.js +306 -0
  365. package/dist/esm/android-app/constants.js.map +1 -0
  366. package/dist/esm/android-app/index.d.ts +5 -0
  367. package/dist/esm/android-app/index.d.ts.map +1 -0
  368. package/dist/esm/android-app/index.js +8 -0
  369. package/dist/esm/android-app/index.js.map +1 -0
  370. package/dist/esm/android-app/schemas.d.ts +358 -0
  371. package/dist/esm/android-app/schemas.d.ts.map +1 -0
  372. package/dist/esm/android-app/schemas.js +306 -0
  373. package/dist/esm/android-app/schemas.js.map +1 -0
  374. package/dist/esm/credentials/constants.d.ts +35 -0
  375. package/dist/esm/credentials/constants.d.ts.map +1 -0
  376. package/dist/esm/credentials/constants.js +36 -0
  377. package/dist/esm/credentials/constants.js.map +1 -0
  378. package/dist/esm/credentials/index.d.ts +5 -0
  379. package/dist/esm/credentials/index.d.ts.map +1 -0
  380. package/dist/esm/credentials/index.js +8 -0
  381. package/dist/esm/credentials/index.js.map +1 -0
  382. package/dist/esm/credentials/schemas.d.ts +64 -0
  383. package/dist/esm/credentials/schemas.d.ts.map +1 -0
  384. package/dist/esm/credentials/schemas.js +79 -0
  385. package/dist/esm/credentials/schemas.js.map +1 -0
  386. package/dist/esm/db-backup/config.d.ts +76 -0
  387. package/dist/esm/db-backup/config.d.ts.map +1 -0
  388. package/dist/esm/db-backup/config.js +112 -0
  389. package/dist/esm/db-backup/config.js.map +1 -0
  390. package/dist/esm/db-backup/constants.d.ts +314 -0
  391. package/dist/esm/db-backup/constants.d.ts.map +1 -0
  392. package/dist/esm/db-backup/constants.js +240 -0
  393. package/dist/esm/db-backup/constants.js.map +1 -0
  394. package/dist/esm/db-backup/index.d.ts +19 -0
  395. package/dist/esm/db-backup/index.d.ts.map +1 -0
  396. package/dist/esm/db-backup/index.js +25 -0
  397. package/dist/esm/db-backup/index.js.map +1 -0
  398. package/dist/esm/db-backup/node-credential.d.ts +37 -0
  399. package/dist/esm/db-backup/node-credential.d.ts.map +1 -0
  400. package/dist/esm/db-backup/node-credential.js +104 -0
  401. package/dist/esm/db-backup/node-credential.js.map +1 -0
  402. package/dist/esm/db-backup/node-result.d.ts +34 -0
  403. package/dist/esm/db-backup/node-result.d.ts.map +1 -0
  404. package/dist/esm/db-backup/node-result.js +165 -0
  405. package/dist/esm/db-backup/node-result.js.map +1 -0
  406. package/dist/esm/db-backup/restore.d.ts +405 -0
  407. package/dist/esm/db-backup/restore.d.ts.map +1 -0
  408. package/dist/esm/db-backup/restore.js +494 -0
  409. package/dist/esm/db-backup/restore.js.map +1 -0
  410. package/dist/esm/db-backup/run-actions.d.ts +49 -0
  411. package/dist/esm/db-backup/run-actions.d.ts.map +1 -0
  412. package/dist/esm/db-backup/run-actions.js +118 -0
  413. package/dist/esm/db-backup/run-actions.js.map +1 -0
  414. package/dist/esm/db-backup/runs-list-query.d.ts +20 -0
  415. package/dist/esm/db-backup/runs-list-query.d.ts.map +1 -0
  416. package/dist/esm/db-backup/runs-list-query.js +50 -0
  417. package/dist/esm/db-backup/runs-list-query.js.map +1 -0
  418. package/dist/esm/db-backup/runs.d.ts +46 -0
  419. package/dist/esm/db-backup/runs.d.ts.map +1 -0
  420. package/dist/esm/db-backup/runs.js +229 -0
  421. package/dist/esm/db-backup/runs.js.map +1 -0
  422. package/dist/esm/db-backup/schemas.d.ts +9 -0
  423. package/dist/esm/db-backup/schemas.d.ts.map +1 -0
  424. package/dist/esm/db-backup/schemas.js +15 -0
  425. package/dist/esm/db-backup/schemas.js.map +1 -0
  426. package/dist/esm/db-backup/settings-schemas.d.ts +217 -0
  427. package/dist/esm/db-backup/settings-schemas.d.ts.map +1 -0
  428. package/dist/esm/db-backup/settings-schemas.js +316 -0
  429. package/dist/esm/db-backup/settings-schemas.js.map +1 -0
  430. package/dist/esm/email/constants.d.ts +82 -0
  431. package/dist/esm/email/constants.d.ts.map +1 -0
  432. package/dist/esm/email/constants.js +79 -0
  433. package/dist/esm/email/constants.js.map +1 -0
  434. package/dist/esm/email/index.d.ts +5 -0
  435. package/dist/esm/email/index.d.ts.map +1 -0
  436. package/dist/esm/email/index.js +8 -0
  437. package/dist/esm/email/index.js.map +1 -0
  438. package/dist/esm/email/schemas.d.ts +276 -0
  439. package/dist/esm/email/schemas.d.ts.map +1 -0
  440. package/dist/esm/email/schemas.js +277 -0
  441. package/dist/esm/email/schemas.js.map +1 -0
  442. package/dist/esm/exports/constants.d.ts +123 -0
  443. package/dist/esm/exports/constants.d.ts.map +1 -0
  444. package/dist/esm/exports/constants.js +106 -0
  445. package/dist/esm/exports/constants.js.map +1 -0
  446. package/dist/esm/exports/index.d.ts +5 -0
  447. package/dist/esm/exports/index.d.ts.map +1 -0
  448. package/dist/esm/exports/index.js +7 -0
  449. package/dist/esm/exports/index.js.map +1 -0
  450. package/dist/esm/exports/schemas.d.ts +386 -0
  451. package/dist/esm/exports/schemas.d.ts.map +1 -0
  452. package/dist/esm/exports/schemas.js +285 -0
  453. package/dist/esm/exports/schemas.js.map +1 -0
  454. package/dist/esm/identity/constants.d.ts +273 -0
  455. package/dist/esm/identity/constants.d.ts.map +1 -0
  456. package/dist/esm/identity/constants.js +244 -0
  457. package/dist/esm/identity/constants.js.map +1 -0
  458. package/dist/esm/identity/index.d.ts +5 -0
  459. package/dist/esm/identity/index.d.ts.map +1 -0
  460. package/dist/esm/identity/index.js +10 -0
  461. package/dist/esm/identity/index.js.map +1 -0
  462. package/dist/esm/identity/schemas.d.ts +784 -0
  463. package/dist/esm/identity/schemas.d.ts.map +1 -0
  464. package/dist/esm/identity/schemas.js +681 -0
  465. package/dist/esm/identity/schemas.js.map +1 -0
  466. package/dist/esm/jobs/constants.d.ts +135 -0
  467. package/dist/esm/jobs/constants.d.ts.map +1 -0
  468. package/dist/esm/jobs/constants.js +127 -0
  469. package/dist/esm/jobs/constants.js.map +1 -0
  470. package/dist/esm/jobs/index.d.ts +9 -0
  471. package/dist/esm/jobs/index.d.ts.map +1 -0
  472. package/dist/esm/jobs/index.js +11 -0
  473. package/dist/esm/jobs/index.js.map +1 -0
  474. package/dist/esm/jobs/retention-schemas.d.ts +252 -0
  475. package/dist/esm/jobs/retention-schemas.d.ts.map +1 -0
  476. package/dist/esm/jobs/retention-schemas.js +229 -0
  477. package/dist/esm/jobs/retention-schemas.js.map +1 -0
  478. package/dist/esm/jobs/schemas.d.ts +361 -0
  479. package/dist/esm/jobs/schemas.d.ts.map +1 -0
  480. package/dist/esm/jobs/schemas.js +703 -0
  481. package/dist/esm/jobs/schemas.js.map +1 -0
  482. package/dist/esm/jobs/settings-schemas.d.ts +84 -0
  483. package/dist/esm/jobs/settings-schemas.d.ts.map +1 -0
  484. package/dist/esm/jobs/settings-schemas.js +113 -0
  485. package/dist/esm/jobs/settings-schemas.js.map +1 -0
  486. package/dist/esm/nodes/admin-schemas.d.ts +204 -0
  487. package/dist/esm/nodes/admin-schemas.d.ts.map +1 -0
  488. package/dist/esm/nodes/admin-schemas.js +150 -0
  489. package/dist/esm/nodes/admin-schemas.js.map +1 -0
  490. package/dist/esm/nodes/constants.d.ts +86 -0
  491. package/dist/esm/nodes/constants.d.ts.map +1 -0
  492. package/dist/esm/nodes/constants.js +99 -0
  493. package/dist/esm/nodes/constants.js.map +1 -0
  494. package/dist/esm/nodes/index.d.ts +8 -0
  495. package/dist/esm/nodes/index.d.ts.map +1 -0
  496. package/dist/esm/nodes/index.js +11 -0
  497. package/dist/esm/nodes/index.js.map +1 -0
  498. package/dist/esm/nodes/schemas.d.ts +332 -0
  499. package/dist/esm/nodes/schemas.d.ts.map +1 -0
  500. package/dist/esm/nodes/schemas.js +934 -0
  501. package/dist/esm/nodes/schemas.js.map +1 -0
  502. package/dist/esm/nodes/settings-schemas.d.ts +82 -0
  503. package/dist/esm/nodes/settings-schemas.d.ts.map +1 -0
  504. package/dist/esm/nodes/settings-schemas.js +103 -0
  505. package/dist/esm/nodes/settings-schemas.js.map +1 -0
  506. package/dist/esm/notifications/constants.d.ts +197 -0
  507. package/dist/esm/notifications/constants.d.ts.map +1 -0
  508. package/dist/esm/notifications/constants.js +178 -0
  509. package/dist/esm/notifications/constants.js.map +1 -0
  510. package/dist/esm/notifications/index.d.ts +5 -0
  511. package/dist/esm/notifications/index.d.ts.map +1 -0
  512. package/dist/esm/notifications/index.js +9 -0
  513. package/dist/esm/notifications/index.js.map +1 -0
  514. package/dist/esm/notifications/schemas.d.ts +1016 -0
  515. package/dist/esm/notifications/schemas.d.ts.map +1 -0
  516. package/dist/esm/notifications/schemas.js +848 -0
  517. package/dist/esm/notifications/schemas.js.map +1 -0
  518. package/dist/esm/onboarding/constants.d.ts +138 -0
  519. package/dist/esm/onboarding/constants.d.ts.map +1 -0
  520. package/dist/esm/onboarding/constants.js +120 -0
  521. package/dist/esm/onboarding/constants.js.map +1 -0
  522. package/dist/esm/onboarding/index.d.ts +5 -0
  523. package/dist/esm/onboarding/index.d.ts.map +1 -0
  524. package/dist/esm/onboarding/index.js +7 -0
  525. package/dist/esm/onboarding/index.js.map +1 -0
  526. package/dist/esm/onboarding/schemas.d.ts +360 -0
  527. package/dist/esm/onboarding/schemas.d.ts.map +1 -0
  528. package/dist/esm/onboarding/schemas.js +257 -0
  529. package/dist/esm/onboarding/schemas.js.map +1 -0
  530. package/dist/esm/settings/constants.d.ts +206 -0
  531. package/dist/esm/settings/constants.d.ts.map +1 -0
  532. package/dist/esm/settings/constants.js +197 -0
  533. package/dist/esm/settings/constants.js.map +1 -0
  534. package/dist/esm/settings/index.d.ts +6 -0
  535. package/dist/esm/settings/index.d.ts.map +1 -0
  536. package/dist/esm/settings/index.js +11 -0
  537. package/dist/esm/settings/index.js.map +1 -0
  538. package/dist/esm/settings/schemas.d.ts +574 -0
  539. package/dist/esm/settings/schemas.d.ts.map +1 -0
  540. package/dist/esm/settings/schemas.js +434 -0
  541. package/dist/esm/settings/schemas.js.map +1 -0
  542. package/dist/esm/settings/types.d.ts +79 -0
  543. package/dist/esm/settings/types.d.ts.map +1 -0
  544. package/dist/esm/settings/types.js +5 -0
  545. package/dist/esm/settings/types.js.map +1 -0
  546. package/dist/esm/sharing/constants.d.ts +216 -0
  547. package/dist/esm/sharing/constants.d.ts.map +1 -0
  548. package/dist/esm/sharing/constants.js +159 -0
  549. package/dist/esm/sharing/constants.js.map +1 -0
  550. package/dist/esm/sharing/enum.d.ts +5 -0
  551. package/dist/esm/sharing/enum.d.ts.map +1 -0
  552. package/dist/esm/sharing/enum.js +6 -0
  553. package/dist/esm/sharing/enum.js.map +1 -0
  554. package/dist/esm/sharing/grants.d.ts +490 -0
  555. package/dist/esm/sharing/grants.d.ts.map +1 -0
  556. package/dist/esm/sharing/grants.js +444 -0
  557. package/dist/esm/sharing/grants.js.map +1 -0
  558. package/dist/esm/sharing/groups.d.ts +410 -0
  559. package/dist/esm/sharing/groups.d.ts.map +1 -0
  560. package/dist/esm/sharing/groups.js +372 -0
  561. package/dist/esm/sharing/groups.js.map +1 -0
  562. package/dist/esm/sharing/index.d.ts +5 -0
  563. package/dist/esm/sharing/index.d.ts.map +1 -0
  564. package/dist/esm/sharing/index.js +11 -0
  565. package/dist/esm/sharing/index.js.map +1 -0
  566. package/dist/esm/sharing/schemas.d.ts +3 -0
  567. package/dist/esm/sharing/schemas.d.ts.map +1 -0
  568. package/dist/esm/sharing/schemas.js +5 -0
  569. package/dist/esm/sharing/schemas.js.map +1 -0
  570. package/dist/esm/storage/constants.d.ts +111 -0
  571. package/dist/esm/storage/constants.d.ts.map +1 -0
  572. package/dist/esm/storage/constants.js +104 -0
  573. package/dist/esm/storage/constants.js.map +1 -0
  574. package/dist/esm/storage/index.d.ts +27 -0
  575. package/dist/esm/storage/index.d.ts.map +1 -0
  576. package/dist/esm/storage/index.js +23 -0
  577. package/dist/esm/storage/index.js.map +1 -0
  578. package/dist/esm/storage/objects-complete-upload.d.ts +19 -0
  579. package/dist/esm/storage/objects-complete-upload.d.ts.map +1 -0
  580. package/dist/esm/storage/objects-complete-upload.js +16 -0
  581. package/dist/esm/storage/objects-complete-upload.js.map +1 -0
  582. package/dist/esm/storage/objects-download-url.d.ts +17 -0
  583. package/dist/esm/storage/objects-download-url.d.ts.map +1 -0
  584. package/dist/esm/storage/objects-download-url.js +13 -0
  585. package/dist/esm/storage/objects-download-url.js.map +1 -0
  586. package/dist/esm/storage/objects-init-upload.d.ts +39 -0
  587. package/dist/esm/storage/objects-init-upload.d.ts.map +1 -0
  588. package/dist/esm/storage/objects-init-upload.js +37 -0
  589. package/dist/esm/storage/objects-init-upload.js.map +1 -0
  590. package/dist/esm/storage/objects-list-query.d.ts +50 -0
  591. package/dist/esm/storage/objects-list-query.d.ts.map +1 -0
  592. package/dist/esm/storage/objects-list-query.js +20 -0
  593. package/dist/esm/storage/objects-list-query.js.map +1 -0
  594. package/dist/esm/storage/objects-object-response.d.ts +49 -0
  595. package/dist/esm/storage/objects-object-response.d.ts.map +1 -0
  596. package/dist/esm/storage/objects-object-response.js +51 -0
  597. package/dist/esm/storage/objects-object-response.js.map +1 -0
  598. package/dist/esm/storage/objects-update-metadata.d.ts +16 -0
  599. package/dist/esm/storage/objects-update-metadata.d.ts.map +1 -0
  600. package/dist/esm/storage/objects-update-metadata.js +11 -0
  601. package/dist/esm/storage/objects-update-metadata.js.map +1 -0
  602. package/dist/esm/storage/schemas.d.ts +13 -0
  603. package/dist/esm/storage/schemas.d.ts.map +1 -0
  604. package/dist/esm/storage/schemas.js +19 -0
  605. package/dist/esm/storage/schemas.js.map +1 -0
  606. package/dist/esm/storage/settings-schemas.d.ts +188 -0
  607. package/dist/esm/storage/settings-schemas.d.ts.map +1 -0
  608. package/dist/esm/storage/settings-schemas.js +220 -0
  609. package/dist/esm/storage/settings-schemas.js.map +1 -0
  610. package/dist/esm/storage/storage-bucket-provision.d.ts +152 -0
  611. package/dist/esm/storage/storage-bucket-provision.d.ts.map +1 -0
  612. package/dist/esm/storage/storage-bucket-provision.js +213 -0
  613. package/dist/esm/storage/storage-bucket-provision.js.map +1 -0
  614. package/dist/esm/storage/storage-config-response.d.ts +99 -0
  615. package/dist/esm/storage/storage-config-response.d.ts.map +1 -0
  616. package/dist/esm/storage/storage-config-response.js +170 -0
  617. package/dist/esm/storage/storage-config-response.js.map +1 -0
  618. package/dist/esm/storage/storage-config-update.d.ts +46 -0
  619. package/dist/esm/storage/storage-config-update.d.ts.map +1 -0
  620. package/dist/esm/storage/storage-config-update.js +130 -0
  621. package/dist/esm/storage/storage-config-update.js.map +1 -0
  622. package/dist/esm/storage/storage-connection-test.d.ts +129 -0
  623. package/dist/esm/storage/storage-connection-test.d.ts.map +1 -0
  624. package/dist/esm/storage/storage-connection-test.js +241 -0
  625. package/dist/esm/storage/storage-connection-test.js.map +1 -0
  626. package/dist/esm/storage/storage-status.d.ts +16 -0
  627. package/dist/esm/storage/storage-status.d.ts.map +1 -0
  628. package/dist/esm/storage/storage-status.js +20 -0
  629. package/dist/esm/storage/storage-status.js.map +1 -0
  630. package/dist/esm/telemetry/config.d.ts +4 -0
  631. package/dist/esm/telemetry/config.d.ts.map +1 -1
  632. package/dist/esm/telemetry/config.js +16 -2
  633. package/dist/esm/telemetry/config.js.map +1 -1
  634. package/dist/esm/telemetry/connection.d.ts +1 -1
  635. package/dist/esm/telemetry/constants.d.ts +378 -6
  636. package/dist/esm/telemetry/constants.d.ts.map +1 -1
  637. package/dist/esm/telemetry/constants.js +288 -4
  638. package/dist/esm/telemetry/constants.js.map +1 -1
  639. package/dist/esm/telemetry/dashboard.d.ts +188 -17
  640. package/dist/esm/telemetry/dashboard.d.ts.map +1 -1
  641. package/dist/esm/telemetry/dashboard.js +61 -3
  642. package/dist/esm/telemetry/dashboard.js.map +1 -1
  643. package/dist/esm/telemetry/index.d.ts +4 -4
  644. package/dist/esm/telemetry/index.d.ts.map +1 -1
  645. package/dist/esm/telemetry/index.js +2 -2
  646. package/dist/esm/telemetry/index.js.map +1 -1
  647. package/dist/esm/telemetry/presentation.d.ts +243 -0
  648. package/dist/esm/telemetry/presentation.d.ts.map +1 -0
  649. package/dist/esm/telemetry/presentation.js +297 -0
  650. package/dist/esm/telemetry/presentation.js.map +1 -0
  651. package/dist/esm/telemetry/query.d.ts +2 -2
  652. package/dist/esm/telemetry/schemas.d.ts +5 -2
  653. package/dist/esm/telemetry/schemas.d.ts.map +1 -1
  654. package/dist/esm/telemetry/schemas.js +3 -1
  655. package/dist/esm/telemetry/schemas.js.map +1 -1
  656. package/dist/esm/telemetry/stack.d.ts +5 -5
  657. package/dist/esm/telemetry/store.d.ts +111 -0
  658. package/dist/esm/telemetry/store.d.ts.map +1 -0
  659. package/dist/esm/telemetry/store.js +80 -0
  660. package/dist/esm/telemetry/store.js.map +1 -0
  661. package/dist/esm/user-data/constants.d.ts +157 -0
  662. package/dist/esm/user-data/constants.d.ts.map +1 -0
  663. package/dist/esm/user-data/constants.js +134 -0
  664. package/dist/esm/user-data/constants.js.map +1 -0
  665. package/dist/esm/user-data/index.d.ts +5 -0
  666. package/dist/esm/user-data/index.d.ts.map +1 -0
  667. package/dist/esm/user-data/index.js +7 -0
  668. package/dist/esm/user-data/index.js.map +1 -0
  669. package/dist/esm/user-data/schemas.d.ts +306 -0
  670. package/dist/esm/user-data/schemas.d.ts.map +1 -0
  671. package/dist/esm/user-data/schemas.js +330 -0
  672. package/dist/esm/user-data/schemas.js.map +1 -0
  673. package/package.json +151 -1
@@ -0,0 +1,316 @@
1
+ // =============================================================================
2
+ // Database backup: the `databaseBackup` system-settings namespace's schemas
3
+ // (issue #740, PP-8.7)
4
+ // =============================================================================
5
+ //
6
+ // The five schemas the namespace declaration of
7
+ // `@marinoscar/platform-api/db-backup` (`DATABASE_BACKUP_SYSTEM_SETTINGS`) is
8
+ // built from: the stored value and its partial, the PUT and PATCH wire
9
+ // branches, and the GET response branch. Moved verbatim (design comments
10
+ // included) from the reference app's `common/schemas/settings.schema.ts`,
11
+ // `system-settings-wire.schemas.ts` and `system-settings-response.schemas.ts`,
12
+ // which re-export them. Every bound is unchanged, so the OpenAPI document of
13
+ // `/api/system-settings` is too.
14
+ // =============================================================================
15
+ import { z } from 'zod';
16
+ import { BACKUP_CRON_PATTERN, BACKUP_FREQUENCIES, BACKUP_TIME_OF_DAY_PATTERN, } from './constants.js';
17
+ /**
18
+ * The retention policy of the `databaseBackup` namespace: how many ordinary
19
+ * `completed` archives to keep (`count`) and how old one may get
20
+ * (`maxAgeDays`). Both are optional; an archive is pruned when EITHER rule
21
+ * says so, and the newest completed archive is never pruned. `retentionCount`
22
+ * stays beside it as the alias of `count` (read and write): see
23
+ * `mergeDatabaseBackupSettings` for how the two stay in step.
24
+ *
25
+ * @stability experimental
26
+ */
27
+ export const backupRetentionSchema = z.object({
28
+ /** Keep this many newest ordinary `completed` archives. */
29
+ count: z.number().int().min(1).max(365).optional(),
30
+ /** Delete ordinary `completed` archives older than this many days. */
31
+ maxAgeDays: z.number().int().min(1).max(3650).optional(),
32
+ });
33
+ /**
34
+ * The `cron` field: a five-field expression made of digits, `*`, `/`, `,` and
35
+ * `-`. A SHAPE check; the API parses it with the scheduler's own parser and
36
+ * enforces the one-hour minimum interval when it is written.
37
+ */
38
+ const backupCronSchema = z
39
+ .string()
40
+ .max(120)
41
+ .regex(BACKUP_CRON_PATTERN, 'Expected a five-field cron expression such as "0 */6 * * *"');
42
+ /**
43
+ * Database backup and restore policy (`databaseBackup`).
44
+ *
45
+ * `dayOfWeek` and `dayOfMonth` are BOTH always present and both always valid,
46
+ * whatever `frequency` says. The alternative — a discriminated union keyed on
47
+ * `frequency` — would mean switching a schedule from weekly to monthly and
48
+ * back loses the day the operator had chosen, and would make a PATCH that
49
+ * changes only `frequency` invalid unless it also carried the other field.
50
+ * Storing an inert-but-remembered value is the cheaper mistake.
51
+ *
52
+ * `dayOfMonth` stops at 28 rather than 31 so that "monthly" means every month:
53
+ * a schedule pinned to the 30th silently skips February.
54
+ *
55
+ * `restoreRollbackMode` decides what happens to the database a restore
56
+ * displaced — `retain_database` keeps it (renamed, reachable, deleted later by
57
+ * `oldDatabaseRetentionHours`), `drop_database` does not. The default is to
58
+ * retain, because the failure mode of retaining is disk and the failure mode
59
+ * of dropping is a restore from the wrong dump with nothing to go back to.
60
+ *
61
+ * `nodeOffloadEnabled` (#352, epic #345) decides whether `db.backup.run` may be
62
+ * claimed by a WORKER NODE at all. DEFAULT FALSE, and it is deliberately a
63
+ * SECOND switch rather than a reuse of `nodes.jobSecretBrokerEnabled`, because
64
+ * the two answer different questions and a deployment can genuinely want one
65
+ * without the other:
66
+ *
67
+ * - `nodes.jobSecretBrokerEnabled` — MAY THE BROKER ISSUE ANYTHING AT ALL?
68
+ * A statement about the fleet: are these machines inside the trust
69
+ * boundary for short-lived credentials of any kind?
70
+ * - `databaseBackup.nodeOffloadEnabled` — MAY *THIS* TYPE LEAVE THE SERVER?
71
+ * A statement about one workload: is dumping the whole database on a
72
+ * machine that is not the API server what this deployment wants, given
73
+ * that the node needs a network route to PostgreSQL and the archive's
74
+ * bytes will cross whatever network sits between them?
75
+ *
76
+ * Collapsing them would mean enabling brokering for any future type — a
77
+ * fork's own `nodeSecretBroker` — silently enables shipping the database
78
+ * dump off-box too, which is not a decision anybody made. Both must be true,
79
+ * AND the broker must report itself usable, before the type is offered to a
80
+ * node; see `NodesService.nodeEligibleTypes`. Off (either one) means the type
81
+ * is withheld from the claim and the in-process worker takes the backup, which
82
+ * is exactly what happened before node offload existed.
83
+ *
84
+ * `storageProvider` CARRIES NO `.min(1)`, AND ITS DEFAULT IS THE EMPTY STRING
85
+ * (#373, epic #372). Empty is the one spelling of "unset" — the same decision
86
+ * the `storage` namespace below makes and for the same reason; it is not
87
+ * nullable and not optional-in-storage, so no consumer ever has to ask "absent,
88
+ * or empty?" and get two answers. Empty means "whatever provider is active",
89
+ * which is the only default a template repository can ship honestly: a literal
90
+ * would have to be a guess at somebody else's deployment, and
91
+ * `isUsableStorage Provider` (`db-backup/db-backup-storage.ts`) turns a disagreement with the
92
+ * live `storage.provider` into a loud 400. Shipping `'s3'` here meant every
93
+ * deployment that selected R2 failed EVERY backup on a value nobody chose —
94
+ * a default the operator never typed must not be able to redirect or block
95
+ * their backups. What did NOT change is the check: a value an operator DID
96
+ * type must still equal the active provider exactly, because a backup landing
97
+ * somewhere other than where the settings page says it lands is only ever
98
+ * discovered during a restore. The bound stays 64 — a provider id, not prose —
99
+ * and the comparison trims, so stored whitespace is still "unset".
100
+ *
101
+ * @stability stable
102
+ */
103
+ export const systemDatabaseBackupSchema = z.object({
104
+ /** Enabled. */
105
+ enabled: z.boolean(),
106
+ /** Frequency. */
107
+ frequency: z.enum(BACKUP_FREQUENCIES),
108
+ /** Day of week. */
109
+ dayOfWeek: z.number().int().min(0).max(6),
110
+ /** Day of month. */
111
+ dayOfMonth: z.number().int().min(1).max(28),
112
+ /** Time of day: 24-hour `HH:MM`, zero-padded. */
113
+ timeOfDay: z
114
+ .string()
115
+ .regex(BACKUP_TIME_OF_DAY_PATTERN, 'Expected a 24-hour HH:MM time'),
116
+ /** Timezone. */
117
+ timezone: z.string().min(1).max(64),
118
+ /** Retention count. */
119
+ retentionCount: z.number().int().min(1).max(365),
120
+ /** Cron expression; read only when `frequency` is `cron`. */
121
+ cron: backupCronSchema.optional(),
122
+ /** Retention policy; `retentionCount` is the alias of `retention.count`. */
123
+ retention: backupRetentionSchema.optional(),
124
+ /**
125
+ * NO `.min(1)`: the empty string is the one spelling of "unset", and it is
126
+ * the SHIPPED DEFAULT. See the block comment above.
127
+ */
128
+ storageProvider: z.string().max(64),
129
+ /** Run stale minutes. */
130
+ runStaleMinutes: z.number().int().min(1).max(10080),
131
+ /** Compression level. */
132
+ compressionLevel: z.number().int().min(0).max(9),
133
+ /** Restore rollback mode. */
134
+ restoreRollbackMode: z.enum(['retain_database', 'drop_database']),
135
+ /** Old database retention hours. */
136
+ oldDatabaseRetentionHours: z.number().int().min(1).max(8760),
137
+ /** Node offload enabled. */
138
+ nodeOffloadEnabled: z.boolean(),
139
+ });
140
+ /**
141
+ * The stored partial of `databaseBackup`: every field optional, every bound
142
+ * the stored schema's.
143
+ *
144
+ * @stability stable
145
+ */
146
+ export const systemDatabaseBackupPatchSchema = z.object({
147
+ /** Enabled. */
148
+ enabled: z.boolean().optional(),
149
+ /** Frequency. */
150
+ frequency: z.enum(BACKUP_FREQUENCIES).optional(),
151
+ /** Day of week. */
152
+ dayOfWeek: z.number().int().min(0).max(6).optional(),
153
+ /** Day of month. */
154
+ dayOfMonth: z.number().int().min(1).max(28).optional(),
155
+ /** Time of day: 24-hour `HH:MM`, zero-padded. */
156
+ timeOfDay: z
157
+ .string()
158
+ .regex(BACKUP_TIME_OF_DAY_PATTERN, 'Expected a 24-hour HH:MM time')
159
+ .optional(),
160
+ /** Timezone. */
161
+ timezone: z.string().min(1).max(64).optional(),
162
+ /** Retention count. */
163
+ retentionCount: z.number().int().min(1).max(365).optional(),
164
+ /** Cron expression; read only when `frequency` is `cron`. */
165
+ cron: backupCronSchema.optional(),
166
+ /** Retention policy; `retentionCount` is the alias of `retention.count`. */
167
+ retention: backupRetentionSchema.optional(),
168
+ /**
169
+ * No `.min(1)`, matching `systemDatabaseBackupSchema`: `""` CLEARS the pin
170
+ * back to "whatever provider is active" (absent is how a caller says "leave
171
+ * it alone"), which is the only way an operator can un-pin through the API.
172
+ * Rejecting `""` here would make the shipped default unreachable by the very
173
+ * endpoint that edits it.
174
+ */
175
+ storageProvider: z.string().max(64).optional(),
176
+ /** Run stale minutes. */
177
+ runStaleMinutes: z.number().int().min(1).max(10080).optional(),
178
+ /** Compression level. */
179
+ compressionLevel: z.number().int().min(0).max(9).optional(),
180
+ /** What a restore does with the database it displaced. */
181
+ restoreRollbackMode: z.enum(['retain_database', 'drop_database']).optional(),
182
+ /** Old database retention hours. */
183
+ oldDatabaseRetentionHours: z.number().int().min(1).max(8760).optional(),
184
+ /** Node offload enabled. */
185
+ nodeOffloadEnabled: z.boolean().optional(),
186
+ });
187
+ /**
188
+ * The `databaseBackup` branch of a `PUT /api/system-settings` body.
189
+ *
190
+ * @stability stable
191
+ */
192
+ export const databaseBackupSettingsSchema = z.object({
193
+ /** Enabled. */
194
+ enabled: z.boolean(),
195
+ /** Frequency. */
196
+ frequency: z.enum(BACKUP_FREQUENCIES),
197
+ /** Day of week. */
198
+ dayOfWeek: z.number().int().min(0).max(6),
199
+ /** Day of month. */
200
+ dayOfMonth: z.number().int().min(1).max(28),
201
+ /** Time of day: 24-hour `HH:MM`, zero-padded. */
202
+ timeOfDay: z
203
+ .string()
204
+ .regex(BACKUP_TIME_OF_DAY_PATTERN, 'Expected a 24-hour HH:MM time'),
205
+ /** Timezone. */
206
+ timezone: z.string().min(1).max(64),
207
+ /** Retention count. */
208
+ retentionCount: z.number().int().min(1).max(365),
209
+ /** Cron expression; read only when `frequency` is `cron`. */
210
+ cron: backupCronSchema.optional(),
211
+ /** Retention policy; `retentionCount` is the alias of `retention.count`. */
212
+ retention: backupRetentionSchema.optional(),
213
+ /**
214
+ * No `.min(1)`: `""` is the one spelling of "unset" and is the SHIPPED
215
+ * DEFAULT — it means "whatever provider `storage.provider` names right now".
216
+ * A non-empty value must equal the active provider or the write is a loud
217
+ * 400 (`DatabaseBackupRunnerService.assertStorageProviderUsable`); that check
218
+ * is unchanged. Only the default moved, because a provider id the operator
219
+ * never chose must not be able to redirect or block their backups. See
220
+ * `common/schemas/settings.schema.ts` for the full argument.
221
+ */
222
+ storageProvider: z.string().max(64),
223
+ /** Run stale minutes. */
224
+ runStaleMinutes: z.number().int().min(1).max(10080),
225
+ /** Compression level. */
226
+ compressionLevel: z.number().int().min(0).max(9),
227
+ /** Restore rollback mode. */
228
+ restoreRollbackMode: z.enum(['retain_database', 'drop_database']),
229
+ /** Old database retention hours. */
230
+ oldDatabaseRetentionHours: z.number().int().min(1).max(8760),
231
+ /** Node offload enabled. */
232
+ nodeOffloadEnabled: z.boolean(),
233
+ });
234
+ /**
235
+ * The `databaseBackup` branch of a `PATCH /api/system-settings` body: field by field optional.
236
+ *
237
+ * @stability stable
238
+ */
239
+ export const databaseBackupSettingsPatchSchema = z.object({
240
+ /** Enabled. */
241
+ enabled: z.boolean().optional(),
242
+ /** Frequency. */
243
+ frequency: z.enum(BACKUP_FREQUENCIES).optional(),
244
+ /** Day of week. */
245
+ dayOfWeek: z.number().int().min(0).max(6).optional(),
246
+ /** Day of month. */
247
+ dayOfMonth: z.number().int().min(1).max(28).optional(),
248
+ /** Time of day: 24-hour `HH:MM`, zero-padded. */
249
+ timeOfDay: z
250
+ .string()
251
+ .regex(BACKUP_TIME_OF_DAY_PATTERN, 'Expected a 24-hour HH:MM time')
252
+ .optional(),
253
+ /** Timezone. */
254
+ timezone: z.string().min(1).max(64).optional(),
255
+ /** Retention count. */
256
+ retentionCount: z.number().int().min(1).max(365).optional(),
257
+ /** Cron expression; read only when `frequency` is `cron`. */
258
+ cron: backupCronSchema.optional(),
259
+ /** Retention policy; `retentionCount` is the alias of `retention.count`. */
260
+ retention: backupRetentionSchema.optional(),
261
+ /**
262
+ * No `.min(1)`, matching the PUT schema above: `""` CLEARS the pin back
263
+ * to "whatever provider is active", absent leaves it alone. Rejecting
264
+ * `""` would make the shipped default unreachable by the endpoint that
265
+ * edits it.
266
+ */
267
+ storageProvider: z.string().max(64).optional(),
268
+ /** Run stale minutes. */
269
+ runStaleMinutes: z.number().int().min(1).max(10080).optional(),
270
+ /** Compression level. */
271
+ compressionLevel: z.number().int().min(0).max(9).optional(),
272
+ /** What a restore does with the database it displaced. */
273
+ restoreRollbackMode: z.enum(['retain_database', 'drop_database']).optional(),
274
+ /** Old database retention hours. */
275
+ oldDatabaseRetentionHours: z.number().int().min(1).max(8760).optional(),
276
+ /** Node offload enabled. */
277
+ nodeOffloadEnabled: z.boolean().optional(),
278
+ });
279
+ /**
280
+ * The `databaseBackup` branch of the `GET /api/system-settings` response.
281
+ *
282
+ * @stability stable
283
+ */
284
+ export const databaseBackupResponseSchema = z.object({
285
+ /** Enabled. */
286
+ enabled: z.boolean(),
287
+ /** Frequency. */
288
+ frequency: z.enum(BACKUP_FREQUENCIES),
289
+ /** Day of week. */
290
+ dayOfWeek: z.number(),
291
+ /** Day of month. */
292
+ dayOfMonth: z.number(),
293
+ /** Time of day. */
294
+ timeOfDay: z.string(),
295
+ /** Timezone. */
296
+ timezone: z.string(),
297
+ /** Retention count. */
298
+ retentionCount: z.number(),
299
+ /** Cron expression; read only when `frequency` is `cron`. */
300
+ cron: backupCronSchema.optional(),
301
+ /** Retention policy; `retentionCount` is the alias of `retention.count`. */
302
+ retention: backupRetentionSchema.optional(),
303
+ /** Storage provider. */
304
+ storageProvider: z.string(),
305
+ /** Run stale minutes. */
306
+ runStaleMinutes: z.number(),
307
+ /** Compression level. */
308
+ compressionLevel: z.number(),
309
+ /** Restore rollback mode. */
310
+ restoreRollbackMode: z.enum(['retain_database', 'drop_database']),
311
+ /** Old database retention hours. */
312
+ oldDatabaseRetentionHours: z.number(),
313
+ /** Node offload enabled. */
314
+ nodeOffloadEnabled: z.boolean(),
315
+ });
316
+ //# sourceMappingURL=settings-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-schemas.js","sourceRoot":"","sources":["../../../src/db-backup/settings-schemas.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,4EAA4E;AAC5E,uBAAuB;AACvB,gFAAgF;AAChF,EAAE;AACF,gDAAgD;AAChD,8EAA8E;AAC9E,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,+EAA+E;AAC/E,6EAA6E;AAC7E,iCAAiC;AACjC,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,2DAA2D;IAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,sEAAsE;IACtE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC,CAAC;AASH;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,EAAE;KACR,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,mBAAmB,EAAE,6DAA6D,CAAC,CAAC;AAE7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,eAAe;IACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,iBAAiB;IACjB,SAAS,EAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAwD;IAC7F,mBAAmB;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,oBAAoB;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3C,iDAAiD;IACjD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,KAAK,CAAC,0BAA0B,EAAE,+BAA+B,CAAC;IACrE,gBAAgB;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,uBAAuB;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChD,6DAA6D;IAC7D,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,4EAA4E;IAC5E,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC3C;;;OAGG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,yBAAyB;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACnD,yBAAyB;IACzB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,6BAA6B;IAC7B,mBAAmB,EAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAmE;IACpI,oCAAoC;IACpC,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5D,4BAA4B;IAC5B,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE;CAChC,CAAC,CAAC;AAWH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,eAAe;IACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,iBAAiB;IACjB,SAAS,EAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAwD,CAAC,QAAQ,EAAE;IACxG,mBAAmB;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,oBAAoB;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,iDAAiD;IACjD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,KAAK,CAAC,0BAA0B,EAAE,+BAA+B,CAAC;SAClE,QAAQ,EAAE;IACb,gBAAgB;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,uBAAuB;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3D,6DAA6D;IAC7D,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,4EAA4E;IAC5E,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC3C;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,yBAAyB;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC9D,yBAAyB;IACzB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,0DAA0D;IAC1D,mBAAmB,EAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAmE,CAAC,QAAQ,EAAE;IAC/I,oCAAoC;IACpC,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACvE,4BAA4B;IAC5B,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,eAAe;IACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,iBAAiB;IACjB,SAAS,EAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAwD;IAC7F,mBAAmB;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,oBAAoB;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3C,iDAAiD;IACjD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,KAAK,CAAC,0BAA0B,EAAE,+BAA+B,CAAC;IACrE,gBAAgB;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,uBAAuB;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChD,6DAA6D;IAC7D,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,4EAA4E;IAC5E,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC3C;;;;;;;;OAQG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,yBAAyB;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACnD,yBAAyB;IACzB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,6BAA6B;IAC7B,mBAAmB,EAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAmE;IACpI,oCAAoC;IACpC,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5D,4BAA4B;IAC5B,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE;CAChC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,eAAe;IACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,iBAAiB;IACjB,SAAS,EAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAwD,CAAC,QAAQ,EAAE;IACxG,mBAAmB;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,oBAAoB;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,iDAAiD;IACjD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,KAAK,CAAC,0BAA0B,EAAE,+BAA+B,CAAC;SAClE,QAAQ,EAAE;IACb,gBAAgB;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,uBAAuB;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3D,6DAA6D;IAC7D,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,4EAA4E;IAC5E,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC3C;;;;;OAKG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,yBAAyB;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC9D,yBAAyB;IACzB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,0DAA0D;IAC1D,mBAAmB,EAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAmE,CAAC,QAAQ,EAAE;IAC/I,oCAAoC;IACpC,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACvE,4BAA4B;IAC5B,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,eAAe;IACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,iBAAiB;IACjB,SAAS,EAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAwD;IAC7F,mBAAmB;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,oBAAoB;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,mBAAmB;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,gBAAgB;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,uBAAuB;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,6DAA6D;IAC7D,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,4EAA4E;IAC5E,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC3C,wBAAwB;IACxB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,yBAAyB;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,yBAAyB;IACzB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,6BAA6B;IAC7B,mBAAmB,EAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAmE;IACpI,oCAAoC;IACpC,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE;IACrC,4BAA4B;IAC5B,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE;CAChC,CAAC,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * The pattern every email transport id must match: a lower-case letter, then
3
+ * letters, digits and hyphens, 2 to 48 characters. The same pattern as every
4
+ * pluggable id (`PLUGGABLE_ID_PATTERN` of `@marinoscar/platform-contract/settings`).
5
+ * An id is the key its settings are stored under, so it is permanent once a
6
+ * row exists.
7
+ *
8
+ * @stability experimental
9
+ */
10
+ export declare const EMAIL_TRANSPORT_ID_PATTERN: RegExp;
11
+ /**
12
+ * The transports the platform SHIPS: Amazon SES (API) and SMTP. Not a closed
13
+ * set: an app registers more with `registerEmailTransport` and its id is any
14
+ * {@link EMAIL_TRANSPORT_ID_PATTERN} string. Use this list for defaults,
15
+ * labels and the legacy flat fields, never to validate an id.
16
+ *
17
+ * @stability experimental
18
+ */
19
+ export declare const BUILTIN_EMAIL_PROVIDER_KINDS: readonly ["ses", "smtp"];
20
+ /**
21
+ * The built-in transports.
22
+ *
23
+ * @deprecated Use `BUILTIN_EMAIL_PROVIDER_KINDS`. The list is no longer the
24
+ * set of valid transports: any registered email transport id is one.
25
+ * @stability stable
26
+ */
27
+ export declare const EMAIL_PROVIDER_KINDS: readonly ["ses", "smtp"];
28
+ /**
29
+ * One of {@link BUILTIN_EMAIL_PROVIDER_KINDS}.
30
+ *
31
+ * @stability experimental
32
+ */
33
+ export type BuiltinEmailProviderKind = (typeof BUILTIN_EMAIL_PROVIDER_KINDS)[number];
34
+ /**
35
+ * A configured transport: the id of a registered email transport. A plain
36
+ * string since transports became pluggable; the built-ins are
37
+ * `BuiltinEmailProviderKind`.
38
+ *
39
+ * @stability stable
40
+ */
41
+ export type EmailProviderKind = string;
42
+ /**
43
+ * The names of the flat fields the `email` row stored before transports had a
44
+ * settings record of their own. They are a deprecated READ VIEW of the
45
+ * built-in transports' settings (`transports.ses`, `transports.smtp`) and are
46
+ * still accepted on `PUT /api/email-settings` as aliases.
47
+ *
48
+ * @stability experimental
49
+ */
50
+ export declare const LEGACY_EMAIL_FLAT_FIELDS: readonly ["sesRegion", "sesAccessKeyId", "smtpHost", "smtpPort", "smtpUseTls", "smtpUsername"];
51
+ /**
52
+ * Where one legacy flat field lives now.
53
+ *
54
+ * @stability experimental
55
+ */
56
+ export interface LegacyEmailFieldTarget {
57
+ /** The built-in transport that owns the setting. */
58
+ transport: BuiltinEmailProviderKind;
59
+ /** The name of the setting inside `transports.<transport>`. */
60
+ setting: string;
61
+ }
62
+ /**
63
+ * Where each legacy flat field lives now: the built-in transport that owns it
64
+ * and the name of the setting inside `transports.<id>`.
65
+ *
66
+ * @stability experimental
67
+ */
68
+ export declare const LEGACY_EMAIL_FLAT_FIELD_TARGETS: Readonly<Record<(typeof LEGACY_EMAIL_FLAT_FIELDS)[number], LegacyEmailFieldTarget>>;
69
+ /**
70
+ * Default SMTP submission port when the admin has not chosen one (RFC 6409).
71
+ *
72
+ * @stability stable
73
+ */
74
+ export declare const DEFAULT_SMTP_PORT = 587;
75
+ /**
76
+ * The port on which SMTP speaks TLS from the first byte (implicit TLS), rather
77
+ * than upgrading with STARTTLS.
78
+ *
79
+ * @stability stable
80
+ */
81
+ export declare const IMPLICIT_TLS_SMTP_PORT = 465;
82
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/email/constants.ts"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,QAA2B,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,0BAA2B,CAAC;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,0BAA+B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,gGAO3B,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,SAAS,EAAE,wBAAwB,CAAC;IACpC,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAO/H,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC"}
@@ -0,0 +1,79 @@
1
+ // =============================================================================
2
+ // Email: the zod-free constants of the wire contract (issue #737, PP-8.4; transports: PP-14.8)
3
+ // =============================================================================
4
+ //
5
+ // Email transports are PLUGGABLE (PP-14.8): an app or package registers more
6
+ // with `registerEmailTransport` (`@marinoscar/platform-api/email`). The two
7
+ // below are the transports the platform ships.
8
+ // =============================================================================
9
+ /**
10
+ * The pattern every email transport id must match: a lower-case letter, then
11
+ * letters, digits and hyphens, 2 to 48 characters. The same pattern as every
12
+ * pluggable id (`PLUGGABLE_ID_PATTERN` of `@marinoscar/platform-contract/settings`).
13
+ * An id is the key its settings are stored under, so it is permanent once a
14
+ * row exists.
15
+ *
16
+ * @stability experimental
17
+ */
18
+ export const EMAIL_TRANSPORT_ID_PATTERN = /^[a-z][a-z0-9-]{1,47}$/;
19
+ /**
20
+ * The transports the platform SHIPS: Amazon SES (API) and SMTP. Not a closed
21
+ * set: an app registers more with `registerEmailTransport` and its id is any
22
+ * {@link EMAIL_TRANSPORT_ID_PATTERN} string. Use this list for defaults,
23
+ * labels and the legacy flat fields, never to validate an id.
24
+ *
25
+ * @stability experimental
26
+ */
27
+ export const BUILTIN_EMAIL_PROVIDER_KINDS = ['ses', 'smtp'];
28
+ /**
29
+ * The built-in transports.
30
+ *
31
+ * @deprecated Use `BUILTIN_EMAIL_PROVIDER_KINDS`. The list is no longer the
32
+ * set of valid transports: any registered email transport id is one.
33
+ * @stability stable
34
+ */
35
+ export const EMAIL_PROVIDER_KINDS = BUILTIN_EMAIL_PROVIDER_KINDS;
36
+ /**
37
+ * The names of the flat fields the `email` row stored before transports had a
38
+ * settings record of their own. They are a deprecated READ VIEW of the
39
+ * built-in transports' settings (`transports.ses`, `transports.smtp`) and are
40
+ * still accepted on `PUT /api/email-settings` as aliases.
41
+ *
42
+ * @stability experimental
43
+ */
44
+ export const LEGACY_EMAIL_FLAT_FIELDS = [
45
+ 'sesRegion',
46
+ 'sesAccessKeyId',
47
+ 'smtpHost',
48
+ 'smtpPort',
49
+ 'smtpUseTls',
50
+ 'smtpUsername',
51
+ ];
52
+ /**
53
+ * Where each legacy flat field lives now: the built-in transport that owns it
54
+ * and the name of the setting inside `transports.<id>`.
55
+ *
56
+ * @stability experimental
57
+ */
58
+ export const LEGACY_EMAIL_FLAT_FIELD_TARGETS = {
59
+ sesRegion: { transport: 'ses', setting: 'region' },
60
+ sesAccessKeyId: { transport: 'ses', setting: 'accessKeyId' },
61
+ smtpHost: { transport: 'smtp', setting: 'host' },
62
+ smtpPort: { transport: 'smtp', setting: 'port' },
63
+ smtpUseTls: { transport: 'smtp', setting: 'useTls' },
64
+ smtpUsername: { transport: 'smtp', setting: 'username' },
65
+ };
66
+ /**
67
+ * Default SMTP submission port when the admin has not chosen one (RFC 6409).
68
+ *
69
+ * @stability stable
70
+ */
71
+ export const DEFAULT_SMTP_PORT = 587;
72
+ /**
73
+ * The port on which SMTP speaks TLS from the first byte (implicit TLS), rather
74
+ * than upgrading with STARTTLS.
75
+ *
76
+ * @stability stable
77
+ */
78
+ export const IMPLICIT_TLS_SMTP_PORT = 465;
79
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/email/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+FAA+F;AAC/F,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,+CAA+C;AAC/C,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAkBjE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,cAAc;CACN,CAAC;AAcX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAwF;IAClI,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;IAClD,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE;IAC5D,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAChD,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAChD,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;IACpD,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;CACzD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { BUILTIN_EMAIL_PROVIDER_KINDS, DEFAULT_SMTP_PORT, EMAIL_PROVIDER_KINDS, EMAIL_TRANSPORT_ID_PATTERN, IMPLICIT_TLS_SMTP_PORT, LEGACY_EMAIL_FLAT_FIELDS, LEGACY_EMAIL_FLAT_FIELD_TARGETS, } from './constants.js';
2
+ export type { BuiltinEmailProviderKind, EmailProviderKind, LegacyEmailFieldTarget } from './constants.js';
3
+ export { DEFAULT_EMAIL_SETTINGS, EMAIL_SETTINGS_CARRIES_NO_SECRET, EMAIL_SETTINGS_RESPONSE_CARRIES_NO_SECRET, credentialStatusSchema, emailSettingsResponseSchema, emailSettingsSchema, emailTransportIdSchema, emailTransportSettingsSchema, emailTransportsPatchSchema, emailTransportsSchema, testEmailResultSchema, updateEmailSettingsSchema, } from './schemas.js';
4
+ export type { EmailCredentialStatusDto, EmailProviderKindEnum, EmailSecretFieldName, EmailSettings, EmailSettingsCarriesNoSecret, EmailSettingsResponse, EmailSettingsResponseCarriesNoSecret, TestEmailResult, UpdateEmailSettingsInput, } from './schemas.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/email/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,yCAAyC,EACzC,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,4BAA4B,EAC5B,qBAAqB,EACrB,oCAAoC,EACpC,eAAe,EACf,wBAAwB,GACzB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ // `@marinoscar/platform-contract/email`: the wire contract of the email
2
+ // slice's admin routes (issue #737, PP-8.4): the stored settings, the PUT
3
+ // body, the GET/PUT response, the test-send result and the built-in transport
4
+ // list (the transport itself is an open id, PP-14.8). constants.ts is zod-free. Documented in ./README.md. Explicit named
5
+ // exports only.
6
+ export { BUILTIN_EMAIL_PROVIDER_KINDS, DEFAULT_SMTP_PORT, EMAIL_PROVIDER_KINDS, EMAIL_TRANSPORT_ID_PATTERN, IMPLICIT_TLS_SMTP_PORT, LEGACY_EMAIL_FLAT_FIELDS, LEGACY_EMAIL_FLAT_FIELD_TARGETS, } from './constants.js';
7
+ export { DEFAULT_EMAIL_SETTINGS, EMAIL_SETTINGS_CARRIES_NO_SECRET, EMAIL_SETTINGS_RESPONSE_CARRIES_NO_SECRET, credentialStatusSchema, emailSettingsResponseSchema, emailSettingsSchema, emailTransportIdSchema, emailTransportSettingsSchema, emailTransportsPatchSchema, emailTransportsSchema, testEmailResultSchema, updateEmailSettingsSchema, } from './schemas.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/email/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,0EAA0E;AAC1E,8EAA8E;AAC9E,0HAA0H;AAC1H,gBAAgB;AAEhB,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,yCAAyC,EACzC,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,cAAc,CAAC"}