firebase-admin-edge 1.1.1 → 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 (437) hide show
  1. package/README.md +102 -261
  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/email-link.d.ts +24 -0
  35. package/dist/auth/email-link.d.ts.map +1 -0
  36. package/dist/auth/email-link.js +103 -0
  37. package/dist/auth/email-link.js.map +1 -0
  38. package/dist/auth/firebase-admin-auth.d.ts +29 -4
  39. package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
  40. package/dist/auth/firebase-admin-auth.js +192 -59
  41. package/dist/auth/firebase-admin-auth.js.map +1 -1
  42. package/dist/auth/firebase-auth-endpoints.d.ts +64 -5
  43. package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
  44. package/dist/auth/firebase-auth-endpoints.js +258 -73
  45. package/dist/auth/firebase-auth-endpoints.js.map +1 -1
  46. package/dist/auth/firebase-auth.d.ts +78 -4
  47. package/dist/auth/firebase-auth.d.ts.map +1 -1
  48. package/dist/auth/firebase-auth.js +101 -8
  49. package/dist/auth/firebase-auth.js.map +1 -1
  50. package/dist/auth/firebase-jwt.d.ts +19 -10
  51. package/dist/auth/firebase-jwt.d.ts.map +1 -1
  52. package/dist/auth/firebase-jwt.js +176 -39
  53. package/dist/auth/firebase-jwt.js.map +1 -1
  54. package/dist/auth/firebase-types.d.ts +3 -0
  55. package/dist/auth/firebase-types.d.ts.map +1 -1
  56. package/dist/auth/google-oauth.d.ts +0 -1
  57. package/dist/auth/google-oauth.d.ts.map +1 -1
  58. package/dist/auth/google-oauth.js +16 -86
  59. package/dist/auth/google-oauth.js.map +1 -1
  60. package/dist/auth/project-config-manager.d.ts +10 -0
  61. package/dist/auth/project-config-manager.d.ts.map +1 -0
  62. package/dist/auth/project-config-manager.js +22 -0
  63. package/dist/auth/project-config-manager.js.map +1 -0
  64. package/dist/auth/provider-credential.d.ts +43 -0
  65. package/dist/auth/provider-credential.d.ts.map +1 -0
  66. package/dist/auth/provider-credential.js +107 -0
  67. package/dist/auth/provider-credential.js.map +1 -0
  68. package/dist/auth/provider-session.d.ts +10 -0
  69. package/dist/auth/provider-session.d.ts.map +1 -0
  70. package/dist/auth/provider-session.js +28 -0
  71. package/dist/auth/provider-session.js.map +1 -0
  72. package/dist/auth/tenant-manager.d.ts +17 -0
  73. package/dist/auth/tenant-manager.d.ts.map +1 -0
  74. package/dist/auth/tenant-manager.js +59 -0
  75. package/dist/auth/tenant-manager.js.map +1 -0
  76. package/dist/db/aggregate.d.ts +49 -0
  77. package/dist/db/aggregate.d.ts.map +1 -0
  78. package/dist/db/aggregate.js +115 -0
  79. package/dist/db/aggregate.js.map +1 -0
  80. package/dist/db/bulk-writer.d.ts +55 -0
  81. package/dist/db/bulk-writer.d.ts.map +1 -0
  82. package/dist/db/bulk-writer.js +257 -0
  83. package/dist/db/bulk-writer.js.map +1 -0
  84. package/dist/db/bundle-builder.d.ts +17 -0
  85. package/dist/db/bundle-builder.d.ts.map +1 -0
  86. package/dist/db/bundle-builder.js +118 -0
  87. package/dist/db/bundle-builder.js.map +1 -0
  88. package/dist/db/bytes.d.ts +12 -0
  89. package/dist/db/bytes.d.ts.map +1 -0
  90. package/dist/db/bytes.js +49 -0
  91. package/dist/db/bytes.js.map +1 -0
  92. package/dist/db/collection-group.d.ts +14 -0
  93. package/dist/db/collection-group.d.ts.map +1 -0
  94. package/dist/db/collection-group.js +43 -0
  95. package/dist/db/collection-group.js.map +1 -0
  96. package/dist/db/collection-reference.d.ts +21 -0
  97. package/dist/db/collection-reference.d.ts.map +1 -0
  98. package/dist/db/collection-reference.js +46 -0
  99. package/dist/db/collection-reference.js.map +1 -0
  100. package/dist/db/document-reference.d.ts +41 -0
  101. package/dist/db/document-reference.d.ts.map +1 -0
  102. package/dist/db/document-reference.js +125 -0
  103. package/dist/db/document-reference.js.map +1 -0
  104. package/dist/db/document-snapshot.d.ts +31 -0
  105. package/dist/db/document-snapshot.d.ts.map +1 -0
  106. package/dist/db/document-snapshot.js +103 -0
  107. package/dist/db/document-snapshot.js.map +1 -0
  108. package/dist/db/explain.d.ts +28 -0
  109. package/dist/db/explain.d.ts.map +1 -0
  110. package/dist/db/explain.js +61 -0
  111. package/dist/db/explain.js.map +1 -0
  112. package/dist/db/field-path.d.ts +10 -0
  113. package/dist/db/field-path.d.ts.map +1 -0
  114. package/dist/db/field-path.js +65 -0
  115. package/dist/db/field-path.js.map +1 -0
  116. package/dist/db/field-value.d.ts +17 -0
  117. package/dist/db/field-value.d.ts.map +1 -0
  118. package/dist/db/field-value.js +57 -0
  119. package/dist/db/field-value.js.map +1 -0
  120. package/dist/db/filter.d.ts +20 -0
  121. package/dist/db/filter.d.ts.map +1 -0
  122. package/dist/db/filter.js +48 -0
  123. package/dist/db/filter.js.map +1 -0
  124. package/dist/db/firestore-converter.d.ts +11 -0
  125. package/dist/db/firestore-converter.d.ts.map +1 -0
  126. package/dist/db/firestore-converter.js +14 -0
  127. package/dist/db/firestore-converter.js.map +1 -0
  128. package/dist/db/firestore-document.d.ts +62 -0
  129. package/dist/db/firestore-document.d.ts.map +1 -0
  130. package/dist/db/firestore-document.js +238 -0
  131. package/dist/db/firestore-document.js.map +1 -0
  132. package/dist/db/firestore-endpoints.d.ts +41 -0
  133. package/dist/db/firestore-endpoints.d.ts.map +1 -0
  134. package/dist/db/firestore-endpoints.js +735 -0
  135. package/dist/db/firestore-endpoints.js.map +1 -0
  136. package/dist/db/firestore-error-codes.d.ts +24 -0
  137. package/dist/db/firestore-error-codes.d.ts.map +1 -0
  138. package/dist/db/firestore-error-codes.js +24 -0
  139. package/dist/db/firestore-error-codes.js.map +1 -0
  140. package/dist/db/firestore-logging.d.ts +23 -0
  141. package/dist/db/firestore-logging.d.ts.map +1 -0
  142. package/dist/db/firestore-logging.js +41 -0
  143. package/dist/db/firestore-logging.js.map +1 -0
  144. package/dist/db/firestore-path.d.ts +4 -0
  145. package/dist/db/firestore-path.d.ts.map +1 -0
  146. package/dist/db/firestore-path.js +37 -0
  147. package/dist/db/firestore-path.js.map +1 -0
  148. package/dist/db/firestore-results.d.ts +12 -0
  149. package/dist/db/firestore-results.d.ts.map +1 -0
  150. package/dist/db/firestore-results.js +19 -0
  151. package/dist/db/firestore-results.js.map +1 -0
  152. package/dist/db/firestore-settings.d.ts +22 -0
  153. package/dist/db/firestore-settings.d.ts.map +1 -0
  154. package/dist/db/firestore-settings.js +83 -0
  155. package/dist/db/firestore-settings.js.map +1 -0
  156. package/dist/db/firestore-telemetry.d.ts +21 -0
  157. package/dist/db/firestore-telemetry.d.ts.map +1 -0
  158. package/dist/db/firestore-telemetry.js +84 -0
  159. package/dist/db/firestore-telemetry.js.map +1 -0
  160. package/dist/db/firestore-types.d.ts +25 -0
  161. package/dist/db/firestore-types.d.ts.map +1 -0
  162. package/dist/db/firestore-types.js +2 -0
  163. package/dist/db/firestore-types.js.map +1 -0
  164. package/dist/db/firestore.d.ts +151 -0
  165. package/dist/db/firestore.d.ts.map +1 -0
  166. package/dist/db/firestore.js +505 -0
  167. package/dist/db/firestore.js.map +1 -0
  168. package/dist/db/geo-point.d.ts +11 -0
  169. package/dist/db/geo-point.d.ts.map +1 -0
  170. package/dist/db/geo-point.js +29 -0
  171. package/dist/db/geo-point.js.map +1 -0
  172. package/dist/db/json-stream.d.ts +3 -0
  173. package/dist/db/json-stream.d.ts.map +1 -0
  174. package/dist/db/json-stream.js +117 -0
  175. package/dist/db/json-stream.js.map +1 -0
  176. package/dist/db/pipeline-expression.d.ts +293 -0
  177. package/dist/db/pipeline-expression.d.ts.map +1 -0
  178. package/dist/db/pipeline-expression.js +1436 -0
  179. package/dist/db/pipeline-expression.js.map +1 -0
  180. package/dist/db/pipeline-query.d.ts +6 -0
  181. package/dist/db/pipeline-query.d.ts.map +1 -0
  182. package/dist/db/pipeline-query.js +91 -0
  183. package/dist/db/pipeline-query.js.map +1 -0
  184. package/dist/db/pipeline.d.ts +120 -0
  185. package/dist/db/pipeline.d.ts.map +1 -0
  186. package/dist/db/pipeline.js +396 -0
  187. package/dist/db/pipeline.js.map +1 -0
  188. package/dist/db/query-document-snapshot.d.ts +2 -0
  189. package/dist/db/query-document-snapshot.d.ts.map +1 -0
  190. package/dist/db/query-document-snapshot.js +2 -0
  191. package/dist/db/query-document-snapshot.js.map +1 -0
  192. package/dist/db/query-partition.d.ts +14 -0
  193. package/dist/db/query-partition.d.ts.map +1 -0
  194. package/dist/db/query-partition.js +32 -0
  195. package/dist/db/query-partition.js.map +1 -0
  196. package/dist/db/query-request.d.ts +96 -0
  197. package/dist/db/query-request.d.ts.map +1 -0
  198. package/dist/db/query-request.js +283 -0
  199. package/dist/db/query-request.js.map +1 -0
  200. package/dist/db/query.d.ts +129 -0
  201. package/dist/db/query.d.ts.map +1 -0
  202. package/dist/db/query.js +468 -0
  203. package/dist/db/query.js.map +1 -0
  204. package/dist/db/recursive-delete.d.ts +6 -0
  205. package/dist/db/recursive-delete.d.ts.map +1 -0
  206. package/dist/db/recursive-delete.js +38 -0
  207. package/dist/db/recursive-delete.js.map +1 -0
  208. package/dist/db/snapshot-listener.d.ts +10 -0
  209. package/dist/db/snapshot-listener.d.ts.map +1 -0
  210. package/dist/db/snapshot-listener.js +71 -0
  211. package/dist/db/snapshot-listener.js.map +1 -0
  212. package/dist/db/timestamp.d.ts +29 -0
  213. package/dist/db/timestamp.d.ts.map +1 -0
  214. package/dist/db/timestamp.js +98 -0
  215. package/dist/db/timestamp.js.map +1 -0
  216. package/dist/db/transaction.d.ts +44 -0
  217. package/dist/db/transaction.d.ts.map +1 -0
  218. package/dist/db/transaction.js +177 -0
  219. package/dist/db/transaction.js.map +1 -0
  220. package/dist/db/value-equality.d.ts +3 -0
  221. package/dist/db/value-equality.d.ts.map +1 -0
  222. package/dist/db/value-equality.js +29 -0
  223. package/dist/db/value-equality.js.map +1 -0
  224. package/dist/db/vector-query.d.ts +38 -0
  225. package/dist/db/vector-query.d.ts.map +1 -0
  226. package/dist/db/vector-query.js +110 -0
  227. package/dist/db/vector-query.js.map +1 -0
  228. package/dist/db/vector-value.d.ts +8 -0
  229. package/dist/db/vector-value.d.ts.map +1 -0
  230. package/dist/db/vector-value.js +25 -0
  231. package/dist/db/vector-value.js.map +1 -0
  232. package/dist/db/write-batch.d.ts +25 -0
  233. package/dist/db/write-batch.d.ts.map +1 -0
  234. package/dist/db/write-batch.js +72 -0
  235. package/dist/db/write-batch.js.map +1 -0
  236. package/dist/db/write-request.d.ts +36 -0
  237. package/dist/db/write-request.d.ts.map +1 -0
  238. package/dist/db/write-request.js +257 -0
  239. package/dist/db/write-request.js.map +1 -0
  240. package/dist/firebase-edge-server.d.ts +143 -36
  241. package/dist/firebase-edge-server.d.ts.map +1 -1
  242. package/dist/firebase-edge-server.js +463 -258
  243. package/dist/firebase-edge-server.js.map +1 -1
  244. package/dist/index.d.ts +6 -0
  245. package/dist/index.d.ts.map +1 -1
  246. package/dist/index.js +5 -0
  247. package/dist/index.js.map +1 -1
  248. package/dist/rest-fetch.d.ts +1 -1
  249. package/dist/rest-fetch.d.ts.map +1 -1
  250. package/dist/storage/storage-acl.d.ts +48 -0
  251. package/dist/storage/storage-acl.d.ts.map +1 -0
  252. package/dist/storage/storage-acl.js +101 -0
  253. package/dist/storage/storage-acl.js.map +1 -0
  254. package/dist/storage/storage-bucket-endpoints.d.ts +10 -0
  255. package/dist/storage/storage-bucket-endpoints.d.ts.map +1 -0
  256. package/dist/storage/storage-bucket-endpoints.js +514 -0
  257. package/dist/storage/storage-bucket-endpoints.js.map +1 -0
  258. package/dist/storage/storage-bucket-types.d.ts +183 -0
  259. package/dist/storage/storage-bucket-types.d.ts.map +1 -0
  260. package/dist/storage/storage-bucket-types.js +2 -0
  261. package/dist/storage/storage-bucket-types.js.map +1 -0
  262. package/dist/storage/storage-bucket.d.ts +122 -0
  263. package/dist/storage/storage-bucket.d.ts.map +1 -0
  264. package/dist/storage/storage-bucket.js +544 -0
  265. package/dist/storage/storage-bucket.js.map +1 -0
  266. package/dist/storage/storage-channel.d.ts +10 -0
  267. package/dist/storage/storage-channel.d.ts.map +1 -0
  268. package/dist/storage/storage-channel.js +15 -0
  269. package/dist/storage/storage-channel.js.map +1 -0
  270. package/dist/storage/storage-checksum.d.ts +35 -0
  271. package/dist/storage/storage-checksum.d.ts.map +1 -0
  272. package/dist/storage/storage-checksum.js +312 -0
  273. package/dist/storage/storage-checksum.js.map +1 -0
  274. package/dist/storage/storage-endpoints.d.ts +14 -0
  275. package/dist/storage/storage-endpoints.d.ts.map +1 -0
  276. package/dist/storage/storage-endpoints.js +721 -0
  277. package/dist/storage/storage-endpoints.js.map +1 -0
  278. package/dist/storage/storage-file.d.ts +126 -0
  279. package/dist/storage/storage-file.d.ts.map +1 -0
  280. package/dist/storage/storage-file.js +604 -0
  281. package/dist/storage/storage-file.js.map +1 -0
  282. package/dist/storage/storage-hmac-key.d.ts +26 -0
  283. package/dist/storage/storage-hmac-key.d.ts.map +1 -0
  284. package/dist/storage/storage-hmac-key.js +45 -0
  285. package/dist/storage/storage-hmac-key.js.map +1 -0
  286. package/dist/storage/storage-iam.d.ts +20 -0
  287. package/dist/storage/storage-iam.d.ts.map +1 -0
  288. package/dist/storage/storage-iam.js +43 -0
  289. package/dist/storage/storage-iam.js.map +1 -0
  290. package/dist/storage/storage-md5.d.ts +11 -0
  291. package/dist/storage/storage-md5.d.ts.map +1 -0
  292. package/dist/storage/storage-md5.js +96 -0
  293. package/dist/storage/storage-md5.js.map +1 -0
  294. package/dist/storage/storage-notification.d.ts +24 -0
  295. package/dist/storage/storage-notification.d.ts.map +1 -0
  296. package/dist/storage/storage-notification.js +40 -0
  297. package/dist/storage/storage-notification.js.map +1 -0
  298. package/dist/storage/storage-progress.d.ts +4 -0
  299. package/dist/storage/storage-progress.d.ts.map +1 -0
  300. package/dist/storage/storage-progress.js +17 -0
  301. package/dist/storage/storage-progress.js.map +1 -0
  302. package/dist/storage/storage-reference-endpoints.d.ts +63 -0
  303. package/dist/storage/storage-reference-endpoints.d.ts.map +1 -0
  304. package/dist/storage/storage-reference-endpoints.js +276 -0
  305. package/dist/storage/storage-reference-endpoints.js.map +1 -0
  306. package/dist/storage/storage-reference-helpers.d.ts +12 -0
  307. package/dist/storage/storage-reference-helpers.d.ts.map +1 -0
  308. package/dist/storage/storage-reference-helpers.js +72 -0
  309. package/dist/storage/storage-reference-helpers.js.map +1 -0
  310. package/dist/storage/storage-reference-signing.d.ts +40 -0
  311. package/dist/storage/storage-reference-signing.d.ts.map +1 -0
  312. package/dist/storage/storage-reference-signing.js +289 -0
  313. package/dist/storage/storage-reference-signing.js.map +1 -0
  314. package/dist/storage/storage-reference-types.d.ts +76 -0
  315. package/dist/storage/storage-reference-types.d.ts.map +1 -0
  316. package/dist/storage/storage-reference-types.js +2 -0
  317. package/dist/storage/storage-reference-types.js.map +1 -0
  318. package/dist/storage/storage-results.d.ts +8 -0
  319. package/dist/storage/storage-results.d.ts.map +1 -0
  320. package/dist/storage/storage-results.js +32 -0
  321. package/dist/storage/storage-results.js.map +1 -0
  322. package/dist/storage/storage-resumable.d.ts +18 -0
  323. package/dist/storage/storage-resumable.d.ts.map +1 -0
  324. package/dist/storage/storage-resumable.js +166 -0
  325. package/dist/storage/storage-resumable.js.map +1 -0
  326. package/dist/storage/storage-retry.d.ts +9 -0
  327. package/dist/storage/storage-retry.d.ts.map +1 -0
  328. package/dist/storage/storage-retry.js +104 -0
  329. package/dist/storage/storage-retry.js.map +1 -0
  330. package/dist/storage/storage-signed-url.d.ts +9 -0
  331. package/dist/storage/storage-signed-url.d.ts.map +1 -0
  332. package/dist/storage/storage-signed-url.js +96 -0
  333. package/dist/storage/storage-signed-url.js.map +1 -0
  334. package/dist/storage/storage-special-endpoints.d.ts +10 -0
  335. package/dist/storage/storage-special-endpoints.d.ts.map +1 -0
  336. package/dist/storage/storage-special-endpoints.js +394 -0
  337. package/dist/storage/storage-special-endpoints.js.map +1 -0
  338. package/dist/storage/storage-special-types.d.ts +154 -0
  339. package/dist/storage/storage-special-types.d.ts.map +1 -0
  340. package/dist/storage/storage-special-types.js +2 -0
  341. package/dist/storage/storage-special-types.js.map +1 -0
  342. package/dist/storage/storage-types.d.ts +251 -0
  343. package/dist/storage/storage-types.d.ts.map +1 -0
  344. package/dist/storage/storage-types.js +2 -0
  345. package/dist/storage/storage-types.js.map +1 -0
  346. package/dist/storage/storage-upload-stream.d.ts +41 -0
  347. package/dist/storage/storage-upload-stream.d.ts.map +1 -0
  348. package/dist/storage/storage-upload-stream.js +335 -0
  349. package/dist/storage/storage-upload-stream.js.map +1 -0
  350. package/dist/storage/storage-xml-signing.d.ts +17 -0
  351. package/dist/storage/storage-xml-signing.d.ts.map +1 -0
  352. package/dist/storage/storage-xml-signing.js +144 -0
  353. package/dist/storage/storage-xml-signing.js.map +1 -0
  354. package/dist/storage/storage.d.ts +152 -0
  355. package/dist/storage/storage.d.ts.map +1 -0
  356. package/dist/storage/storage.js +532 -0
  357. package/dist/storage/storage.js.map +1 -0
  358. package/dist/utils/token-cache.d.ts.map +1 -1
  359. package/dist/utils/token-cache.js +3 -2
  360. package/dist/utils/token-cache.js.map +1 -1
  361. package/package.json +22 -6
  362. package/dist/auth/auth-endpoint-errors.test.d.ts +0 -2
  363. package/dist/auth/auth-endpoint-errors.test.d.ts.map +0 -1
  364. package/dist/auth/auth-endpoint-errors.test.js +0 -411
  365. package/dist/auth/auth-endpoint-errors.test.js.map +0 -1
  366. package/dist/auth/email-action-request.test.d.ts +0 -2
  367. package/dist/auth/email-action-request.test.d.ts.map +0 -1
  368. package/dist/auth/email-action-request.test.js +0 -128
  369. package/dist/auth/email-action-request.test.js.map +0 -1
  370. package/dist/auth/errors.test.d.ts +0 -2
  371. package/dist/auth/errors.test.d.ts.map +0 -1
  372. package/dist/auth/errors.test.js +0 -123
  373. package/dist/auth/errors.test.js.map +0 -1
  374. package/dist/auth/firebase-admin-auth.test.d.ts +0 -2
  375. package/dist/auth/firebase-admin-auth.test.d.ts.map +0 -1
  376. package/dist/auth/firebase-admin-auth.test.js +0 -1542
  377. package/dist/auth/firebase-admin-auth.test.js.map +0 -1
  378. package/dist/auth/firebase-auth-endpoints.test.d.ts +0 -2
  379. package/dist/auth/firebase-auth-endpoints.test.d.ts.map +0 -1
  380. package/dist/auth/firebase-auth-endpoints.test.js +0 -1082
  381. package/dist/auth/firebase-auth-endpoints.test.js.map +0 -1
  382. package/dist/auth/firebase-auth.test.d.ts +0 -2
  383. package/dist/auth/firebase-auth.test.d.ts.map +0 -1
  384. package/dist/auth/firebase-auth.test.js +0 -167
  385. package/dist/auth/firebase-auth.test.js.map +0 -1
  386. package/dist/auth/firebase-jwt.test.d.ts +0 -2
  387. package/dist/auth/firebase-jwt.test.d.ts.map +0 -1
  388. package/dist/auth/firebase-jwt.test.js +0 -164
  389. package/dist/auth/firebase-jwt.test.js.map +0 -1
  390. package/dist/auth/github-oauth.d.ts +0 -19
  391. package/dist/auth/github-oauth.d.ts.map +0 -1
  392. package/dist/auth/github-oauth.js +0 -145
  393. package/dist/auth/github-oauth.js.map +0 -1
  394. package/dist/auth/github-oauth.test.d.ts +0 -2
  395. package/dist/auth/github-oauth.test.d.ts.map +0 -1
  396. package/dist/auth/github-oauth.test.js +0 -202
  397. package/dist/auth/github-oauth.test.js.map +0 -1
  398. package/dist/auth/google-oauth.test.d.ts +0 -2
  399. package/dist/auth/google-oauth.test.d.ts.map +0 -1
  400. package/dist/auth/google-oauth.test.js +0 -200
  401. package/dist/auth/google-oauth.test.js.map +0 -1
  402. package/dist/auth/oauth.d.ts +0 -3
  403. package/dist/auth/oauth.d.ts.map +0 -1
  404. package/dist/auth/oauth.js +0 -48
  405. package/dist/auth/oauth.js.map +0 -1
  406. package/dist/auth/oauth.test.d.ts +0 -2
  407. package/dist/auth/oauth.test.d.ts.map +0 -1
  408. package/dist/auth/oauth.test.js +0 -109
  409. package/dist/auth/oauth.test.js.map +0 -1
  410. package/dist/auth/user-batch.test.d.ts +0 -2
  411. package/dist/auth/user-batch.test.d.ts.map +0 -1
  412. package/dist/auth/user-batch.test.js +0 -73
  413. package/dist/auth/user-batch.test.js.map +0 -1
  414. package/dist/auth/user-import.test.d.ts +0 -2
  415. package/dist/auth/user-import.test.d.ts.map +0 -1
  416. package/dist/auth/user-import.test.js +0 -217
  417. package/dist/auth/user-import.test.js.map +0 -1
  418. package/dist/auth/user-record.test.d.ts +0 -2
  419. package/dist/auth/user-record.test.d.ts.map +0 -1
  420. package/dist/auth/user-record.test.js +0 -198
  421. package/dist/auth/user-record.test.js.map +0 -1
  422. package/dist/auth/user-request.test.d.ts +0 -2
  423. package/dist/auth/user-request.test.d.ts.map +0 -1
  424. package/dist/auth/user-request.test.js +0 -327
  425. package/dist/auth/user-request.test.js.map +0 -1
  426. package/dist/firebase-edge-errors.test.d.ts +0 -2
  427. package/dist/firebase-edge-errors.test.d.ts.map +0 -1
  428. package/dist/firebase-edge-errors.test.js +0 -72
  429. package/dist/firebase-edge-errors.test.js.map +0 -1
  430. package/dist/firebase-edge-server.test.d.ts +0 -2
  431. package/dist/firebase-edge-server.test.d.ts.map +0 -1
  432. package/dist/firebase-edge-server.test.js +0 -293
  433. package/dist/firebase-edge-server.test.js.map +0 -1
  434. package/dist/rest-fetch.test.d.ts +0 -2
  435. package/dist/rest-fetch.test.d.ts.map +0 -1
  436. package/dist/rest-fetch.test.js +0 -164
  437. package/dist/rest-fetch.test.js.map +0 -1
