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,276 @@
1
+ import { FirebaseEdgeError } from '../auth/errors.js';
2
+ import { storageFetch, readStorageObject, validateStorageOperation } from './storage-endpoints.js';
3
+ /** @internal Explicit IAM signing reuses the configured OAuth identity and transport. */
4
+ export async function storageSignBlob(email, token, value, endpoint, fetch) {
5
+ const base = new URL(endpoint);
6
+ if (base.protocol !== 'https:' ||
7
+ !(base.hostname === 'iamcredentials.googleapis.com' ||
8
+ base.hostname.endsWith('-iamcredentials.googleapis.com')) ||
9
+ base.username ||
10
+ base.password ||
11
+ base.search ||
12
+ base.hash ||
13
+ !/^\/v1\/projects\/[^/]+\/serviceAccounts\/$/.test(base.pathname)) {
14
+ throw new FirebaseEdgeError({
15
+ code: 'storage/invalid-argument',
16
+ message: 'signingEndpoint must be a Google IAM Credentials service-accounts HTTPS endpoint.'
17
+ });
18
+ }
19
+ const bytes = new TextEncoder().encode(value);
20
+ let binary = '';
21
+ for (const byte of bytes) {
22
+ binary += String.fromCharCode(byte);
23
+ }
24
+ const response = await storageFetch(`${base.href}${encodeURIComponent(email)}:signBlob`, {
25
+ method: 'POST',
26
+ redirect: 'manual',
27
+ headers: {
28
+ Authorization: `Bearer ${token}`,
29
+ 'Content-Type': 'application/json'
30
+ },
31
+ body: JSON.stringify({ payload: btoa(binary) })
32
+ }, fetch);
33
+ const data = await readStorageObject(response);
34
+ if (typeof data.signedBlob !== 'string' || !data.signedBlob) {
35
+ throw new FirebaseEdgeError({
36
+ code: 'storage/internal-error',
37
+ message: 'IAM signing returned no signature.'
38
+ });
39
+ }
40
+ const signature = Uint8Array.from(atob(data.signedBlob), (character) => character.charCodeAt(0));
41
+ return signature.buffer;
42
+ }
43
+ /** @internal Translate named reference operations into REST requests. */
44
+ export function storageReferenceActionOptions(action) {
45
+ if (action.kind === 'makePrivate') {
46
+ return {
47
+ method: 'PATCH',
48
+ qs: {
49
+ ...action.preconditions,
50
+ predefinedAcl: action.strict ? 'private' : 'projectPrivate'
51
+ },
52
+ json: { ...action.metadata, acl: null }
53
+ };
54
+ }
55
+ if (action.kind === 'restoreBucket') {
56
+ if (!/^\d+$/.test(action.generation) ||
57
+ (action.projection !== undefined &&
58
+ !['full', 'noAcl'].includes(action.projection))) {
59
+ throw new FirebaseEdgeError({
60
+ code: 'storage/invalid-argument',
61
+ message: 'Bucket restoration requires a generation.'
62
+ });
63
+ }
64
+ return {
65
+ method: 'POST',
66
+ uri: '/restore',
67
+ qs: {
68
+ generation: action.generation,
69
+ ...(action.projection !== undefined && {
70
+ projection: action.projection
71
+ })
72
+ }
73
+ };
74
+ }
75
+ if (action.kind === 'atomicMove') {
76
+ validateStorageOperation('validation', {
77
+ kind: 'metadata',
78
+ name: action.destination
79
+ });
80
+ return {
81
+ method: 'POST',
82
+ uri: `/moveTo/o/${encodeURIComponent(action.destination)}`,
83
+ qs: action.preconditions
84
+ };
85
+ }
86
+ if (action.kind === 'watch') {
87
+ if (!action.id?.trim() ||
88
+ !action.config?.address?.startsWith('https://')) {
89
+ throw new FirebaseEdgeError({
90
+ code: 'storage/invalid-argument',
91
+ message: 'Channels require an ID and HTTPS webhook address.'
92
+ });
93
+ }
94
+ return {
95
+ method: 'POST',
96
+ uri: '/o/watch',
97
+ json: {
98
+ ...action.config,
99
+ id: action.id,
100
+ type: action.config.type ?? 'web_hook'
101
+ }
102
+ };
103
+ }
104
+ if (!action.id?.trim() || !action.resourceId?.trim()) {
105
+ throw new FirebaseEdgeError({
106
+ code: 'storage/invalid-argument',
107
+ message: 'Channel ID and resource ID are required.'
108
+ });
109
+ }
110
+ return {
111
+ method: 'POST',
112
+ uri: '/stop',
113
+ json: { id: action.id, resourceId: action.resourceId }
114
+ };
115
+ }
116
+ /** @internal Construct the CSEK headers used for reads, writes and key rotation. */
117
+ export async function storageEncryptionHeaders(key) {
118
+ let bytes;
119
+ try {
120
+ bytes =
121
+ typeof key === 'string'
122
+ ? Uint8Array.from(atob(key), (character) => character.charCodeAt(0))
123
+ : key;
124
+ }
125
+ catch {
126
+ throw new FirebaseEdgeError({
127
+ code: 'storage/invalid-argument',
128
+ message: 'Customer encryption keys must be valid base64 or bytes.'
129
+ });
130
+ }
131
+ if (!(bytes instanceof Uint8Array) || bytes.length !== 32) {
132
+ throw new FirebaseEdgeError({
133
+ code: 'storage/invalid-argument',
134
+ message: 'Customer encryption keys must contain 32 bytes.'
135
+ });
136
+ }
137
+ const digest = await crypto.subtle.digest('SHA-256', bytes);
138
+ return {
139
+ 'x-goog-encryption-algorithm': 'AES256',
140
+ 'x-goog-encryption-key': btoa(String.fromCharCode(...bytes)),
141
+ 'x-goog-encryption-key-sha256': btoa(String.fromCharCode(...new Uint8Array(digest)))
142
+ };
143
+ }
144
+ /** @internal Keep the Admin request escape hatch scoped to authenticated Storage resources. */
145
+ export async function storageReferenceRequest(bucket, token, resource, options, fetch) {
146
+ validateStorageOperation(bucket, resource.kind === 'file'
147
+ ? { kind: 'metadata', name: resource.name }
148
+ : { kind: 'list', options: {} });
149
+ const { method = 'GET', uri = '', qs = {}, json, headers = {} } = options;
150
+ if (!['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD'].includes(method) ||
151
+ (uri &&
152
+ (!uri.startsWith('/') ||
153
+ uri.startsWith('//') ||
154
+ /[?#\\]/.test(uri) ||
155
+ uri.split('/').some((part) => /^(\.|%2e){1,2}$/i.test(part))))) {
156
+ throw new FirebaseEdgeError({
157
+ code: 'storage/invalid-argument',
158
+ message: 'Requests must use a supported method and a relative resource path.'
159
+ });
160
+ }
161
+ const path = resource.kind === 'channel'
162
+ ? '/channels'
163
+ : `/b/${encodeURIComponent(bucket)}` +
164
+ (resource.kind === 'file'
165
+ ? `/o/${encodeURIComponent(resource.name)}`
166
+ : '');
167
+ const url = new URL(`https://storage.googleapis.com/storage/v1${path}${uri}`);
168
+ for (const [key, value] of Object.entries(qs)) {
169
+ if (value !== undefined) {
170
+ url.searchParams.set(key, String(value));
171
+ }
172
+ }
173
+ const requestHeaders = new Headers(headers);
174
+ requestHeaders.set('Authorization', `Bearer ${token}`);
175
+ if (json !== undefined) {
176
+ requestHeaders.set('Content-Type', 'application/json');
177
+ }
178
+ const response = await storageFetch(url.toString(), {
179
+ method,
180
+ headers: requestHeaders,
181
+ ...(json !== undefined && { body: JSON.stringify(json) })
182
+ }, fetch, [], resource.kind === 'bucket' ? 'bucket-not-found' : 'object-not-found');
183
+ if (response.status === 204 || method === 'HEAD') {
184
+ await response.body?.cancel();
185
+ return {};
186
+ }
187
+ const text = await response.text();
188
+ if (!text) {
189
+ return {};
190
+ }
191
+ const value = JSON.parse(text);
192
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
193
+ throw new FirebaseEdgeError({
194
+ code: 'storage/internal-error',
195
+ message: 'Expected a Storage resource response.'
196
+ });
197
+ }
198
+ return value;
199
+ }
200
+ /** @internal Firebase token download URLs use the Firebase endpoint, not signed GCS URLs. */
201
+ export async function storageDownloadURL(bucket, name, token, fetch) {
202
+ validateStorageOperation(bucket, { kind: 'metadata', name });
203
+ const url = new URL(`https://firebasestorage.googleapis.com/v0/b/${encodeURIComponent(bucket)}/o/${encodeURIComponent(name)}`);
204
+ const response = await storageFetch(url.toString(), { headers: { Authorization: `Bearer ${token}` } }, fetch);
205
+ const data = await readStorageObject(response);
206
+ if (typeof data.downloadTokens !== 'string' ||
207
+ !data.downloadTokens.split(',')[0]?.trim()) {
208
+ throw new FirebaseEdgeError({
209
+ code: 'storage/no-download-token',
210
+ message: 'No Firebase download token is available for this object.'
211
+ });
212
+ }
213
+ url.searchParams.set('alt', 'media');
214
+ url.searchParams.set('token', data.downloadTokens.split(',')[0].trim());
215
+ return url.toString();
216
+ }
217
+ /** @internal Requester-pays billing and encryption stay in the transport layer. */
218
+ export function storageScopedFetch(fetch, scope) {
219
+ return async (input, init) => {
220
+ if (scope.timeout !== undefined &&
221
+ (!Number.isSafeInteger(scope.timeout) || scope.timeout <= 0)) {
222
+ throw new FirebaseEdgeError({
223
+ code: 'storage/invalid-argument',
224
+ message: 'timeout must be a positive number of milliseconds.'
225
+ });
226
+ }
227
+ if (scope.timeout !== undefined) {
228
+ const deadline = AbortSignal.timeout(scope.timeout);
229
+ init = {
230
+ ...init,
231
+ signal: init?.signal
232
+ ? AbortSignal.any([init.signal, deadline])
233
+ : deadline
234
+ };
235
+ }
236
+ if (typeof input !== 'string' && !(input instanceof URL)) {
237
+ return fetch(input, init);
238
+ }
239
+ const url = new URL(input);
240
+ if (url.origin !== 'https://storage.googleapis.com') {
241
+ return fetch(input, init);
242
+ }
243
+ if (scope.userProject && !url.searchParams.has('userProject')) {
244
+ url.searchParams.set('userProject', scope.userProject);
245
+ }
246
+ if (scope.kmsKeyName &&
247
+ url.pathname.startsWith('/upload/') &&
248
+ !url.searchParams.has('kmsKeyName')) {
249
+ url.searchParams.set('kmsKeyName', scope.kmsKeyName);
250
+ }
251
+ const headers = new Headers(init?.headers);
252
+ if (scope.encryptionKey !== undefined) {
253
+ const encryption = await storageEncryptionHeaders(scope.encryptionKey);
254
+ const prefixes = url.pathname.includes('/rewriteTo/')
255
+ ? ['x-goog-encryption-', 'x-goog-copy-source-encryption-']
256
+ : ['x-goog-encryption-'];
257
+ for (const prefix of prefixes) {
258
+ if (!headers.has(`${prefix}key`)) {
259
+ headers.set(`${prefix}algorithm`, 'AES256');
260
+ headers.set(`${prefix}key`, encryption['x-goog-encryption-key']);
261
+ headers.set(`${prefix}key-sha256`, encryption['x-goog-encryption-key-sha256']);
262
+ }
263
+ }
264
+ }
265
+ return fetch(url.toString(), { ...init, headers });
266
+ };
267
+ }
268
+ /** @internal Probe anonymous access without sending service-account credentials. */
269
+ export async function storageIsPublic(bucket, name, fetch) {
270
+ validateStorageOperation(bucket, { kind: 'metadata', name });
271
+ const url = `https://storage.googleapis.com/${encodeURIComponent(bucket)}/${encodeURIComponent(name)}`;
272
+ const response = await storageFetch(url, { method: 'HEAD', redirect: 'manual' }, fetch, [403]);
273
+ await response.body?.cancel();
274
+ return response.status !== 403;
275
+ }
276
+ //# sourceMappingURL=storage-reference-endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-reference-endpoints.js","sourceRoot":"","sources":["../../src/storage/storage-reference-endpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { PreconditionOptions, CopyOptions } from './storage-reference-types.js';
2
+ import type { StoragePreconditions, StorageCopyOptions } from './storage-types.js';
3
+ import type { StorageIamPolicy } from './storage-bucket-types.js';
4
+ /** @internal Normalize Admin numeric preconditions while preserving large string generations. */
5
+ export declare function storagePreconditions(options?: PreconditionOptions): StoragePreconditions;
6
+ /** @internal Reject unsafe numeric generations instead of silently losing precision. */
7
+ export declare function storageGeneration(value: string | number): string;
8
+ /** @internal Admin copy metadata fields live at the top level of CopyOptions. */
9
+ export declare function storageCopyOptions(options: CopyOptions): StorageCopyOptions;
10
+ /** @internal Preserve IAM conditions and etags while granting only log delivery. */
11
+ export declare function storageLoggingPolicy(policy: StorageIamPolicy): StorageIamPolicy | undefined;
12
+ //# sourceMappingURL=storage-reference-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-reference-helpers.d.ts","sourceRoot":"","sources":["../../src/storage/storage-reference-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,mBAAmB,EACnB,WAAW,EACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACR,oBAAoB,EACpB,kBAAkB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,iGAAiG;AACjG,wBAAgB,oBAAoB,CAChC,OAAO,GAAE,mBAAwB,GAClC,oBAAoB,CAmBtB;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAahE;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,kBAAkB,CAkC3E;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,gBAAgB,GACzB,gBAAgB,GAAG,SAAS,CAkB9B"}
@@ -0,0 +1,72 @@
1
+ import { FirebaseEdgeError } from '../auth/errors.js';
2
+ /** @internal Normalize Admin numeric preconditions while preserving large string generations. */
3
+ export function storagePreconditions(options = {}) {
4
+ const result = {
5
+ ...(options.userProject !== undefined && {
6
+ userProject: options.userProject
7
+ })
8
+ };
9
+ for (const key of [
10
+ 'ifGenerationMatch',
11
+ 'ifGenerationNotMatch',
12
+ 'ifMetagenerationMatch',
13
+ 'ifMetagenerationNotMatch'
14
+ ]) {
15
+ const value = options[key];
16
+ if (value === undefined) {
17
+ continue;
18
+ }
19
+ result[key] = storageGeneration(value);
20
+ }
21
+ return result;
22
+ }
23
+ /** @internal Reject unsafe numeric generations instead of silently losing precision. */
24
+ export function storageGeneration(value) {
25
+ if ((typeof value === 'number' &&
26
+ (!Number.isSafeInteger(value) || value < 0)) ||
27
+ !/^\d+$/.test(String(value))) {
28
+ throw new FirebaseEdgeError({
29
+ code: 'storage/invalid-argument',
30
+ message: 'Generation values must be nonnegative safe integers or integer strings.'
31
+ });
32
+ }
33
+ return String(value);
34
+ }
35
+ /** @internal Admin copy metadata fields live at the top level of CopyOptions. */
36
+ export function storageCopyOptions(options) {
37
+ const { preconditionOpts, contentType, cacheControl, contentDisposition, contentEncoding, contentLanguage, storageClass, temporaryHold, eventBasedHold, customTime, metadata, ...copy } = options;
38
+ const writable = Object.fromEntries(Object.entries({
39
+ contentType,
40
+ cacheControl,
41
+ contentDisposition,
42
+ contentEncoding,
43
+ contentLanguage,
44
+ storageClass,
45
+ temporaryHold,
46
+ eventBasedHold,
47
+ customTime,
48
+ metadata
49
+ }).filter(([, value]) => value !== undefined));
50
+ return {
51
+ ...copy,
52
+ ...storagePreconditions(preconditionOpts),
53
+ ...(Object.keys(writable).length > 0 && { metadata: writable })
54
+ };
55
+ }
56
+ /** @internal Preserve IAM conditions and etags while granting only log delivery. */
57
+ export function storageLoggingPolicy(policy) {
58
+ const member = 'group:cloud-storage-analytics@google.com';
59
+ const role = 'roles/storage.objectCreator';
60
+ const binding = policy.bindings.find((entry) => entry.role === role && !entry.condition);
61
+ if (binding?.members.includes(member)) {
62
+ return;
63
+ }
64
+ const bindings = policy.bindings.map((entry) => entry === binding
65
+ ? { ...entry, members: [...entry.members, member] }
66
+ : entry);
67
+ if (!binding) {
68
+ bindings.push({ role, members: [member] });
69
+ }
70
+ return { ...policy, bindings };
71
+ }
72
+ //# sourceMappingURL=storage-reference-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-reference-helpers.js","sourceRoot":"","sources":["../../src/storage/storage-reference-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { ServiceAccount } from '../auth/firebase-types.js';
2
+ import type { GetSignedUrlOptions } from './storage-reference-types.js';
3
+ export type StorageRemoteSigner = (value: string, endpoint: string) => Promise<ArrayBuffer>;
4
+ /** @internal Support Admin V2/V4 signed URL options over the same web signing primitives. */
5
+ export declare function signStorageReferenceUrl(account: ServiceAccount, bucket: string | undefined, name: string | undefined, options: GetSignedUrlOptions, remote?: StorageRemoteSigner): Promise<string>;
6
+ export interface SignedPostPolicyOptions {
7
+ signingEndpoint?: string;
8
+ expires: string | number | Date;
9
+ conditions?: Array<Record<string, string> | [string, ...Array<string | number>]>;
10
+ fields?: Record<string, string>;
11
+ virtualHostedStyle?: boolean;
12
+ bucketBoundHostname?: string;
13
+ equals?: string[] | string[][];
14
+ startsWith?: string[] | string[][];
15
+ acl?: string;
16
+ successRedirect?: string;
17
+ successStatus?: string;
18
+ contentLengthRange?: {
19
+ min?: number;
20
+ max?: number;
21
+ };
22
+ }
23
+ /** @internal Form-upload policies are signed locally and do not send network requests. */
24
+ export declare function signStoragePostPolicy(account: ServiceAccount, bucket: string | undefined, name: string, version: 'v2' | 'v4', options: SignedPostPolicyOptions, remote?: StorageRemoteSigner): Promise<{
25
+ string: string;
26
+ base64: string;
27
+ signature: string;
28
+ url?: undefined;
29
+ fields?: undefined;
30
+ } | {
31
+ url: string;
32
+ fields: {
33
+ policy: string;
34
+ 'x-goog-signature': string;
35
+ };
36
+ string?: undefined;
37
+ base64?: undefined;
38
+ signature?: undefined;
39
+ }>;
40
+ //# sourceMappingURL=storage-reference-signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-reference-signing.d.ts","sourceRoot":"","sources":["../../src/storage/storage-reference-signing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,MAAM,MAAM,mBAAmB,GAAG,CAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,KACf,OAAO,CAAC,WAAW,CAAC,CAAC;AA+C1B,6FAA6F;AAC7F,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,mBAAmB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAoMjB;AAED,MAAM,WAAW,uBAAuB;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAC/D,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAED,0FAA0F;AAC1F,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,GAAG,IAAI,EACpB,OAAO,EAAE,uBAAuB,EAChC,MAAM,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;GAyH/B"}