appos 0.3.5-0 → 0.3.7-0

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 (242) hide show
  1. package/dist/bin/main.mjs +3 -3
  2. package/dist/bin/youch-handler-D7REmh8Z.mjs +2 -0
  3. package/dist/exports/api/adapter-C2mMJKvG.mjs +1504 -0
  4. package/dist/exports/api/{auth-schema.mjs → auth-schema-CON4yFFY.mjs} +2 -3
  5. package/dist/exports/api/bun-sqlite-dialect-CPpPZa23.mjs +155 -0
  6. package/dist/exports/{cli/_virtual/rolldown_runtime.mjs → api/chunk-CyXqrcp_.mjs} +14 -1
  7. package/dist/exports/api/conditions-DjBAWfiK.mjs +116 -0
  8. package/dist/exports/api/dialect-CUUD24Ge.mjs +72 -0
  9. package/dist/exports/api/env-CwT3zhez.mjs +1 -0
  10. package/dist/exports/api/esm-_hkVMulx.mjs +15816 -0
  11. package/dist/exports/api/event-BHFSE6hY.mjs +20983 -0
  12. package/dist/exports/api/extract-blob-metadata-BMgUEPcW.mjs +4 -0
  13. package/dist/exports/api/extract-blob-metadata-_9RUEwoU.mjs +9818 -0
  14. package/dist/exports/api/generate-image-variant-DOIzj1wJ.mjs +4 -0
  15. package/dist/exports/api/generate-image-variant-DxOPoGAk.mjs +118 -0
  16. package/dist/exports/api/generate-preview-CvTFuq58.mjs +160 -0
  17. package/dist/exports/api/generate-preview-Dk3coswZ.mjs +4 -0
  18. package/dist/exports/api/index.d.mts +7347 -20
  19. package/dist/exports/api/index.mjs +146856 -18
  20. package/dist/exports/api/kysely-adapter-CmP2TbkS.mjs +296 -0
  21. package/dist/exports/api/memory-adapter-BzhRhLFK.mjs +212 -0
  22. package/dist/exports/api/node-sqlite-dialect-Bl5suBxl.mjs +155 -0
  23. package/dist/exports/api/orm-CMqufD21.mjs +153690 -0
  24. package/dist/exports/api/orm-DXqYuKvB.d.mts +11 -0
  25. package/dist/exports/api/orm.d.mts +2 -11
  26. package/dist/exports/api/orm.mjs +4 -42
  27. package/dist/exports/api/pdf-YxB2Hm1p.mjs +25822 -0
  28. package/dist/exports/api/purge-attachment-Cf6KH2Jv.mjs +34 -0
  29. package/dist/exports/api/purge-attachment-DIuil7ps.mjs +4 -0
  30. package/dist/exports/{cli/api/workflows/purge-audit-logs.mjs → api/purge-audit-logs-z6j_Pu47.mjs} +3 -3
  31. package/dist/exports/{cli/api/workflows/purge-unattached-blobs.mjs → api/purge-unattached-blobs-B0TfY5Hk.mjs} +1 -1
  32. package/dist/exports/api/react-BYhV5bYt.mjs +1131 -0
  33. package/dist/exports/api/server.node-DyVrQ6cz.mjs +19298 -0
  34. package/dist/exports/api/table-6bTIEqON.mjs +2636 -0
  35. package/dist/exports/api/{workflows/track-db-changes.mjs → track-db-changes-BysaV6nN.mjs} +14 -14
  36. package/dist/exports/api/{workflow.mjs → workflow-BuSWHcX-.mjs} +121 -10
  37. package/dist/exports/api/workflows/auth-schema-BFve3hgZ.mjs +2813 -0
  38. package/dist/exports/api/workflows/{_virtual/rolldown_runtime.mjs → chunk-B36mNPO4.mjs} +5 -1
  39. package/dist/exports/api/workflows/extract-blob-metadata-BcWKvY2K.mjs +9818 -0
  40. package/dist/exports/{cli/api/workflows/generate-image-variant.mjs → api/workflows/generate-image-variant-BAFvL_zV.mjs} +20 -20
  41. package/dist/exports/{cli/api/workflows/generate-preview.mjs → api/workflows/generate-preview-BjlIVYYp.mjs} +6 -6
  42. package/dist/exports/api/workflows/index.d.mts +2011 -1
  43. package/dist/exports/api/workflows/index.mjs +2 -1
  44. package/dist/exports/api/workflows/pdf-DUB8zyIc.mjs +25822 -0
  45. package/dist/exports/{cli/api/workflows/purge-attachment.mjs → api/workflows/purge-attachment-k_sdxTPY.mjs} +3 -3
  46. package/dist/exports/api/workflows/{purge-audit-logs.mjs → purge-audit-logs-zCyWj4Mw.mjs} +12 -3
  47. package/dist/exports/api/workflows/{purge-unattached-blobs.mjs → purge-unattached-blobs-CdsuFAeW.mjs} +1 -1
  48. package/dist/exports/api/workflows/track-db-changes-CiKaI9gT.mjs +20943 -0
  49. package/dist/exports/api/workflows/track-db-changes-DEWQYryO.mjs +4 -0
  50. package/dist/exports/{cli/api/workflow.mjs → api/workflows/workflow-BjM2xCa6.mjs} +23 -3
  51. package/dist/exports/api/workflows/zod-Br0enFWK.mjs +12333 -0
  52. package/dist/exports/api/zod-CdrJdBtV.mjs +12571 -0
  53. package/dist/exports/cli/auth-schema-CNuOqPi-.mjs +2813 -0
  54. package/dist/exports/{api/_virtual/rolldown_runtime.mjs → cli/chunk-B36mNPO4.mjs} +5 -1
  55. package/dist/exports/cli/extract-blob-metadata-CV1Ke90d.mjs +9818 -0
  56. package/dist/exports/{api/workflows/generate-image-variant.mjs → cli/generate-image-variant-CM1BrVvZ.mjs} +20 -20
  57. package/dist/exports/{api/workflows/generate-preview.mjs → cli/generate-preview-DdHQ3ukz.mjs} +6 -6
  58. package/dist/exports/cli/index.d.mts +2142 -2
  59. package/dist/exports/cli/index.mjs +41 -1
  60. package/dist/exports/cli/pdf-CLUPEIdT.mjs +25822 -0
  61. package/dist/exports/{api/workflows/purge-attachment.mjs → cli/purge-attachment-Dc_J74dG.mjs} +3 -3
  62. package/dist/exports/cli/purge-audit-logs-DFhWh-Bx.mjs +56 -0
  63. package/dist/exports/cli/purge-unattached-blobs-C1MRlM_2.mjs +46 -0
  64. package/dist/exports/cli/track-db-changes-CfneOF2_.mjs +20943 -0
  65. package/dist/exports/{api/workflows/api/workflow.mjs → cli/workflow-DSbbXBMt.mjs} +23 -3
  66. package/dist/exports/cli/zod-7q0_Mtnn.mjs +12333 -0
  67. package/dist/exports/tests/api.d.mts +7354 -5
  68. package/dist/exports/tests/api.mjs +79 -1
  69. package/dist/exports/tests/auth-schema-B_qHPoa4.mjs +1 -0
  70. package/dist/exports/tests/chunk-Cii4FAhs.mjs +1 -0
  71. package/dist/exports/tests/conditions-BeWxRN_Z.mjs +1 -0
  72. package/dist/exports/tests/constants-D_m07gCJ.mjs +1 -0
  73. package/dist/exports/tests/dist-Cx2HEBOB.mjs +296 -0
  74. package/dist/exports/tests/dist-DnACOvNW.mjs +7 -0
  75. package/dist/exports/tests/extract-blob-metadata-6xQrarjB.mjs +169 -0
  76. package/dist/exports/tests/generate-image-variant-KQITLmCx.mjs +1 -0
  77. package/dist/exports/tests/generate-preview-YnujQo5I.mjs +1 -0
  78. package/dist/exports/tests/mock-BvoS23fi.mjs +1 -0
  79. package/dist/exports/tests/mock.mjs +1 -1
  80. package/dist/exports/tests/pdf-lZ-as2o7.mjs +13 -0
  81. package/dist/exports/tests/purge-attachment-DTSmCl-z.mjs +1 -0
  82. package/dist/exports/tests/purge-audit-logs-D0_UUhN2.mjs +1 -0
  83. package/dist/exports/tests/purge-unattached-blobs-IENmSB8K.mjs +1 -0
  84. package/dist/exports/tests/react.mjs +6 -1
  85. package/dist/exports/tests/setup.d.mts +1 -1
  86. package/dist/exports/tests/setup.mjs +34 -1
  87. package/dist/exports/tests/table-CmPSf_pE.mjs +1 -0
  88. package/dist/exports/tests/track-db-changes-Td9Q3DLd.mjs +1 -0
  89. package/dist/exports/tests/{api/workflow.mjs → workflow-BWRWyC83.mjs} +1 -1
  90. package/dist/exports/tests/youch-handler-efUxKCCs.mjs +1 -0
  91. package/dist/exports/tests/zod-CkJO9qpV.mjs +23 -0
  92. package/dist/exports/vendors/date.js +13236 -1
  93. package/dist/exports/vendors/toolkit.js +2206 -1
  94. package/dist/exports/vendors/zod.js +12344 -1
  95. package/dist/exports/vite/index.d.mts +1 -1
  96. package/dist/exports/vite/index.mjs +26 -1
  97. package/dist/exports/vite/lib-B0s0q6aX.mjs +382 -0
  98. package/dist/exports/vite/lib-BkrbWMaV.mjs +1 -0
  99. package/dist/exports/web/browser-ponyfill-DxTJMXNq.js +443 -0
  100. package/dist/exports/web/chunk-DksrlJLg.js +49 -0
  101. package/dist/exports/web/index.d.ts +2546 -2
  102. package/dist/exports/web/index.js +9295 -6
  103. package/dist/exports/web/plugin-DqTFWG7p.js +250 -0
  104. package/package.json +1 -7
  105. package/dist/bin/youch-handler-DrYdbUhe.mjs +0 -2
  106. package/dist/exports/api/app-context.d.mts +0 -115
  107. package/dist/exports/api/app-context.mjs +0 -24
  108. package/dist/exports/api/auth-schema.d.mts +0 -4248
  109. package/dist/exports/api/auth.d.mts +0 -402
  110. package/dist/exports/api/auth.mjs +0 -188
  111. package/dist/exports/api/cache.d.mts +0 -44
  112. package/dist/exports/api/cache.mjs +0 -28
  113. package/dist/exports/api/config.d.mts +0 -28
  114. package/dist/exports/api/config.mjs +0 -72
  115. package/dist/exports/api/constants.mjs +0 -92
  116. package/dist/exports/api/container.d.mts +0 -210
  117. package/dist/exports/api/container.mjs +0 -49
  118. package/dist/exports/api/database.d.mts +0 -101
  119. package/dist/exports/api/database.mjs +0 -219
  120. package/dist/exports/api/event.d.mts +0 -235
  121. package/dist/exports/api/event.mjs +0 -236
  122. package/dist/exports/api/i18n.d.mts +0 -34
  123. package/dist/exports/api/i18n.mjs +0 -45
  124. package/dist/exports/api/instrumentation.d.mts +0 -7
  125. package/dist/exports/api/instrumentation.mjs +0 -40
  126. package/dist/exports/api/logger.d.mts +0 -21
  127. package/dist/exports/api/logger.mjs +0 -26
  128. package/dist/exports/api/mailer.d.mts +0 -70
  129. package/dist/exports/api/mailer.mjs +0 -37
  130. package/dist/exports/api/middleware/request-logger.d.mts +0 -24
  131. package/dist/exports/api/middleware.d.mts +0 -39
  132. package/dist/exports/api/middleware.mjs +0 -73
  133. package/dist/exports/api/openapi.d.mts +0 -271
  134. package/dist/exports/api/openapi.mjs +0 -507
  135. package/dist/exports/api/otel.d.mts +0 -40
  136. package/dist/exports/api/otel.mjs +0 -56
  137. package/dist/exports/api/redis.d.mts +0 -34
  138. package/dist/exports/api/redis.mjs +0 -41
  139. package/dist/exports/api/storage-schema.d.mts +0 -707
  140. package/dist/exports/api/storage-schema.mjs +0 -72
  141. package/dist/exports/api/storage.d.mts +0 -506
  142. package/dist/exports/api/storage.mjs +0 -833
  143. package/dist/exports/api/web/auth.mjs +0 -17
  144. package/dist/exports/api/workflow.d.mts +0 -250
  145. package/dist/exports/api/workflows/api/auth-schema.mjs +0 -373
  146. package/dist/exports/api/workflows/api/auth.d.mts +0 -379
  147. package/dist/exports/api/workflows/api/cache.d.mts +0 -44
  148. package/dist/exports/api/workflows/api/config.d.mts +0 -18
  149. package/dist/exports/api/workflows/api/container.d.mts +0 -167
  150. package/dist/exports/api/workflows/api/database.d.mts +0 -47
  151. package/dist/exports/api/workflows/api/event.d.mts +0 -68
  152. package/dist/exports/api/workflows/api/event.mjs +0 -126
  153. package/dist/exports/api/workflows/api/logger.d.mts +0 -21
  154. package/dist/exports/api/workflows/api/mailer.d.mts +0 -70
  155. package/dist/exports/api/workflows/api/orm.d.mts +0 -13
  156. package/dist/exports/api/workflows/api/redis.mjs +0 -3
  157. package/dist/exports/api/workflows/api/storage-schema.d.mts +0 -699
  158. package/dist/exports/api/workflows/api/storage.d.mts +0 -396
  159. package/dist/exports/api/workflows/api/workflow.d.mts +0 -24
  160. package/dist/exports/api/workflows/constants.mjs +0 -23
  161. package/dist/exports/api/workflows/extract-blob-metadata.mjs +0 -132
  162. package/dist/exports/api/workflows/generate-image-variant.d.mts +0 -63
  163. package/dist/exports/api/workflows/track-db-changes.d.mts +0 -72
  164. package/dist/exports/cli/api/auth-schema.mjs +0 -373
  165. package/dist/exports/cli/api/auth.d.mts +0 -379
  166. package/dist/exports/cli/api/cache.d.mts +0 -44
  167. package/dist/exports/cli/api/config.d.mts +0 -18
  168. package/dist/exports/cli/api/container.d.mts +0 -167
  169. package/dist/exports/cli/api/database.d.mts +0 -47
  170. package/dist/exports/cli/api/event.d.mts +0 -68
  171. package/dist/exports/cli/api/event.mjs +0 -126
  172. package/dist/exports/cli/api/logger.d.mts +0 -21
  173. package/dist/exports/cli/api/mailer.d.mts +0 -70
  174. package/dist/exports/cli/api/orm.d.mts +0 -13
  175. package/dist/exports/cli/api/redis.mjs +0 -3
  176. package/dist/exports/cli/api/storage-schema.d.mts +0 -699
  177. package/dist/exports/cli/api/storage.d.mts +0 -396
  178. package/dist/exports/cli/api/workflow.d.mts +0 -2
  179. package/dist/exports/cli/api/workflows/extract-blob-metadata.mjs +0 -132
  180. package/dist/exports/cli/api/workflows/generate-image-variant.d.mts +0 -63
  181. package/dist/exports/cli/api/workflows/track-db-changes.mjs +0 -110
  182. package/dist/exports/cli/command.d.mts +0 -56
  183. package/dist/exports/cli/command.mjs +0 -43
  184. package/dist/exports/cli/constants.mjs +0 -23
  185. package/dist/exports/cli/context.d.mts +0 -170
  186. package/dist/exports/devtools/index.d.ts +0 -3
  187. package/dist/exports/devtools/index.js +0 -4
  188. package/dist/exports/tests/_virtual/rolldown_runtime.mjs +0 -1
  189. package/dist/exports/tests/api/app-context.d.mts +0 -115
  190. package/dist/exports/tests/api/app-context.mjs +0 -1
  191. package/dist/exports/tests/api/auth-schema.d.mts +0 -4248
  192. package/dist/exports/tests/api/auth-schema.mjs +0 -1
  193. package/dist/exports/tests/api/auth.d.mts +0 -402
  194. package/dist/exports/tests/api/cache.d.mts +0 -44
  195. package/dist/exports/tests/api/config.d.mts +0 -28
  196. package/dist/exports/tests/api/container.d.mts +0 -210
  197. package/dist/exports/tests/api/database.d.mts +0 -101
  198. package/dist/exports/tests/api/database.mjs +0 -1
  199. package/dist/exports/tests/api/event.d.mts +0 -235
  200. package/dist/exports/tests/api/event.mjs +0 -1
  201. package/dist/exports/tests/api/i18n.d.mts +0 -34
  202. package/dist/exports/tests/api/index.d.mts +0 -26
  203. package/dist/exports/tests/api/logger.d.mts +0 -21
  204. package/dist/exports/tests/api/mailer.d.mts +0 -70
  205. package/dist/exports/tests/api/middleware/error-handler.mjs +0 -1
  206. package/dist/exports/tests/api/middleware/health.mjs +0 -1
  207. package/dist/exports/tests/api/middleware/i18n.mjs +0 -1
  208. package/dist/exports/tests/api/middleware/request-logger.d.mts +0 -24
  209. package/dist/exports/tests/api/middleware/request-logger.mjs +0 -1
  210. package/dist/exports/tests/api/middleware/shutdown.mjs +0 -1
  211. package/dist/exports/tests/api/middleware/timeout.mjs +0 -1
  212. package/dist/exports/tests/api/middleware/youch-handler.mjs +0 -1
  213. package/dist/exports/tests/api/middleware.d.mts +0 -39
  214. package/dist/exports/tests/api/middleware.mjs +0 -1
  215. package/dist/exports/tests/api/openapi.d.mts +0 -271
  216. package/dist/exports/tests/api/openapi.mjs +0 -1
  217. package/dist/exports/tests/api/orm.d.mts +0 -13
  218. package/dist/exports/tests/api/otel.d.mts +0 -40
  219. package/dist/exports/tests/api/redis.d.mts +0 -34
  220. package/dist/exports/tests/api/redis.mjs +0 -1
  221. package/dist/exports/tests/api/server.mjs +0 -1
  222. package/dist/exports/tests/api/storage-schema.d.mts +0 -707
  223. package/dist/exports/tests/api/storage.d.mts +0 -506
  224. package/dist/exports/tests/api/workflow.d.mts +0 -250
  225. package/dist/exports/tests/api/workflows/extract-blob-metadata.mjs +0 -1
  226. package/dist/exports/tests/api/workflows/generate-image-variant.d.mts +0 -63
  227. package/dist/exports/tests/api/workflows/generate-image-variant.mjs +0 -1
  228. package/dist/exports/tests/api/workflows/generate-preview.mjs +0 -1
  229. package/dist/exports/tests/api/workflows/purge-attachment.mjs +0 -1
  230. package/dist/exports/tests/api/workflows/purge-audit-logs.mjs +0 -1
  231. package/dist/exports/tests/api/workflows/purge-unattached-blobs.mjs +0 -1
  232. package/dist/exports/tests/api/workflows/track-db-changes.mjs +0 -1
  233. package/dist/exports/tests/constants.mjs +0 -1
  234. package/dist/exports/tests/instrumentation.d.mts +0 -7
  235. package/dist/exports/tests/instrumentation.mjs +0 -1
  236. package/dist/exports/web/api/auth.d.ts +0 -125
  237. package/dist/exports/web/api/database.d.ts +0 -4
  238. package/dist/exports/web/api/logger.d.ts +0 -1
  239. package/dist/exports/web/auth.d.ts +0 -2388
  240. package/dist/exports/web/auth.js +0 -75
  241. package/dist/exports/web/i18n.d.ts +0 -42
  242. package/dist/exports/web/i18n.js +0 -45