@@ -0,0 +1,544 @@
1
+ import { FirebaseEdgeError } from '../auth/errors.js';
2
+ import { File } from './storage-file.js';
3
+ import { Acl } from './storage-acl.js';
4
+ import { Iam } from './storage-iam.js';
5
+ import { Notification } from './storage-notification.js';
6
+ import { Channel } from './storage-channel.js';
7
+ import { storageResult, storageData, storageUnsupported } from './storage-results.js';
8
+ import { storagePreconditions, storageGeneration, storageLoggingPolicy } from './storage-reference-helpers.js';
9
+ /** A bucket reference; object operations are accessed through file(name). */
10
+ export class Bucket {
11
+ storage;
12
+ name;
13
+ engine;
14
+ options;
15
+ metadata;
16
+ acl;
17
+ iam;
18
+ constructor(storage, name, engine, options = {}) {
19
+ this.storage = storage;
20
+ this.name = name;
21
+ this.engine = engine;
22
+ this.options = options;
23
+ this.acl = Object.assign(new Acl(() => this.engine, { scope: 'bucket' }), { default: new Acl(() => this.engine, { scope: 'defaultObject' }) });
24
+ this.iam = new Iam(() => this.engine);
25
+ }
26
+ get cloudStorageURI() {
27
+ return new URL(`gs://${this.name}`);
28
+ }
29
+ getId() {
30
+ return this.name;
31
+ }
32
+ file(name, options = {}) {
33
+ return new File(this, name, {
34
+ crc32cGenerator: this.options.crc32cGenerator,
35
+ kmsKeyName: this.options.kmsKeyName,
36
+ preconditionOpts: this.options.preconditionOpts,
37
+ ...options
38
+ });
39
+ }
40
+ notification(id) {
41
+ return new Notification(this, id, this.engine);
42
+ }
43
+ getMetadata(options = {}) {
44
+ return storageResult(async () => {
45
+ const result = await this.engine.getBucketMetadata({
46
+ ...storagePreconditions(this.options.preconditionOpts),
47
+ ...storagePreconditions(options),
48
+ ...(this.options.generation !== undefined && {
49
+ generation: storageGeneration(this.options.generation)
50
+ }),
51
+ ...(this.options.softDeleted !== undefined && {
52
+ softDeleted: this.options.softDeleted
53
+ })
54
+ });
55
+ this.metadata = storageData(result);
56
+ return this.metadata;
57
+ });
58
+ }
59
+ get(options = {}) {
60
+ return storageResult(async () => {
61
+ const { error } = await this.getMetadata({
62
+ ...(options.userProject !== undefined && {
63
+ userProject: options.userProject
64
+ })
65
+ });
66
+ if (error?.code === 'storage/bucket-not-found' &&
67
+ options.autoCreate) {
68
+ const { autoCreate, userProject, ...createOptions } = options;
69
+ const result = await this.create({
70
+ ...createOptions,
71
+ location: options.location ?? 'US'
72
+ });
73
+ return storageData(result);
74
+ }
75
+ if (error) {
76
+ throw error;
77
+ }
78
+ return this;
79
+ });
80
+ }
81
+ async exists(options = {}) {
82
+ const { error } = await this.getMetadata(options);
83
+ if (error?.code === 'storage/bucket-not-found') {
84
+ return { error: null, data: false };
85
+ }
86
+ if (error) {
87
+ return { error, data: null };
88
+ }
89
+ return { error: null, data: true };
90
+ }
91
+ create(options = { location: 'US' }) {
92
+ return storageResult(async () => {
93
+ const result = await this.engine.createBucket(options);
94
+ this.metadata = storageData(result);
95
+ return this;
96
+ });
97
+ }
98
+ setMetadata(metadata, options = {}) {
99
+ return storageResult(async () => {
100
+ const result = await this.engine.updateBucketMetadata(metadata, storagePreconditions(options));
101
+ this.metadata = storageData(result);
102
+ return this.metadata;
103
+ });
104
+ }
105
+ delete(options = {}) {
106
+ return storageResult(async () => {
107
+ const result = await this.engine.deleteBucket(storagePreconditions(options));
108
+ const { error } = result;
109
+ if (options.ignoreNotFound &&
110
+ error?.code === 'storage/bucket-not-found') {
111
+ return;
112
+ }
113
+ return storageData(result);
114
+ });
115
+ }
116
+ getFiles(options = {}) {
117
+ return storageResult(async () => {
118
+ const { autoPaginate = true, maxApiCalls = Infinity, ...query } = options;
119
+ if (typeof autoPaginate !== 'boolean' ||
120
+ !(maxApiCalls === Infinity ||
121
+ (Number.isInteger(maxApiCalls) && maxApiCalls > 0))) {
122
+ throw new FirebaseEdgeError({
123
+ code: 'storage/invalid-argument',
124
+ message: 'Invalid pagination options.'
125
+ });
126
+ }
127
+ const files = [];
128
+ const prefixes = new Set();
129
+ let pageToken = query.pageToken;
130
+ const seen = new Set();
131
+ let calls = 0;
132
+ do {
133
+ if (pageToken && seen.has(pageToken)) {
134
+ throw new FirebaseEdgeError({
135
+ code: 'storage/internal-error',
136
+ message: 'Storage returned a repeated page token.'
137
+ });
138
+ }
139
+ if (pageToken) {
140
+ seen.add(pageToken);
141
+ }
142
+ const result = await this.engine.listFiles({
143
+ ...query,
144
+ pageToken
145
+ });
146
+ const page = storageData(result);
147
+ for (const prefix of page.prefixes ?? []) {
148
+ prefixes.add(prefix);
149
+ }
150
+ for (const metadata of page.files) {
151
+ const file = this.file(metadata.name, query.versions || query.softDeleted
152
+ ? {
153
+ generation: metadata.generation,
154
+ restoreToken: metadata.restoreToken
155
+ }
156
+ : {});
157
+ file.metadata = metadata;
158
+ files.push(file);
159
+ }
160
+ pageToken = page.nextPageToken;
161
+ calls++;
162
+ } while (pageToken && autoPaginate && calls < maxApiCalls);
163
+ return {
164
+ files,
165
+ prefixes: [...prefixes],
166
+ ...(pageToken && { nextQuery: { ...options, pageToken } })
167
+ };
168
+ });
169
+ }
170
+ getFilesStream(options = {}) {
171
+ let query = {
172
+ ...options,
173
+ autoPaginate: false
174
+ };
175
+ let pending = [];
176
+ const bucket = this;
177
+ const seen = new Set();
178
+ let calls = 0;
179
+ let cancelled = false;
180
+ return new ReadableStream({
181
+ async pull(controller) {
182
+ try {
183
+ while (!pending.length && query) {
184
+ if (query.pageToken && seen.has(query.pageToken)) {
185
+ throw new FirebaseEdgeError({
186
+ code: 'storage/internal-error',
187
+ message: 'Repeated file page token.'
188
+ });
189
+ }
190
+ if (query.pageToken) {
191
+ seen.add(query.pageToken);
192
+ }
193
+ const result = await bucket.getFiles(query);
194
+ if (cancelled) {
195
+ return;
196
+ }
197
+ const { files, nextQuery } = storageData(result);
198
+ pending = files;
199
+ calls++;
200
+ query =
201
+ calls < (options.maxApiCalls ?? Infinity)
202
+ ? nextQuery
203
+ : undefined;
204
+ }
205
+ if (!pending.length) {
206
+ controller.close();
207
+ return;
208
+ }
209
+ controller.enqueue(pending.shift());
210
+ }
211
+ catch (cause) {
212
+ if (cancelled) {
213
+ return;
214
+ }
215
+ controller.error(cause);
216
+ }
217
+ },
218
+ cancel() {
219
+ cancelled = true;
220
+ query = undefined;
221
+ pending = [];
222
+ }
223
+ }, { highWaterMark: 0 });
224
+ }
225
+ upload(input, options = {}) {
226
+ return storageResult(async () => {
227
+ if (typeof input === 'string') {
228
+ storageUnsupported('Uploading from a filesystem path; use file.save(text) for strings');
229
+ }
230
+ const destination = options.destination ??
231
+ (typeof globalThis.File !== 'undefined' &&
232
+ input instanceof globalThis.File
233
+ ? input.name
234
+ : undefined);
235
+ if (!destination) {
236
+ throw new FirebaseEdgeError({
237
+ code: 'storage/invalid-argument',
238
+ message: 'A destination is required for byte/stream uploads.'
239
+ });
240
+ }
241
+ const file = destination instanceof File
242
+ ? destination
243
+ : this.file(destination, {
244
+ encryptionKey: options.encryptionKey,
245
+ kmsKeyName: options.kmsKeyName
246
+ });
247
+ if (destination instanceof File &&
248
+ options.encryptionKey !== undefined) {
249
+ file.setEncryptionKey(options.encryptionKey);
250
+ }
251
+ const result = await file.save(input, options);
252
+ storageData(result);
253
+ return file;
254
+ });
255
+ }
256
+ deleteFiles(options = {}) {
257
+ return storageResult(async () => {
258
+ const { force = false, concurrency, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, ...query } = options;
259
+ const preconditions = storagePreconditions(options);
260
+ const result = await this.getFiles(query);
261
+ const { files } = storageData(result);
262
+ const deleted = await this.engine.deleteFiles(files.map((file) => ({
263
+ ...preconditions,
264
+ name: file.name,
265
+ generation: file.generation
266
+ })), { concurrency, ignoreNotFound: force });
267
+ const data = storageData(deleted);
268
+ const failures = data.results.flatMap(({ error }) => error ? [error] : []);
269
+ if (failures.length) {
270
+ throw new FirebaseEdgeError({
271
+ code: 'storage/batch-incomplete',
272
+ message: 'Some objects could not be deleted.'
273
+ }, { context: { failures: failures.length } });
274
+ }
275
+ });
276
+ }
277
+ combine(sources, destination, options = {}) {
278
+ return storageResult(async () => {
279
+ const target = destination instanceof File
280
+ ? destination
281
+ : this.file(destination);
282
+ if (target.bucket.name !== this.name ||
283
+ sources.some((source) => source instanceof File &&
284
+ source.bucket.name !== this.name)) {
285
+ throw new FirebaseEdgeError({
286
+ code: 'storage/invalid-argument',
287
+ message: 'Composition requires one bucket.'
288
+ });
289
+ }
290
+ const result = await this.engine.compose(target.name, sources.map((source) => typeof source === 'string'
291
+ ? { name: source }
292
+ : { name: source.name, generation: source.generation }), {
293
+ ...options,
294
+ ...storagePreconditions(options)
295
+ });
296
+ target.metadata = storageData(result);
297
+ return target;
298
+ });
299
+ }
300
+ getLabels(options = {}) {
301
+ return storageResult(async () => {
302
+ const result = await this.getMetadata(options);
303
+ return storageData(result).labels ?? {};
304
+ });
305
+ }
306
+ setLabels(labels, options = {}) {
307
+ return this.setMetadata({ labels }, options);
308
+ }
309
+ deleteLabels(labels, options = {}) {
310
+ return storageResult(async () => {
311
+ const result = await this.getMetadata(options);
312
+ const metadata = storageData(result);
313
+ const keys = labels === undefined
314
+ ? Object.keys(metadata.labels ?? {})
315
+ : typeof labels === 'string'
316
+ ? [labels]
317
+ : labels;
318
+ const updated = await this.setLabels(Object.fromEntries(keys.map((key) => [key, null])), { ifMetagenerationMatch: metadata.metageneration, ...options });
319
+ return storageData(updated);
320
+ });
321
+ }
322
+ setCorsConfiguration(cors, options = {}) {
323
+ return this.setMetadata({ cors }, options);
324
+ }
325
+ setStorageClass(storageClass, options = {}) {
326
+ return this.setMetadata({ storageClass }, options);
327
+ }
328
+ setRetentionPeriod(seconds, options = {}) {
329
+ return storageResult(async () => {
330
+ const result = await this.setMetadata({
331
+ retentionPolicy: {
332
+ retentionPeriod: storageGeneration(seconds)
333
+ }
334
+ }, options);
335
+ return storageData(result);
336
+ });
337
+ }
338
+ removeRetentionPeriod(options = {}) {
339
+ return this.setMetadata({ retentionPolicy: null }, options);
340
+ }
341
+ lock(metageneration) {
342
+ return storageResult(async () => {
343
+ const result = await this.engine.lockRetentionPolicy(storageGeneration(metageneration));
344
+ return storageData(result);
345
+ });
346
+ }
347
+ enableRequesterPays(options = {}) {
348
+ return this.setMetadata({ billing: { requesterPays: true } }, options);
349
+ }
350
+ disableRequesterPays(options = {}) {
351
+ return this.setMetadata({ billing: { requesterPays: false } }, options);
352
+ }
353
+ enableLogging(options) {
354
+ return storageResult(async () => {
355
+ if (!options || typeof options.prefix !== 'string') {
356
+ throw new FirebaseEdgeError({
357
+ code: 'storage/invalid-argument',
358
+ message: 'Logging requires an object-name prefix.'
359
+ });
360
+ }
361
+ const destination = options.bucket === undefined
362
+ ? this
363
+ : typeof options.bucket === 'string'
364
+ ? this.storage.bucket(options.bucket)
365
+ : options.bucket;
366
+ for (let attempt = 0; attempt < 3; attempt++) {
367
+ const current = await destination.iam.getPolicy();
368
+ const policy = storageLoggingPolicy(storageData(current));
369
+ if (!policy) {
370
+ break;
371
+ }
372
+ const { error } = await destination.iam.setPolicy(policy);
373
+ if (!error) {
374
+ break;
375
+ }
376
+ if (attempt === 2 ||
377
+ ![
378
+ 'storage/conflict',
379
+ 'storage/precondition-failed'
380
+ ].includes(error.code ?? '')) {
381
+ throw error;
382
+ }
383
+ }
384
+ const result = await this.setMetadata({
385
+ logging: {
386
+ logBucket: destination.name,
387
+ logObjectPrefix: options.prefix
388
+ }
389
+ }, storagePreconditions(options));
390
+ return storageData(result);
391
+ });
392
+ }
393
+ restore(options) {
394
+ return storageResult(async () => {
395
+ const result = await this.engine.referenceAction({ kind: 'bucket' }, {
396
+ kind: 'restoreBucket',
397
+ ...(options.projection !== undefined && {
398
+ projection: options.projection
399
+ }),
400
+ generation: storageGeneration(options.generation)
401
+ });
402
+ this.metadata = storageData(result);
403
+ return this;
404
+ });
405
+ }
406
+ createChannel(id, config, options = {}) {
407
+ return storageResult(async () => {
408
+ const engine = options.userProject === undefined
409
+ ? this.engine
410
+ : this.engine.scoped(options);
411
+ const result = await engine.referenceAction({ kind: 'bucket' }, { kind: 'watch', id, config });
412
+ const metadata = storageData(result);
413
+ if (typeof metadata.resourceId !== 'string') {
414
+ throw new FirebaseEdgeError({
415
+ code: 'storage/internal-error',
416
+ message: 'Missing channel resource ID.'
417
+ });
418
+ }
419
+ return new Channel(id, metadata.resourceId, engine);
420
+ });
421
+ }
422
+ addLifecycleRule(rules, options = {}) {
423
+ return storageResult(async () => {
424
+ const result = await this.getMetadata();
425
+ const metadata = storageData(result);
426
+ const previous = options.append === false
427
+ ? []
428
+ : (metadata.lifecycle?.rule ?? []);
429
+ const updated = await this.setMetadata({
430
+ lifecycle: {
431
+ rule: [
432
+ ...previous,
433
+ ...(Array.isArray(rules) ? rules : [rules])
434
+ ]
435
+ }
436
+ }, { ifMetagenerationMatch: metadata.metageneration });
437
+ return storageData(updated);
438
+ });
439
+ }
440
+ createNotification(topic, options = {}) {
441
+ return storageResult(async () => {
442
+ const engine = options.userProject === undefined
443
+ ? this.engine
444
+ : this.engine.scoped({ userProject: options.userProject });
445
+ const result = await engine.createNotification({
446
+ topic: topic.startsWith('//pubsub.googleapis.com/')
447
+ ? topic
448
+ : `//pubsub.googleapis.com/${topic}`,
449
+ payload_format: options.payloadFormat ?? 'JSON_API_V1',
450
+ event_types: options.eventTypes ?? options.event_types,
451
+ object_name_prefix: options.objectNamePrefix ?? options.object_name_prefix,
452
+ custom_attributes: options.customAttributes ?? options.custom_attributes
453
+ });
454
+ const metadata = storageData(result);
455
+ const notification = new Notification(this, metadata.id, engine);
456
+ notification.metadata = metadata;
457
+ return notification;
458
+ });
459
+ }
460
+ getNotifications(options = {}) {
461
+ return storageResult(async () => {
462
+ const engine = options.userProject === undefined
463
+ ? this.engine
464
+ : this.engine.scoped(options);
465
+ const result = await engine.listNotifications();
466
+ return storageData(result).items.map((metadata) => {
467
+ const notification = new Notification(this, metadata.id, engine);
468
+ notification.metadata = metadata;
469
+ return notification;
470
+ });
471
+ });
472
+ }
473
+ makePublic(options = {}) {
474
+ return storageResult(async () => {
475
+ const result = await this.acl.add({
476
+ entity: 'allUsers',
477
+ role: 'READER'
478
+ });
479
+ storageData(result);
480
+ const defaults = await this.acl.default.add({
481
+ entity: 'allUsers',
482
+ role: 'READER'
483
+ });
484
+ storageData(defaults);
485
+ return this.updateFileVisibility(true, options);
486
+ });
487
+ }
488
+ makePrivate(options = {}) {
489
+ return storageResult(async () => {
490
+ const result = await this.engine.referenceAction({ kind: 'bucket' }, {
491
+ kind: 'makePrivate',
492
+ ...(options.metadata && {
493
+ metadata: options.metadata
494
+ }),
495
+ preconditions: storagePreconditions({
496
+ ...options.preconditionOpts,
497
+ ...(options.userProject !== undefined && {
498
+ userProject: options.userProject
499
+ })
500
+ })
501
+ });
502
+ storageData(result);
503
+ return this.updateFileVisibility(false, options);
504
+ });
505
+ }
506
+ async updateFileVisibility(isPublic, options) {
507
+ if (!options.includeFiles) {
508
+ return [];
509
+ }
510
+ const result = await this.getFiles();
511
+ const { files } = storageData(result);
512
+ const failures = [];
513
+ for (const file of files) {
514
+ const { error } = isPublic
515
+ ? await file.makePublic()
516
+ : await file.makePrivate();
517
+ if (!error) {
518
+ continue;
519
+ }
520
+ if (!options.force) {
521
+ throw error;
522
+ }
523
+ failures.push(error);
524
+ }
525
+ if (failures.length) {
526
+ throw new FirebaseEdgeError({
527
+ code: 'storage/batch-incomplete',
528
+ message: 'Some object ACL updates failed.'
529
+ }, { context: { failures: failures.length } });
530
+ }
531
+ return files;
532
+ }
533
+ getSignedUrl(options) {
534
+ return this.engine.referenceSignedUrl(undefined, options);
535
+ }
536
+ setUserProject(userProject) {
537
+ this.engine = this.engine.scoped({ userProject });
538
+ return this;
539
+ }
540
+ request(options) {
541
+ return this.engine.requestResource({ kind: 'bucket' }, options);
542
+ }
543
+ }
544
+ //# sourceMappingURL=storage-bucket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-bucket.js","sourceRoot":"","sources":["../../src/storage/storage-bucket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Storage } from './storage.js';
2
+ /** A legacy object-change notification channel. */
3
+ export declare class Channel {
4
+ readonly id: string;
5
+ readonly resourceId: string;
6
+ private readonly storage;
7
+ constructor(id: string, resourceId: string, storage: Storage);
8
+ stop(): Promise<import("./storage-types.js").StorageResult<Record<string, unknown>>>;
9
+ }
10
+ //# sourceMappingURL=storage-channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-channel.d.ts","sourceRoot":"","sources":["../../src/storage/storage-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,mDAAmD;AACnD,qBAAa,OAAO;IAEZ,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFf,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EACV,OAAO,EAAE,OAAO;IAErC,IAAI;CAMP"}
@@ -0,0 +1,15 @@
1
+ /** A legacy object-change notification channel. */
2
+ export class Channel {
3
+ id;
4
+ resourceId;
5
+ storage;
6
+ constructor(id, resourceId, storage) {
7
+ this.id = id;
8
+ this.resourceId = resourceId;
9
+ this.storage = storage;
10
+ }
11
+ stop() {
12
+ return this.storage.referenceAction({ kind: 'channel', id: this.id }, { kind: 'stopChannel', id: this.id, resourceId: this.resourceId });
13
+ }
14
+ }
15
+ //# sourceMappingURL=storage-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-channel.js","sourceRoot":"","sources":["../../src/storage/storage-channel.ts"],"names":[],"mappings":"AAEA,mDAAmD;AACnD,MAAM,OAAO,OAAO;IAEH;IACA;IACQ;IAHrB,YACa,EAAU,EACV,UAAkB,EACV,OAAgB;QAFxB,OAAE,GAAF,EAAE,CAAQ;QACV,eAAU,GAAV,UAAU,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IAClC,CAAC;IACJ,IAAI;QACA,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAChC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CACpE,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,35 @@
1
+ import type { StorageUploadData, StorageFileMetadata } from './storage-types.js';
2
+ export interface CRC32CValidator {
3
+ update(bytes: Uint8Array): void;
4
+ toString(): string;
5
+ validate(value: string): boolean;
6
+ }
7
+ export type CRC32CValidatorGenerator = () => CRC32CValidator;
8
+ /** @internal Adapt SDK validators and combine a resumed prefix with the suffix CRC. */
9
+ export declare function createStorageCrc32c(generator?: CRC32CValidatorGenerator, initial?: string | number): Pick<StorageCrc32c, 'update' | 'digest'>;
10
+ /** @internal Incremental CRC32C shared by streamed downloads and uploads. */
11
+ export declare class StorageCrc32c {
12
+ private crc;
13
+ constructor(initial?: string | number);
14
+ update(bytes: Uint8Array): void;
15
+ digest(): string;
16
+ toString(): string;
17
+ validate(value: string): boolean;
18
+ }
19
+ /** Compute a Cloud Storage CRC32C (base64, big-endian) using web-native input types. */
20
+ export declare function calculateStorageCrc32c(input: StorageUploadData, generator?: CRC32CValidatorGenerator): Promise<string>;
21
+ /** Compute the base64 MD5 used for Cloud Storage object integrity validation. */
22
+ export declare function calculateStorageMd5(input: StorageUploadData): Promise<string>;
23
+ /** @internal Centralize byte sizing and UTF-8 conversion for progress and checksums. */
24
+ export declare function storageUploadBlob(input: StorageUploadData): Blob;
25
+ /** @internal Detect checksum mismatches even when the service accepted the upload. */
26
+ export declare function verifyStorageUpload(checksum: string | undefined, metadata: StorageFileMetadata, md5Hash?: string): void;
27
+ /** @internal Require a canonical base64-encoded four-byte CRC32C. */
28
+ export declare function validateStorageCrc32c(value: unknown): asserts value is string;
29
+ /** @internal Require canonical base64 representing a 16-byte MD5 digest. */
30
+ export declare function validateStorageMd5(value: unknown): asserts value is string;
31
+ /** @internal Validate downloaded bytes against the whole-object response checksum. */
32
+ export declare function verifyStorageDownload(bytes: Uint8Array<ArrayBuffer>, response: Response, algorithm?: 'crc32c' | 'md5', generator?: CRC32CValidatorGenerator): Promise<void>;
33
+ /** @internal Preserve backpressure and report integrity errors when the stream reaches EOF. */
34
+ export declare function verifyStorageStream(response: Response, algorithm?: 'crc32c' | 'md5', generator?: CRC32CValidatorGenerator): Response;
35
+ //# sourceMappingURL=storage-checksum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-checksum.d.ts","sourceRoot":"","sources":["../../src/storage/storage-checksum.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,oBAAoB,CAAC;AAU5B,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,eAAe,CAAC;AAE7D,uFAAuF;AACvF,wBAAgB,mBAAmB,CAC/B,SAAS,CAAC,EAAE,wBAAwB,EACpC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAC1B,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAC,CA4C1C;AAiDD,6EAA6E;AAC7E,qBAAa,aAAa;IACtB,OAAO,CAAC,GAAG,CAAc;gBAEb,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IA0BrC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAM/B,MAAM,IAAI,MAAM;IAYhB,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGnC;AAED,wFAAwF;AACxF,wBAAsB,sBAAsB,CACxC,KAAK,EAAE,iBAAiB,EACxB,SAAS,CAAC,EAAE,wBAAwB,GACrC,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,iFAAiF;AACjF,wBAAsB,mBAAmB,CACrC,KAAK,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAyBD,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAahE;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,CAAC,EAAE,MAAM,QA2CnB;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAU7E;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAU1E;AAED,sFAAsF;AACtF,wBAAsB,qBAAqB,CACvC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,QAAQ,GAAG,KAAgB,EACtC,SAAS,CAAC,EAAE,wBAAwB,iBAUvC;AA0BD,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,QAAQ,GAAG,KAAgB,EACtC,SAAS,CAAC,EAAE,wBAAwB,GACrC,QAAQ,CA8DV"}