firebase-admin-edge 1.1.0 → 2.0.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 (445) hide show
  1. package/README.md +102 -405
  2. package/dist/app-check/app-check-endpoints.d.ts +31 -0
  3. package/dist/app-check/app-check-endpoints.d.ts.map +1 -0
  4. package/dist/app-check/app-check-endpoints.js +75 -0
  5. package/dist/app-check/app-check-endpoints.js.map +1 -0
  6. package/dist/app-check/app-check-jwt.d.ts +16 -0
  7. package/dist/app-check/app-check-jwt.d.ts.map +1 -0
  8. package/dist/app-check/app-check-jwt.js +59 -0
  9. package/dist/app-check/app-check-jwt.js.map +1 -0
  10. package/dist/app-check/app-check.d.ts +43 -0
  11. package/dist/app-check/app-check.d.ts.map +1 -0
  12. package/dist/app-check/app-check.js +141 -0
  13. package/dist/app-check/app-check.js.map +1 -0
  14. package/dist/auth/auth-blocking-types.d.ts +44 -0
  15. package/dist/auth/auth-blocking-types.d.ts.map +1 -0
  16. package/dist/auth/auth-blocking-types.js +2 -0
  17. package/dist/auth/auth-blocking-types.js.map +1 -0
  18. package/dist/auth/auth-config-types.d.ts +146 -0
  19. package/dist/auth/auth-config-types.d.ts.map +1 -0
  20. package/dist/auth/auth-config-types.js +2 -0
  21. package/dist/auth/auth-config-types.js.map +1 -0
  22. package/dist/auth/auth-config.d.ts +15 -0
  23. package/dist/auth/auth-config.d.ts.map +1 -0
  24. package/dist/auth/auth-config.js +413 -0
  25. package/dist/auth/auth-config.js.map +1 -0
  26. package/dist/auth/auth-emulator.d.ts +7 -0
  27. package/dist/auth/auth-emulator.d.ts.map +1 -0
  28. package/dist/auth/auth-emulator.js +24 -0
  29. package/dist/auth/auth-emulator.js.map +1 -0
  30. package/dist/auth/auth-endpoint-errors.d.ts +2 -0
  31. package/dist/auth/auth-endpoint-errors.d.ts.map +1 -1
  32. package/dist/auth/auth-endpoint-errors.js +20 -1
  33. package/dist/auth/auth-endpoint-errors.js.map +1 -1
  34. package/dist/auth/auth-error-codes.d.ts +12 -0
  35. package/dist/auth/auth-error-codes.d.ts.map +1 -1
  36. package/dist/auth/auth-error-codes.js +12 -0
  37. package/dist/auth/auth-error-codes.js.map +1 -1
  38. package/dist/auth/email-action-request.d.ts +40 -0
  39. package/dist/auth/email-action-request.d.ts.map +1 -0
  40. package/dist/auth/email-action-request.js +80 -0
  41. package/dist/auth/email-action-request.js.map +1 -0
  42. package/dist/auth/email-link.d.ts +24 -0
  43. package/dist/auth/email-link.d.ts.map +1 -0
  44. package/dist/auth/email-link.js +103 -0
  45. package/dist/auth/email-link.js.map +1 -0
  46. package/dist/auth/firebase-admin-auth.d.ts +60 -12
  47. package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
  48. package/dist/auth/firebase-admin-auth.js +455 -64
  49. package/dist/auth/firebase-admin-auth.js.map +1 -1
  50. package/dist/auth/firebase-auth-endpoints.d.ts +94 -4
  51. package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
  52. package/dist/auth/firebase-auth-endpoints.js +304 -64
  53. package/dist/auth/firebase-auth-endpoints.js.map +1 -1
  54. package/dist/auth/firebase-auth.d.ts +78 -4
  55. package/dist/auth/firebase-auth.d.ts.map +1 -1
  56. package/dist/auth/firebase-auth.js +101 -8
  57. package/dist/auth/firebase-auth.js.map +1 -1
  58. package/dist/auth/firebase-jwt.d.ts +19 -10
  59. package/dist/auth/firebase-jwt.d.ts.map +1 -1
  60. package/dist/auth/firebase-jwt.js +176 -39
  61. package/dist/auth/firebase-jwt.js.map +1 -1
  62. package/dist/auth/firebase-types.d.ts +3 -0
  63. package/dist/auth/firebase-types.d.ts.map +1 -1
  64. package/dist/auth/google-oauth.d.ts +0 -1
  65. package/dist/auth/google-oauth.d.ts.map +1 -1
  66. package/dist/auth/google-oauth.js +16 -86
  67. package/dist/auth/google-oauth.js.map +1 -1
  68. package/dist/auth/project-config-manager.d.ts +10 -0
  69. package/dist/auth/project-config-manager.d.ts.map +1 -0
  70. package/dist/auth/project-config-manager.js +22 -0
  71. package/dist/auth/project-config-manager.js.map +1 -0
  72. package/dist/auth/provider-credential.d.ts +43 -0
  73. package/dist/auth/provider-credential.d.ts.map +1 -0
  74. package/dist/auth/provider-credential.js +107 -0
  75. package/dist/auth/provider-credential.js.map +1 -0
  76. package/dist/auth/provider-session.d.ts +10 -0
  77. package/dist/auth/provider-session.d.ts.map +1 -0
  78. package/dist/auth/provider-session.js +28 -0
  79. package/dist/auth/provider-session.js.map +1 -0
  80. package/dist/auth/tenant-manager.d.ts +17 -0
  81. package/dist/auth/tenant-manager.d.ts.map +1 -0
  82. package/dist/auth/tenant-manager.js +59 -0
  83. package/dist/auth/tenant-manager.js.map +1 -0
  84. package/dist/auth/user-batch.d.ts +21 -0
  85. package/dist/auth/user-batch.d.ts.map +1 -0
  86. package/dist/auth/user-batch.js +49 -0
  87. package/dist/auth/user-batch.js.map +1 -0
  88. package/dist/auth/user-import.d.ts +55 -0
  89. package/dist/auth/user-import.d.ts.map +1 -0
  90. package/dist/auth/user-import.js +208 -0
  91. package/dist/auth/user-import.js.map +1 -0
  92. package/dist/auth/user-request.d.ts +10 -0
  93. package/dist/auth/user-request.d.ts.map +1 -1
  94. package/dist/auth/user-request.js +56 -0
  95. package/dist/auth/user-request.js.map +1 -1
  96. package/dist/db/aggregate.d.ts +49 -0
  97. package/dist/db/aggregate.d.ts.map +1 -0
  98. package/dist/db/aggregate.js +115 -0
  99. package/dist/db/aggregate.js.map +1 -0
  100. package/dist/db/bulk-writer.d.ts +55 -0
  101. package/dist/db/bulk-writer.d.ts.map +1 -0
  102. package/dist/db/bulk-writer.js +257 -0
  103. package/dist/db/bulk-writer.js.map +1 -0
  104. package/dist/db/bundle-builder.d.ts +17 -0
  105. package/dist/db/bundle-builder.d.ts.map +1 -0
  106. package/dist/db/bundle-builder.js +118 -0
  107. package/dist/db/bundle-builder.js.map +1 -0
  108. package/dist/db/bytes.d.ts +12 -0
  109. package/dist/db/bytes.d.ts.map +1 -0
  110. package/dist/db/bytes.js +49 -0
  111. package/dist/db/bytes.js.map +1 -0
  112. package/dist/db/collection-group.d.ts +14 -0
  113. package/dist/db/collection-group.d.ts.map +1 -0
  114. package/dist/db/collection-group.js +43 -0
  115. package/dist/db/collection-group.js.map +1 -0
  116. package/dist/db/collection-reference.d.ts +21 -0
  117. package/dist/db/collection-reference.d.ts.map +1 -0
  118. package/dist/db/collection-reference.js +46 -0
  119. package/dist/db/collection-reference.js.map +1 -0
  120. package/dist/db/document-reference.d.ts +41 -0
  121. package/dist/db/document-reference.d.ts.map +1 -0
  122. package/dist/db/document-reference.js +125 -0
  123. package/dist/db/document-reference.js.map +1 -0
  124. package/dist/db/document-snapshot.d.ts +31 -0
  125. package/dist/db/document-snapshot.d.ts.map +1 -0
  126. package/dist/db/document-snapshot.js +103 -0
  127. package/dist/db/document-snapshot.js.map +1 -0
  128. package/dist/db/explain.d.ts +28 -0
  129. package/dist/db/explain.d.ts.map +1 -0
  130. package/dist/db/explain.js +61 -0
  131. package/dist/db/explain.js.map +1 -0
  132. package/dist/db/field-path.d.ts +10 -0
  133. package/dist/db/field-path.d.ts.map +1 -0
  134. package/dist/db/field-path.js +65 -0
  135. package/dist/db/field-path.js.map +1 -0
  136. package/dist/db/field-value.d.ts +17 -0
  137. package/dist/db/field-value.d.ts.map +1 -0
  138. package/dist/db/field-value.js +57 -0
  139. package/dist/db/field-value.js.map +1 -0
  140. package/dist/db/filter.d.ts +20 -0
  141. package/dist/db/filter.d.ts.map +1 -0
  142. package/dist/db/filter.js +48 -0
  143. package/dist/db/filter.js.map +1 -0
  144. package/dist/db/firestore-converter.d.ts +11 -0
  145. package/dist/db/firestore-converter.d.ts.map +1 -0
  146. package/dist/db/firestore-converter.js +14 -0
  147. package/dist/db/firestore-converter.js.map +1 -0
  148. package/dist/db/firestore-document.d.ts +62 -0
  149. package/dist/db/firestore-document.d.ts.map +1 -0
  150. package/dist/db/firestore-document.js +238 -0
  151. package/dist/db/firestore-document.js.map +1 -0
  152. package/dist/db/firestore-endpoints.d.ts +41 -0
  153. package/dist/db/firestore-endpoints.d.ts.map +1 -0
  154. package/dist/db/firestore-endpoints.js +735 -0
  155. package/dist/db/firestore-endpoints.js.map +1 -0
  156. package/dist/db/firestore-error-codes.d.ts +24 -0
  157. package/dist/db/firestore-error-codes.d.ts.map +1 -0
  158. package/dist/db/firestore-error-codes.js +24 -0
  159. package/dist/db/firestore-error-codes.js.map +1 -0
  160. package/dist/db/firestore-logging.d.ts +23 -0
  161. package/dist/db/firestore-logging.d.ts.map +1 -0
  162. package/dist/db/firestore-logging.js +41 -0
  163. package/dist/db/firestore-logging.js.map +1 -0
  164. package/dist/db/firestore-path.d.ts +4 -0
  165. package/dist/db/firestore-path.d.ts.map +1 -0
  166. package/dist/db/firestore-path.js +37 -0
  167. package/dist/db/firestore-path.js.map +1 -0
  168. package/dist/db/firestore-results.d.ts +12 -0
  169. package/dist/db/firestore-results.d.ts.map +1 -0
  170. package/dist/db/firestore-results.js +19 -0
  171. package/dist/db/firestore-results.js.map +1 -0
  172. package/dist/db/firestore-settings.d.ts +22 -0
  173. package/dist/db/firestore-settings.d.ts.map +1 -0
  174. package/dist/db/firestore-settings.js +83 -0
  175. package/dist/db/firestore-settings.js.map +1 -0
  176. package/dist/db/firestore-telemetry.d.ts +21 -0
  177. package/dist/db/firestore-telemetry.d.ts.map +1 -0
  178. package/dist/db/firestore-telemetry.js +84 -0
  179. package/dist/db/firestore-telemetry.js.map +1 -0
  180. package/dist/db/firestore-types.d.ts +25 -0
  181. package/dist/db/firestore-types.d.ts.map +1 -0
  182. package/dist/db/firestore-types.js +2 -0
  183. package/dist/db/firestore-types.js.map +1 -0
  184. package/dist/db/firestore.d.ts +151 -0
  185. package/dist/db/firestore.d.ts.map +1 -0
  186. package/dist/db/firestore.js +505 -0
  187. package/dist/db/firestore.js.map +1 -0
  188. package/dist/db/geo-point.d.ts +11 -0
  189. package/dist/db/geo-point.d.ts.map +1 -0
  190. package/dist/db/geo-point.js +29 -0
  191. package/dist/db/geo-point.js.map +1 -0
  192. package/dist/db/json-stream.d.ts +3 -0
  193. package/dist/db/json-stream.d.ts.map +1 -0
  194. package/dist/db/json-stream.js +117 -0
  195. package/dist/db/json-stream.js.map +1 -0
  196. package/dist/db/pipeline-expression.d.ts +293 -0
  197. package/dist/db/pipeline-expression.d.ts.map +1 -0
  198. package/dist/db/pipeline-expression.js +1436 -0
  199. package/dist/db/pipeline-expression.js.map +1 -0
  200. package/dist/db/pipeline-query.d.ts +6 -0
  201. package/dist/db/pipeline-query.d.ts.map +1 -0
  202. package/dist/db/pipeline-query.js +91 -0
  203. package/dist/db/pipeline-query.js.map +1 -0
  204. package/dist/db/pipeline.d.ts +120 -0
  205. package/dist/db/pipeline.d.ts.map +1 -0
  206. package/dist/db/pipeline.js +396 -0
  207. package/dist/db/pipeline.js.map +1 -0
  208. package/dist/db/query-document-snapshot.d.ts +2 -0
  209. package/dist/db/query-document-snapshot.d.ts.map +1 -0
  210. package/dist/db/query-document-snapshot.js +2 -0
  211. package/dist/db/query-document-snapshot.js.map +1 -0
  212. package/dist/db/query-partition.d.ts +14 -0
  213. package/dist/db/query-partition.d.ts.map +1 -0
  214. package/dist/db/query-partition.js +32 -0
  215. package/dist/db/query-partition.js.map +1 -0
  216. package/dist/db/query-request.d.ts +96 -0
  217. package/dist/db/query-request.d.ts.map +1 -0
  218. package/dist/db/query-request.js +283 -0
  219. package/dist/db/query-request.js.map +1 -0
  220. package/dist/db/query.d.ts +129 -0
  221. package/dist/db/query.d.ts.map +1 -0
  222. package/dist/db/query.js +468 -0
  223. package/dist/db/query.js.map +1 -0
  224. package/dist/db/recursive-delete.d.ts +6 -0
  225. package/dist/db/recursive-delete.d.ts.map +1 -0
  226. package/dist/db/recursive-delete.js +38 -0
  227. package/dist/db/recursive-delete.js.map +1 -0
  228. package/dist/db/snapshot-listener.d.ts +10 -0
  229. package/dist/db/snapshot-listener.d.ts.map +1 -0
  230. package/dist/db/snapshot-listener.js +71 -0
  231. package/dist/db/snapshot-listener.js.map +1 -0
  232. package/dist/db/timestamp.d.ts +29 -0
  233. package/dist/db/timestamp.d.ts.map +1 -0
  234. package/dist/db/timestamp.js +98 -0
  235. package/dist/db/timestamp.js.map +1 -0
  236. package/dist/db/transaction.d.ts +44 -0
  237. package/dist/db/transaction.d.ts.map +1 -0
  238. package/dist/db/transaction.js +177 -0
  239. package/dist/db/transaction.js.map +1 -0
  240. package/dist/db/value-equality.d.ts +3 -0
  241. package/dist/db/value-equality.d.ts.map +1 -0
  242. package/dist/db/value-equality.js +29 -0
  243. package/dist/db/value-equality.js.map +1 -0
  244. package/dist/db/vector-query.d.ts +38 -0
  245. package/dist/db/vector-query.d.ts.map +1 -0
  246. package/dist/db/vector-query.js +110 -0
  247. package/dist/db/vector-query.js.map +1 -0
  248. package/dist/db/vector-value.d.ts +8 -0
  249. package/dist/db/vector-value.d.ts.map +1 -0
  250. package/dist/db/vector-value.js +25 -0
  251. package/dist/db/vector-value.js.map +1 -0
  252. package/dist/db/write-batch.d.ts +25 -0
  253. package/dist/db/write-batch.d.ts.map +1 -0
  254. package/dist/db/write-batch.js +72 -0
  255. package/dist/db/write-batch.js.map +1 -0
  256. package/dist/db/write-request.d.ts +36 -0
  257. package/dist/db/write-request.d.ts.map +1 -0
  258. package/dist/db/write-request.js +257 -0
  259. package/dist/db/write-request.js.map +1 -0
  260. package/dist/firebase-edge-server.d.ts +143 -36
  261. package/dist/firebase-edge-server.d.ts.map +1 -1
  262. package/dist/firebase-edge-server.js +466 -257
  263. package/dist/firebase-edge-server.js.map +1 -1
  264. package/dist/index.d.ts +6 -0
  265. package/dist/index.d.ts.map +1 -1
  266. package/dist/index.js +5 -0
  267. package/dist/index.js.map +1 -1
  268. package/dist/rest-fetch.d.ts +1 -1
  269. package/dist/rest-fetch.d.ts.map +1 -1
  270. package/dist/storage/storage-acl.d.ts +48 -0
  271. package/dist/storage/storage-acl.d.ts.map +1 -0
  272. package/dist/storage/storage-acl.js +101 -0
  273. package/dist/storage/storage-acl.js.map +1 -0
  274. package/dist/storage/storage-bucket-endpoints.d.ts +10 -0
  275. package/dist/storage/storage-bucket-endpoints.d.ts.map +1 -0
  276. package/dist/storage/storage-bucket-endpoints.js +514 -0
  277. package/dist/storage/storage-bucket-endpoints.js.map +1 -0
  278. package/dist/storage/storage-bucket-types.d.ts +183 -0
  279. package/dist/storage/storage-bucket-types.d.ts.map +1 -0
  280. package/dist/storage/storage-bucket-types.js +2 -0
  281. package/dist/storage/storage-bucket-types.js.map +1 -0
  282. package/dist/storage/storage-bucket.d.ts +122 -0
  283. package/dist/storage/storage-bucket.d.ts.map +1 -0
  284. package/dist/storage/storage-bucket.js +544 -0
  285. package/dist/storage/storage-bucket.js.map +1 -0
  286. package/dist/storage/storage-channel.d.ts +10 -0
  287. package/dist/storage/storage-channel.d.ts.map +1 -0
  288. package/dist/storage/storage-channel.js +15 -0
  289. package/dist/storage/storage-channel.js.map +1 -0
  290. package/dist/storage/storage-checksum.d.ts +35 -0
  291. package/dist/storage/storage-checksum.d.ts.map +1 -0
  292. package/dist/storage/storage-checksum.js +312 -0
  293. package/dist/storage/storage-checksum.js.map +1 -0
  294. package/dist/storage/storage-endpoints.d.ts +14 -0
  295. package/dist/storage/storage-endpoints.d.ts.map +1 -0
  296. package/dist/storage/storage-endpoints.js +721 -0
  297. package/dist/storage/storage-endpoints.js.map +1 -0
  298. package/dist/storage/storage-file.d.ts +126 -0
  299. package/dist/storage/storage-file.d.ts.map +1 -0
  300. package/dist/storage/storage-file.js +604 -0
  301. package/dist/storage/storage-file.js.map +1 -0
  302. package/dist/storage/storage-hmac-key.d.ts +26 -0
  303. package/dist/storage/storage-hmac-key.d.ts.map +1 -0
  304. package/dist/storage/storage-hmac-key.js +45 -0
  305. package/dist/storage/storage-hmac-key.js.map +1 -0
  306. package/dist/storage/storage-iam.d.ts +20 -0
  307. package/dist/storage/storage-iam.d.ts.map +1 -0
  308. package/dist/storage/storage-iam.js +43 -0
  309. package/dist/storage/storage-iam.js.map +1 -0
  310. package/dist/storage/storage-md5.d.ts +11 -0
  311. package/dist/storage/storage-md5.d.ts.map +1 -0
  312. package/dist/storage/storage-md5.js +96 -0
  313. package/dist/storage/storage-md5.js.map +1 -0
  314. package/dist/storage/storage-notification.d.ts +24 -0
  315. package/dist/storage/storage-notification.d.ts.map +1 -0
  316. package/dist/storage/storage-notification.js +40 -0
  317. package/dist/storage/storage-notification.js.map +1 -0
  318. package/dist/storage/storage-progress.d.ts +4 -0
  319. package/dist/storage/storage-progress.d.ts.map +1 -0
  320. package/dist/storage/storage-progress.js +17 -0
  321. package/dist/storage/storage-progress.js.map +1 -0
  322. package/dist/storage/storage-reference-endpoints.d.ts +63 -0
  323. package/dist/storage/storage-reference-endpoints.d.ts.map +1 -0
  324. package/dist/storage/storage-reference-endpoints.js +276 -0
  325. package/dist/storage/storage-reference-endpoints.js.map +1 -0
  326. package/dist/storage/storage-reference-helpers.d.ts +12 -0
  327. package/dist/storage/storage-reference-helpers.d.ts.map +1 -0
  328. package/dist/storage/storage-reference-helpers.js +72 -0
  329. package/dist/storage/storage-reference-helpers.js.map +1 -0
  330. package/dist/storage/storage-reference-signing.d.ts +40 -0
  331. package/dist/storage/storage-reference-signing.d.ts.map +1 -0
  332. package/dist/storage/storage-reference-signing.js +289 -0
  333. package/dist/storage/storage-reference-signing.js.map +1 -0
  334. package/dist/storage/storage-reference-types.d.ts +76 -0
  335. package/dist/storage/storage-reference-types.d.ts.map +1 -0
  336. package/dist/storage/storage-reference-types.js +2 -0
  337. package/dist/storage/storage-reference-types.js.map +1 -0
  338. package/dist/storage/storage-results.d.ts +8 -0
  339. package/dist/storage/storage-results.d.ts.map +1 -0
  340. package/dist/storage/storage-results.js +32 -0
  341. package/dist/storage/storage-results.js.map +1 -0
  342. package/dist/storage/storage-resumable.d.ts +18 -0
  343. package/dist/storage/storage-resumable.d.ts.map +1 -0
  344. package/dist/storage/storage-resumable.js +166 -0
  345. package/dist/storage/storage-resumable.js.map +1 -0
  346. package/dist/storage/storage-retry.d.ts +9 -0
  347. package/dist/storage/storage-retry.d.ts.map +1 -0
  348. package/dist/storage/storage-retry.js +104 -0
  349. package/dist/storage/storage-retry.js.map +1 -0
  350. package/dist/storage/storage-signed-url.d.ts +9 -0
  351. package/dist/storage/storage-signed-url.d.ts.map +1 -0
  352. package/dist/storage/storage-signed-url.js +96 -0
  353. package/dist/storage/storage-signed-url.js.map +1 -0
  354. package/dist/storage/storage-special-endpoints.d.ts +10 -0
  355. package/dist/storage/storage-special-endpoints.d.ts.map +1 -0
  356. package/dist/storage/storage-special-endpoints.js +394 -0
  357. package/dist/storage/storage-special-endpoints.js.map +1 -0
  358. package/dist/storage/storage-special-types.d.ts +154 -0
  359. package/dist/storage/storage-special-types.d.ts.map +1 -0
  360. package/dist/storage/storage-special-types.js +2 -0
  361. package/dist/storage/storage-special-types.js.map +1 -0
  362. package/dist/storage/storage-types.d.ts +251 -0
  363. package/dist/storage/storage-types.d.ts.map +1 -0
  364. package/dist/storage/storage-types.js +2 -0
  365. package/dist/storage/storage-types.js.map +1 -0
  366. package/dist/storage/storage-upload-stream.d.ts +41 -0
  367. package/dist/storage/storage-upload-stream.d.ts.map +1 -0
  368. package/dist/storage/storage-upload-stream.js +335 -0
  369. package/dist/storage/storage-upload-stream.js.map +1 -0
  370. package/dist/storage/storage-xml-signing.d.ts +17 -0
  371. package/dist/storage/storage-xml-signing.d.ts.map +1 -0
  372. package/dist/storage/storage-xml-signing.js +144 -0
  373. package/dist/storage/storage-xml-signing.js.map +1 -0
  374. package/dist/storage/storage.d.ts +152 -0
  375. package/dist/storage/storage.d.ts.map +1 -0
  376. package/dist/storage/storage.js +532 -0
  377. package/dist/storage/storage.js.map +1 -0
  378. package/dist/utils/token-cache.d.ts.map +1 -1
  379. package/dist/utils/token-cache.js +3 -2
  380. package/dist/utils/token-cache.js.map +1 -1
  381. package/package.json +22 -6
  382. package/dist/auth/auth-endpoint-errors.test.d.ts +0 -2
  383. package/dist/auth/auth-endpoint-errors.test.d.ts.map +0 -1
  384. package/dist/auth/auth-endpoint-errors.test.js +0 -411
  385. package/dist/auth/auth-endpoint-errors.test.js.map +0 -1
  386. package/dist/auth/errors.test.d.ts +0 -2
  387. package/dist/auth/errors.test.d.ts.map +0 -1
  388. package/dist/auth/errors.test.js +0 -123
  389. package/dist/auth/errors.test.js.map +0 -1
  390. package/dist/auth/firebase-admin-auth.test.d.ts +0 -2
  391. package/dist/auth/firebase-admin-auth.test.d.ts.map +0 -1
  392. package/dist/auth/firebase-admin-auth.test.js +0 -923
  393. package/dist/auth/firebase-admin-auth.test.js.map +0 -1
  394. package/dist/auth/firebase-auth-endpoints.test.d.ts +0 -2
  395. package/dist/auth/firebase-auth-endpoints.test.d.ts.map +0 -1
  396. package/dist/auth/firebase-auth-endpoints.test.js +0 -957
  397. package/dist/auth/firebase-auth-endpoints.test.js.map +0 -1
  398. package/dist/auth/firebase-auth.test.d.ts +0 -2
  399. package/dist/auth/firebase-auth.test.d.ts.map +0 -1
  400. package/dist/auth/firebase-auth.test.js +0 -167
  401. package/dist/auth/firebase-auth.test.js.map +0 -1
  402. package/dist/auth/firebase-jwt.test.d.ts +0 -2
  403. package/dist/auth/firebase-jwt.test.d.ts.map +0 -1
  404. package/dist/auth/firebase-jwt.test.js +0 -164
  405. package/dist/auth/firebase-jwt.test.js.map +0 -1
  406. package/dist/auth/github-oauth.d.ts +0 -19
  407. package/dist/auth/github-oauth.d.ts.map +0 -1
  408. package/dist/auth/github-oauth.js +0 -145
  409. package/dist/auth/github-oauth.js.map +0 -1
  410. package/dist/auth/github-oauth.test.d.ts +0 -2
  411. package/dist/auth/github-oauth.test.d.ts.map +0 -1
  412. package/dist/auth/github-oauth.test.js +0 -202
  413. package/dist/auth/github-oauth.test.js.map +0 -1
  414. package/dist/auth/google-oauth.test.d.ts +0 -2
  415. package/dist/auth/google-oauth.test.d.ts.map +0 -1
  416. package/dist/auth/google-oauth.test.js +0 -200
  417. package/dist/auth/google-oauth.test.js.map +0 -1
  418. package/dist/auth/oauth.d.ts +0 -3
  419. package/dist/auth/oauth.d.ts.map +0 -1
  420. package/dist/auth/oauth.js +0 -48
  421. package/dist/auth/oauth.js.map +0 -1
  422. package/dist/auth/oauth.test.d.ts +0 -2
  423. package/dist/auth/oauth.test.d.ts.map +0 -1
  424. package/dist/auth/oauth.test.js +0 -109
  425. package/dist/auth/oauth.test.js.map +0 -1
  426. package/dist/auth/user-record.test.d.ts +0 -2
  427. package/dist/auth/user-record.test.d.ts.map +0 -1
  428. package/dist/auth/user-record.test.js +0 -198
  429. package/dist/auth/user-record.test.js.map +0 -1
  430. package/dist/auth/user-request.test.d.ts +0 -2
  431. package/dist/auth/user-request.test.d.ts.map +0 -1
  432. package/dist/auth/user-request.test.js +0 -269
  433. package/dist/auth/user-request.test.js.map +0 -1
  434. package/dist/firebase-edge-errors.test.d.ts +0 -2
  435. package/dist/firebase-edge-errors.test.d.ts.map +0 -1
  436. package/dist/firebase-edge-errors.test.js +0 -72
  437. package/dist/firebase-edge-errors.test.js.map +0 -1
  438. package/dist/firebase-edge-server.test.d.ts +0 -2
  439. package/dist/firebase-edge-server.test.d.ts.map +0 -1
  440. package/dist/firebase-edge-server.test.js +0 -264
  441. package/dist/firebase-edge-server.test.js.map +0 -1
  442. package/dist/rest-fetch.test.d.ts +0 -2
  443. package/dist/rest-fetch.test.d.ts.map +0 -1
  444. package/dist/rest-fetch.test.js +0 -164
  445. package/dist/rest-fetch.test.js.map +0 -1
