@effect-kit/storage 0.0.0-stage → 0.1.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 (615) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/LICENSE +204 -0
  3. package/README.md +369 -2
  4. package/dist/_virtual/_rolldown/runtime.js +17 -0
  5. package/dist/azure/account-admin.d.ts +116 -0
  6. package/dist/azure/account-admin.js +90 -0
  7. package/dist/azure/account-admin.js.map +1 -0
  8. package/dist/azure/admin.d.ts +68 -0
  9. package/dist/azure/admin.js +85 -0
  10. package/dist/azure/admin.js.map +1 -0
  11. package/dist/azure/archive.d.ts +95 -0
  12. package/dist/azure/archive.js +52 -0
  13. package/dist/azure/archive.js.map +1 -0
  14. package/dist/azure/events.d.ts +40 -0
  15. package/dist/azure/events.js +62 -0
  16. package/dist/azure/events.js.map +1 -0
  17. package/dist/azure/governance.d.ts +139 -0
  18. package/dist/azure/governance.js +59 -0
  19. package/dist/azure/governance.js.map +1 -0
  20. package/dist/azure/identity.d.ts +4 -0
  21. package/dist/azure/identity.js +8 -0
  22. package/dist/azure/identity.js.map +1 -0
  23. package/dist/azure/lifecycle.d.ts +21 -0
  24. package/dist/azure/lifecycle.js +193 -0
  25. package/dist/azure/lifecycle.js.map +1 -0
  26. package/dist/azure/signing.d.ts +17 -0
  27. package/dist/azure/signing.js +71 -0
  28. package/dist/azure/signing.js.map +1 -0
  29. package/dist/azure/uploads.d.ts +11 -0
  30. package/dist/azure/uploads.js +83 -0
  31. package/dist/azure/uploads.js.map +1 -0
  32. package/dist/azure.d.ts +427 -0
  33. package/dist/azure.js +77 -0
  34. package/dist/azure.js.map +1 -0
  35. package/dist/b2/admin.d.ts +149 -0
  36. package/dist/b2/admin.js +157 -0
  37. package/dist/b2/admin.js.map +1 -0
  38. package/dist/b2.d.ts +15 -0
  39. package/dist/b2.js +15 -0
  40. package/dist/b2.js.map +1 -0
  41. package/dist/browser.d.ts +7 -0
  42. package/dist/browser.js +11 -0
  43. package/dist/browser.js.map +1 -0
  44. package/dist/bun.d.ts +14 -0
  45. package/dist/bun.js +17 -0
  46. package/dist/bun.js.map +1 -0
  47. package/dist/cache.d.ts +18 -0
  48. package/dist/cache.js +116 -0
  49. package/dist/cache.js.map +1 -0
  50. package/dist/client/atoms/controller.d.ts +10 -0
  51. package/dist/client/atoms/controller.js +267 -0
  52. package/dist/client/atoms/controller.js.map +1 -0
  53. package/dist/client/atoms/state.d.ts +17 -0
  54. package/dist/client/atoms/state.js +11 -0
  55. package/dist/client/atoms/state.js.map +1 -0
  56. package/dist/client/atoms.d.ts +59 -0
  57. package/dist/client/atoms.js +39 -0
  58. package/dist/client/atoms.js.map +1 -0
  59. package/dist/client/fingerprint.js +28 -0
  60. package/dist/client/fingerprint.js.map +1 -0
  61. package/dist/client/store.d.ts +31 -0
  62. package/dist/client/store.js +56 -0
  63. package/dist/client/store.js.map +1 -0
  64. package/dist/client/transport.d.ts +11 -0
  65. package/dist/client/transport.js +78 -0
  66. package/dist/client/transport.js.map +1 -0
  67. package/dist/client.d.ts +259 -0
  68. package/dist/client.js +350 -0
  69. package/dist/client.js.map +1 -0
  70. package/dist/composition/layer.js +22 -0
  71. package/dist/composition/layer.js.map +1 -0
  72. package/dist/composition/representation/staging.js +46 -0
  73. package/dist/composition/representation/staging.js.map +1 -0
  74. package/dist/composition/representation/storage.js +188 -0
  75. package/dist/composition/representation/storage.js.map +1 -0
  76. package/dist/composition.d.ts +20 -0
  77. package/dist/composition.js +124 -0
  78. package/dist/composition.js.map +1 -0
  79. package/dist/compression.d.ts +16 -0
  80. package/dist/compression.js +38 -0
  81. package/dist/compression.js.map +1 -0
  82. package/dist/content.d.ts +590 -0
  83. package/dist/content.js +168 -0
  84. package/dist/content.js.map +1 -0
  85. package/dist/core/capabilities.d.ts +53 -0
  86. package/dist/core/capabilities.js +9 -0
  87. package/dist/core/capabilities.js.map +1 -0
  88. package/dist/core/contracts/multipart.d.ts +56 -0
  89. package/dist/core/contracts/resumable.d.ts +70 -0
  90. package/dist/core/errors.d.ts +55 -0
  91. package/dist/core/errors.js +55 -0
  92. package/dist/core/errors.js.map +1 -0
  93. package/dist/core/object.d.ts +97 -0
  94. package/dist/core/object.js +55 -0
  95. package/dist/core/object.js.map +1 -0
  96. package/dist/core/ranges.d.ts +17 -0
  97. package/dist/core/ranges.js +27 -0
  98. package/dist/core/ranges.js.map +1 -0
  99. package/dist/core/requests.d.ts +185 -0
  100. package/dist/core/requests.js +42 -0
  101. package/dist/core/requests.js.map +1 -0
  102. package/dist/core/storage.d.ts +249 -0
  103. package/dist/core/storage.js +173 -0
  104. package/dist/core/storage.js.map +1 -0
  105. package/dist/deno.d.ts +14 -0
  106. package/dist/deno.js +17 -0
  107. package/dist/deno.js.map +1 -0
  108. package/dist/encryption/age.d.ts +14 -0
  109. package/dist/encryption/age.js +46 -0
  110. package/dist/encryption/age.js.map +1 -0
  111. package/dist/encryption.d.ts +16 -0
  112. package/dist/encryption.js +16 -0
  113. package/dist/encryption.js.map +1 -0
  114. package/dist/events.d.ts +57 -0
  115. package/dist/events.js +106 -0
  116. package/dist/events.js.map +1 -0
  117. package/dist/filesystem.d.ts +23 -0
  118. package/dist/filesystem.js +75 -0
  119. package/dist/filesystem.js.map +1 -0
  120. package/dist/gcs/admin.d.ts +470 -0
  121. package/dist/gcs/admin.js +206 -0
  122. package/dist/gcs/admin.js.map +1 -0
  123. package/dist/gcs/events.d.ts +41 -0
  124. package/dist/gcs/events.js +45 -0
  125. package/dist/gcs/events.js.map +1 -0
  126. package/dist/gcs/governance.d.ts +158 -0
  127. package/dist/gcs/governance.js +100 -0
  128. package/dist/gcs/governance.js.map +1 -0
  129. package/dist/gcs/lifecycle.d.ts +161 -0
  130. package/dist/gcs/lifecycle.js +174 -0
  131. package/dist/gcs/lifecycle.js.map +1 -0
  132. package/dist/gcs/post.d.ts +31 -0
  133. package/dist/gcs/post.js +70 -0
  134. package/dist/gcs/post.js.map +1 -0
  135. package/dist/gcs/signing.d.ts +10 -0
  136. package/dist/gcs/signing.js +61 -0
  137. package/dist/gcs/signing.js.map +1 -0
  138. package/dist/gcs/uploads.d.ts +10 -0
  139. package/dist/gcs/uploads.js +76 -0
  140. package/dist/gcs/uploads.js.map +1 -0
  141. package/dist/gcs.d.ts +888 -0
  142. package/dist/gcs.js +91 -0
  143. package/dist/gcs.js.map +1 -0
  144. package/dist/hetzner/admin.d.ts +112 -0
  145. package/dist/hetzner/admin.js +19 -0
  146. package/dist/hetzner/admin.js.map +1 -0
  147. package/dist/hetzner.d.ts +15 -0
  148. package/dist/hetzner.js +15 -0
  149. package/dist/hetzner.js.map +1 -0
  150. package/dist/http/api.d.ts +236 -0
  151. package/dist/http/api.js +54 -0
  152. package/dist/http/api.js.map +1 -0
  153. package/dist/http/download.js +99 -0
  154. package/dist/http/download.js.map +1 -0
  155. package/dist/http/schema.d.ts +3 -0
  156. package/dist/http/schema.js +4 -0
  157. package/dist/http.d.ts +35 -0
  158. package/dist/http.js +178 -0
  159. package/dist/http.js.map +1 -0
  160. package/dist/index.d.ts +10 -0
  161. package/dist/index.js +9 -0
  162. package/dist/internal/http/control-plane.js +71 -0
  163. package/dist/internal/http/control-plane.js.map +1 -0
  164. package/dist/internal/listing-cursor.js +44 -0
  165. package/dist/internal/listing-cursor.js.map +1 -0
  166. package/dist/internal/node/provider-errors.js +16 -0
  167. package/dist/internal/node/provider-errors.js.map +1 -0
  168. package/dist/internal/node/upload-body.js +111 -0
  169. package/dist/internal/node/upload-body.js.map +1 -0
  170. package/dist/internal/provider-response.js +14 -0
  171. package/dist/internal/provider-response.js.map +1 -0
  172. package/dist/internal/public-urls.js +30 -0
  173. package/dist/internal/public-urls.js.map +1 -0
  174. package/dist/internal/read-condition.js +11 -0
  175. package/dist/internal/read-condition.js.map +1 -0
  176. package/dist/internal/request-validation.js +24 -0
  177. package/dist/internal/request-validation.js.map +1 -0
  178. package/dist/internal/signing-request.js +22 -0
  179. package/dist/internal/signing-request.js.map +1 -0
  180. package/dist/internal/web-upload-body.js +71 -0
  181. package/dist/internal/web-upload-body.js.map +1 -0
  182. package/dist/lifecycle/configuration-state.js +26 -0
  183. package/dist/lifecycle/configuration-state.js.map +1 -0
  184. package/dist/lifecycle/metadata.js +28 -0
  185. package/dist/lifecycle/metadata.js.map +1 -0
  186. package/dist/lifecycle.d.ts +269 -0
  187. package/dist/lifecycle.js +72 -0
  188. package/dist/lifecycle.js.map +1 -0
  189. package/dist/migrations.d.ts +537 -0
  190. package/dist/migrations.js +296 -0
  191. package/dist/migrations.js.map +1 -0
  192. package/dist/minio/admin.d.ts +112 -0
  193. package/dist/minio/admin.js +19 -0
  194. package/dist/minio/admin.js.map +1 -0
  195. package/dist/minio.d.ts +15 -0
  196. package/dist/minio.js +15 -0
  197. package/dist/minio.js.map +1 -0
  198. package/dist/mirror.d.ts +830 -0
  199. package/dist/mirror.js +290 -0
  200. package/dist/mirror.js.map +1 -0
  201. package/dist/node.d.ts +14 -0
  202. package/dist/node.js +17 -0
  203. package/dist/node.js.map +1 -0
  204. package/dist/providers/azure/blocks.js +94 -0
  205. package/dist/providers/azure/blocks.js.map +1 -0
  206. package/dist/providers/azure/config.d.ts +41 -0
  207. package/dist/providers/azure/config.js +62 -0
  208. package/dist/providers/azure/config.js.map +1 -0
  209. package/dist/providers/azure/mapping.js +83 -0
  210. package/dist/providers/azure/mapping.js.map +1 -0
  211. package/dist/providers/azure/native.js +88 -0
  212. package/dist/providers/azure/native.js.map +1 -0
  213. package/dist/providers/azure/primitives.js +203 -0
  214. package/dist/providers/azure/primitives.js.map +1 -0
  215. package/dist/providers/azure/properties.d.ts +180 -0
  216. package/dist/providers/azure/properties.js +55 -0
  217. package/dist/providers/azure/properties.js.map +1 -0
  218. package/dist/providers/azure/transport.js +14 -0
  219. package/dist/providers/azure/transport.js.map +1 -0
  220. package/dist/providers/azure/validation.js +11 -0
  221. package/dist/providers/azure/validation.js.map +1 -0
  222. package/dist/providers/filesystem/envelope.js +56 -0
  223. package/dist/providers/filesystem/envelope.js.map +1 -0
  224. package/dist/providers/filesystem/identity.js +68 -0
  225. package/dist/providers/filesystem/identity.js.map +1 -0
  226. package/dist/providers/filesystem/layout.d.ts +15 -0
  227. package/dist/providers/filesystem/layout.js +112 -0
  228. package/dist/providers/filesystem/layout.js.map +1 -0
  229. package/dist/providers/filesystem/list.js +82 -0
  230. package/dist/providers/filesystem/list.js.map +1 -0
  231. package/dist/providers/filesystem/operations.js +134 -0
  232. package/dist/providers/filesystem/operations.js.map +1 -0
  233. package/dist/providers/gcs/config.d.ts +34 -0
  234. package/dist/providers/gcs/config.js +60 -0
  235. package/dist/providers/gcs/config.js.map +1 -0
  236. package/dist/providers/gcs/iam.js +45 -0
  237. package/dist/providers/gcs/iam.js.map +1 -0
  238. package/dist/providers/gcs/mapping.js +118 -0
  239. package/dist/providers/gcs/mapping.js.map +1 -0
  240. package/dist/providers/gcs/native.d.ts +11 -0
  241. package/dist/providers/gcs/native.js +122 -0
  242. package/dist/providers/gcs/native.js.map +1 -0
  243. package/dist/providers/gcs/primitives.js +194 -0
  244. package/dist/providers/gcs/primitives.js.map +1 -0
  245. package/dist/providers/gcs/resumable.js +145 -0
  246. package/dist/providers/gcs/resumable.js.map +1 -0
  247. package/dist/providers/gcs/tier.d.ts +176 -0
  248. package/dist/providers/gcs/tier.js +34 -0
  249. package/dist/providers/gcs/tier.js.map +1 -0
  250. package/dist/providers/gcs/transport.js +123 -0
  251. package/dist/providers/gcs/transport.js.map +1 -0
  252. package/dist/providers/gcs/upload.js +28 -0
  253. package/dist/providers/gcs/upload.js.map +1 -0
  254. package/dist/providers/gcs/validation.js +10 -0
  255. package/dist/providers/gcs/validation.js.map +1 -0
  256. package/dist/providers/r2-workers/binding.d.ts +102 -0
  257. package/dist/providers/r2-workers/body.js +82 -0
  258. package/dist/providers/r2-workers/body.js.map +1 -0
  259. package/dist/providers/r2-workers/list.js +62 -0
  260. package/dist/providers/r2-workers/list.js.map +1 -0
  261. package/dist/providers/r2-workers/mapping.js +140 -0
  262. package/dist/providers/r2-workers/mapping.js.map +1 -0
  263. package/dist/providers/r2-workers/multipart.js +121 -0
  264. package/dist/providers/r2-workers/multipart.js.map +1 -0
  265. package/dist/providers/r2-workers/primitives.js +80 -0
  266. package/dist/providers/r2-workers/primitives.js.map +1 -0
  267. package/dist/providers/s3/admin-configuration.d.ts +19 -0
  268. package/dist/providers/s3/admin-configuration.js +171 -0
  269. package/dist/providers/s3/admin-configuration.js.map +1 -0
  270. package/dist/providers/s3/bulk-delete.d.ts +43 -0
  271. package/dist/providers/s3/bulk-delete.js +58 -0
  272. package/dist/providers/s3/bulk-delete.js.map +1 -0
  273. package/dist/providers/s3/config.d.ts +43 -0
  274. package/dist/providers/s3/config.js +89 -0
  275. package/dist/providers/s3/config.js.map +1 -0
  276. package/dist/providers/s3/copy.d.ts +115 -0
  277. package/dist/providers/s3/copy.js +122 -0
  278. package/dist/providers/s3/copy.js.map +1 -0
  279. package/dist/providers/s3/lifecycle-validation.js +33 -0
  280. package/dist/providers/s3/lifecycle-validation.js.map +1 -0
  281. package/dist/providers/s3/listing.js +56 -0
  282. package/dist/providers/s3/listing.js.map +1 -0
  283. package/dist/providers/s3/metadata.d.ts +10 -0
  284. package/dist/providers/s3/metadata.js +90 -0
  285. package/dist/providers/s3/metadata.js.map +1 -0
  286. package/dist/providers/s3/multipart.d.ts +41 -0
  287. package/dist/providers/s3/multipart.js +299 -0
  288. package/dist/providers/s3/multipart.js.map +1 -0
  289. package/dist/providers/s3/native-models.d.ts +82 -0
  290. package/dist/providers/s3/native-models.js +91 -0
  291. package/dist/providers/s3/native-models.js.map +1 -0
  292. package/dist/providers/s3/object-mapping.js +114 -0
  293. package/dist/providers/s3/object-mapping.js.map +1 -0
  294. package/dist/providers/s3/primitives.d.ts +8 -0
  295. package/dist/providers/s3/primitives.js +235 -0
  296. package/dist/providers/s3/primitives.js.map +1 -0
  297. package/dist/providers/s3/profile.d.ts +25 -0
  298. package/dist/providers/s3/profile.js +46 -0
  299. package/dist/providers/s3/profile.js.map +1 -0
  300. package/dist/providers/s3/request-extension.js +29 -0
  301. package/dist/providers/s3/request-extension.js.map +1 -0
  302. package/dist/providers/s3/service.js +55 -0
  303. package/dist/providers/s3/service.js.map +1 -0
  304. package/dist/providers/s3/signing-credentials.js +32 -0
  305. package/dist/providers/s3/signing-credentials.js.map +1 -0
  306. package/dist/providers/s3/tags.d.ts +10 -0
  307. package/dist/providers/s3/tags.js +65 -0
  308. package/dist/providers/s3/tags.js.map +1 -0
  309. package/dist/providers/s3/tier.d.ts +171 -0
  310. package/dist/providers/s3/tier.js +100 -0
  311. package/dist/providers/s3/tier.js.map +1 -0
  312. package/dist/providers/s3/transfer-driver.js +72 -0
  313. package/dist/providers/s3/transfer-driver.js.map +1 -0
  314. package/dist/providers/s3/transport.js +94 -0
  315. package/dist/providers/s3/transport.js.map +1 -0
  316. package/dist/providers/s3/upload-body.js +10 -0
  317. package/dist/providers/s3/upload-body.js.map +1 -0
  318. package/dist/providers/s3/validation.js +31 -0
  319. package/dist/providers/s3/validation.js.map +1 -0
  320. package/dist/providers/s3/versions.d.ts +10 -0
  321. package/dist/providers/s3/versions.js +143 -0
  322. package/dist/providers/s3/versions.js.map +1 -0
  323. package/dist/providers/s3-compatible/config.d.ts +36 -0
  324. package/dist/providers/s3-compatible/config.js +174 -0
  325. package/dist/providers/s3-compatible/config.js.map +1 -0
  326. package/dist/providers/s3-compatible/service.js +48 -0
  327. package/dist/providers/s3-compatible/service.js.map +1 -0
  328. package/dist/providers/supabase/config.d.ts +20 -0
  329. package/dist/providers/supabase/config.js +41 -0
  330. package/dist/providers/supabase/config.js.map +1 -0
  331. package/dist/providers/supabase/mapping.js +60 -0
  332. package/dist/providers/supabase/mapping.js.map +1 -0
  333. package/dist/providers/supabase/primitives.js +205 -0
  334. package/dist/providers/supabase/primitives.js.map +1 -0
  335. package/dist/providers/supabase/transport.js +64 -0
  336. package/dist/providers/supabase/transport.js.map +1 -0
  337. package/dist/providers/supabase/tus.js +163 -0
  338. package/dist/providers/supabase/tus.js.map +1 -0
  339. package/dist/providers/tigris/configuration.js +118 -0
  340. package/dist/providers/tigris/configuration.js.map +1 -0
  341. package/dist/providers/tigris/snapshots.js +87 -0
  342. package/dist/providers/tigris/snapshots.js.map +1 -0
  343. package/dist/providers/tigris/transport.js +18 -0
  344. package/dist/providers/tigris/transport.js.map +1 -0
  345. package/dist/providers/vercel/config.d.ts +16 -0
  346. package/dist/providers/vercel/config.js +48 -0
  347. package/dist/providers/vercel/config.js.map +1 -0
  348. package/dist/providers/vercel/mapping.js +79 -0
  349. package/dist/providers/vercel/mapping.js.map +1 -0
  350. package/dist/providers/vercel/multipart.js +113 -0
  351. package/dist/providers/vercel/multipart.js.map +1 -0
  352. package/dist/providers/vercel/primitives.js +168 -0
  353. package/dist/providers/vercel/primitives.js.map +1 -0
  354. package/dist/providers/vercel/transport.js +32 -0
  355. package/dist/providers/vercel/transport.js.map +1 -0
  356. package/dist/providers/wasabi/compliance.d.ts +52 -0
  357. package/dist/providers/wasabi/compliance.js +89 -0
  358. package/dist/providers/wasabi/compliance.js.map +1 -0
  359. package/dist/providers/wasabi/xml.js +55 -0
  360. package/dist/providers/wasabi/xml.js.map +1 -0
  361. package/dist/r2/admin.d.ts +126 -0
  362. package/dist/r2/admin.js +138 -0
  363. package/dist/r2/admin.js.map +1 -0
  364. package/dist/r2/events.d.ts +41 -0
  365. package/dist/r2/events.js +37 -0
  366. package/dist/r2/events.js.map +1 -0
  367. package/dist/r2-workers.d.ts +24 -0
  368. package/dist/r2-workers.js +115 -0
  369. package/dist/r2-workers.js.map +1 -0
  370. package/dist/r2.d.ts +15 -0
  371. package/dist/r2.js +15 -0
  372. package/dist/r2.js.map +1 -0
  373. package/dist/react.d.ts +73 -0
  374. package/dist/react.js +49 -0
  375. package/dist/react.js.map +1 -0
  376. package/dist/representation.d.ts +24 -0
  377. package/dist/representation.js +7 -0
  378. package/dist/representation.js.map +1 -0
  379. package/dist/runtime/bun-filesystem.js +136 -0
  380. package/dist/runtime/bun-filesystem.js.map +1 -0
  381. package/dist/runtime/file-target.d.ts +10 -0
  382. package/dist/runtime/file-target.js +66 -0
  383. package/dist/runtime/file-target.js.map +1 -0
  384. package/dist/runtime/filesystem.d.ts +6 -0
  385. package/dist/runtime/filesystem.js +68 -0
  386. package/dist/runtime/filesystem.js.map +1 -0
  387. package/dist/runtime/node-hash.d.ts +4 -0
  388. package/dist/runtime/node-hash.js +31 -0
  389. package/dist/runtime/node-hash.js.map +1 -0
  390. package/dist/runtime/node-protection.d.ts +4 -0
  391. package/dist/runtime/node-protection.js +46 -0
  392. package/dist/runtime/node-protection.js.map +1 -0
  393. package/dist/runtime/portable-hash.d.ts +3 -0
  394. package/dist/runtime/portable-hash.js +31 -0
  395. package/dist/runtime/portable-hash.js.map +1 -0
  396. package/dist/runtime/session-store.d.ts +12 -0
  397. package/dist/runtime/session-store.js +19 -0
  398. package/dist/runtime/session-store.js.map +1 -0
  399. package/dist/runtime/web-protection.d.ts +7 -0
  400. package/dist/runtime/web-protection.js +54 -0
  401. package/dist/runtime/web-protection.js.map +1 -0
  402. package/dist/s3/admin.d.ts +183 -0
  403. package/dist/s3/admin.js +197 -0
  404. package/dist/s3/admin.js.map +1 -0
  405. package/dist/s3/archive.d.ts +25 -0
  406. package/dist/s3/archive.js +113 -0
  407. package/dist/s3/archive.js.map +1 -0
  408. package/dist/s3/events.d.ts +42 -0
  409. package/dist/s3/events.js +69 -0
  410. package/dist/s3/events.js.map +1 -0
  411. package/dist/s3/governance.d.ts +319 -0
  412. package/dist/s3/governance.js +108 -0
  413. package/dist/s3/governance.js.map +1 -0
  414. package/dist/s3/lifecycle.d.ts +4 -0
  415. package/dist/s3/lifecycle.js +5 -0
  416. package/dist/s3/post.d.ts +31 -0
  417. package/dist/s3/post.js +93 -0
  418. package/dist/s3/post.js.map +1 -0
  419. package/dist/s3/signing.d.ts +105 -0
  420. package/dist/s3/signing.js +198 -0
  421. package/dist/s3/signing.js.map +1 -0
  422. package/dist/s3/uploads.d.ts +11 -0
  423. package/dist/s3/uploads.js +173 -0
  424. package/dist/s3/uploads.js.map +1 -0
  425. package/dist/s3.d.ts +37 -0
  426. package/dist/s3.js +114 -0
  427. package/dist/s3.js.map +1 -0
  428. package/dist/scaleway/admin.d.ts +112 -0
  429. package/dist/scaleway/admin.js +19 -0
  430. package/dist/scaleway/admin.js.map +1 -0
  431. package/dist/scaleway.d.ts +15 -0
  432. package/dist/scaleway.js +15 -0
  433. package/dist/scaleway.js.map +1 -0
  434. package/dist/session-events.d.ts +22 -0
  435. package/dist/session-events.js +22 -0
  436. package/dist/session-events.js.map +1 -0
  437. package/dist/sessions/checkpoint.d.ts +423 -0
  438. package/dist/sessions/checkpoint.js +102 -0
  439. package/dist/sessions/checkpoint.js.map +1 -0
  440. package/dist/sessions/download.d.ts +17 -0
  441. package/dist/sessions/download.js +111 -0
  442. package/dist/sessions/download.js.map +1 -0
  443. package/dist/sessions/native-upload.js +168 -0
  444. package/dist/sessions/native-upload.js.map +1 -0
  445. package/dist/sessions/store.d.ts +40 -0
  446. package/dist/sessions/store.js +77 -0
  447. package/dist/sessions/store.js.map +1 -0
  448. package/dist/sessions/upload.d.ts +10 -0
  449. package/dist/sessions/upload.js +329 -0
  450. package/dist/sessions/upload.js.map +1 -0
  451. package/dist/sessions.d.ts +98 -0
  452. package/dist/sessions.js +268 -0
  453. package/dist/sessions.js.map +1 -0
  454. package/dist/spaces/admin.d.ts +112 -0
  455. package/dist/spaces/admin.js +19 -0
  456. package/dist/spaces/admin.js.map +1 -0
  457. package/dist/spaces.d.ts +15 -0
  458. package/dist/spaces.js +15 -0
  459. package/dist/spaces.js.map +1 -0
  460. package/dist/supabase/admin.d.ts +77 -0
  461. package/dist/supabase/admin.js +74 -0
  462. package/dist/supabase/admin.js.map +1 -0
  463. package/dist/supabase/s3.d.ts +311 -0
  464. package/dist/supabase/s3.js +153 -0
  465. package/dist/supabase/s3.js.map +1 -0
  466. package/dist/supabase/signing.d.ts +23 -0
  467. package/dist/supabase/signing.js +93 -0
  468. package/dist/supabase/signing.js.map +1 -0
  469. package/dist/supabase/tus-uploads.d.ts +13 -0
  470. package/dist/supabase/tus-uploads.js +109 -0
  471. package/dist/supabase/tus-uploads.js.map +1 -0
  472. package/dist/supabase/uploads.d.ts +5 -0
  473. package/dist/supabase/uploads.js +32 -0
  474. package/dist/supabase/uploads.js.map +1 -0
  475. package/dist/supabase.d.ts +100 -0
  476. package/dist/supabase.js +50 -0
  477. package/dist/supabase.js.map +1 -0
  478. package/dist/testing/body-failure.js +18 -0
  479. package/dist/testing/body-failure.js.map +1 -0
  480. package/dist/testing/conformance/assertions.d.ts +10 -0
  481. package/dist/testing/conformance/assertions.js +21 -0
  482. package/dist/testing/conformance/assertions.js.map +1 -0
  483. package/dist/testing/conformance/core-cases.js +107 -0
  484. package/dist/testing/conformance/core-cases.js.map +1 -0
  485. package/dist/testing/conformance/list-cases.js +72 -0
  486. package/dist/testing/conformance/list-cases.js.map +1 -0
  487. package/dist/testing/conformance/read-cases.js +105 -0
  488. package/dist/testing/conformance/read-cases.js.map +1 -0
  489. package/dist/testing/conformance.d.ts +23 -0
  490. package/dist/testing/conformance.js +37 -0
  491. package/dist/testing/conformance.js.map +1 -0
  492. package/dist/testing/faults.d.ts +258 -0
  493. package/dist/testing/faults.js +111 -0
  494. package/dist/testing/faults.js.map +1 -0
  495. package/dist/testing/memory-list.js +79 -0
  496. package/dist/testing/memory-list.js.map +1 -0
  497. package/dist/testing/memory-state.d.ts +18 -0
  498. package/dist/testing/memory-state.js +57 -0
  499. package/dist/testing/memory-state.js.map +1 -0
  500. package/dist/testing/memory-upload.js +123 -0
  501. package/dist/testing/memory-upload.js.map +1 -0
  502. package/dist/testing/memory.d.ts +23 -0
  503. package/dist/testing/memory.js +121 -0
  504. package/dist/testing/memory.js.map +1 -0
  505. package/dist/testing.d.ts +6 -0
  506. package/dist/testing.js +6 -0
  507. package/dist/tigris/events.d.ts +42 -0
  508. package/dist/tigris/events.js +42 -0
  509. package/dist/tigris/events.js.map +1 -0
  510. package/dist/tigris/native.d.ts +438 -0
  511. package/dist/tigris/native.js +166 -0
  512. package/dist/tigris/native.js.map +1 -0
  513. package/dist/tigris.d.ts +15 -0
  514. package/dist/tigris.js +15 -0
  515. package/dist/tigris.js.map +1 -0
  516. package/dist/transfers/budget.js +50 -0
  517. package/dist/transfers/budget.js.map +1 -0
  518. package/dist/transfers/copy.js +250 -0
  519. package/dist/transfers/copy.js.map +1 -0
  520. package/dist/transfers/dependencies.d.ts +10 -0
  521. package/dist/transfers/dependencies.js +11 -0
  522. package/dist/transfers/dependencies.js.map +1 -0
  523. package/dist/transfers/download.js +132 -0
  524. package/dist/transfers/download.js.map +1 -0
  525. package/dist/transfers/managed-runtime.d.ts +34 -0
  526. package/dist/transfers/managed-runtime.js +30 -0
  527. package/dist/transfers/managed-runtime.js.map +1 -0
  528. package/dist/transfers/models.d.ts +160 -0
  529. package/dist/transfers/native-upload.js +195 -0
  530. package/dist/transfers/native-upload.js.map +1 -0
  531. package/dist/transfers/part-receipts.js +32 -0
  532. package/dist/transfers/part-receipts.js.map +1 -0
  533. package/dist/transfers/planner.d.ts +19 -0
  534. package/dist/transfers/planner.js +153 -0
  535. package/dist/transfers/planner.js.map +1 -0
  536. package/dist/transfers/reader.js +81 -0
  537. package/dist/transfers/reader.js.map +1 -0
  538. package/dist/transfers/runtime.d.ts +19 -0
  539. package/dist/transfers/runtime.js +132 -0
  540. package/dist/transfers/runtime.js.map +1 -0
  541. package/dist/transfers/sources.d.ts +22 -0
  542. package/dist/transfers/sources.js +83 -0
  543. package/dist/transfers/sources.js.map +1 -0
  544. package/dist/transfers/upload.js +235 -0
  545. package/dist/transfers/upload.js.map +1 -0
  546. package/dist/transfers.d.ts +31 -0
  547. package/dist/transfers.js +82 -0
  548. package/dist/transfers.js.map +1 -0
  549. package/dist/uploads/driver.d.ts +22 -0
  550. package/dist/uploads/driver.js +18 -0
  551. package/dist/uploads/driver.js.map +1 -0
  552. package/dist/uploads/policy.d.ts +39 -0
  553. package/dist/uploads/schema.d.ts +278 -0
  554. package/dist/uploads/schema.js +167 -0
  555. package/dist/uploads/schema.js.map +1 -0
  556. package/dist/uploads/signed-driver.d.ts +8 -0
  557. package/dist/uploads/signed-driver.js +36 -0
  558. package/dist/uploads/signed-driver.js.map +1 -0
  559. package/dist/uploads/store.d.ts +26 -0
  560. package/dist/uploads/store.js +51 -0
  561. package/dist/uploads/store.js.map +1 -0
  562. package/dist/uploads/verification.js +86 -0
  563. package/dist/uploads/verification.js.map +1 -0
  564. package/dist/uploads.d.ts +518 -0
  565. package/dist/uploads.js +330 -0
  566. package/dist/uploads.js.map +1 -0
  567. package/dist/vercel/authorized-uploads.d.ts +7 -0
  568. package/dist/vercel/authorized-uploads.js +15 -0
  569. package/dist/vercel/authorized-uploads.js.map +1 -0
  570. package/dist/vercel/client.d.ts +16 -0
  571. package/dist/vercel/client.js +28 -0
  572. package/dist/vercel/client.js.map +1 -0
  573. package/dist/vercel/signing.d.ts +19 -0
  574. package/dist/vercel/signing.js +120 -0
  575. package/dist/vercel/signing.js.map +1 -0
  576. package/dist/vercel/uploads.d.ts +36 -0
  577. package/dist/vercel/uploads.js +161 -0
  578. package/dist/vercel/uploads.js.map +1 -0
  579. package/dist/vercel.d.ts +86 -0
  580. package/dist/vercel.js +46 -0
  581. package/dist/vercel.js.map +1 -0
  582. package/dist/wasabi/admin.d.ts +112 -0
  583. package/dist/wasabi/admin.js +19 -0
  584. package/dist/wasabi/admin.js.map +1 -0
  585. package/dist/wasabi/native.d.ts +200 -0
  586. package/dist/wasabi/native.js +132 -0
  587. package/dist/wasabi/native.js.map +1 -0
  588. package/dist/wasabi.d.ts +15 -0
  589. package/dist/wasabi.js +15 -0
  590. package/dist/wasabi.js.map +1 -0
  591. package/dist/workflows/content/collection.js +122 -0
  592. package/dist/workflows/content/collection.js.map +1 -0
  593. package/dist/workflows/content/references.js +113 -0
  594. package/dist/workflows/content/references.js.map +1 -0
  595. package/dist/workflows/content/schema.d.ts +58 -0
  596. package/dist/workflows/content/schema.js +64 -0
  597. package/dist/workflows/content/schema.js.map +1 -0
  598. package/dist/workflows/endpoint.js +16 -0
  599. package/dist/workflows/endpoint.js.map +1 -0
  600. package/dist/workflows/migrations/schema.d.ts +149 -0
  601. package/dist/workflows/migrations/schema.js +58 -0
  602. package/dist/workflows/migrations/schema.js.map +1 -0
  603. package/dist/workflows/mirror/operations.js +175 -0
  604. package/dist/workflows/mirror/operations.js.map +1 -0
  605. package/dist/workflows/mirror/schema.d.ts +68 -0
  606. package/dist/workflows/mirror/schema.js +57 -0
  607. package/dist/workflows/mirror/schema.js.map +1 -0
  608. package/dist/workflows/mirror/view.js +103 -0
  609. package/dist/workflows/mirror/view.js.map +1 -0
  610. package/dist/workflows/objects.js +54 -0
  611. package/dist/workflows/objects.js.map +1 -0
  612. package/dist/workflows/store.d.ts +13 -0
  613. package/dist/workflows/store.js +58 -0
  614. package/dist/workflows/store.js.map +1 -0
  615. package/package.json +513 -3