@@ -1,5 +1,5 @@
1
- import { defineWorkflow } from "./api/workflow.mjs";
2
- import z$1 from "zod";
1
+ import { t as zod_default } from "./zod-7q0_Mtnn.mjs";
2
+ import { n as defineWorkflow } from "./workflow-DSbbXBMt.mjs";
3
3
 
4
4
  //#region src/api/workflows/purge-attachment.ts
5
5
  /**
@@ -8,7 +8,7 @@ import z$1 from "zod";
8
8
  * attachment objects.
9
9
  */
10
10
  const purgeAttachment = defineWorkflow({
11
- input: z$1.object({ attachmentIds: z$1.array(z$1.string()).min(1) }),
11
+ input: zod_default.object({ attachmentIds: zod_default.array(zod_default.string()).min(1) }),
12
12
  async run({ container, input: { attachmentIds }, step }) {
13
13
  const attachments = await step("fetch-attachments", async () => {
14
14
  return (await container.storage.primary.getAttachmentsByIds(attachmentIds)).filter((r) => r.blob !== null).map((r) => ({
@@ -0,0 +1,56 @@
1
+ import { t as defineScheduledWorkflow } from "./workflow-DSbbXBMt.mjs";
2
+ import { a as isDriverValueEncoder, c as Table, i as View, l as Column, n as Param, o as isSQLWrapper, r as Placeholder, s as sql, t as defineAuthSchema, u as is } from "./auth-schema-CNuOqPi-.mjs";
3
+
4
+ //#region ../../node_modules/.bun/drizzle-orm@1.0.0-beta.2-f9236e3+94f63afaebaec8a7/node_modules/drizzle-orm/sql/expressions/conditions.js
5
+ function bindIfParam(value, column) {
6
+ if (isDriverValueEncoder(column) && !isSQLWrapper(value) && !is(value, Param) && !is(value, Placeholder) && !is(value, Column) && !is(value, Table) && !is(value, View)) return new Param(value, column);
7
+ return value;
8
+ }
9
+ const lt = (left, right) => {
10
+ return sql`${left} < ${bindIfParam(right, left)}`;
11
+ };
12
+
13
+ //#endregion
14
+ //#region src/api/workflows/purge-audit-logs.ts
15
+ const authSchema = defineAuthSchema();
16
+ /**
17
+ * Default cron: midnight daily
18
+ */
19
+ const DEFAULT_CRON = "0 0 * * *";
20
+ /**
21
+ * Default retention period: 90 days
22
+ */
23
+ const DEFAULT_RETENTION_DAYS = 90;
24
+ /**
25
+ * Defines purge audit logs workflow with configurable cron schedule.
26
+ *
27
+ * Algorithm:
28
+ * 1. Calculate cutoff date from scheduledTime minus retentionDays
29
+ * 2. Delete all audit logs with createdAt before cutoff
30
+ * 3. Log the number of deleted records
31
+ *
32
+ * @param crontab - Cron expression from auth.auditLog.purgeCron.
33
+ */
34
+ function definePurgeAuditLogs(crontab = DEFAULT_CRON) {
35
+ return defineScheduledWorkflow({
36
+ crontab,
37
+ async run({ container, step, scheduledTime }) {
38
+ const retentionDays = container.auth.auditLog?.retentionDays ?? DEFAULT_RETENTION_DAYS;
39
+ const cutoffDate = new Date(scheduledTime);
40
+ cutoffDate.setDate(cutoffDate.getDate() - retentionDays);
41
+ const cutoffISO = cutoffDate.toISOString();
42
+ const deletedCount = await step("delete-old-logs", async () => {
43
+ const { auditLogs } = authSchema.tables;
44
+ return (await container.db.primary.delete(auditLogs).where(lt(auditLogs.createdAt, cutoffISO)).returning({ id: auditLogs.id })).length;
45
+ });
46
+ container.logger.info({
47
+ deletedCount,
48
+ retentionDays,
49
+ cutoffDate: cutoffISO
50
+ }, "Audit log purge completed");
51
+ }
52
+ });
53
+ }
54
+
55
+ //#endregion
56
+ export { definePurgeAuditLogs };
@@ -0,0 +1,46 @@
1
+ import { t as defineScheduledWorkflow } from "./workflow-DSbbXBMt.mjs";
2
+
3
+ //#region src/api/workflows/purge-unattached-blobs.ts
4
+ /**
5
+ * Default cron: midnight daily
6
+ */
7
+ const DEFAULT_CRON = "0 0 * * *";
8
+ /**
9
+ * Defines purge unattached blobs workflow with configurable cron schedule.
10
+ *
11
+ * Algorithm:
12
+ * 1. Fetch unattached blobs older than 48 hours
13
+ * 2. Fetch pending blobs (stuck direct uploads) older than 48 hours
14
+ * 3. Delete each orphaned blob from storage and database
15
+ * 4. Log the purge summary
16
+ *
17
+ * @param crontab - Cron expression for when to run (default: daily at midnight)
18
+ */
19
+ function definePurgeUnattachedBlobs(crontab = DEFAULT_CRON) {
20
+ return defineScheduledWorkflow({
21
+ crontab,
22
+ async run({ container, step }) {
23
+ const olderThan = (/* @__PURE__ */ new Date(Date.now() - 2880 * 60 * 1e3)).toISOString();
24
+ const unattachedBlobs = await step("fetch-unattached-blobs", async () => {
25
+ return container.storage.primary.getUnattachedBlobs({ olderThan });
26
+ });
27
+ const pendingBlobs = await step("fetch-pending-blobs", async () => {
28
+ return container.storage.primary.getPendingBlobs(olderThan);
29
+ });
30
+ const allOrphans = [...unattachedBlobs, ...pendingBlobs];
31
+ let purgedCount = 0;
32
+ for (const blob of allOrphans) await step("delete-blob", async () => {
33
+ await container.storage.primary.deleteBlob(blob.id);
34
+ purgedCount++;
35
+ });
36
+ container.logger.info({
37
+ purgedCount,
38
+ unattachedCount: unattachedBlobs.length,
39
+ pendingCount: pendingBlobs.length
40
+ }, "Orphaned blobs purged");
41
+ }
42
+ });
43
+ }
44
+
45
+ //#endregion
46
+ export { definePurgeUnattachedBlobs };