@@ -0,0 +1,251 @@
1
+ import type { FirebaseEdgeError } from '../auth/errors.js';
2
+ import type { CRC32CValidatorGenerator } from './storage-checksum.js';
3
+ export type StorageResult<T> = {
4
+ error: null;
5
+ data: T;
6
+ } | {
7
+ error: FirebaseEdgeError;
8
+ data: null;
9
+ };
10
+ /** Cloud Storage object metadata. Large integer fields stay as strings. */
11
+ export interface StorageFileMetadata {
12
+ name: string;
13
+ bucket: string;
14
+ generation: string;
15
+ metageneration?: string;
16
+ size: string;
17
+ contentType?: string;
18
+ cacheControl?: string;
19
+ contentDisposition?: string;
20
+ contentEncoding?: string;
21
+ contentLanguage?: string;
22
+ timeCreated?: string;
23
+ updated?: string;
24
+ md5Hash?: string;
25
+ crc32c?: string;
26
+ metadata?: Record<string, string>;
27
+ restoreToken?: string;
28
+ softDeleteTime?: string;
29
+ hardDeleteTime?: string;
30
+ storageClass?: string;
31
+ componentCount?: number;
32
+ retentionExpirationTime?: string;
33
+ }
34
+ export type StorageUploadData = string | Blob | Uint8Array<ArrayBuffer> | ArrayBuffer;
35
+ export interface StoragePreconditions {
36
+ userProject?: string;
37
+ ifGenerationMatch?: string;
38
+ ifGenerationNotMatch?: string;
39
+ ifMetagenerationMatch?: string;
40
+ ifMetagenerationNotMatch?: string;
41
+ }
42
+ export interface StorageReadOptions extends StoragePreconditions {
43
+ softDeleted?: boolean;
44
+ restoreToken?: string;
45
+ generation?: string;
46
+ }
47
+ export interface StorageDownloadOptions extends StorageReadOptions {
48
+ crc32cGenerator?: CRC32CValidatorGenerator;
49
+ checksumAlgorithm?: 'crc32c' | 'md5';
50
+ /** Inclusive byte offsets. */
51
+ start?: number;
52
+ end?: number;
53
+ verifyChecksum?: boolean;
54
+ }
55
+ export interface StorageTransferProgress {
56
+ bytesTransferred: number;
57
+ totalBytes?: number;
58
+ complete: boolean;
59
+ }
60
+ export type StorageProgressCallback = (progress: StorageTransferProgress) => void | Promise<void>;
61
+ export interface StorageUploadOptions extends StoragePreconditions {
62
+ crc32cGenerator?: CRC32CValidatorGenerator;
63
+ predefinedAcl?: string;
64
+ kmsKeyName?: string;
65
+ md5Hash?: 'auto' | string;
66
+ metadata?: StorageMetadataUpdate;
67
+ contentType?: string;
68
+ /** Use "0" to create only if the object does not already exist. */
69
+ ifGenerationMatch?: string;
70
+ crc32c?: 'auto' | string;
71
+ onProgress?: StorageProgressCallback;
72
+ }
73
+ export interface StorageDeleteOptions extends StorageReadOptions {
74
+ ifGenerationMatch?: string;
75
+ }
76
+ export interface StorageMetadataUpdate {
77
+ retention?: {
78
+ mode: 'Locked' | 'Unlocked';
79
+ retainUntilTime: string;
80
+ } | null;
81
+ acl?: import('./storage-special-types.js').StorageAclEntry[] | null;
82
+ storageClass?: string;
83
+ temporaryHold?: boolean;
84
+ eventBasedHold?: boolean;
85
+ customTime?: string;
86
+ contentType?: string | null;
87
+ cacheControl?: string | null;
88
+ contentDisposition?: string | null;
89
+ contentEncoding?: string | null;
90
+ contentLanguage?: string | null;
91
+ /** Null removes all custom metadata; null values remove individual keys. */
92
+ metadata?: Record<string, string | number | boolean | null> | null;
93
+ }
94
+ export interface StorageMetadataOptions extends StorageDeleteOptions {
95
+ overrideUnlockedRetention?: boolean;
96
+ ifMetagenerationMatch?: string;
97
+ }
98
+ export interface StorageCopyOptions extends StoragePreconditions {
99
+ predefinedAcl?: string;
100
+ token?: string;
101
+ metadata?: StorageMetadataUpdate;
102
+ destinationKmsKeyName?: string;
103
+ destinationEncryptionKey?: string | Uint8Array<ArrayBuffer>;
104
+ destinationBucket?: string;
105
+ sourceGeneration?: string;
106
+ ifSourceGenerationMatch?: string;
107
+ ifSourceMetagenerationMatch?: string;
108
+ }
109
+ export interface StorageResumableOptions extends Omit<StorageUploadOptions, 'crc32c' | 'md5Hash' | 'onProgress' | 'crc32cGenerator'> {
110
+ md5Hash?: string;
111
+ origin?: string;
112
+ metadata?: StorageMetadataUpdate;
113
+ size?: number;
114
+ crc32c?: string;
115
+ }
116
+ export interface StorageChunkOptions {
117
+ md5Hash?: string;
118
+ offset: number;
119
+ /** Omit for a non-final chunk when the total size is not known yet. */
120
+ totalSize?: number;
121
+ /** Whole-object checksum, supplied only on the final chunk. */
122
+ crc32c?: string;
123
+ onProgress?: StorageProgressCallback;
124
+ }
125
+ export type StorageUploadProgress = {
126
+ complete: false;
127
+ nextOffset: number;
128
+ } | {
129
+ complete: true;
130
+ metadata: StorageFileMetadata;
131
+ };
132
+ export interface StorageComposeSource {
133
+ name: string;
134
+ generation?: string;
135
+ objectPreconditions?: {
136
+ ifGenerationMatch: string;
137
+ };
138
+ }
139
+ export interface StorageComposeOptions extends StoragePreconditions {
140
+ kmsKeyName?: string;
141
+ destinationPredefinedAcl?: string;
142
+ metadata?: StorageMetadataUpdate;
143
+ }
144
+ export interface StorageRestoreOptions extends StoragePreconditions {
145
+ projection?: 'full' | 'noAcl';
146
+ generation: string;
147
+ restoreToken?: string;
148
+ copySourceAcl?: boolean;
149
+ }
150
+ export interface StorageDeleteTarget extends StorageDeleteOptions {
151
+ name: string;
152
+ }
153
+ export interface StorageBatchDeleteOptions {
154
+ concurrency?: number;
155
+ ignoreNotFound?: boolean;
156
+ }
157
+ export interface StorageBatchDeleteResult {
158
+ results: Array<{
159
+ name: string;
160
+ generation?: string;
161
+ error: FirebaseEdgeError | null;
162
+ }>;
163
+ }
164
+ export interface StorageSignedUrlOptions {
165
+ action: 'read' | 'write';
166
+ /** Integer lifetime from 1 to 604800 seconds. Defaults to 900. */
167
+ expiresInSeconds?: number;
168
+ /** For write URLs, the caller must send this exact Content-Type. */
169
+ contentType?: string;
170
+ }
171
+ export interface StorageListOptions {
172
+ userProject?: string;
173
+ fields?: string;
174
+ includeFoldersAsPrefixes?: boolean;
175
+ includeTrailingDelimiter?: boolean;
176
+ projection?: 'full' | 'noAcl';
177
+ prefix?: string;
178
+ delimiter?: string;
179
+ maxResults?: number;
180
+ pageToken?: string;
181
+ versions?: boolean;
182
+ softDeleted?: boolean;
183
+ startOffset?: string;
184
+ endOffset?: string;
185
+ matchGlob?: string;
186
+ }
187
+ export interface StorageListResult {
188
+ files: StorageFileMetadata[];
189
+ prefixes: string[];
190
+ nextPageToken?: string;
191
+ }
192
+ /** @internal */
193
+ export type StorageOperation = {
194
+ kind: 'upload';
195
+ name: string;
196
+ body: StorageUploadData;
197
+ options: StorageUploadOptions;
198
+ } | {
199
+ kind: 'download' | 'stream';
200
+ name: string;
201
+ options?: StorageDownloadOptions;
202
+ } | {
203
+ kind: 'metadata';
204
+ name: string;
205
+ options?: StorageReadOptions;
206
+ } | {
207
+ kind: 'resumable';
208
+ name: string;
209
+ options: StorageResumableOptions;
210
+ } | {
211
+ kind: 'compose';
212
+ name: string;
213
+ sources: StorageComposeSource[];
214
+ options: StorageComposeOptions;
215
+ } | {
216
+ kind: 'restore';
217
+ name: string;
218
+ options: StorageRestoreOptions;
219
+ } | {
220
+ kind: 'delete';
221
+ name: string;
222
+ options: StorageDeleteOptions;
223
+ } | {
224
+ kind: 'updateMetadata';
225
+ name: string;
226
+ metadata: StorageMetadataUpdate;
227
+ options: StorageMetadataOptions;
228
+ } | {
229
+ kind: 'copy';
230
+ name: string;
231
+ destination: string;
232
+ options: StorageCopyOptions;
233
+ } | {
234
+ kind: 'list';
235
+ options: StorageListOptions;
236
+ };
237
+ /** @internal */
238
+ export interface StorageResponses {
239
+ upload: StorageFileMetadata;
240
+ download: Uint8Array<ArrayBuffer>;
241
+ metadata: StorageFileMetadata;
242
+ delete: void;
243
+ list: StorageListResult;
244
+ updateMetadata: StorageFileMetadata;
245
+ copy: StorageFileMetadata;
246
+ stream: Response;
247
+ resumable: string;
248
+ compose: StorageFileMetadata;
249
+ restore: StorageFileMetadata;
250
+ }
251
+ //# sourceMappingURL=storage-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-types.d.ts","sourceRoot":"","sources":["../../src/storage/storage-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=storage-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-types.js","sourceRoot":"","sources":["../../src/storage/storage-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import type { CRC32CValidatorGenerator } from './storage-checksum.js';
2
+ import type { StorageUploadData, StorageResumableOptions, StorageChunkOptions, StorageUploadProgress, StorageFileMetadata, StorageResult, StorageProgressCallback } from './storage-types.js';
3
+ export interface StorageUploadStreamOptions extends Omit<StorageResumableOptions, 'crc32c' | 'md5Hash'> {
4
+ md5Hash?: string | 'auto';
5
+ isPartialUpload?: boolean;
6
+ crc32cGenerator?: CRC32CValidatorGenerator;
7
+ /** The input starts at this session offset; supply the preceding CRC32C when validating. */
8
+ offset?: number;
9
+ resumeCRC32C?: string | number;
10
+ /** Multiple of 256 KiB, up to 64 MiB. Defaults to 8 MiB. */
11
+ chunkSize?: number;
12
+ /** Recovery attempts per chunk. Defaults to 2. */
13
+ maxResumeAttempts?: number;
14
+ verifyChecksum?: boolean;
15
+ sessionUri?: string;
16
+ /** Automatic CRC32C is computed incrementally and verified on completion. */
17
+ crc32c?: string | 'auto';
18
+ onProgress?: StorageProgressCallback;
19
+ onSession?: (sessionUri: string) => void | Promise<void>;
20
+ }
21
+ export interface StoragePartialUpload {
22
+ complete: false;
23
+ sessionUri: string;
24
+ nextOffset: number;
25
+ crc32c?: string;
26
+ }
27
+ /** @internal Public Storage methods supply authentication and endpoint handling. */
28
+ export interface StorageUploadTransport {
29
+ createResumableUpload(name: string, options: StorageResumableOptions): Promise<StorageResult<string>>;
30
+ uploadChunk(session: string, body: StorageUploadData, options: StorageChunkOptions): Promise<StorageResult<StorageUploadProgress>>;
31
+ getUploadStatus(session: string, totalSize?: number): Promise<StorageResult<StorageUploadProgress>>;
32
+ }
33
+ /** @internal Retain the current chunk while reconciling uncertain acknowledgements. */
34
+ export declare function uploadStorageStream(transport: StorageUploadTransport, name: string, input: StorageUploadData | ReadableStream<Uint8Array>, options: StorageUploadStreamOptions & {
35
+ isPartialUpload: true;
36
+ }): Promise<StoragePartialUpload>;
37
+ export declare function uploadStorageStream(transport: StorageUploadTransport, name: string, input: StorageUploadData | ReadableStream<Uint8Array>, options?: StorageUploadStreamOptions & {
38
+ isPartialUpload?: false;
39
+ }): Promise<StorageFileMetadata>;
40
+ export declare function uploadStorageStream(transport: StorageUploadTransport, name: string, input: StorageUploadData | ReadableStream<Uint8Array>, options: StorageUploadStreamOptions): Promise<StorageFileMetadata | StoragePartialUpload>;
41
+ //# sourceMappingURL=storage-upload-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-upload-stream.d.ts","sourceRoot":"","sources":["../../src/storage/storage-upload-stream.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,KAAK,EACR,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,0BACb,SAAQ,IAAI,CAAC,uBAAuB,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACnC,qBAAqB,CACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAClC,WAAW,CACP,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACjD,eAAe,CACX,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;CACpD;AAgDD,uFAAuF;AACvF,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAAC,UAAU,CAAC,EACrD,OAAO,EAAE,0BAA0B,GAAG;IAAE,eAAe,EAAE,IAAI,CAAA;CAAE,GAChE,OAAO,CAAC,oBAAoB,CAAC,CAAC;AACjC,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAAC,UAAU,CAAC,EACrD,OAAO,CAAC,EAAE,0BAA0B,GAAG;IAAE,eAAe,CAAC,EAAE,KAAK,CAAA;CAAE,GACnE,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAChC,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAAC,UAAU,CAAC,EACrD,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,335 @@
1
+ import { FirebaseEdgeError } from '../auth/errors.js';
2
+ import { StorageMd5 } from './storage-md5.js';
3
+ import { createStorageCrc32c, storageUploadBlob, validateStorageCrc32c, validateStorageMd5, verifyStorageUpload } from './storage-checksum.js';
4
+ import { reportStorageProgress } from './storage-progress.js';
5
+ import { validateSessionUri } from './storage-resumable.js';
6
+ /** @internal Split a byte stream without accumulating the whole upload. */
7
+ async function* storageChunks(source, chunkSize) {
8
+ const reader = source.getReader();
9
+ let buffer = new Uint8Array(chunkSize);
10
+ let used = 0;
11
+ let finished = false;
12
+ try {
13
+ for (;;) {
14
+ const { done, value } = await reader.read();
15
+ if (done) {
16
+ finished = true;
17
+ break;
18
+ }
19
+ if (!(value instanceof Uint8Array)) {
20
+ throw new FirebaseEdgeError({
21
+ code: 'storage/invalid-argument',
22
+ message: 'Upload streams must contain Uint8Array chunks.'
23
+ });
24
+ }
25
+ let offset = 0;
26
+ while (offset < value.length) {
27
+ const count = Math.min(chunkSize - used, value.length - offset);
28
+ buffer.set(value.subarray(offset, offset + count), used);
29
+ used += count;
30
+ offset += count;
31
+ if (used === chunkSize) {
32
+ yield buffer;
33
+ buffer = new Uint8Array(chunkSize);
34
+ used = 0;
35
+ }
36
+ }
37
+ }
38
+ if (used > 0) {
39
+ yield buffer.slice(0, used);
40
+ }
41
+ }
42
+ finally {
43
+ if (!finished) {
44
+ await reader.cancel().catch(() => { });
45
+ }
46
+ reader.releaseLock();
47
+ }
48
+ }
49
+ export async function uploadStorageStream(transport, name, input, options = {}) {
50
+ if (!options || typeof options !== 'object' || Array.isArray(options)) {
51
+ throw new FirebaseEdgeError({
52
+ code: 'storage/invalid-argument',
53
+ message: 'Upload options must be an object.'
54
+ });
55
+ }
56
+ const { chunkSize = 8388608, maxResumeAttempts = 2, verifyChecksum = true, sessionUri, crc32c = 'auto', md5Hash, offset: initialOffset = 0, resumeCRC32C, isPartialUpload = false, crc32cGenerator, onProgress, onSession, ...sessionOptions } = options;
57
+ if (typeof isPartialUpload !== 'boolean' ||
58
+ (isPartialUpload &&
59
+ (options.chunkSize === undefined || md5Hash !== undefined))) {
60
+ throw new FirebaseEdgeError({
61
+ code: 'storage/invalid-argument',
62
+ message: 'Partial uploads require chunkSize and cannot validate whole-object MD5.'
63
+ });
64
+ }
65
+ if (!Number.isSafeInteger(chunkSize) ||
66
+ chunkSize < 262144 ||
67
+ chunkSize > 67108864 ||
68
+ chunkSize % 262144 !== 0 ||
69
+ !Number.isInteger(maxResumeAttempts) ||
70
+ maxResumeAttempts < 0 ||
71
+ maxResumeAttempts > 10 ||
72
+ typeof verifyChecksum !== 'boolean' ||
73
+ (onProgress !== undefined && typeof onProgress !== 'function') ||
74
+ (onSession !== undefined && typeof onSession !== 'function')) {
75
+ throw new FirebaseEdgeError({
76
+ code: 'storage/invalid-argument',
77
+ message: 'Invalid chunk size, recovery limit, or upload callback.'
78
+ });
79
+ }
80
+ if (crc32c !== 'auto') {
81
+ validateStorageCrc32c(crc32c);
82
+ }
83
+ if (!Number.isSafeInteger(initialOffset) ||
84
+ initialOffset < 0 ||
85
+ (initialOffset > 0 &&
86
+ (!sessionUri ||
87
+ md5Hash !== undefined ||
88
+ (verifyChecksum && resumeCRC32C === undefined))) ||
89
+ (initialOffset === 0 && resumeCRC32C !== undefined)) {
90
+ throw new FirebaseEdgeError({
91
+ code: 'storage/invalid-argument',
92
+ message: 'Resuming a sliced input requires a session URI, a valid offset, and the preceding CRC32C when validation is enabled; MD5 requires the full input.'
93
+ });
94
+ }
95
+ const checksum = createStorageCrc32c(verifyChecksum || isPartialUpload ? crc32cGenerator : undefined, resumeCRC32C);
96
+ if (md5Hash !== undefined && md5Hash !== 'auto') {
97
+ validateStorageMd5(md5Hash);
98
+ }
99
+ if (sessionUri !== undefined) {
100
+ validateSessionUri(sessionUri);
101
+ }
102
+ const blob = input instanceof ReadableStream ? undefined : storageUploadBlob(input);
103
+ const source = blob ? blob.stream() : input;
104
+ if (source.locked) {
105
+ throw new FirebaseEdgeError({
106
+ code: 'storage/invalid-argument',
107
+ message: 'Upload stream is already locked.'
108
+ });
109
+ }
110
+ const declaredSize = sessionOptions.size ??
111
+ (blob && !isPartialUpload ? blob.size + initialOffset : undefined);
112
+ if (isPartialUpload &&
113
+ blob &&
114
+ (blob.size === 0 || blob.size % 262144 !== 0)) {
115
+ throw new FirebaseEdgeError({
116
+ code: 'storage/invalid-argument',
117
+ message: 'Partial input must contain a positive multiple of 256 KiB.'
118
+ });
119
+ }
120
+ if (declaredSize !== undefined &&
121
+ (!Number.isSafeInteger(declaredSize) ||
122
+ declaredSize < 0 ||
123
+ (blob &&
124
+ (isPartialUpload
125
+ ? declaredSize <= blob.size + initialOffset
126
+ : declaredSize !== blob.size + initialOffset)))) {
127
+ throw new FirebaseEdgeError({
128
+ code: 'storage/invalid-argument',
129
+ message: 'Upload size must match the input.'
130
+ });
131
+ }
132
+ let session = sessionUri;
133
+ let persisted = 0;
134
+ if (!session) {
135
+ const { error, data } = await transport.createResumableUpload(name, {
136
+ ...sessionOptions,
137
+ size: declaredSize,
138
+ ...(crc32c !== 'auto' && { crc32c }),
139
+ ...(md5Hash !== undefined && md5Hash !== 'auto' && { md5Hash })
140
+ });
141
+ if (error) {
142
+ throw error;
143
+ }
144
+ session = data;
145
+ }
146
+ await onSession?.(session);
147
+ if (sessionUri) {
148
+ const { error, data } = await transport.getUploadStatus(session, declaredSize);
149
+ if (error) {
150
+ throw error;
151
+ }
152
+ if (data.complete) {
153
+ if (isPartialUpload) {
154
+ throw new FirebaseEdgeError({
155
+ code: 'storage/invalid-argument',
156
+ message: 'The partial upload session is already complete.'
157
+ });
158
+ }
159
+ const md5 = md5Hash !== undefined ? new StorageMd5() : undefined;
160
+ let size = initialOffset;
161
+ for await (const bytes of storageChunks(source, chunkSize)) {
162
+ checksum.update(bytes);
163
+ md5?.update(bytes);
164
+ size += bytes.length;
165
+ }
166
+ if (String(size) !== data.metadata.size ||
167
+ (declaredSize !== undefined && size !== declaredSize)) {
168
+ throw new FirebaseEdgeError({
169
+ code: 'storage/invalid-argument',
170
+ message: 'Input size differs from the completed session.'
171
+ });
172
+ }
173
+ verifyStorageUpload(verifyChecksum
174
+ ? crc32c === 'auto'
175
+ ? checksum.digest()
176
+ : crc32c
177
+ : undefined, data.metadata, md5Hash === 'auto' ? md5?.digest() : md5Hash);
178
+ await reportStorageProgress(onProgress, {
179
+ bytesTransferred: Number(data.metadata.size),
180
+ totalBytes: Number(data.metadata.size),
181
+ complete: true
182
+ });
183
+ return data.metadata;
184
+ }
185
+ persisted = data.nextOffset;
186
+ if (persisted < initialOffset) {
187
+ throw new FirebaseEdgeError({
188
+ code: 'storage/invalid-argument',
189
+ message: 'The supplied source begins after the acknowledged upload offset.'
190
+ });
191
+ }
192
+ }
193
+ const chunks = storageChunks(source, chunkSize);
194
+ const md5 = md5Hash !== undefined ? new StorageMd5() : undefined;
195
+ let offset = initialOffset;
196
+ try {
197
+ let current = await chunks.next();
198
+ for (;;) {
199
+ const bytes = current.done ? new Uint8Array() : current.value;
200
+ const next = current.done ? current : await chunks.next();
201
+ const sourceEnded = !!next.done;
202
+ const final = sourceEnded && !isPartialUpload;
203
+ const end = offset + bytes.length;
204
+ if (!Number.isSafeInteger(end) ||
205
+ (declaredSize !== undefined &&
206
+ (end > declaredSize ||
207
+ (final && end !== declaredSize) ||
208
+ (isPartialUpload && end >= declaredSize))) ||
209
+ (sourceEnded && persisted > end) ||
210
+ (isPartialUpload &&
211
+ (bytes.length === 0 || bytes.length % 262144 !== 0))) {
212
+ throw new FirebaseEdgeError({
213
+ code: 'storage/invalid-argument',
214
+ message: 'Input size does not match the upload session.'
215
+ });
216
+ }
217
+ checksum.update(bytes);
218
+ md5?.update(bytes);
219
+ const expectedMd5 = final
220
+ ? md5Hash === 'auto'
221
+ ? md5?.digest()
222
+ : md5Hash
223
+ : undefined;
224
+ const expected = final && verifyChecksum
225
+ ? crc32c === 'auto'
226
+ ? checksum.digest()
227
+ : crc32c
228
+ : undefined;
229
+ if (persisted < end || final) {
230
+ let attempts = 0;
231
+ for (;;) {
232
+ // Google ignores persisted overlap; replay from a 256 KiB boundary for a valid non-final chunk.
233
+ const start = final
234
+ ? Math.max(offset, persisted)
235
+ : offset +
236
+ Math.floor((Math.max(offset, persisted) - offset) / 262144) *
237
+ 262144;
238
+ const { error, data } = await transport.uploadChunk(session, bytes.slice(start - offset), {
239
+ offset: start,
240
+ totalSize: isPartialUpload
241
+ ? undefined
242
+ : final
243
+ ? end
244
+ : declaredSize,
245
+ ...(expected !== undefined && { crc32c: expected }),
246
+ ...(expectedMd5 !== undefined && {
247
+ md5Hash: expectedMd5
248
+ })
249
+ });
250
+ const recoverable = error &&
251
+ (error.cause instanceof TypeError ||
252
+ [408, 429, 500, 502, 503, 504].includes(Number(error.context &&
253
+ typeof error.context === 'object' &&
254
+ 'status' in error.context
255
+ ? error.context.status
256
+ : undefined)));
257
+ if (error && !recoverable) {
258
+ throw error;
259
+ }
260
+ let progress = data;
261
+ if (error) {
262
+ if (attempts >= maxResumeAttempts) {
263
+ throw error;
264
+ }
265
+ const { error: statusError, data: status } = await transport.getUploadStatus(session, final ? end : declaredSize);
266
+ if (statusError) {
267
+ throw statusError;
268
+ }
269
+ progress = status;
270
+ }
271
+ if (!progress) {
272
+ throw new FirebaseEdgeError({
273
+ code: 'storage/internal-error',
274
+ message: 'Missing upload progress response.'
275
+ });
276
+ }
277
+ if (progress.complete) {
278
+ if (!final) {
279
+ throw new FirebaseEdgeError({
280
+ code: 'storage/internal-error',
281
+ message: 'Upload completed before the input ended.'
282
+ });
283
+ }
284
+ verifyStorageUpload(expected, progress.metadata, expectedMd5);
285
+ await reportStorageProgress(onProgress, {
286
+ bytesTransferred: end,
287
+ totalBytes: end,
288
+ complete: true
289
+ });
290
+ return progress.metadata;
291
+ }
292
+ const nextOffset = progress.nextOffset;
293
+ if (nextOffset < Math.max(offset, persisted) ||
294
+ nextOffset > end) {
295
+ throw new FirebaseEdgeError({
296
+ code: 'storage/internal-error',
297
+ message: 'Upload acknowledgement falls outside the retained chunk.'
298
+ });
299
+ }
300
+ persisted = nextOffset;
301
+ await reportStorageProgress(onProgress, {
302
+ bytesTransferred: persisted,
303
+ totalBytes: declaredSize,
304
+ complete: false
305
+ });
306
+ if (persisted === end && !final) {
307
+ break;
308
+ }
309
+ if (attempts++ >= maxResumeAttempts) {
310
+ throw new FirebaseEdgeError({
311
+ code: 'storage/retry-limit-exceeded',
312
+ message: 'Upload did not finish within the recovery limit.'
313
+ });
314
+ }
315
+ }
316
+ }
317
+ if (sourceEnded && isPartialUpload) {
318
+ return {
319
+ complete: false,
320
+ sessionUri: session,
321
+ nextOffset: end,
322
+ ...(initialOffset === 0 || resumeCRC32C !== undefined
323
+ ? { crc32c: checksum.digest() }
324
+ : {})
325
+ };
326
+ }
327
+ offset = end;
328
+ current = next;
329
+ }
330
+ }
331
+ finally {
332
+ await chunks.return(undefined);
333
+ }
334
+ }
335
+ //# sourceMappingURL=storage-upload-stream.js.map