firebase-admin-edge 1.1.1 → 3.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 (481) hide show
  1. package/README.md +103 -260
  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 +48 -0
  11. package/dist/app-check/app-check.d.ts.map +1 -0
  12. package/dist/app-check/app-check.js +142 -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 +56 -8
  39. package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
  40. package/dist/auth/firebase-admin-auth.js +323 -63
  41. package/dist/auth/firebase-admin-auth.js.map +1 -1
  42. package/dist/auth/firebase-auth-endpoints.d.ts +93 -5
  43. package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
  44. package/dist/auth/firebase-auth-endpoints.js +342 -73
  45. package/dist/auth/firebase-auth-endpoints.js.map +1 -1
  46. package/dist/auth/firebase-auth.d.ts +82 -6
  47. package/dist/auth/firebase-auth.d.ts.map +1 -1
  48. package/dist/auth/firebase-auth.js +103 -10
  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/identity-builder-types.d.ts +36 -0
  61. package/dist/auth/identity-builder-types.d.ts.map +1 -0
  62. package/dist/auth/identity-builder-types.js +2 -0
  63. package/dist/auth/identity-builder-types.js.map +1 -0
  64. package/dist/auth/identity-count-query.d.ts +17 -0
  65. package/dist/auth/identity-count-query.d.ts.map +1 -0
  66. package/dist/auth/identity-count-query.js +51 -0
  67. package/dist/auth/identity-count-query.js.map +1 -0
  68. package/dist/auth/identity-filter.d.ts +9 -0
  69. package/dist/auth/identity-filter.d.ts.map +1 -0
  70. package/dist/auth/identity-filter.js +129 -0
  71. package/dist/auth/identity-filter.js.map +1 -0
  72. package/dist/auth/identity-query.d.ts +11 -0
  73. package/dist/auth/identity-query.d.ts.map +1 -0
  74. package/dist/auth/identity-query.js +122 -0
  75. package/dist/auth/identity-query.js.map +1 -0
  76. package/dist/auth/identity-reference.d.ts +131 -0
  77. package/dist/auth/identity-reference.d.ts.map +1 -0
  78. package/dist/auth/identity-reference.js +293 -0
  79. package/dist/auth/identity-reference.js.map +1 -0
  80. package/dist/auth/identity-types.d.ts +44 -0
  81. package/dist/auth/identity-types.d.ts.map +1 -0
  82. package/dist/auth/identity-types.js +2 -0
  83. package/dist/auth/identity-types.js.map +1 -0
  84. package/dist/auth/identity-write.d.ts +41 -0
  85. package/dist/auth/identity-write.d.ts.map +1 -0
  86. package/dist/auth/identity-write.js +146 -0
  87. package/dist/auth/identity-write.js.map +1 -0
  88. package/dist/auth/identity.d.ts +84 -0
  89. package/dist/auth/identity.d.ts.map +1 -0
  90. package/dist/auth/identity.js +319 -0
  91. package/dist/auth/identity.js.map +1 -0
  92. package/dist/auth/project-config-manager.d.ts +10 -0
  93. package/dist/auth/project-config-manager.d.ts.map +1 -0
  94. package/dist/auth/project-config-manager.js +22 -0
  95. package/dist/auth/project-config-manager.js.map +1 -0
  96. package/dist/auth/provider-credential.d.ts +43 -0
  97. package/dist/auth/provider-credential.d.ts.map +1 -0
  98. package/dist/auth/provider-credential.js +107 -0
  99. package/dist/auth/provider-credential.js.map +1 -0
  100. package/dist/auth/provider-session.d.ts +10 -0
  101. package/dist/auth/provider-session.d.ts.map +1 -0
  102. package/dist/auth/provider-session.js +28 -0
  103. package/dist/auth/provider-session.js.map +1 -0
  104. package/dist/auth/tenant-manager.d.ts +17 -0
  105. package/dist/auth/tenant-manager.d.ts.map +1 -0
  106. package/dist/auth/tenant-manager.js +59 -0
  107. package/dist/auth/tenant-manager.js.map +1 -0
  108. package/dist/auth/user-import.d.ts +7 -1
  109. package/dist/auth/user-import.d.ts.map +1 -1
  110. package/dist/auth/user-import.js +53 -15
  111. package/dist/auth/user-import.js.map +1 -1
  112. package/dist/auth/user-record.d.ts +1 -0
  113. package/dist/auth/user-record.d.ts.map +1 -1
  114. package/dist/auth/user-record.js +5 -0
  115. package/dist/auth/user-record.js.map +1 -1
  116. package/dist/auth/user-request.d.ts +4 -1
  117. package/dist/auth/user-request.d.ts.map +1 -1
  118. package/dist/auth/user-request.js +7 -4
  119. package/dist/auth/user-request.js.map +1 -1
  120. package/dist/db/aggregate.d.ts +49 -0
  121. package/dist/db/aggregate.d.ts.map +1 -0
  122. package/dist/db/aggregate.js +115 -0
  123. package/dist/db/aggregate.js.map +1 -0
  124. package/dist/db/bulk-writer.d.ts +55 -0
  125. package/dist/db/bulk-writer.d.ts.map +1 -0
  126. package/dist/db/bulk-writer.js +257 -0
  127. package/dist/db/bulk-writer.js.map +1 -0
  128. package/dist/db/bundle-builder.d.ts +17 -0
  129. package/dist/db/bundle-builder.d.ts.map +1 -0
  130. package/dist/db/bundle-builder.js +118 -0
  131. package/dist/db/bundle-builder.js.map +1 -0
  132. package/dist/db/bytes.d.ts +12 -0
  133. package/dist/db/bytes.d.ts.map +1 -0
  134. package/dist/db/bytes.js +49 -0
  135. package/dist/db/bytes.js.map +1 -0
  136. package/dist/db/collection-group.d.ts +14 -0
  137. package/dist/db/collection-group.d.ts.map +1 -0
  138. package/dist/db/collection-group.js +43 -0
  139. package/dist/db/collection-group.js.map +1 -0
  140. package/dist/db/collection-reference.d.ts +21 -0
  141. package/dist/db/collection-reference.d.ts.map +1 -0
  142. package/dist/db/collection-reference.js +46 -0
  143. package/dist/db/collection-reference.js.map +1 -0
  144. package/dist/db/document-reference.d.ts +41 -0
  145. package/dist/db/document-reference.d.ts.map +1 -0
  146. package/dist/db/document-reference.js +125 -0
  147. package/dist/db/document-reference.js.map +1 -0
  148. package/dist/db/document-snapshot.d.ts +31 -0
  149. package/dist/db/document-snapshot.d.ts.map +1 -0
  150. package/dist/db/document-snapshot.js +103 -0
  151. package/dist/db/document-snapshot.js.map +1 -0
  152. package/dist/db/explain.d.ts +28 -0
  153. package/dist/db/explain.d.ts.map +1 -0
  154. package/dist/db/explain.js +61 -0
  155. package/dist/db/explain.js.map +1 -0
  156. package/dist/db/field-path.d.ts +10 -0
  157. package/dist/db/field-path.d.ts.map +1 -0
  158. package/dist/db/field-path.js +65 -0
  159. package/dist/db/field-path.js.map +1 -0
  160. package/dist/db/field-value.d.ts +17 -0
  161. package/dist/db/field-value.d.ts.map +1 -0
  162. package/dist/db/field-value.js +57 -0
  163. package/dist/db/field-value.js.map +1 -0
  164. package/dist/db/filter.d.ts +20 -0
  165. package/dist/db/filter.d.ts.map +1 -0
  166. package/dist/db/filter.js +48 -0
  167. package/dist/db/filter.js.map +1 -0
  168. package/dist/db/firestore-converter.d.ts +11 -0
  169. package/dist/db/firestore-converter.d.ts.map +1 -0
  170. package/dist/db/firestore-converter.js +14 -0
  171. package/dist/db/firestore-converter.js.map +1 -0
  172. package/dist/db/firestore-document.d.ts +62 -0
  173. package/dist/db/firestore-document.d.ts.map +1 -0
  174. package/dist/db/firestore-document.js +238 -0
  175. package/dist/db/firestore-document.js.map +1 -0
  176. package/dist/db/firestore-endpoints.d.ts +41 -0
  177. package/dist/db/firestore-endpoints.d.ts.map +1 -0
  178. package/dist/db/firestore-endpoints.js +735 -0
  179. package/dist/db/firestore-endpoints.js.map +1 -0
  180. package/dist/db/firestore-error-codes.d.ts +24 -0
  181. package/dist/db/firestore-error-codes.d.ts.map +1 -0
  182. package/dist/db/firestore-error-codes.js +24 -0
  183. package/dist/db/firestore-error-codes.js.map +1 -0
  184. package/dist/db/firestore-logging.d.ts +23 -0
  185. package/dist/db/firestore-logging.d.ts.map +1 -0
  186. package/dist/db/firestore-logging.js +41 -0
  187. package/dist/db/firestore-logging.js.map +1 -0
  188. package/dist/db/firestore-path.d.ts +4 -0
  189. package/dist/db/firestore-path.d.ts.map +1 -0
  190. package/dist/db/firestore-path.js +37 -0
  191. package/dist/db/firestore-path.js.map +1 -0
  192. package/dist/db/firestore-results.d.ts +12 -0
  193. package/dist/db/firestore-results.d.ts.map +1 -0
  194. package/dist/db/firestore-results.js +19 -0
  195. package/dist/db/firestore-results.js.map +1 -0
  196. package/dist/db/firestore-settings.d.ts +22 -0
  197. package/dist/db/firestore-settings.d.ts.map +1 -0
  198. package/dist/db/firestore-settings.js +83 -0
  199. package/dist/db/firestore-settings.js.map +1 -0
  200. package/dist/db/firestore-telemetry.d.ts +21 -0
  201. package/dist/db/firestore-telemetry.d.ts.map +1 -0
  202. package/dist/db/firestore-telemetry.js +84 -0
  203. package/dist/db/firestore-telemetry.js.map +1 -0
  204. package/dist/db/firestore-types.d.ts +25 -0
  205. package/dist/db/firestore-types.d.ts.map +1 -0
  206. package/dist/db/firestore-types.js +2 -0
  207. package/dist/db/firestore-types.js.map +1 -0
  208. package/dist/db/firestore.d.ts +157 -0
  209. package/dist/db/firestore.d.ts.map +1 -0
  210. package/dist/db/firestore.js +513 -0
  211. package/dist/db/firestore.js.map +1 -0
  212. package/dist/db/geo-point.d.ts +11 -0
  213. package/dist/db/geo-point.d.ts.map +1 -0
  214. package/dist/db/geo-point.js +29 -0
  215. package/dist/db/geo-point.js.map +1 -0
  216. package/dist/db/json-stream.d.ts +3 -0
  217. package/dist/db/json-stream.d.ts.map +1 -0
  218. package/dist/db/json-stream.js +117 -0
  219. package/dist/db/json-stream.js.map +1 -0
  220. package/dist/db/pipeline-expression.d.ts +293 -0
  221. package/dist/db/pipeline-expression.d.ts.map +1 -0
  222. package/dist/db/pipeline-expression.js +1436 -0
  223. package/dist/db/pipeline-expression.js.map +1 -0
  224. package/dist/db/pipeline-query.d.ts +6 -0
  225. package/dist/db/pipeline-query.d.ts.map +1 -0
  226. package/dist/db/pipeline-query.js +91 -0
  227. package/dist/db/pipeline-query.js.map +1 -0
  228. package/dist/db/pipeline.d.ts +120 -0
  229. package/dist/db/pipeline.d.ts.map +1 -0
  230. package/dist/db/pipeline.js +396 -0
  231. package/dist/db/pipeline.js.map +1 -0
  232. package/dist/db/query-document-snapshot.d.ts +2 -0
  233. package/dist/db/query-document-snapshot.d.ts.map +1 -0
  234. package/dist/db/query-document-snapshot.js +2 -0
  235. package/dist/db/query-document-snapshot.js.map +1 -0
  236. package/dist/db/query-partition.d.ts +14 -0
  237. package/dist/db/query-partition.d.ts.map +1 -0
  238. package/dist/db/query-partition.js +32 -0
  239. package/dist/db/query-partition.js.map +1 -0
  240. package/dist/db/query-request.d.ts +96 -0
  241. package/dist/db/query-request.d.ts.map +1 -0
  242. package/dist/db/query-request.js +283 -0
  243. package/dist/db/query-request.js.map +1 -0
  244. package/dist/db/query.d.ts +129 -0
  245. package/dist/db/query.d.ts.map +1 -0
  246. package/dist/db/query.js +468 -0
  247. package/dist/db/query.js.map +1 -0
  248. package/dist/db/recursive-delete.d.ts +6 -0
  249. package/dist/db/recursive-delete.d.ts.map +1 -0
  250. package/dist/db/recursive-delete.js +38 -0
  251. package/dist/db/recursive-delete.js.map +1 -0
  252. package/dist/db/snapshot-listener.d.ts +10 -0
  253. package/dist/db/snapshot-listener.d.ts.map +1 -0
  254. package/dist/db/snapshot-listener.js +71 -0
  255. package/dist/db/snapshot-listener.js.map +1 -0
  256. package/dist/db/timestamp.d.ts +29 -0
  257. package/dist/db/timestamp.d.ts.map +1 -0
  258. package/dist/db/timestamp.js +98 -0
  259. package/dist/db/timestamp.js.map +1 -0
  260. package/dist/db/transaction.d.ts +44 -0
  261. package/dist/db/transaction.d.ts.map +1 -0
  262. package/dist/db/transaction.js +177 -0
  263. package/dist/db/transaction.js.map +1 -0
  264. package/dist/db/value-equality.d.ts +3 -0
  265. package/dist/db/value-equality.d.ts.map +1 -0
  266. package/dist/db/value-equality.js +29 -0
  267. package/dist/db/value-equality.js.map +1 -0
  268. package/dist/db/vector-query.d.ts +38 -0
  269. package/dist/db/vector-query.d.ts.map +1 -0
  270. package/dist/db/vector-query.js +110 -0
  271. package/dist/db/vector-query.js.map +1 -0
  272. package/dist/db/vector-value.d.ts +8 -0
  273. package/dist/db/vector-value.d.ts.map +1 -0
  274. package/dist/db/vector-value.js +25 -0
  275. package/dist/db/vector-value.js.map +1 -0
  276. package/dist/db/write-batch.d.ts +25 -0
  277. package/dist/db/write-batch.d.ts.map +1 -0
  278. package/dist/db/write-batch.js +72 -0
  279. package/dist/db/write-batch.js.map +1 -0
  280. package/dist/db/write-request.d.ts +36 -0
  281. package/dist/db/write-request.d.ts.map +1 -0
  282. package/dist/db/write-request.js +257 -0
  283. package/dist/db/write-request.js.map +1 -0
  284. package/dist/firebase-edge-server.d.ts +145 -36
  285. package/dist/firebase-edge-server.d.ts.map +1 -1
  286. package/dist/firebase-edge-server.js +495 -258
  287. package/dist/firebase-edge-server.js.map +1 -1
  288. package/dist/index.d.ts +7 -0
  289. package/dist/index.d.ts.map +1 -1
  290. package/dist/index.js +6 -0
  291. package/dist/index.js.map +1 -1
  292. package/dist/rest-fetch.d.ts +1 -1
  293. package/dist/rest-fetch.d.ts.map +1 -1
  294. package/dist/storage/storage-acl.d.ts +48 -0
  295. package/dist/storage/storage-acl.d.ts.map +1 -0
  296. package/dist/storage/storage-acl.js +101 -0
  297. package/dist/storage/storage-acl.js.map +1 -0
  298. package/dist/storage/storage-bucket-endpoints.d.ts +10 -0
  299. package/dist/storage/storage-bucket-endpoints.d.ts.map +1 -0
  300. package/dist/storage/storage-bucket-endpoints.js +514 -0
  301. package/dist/storage/storage-bucket-endpoints.js.map +1 -0
  302. package/dist/storage/storage-bucket-types.d.ts +183 -0
  303. package/dist/storage/storage-bucket-types.d.ts.map +1 -0
  304. package/dist/storage/storage-bucket-types.js +2 -0
  305. package/dist/storage/storage-bucket-types.js.map +1 -0
  306. package/dist/storage/storage-bucket.d.ts +122 -0
  307. package/dist/storage/storage-bucket.d.ts.map +1 -0
  308. package/dist/storage/storage-bucket.js +544 -0
  309. package/dist/storage/storage-bucket.js.map +1 -0
  310. package/dist/storage/storage-channel.d.ts +10 -0
  311. package/dist/storage/storage-channel.d.ts.map +1 -0
  312. package/dist/storage/storage-channel.js +15 -0
  313. package/dist/storage/storage-channel.js.map +1 -0
  314. package/dist/storage/storage-checksum.d.ts +35 -0
  315. package/dist/storage/storage-checksum.d.ts.map +1 -0
  316. package/dist/storage/storage-checksum.js +312 -0
  317. package/dist/storage/storage-checksum.js.map +1 -0
  318. package/dist/storage/storage-endpoints.d.ts +14 -0
  319. package/dist/storage/storage-endpoints.d.ts.map +1 -0
  320. package/dist/storage/storage-endpoints.js +721 -0
  321. package/dist/storage/storage-endpoints.js.map +1 -0
  322. package/dist/storage/storage-file.d.ts +126 -0
  323. package/dist/storage/storage-file.d.ts.map +1 -0
  324. package/dist/storage/storage-file.js +604 -0
  325. package/dist/storage/storage-file.js.map +1 -0
  326. package/dist/storage/storage-hmac-key.d.ts +26 -0
  327. package/dist/storage/storage-hmac-key.d.ts.map +1 -0
  328. package/dist/storage/storage-hmac-key.js +45 -0
  329. package/dist/storage/storage-hmac-key.js.map +1 -0
  330. package/dist/storage/storage-iam.d.ts +20 -0
  331. package/dist/storage/storage-iam.d.ts.map +1 -0
  332. package/dist/storage/storage-iam.js +43 -0
  333. package/dist/storage/storage-iam.js.map +1 -0
  334. package/dist/storage/storage-md5.d.ts +11 -0
  335. package/dist/storage/storage-md5.d.ts.map +1 -0
  336. package/dist/storage/storage-md5.js +96 -0
  337. package/dist/storage/storage-md5.js.map +1 -0
  338. package/dist/storage/storage-notification.d.ts +24 -0
  339. package/dist/storage/storage-notification.d.ts.map +1 -0
  340. package/dist/storage/storage-notification.js +40 -0
  341. package/dist/storage/storage-notification.js.map +1 -0
  342. package/dist/storage/storage-progress.d.ts +4 -0
  343. package/dist/storage/storage-progress.d.ts.map +1 -0
  344. package/dist/storage/storage-progress.js +17 -0
  345. package/dist/storage/storage-progress.js.map +1 -0
  346. package/dist/storage/storage-reference-endpoints.d.ts +63 -0
  347. package/dist/storage/storage-reference-endpoints.d.ts.map +1 -0
  348. package/dist/storage/storage-reference-endpoints.js +276 -0
  349. package/dist/storage/storage-reference-endpoints.js.map +1 -0
  350. package/dist/storage/storage-reference-helpers.d.ts +12 -0
  351. package/dist/storage/storage-reference-helpers.d.ts.map +1 -0
  352. package/dist/storage/storage-reference-helpers.js +72 -0
  353. package/dist/storage/storage-reference-helpers.js.map +1 -0
  354. package/dist/storage/storage-reference-signing.d.ts +40 -0
  355. package/dist/storage/storage-reference-signing.d.ts.map +1 -0
  356. package/dist/storage/storage-reference-signing.js +289 -0
  357. package/dist/storage/storage-reference-signing.js.map +1 -0
  358. package/dist/storage/storage-reference-types.d.ts +76 -0
  359. package/dist/storage/storage-reference-types.d.ts.map +1 -0
  360. package/dist/storage/storage-reference-types.js +2 -0
  361. package/dist/storage/storage-reference-types.js.map +1 -0
  362. package/dist/storage/storage-results.d.ts +8 -0
  363. package/dist/storage/storage-results.d.ts.map +1 -0
  364. package/dist/storage/storage-results.js +32 -0
  365. package/dist/storage/storage-results.js.map +1 -0
  366. package/dist/storage/storage-resumable.d.ts +18 -0
  367. package/dist/storage/storage-resumable.d.ts.map +1 -0
  368. package/dist/storage/storage-resumable.js +166 -0
  369. package/dist/storage/storage-resumable.js.map +1 -0
  370. package/dist/storage/storage-retry.d.ts +9 -0
  371. package/dist/storage/storage-retry.d.ts.map +1 -0
  372. package/dist/storage/storage-retry.js +104 -0
  373. package/dist/storage/storage-retry.js.map +1 -0
  374. package/dist/storage/storage-signed-url.d.ts +9 -0
  375. package/dist/storage/storage-signed-url.d.ts.map +1 -0
  376. package/dist/storage/storage-signed-url.js +96 -0
  377. package/dist/storage/storage-signed-url.js.map +1 -0
  378. package/dist/storage/storage-special-endpoints.d.ts +10 -0
  379. package/dist/storage/storage-special-endpoints.d.ts.map +1 -0
  380. package/dist/storage/storage-special-endpoints.js +394 -0
  381. package/dist/storage/storage-special-endpoints.js.map +1 -0
  382. package/dist/storage/storage-special-types.d.ts +154 -0
  383. package/dist/storage/storage-special-types.d.ts.map +1 -0
  384. package/dist/storage/storage-special-types.js +2 -0
  385. package/dist/storage/storage-special-types.js.map +1 -0
  386. package/dist/storage/storage-types.d.ts +251 -0
  387. package/dist/storage/storage-types.d.ts.map +1 -0
  388. package/dist/storage/storage-types.js +2 -0
  389. package/dist/storage/storage-types.js.map +1 -0
  390. package/dist/storage/storage-upload-stream.d.ts +41 -0
  391. package/dist/storage/storage-upload-stream.d.ts.map +1 -0
  392. package/dist/storage/storage-upload-stream.js +335 -0
  393. package/dist/storage/storage-upload-stream.js.map +1 -0
  394. package/dist/storage/storage-xml-signing.d.ts +17 -0
  395. package/dist/storage/storage-xml-signing.d.ts.map +1 -0
  396. package/dist/storage/storage-xml-signing.js +144 -0
  397. package/dist/storage/storage-xml-signing.js.map +1 -0
  398. package/dist/storage/storage.d.ts +159 -0
  399. package/dist/storage/storage.d.ts.map +1 -0
  400. package/dist/storage/storage.js +545 -0
  401. package/dist/storage/storage.js.map +1 -0
  402. package/dist/utils/token-cache.d.ts.map +1 -1
  403. package/dist/utils/token-cache.js +3 -2
  404. package/dist/utils/token-cache.js.map +1 -1
  405. package/package.json +24 -8
  406. package/dist/auth/auth-endpoint-errors.test.d.ts +0 -2
  407. package/dist/auth/auth-endpoint-errors.test.d.ts.map +0 -1
  408. package/dist/auth/auth-endpoint-errors.test.js +0 -411
  409. package/dist/auth/auth-endpoint-errors.test.js.map +0 -1
  410. package/dist/auth/email-action-request.test.d.ts +0 -2
  411. package/dist/auth/email-action-request.test.d.ts.map +0 -1
  412. package/dist/auth/email-action-request.test.js +0 -128
  413. package/dist/auth/email-action-request.test.js.map +0 -1
  414. package/dist/auth/errors.test.d.ts +0 -2
  415. package/dist/auth/errors.test.d.ts.map +0 -1
  416. package/dist/auth/errors.test.js +0 -123
  417. package/dist/auth/errors.test.js.map +0 -1
  418. package/dist/auth/firebase-admin-auth.test.d.ts +0 -2
  419. package/dist/auth/firebase-admin-auth.test.d.ts.map +0 -1
  420. package/dist/auth/firebase-admin-auth.test.js +0 -1542
  421. package/dist/auth/firebase-admin-auth.test.js.map +0 -1
  422. package/dist/auth/firebase-auth-endpoints.test.d.ts +0 -2
  423. package/dist/auth/firebase-auth-endpoints.test.d.ts.map +0 -1
  424. package/dist/auth/firebase-auth-endpoints.test.js +0 -1082
  425. package/dist/auth/firebase-auth-endpoints.test.js.map +0 -1
  426. package/dist/auth/firebase-auth.test.d.ts +0 -2
  427. package/dist/auth/firebase-auth.test.d.ts.map +0 -1
  428. package/dist/auth/firebase-auth.test.js +0 -167
  429. package/dist/auth/firebase-auth.test.js.map +0 -1
  430. package/dist/auth/firebase-jwt.test.d.ts +0 -2
  431. package/dist/auth/firebase-jwt.test.d.ts.map +0 -1
  432. package/dist/auth/firebase-jwt.test.js +0 -164
  433. package/dist/auth/firebase-jwt.test.js.map +0 -1
  434. package/dist/auth/github-oauth.d.ts +0 -19
  435. package/dist/auth/github-oauth.d.ts.map +0 -1
  436. package/dist/auth/github-oauth.js +0 -145
  437. package/dist/auth/github-oauth.js.map +0 -1
  438. package/dist/auth/github-oauth.test.d.ts +0 -2
  439. package/dist/auth/github-oauth.test.d.ts.map +0 -1
  440. package/dist/auth/github-oauth.test.js +0 -202
  441. package/dist/auth/github-oauth.test.js.map +0 -1
  442. package/dist/auth/google-oauth.test.d.ts +0 -2
  443. package/dist/auth/google-oauth.test.d.ts.map +0 -1
  444. package/dist/auth/google-oauth.test.js +0 -200
  445. package/dist/auth/google-oauth.test.js.map +0 -1
  446. package/dist/auth/oauth.d.ts +0 -3
  447. package/dist/auth/oauth.d.ts.map +0 -1
  448. package/dist/auth/oauth.js +0 -48
  449. package/dist/auth/oauth.js.map +0 -1
  450. package/dist/auth/oauth.test.d.ts +0 -2
  451. package/dist/auth/oauth.test.d.ts.map +0 -1
  452. package/dist/auth/oauth.test.js +0 -109
  453. package/dist/auth/oauth.test.js.map +0 -1
  454. package/dist/auth/user-batch.test.d.ts +0 -2
  455. package/dist/auth/user-batch.test.d.ts.map +0 -1
  456. package/dist/auth/user-batch.test.js +0 -73
  457. package/dist/auth/user-batch.test.js.map +0 -1
  458. package/dist/auth/user-import.test.d.ts +0 -2
  459. package/dist/auth/user-import.test.d.ts.map +0 -1
  460. package/dist/auth/user-import.test.js +0 -217
  461. package/dist/auth/user-import.test.js.map +0 -1
  462. package/dist/auth/user-record.test.d.ts +0 -2
  463. package/dist/auth/user-record.test.d.ts.map +0 -1
  464. package/dist/auth/user-record.test.js +0 -198
  465. package/dist/auth/user-record.test.js.map +0 -1
  466. package/dist/auth/user-request.test.d.ts +0 -2
  467. package/dist/auth/user-request.test.d.ts.map +0 -1
  468. package/dist/auth/user-request.test.js +0 -327
  469. package/dist/auth/user-request.test.js.map +0 -1
  470. package/dist/firebase-edge-errors.test.d.ts +0 -2
  471. package/dist/firebase-edge-errors.test.d.ts.map +0 -1
  472. package/dist/firebase-edge-errors.test.js +0 -72
  473. package/dist/firebase-edge-errors.test.js.map +0 -1
  474. package/dist/firebase-edge-server.test.d.ts +0 -2
  475. package/dist/firebase-edge-server.test.d.ts.map +0 -1
  476. package/dist/firebase-edge-server.test.js +0 -293
  477. package/dist/firebase-edge-server.test.js.map +0 -1
  478. package/dist/rest-fetch.test.d.ts +0 -2
  479. package/dist/rest-fetch.test.d.ts.map +0 -1
  480. package/dist/rest-fetch.test.js +0 -164
  481. package/dist/rest-fetch.test.js.map +0 -1
