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.
- package/README.md +102 -405
- package/dist/app-check/app-check-endpoints.d.ts +31 -0
- package/dist/app-check/app-check-endpoints.d.ts.map +1 -0
- package/dist/app-check/app-check-endpoints.js +75 -0
- package/dist/app-check/app-check-endpoints.js.map +1 -0
- package/dist/app-check/app-check-jwt.d.ts +16 -0
- package/dist/app-check/app-check-jwt.d.ts.map +1 -0
- package/dist/app-check/app-check-jwt.js +59 -0
- package/dist/app-check/app-check-jwt.js.map +1 -0
- package/dist/app-check/app-check.d.ts +43 -0
- package/dist/app-check/app-check.d.ts.map +1 -0
- package/dist/app-check/app-check.js +141 -0
- package/dist/app-check/app-check.js.map +1 -0
- package/dist/auth/auth-blocking-types.d.ts +44 -0
- package/dist/auth/auth-blocking-types.d.ts.map +1 -0
- package/dist/auth/auth-blocking-types.js +2 -0
- package/dist/auth/auth-blocking-types.js.map +1 -0
- package/dist/auth/auth-config-types.d.ts +146 -0
- package/dist/auth/auth-config-types.d.ts.map +1 -0
- package/dist/auth/auth-config-types.js +2 -0
- package/dist/auth/auth-config-types.js.map +1 -0
- package/dist/auth/auth-config.d.ts +15 -0
- package/dist/auth/auth-config.d.ts.map +1 -0
- package/dist/auth/auth-config.js +413 -0
- package/dist/auth/auth-config.js.map +1 -0
- package/dist/auth/auth-emulator.d.ts +7 -0
- package/dist/auth/auth-emulator.d.ts.map +1 -0
- package/dist/auth/auth-emulator.js +24 -0
- package/dist/auth/auth-emulator.js.map +1 -0
- package/dist/auth/auth-endpoint-errors.d.ts +2 -0
- package/dist/auth/auth-endpoint-errors.d.ts.map +1 -1
- package/dist/auth/auth-endpoint-errors.js +20 -1
- package/dist/auth/auth-endpoint-errors.js.map +1 -1
- package/dist/auth/auth-error-codes.d.ts +12 -0
- package/dist/auth/auth-error-codes.d.ts.map +1 -1
- package/dist/auth/auth-error-codes.js +12 -0
- package/dist/auth/auth-error-codes.js.map +1 -1
- package/dist/auth/email-action-request.d.ts +40 -0
- package/dist/auth/email-action-request.d.ts.map +1 -0
- package/dist/auth/email-action-request.js +80 -0
- package/dist/auth/email-action-request.js.map +1 -0
- package/dist/auth/email-link.d.ts +24 -0
- package/dist/auth/email-link.d.ts.map +1 -0
- package/dist/auth/email-link.js +103 -0
- package/dist/auth/email-link.js.map +1 -0
- package/dist/auth/firebase-admin-auth.d.ts +60 -12
- package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
- package/dist/auth/firebase-admin-auth.js +455 -64
- package/dist/auth/firebase-admin-auth.js.map +1 -1
- package/dist/auth/firebase-auth-endpoints.d.ts +94 -4
- package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
- package/dist/auth/firebase-auth-endpoints.js +304 -64
- package/dist/auth/firebase-auth-endpoints.js.map +1 -1
- package/dist/auth/firebase-auth.d.ts +78 -4
- package/dist/auth/firebase-auth.d.ts.map +1 -1
- package/dist/auth/firebase-auth.js +101 -8
- package/dist/auth/firebase-auth.js.map +1 -1
- package/dist/auth/firebase-jwt.d.ts +19 -10
- package/dist/auth/firebase-jwt.d.ts.map +1 -1
- package/dist/auth/firebase-jwt.js +176 -39
- package/dist/auth/firebase-jwt.js.map +1 -1
- package/dist/auth/firebase-types.d.ts +3 -0
- package/dist/auth/firebase-types.d.ts.map +1 -1
- package/dist/auth/google-oauth.d.ts +0 -1
- package/dist/auth/google-oauth.d.ts.map +1 -1
- package/dist/auth/google-oauth.js +16 -86
- package/dist/auth/google-oauth.js.map +1 -1
- package/dist/auth/project-config-manager.d.ts +10 -0
- package/dist/auth/project-config-manager.d.ts.map +1 -0
- package/dist/auth/project-config-manager.js +22 -0
- package/dist/auth/project-config-manager.js.map +1 -0
- package/dist/auth/provider-credential.d.ts +43 -0
- package/dist/auth/provider-credential.d.ts.map +1 -0
- package/dist/auth/provider-credential.js +107 -0
- package/dist/auth/provider-credential.js.map +1 -0
- package/dist/auth/provider-session.d.ts +10 -0
- package/dist/auth/provider-session.d.ts.map +1 -0
- package/dist/auth/provider-session.js +28 -0
- package/dist/auth/provider-session.js.map +1 -0
- package/dist/auth/tenant-manager.d.ts +17 -0
- package/dist/auth/tenant-manager.d.ts.map +1 -0
- package/dist/auth/tenant-manager.js +59 -0
- package/dist/auth/tenant-manager.js.map +1 -0
- package/dist/auth/user-batch.d.ts +21 -0
- package/dist/auth/user-batch.d.ts.map +1 -0
- package/dist/auth/user-batch.js +49 -0
- package/dist/auth/user-batch.js.map +1 -0
- package/dist/auth/user-import.d.ts +55 -0
- package/dist/auth/user-import.d.ts.map +1 -0
- package/dist/auth/user-import.js +208 -0
- package/dist/auth/user-import.js.map +1 -0
- package/dist/auth/user-request.d.ts +10 -0
- package/dist/auth/user-request.d.ts.map +1 -1
- package/dist/auth/user-request.js +56 -0
- package/dist/auth/user-request.js.map +1 -1
- package/dist/db/aggregate.d.ts +49 -0
- package/dist/db/aggregate.d.ts.map +1 -0
- package/dist/db/aggregate.js +115 -0
- package/dist/db/aggregate.js.map +1 -0
- package/dist/db/bulk-writer.d.ts +55 -0
- package/dist/db/bulk-writer.d.ts.map +1 -0
- package/dist/db/bulk-writer.js +257 -0
- package/dist/db/bulk-writer.js.map +1 -0
- package/dist/db/bundle-builder.d.ts +17 -0
- package/dist/db/bundle-builder.d.ts.map +1 -0
- package/dist/db/bundle-builder.js +118 -0
- package/dist/db/bundle-builder.js.map +1 -0
- package/dist/db/bytes.d.ts +12 -0
- package/dist/db/bytes.d.ts.map +1 -0
- package/dist/db/bytes.js +49 -0
- package/dist/db/bytes.js.map +1 -0
- package/dist/db/collection-group.d.ts +14 -0
- package/dist/db/collection-group.d.ts.map +1 -0
- package/dist/db/collection-group.js +43 -0
- package/dist/db/collection-group.js.map +1 -0
- package/dist/db/collection-reference.d.ts +21 -0
- package/dist/db/collection-reference.d.ts.map +1 -0
- package/dist/db/collection-reference.js +46 -0
- package/dist/db/collection-reference.js.map +1 -0
- package/dist/db/document-reference.d.ts +41 -0
- package/dist/db/document-reference.d.ts.map +1 -0
- package/dist/db/document-reference.js +125 -0
- package/dist/db/document-reference.js.map +1 -0
- package/dist/db/document-snapshot.d.ts +31 -0
- package/dist/db/document-snapshot.d.ts.map +1 -0
- package/dist/db/document-snapshot.js +103 -0
- package/dist/db/document-snapshot.js.map +1 -0
- package/dist/db/explain.d.ts +28 -0
- package/dist/db/explain.d.ts.map +1 -0
- package/dist/db/explain.js +61 -0
- package/dist/db/explain.js.map +1 -0
- package/dist/db/field-path.d.ts +10 -0
- package/dist/db/field-path.d.ts.map +1 -0
- package/dist/db/field-path.js +65 -0
- package/dist/db/field-path.js.map +1 -0
- package/dist/db/field-value.d.ts +17 -0
- package/dist/db/field-value.d.ts.map +1 -0
- package/dist/db/field-value.js +57 -0
- package/dist/db/field-value.js.map +1 -0
- package/dist/db/filter.d.ts +20 -0
- package/dist/db/filter.d.ts.map +1 -0
- package/dist/db/filter.js +48 -0
- package/dist/db/filter.js.map +1 -0
- package/dist/db/firestore-converter.d.ts +11 -0
- package/dist/db/firestore-converter.d.ts.map +1 -0
- package/dist/db/firestore-converter.js +14 -0
- package/dist/db/firestore-converter.js.map +1 -0
- package/dist/db/firestore-document.d.ts +62 -0
- package/dist/db/firestore-document.d.ts.map +1 -0
- package/dist/db/firestore-document.js +238 -0
- package/dist/db/firestore-document.js.map +1 -0
- package/dist/db/firestore-endpoints.d.ts +41 -0
- package/dist/db/firestore-endpoints.d.ts.map +1 -0
- package/dist/db/firestore-endpoints.js +735 -0
- package/dist/db/firestore-endpoints.js.map +1 -0
- package/dist/db/firestore-error-codes.d.ts +24 -0
- package/dist/db/firestore-error-codes.d.ts.map +1 -0
- package/dist/db/firestore-error-codes.js +24 -0
- package/dist/db/firestore-error-codes.js.map +1 -0
- package/dist/db/firestore-logging.d.ts +23 -0
- package/dist/db/firestore-logging.d.ts.map +1 -0
- package/dist/db/firestore-logging.js +41 -0
- package/dist/db/firestore-logging.js.map +1 -0
- package/dist/db/firestore-path.d.ts +4 -0
- package/dist/db/firestore-path.d.ts.map +1 -0
- package/dist/db/firestore-path.js +37 -0
- package/dist/db/firestore-path.js.map +1 -0
- package/dist/db/firestore-results.d.ts +12 -0
- package/dist/db/firestore-results.d.ts.map +1 -0
- package/dist/db/firestore-results.js +19 -0
- package/dist/db/firestore-results.js.map +1 -0
- package/dist/db/firestore-settings.d.ts +22 -0
- package/dist/db/firestore-settings.d.ts.map +1 -0
- package/dist/db/firestore-settings.js +83 -0
- package/dist/db/firestore-settings.js.map +1 -0
- package/dist/db/firestore-telemetry.d.ts +21 -0
- package/dist/db/firestore-telemetry.d.ts.map +1 -0
- package/dist/db/firestore-telemetry.js +84 -0
- package/dist/db/firestore-telemetry.js.map +1 -0
- package/dist/db/firestore-types.d.ts +25 -0
- package/dist/db/firestore-types.d.ts.map +1 -0
- package/dist/db/firestore-types.js +2 -0
- package/dist/db/firestore-types.js.map +1 -0
- package/dist/db/firestore.d.ts +151 -0
- package/dist/db/firestore.d.ts.map +1 -0
- package/dist/db/firestore.js +505 -0
- package/dist/db/firestore.js.map +1 -0
- package/dist/db/geo-point.d.ts +11 -0
- package/dist/db/geo-point.d.ts.map +1 -0
- package/dist/db/geo-point.js +29 -0
- package/dist/db/geo-point.js.map +1 -0
- package/dist/db/json-stream.d.ts +3 -0
- package/dist/db/json-stream.d.ts.map +1 -0
- package/dist/db/json-stream.js +117 -0
- package/dist/db/json-stream.js.map +1 -0
- package/dist/db/pipeline-expression.d.ts +293 -0
- package/dist/db/pipeline-expression.d.ts.map +1 -0
- package/dist/db/pipeline-expression.js +1436 -0
- package/dist/db/pipeline-expression.js.map +1 -0
- package/dist/db/pipeline-query.d.ts +6 -0
- package/dist/db/pipeline-query.d.ts.map +1 -0
- package/dist/db/pipeline-query.js +91 -0
- package/dist/db/pipeline-query.js.map +1 -0
- package/dist/db/pipeline.d.ts +120 -0
- package/dist/db/pipeline.d.ts.map +1 -0
- package/dist/db/pipeline.js +396 -0
- package/dist/db/pipeline.js.map +1 -0
- package/dist/db/query-document-snapshot.d.ts +2 -0
- package/dist/db/query-document-snapshot.d.ts.map +1 -0
- package/dist/db/query-document-snapshot.js +2 -0
- package/dist/db/query-document-snapshot.js.map +1 -0
- package/dist/db/query-partition.d.ts +14 -0
- package/dist/db/query-partition.d.ts.map +1 -0
- package/dist/db/query-partition.js +32 -0
- package/dist/db/query-partition.js.map +1 -0
- package/dist/db/query-request.d.ts +96 -0
- package/dist/db/query-request.d.ts.map +1 -0
- package/dist/db/query-request.js +283 -0
- package/dist/db/query-request.js.map +1 -0
- package/dist/db/query.d.ts +129 -0
- package/dist/db/query.d.ts.map +1 -0
- package/dist/db/query.js +468 -0
- package/dist/db/query.js.map +1 -0
- package/dist/db/recursive-delete.d.ts +6 -0
- package/dist/db/recursive-delete.d.ts.map +1 -0
- package/dist/db/recursive-delete.js +38 -0
- package/dist/db/recursive-delete.js.map +1 -0
- package/dist/db/snapshot-listener.d.ts +10 -0
- package/dist/db/snapshot-listener.d.ts.map +1 -0
- package/dist/db/snapshot-listener.js +71 -0
- package/dist/db/snapshot-listener.js.map +1 -0
- package/dist/db/timestamp.d.ts +29 -0
- package/dist/db/timestamp.d.ts.map +1 -0
- package/dist/db/timestamp.js +98 -0
- package/dist/db/timestamp.js.map +1 -0
- package/dist/db/transaction.d.ts +44 -0
- package/dist/db/transaction.d.ts.map +1 -0
- package/dist/db/transaction.js +177 -0
- package/dist/db/transaction.js.map +1 -0
- package/dist/db/value-equality.d.ts +3 -0
- package/dist/db/value-equality.d.ts.map +1 -0
- package/dist/db/value-equality.js +29 -0
- package/dist/db/value-equality.js.map +1 -0
- package/dist/db/vector-query.d.ts +38 -0
- package/dist/db/vector-query.d.ts.map +1 -0
- package/dist/db/vector-query.js +110 -0
- package/dist/db/vector-query.js.map +1 -0
- package/dist/db/vector-value.d.ts +8 -0
- package/dist/db/vector-value.d.ts.map +1 -0
- package/dist/db/vector-value.js +25 -0
- package/dist/db/vector-value.js.map +1 -0
- package/dist/db/write-batch.d.ts +25 -0
- package/dist/db/write-batch.d.ts.map +1 -0
- package/dist/db/write-batch.js +72 -0
- package/dist/db/write-batch.js.map +1 -0
- package/dist/db/write-request.d.ts +36 -0
- package/dist/db/write-request.d.ts.map +1 -0
- package/dist/db/write-request.js +257 -0
- package/dist/db/write-request.js.map +1 -0
- package/dist/firebase-edge-server.d.ts +143 -36
- package/dist/firebase-edge-server.d.ts.map +1 -1
- package/dist/firebase-edge-server.js +466 -257
- package/dist/firebase-edge-server.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/rest-fetch.d.ts +1 -1
- package/dist/rest-fetch.d.ts.map +1 -1
- package/dist/storage/storage-acl.d.ts +48 -0
- package/dist/storage/storage-acl.d.ts.map +1 -0
- package/dist/storage/storage-acl.js +101 -0
- package/dist/storage/storage-acl.js.map +1 -0
- package/dist/storage/storage-bucket-endpoints.d.ts +10 -0
- package/dist/storage/storage-bucket-endpoints.d.ts.map +1 -0
- package/dist/storage/storage-bucket-endpoints.js +514 -0
- package/dist/storage/storage-bucket-endpoints.js.map +1 -0
- package/dist/storage/storage-bucket-types.d.ts +183 -0
- package/dist/storage/storage-bucket-types.d.ts.map +1 -0
- package/dist/storage/storage-bucket-types.js +2 -0
- package/dist/storage/storage-bucket-types.js.map +1 -0
- package/dist/storage/storage-bucket.d.ts +122 -0
- package/dist/storage/storage-bucket.d.ts.map +1 -0
- package/dist/storage/storage-bucket.js +544 -0
- package/dist/storage/storage-bucket.js.map +1 -0
- package/dist/storage/storage-channel.d.ts +10 -0
- package/dist/storage/storage-channel.d.ts.map +1 -0
- package/dist/storage/storage-channel.js +15 -0
- package/dist/storage/storage-channel.js.map +1 -0
- package/dist/storage/storage-checksum.d.ts +35 -0
- package/dist/storage/storage-checksum.d.ts.map +1 -0
- package/dist/storage/storage-checksum.js +312 -0
- package/dist/storage/storage-checksum.js.map +1 -0
- package/dist/storage/storage-endpoints.d.ts +14 -0
- package/dist/storage/storage-endpoints.d.ts.map +1 -0
- package/dist/storage/storage-endpoints.js +721 -0
- package/dist/storage/storage-endpoints.js.map +1 -0
- package/dist/storage/storage-file.d.ts +126 -0
- package/dist/storage/storage-file.d.ts.map +1 -0
- package/dist/storage/storage-file.js +604 -0
- package/dist/storage/storage-file.js.map +1 -0
- package/dist/storage/storage-hmac-key.d.ts +26 -0
- package/dist/storage/storage-hmac-key.d.ts.map +1 -0
- package/dist/storage/storage-hmac-key.js +45 -0
- package/dist/storage/storage-hmac-key.js.map +1 -0
- package/dist/storage/storage-iam.d.ts +20 -0
- package/dist/storage/storage-iam.d.ts.map +1 -0
- package/dist/storage/storage-iam.js +43 -0
- package/dist/storage/storage-iam.js.map +1 -0
- package/dist/storage/storage-md5.d.ts +11 -0
- package/dist/storage/storage-md5.d.ts.map +1 -0
- package/dist/storage/storage-md5.js +96 -0
- package/dist/storage/storage-md5.js.map +1 -0
- package/dist/storage/storage-notification.d.ts +24 -0
- package/dist/storage/storage-notification.d.ts.map +1 -0
- package/dist/storage/storage-notification.js +40 -0
- package/dist/storage/storage-notification.js.map +1 -0
- package/dist/storage/storage-progress.d.ts +4 -0
- package/dist/storage/storage-progress.d.ts.map +1 -0
- package/dist/storage/storage-progress.js +17 -0
- package/dist/storage/storage-progress.js.map +1 -0
- package/dist/storage/storage-reference-endpoints.d.ts +63 -0
- package/dist/storage/storage-reference-endpoints.d.ts.map +1 -0
- package/dist/storage/storage-reference-endpoints.js +276 -0
- package/dist/storage/storage-reference-endpoints.js.map +1 -0
- package/dist/storage/storage-reference-helpers.d.ts +12 -0
- package/dist/storage/storage-reference-helpers.d.ts.map +1 -0
- package/dist/storage/storage-reference-helpers.js +72 -0
- package/dist/storage/storage-reference-helpers.js.map +1 -0
- package/dist/storage/storage-reference-signing.d.ts +40 -0
- package/dist/storage/storage-reference-signing.d.ts.map +1 -0
- package/dist/storage/storage-reference-signing.js +289 -0
- package/dist/storage/storage-reference-signing.js.map +1 -0
- package/dist/storage/storage-reference-types.d.ts +76 -0
- package/dist/storage/storage-reference-types.d.ts.map +1 -0
- package/dist/storage/storage-reference-types.js +2 -0
- package/dist/storage/storage-reference-types.js.map +1 -0
- package/dist/storage/storage-results.d.ts +8 -0
- package/dist/storage/storage-results.d.ts.map +1 -0
- package/dist/storage/storage-results.js +32 -0
- package/dist/storage/storage-results.js.map +1 -0
- package/dist/storage/storage-resumable.d.ts +18 -0
- package/dist/storage/storage-resumable.d.ts.map +1 -0
- package/dist/storage/storage-resumable.js +166 -0
- package/dist/storage/storage-resumable.js.map +1 -0
- package/dist/storage/storage-retry.d.ts +9 -0
- package/dist/storage/storage-retry.d.ts.map +1 -0
- package/dist/storage/storage-retry.js +104 -0
- package/dist/storage/storage-retry.js.map +1 -0
- package/dist/storage/storage-signed-url.d.ts +9 -0
- package/dist/storage/storage-signed-url.d.ts.map +1 -0
- package/dist/storage/storage-signed-url.js +96 -0
- package/dist/storage/storage-signed-url.js.map +1 -0
- package/dist/storage/storage-special-endpoints.d.ts +10 -0
- package/dist/storage/storage-special-endpoints.d.ts.map +1 -0
- package/dist/storage/storage-special-endpoints.js +394 -0
- package/dist/storage/storage-special-endpoints.js.map +1 -0
- package/dist/storage/storage-special-types.d.ts +154 -0
- package/dist/storage/storage-special-types.d.ts.map +1 -0
- package/dist/storage/storage-special-types.js +2 -0
- package/dist/storage/storage-special-types.js.map +1 -0
- package/dist/storage/storage-types.d.ts +251 -0
- package/dist/storage/storage-types.d.ts.map +1 -0
- package/dist/storage/storage-types.js +2 -0
- package/dist/storage/storage-types.js.map +1 -0
- package/dist/storage/storage-upload-stream.d.ts +41 -0
- package/dist/storage/storage-upload-stream.d.ts.map +1 -0
- package/dist/storage/storage-upload-stream.js +335 -0
- package/dist/storage/storage-upload-stream.js.map +1 -0
- package/dist/storage/storage-xml-signing.d.ts +17 -0
- package/dist/storage/storage-xml-signing.d.ts.map +1 -0
- package/dist/storage/storage-xml-signing.js +144 -0
- package/dist/storage/storage-xml-signing.js.map +1 -0
- package/dist/storage/storage.d.ts +152 -0
- package/dist/storage/storage.d.ts.map +1 -0
- package/dist/storage/storage.js +532 -0
- package/dist/storage/storage.js.map +1 -0
- package/dist/utils/token-cache.d.ts.map +1 -1
- package/dist/utils/token-cache.js +3 -2
- package/dist/utils/token-cache.js.map +1 -1
- package/package.json +22 -6
- package/dist/auth/auth-endpoint-errors.test.d.ts +0 -2
- package/dist/auth/auth-endpoint-errors.test.d.ts.map +0 -1
- package/dist/auth/auth-endpoint-errors.test.js +0 -411
- package/dist/auth/auth-endpoint-errors.test.js.map +0 -1
- package/dist/auth/errors.test.d.ts +0 -2
- package/dist/auth/errors.test.d.ts.map +0 -1
- package/dist/auth/errors.test.js +0 -123
- package/dist/auth/errors.test.js.map +0 -1
- package/dist/auth/firebase-admin-auth.test.d.ts +0 -2
- package/dist/auth/firebase-admin-auth.test.d.ts.map +0 -1
- package/dist/auth/firebase-admin-auth.test.js +0 -923
- package/dist/auth/firebase-admin-auth.test.js.map +0 -1
- package/dist/auth/firebase-auth-endpoints.test.d.ts +0 -2
- package/dist/auth/firebase-auth-endpoints.test.d.ts.map +0 -1
- package/dist/auth/firebase-auth-endpoints.test.js +0 -957
- package/dist/auth/firebase-auth-endpoints.test.js.map +0 -1
- package/dist/auth/firebase-auth.test.d.ts +0 -2
- package/dist/auth/firebase-auth.test.d.ts.map +0 -1
- package/dist/auth/firebase-auth.test.js +0 -167
- package/dist/auth/firebase-auth.test.js.map +0 -1
- package/dist/auth/firebase-jwt.test.d.ts +0 -2
- package/dist/auth/firebase-jwt.test.d.ts.map +0 -1
- package/dist/auth/firebase-jwt.test.js +0 -164
- package/dist/auth/firebase-jwt.test.js.map +0 -1
- package/dist/auth/github-oauth.d.ts +0 -19
- package/dist/auth/github-oauth.d.ts.map +0 -1
- package/dist/auth/github-oauth.js +0 -145
- package/dist/auth/github-oauth.js.map +0 -1
- package/dist/auth/github-oauth.test.d.ts +0 -2
- package/dist/auth/github-oauth.test.d.ts.map +0 -1
- package/dist/auth/github-oauth.test.js +0 -202
- package/dist/auth/github-oauth.test.js.map +0 -1
- package/dist/auth/google-oauth.test.d.ts +0 -2
- package/dist/auth/google-oauth.test.d.ts.map +0 -1
- package/dist/auth/google-oauth.test.js +0 -200
- package/dist/auth/google-oauth.test.js.map +0 -1
- package/dist/auth/oauth.d.ts +0 -3
- package/dist/auth/oauth.d.ts.map +0 -1
- package/dist/auth/oauth.js +0 -48
- package/dist/auth/oauth.js.map +0 -1
- package/dist/auth/oauth.test.d.ts +0 -2
- package/dist/auth/oauth.test.d.ts.map +0 -1
- package/dist/auth/oauth.test.js +0 -109
- package/dist/auth/oauth.test.js.map +0 -1
- package/dist/auth/user-record.test.d.ts +0 -2
- package/dist/auth/user-record.test.d.ts.map +0 -1
- package/dist/auth/user-record.test.js +0 -198
- package/dist/auth/user-record.test.js.map +0 -1
- package/dist/auth/user-request.test.d.ts +0 -2
- package/dist/auth/user-request.test.d.ts.map +0 -1
- package/dist/auth/user-request.test.js +0 -269
- package/dist/auth/user-request.test.js.map +0 -1
- package/dist/firebase-edge-errors.test.d.ts +0 -2
- package/dist/firebase-edge-errors.test.d.ts.map +0 -1
- package/dist/firebase-edge-errors.test.js +0 -72
- package/dist/firebase-edge-errors.test.js.map +0 -1
- package/dist/firebase-edge-server.test.d.ts +0 -2
- package/dist/firebase-edge-server.test.d.ts.map +0 -1
- package/dist/firebase-edge-server.test.js +0 -264
- package/dist/firebase-edge-server.test.js.map +0 -1
- package/dist/rest-fetch.test.d.ts +0 -2
- package/dist/rest-fetch.test.d.ts.map +0 -1
- package/dist/rest-fetch.test.js +0 -164
- 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"}
|