@@ -0,0 +1,116 @@
1
+ import { StorageError, storageError } from "../core/errors.js";
2
+ import "../index.js";
3
+ import { Context, Effect, Layer, Redacted } from "effect";
4
+ import { HttpClient } from "effect/http";
5
+ export interface AzureAccountConfig {
6
+ readonly subscriptionId: string;
7
+ readonly resourceGroup: string;
8
+ readonly account: string;
9
+ readonly apiVersion: string;
10
+ readonly endpoint?: string;
11
+ readonly accessToken: Effect.Effect<Redacted.Redacted<string>, ReturnType<typeof storageError>>;
12
+ }
13
+ declare const AzureAccountAdministration_base: Context.ServiceClass<AzureAccountAdministration, "@effect-kit/storage/azure/AzureAccountAdministration", {
14
+ getAccount: () => Effect.Effect<{
15
+ _tag: "Accepted" | "Observed";
16
+ resource: unknown;
17
+ }, StorageError, never>;
18
+ getBlobConfiguration: () => Effect.Effect<{
19
+ _tag: "Accepted" | "Observed";
20
+ resource: unknown;
21
+ }, StorageError, never>;
22
+ getLifecycle: () => Effect.Effect<{
23
+ _tag: "Accepted" | "Observed";
24
+ resource: unknown;
25
+ }, StorageError, never>;
26
+ getReplication: (input: {
27
+ readonly policyId: string;
28
+ }) => Effect.Effect<{
29
+ _tag: "Accepted" | "Observed";
30
+ resource: unknown;
31
+ }, StorageError, never>;
32
+ setBlobConfiguration: (input: {
33
+ readonly properties: Readonly<Record<string, unknown>>;
34
+ readonly intent: "replace-blob-service-configuration";
35
+ }) => Effect.Effect<{
36
+ _tag: "Accepted" | "Observed";
37
+ resource: unknown;
38
+ }, StorageError, never>;
39
+ setAccountProtection: (input: {
40
+ readonly properties: Readonly<Record<string, unknown>>;
41
+ readonly intent: "change-account-protection";
42
+ }) => Effect.Effect<{
43
+ _tag: "Accepted" | "Observed";
44
+ resource: unknown;
45
+ }, StorageError, never>;
46
+ setLifecycle: (input: {
47
+ readonly rules: ReadonlyArray<Readonly<Record<string, unknown>>>;
48
+ readonly intent: "replace-lifecycle-policy";
49
+ }) => Effect.Effect<{
50
+ _tag: "Accepted" | "Observed";
51
+ resource: unknown;
52
+ }, StorageError, never>;
53
+ setReplication: (input: {
54
+ readonly policyId: string;
55
+ readonly policy: Readonly<Record<string, unknown>>;
56
+ readonly intent: "replace-replication-policy";
57
+ }) => Effect.Effect<{
58
+ _tag: "Accepted" | "Observed";
59
+ resource: unknown;
60
+ }, StorageError, never>;
61
+ }>;
62
+ export declare class AzureAccountAdministration extends AzureAccountAdministration_base {
63
+ static readonly make: (settings: AzureAccountConfig) => Effect.Effect<{
64
+ getAccount: () => Effect.Effect<{
65
+ _tag: "Accepted" | "Observed";
66
+ resource: unknown;
67
+ }, StorageError, never>;
68
+ getBlobConfiguration: () => Effect.Effect<{
69
+ _tag: "Accepted" | "Observed";
70
+ resource: unknown;
71
+ }, StorageError, never>;
72
+ getLifecycle: () => Effect.Effect<{
73
+ _tag: "Accepted" | "Observed";
74
+ resource: unknown;
75
+ }, StorageError, never>;
76
+ getReplication: (input: {
77
+ readonly policyId: string;
78
+ }) => Effect.Effect<{
79
+ _tag: "Accepted" | "Observed";
80
+ resource: unknown;
81
+ }, StorageError, never>;
82
+ setBlobConfiguration: (input: {
83
+ readonly properties: Readonly<Record<string, unknown>>;
84
+ readonly intent: "replace-blob-service-configuration";
85
+ }) => Effect.Effect<{
86
+ _tag: "Accepted" | "Observed";
87
+ resource: unknown;
88
+ }, StorageError, never>;
89
+ setAccountProtection: (input: {
90
+ readonly properties: Readonly<Record<string, unknown>>;
91
+ readonly intent: "change-account-protection";
92
+ }) => Effect.Effect<{
93
+ _tag: "Accepted" | "Observed";
94
+ resource: unknown;
95
+ }, StorageError, never>;
96
+ setLifecycle: (input: {
97
+ readonly rules: ReadonlyArray<Readonly<Record<string, unknown>>>;
98
+ readonly intent: "replace-lifecycle-policy";
99
+ }) => Effect.Effect<{
100
+ _tag: "Accepted" | "Observed";
101
+ resource: unknown;
102
+ }, StorageError, never>;
103
+ setReplication: (input: {
104
+ readonly policyId: string;
105
+ readonly policy: Readonly<Record<string, unknown>>;
106
+ readonly intent: "replace-replication-policy";
107
+ }) => Effect.Effect<{
108
+ _tag: "Accepted" | "Observed";
109
+ resource: unknown;
110
+ }, StorageError, never>;
111
+ }, StorageError, HttpClient.HttpClient>;
112
+ static layerHttp(config: AzureAccountConfig): Layer.Layer<AzureAccountAdministration, StorageError, HttpClient.HttpClient>;
113
+ static layer(config: AzureAccountConfig): Layer.Layer<AzureAccountAdministration, StorageError, never>;
114
+ }
115
+ export {};
116
+ //# sourceMappingURL=account-admin.d.ts.map
@@ -0,0 +1,90 @@
1
+ import { storageError } from "../core/errors.js";
2
+ import { decodeRequest } from "../internal/request-validation.js";
3
+ import { controlEndpoint, controlRequest } from "../internal/http/control-plane.js";
4
+ import { Context, Effect, Layer, Redacted, Schema } from "effect";
5
+ import { FetchHttpClient, HttpClient } from "effect/http";
6
+
7
+ // src/providers/azure/account-admin.ts
8
+ const Native = Schema.Record(Schema.String, Schema.Unknown);
9
+ const make = Effect.fnUntraced(function* (settings) {
10
+ const config = yield* decodeRequest(Schema.Struct({
11
+ subscriptionId: Schema.NonEmptyString,
12
+ resourceGroup: Schema.NonEmptyString,
13
+ account: Schema.String.check(Schema.isPattern(/^[a-z0-9]{3,24}$/u)),
14
+ apiVersion: Schema.String.check(Schema.isPattern(/^\d{4}-\d{2}-\d{2}(?:-preview)?$/u)),
15
+ endpoint: Schema.optional(Schema.String),
16
+ accessToken: Schema.declare((value) => Effect.isEffect(value))
17
+ }), settings, "makeAccountAdministration", "azure");
18
+ const endpoint = yield* controlEndpoint(config.endpoint ?? "https://management.azure.com", "azure");
19
+ const http = yield* HttpClient.HttpClient;
20
+ const root = `${endpoint}/subscriptions/${encodeURIComponent(config.subscriptionId)}/resourceGroups/${encodeURIComponent(config.resourceGroup)}/providers/Microsoft.Storage/storageAccounts/${config.account}`;
21
+ const call = Effect.fnUntraced(function* (operation, method, suffix, properties) {
22
+ const token = yield* config.accessToken;
23
+ if (!Redacted.isRedacted(token) || !Redacted.value(token) || /[\r\n]/u.test(Redacted.value(token))) return yield* storageError(operation, "azure", { _tag: "AccessDenied" }, "not-started");
24
+ const output = yield* controlRequest(http, "azure", operation, `${root}${suffix}?api-version=${config.apiVersion}`, method, { authorization: `Bearer ${Redacted.value(token)}` }, properties === void 0 ? void 0 : { properties });
25
+ return {
26
+ _tag: method === "GET" ? "Observed" : "Accepted",
27
+ resource: output
28
+ };
29
+ });
30
+ return {
31
+ getAccount: () => call("getAccount", "GET", ""),
32
+ getBlobConfiguration: () => call("getBlobConfiguration", "GET", "/blobServices/default"),
33
+ getLifecycle: () => call("getLifecycle", "GET", "/managementPolicies/default"),
34
+ getReplication: (input) => decodeRequest(Schema.NonEmptyString, input.policyId, "getReplication", "azure").pipe(Effect.flatMap((id) => call("getReplication", "GET", `/objectReplicationPolicies/${encodeURIComponent(id)}`))),
35
+ setBlobConfiguration: Effect.fnUntraced(function* (input) {
36
+ const value = yield* decodeRequest(Schema.Struct({
37
+ properties: Schema.Struct({
38
+ cors: Schema.optional(Native),
39
+ isVersioningEnabled: Schema.optional(Schema.Boolean),
40
+ deleteRetentionPolicy: Schema.optional(Native),
41
+ containerDeleteRetentionPolicy: Schema.optional(Native),
42
+ restorePolicy: Schema.optional(Native),
43
+ changeFeed: Schema.optional(Native),
44
+ defaultServiceVersion: Schema.optional(Schema.String)
45
+ }),
46
+ intent: Schema.Literal("replace-blob-service-configuration")
47
+ }), input, "setBlobConfiguration", "azure", true);
48
+ return yield* call("setBlobConfiguration", "PUT", "/blobServices/default", value.properties);
49
+ }),
50
+ setAccountProtection: Effect.fnUntraced(function* (input) {
51
+ const value = yield* decodeRequest(Schema.Struct({
52
+ properties: Schema.Struct({
53
+ allowBlobPublicAccess: Schema.optional(Schema.Boolean),
54
+ minimumTlsVersion: Schema.optional(Schema.Literals(["TLS1_2", "TLS1_3"])),
55
+ encryption: Schema.optional(Native),
56
+ publicNetworkAccess: Schema.optional(Schema.Literals(["Enabled", "Disabled"]))
57
+ }),
58
+ intent: Schema.Literal("change-account-protection")
59
+ }), input, "setAccountProtection", "azure", true);
60
+ return yield* call("setAccountProtection", "PATCH", "", value.properties);
61
+ }),
62
+ setLifecycle: Effect.fnUntraced(function* (input) {
63
+ const value = yield* decodeRequest(Schema.Struct({
64
+ rules: Schema.Array(Native),
65
+ intent: Schema.Literal("replace-lifecycle-policy")
66
+ }), input, "setLifecycle", "azure", true);
67
+ return yield* call("setLifecycle", "PUT", "/managementPolicies/default", { policy: { rules: value.rules } });
68
+ }),
69
+ setReplication: Effect.fnUntraced(function* (input) {
70
+ const value = yield* decodeRequest(Schema.Struct({
71
+ policyId: Schema.NonEmptyString,
72
+ policy: Native,
73
+ intent: Schema.Literal("replace-replication-policy")
74
+ }), input, "setReplication", "azure", true);
75
+ return yield* call("setReplication", "PUT", `/objectReplicationPolicies/${encodeURIComponent(value.policyId)}`, value.policy);
76
+ })
77
+ };
78
+ });
79
+ var AzureAccountAdministration = class AzureAccountAdministration extends Context.Service()("@effect-kit/storage/azure/AzureAccountAdministration") {
80
+ static make = make;
81
+ static layerHttp(config) {
82
+ return Layer.effect(AzureAccountAdministration, make(config));
83
+ }
84
+ static layer(config) {
85
+ return AzureAccountAdministration.layerHttp(config).pipe(Layer.provide(FetchHttpClient.layer));
86
+ }
87
+ };
88
+
89
+ export { AzureAccountAdministration };
90
+ //# sourceMappingURL=account-admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-admin.js","names":[],"sources":["../../src/providers/azure/account-admin.ts"],"sourcesContent":["import { Context, Effect, Layer, Redacted, Schema } from \"effect\";\nimport { FetchHttpClient, HttpClient } from \"effect/http\";\n\nimport { storageError } from \"../../core/errors.js\";\nimport { controlEndpoint, controlRequest } from \"../../internal/http/control-plane.js\";\nimport { decodeRequest } from \"../../internal/request-validation.js\";\n\nexport interface AzureAccountConfig {\n readonly subscriptionId: string;\n readonly resourceGroup: string;\n readonly account: string;\n readonly apiVersion: string;\n readonly endpoint?: string;\n readonly accessToken: Effect.Effect<Redacted.Redacted<string>, ReturnType<typeof storageError>>;\n}\nconst Native = Schema.Record(Schema.String, Schema.Unknown);\nconst make = Effect.fnUntraced(function* (settings: AzureAccountConfig) {\n const config = yield* decodeRequest(\n Schema.Struct({\n subscriptionId: Schema.NonEmptyString,\n resourceGroup: Schema.NonEmptyString,\n account: Schema.String.check(Schema.isPattern(/^[a-z0-9]{3,24}$/u)),\n apiVersion: Schema.String.check(Schema.isPattern(/^\\d{4}-\\d{2}-\\d{2}(?:-preview)?$/u)),\n endpoint: Schema.optional(Schema.String),\n accessToken: Schema.declare<AzureAccountConfig[\"accessToken\"]>(\n (value): value is AzureAccountConfig[\"accessToken\"] => Effect.isEffect(value),\n ),\n }),\n settings,\n \"makeAccountAdministration\",\n \"azure\",\n );\n const endpoint = yield* controlEndpoint(\n config.endpoint ?? \"https://management.azure.com\",\n \"azure\",\n );\n const http = yield* HttpClient.HttpClient;\n const root = `${endpoint}/subscriptions/${encodeURIComponent(config.subscriptionId)}/resourceGroups/${encodeURIComponent(config.resourceGroup)}/providers/Microsoft.Storage/storageAccounts/${config.account}`;\n const call = Effect.fnUntraced(function* (\n operation: string,\n method: \"GET\" | \"PUT\" | \"PATCH\",\n suffix: string,\n properties?: unknown,\n ) {\n const token = yield* config.accessToken;\n if (\n !Redacted.isRedacted(token) ||\n !Redacted.value(token) ||\n /[\\r\\n]/u.test(Redacted.value(token))\n )\n return yield* storageError(operation, \"azure\", { _tag: \"AccessDenied\" }, \"not-started\");\n const output = yield* controlRequest(\n http,\n \"azure\",\n operation,\n `${root}${suffix}?api-version=${config.apiVersion}`,\n method,\n { authorization: `Bearer ${Redacted.value(token)}` },\n properties === undefined ? undefined : { properties },\n );\n return {\n _tag: method === \"GET\" ? (\"Observed\" as const) : (\"Accepted\" as const),\n resource: output,\n };\n });\n return {\n getAccount: () => call(\"getAccount\", \"GET\", \"\"),\n getBlobConfiguration: () => call(\"getBlobConfiguration\", \"GET\", \"/blobServices/default\"),\n getLifecycle: () => call(\"getLifecycle\", \"GET\", \"/managementPolicies/default\"),\n getReplication: (input: { readonly policyId: string }) =>\n decodeRequest(Schema.NonEmptyString, input.policyId, \"getReplication\", \"azure\").pipe(\n Effect.flatMap((id) =>\n call(\"getReplication\", \"GET\", `/objectReplicationPolicies/${encodeURIComponent(id)}`),\n ),\n ),\n setBlobConfiguration: Effect.fnUntraced(function* (input: {\n readonly properties: Readonly<Record<string, unknown>>;\n readonly intent: \"replace-blob-service-configuration\";\n }) {\n const value = yield* decodeRequest(\n Schema.Struct({\n properties: Schema.Struct({\n cors: Schema.optional(Native),\n isVersioningEnabled: Schema.optional(Schema.Boolean),\n deleteRetentionPolicy: Schema.optional(Native),\n containerDeleteRetentionPolicy: Schema.optional(Native),\n restorePolicy: Schema.optional(Native),\n changeFeed: Schema.optional(Native),\n defaultServiceVersion: Schema.optional(Schema.String),\n }),\n intent: Schema.Literal(\"replace-blob-service-configuration\"),\n }),\n input,\n \"setBlobConfiguration\",\n \"azure\",\n true,\n );\n return yield* call(\"setBlobConfiguration\", \"PUT\", \"/blobServices/default\", value.properties);\n }),\n setAccountProtection: Effect.fnUntraced(function* (input: {\n readonly properties: Readonly<Record<string, unknown>>;\n readonly intent: \"change-account-protection\";\n }) {\n const value = yield* decodeRequest(\n Schema.Struct({\n properties: Schema.Struct({\n allowBlobPublicAccess: Schema.optional(Schema.Boolean),\n minimumTlsVersion: Schema.optional(Schema.Literals([\"TLS1_2\", \"TLS1_3\"])),\n encryption: Schema.optional(Native),\n publicNetworkAccess: Schema.optional(Schema.Literals([\"Enabled\", \"Disabled\"])),\n }),\n intent: Schema.Literal(\"change-account-protection\"),\n }),\n input,\n \"setAccountProtection\",\n \"azure\",\n true,\n );\n return yield* call(\"setAccountProtection\", \"PATCH\", \"\", value.properties);\n }),\n setLifecycle: Effect.fnUntraced(function* (input: {\n readonly rules: ReadonlyArray<Readonly<Record<string, unknown>>>;\n readonly intent: \"replace-lifecycle-policy\";\n }) {\n const value = yield* decodeRequest(\n Schema.Struct({\n rules: Schema.Array(Native),\n intent: Schema.Literal(\"replace-lifecycle-policy\"),\n }),\n input,\n \"setLifecycle\",\n \"azure\",\n true,\n );\n return yield* call(\"setLifecycle\", \"PUT\", \"/managementPolicies/default\", {\n policy: { rules: value.rules },\n });\n }),\n setReplication: Effect.fnUntraced(function* (input: {\n readonly policyId: string;\n readonly policy: Readonly<Record<string, unknown>>;\n readonly intent: \"replace-replication-policy\";\n }) {\n const value = yield* decodeRequest(\n Schema.Struct({\n policyId: Schema.NonEmptyString,\n policy: Native,\n intent: Schema.Literal(\"replace-replication-policy\"),\n }),\n input,\n \"setReplication\",\n \"azure\",\n true,\n );\n return yield* call(\n \"setReplication\",\n \"PUT\",\n `/objectReplicationPolicies/${encodeURIComponent(value.policyId)}`,\n value.policy,\n );\n }),\n };\n});\nexport class AzureAccountAdministration extends Context.Service<\n AzureAccountAdministration,\n Effect.Success<ReturnType<typeof make>>\n>()(\"@effect-kit/storage/azure/AzureAccountAdministration\") {\n static readonly make = make;\n static layerHttp(config: AzureAccountConfig) {\n return Layer.effect(AzureAccountAdministration, make(config));\n }\n static layer(config: AzureAccountConfig) {\n return AzureAccountAdministration.layerHttp(config).pipe(Layer.provide(FetchHttpClient.layer));\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { StorageError } from "../core/errors.js";
2
+ import "../index.js";
3
+ import { AzureConfig } from "../providers/azure/config.js";
4
+ import { Context, Effect, Layer, Redacted } from "effect";
5
+ import { BlobServiceProperties } from "@azure/storage-blob";
6
+ export interface AzureAdminConfig {
7
+ readonly serviceUrl: string | Redacted.Redacted<string>;
8
+ readonly credential?: AzureConfig["credential"];
9
+ }
10
+ declare const AzureAdministration_base: Context.ServiceClass<AzureAdministration, "@effect-kit/storage/azure/AzureAdministration", {
11
+ listPage: (input?: {
12
+ readonly cursor?: string;
13
+ readonly limit?: number;
14
+ } | undefined) => Effect.Effect<{
15
+ containers: any;
16
+ cursor: any;
17
+ }, StorageError, never>;
18
+ head: (input: {
19
+ readonly container: string;
20
+ }) => Effect.Effect<import("@azure/storage-blob").ContainerGetPropertiesResponse, StorageError, never>;
21
+ create: (input: {
22
+ readonly container: string;
23
+ }) => Effect.Effect<{
24
+ _tag: "Accepted";
25
+ }, StorageError, never>;
26
+ deleteEmpty: (_input: {
27
+ readonly container: string;
28
+ }) => Effect.Effect<never, StorageError, never>;
29
+ configuration: {
30
+ get: () => Effect.Effect<import("@azure/storage-blob").ServiceGetPropertiesResponse, StorageError, never>;
31
+ set: (input: {
32
+ readonly properties: BlobServiceProperties;
33
+ readonly intent: "replace-service-configuration";
34
+ }) => Effect.Effect<import("@azure/storage-blob").ServiceSetPropertiesResponse, StorageError, never>;
35
+ };
36
+ }>;
37
+ export declare class AzureAdministration extends AzureAdministration_base {
38
+ static readonly make: (config: AzureAdminConfig) => Effect.Effect<{
39
+ listPage: (input?: {
40
+ readonly cursor?: string;
41
+ readonly limit?: number;
42
+ } | undefined) => Effect.Effect<{
43
+ containers: any;
44
+ cursor: any;
45
+ }, StorageError, never>;
46
+ head: (input: {
47
+ readonly container: string;
48
+ }) => Effect.Effect<import("@azure/storage-blob").ContainerGetPropertiesResponse, StorageError, never>;
49
+ create: (input: {
50
+ readonly container: string;
51
+ }) => Effect.Effect<{
52
+ _tag: "Accepted";
53
+ }, StorageError, never>;
54
+ deleteEmpty: (_input: {
55
+ readonly container: string;
56
+ }) => Effect.Effect<never, StorageError, never>;
57
+ configuration: {
58
+ get: () => Effect.Effect<import("@azure/storage-blob").ServiceGetPropertiesResponse, StorageError, never>;
59
+ set: (input: {
60
+ readonly properties: BlobServiceProperties;
61
+ readonly intent: "replace-service-configuration";
62
+ }) => Effect.Effect<import("@azure/storage-blob").ServiceSetPropertiesResponse, StorageError, never>;
63
+ };
64
+ }, StorageError, never>;
65
+ static layer(config: AzureAdminConfig): Layer.Layer<AzureAdministration, StorageError, never>;
66
+ }
67
+ export {};
68
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1,85 @@
1
+ import { storageError } from "../core/errors.js";
2
+ import { decodeRequest } from "../internal/request-validation.js";
3
+ import { providerError } from "../internal/node/provider-errors.js";
4
+ import { controlEndpoint } from "../internal/http/control-plane.js";
5
+ import { Context, Effect, Layer, Redacted, Schema } from "effect";
6
+ import { BlobServiceClient } from "@azure/storage-blob";
7
+
8
+ // src/providers/azure/admin.ts
9
+ const Container = Schema.String.check(Schema.isPattern(/^(?!.*--)[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$/u));
10
+ const call = (operation, mutation, request) => Effect.tryPromise({
11
+ try: request,
12
+ catch: (error) => providerError("azure", operation, mutation, error)
13
+ }).pipe(Effect.timeoutOrElse({
14
+ duration: "30 seconds",
15
+ orElse: () => Effect.fail(providerError("azure", operation, mutation, void 0))
16
+ }));
17
+ const make = Effect.fnUntraced(function* (config) {
18
+ const url = yield* Effect.try({
19
+ try: () => new URL(Redacted.isRedacted(config.serviceUrl) ? Redacted.value(config.serviceUrl) : config.serviceUrl),
20
+ catch: () => storageError("makeAdministration", "azure", {
21
+ _tag: "InvalidConfiguration",
22
+ field: "serviceUrl"
23
+ })
24
+ });
25
+ yield* controlEndpoint(url.origin, "azure");
26
+ if (url.username || url.password || url.hash || !config.credential && (!Redacted.isRedacted(config.serviceUrl) || !url.search)) return yield* storageError("makeAdministration", "azure", {
27
+ _tag: "InvalidConfiguration",
28
+ field: "management-credential"
29
+ });
30
+ const client = yield* Effect.try({
31
+ try: () => new BlobServiceClient(url.href, config.credential, { retryOptions: { maxTries: 1 } }),
32
+ catch: () => storageError("makeAdministration", "azure", {
33
+ _tag: "InvalidConfiguration",
34
+ field: "client"
35
+ })
36
+ });
37
+ return {
38
+ listPage: Effect.fnUntraced(function* (input = {}) {
39
+ const value = yield* decodeRequest(Schema.Struct({
40
+ cursor: Schema.optional(Schema.NonEmptyString),
41
+ limit: Schema.optional(Schema.Int.check(Schema.isBetween({
42
+ minimum: 1,
43
+ maximum: 1e3
44
+ })))
45
+ }), input, "listContainers", "azure");
46
+ const page = yield* call("listContainers", false, (signal) => client.listContainers({ abortSignal: signal }).byPage({
47
+ ...value.cursor ? { continuationToken: value.cursor } : {},
48
+ maxPageSize: value.limit ?? 1e3
49
+ }).next());
50
+ return {
51
+ containers: page.value?.containerItems ?? [],
52
+ cursor: page.value?.continuationToken
53
+ };
54
+ }),
55
+ head: Effect.fnUntraced(function* (input) {
56
+ const value = yield* decodeRequest(Schema.Struct({ container: Container }), input, "headContainer", "azure");
57
+ return yield* call("headContainer", false, (signal) => client.getContainerClient(value.container).getProperties({ abortSignal: signal }));
58
+ }),
59
+ create: Effect.fnUntraced(function* (input) {
60
+ const value = yield* decodeRequest(Schema.Struct({ container: Container }), input, "createContainer", "azure", true);
61
+ yield* call("createContainer", true, (signal) => client.getContainerClient(value.container).create({ abortSignal: signal }));
62
+ return { _tag: "Accepted" };
63
+ }),
64
+ deleteEmpty: (_input) => Effect.fail(storageError("deleteEmpty", "azure", {
65
+ _tag: "Unsupported",
66
+ capability: "atomic-nonempty-container-protection"
67
+ }, "not-started")),
68
+ configuration: {
69
+ get: () => call("getServiceProperties", false, (signal) => client.getProperties({ abortSignal: signal })),
70
+ set: (input) => input.intent === "replace-service-configuration" ? call("setServiceProperties", true, (signal) => client.setProperties(input.properties, { abortSignal: signal })) : Effect.fail(storageError("setServiceProperties", "azure", {
71
+ _tag: "InvalidInput",
72
+ field: "intent"
73
+ }, "not-started"))
74
+ }
75
+ };
76
+ });
77
+ var AzureAdministration = class AzureAdministration extends Context.Service()("@effect-kit/storage/azure/AzureAdministration") {
78
+ static make = make;
79
+ static layer(config) {
80
+ return Layer.effect(AzureAdministration, make(config));
81
+ }
82
+ };
83
+
84
+ export { AzureAdministration };
85
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","names":[],"sources":["../../src/providers/azure/admin.ts"],"sourcesContent":["import { Context, Effect, Layer, Redacted, Schema } from \"effect\";\n\nimport { BlobServiceClient } from \"@azure/storage-blob\";\nimport type { BlobServiceProperties } from \"@azure/storage-blob\";\n\nimport { storageError } from \"../../core/errors.js\";\nimport { controlEndpoint } from \"../../internal/http/control-plane.js\";\nimport { providerError } from \"../../internal/node/provider-errors.js\";\nimport { decodeRequest } from \"../../internal/request-validation.js\";\nimport type { AzureConfig } from \"./config.js\";\n\nexport interface AzureAdminConfig {\n readonly serviceUrl: string | Redacted.Redacted<string>;\n readonly credential?: AzureConfig[\"credential\"];\n}\nconst Container = Schema.String.check(\n Schema.isPattern(/^(?!.*--)[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$/u),\n);\nconst call = <A>(\n operation: string,\n mutation: boolean,\n request: (signal: AbortSignal) => Promise<A>,\n) =>\n Effect.tryPromise({\n try: request,\n catch: (error) => providerError(\"azure\", operation, mutation, error),\n }).pipe(\n Effect.timeoutOrElse({\n duration: \"30 seconds\",\n orElse: () => Effect.fail(providerError(\"azure\", operation, mutation, undefined)),\n }),\n );\n\nconst make = Effect.fnUntraced(function* (config: AzureAdminConfig) {\n const url = yield* Effect.try({\n try: () =>\n new URL(\n Redacted.isRedacted(config.serviceUrl)\n ? Redacted.value(config.serviceUrl)\n : config.serviceUrl,\n ),\n catch: () =>\n storageError(\"makeAdministration\", \"azure\", {\n _tag: \"InvalidConfiguration\",\n field: \"serviceUrl\",\n }),\n });\n yield* controlEndpoint(url.origin, \"azure\");\n if (\n url.username ||\n url.password ||\n url.hash ||\n (!config.credential && (!Redacted.isRedacted(config.serviceUrl) || !url.search))\n )\n return yield* storageError(\"makeAdministration\", \"azure\", {\n _tag: \"InvalidConfiguration\",\n field: \"management-credential\",\n });\n const client = yield* Effect.try({\n try: () =>\n new BlobServiceClient(url.href, config.credential, { retryOptions: { maxTries: 1 } }),\n catch: () =>\n storageError(\"makeAdministration\", \"azure\", {\n _tag: \"InvalidConfiguration\",\n field: \"client\",\n }),\n });\n return {\n listPage: Effect.fnUntraced(function* (\n input: { readonly cursor?: string; readonly limit?: number } = {},\n ) {\n const value = yield* decodeRequest(\n Schema.Struct({\n cursor: Schema.optional(Schema.NonEmptyString),\n limit: Schema.optional(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 1000 }))),\n }),\n input,\n \"listContainers\",\n \"azure\",\n );\n const page = yield* call(\"listContainers\", false, (signal) =>\n client\n .listContainers({ abortSignal: signal })\n .byPage({\n ...(value.cursor ? { continuationToken: value.cursor } : {}),\n maxPageSize: value.limit ?? 1000,\n })\n .next(),\n );\n return {\n containers: page.value?.containerItems ?? [],\n cursor: page.value?.continuationToken,\n };\n }),\n head: Effect.fnUntraced(function* (input: { readonly container: string }) {\n const value = yield* decodeRequest(\n Schema.Struct({ container: Container }),\n input,\n \"headContainer\",\n \"azure\",\n );\n return yield* call(\"headContainer\", false, (signal) =>\n client.getContainerClient(value.container).getProperties({ abortSignal: signal }),\n );\n }),\n create: Effect.fnUntraced(function* (input: { readonly container: string }) {\n const value = yield* decodeRequest(\n Schema.Struct({ container: Container }),\n input,\n \"createContainer\",\n \"azure\",\n true,\n );\n yield* call(\"createContainer\", true, (signal) =>\n client.getContainerClient(value.container).create({ abortSignal: signal }),\n );\n return { _tag: \"Accepted\" as const };\n }),\n deleteEmpty: (_input: { readonly container: string }) =>\n Effect.fail(\n storageError(\n \"deleteEmpty\",\n \"azure\",\n { _tag: \"Unsupported\", capability: \"atomic-nonempty-container-protection\" },\n \"not-started\",\n ),\n ),\n configuration: {\n get: () =>\n call(\"getServiceProperties\", false, (signal) =>\n client.getProperties({ abortSignal: signal }),\n ),\n set: (input: {\n readonly properties: BlobServiceProperties;\n readonly intent: \"replace-service-configuration\";\n }) =>\n input.intent === \"replace-service-configuration\"\n ? call(\"setServiceProperties\", true, (signal) =>\n client.setProperties(input.properties, { abortSignal: signal }),\n )\n : Effect.fail(\n storageError(\n \"setServiceProperties\",\n \"azure\",\n { _tag: \"InvalidInput\", field: \"intent\" },\n \"not-started\",\n ),\n ),\n },\n };\n});\nexport class AzureAdministration extends Context.Service<\n AzureAdministration,\n Effect.Success<ReturnType<typeof make>>\n>()(\"@effect-kit/storage/azure/AzureAdministration\") {\n static readonly make = make;\n static layer(config: AzureAdminConfig) {\n return Layer.effect(AzureAdministration, make(config));\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { ObjectRef } from "../core/object.js";
2
+ import { StorageError } from "../core/errors.js";
3
+ import "../index.js";
4
+ import { AzureStorage, AzureStorageService } from "../azure.js";
5
+ import { Context, Effect, Layer } from "effect";
6
+ declare const make: (storage: AzureStorageService) => {
7
+ setTier: (input: {
8
+ readonly ref: {
9
+ readonly storeId: string;
10
+ readonly key: string;
11
+ readonly version?: {
12
+ readonly _tag: "S3Version";
13
+ readonly id: string;
14
+ } | {
15
+ readonly _tag: "GcsGeneration";
16
+ readonly id: string;
17
+ readonly metageneration?: string | undefined;
18
+ } | {
19
+ readonly _tag: "AzureVersion";
20
+ readonly id: string;
21
+ } | {
22
+ readonly _tag: "AzureSnapshot";
23
+ readonly id: string;
24
+ } | {
25
+ readonly _tag: "OpaqueVersion";
26
+ readonly provider: string;
27
+ readonly id: string;
28
+ } | undefined;
29
+ };
30
+ readonly tier: "Archive" | "Cold" | "Cool" | "Hot";
31
+ readonly priority?: "High" | "Standard" | undefined;
32
+ }) => Effect.Effect<{
33
+ _tag: "Accepted";
34
+ }, StorageError, never>;
35
+ restoreStatus: (input: {
36
+ readonly ref: ObjectRef;
37
+ }) => Effect.Effect<{
38
+ _tag: "Archived" | "Pending" | "Ready";
39
+ tier: string | undefined;
40
+ rehydration: string | undefined;
41
+ }, StorageError, never>;
42
+ undelete: (input: {
43
+ readonly ref: ObjectRef;
44
+ }) => Effect.Effect<{
45
+ _tag: "Accepted";
46
+ }, StorageError, never>;
47
+ };
48
+ declare const AzureArchive_base: Context.ServiceClass<AzureArchive, "@effect-kit/storage/azure/AzureArchive", {
49
+ setTier: (input: {
50
+ readonly ref: {
51
+ readonly storeId: string;
52
+ readonly key: string;
53
+ readonly version?: {
54
+ readonly _tag: "S3Version";
55
+ readonly id: string;
56
+ } | {
57
+ readonly _tag: "GcsGeneration";
58
+ readonly id: string;
59
+ readonly metageneration?: string | undefined;
60
+ } | {
61
+ readonly _tag: "AzureVersion";
62
+ readonly id: string;
63
+ } | {
64
+ readonly _tag: "AzureSnapshot";
65
+ readonly id: string;
66
+ } | {
67
+ readonly _tag: "OpaqueVersion";
68
+ readonly provider: string;
69
+ readonly id: string;
70
+ } | undefined;
71
+ };
72
+ readonly tier: "Archive" | "Cold" | "Cool" | "Hot";
73
+ readonly priority?: "High" | "Standard" | undefined;
74
+ }) => Effect.Effect<{
75
+ _tag: "Accepted";
76
+ }, StorageError, never>;
77
+ restoreStatus: (input: {
78
+ readonly ref: ObjectRef;
79
+ }) => Effect.Effect<{
80
+ _tag: "Archived" | "Pending" | "Ready";
81
+ tier: string | undefined;
82
+ rehydration: string | undefined;
83
+ }, StorageError, never>;
84
+ undelete: (input: {
85
+ readonly ref: ObjectRef;
86
+ }) => Effect.Effect<{
87
+ _tag: "Accepted";
88
+ }, StorageError, never>;
89
+ }>;
90
+ export declare class AzureArchive extends AzureArchive_base {
91
+ static readonly make: typeof make;
92
+ static readonly layer: Layer.Layer<AzureArchive, never, AzureStorage>;
93
+ }
94
+ export {};
95
+ //# sourceMappingURL=archive.d.ts.map
@@ -0,0 +1,52 @@
1
+ import { ObjectRef } from "../core/object.js";
2
+ import { decodeRequest } from "../internal/request-validation.js";
3
+ import { target } from "../providers/azure/mapping.js";
4
+ import { request } from "../providers/azure/transport.js";
5
+ import { AzureStorage } from "../azure.js";
6
+ import { Context, Effect, Layer, Schema } from "effect";
7
+
8
+ // src/providers/azure/archive.ts
9
+ const Tier = Schema.Struct({
10
+ ref: ObjectRef,
11
+ tier: Schema.Literals([
12
+ "Hot",
13
+ "Cool",
14
+ "Cold",
15
+ "Archive"
16
+ ]),
17
+ priority: Schema.optional(Schema.Literals(["Standard", "High"]))
18
+ });
19
+ const make = (storage) => ({
20
+ setTier: Effect.fnUntraced(function* (input) {
21
+ const value = yield* decodeRequest(Tier, input, "setTier", "azure", true);
22
+ const address = yield* target(storage, { ref: value.ref }, "setTier");
23
+ yield* request(storage, "setTier", true, (signal) => address.client.setAccessTier(value.tier, {
24
+ abortSignal: signal,
25
+ ...value.priority ? { rehydratePriority: value.priority } : {}
26
+ }));
27
+ return { _tag: "Accepted" };
28
+ }),
29
+ restoreStatus: Effect.fnUntraced(function* (input) {
30
+ const value = yield* decodeRequest(Schema.Struct({ ref: ObjectRef }), input, "restoreStatus", "azure");
31
+ const address = yield* target(storage, { ref: value.ref }, "restoreStatus");
32
+ const output = yield* request(storage, "restoreStatus", false, (signal) => address.client.getProperties({ abortSignal: signal }));
33
+ return {
34
+ _tag: output.archiveStatus ? "Pending" : output.accessTier === "Archive" ? "Archived" : "Ready",
35
+ tier: output.accessTier,
36
+ rehydration: output.archiveStatus
37
+ };
38
+ }),
39
+ undelete: Effect.fnUntraced(function* (input) {
40
+ const value = yield* decodeRequest(Schema.Struct({ ref: ObjectRef }), input, "undelete", "azure", true);
41
+ const address = yield* target(storage, { ref: value.ref }, "undelete");
42
+ yield* request(storage, "undelete", true, (signal) => address.client.undelete({ abortSignal: signal }));
43
+ return { _tag: "Accepted" };
44
+ })
45
+ });
46
+ var AzureArchive = class AzureArchive extends Context.Service()("@effect-kit/storage/azure/AzureArchive") {
47
+ static make = make;
48
+ static layer = Layer.effect(AzureArchive, Effect.map(AzureStorage, make));
49
+ };
50
+
51
+ export { AzureArchive };
52
+ //# sourceMappingURL=archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.js","names":[],"sources":["../../src/providers/azure/archive.ts"],"sourcesContent":["import { Context, Effect, Layer, Schema } from \"effect\";\n\nimport { ObjectRef } from \"../../core/object.js\";\nimport { decodeRequest } from \"../../internal/request-validation.js\";\nimport { AzureStorage } from \"./index.js\";\nimport type { AzureStorageService } from \"./index.js\";\nimport { target } from \"./mapping.js\";\nimport { request } from \"./transport.js\";\n\nconst Tier = Schema.Struct({\n ref: ObjectRef,\n tier: Schema.Literals([\"Hot\", \"Cool\", \"Cold\", \"Archive\"]),\n priority: Schema.optional(Schema.Literals([\"Standard\", \"High\"])),\n});\nconst make = (storage: AzureStorageService) => ({\n setTier: Effect.fnUntraced(function* (input: typeof Tier.Type) {\n const value = yield* decodeRequest(Tier, input, \"setTier\", \"azure\", true);\n const address = yield* target(storage, { ref: value.ref }, \"setTier\");\n yield* request(storage, \"setTier\", true, (signal) =>\n address.client.setAccessTier(value.tier, {\n abortSignal: signal,\n ...(value.priority ? { rehydratePriority: value.priority } : {}),\n }),\n );\n return { _tag: \"Accepted\" as const };\n }),\n restoreStatus: Effect.fnUntraced(function* (input: { readonly ref: ObjectRef }) {\n const value = yield* decodeRequest(\n Schema.Struct({ ref: ObjectRef }),\n input,\n \"restoreStatus\",\n \"azure\",\n );\n const address = yield* target(storage, { ref: value.ref }, \"restoreStatus\");\n const output = yield* request(storage, \"restoreStatus\", false, (signal) =>\n address.client.getProperties({ abortSignal: signal }),\n );\n return {\n _tag: output.archiveStatus\n ? (\"Pending\" as const)\n : output.accessTier === \"Archive\"\n ? (\"Archived\" as const)\n : (\"Ready\" as const),\n tier: output.accessTier,\n rehydration: output.archiveStatus,\n };\n }),\n undelete: Effect.fnUntraced(function* (input: { readonly ref: ObjectRef }) {\n const value = yield* decodeRequest(\n Schema.Struct({ ref: ObjectRef }),\n input,\n \"undelete\",\n \"azure\",\n true,\n );\n const address = yield* target(storage, { ref: value.ref }, \"undelete\");\n yield* request(storage, \"undelete\", true, (signal) =>\n address.client.undelete({ abortSignal: signal }),\n );\n return { _tag: \"Accepted\" as const };\n }),\n});\nexport class AzureArchive extends Context.Service<AzureArchive, ReturnType<typeof make>>()(\n \"@effect-kit/storage/azure/AzureArchive\",\n) {\n static readonly make = make;\n static readonly layer = Layer.effect(AzureArchive, Effect.map(AzureStorage, make));\n}\n"],"mappings":";;;;;;;;AASA,MAAM,OAAO,OAAO,OAAO;CACzB,KAAK;CACL,MAAM,OAAO,SAAS;EAAC;EAAO;EAAQ;EAAQ;CAAS,CAAC;CACxD,UAAU,OAAO,SAAS,OAAO,SAAS,CAAC,YAAY,MAAM,CAAC,CAAC;AACjE,CAAC;AACD,MAAM,QAAQ,aAAkC;CAC9C,SAAS,OAAO,WAAW,WAAW,OAAyB;EAC7D,MAAM,QAAQ,OAAO,cAAc,MAAM,OAAO,WAAW,SAAS,IAAI;EACxE,MAAM,UAAU,OAAO,OAAO,SAAS,EAAE,KAAK,MAAM,IAAI,GAAG,SAAS;EACpE,OAAO,QAAQ,SAAS,WAAW,OAAO,WACxC,QAAQ,OAAO,cAAc,MAAM,MAAM;GACvC,aAAa;GACb,GAAI,MAAM,WAAW,EAAE,mBAAmB,MAAM,SAAS,IAAI,CAAC;EAChE,CAAC,CACH;EACA,OAAO,EAAE,MAAM,WAAoB;CACrC,CAAC;CACD,eAAe,OAAO,WAAW,WAAW,OAAoC;EAC9E,MAAM,QAAQ,OAAO,cACnB,OAAO,OAAO,EAAE,KAAK,UAAU,CAAC,GAChC,OACA,iBACA,OACF;EACA,MAAM,UAAU,OAAO,OAAO,SAAS,EAAE,KAAK,MAAM,IAAI,GAAG,eAAe;EAC1E,MAAM,SAAS,OAAO,QAAQ,SAAS,iBAAiB,QAAQ,WAC9D,QAAQ,OAAO,cAAc,EAAE,aAAa,OAAO,CAAC,CACtD;EACA,OAAO;GACL,MAAM,OAAO,gBACR,YACD,OAAO,eAAe,YACnB,aACA;GACP,MAAM,OAAO;GACb,aAAa,OAAO;EACtB;CACF,CAAC;CACD,UAAU,OAAO,WAAW,WAAW,OAAoC;EACzE,MAAM,QAAQ,OAAO,cACnB,OAAO,OAAO,EAAE,KAAK,UAAU,CAAC,GAChC,OACA,YACA,SACA,IACF;EACA,MAAM,UAAU,OAAO,OAAO,SAAS,EAAE,KAAK,MAAM,IAAI,GAAG,UAAU;EACrE,OAAO,QAAQ,SAAS,YAAY,OAAO,WACzC,QAAQ,OAAO,SAAS,EAAE,aAAa,OAAO,CAAC,CACjD;EACA,OAAO,EAAE,MAAM,WAAoB;CACrC,CAAC;AACH;AACA,IAAa,eAAb,MAAa,qBAAqB,QAAQ,QAA+C,CAAC,CACxF,wCACF,CAAC,CAAC;CACA,OAAgB,OAAO;CACvB,OAAgB,QAAQ,MAAM,OAAO,cAAc,OAAO,IAAI,cAAc,IAAI,CAAC;AACnF"}
@@ -0,0 +1,40 @@
1
+ import { StorageError } from "../core/errors.js";
2
+ import "../index.js";
3
+ import { Effect, Redacted } from "effect";
4
+ export declare namespace AzureEvents {
5
+ const decode: (payload: unknown, options: {
6
+ readonly containerUrl: string;
7
+ readonly storeId: string;
8
+ }) => Effect.Effect<{
9
+ readonly provider: string;
10
+ readonly kind: "delete-marker-created" | "metadata-updated" | "object-created" | "object-deleted" | "other" | "restore-completed" | "version-archived";
11
+ readonly ref: {
12
+ readonly storeId: string;
13
+ readonly key: string;
14
+ readonly version?: {
15
+ readonly _tag: "S3Version";
16
+ readonly id: string;
17
+ } | {
18
+ readonly _tag: "GcsGeneration";
19
+ readonly id: string;
20
+ readonly metageneration?: string | undefined;
21
+ } | {
22
+ readonly _tag: "AzureVersion";
23
+ readonly id: string;
24
+ } | {
25
+ readonly _tag: "AzureSnapshot";
26
+ readonly id: string;
27
+ } | {
28
+ readonly _tag: "OpaqueVersion";
29
+ readonly provider: string;
30
+ readonly id: string;
31
+ } | undefined;
32
+ };
33
+ readonly occurredAt: import("effect/DateTime").Utc;
34
+ readonly id?: string | undefined;
35
+ readonly sequencer?: string | undefined;
36
+ readonly nativeType: string;
37
+ readonly native?: Redacted.Redacted<unknown> | undefined;
38
+ }[], StorageError, never>;
39
+ }
40
+ //# sourceMappingURL=events.d.ts.map