@@ -0,0 +1,394 @@
1
+ import { FirebaseEdgeError } from '../auth/errors.js';
2
+ /** @internal Accept Admin topic IDs and resource names while building one canonical Pub/Sub resource. */
3
+ export function storageNotificationTopic(project, topic) {
4
+ if (typeof topic !== 'string' || !topic.trim() || /\s/.test(topic)) {
5
+ throw new FirebaseEdgeError({
6
+ code: 'storage/invalid-argument',
7
+ message: 'A Pub/Sub topic is required.'
8
+ });
9
+ }
10
+ const path = topic.replace(/^\/\/pubsub\.googleapis\.com\//, '');
11
+ const resource = path.includes('/')
12
+ ? path
13
+ : `projects/${project}/topics/${path}`;
14
+ if (!/^projects\/[^/]+\/topics\/[^/]+$/.test(resource)) {
15
+ throw new FirebaseEdgeError({
16
+ code: 'storage/invalid-argument',
17
+ message: 'Invalid Pub/Sub topic resource.'
18
+ });
19
+ }
20
+ return `//pubsub.googleapis.com/${resource}`;
21
+ }
22
+ import { storageFetch, readStorageObject, validateStorageOperation } from './storage-endpoints.js';
23
+ import { validateIamPolicy } from './storage-bucket-endpoints.js';
24
+ /** @internal Validate resource identifiers and specialized request bodies before OAuth. */
25
+ export function validateSpecialOperation(bucket, project, operation) {
26
+ if (operation.kind.startsWith('hmac')) {
27
+ if (typeof project !== 'string' || !project.trim()) {
28
+ throw new FirebaseEdgeError({
29
+ code: 'storage/invalid-argument',
30
+ message: 'HMAC operations require a project ID.'
31
+ });
32
+ }
33
+ }
34
+ else {
35
+ validateStorageOperation(bucket, { kind: 'list', options: {} });
36
+ }
37
+ for (const key of [
38
+ 'id',
39
+ 'accessId',
40
+ 'entity',
41
+ 'serviceAccountEmail'
42
+ ]) {
43
+ if (key in operation) {
44
+ const value = operation[key];
45
+ if (typeof value !== 'string' ||
46
+ !value.trim() ||
47
+ /[\r\n]/.test(value) ||
48
+ value === '.' ||
49
+ value === '..') {
50
+ throw new FirebaseEdgeError({
51
+ code: 'storage/invalid-argument',
52
+ message: `Invalid ${key}.`
53
+ });
54
+ }
55
+ }
56
+ }
57
+ if ('name' in operation) {
58
+ if (typeof operation.name !== 'string' ||
59
+ !operation.name.endsWith('/') ||
60
+ operation.name === '/') {
61
+ throw new FirebaseEdgeError({
62
+ code: 'storage/invalid-argument',
63
+ message: 'Managed folder names must be nonempty and end in /.'
64
+ });
65
+ }
66
+ validateStorageOperation(bucket, {
67
+ kind: 'metadata',
68
+ name: operation.name
69
+ });
70
+ }
71
+ if ('options' in operation) {
72
+ validateStorageOperation(bucket ?? 'validation', operation.kind === 'folderList' || operation.kind === 'hmacList'
73
+ ? { kind: 'list', options: operation.options }
74
+ : {
75
+ kind: 'metadata',
76
+ name: 'validation',
77
+ options: operation.options
78
+ });
79
+ const options = operation.options;
80
+ for (const key of ['allowNonEmpty', 'showDeletedKeys']) {
81
+ if (options[key] !== undefined &&
82
+ typeof options[key] !== 'boolean') {
83
+ throw new FirebaseEdgeError({
84
+ code: 'storage/invalid-argument',
85
+ message: `${key} must be a boolean.`
86
+ });
87
+ }
88
+ }
89
+ if (options.serviceAccountEmail !== undefined &&
90
+ (typeof options.serviceAccountEmail !== 'string' ||
91
+ !options.serviceAccountEmail.trim())) {
92
+ throw new FirebaseEdgeError({
93
+ code: 'storage/invalid-argument',
94
+ message: 'Invalid service account email filter.'
95
+ });
96
+ }
97
+ }
98
+ if (operation.kind === 'notificationCreate') {
99
+ const config = operation.config;
100
+ if (!config ||
101
+ typeof config !== 'object' ||
102
+ !/^\/\/pubsub\.googleapis\.com\/projects\/[^/]+\/topics\/[^/]+$/.test(config.topic) ||
103
+ !['JSON_API_V1', 'NONE'].includes(config.payload_format) ||
104
+ (config.object_name_prefix !== undefined &&
105
+ typeof config.object_name_prefix !== 'string') ||
106
+ (config.event_types !== undefined &&
107
+ (!Array.isArray(config.event_types) ||
108
+ config.event_types.some((event) => ![
109
+ 'OBJECT_FINALIZE',
110
+ 'OBJECT_METADATA_UPDATE',
111
+ 'OBJECT_DELETE',
112
+ 'OBJECT_ARCHIVE'
113
+ ].includes(event)))) ||
114
+ (config.custom_attributes !== undefined &&
115
+ (!config.custom_attributes ||
116
+ typeof config.custom_attributes !== 'object' ||
117
+ Array.isArray(config.custom_attributes) ||
118
+ Object.values(config.custom_attributes).some((value) => typeof value !== 'string')))) {
119
+ throw new FirebaseEdgeError({
120
+ code: 'storage/invalid-argument',
121
+ message: 'Invalid notification configuration.'
122
+ });
123
+ }
124
+ }
125
+ if (operation.kind === 'folderSetIam') {
126
+ validateIamPolicy(operation.policy);
127
+ }
128
+ if (operation.kind === 'folderTestIam' &&
129
+ (!Array.isArray(operation.permissions) ||
130
+ operation.permissions.length === 0 ||
131
+ operation.permissions.some((permission) => typeof permission !== 'string' ||
132
+ !permission.startsWith('storage.') ||
133
+ permission.includes('*')))) {
134
+ throw new FirebaseEdgeError({
135
+ code: 'storage/invalid-argument',
136
+ message: 'Provide explicit Storage IAM permissions.'
137
+ });
138
+ }
139
+ if (operation.kind === 'hmacUpdate' &&
140
+ (!['ACTIVE', 'INACTIVE'].includes(operation.state) ||
141
+ (operation.etag !== undefined &&
142
+ typeof operation.etag !== 'string'))) {
143
+ throw new FirebaseEdgeError({
144
+ code: 'storage/invalid-argument',
145
+ message: 'HMAC state must be ACTIVE or INACTIVE with an optional etag.'
146
+ });
147
+ }
148
+ if ('target' in operation) {
149
+ const target = operation.target;
150
+ if (!target ||
151
+ !['bucket', 'defaultObject', 'object'].includes(target.scope)) {
152
+ throw new FirebaseEdgeError({
153
+ code: 'storage/invalid-argument',
154
+ message: 'Invalid ACL target.'
155
+ });
156
+ }
157
+ if (target.scope === 'object') {
158
+ validateStorageOperation(bucket, {
159
+ kind: 'metadata',
160
+ name: target.name,
161
+ options: { generation: target.generation }
162
+ });
163
+ }
164
+ if ('entry' in operation &&
165
+ (!operation.entry ||
166
+ typeof operation.entry.entity !== 'string' ||
167
+ !operation.entry.entity.trim() ||
168
+ /[\r\n]/.test(operation.entry.entity) ||
169
+ operation.entry.entity === '.' ||
170
+ operation.entry.entity === '..' ||
171
+ ![
172
+ 'OWNER',
173
+ 'READER',
174
+ ...(target.scope === 'bucket' ? ['WRITER'] : [])
175
+ ].includes(operation.entry.role))) {
176
+ throw new FirebaseEdgeError({
177
+ code: 'storage/invalid-argument',
178
+ message: 'Invalid ACL entity or role.'
179
+ });
180
+ }
181
+ }
182
+ }
183
+ /** @internal Specialized resources share the same auth and error transport as object requests. */
184
+ export async function specialStorageRequest(bucket, project, token, request, fetch) {
185
+ const operation = request;
186
+ validateSpecialOperation(bucket, project, operation);
187
+ const { url, method, body } = buildSpecialRequest(bucket, project, operation);
188
+ const response = await storageFetch(url.toString(), {
189
+ method,
190
+ headers: {
191
+ Authorization: `Bearer ${token}`,
192
+ ...(body !== undefined && {
193
+ 'Content-Type': 'application/json'
194
+ })
195
+ },
196
+ ...(body !== undefined && { body: JSON.stringify(body) })
197
+ }, fetch, [], 'resource-not-found');
198
+ if (operation.kind.endsWith('Delete')) {
199
+ return undefined;
200
+ }
201
+ const data = await readStorageObject(response);
202
+ if (operation.kind === 'folderGetIam' ||
203
+ operation.kind === 'folderSetIam') {
204
+ const policy = { ...data, bindings: data.bindings ?? [] };
205
+ try {
206
+ validateIamPolicy(policy);
207
+ }
208
+ catch {
209
+ throw new FirebaseEdgeError({
210
+ code: 'storage/internal-error',
211
+ message: 'Invalid managed folder IAM response.'
212
+ });
213
+ }
214
+ return policy;
215
+ }
216
+ if (operation.kind === 'folderTestIam') {
217
+ if (data.permissions !== undefined &&
218
+ (!Array.isArray(data.permissions) ||
219
+ data.permissions.some((value) => typeof value !== 'string'))) {
220
+ throw new FirebaseEdgeError({
221
+ code: 'storage/internal-error',
222
+ message: 'Invalid permission response.'
223
+ });
224
+ }
225
+ return (data.permissions ??
226
+ []);
227
+ }
228
+ if (operation.kind.endsWith('List')) {
229
+ if ((data.items !== undefined && !Array.isArray(data.items)) ||
230
+ (data.nextPageToken !== undefined &&
231
+ typeof data.nextPageToken !== 'string')) {
232
+ throw new FirebaseEdgeError({
233
+ code: 'storage/internal-error',
234
+ message: 'Invalid resource list response.'
235
+ });
236
+ }
237
+ return {
238
+ items: (data.items ?? []).map((item) => parseSpecialResource(operation.kind, item)),
239
+ ...(data.nextPageToken !== undefined && {
240
+ nextPageToken: data.nextPageToken
241
+ })
242
+ };
243
+ }
244
+ if (operation.kind === 'hmacCreate') {
245
+ if (typeof data.secret !== 'string' || !data.secret) {
246
+ throw new FirebaseEdgeError({
247
+ code: 'storage/internal-error',
248
+ message: 'Missing HMAC secret in creation response.'
249
+ });
250
+ }
251
+ const metadata = parseSpecialResource('hmacGet', data.metadata);
252
+ return {
253
+ metadata,
254
+ secret: data.secret
255
+ };
256
+ }
257
+ return parseSpecialResource(operation.kind, data);
258
+ }
259
+ /** @internal Build URLs and bodies without exposing transport details in Storage. */
260
+ function buildSpecialRequest(bucket, project, operation) {
261
+ let path = `/b/${encodeURIComponent(bucket ?? '')}`;
262
+ let body;
263
+ let method = 'GET';
264
+ const params = new URLSearchParams();
265
+ if (operation.kind.startsWith('notification')) {
266
+ path += '/notificationConfigs';
267
+ if ('id' in operation) {
268
+ path += `/${encodeURIComponent(operation.id)}`;
269
+ }
270
+ if (operation.kind === 'notificationCreate') {
271
+ body = operation.config;
272
+ method = 'POST';
273
+ }
274
+ }
275
+ else if (operation.kind.startsWith('folder')) {
276
+ path += '/managedFolders';
277
+ if ('name' in operation && operation.kind !== 'folderCreate') {
278
+ path += `/${encodeURIComponent(operation.name)}`;
279
+ }
280
+ if (operation.kind === 'folderCreate') {
281
+ body = { name: operation.name };
282
+ method = 'POST';
283
+ }
284
+ if (operation.kind === 'folderGetIam' ||
285
+ operation.kind === 'folderSetIam') {
286
+ path += '/iam';
287
+ }
288
+ if (operation.kind === 'folderGetIam') {
289
+ params.set('optionsRequestedPolicyVersion', '3');
290
+ }
291
+ if (operation.kind === 'folderSetIam') {
292
+ body = operation.policy;
293
+ method = 'PUT';
294
+ }
295
+ if (operation.kind === 'folderTestIam') {
296
+ path += '/iam/testPermissions';
297
+ for (const permission of operation.permissions) {
298
+ params.append('permissions', permission);
299
+ }
300
+ }
301
+ }
302
+ else if (operation.kind.startsWith('hmac')) {
303
+ path = `/projects/${encodeURIComponent(project)}/hmacKeys`;
304
+ if ('accessId' in operation) {
305
+ path += `/${encodeURIComponent(operation.accessId)}`;
306
+ }
307
+ if (operation.kind === 'hmacCreate') {
308
+ params.set('serviceAccountEmail', operation.serviceAccountEmail);
309
+ method = 'POST';
310
+ }
311
+ if (operation.kind === 'hmacUpdate') {
312
+ body = {
313
+ state: operation.state,
314
+ ...(operation.etag !== undefined && { etag: operation.etag })
315
+ };
316
+ method = 'PUT';
317
+ }
318
+ }
319
+ else if ('target' in operation) {
320
+ const target = operation.target;
321
+ path +=
322
+ target.scope === 'bucket'
323
+ ? '/acl'
324
+ : target.scope === 'defaultObject'
325
+ ? '/defaultObjectAcl'
326
+ : `/o/${encodeURIComponent(target.name)}/acl`;
327
+ if (target.scope === 'object' && target.generation !== undefined) {
328
+ params.set('generation', target.generation);
329
+ }
330
+ if ('entity' in operation) {
331
+ path += `/${encodeURIComponent(operation.entity)}`;
332
+ }
333
+ if ('entry' in operation) {
334
+ body = {
335
+ entity: operation.entry.entity,
336
+ role: operation.entry.role
337
+ };
338
+ method = operation.kind === 'aclCreate' ? 'POST' : 'PATCH';
339
+ if (operation.kind === 'aclUpdate') {
340
+ path += `/${encodeURIComponent(operation.entry.entity)}`;
341
+ }
342
+ }
343
+ }
344
+ if ('options' in operation) {
345
+ for (const key of [
346
+ 'pageToken',
347
+ 'maxResults',
348
+ 'prefix',
349
+ 'ifMetagenerationMatch',
350
+ 'ifMetagenerationNotMatch',
351
+ 'allowNonEmpty',
352
+ 'serviceAccountEmail',
353
+ 'showDeletedKeys'
354
+ ]) {
355
+ const value = operation.options[key];
356
+ if (value !== undefined) {
357
+ params.set(operation.kind === 'folderList' && key === 'maxResults'
358
+ ? 'pageSize'
359
+ : key, String(value));
360
+ }
361
+ }
362
+ }
363
+ if (operation.kind.endsWith('Delete')) {
364
+ method = 'DELETE';
365
+ }
366
+ const url = new URL(`https://storage.googleapis.com/storage/v1${path}`);
367
+ url.search = params.toString();
368
+ return { url, method, body };
369
+ }
370
+ /** @internal Validate resource identity while preserving the API metadata. */
371
+ function parseSpecialResource(kind, value) {
372
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
373
+ throw new FirebaseEdgeError({
374
+ code: 'storage/internal-error',
375
+ message: 'Invalid Storage resource response.'
376
+ });
377
+ }
378
+ const data = value;
379
+ const fields = kind.startsWith('notification')
380
+ ? ['id', 'topic', 'payload_format']
381
+ : kind.startsWith('folder')
382
+ ? ['name', 'metageneration']
383
+ : kind.startsWith('hmac')
384
+ ? ['accessId', 'projectId', 'serviceAccountEmail', 'state']
385
+ : ['entity', 'role'];
386
+ if (fields.some((field) => typeof data[field] !== 'string' || !data[field])) {
387
+ throw new FirebaseEdgeError({
388
+ code: 'storage/internal-error',
389
+ message: 'Invalid Storage resource metadata.'
390
+ });
391
+ }
392
+ return data;
393
+ }
394
+ //# sourceMappingURL=storage-special-endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-special-endpoints.js","sourceRoot":"","sources":["../../src/storage/storage-special-endpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ import type { StorageIamPolicy } from './storage-bucket-types.js';
2
+ export interface StorageNotificationConfig {
3
+ topic: string;
4
+ payload_format: 'JSON_API_V1' | 'NONE';
5
+ event_types?: Array<'OBJECT_FINALIZE' | 'OBJECT_METADATA_UPDATE' | 'OBJECT_DELETE' | 'OBJECT_ARCHIVE'>;
6
+ object_name_prefix?: string;
7
+ custom_attributes?: Record<string, string>;
8
+ }
9
+ export interface StorageNotification extends StorageNotificationConfig {
10
+ id: string;
11
+ }
12
+ export interface StorageManagedFolder {
13
+ name: string;
14
+ metageneration: string;
15
+ id?: string;
16
+ createTime?: string;
17
+ updateTime?: string;
18
+ }
19
+ export interface StorageHmacKeyMetadata {
20
+ accessId: string;
21
+ projectId: string;
22
+ serviceAccountEmail: string;
23
+ state: 'ACTIVE' | 'INACTIVE' | 'DELETED';
24
+ etag?: string;
25
+ timeCreated?: string;
26
+ updated?: string;
27
+ }
28
+ export interface StorageHmacKey {
29
+ metadata: StorageHmacKeyMetadata;
30
+ secret: string;
31
+ }
32
+ export interface StorageAclEntry {
33
+ entity: string;
34
+ role: 'OWNER' | 'READER' | 'WRITER';
35
+ etag?: string;
36
+ email?: string;
37
+ entityId?: string;
38
+ }
39
+ export type StorageAclTarget = {
40
+ scope: 'bucket';
41
+ } | {
42
+ scope: 'defaultObject';
43
+ } | {
44
+ scope: 'object';
45
+ name: string;
46
+ generation?: string;
47
+ };
48
+ export interface StorageResourceListOptions {
49
+ pageToken?: string;
50
+ maxResults?: number;
51
+ }
52
+ export interface StorageManagedFolderListOptions extends StorageResourceListOptions {
53
+ prefix?: string;
54
+ }
55
+ export interface StorageHmacListOptions extends StorageResourceListOptions {
56
+ serviceAccountEmail?: string;
57
+ showDeletedKeys?: boolean;
58
+ }
59
+ export interface StoragePage<T> {
60
+ items: T[];
61
+ nextPageToken?: string;
62
+ }
63
+ export interface StorageManagedFolderOptions {
64
+ ifMetagenerationMatch?: string;
65
+ ifMetagenerationNotMatch?: string;
66
+ }
67
+ export interface StorageManagedFolderDeleteOptions extends StorageManagedFolderOptions {
68
+ allowNonEmpty?: boolean;
69
+ }
70
+ /** @internal */
71
+ export type StorageSpecialOperation = {
72
+ kind: 'notificationCreate';
73
+ config: StorageNotificationConfig;
74
+ } | {
75
+ kind: 'notificationList';
76
+ } | {
77
+ kind: 'notificationGet' | 'notificationDelete';
78
+ id: string;
79
+ } | {
80
+ kind: 'folderCreate';
81
+ name: string;
82
+ } | {
83
+ kind: 'folderGet';
84
+ name: string;
85
+ options: StorageManagedFolderOptions;
86
+ } | {
87
+ kind: 'folderDelete';
88
+ name: string;
89
+ options: StorageManagedFolderDeleteOptions;
90
+ } | {
91
+ kind: 'folderList';
92
+ options: StorageManagedFolderListOptions;
93
+ } | {
94
+ kind: 'folderGetIam';
95
+ name: string;
96
+ } | {
97
+ kind: 'folderSetIam';
98
+ name: string;
99
+ policy: StorageIamPolicy;
100
+ } | {
101
+ kind: 'folderTestIam';
102
+ name: string;
103
+ permissions: string[];
104
+ } | {
105
+ kind: 'hmacCreate';
106
+ serviceAccountEmail: string;
107
+ } | {
108
+ kind: 'hmacGet' | 'hmacDelete';
109
+ accessId: string;
110
+ } | {
111
+ kind: 'hmacUpdate';
112
+ accessId: string;
113
+ state: 'ACTIVE' | 'INACTIVE';
114
+ etag?: string;
115
+ } | {
116
+ kind: 'hmacList';
117
+ options: StorageHmacListOptions;
118
+ } | {
119
+ kind: 'aclList';
120
+ target: StorageAclTarget;
121
+ } | {
122
+ kind: 'aclGet' | 'aclDelete';
123
+ target: StorageAclTarget;
124
+ entity: string;
125
+ } | {
126
+ kind: 'aclCreate' | 'aclUpdate';
127
+ target: StorageAclTarget;
128
+ entry: StorageAclEntry;
129
+ };
130
+ /** @internal */
131
+ export interface StorageSpecialResponses {
132
+ notificationCreate: StorageNotification;
133
+ notificationList: StoragePage<StorageNotification>;
134
+ notificationGet: StorageNotification;
135
+ notificationDelete: void;
136
+ folderCreate: StorageManagedFolder;
137
+ folderGet: StorageManagedFolder;
138
+ folderDelete: void;
139
+ folderList: StoragePage<StorageManagedFolder>;
140
+ folderGetIam: StorageIamPolicy;
141
+ folderSetIam: StorageIamPolicy;
142
+ folderTestIam: string[];
143
+ hmacCreate: StorageHmacKey;
144
+ hmacGet: StorageHmacKeyMetadata;
145
+ hmacUpdate: StorageHmacKeyMetadata;
146
+ hmacList: StoragePage<StorageHmacKeyMetadata>;
147
+ hmacDelete: void;
148
+ aclList: StoragePage<StorageAclEntry>;
149
+ aclGet: StorageAclEntry;
150
+ aclCreate: StorageAclEntry;
151
+ aclUpdate: StorageAclEntry;
152
+ aclDelete: void;
153
+ }
154
+ //# sourceMappingURL=storage-special-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-special-types.d.ts","sourceRoot":"","sources":["../../src/storage/storage-special-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=storage-special-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-special-types.js","sourceRoot":"","sources":["../../src/storage/storage-special-types.ts"],"names":[],"mappings":""}