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,29 @@
|
|
|
1
|
+
/** An instant with nanosecond precision, in Firestore's supported date range. */
|
|
2
|
+
export declare class Timestamp {
|
|
3
|
+
readonly seconds: number;
|
|
4
|
+
readonly nanoseconds: number;
|
|
5
|
+
constructor(seconds: number, nanoseconds: number);
|
|
6
|
+
static fromInstant(instant: {
|
|
7
|
+
readonly epochNanoseconds: bigint;
|
|
8
|
+
}): Timestamp;
|
|
9
|
+
toInstant(): {
|
|
10
|
+
readonly epochNanoseconds: bigint;
|
|
11
|
+
toString(): string;
|
|
12
|
+
};
|
|
13
|
+
static now(): Timestamp;
|
|
14
|
+
static fromDate(date: Date): Timestamp;
|
|
15
|
+
static fromMillis(milliseconds: number): Timestamp;
|
|
16
|
+
/** @internal Parse a Firestore RFC3339 UTC timestamp without losing nanoseconds. */
|
|
17
|
+
static fromString(value: string): Timestamp;
|
|
18
|
+
toDate(): Date;
|
|
19
|
+
toMillis(): number;
|
|
20
|
+
isEqual(other: Timestamp): boolean;
|
|
21
|
+
toJSON(): {
|
|
22
|
+
seconds: number;
|
|
23
|
+
nanoseconds: number;
|
|
24
|
+
};
|
|
25
|
+
valueOf(): string;
|
|
26
|
+
/** @internal REST representation. */
|
|
27
|
+
toString(): string;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=timestamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/db/timestamp.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,qBAAa,SAAS;IAEd,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM;gBADnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM;IAqBhC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;QACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;KACrC,GAAG,SAAS;IAab,SAAS,IAAI;QAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,QAAQ,IAAI,MAAM,CAAA;KAAE;IAqBtE,MAAM,CAAC,GAAG,IAAI,SAAS;IAGvB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS;IAGtC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;IAYlD,oFAAoF;IACpF,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAwB3C,MAAM,IAAI,IAAI;IAKd,QAAQ,IAAI,MAAM;IAGlB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAOlC,MAAM,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAGlD,OAAO,IAAI,MAAM;IAGjB,qCAAqC;IACrC,QAAQ,IAAI,MAAM;CAGrB"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { FirestoreErrorInfo } from './firestore-error-codes.js';
|
|
2
|
+
import { FirebaseEdgeError } from '../auth/errors.js';
|
|
3
|
+
/** An instant with nanosecond precision, in Firestore's supported date range. */
|
|
4
|
+
export class Timestamp {
|
|
5
|
+
seconds;
|
|
6
|
+
nanoseconds;
|
|
7
|
+
constructor(seconds, nanoseconds) {
|
|
8
|
+
this.seconds = seconds;
|
|
9
|
+
this.nanoseconds = nanoseconds;
|
|
10
|
+
if (!Number.isInteger(seconds) ||
|
|
11
|
+
seconds < -62135596800 ||
|
|
12
|
+
seconds > 253402300799)
|
|
13
|
+
throw new FirebaseEdgeError({
|
|
14
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
15
|
+
message: 'Timestamp seconds are out of range.'
|
|
16
|
+
});
|
|
17
|
+
if (!Number.isInteger(nanoseconds) ||
|
|
18
|
+
nanoseconds < 0 ||
|
|
19
|
+
nanoseconds >= 1e9)
|
|
20
|
+
throw new FirebaseEdgeError({
|
|
21
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
22
|
+
message: 'Timestamp nanoseconds are out of range.'
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
static fromInstant(instant) {
|
|
26
|
+
if (!instant || typeof instant.epochNanoseconds !== 'bigint')
|
|
27
|
+
throw new FirebaseEdgeError({
|
|
28
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
29
|
+
message: 'Expected a Temporal instant.'
|
|
30
|
+
});
|
|
31
|
+
const nanos = instant.epochNanoseconds;
|
|
32
|
+
const remainder = ((nanos % 1000000000n) + 1000000000n) % 1000000000n;
|
|
33
|
+
return new Timestamp(Number((nanos - remainder) / 1000000000n), Number(remainder));
|
|
34
|
+
}
|
|
35
|
+
toInstant() {
|
|
36
|
+
const temporal = globalThis.Temporal;
|
|
37
|
+
if (!temporal?.Instant)
|
|
38
|
+
throw new FirebaseEdgeError({
|
|
39
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
40
|
+
message: 'Temporal.Instant is unavailable in this runtime. Provide a Temporal polyfill to use toInstant().'
|
|
41
|
+
});
|
|
42
|
+
return new temporal.Instant(BigInt(this.seconds) * 1000000000n + BigInt(this.nanoseconds));
|
|
43
|
+
}
|
|
44
|
+
static now() {
|
|
45
|
+
return Timestamp.fromMillis(Date.now());
|
|
46
|
+
}
|
|
47
|
+
static fromDate(date) {
|
|
48
|
+
return Timestamp.fromMillis(date.getTime());
|
|
49
|
+
}
|
|
50
|
+
static fromMillis(milliseconds) {
|
|
51
|
+
if (!Number.isFinite(milliseconds))
|
|
52
|
+
throw new FirebaseEdgeError({
|
|
53
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
54
|
+
message: 'Invalid timestamp milliseconds.'
|
|
55
|
+
});
|
|
56
|
+
const seconds = Math.floor(milliseconds / 1000);
|
|
57
|
+
return new Timestamp(seconds, Math.floor((milliseconds - seconds * 1000) * 1e6));
|
|
58
|
+
}
|
|
59
|
+
/** @internal Parse a Firestore RFC3339 UTC timestamp without losing nanoseconds. */
|
|
60
|
+
static fromString(value) {
|
|
61
|
+
const match = /^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(?:\.(\d{1,9}))?Z$/.exec(value);
|
|
62
|
+
if (!match)
|
|
63
|
+
throw new FirebaseEdgeError({
|
|
64
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
65
|
+
message: 'Invalid Firestore timestamp.'
|
|
66
|
+
});
|
|
67
|
+
const parsed = new Date(`${match[1]}Z`);
|
|
68
|
+
if (!Number.isFinite(parsed.getTime()) ||
|
|
69
|
+
parsed.toISOString().slice(0, 19) !== match[1])
|
|
70
|
+
throw new FirebaseEdgeError({
|
|
71
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
72
|
+
message: 'Invalid Firestore timestamp.'
|
|
73
|
+
});
|
|
74
|
+
return new Timestamp(Date.parse(`${match[1]}Z`) / 1000, Number((match[2] ?? '').padEnd(9, '0')));
|
|
75
|
+
}
|
|
76
|
+
toDate() {
|
|
77
|
+
return new Date(this.seconds * 1000 + Math.round(this.nanoseconds / 1e6));
|
|
78
|
+
}
|
|
79
|
+
toMillis() {
|
|
80
|
+
return this.seconds * 1000 + Math.floor(this.nanoseconds / 1e6);
|
|
81
|
+
}
|
|
82
|
+
isEqual(other) {
|
|
83
|
+
return (other instanceof Timestamp &&
|
|
84
|
+
this.seconds === other.seconds &&
|
|
85
|
+
this.nanoseconds === other.nanoseconds);
|
|
86
|
+
}
|
|
87
|
+
toJSON() {
|
|
88
|
+
return { seconds: this.seconds, nanoseconds: this.nanoseconds };
|
|
89
|
+
}
|
|
90
|
+
valueOf() {
|
|
91
|
+
return `${String(this.seconds + 62135596800).padStart(12, '0')}.${String(this.nanoseconds).padStart(9, '0')}`;
|
|
92
|
+
}
|
|
93
|
+
/** @internal REST representation. */
|
|
94
|
+
toString() {
|
|
95
|
+
return `${new Date(this.seconds * 1000).toISOString().slice(0, 19)}.${String(this.nanoseconds).padStart(9, '0')}Z`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/db/timestamp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type FirestoreResult } from './firestore-results.js';
|
|
2
|
+
import type { WithFieldValue, PartialWithFieldValue, UpdateData } from './firestore-types.js';
|
|
3
|
+
import { Pipeline, type PipelineSnapshot } from './pipeline.js';
|
|
4
|
+
import type { Firestore, ReadOptions } from './firestore.js';
|
|
5
|
+
import { Query, type QuerySnapshot } from './query.js';
|
|
6
|
+
import { AggregateQuery, type AggregateSpec, type AggregateQuerySnapshot } from './aggregate.js';
|
|
7
|
+
import { DocumentReference } from './document-reference.js';
|
|
8
|
+
import { FieldPath } from './field-path.js';
|
|
9
|
+
import type { DocumentSnapshot } from './document-snapshot.js';
|
|
10
|
+
import type { DocumentData } from './firestore-document.js';
|
|
11
|
+
import { type SetOptions, type Precondition } from './write-batch.js';
|
|
12
|
+
import type { WriteOperation, WriteResult } from './write-request.js';
|
|
13
|
+
export declare class Transaction {
|
|
14
|
+
readonly firestore: Firestore;
|
|
15
|
+
private readonly read;
|
|
16
|
+
private readonly commitWrites;
|
|
17
|
+
private readonly readOnly;
|
|
18
|
+
private readonly transactionId?;
|
|
19
|
+
execute(pipeline: Pipeline): Promise<FirestoreResult<PipelineSnapshot>>;
|
|
20
|
+
private readonly batch;
|
|
21
|
+
private written;
|
|
22
|
+
private pipelineWritten;
|
|
23
|
+
private closed;
|
|
24
|
+
private readonly reads;
|
|
25
|
+
/** @internal Use firestore.runTransaction(). */
|
|
26
|
+
constructor(firestore: Firestore, read: (ref: DocumentReference<any>) => Promise<DocumentSnapshot<any>>, commitWrites: (writes: WriteOperation[]) => Promise<WriteResult[]>, readOnly?: boolean, transactionId?: string | undefined);
|
|
27
|
+
get<T, DbModelType extends DocumentData = DocumentData>(ref: DocumentReference<T, DbModelType>): Promise<FirestoreResult<DocumentSnapshot<T, DbModelType>>>;
|
|
28
|
+
get<T, DbModelType extends DocumentData = DocumentData>(ref: Query<T, DbModelType>): Promise<FirestoreResult<QuerySnapshot<T, DbModelType>>>;
|
|
29
|
+
get<S extends AggregateSpec, T, DbModelType extends DocumentData>(ref: AggregateQuery<S, T, DbModelType>): Promise<FirestoreResult<AggregateQuerySnapshot<S, T, DbModelType>>>;
|
|
30
|
+
getAll<T = DocumentData, DbModelType extends DocumentData = DocumentData>(...refs: (DocumentReference<T, DbModelType> | ReadOptions)[]): Promise<FirestoreResult<DocumentSnapshot<T, DbModelType>[]>>;
|
|
31
|
+
create<T, DbModelType extends DocumentData = DocumentData>(ref: DocumentReference<T, DbModelType>, data: WithFieldValue<T>): this;
|
|
32
|
+
set<T, DbModelType extends DocumentData = DocumentData>(ref: DocumentReference<T, DbModelType>, data: WithFieldValue<T>): this;
|
|
33
|
+
set<T, DbModelType extends DocumentData = DocumentData>(ref: DocumentReference<T, DbModelType>, data: PartialWithFieldValue<T>, options: SetOptions): this;
|
|
34
|
+
update<T, DbModelType extends DocumentData>(ref: DocumentReference<T, DbModelType>, data: UpdateData<DbModelType>, precondition?: Precondition): this;
|
|
35
|
+
update(ref: DocumentReference<any>, field: string | FieldPath, value: unknown, ...moreFieldsOrPrecondition: unknown[]): this;
|
|
36
|
+
delete(ref: DocumentReference<any>, precondition?: Precondition): this;
|
|
37
|
+
/** @internal */
|
|
38
|
+
_commit(): Promise<void>;
|
|
39
|
+
/** @internal */
|
|
40
|
+
_close(): void;
|
|
41
|
+
private assertOpen;
|
|
42
|
+
private assertWritable;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/db/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { firestoreResult, firestoreData } from './firestore-results.js';
|
|
2
|
+
import { Pipeline } from './pipeline.js';
|
|
3
|
+
import { FirestoreErrorInfo } from './firestore-error-codes.js';
|
|
4
|
+
import { FirebaseEdgeError } from '../auth/errors.js';
|
|
5
|
+
import { Query } from './query.js';
|
|
6
|
+
import { AggregateQuery } from './aggregate.js';
|
|
7
|
+
import { DocumentReference } from './document-reference.js';
|
|
8
|
+
import { FieldPath } from './field-path.js';
|
|
9
|
+
import { normalizeUpdateArguments } from './write-request.js';
|
|
10
|
+
import { WriteBatch } from './write-batch.js';
|
|
11
|
+
export class Transaction {
|
|
12
|
+
firestore;
|
|
13
|
+
read;
|
|
14
|
+
commitWrites;
|
|
15
|
+
readOnly;
|
|
16
|
+
transactionId;
|
|
17
|
+
execute(pipeline) {
|
|
18
|
+
return firestoreResult(async () => {
|
|
19
|
+
this.assertOpen();
|
|
20
|
+
if (this.written || this.pipelineWritten || !this.transactionId) {
|
|
21
|
+
throw new FirebaseEdgeError({
|
|
22
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
23
|
+
message: 'Pipeline reads require an active transaction before writes.'
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (!(pipeline instanceof Pipeline) ||
|
|
27
|
+
pipeline.firestore !== this.firestore) {
|
|
28
|
+
throw new FirebaseEdgeError({
|
|
29
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
30
|
+
message: 'Pipeline must belong to this Firestore.'
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (pipeline._hasWrites && this.readOnly) {
|
|
34
|
+
throw new FirebaseEdgeError({
|
|
35
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
36
|
+
message: 'Read-only transactions cannot execute mutation pipelines.'
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (pipeline._hasWrites) {
|
|
40
|
+
this.pipelineWritten = true;
|
|
41
|
+
}
|
|
42
|
+
const result = pipeline._execute({}, this.transactionId);
|
|
43
|
+
this.reads.push(result);
|
|
44
|
+
void result.catch(() => { });
|
|
45
|
+
return result;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
batch;
|
|
49
|
+
written = false;
|
|
50
|
+
pipelineWritten = false;
|
|
51
|
+
closed = false;
|
|
52
|
+
reads = [];
|
|
53
|
+
/** @internal Use firestore.runTransaction(). */
|
|
54
|
+
constructor(firestore, read, commitWrites, readOnly = false, transactionId) {
|
|
55
|
+
this.firestore = firestore;
|
|
56
|
+
this.read = read;
|
|
57
|
+
this.commitWrites = commitWrites;
|
|
58
|
+
this.readOnly = readOnly;
|
|
59
|
+
this.transactionId = transactionId;
|
|
60
|
+
this.batch = new WriteBatch(firestore, commitWrites);
|
|
61
|
+
}
|
|
62
|
+
get(ref) {
|
|
63
|
+
return firestoreResult(async () => {
|
|
64
|
+
this.assertOpen();
|
|
65
|
+
if (this.written || this.pipelineWritten) {
|
|
66
|
+
throw new FirebaseEdgeError({
|
|
67
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
68
|
+
message: 'Transaction reads must precede writes.'
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
const owner = ref instanceof AggregateQuery
|
|
72
|
+
? ref.query.firestore
|
|
73
|
+
: ref?.firestore;
|
|
74
|
+
if (!(ref instanceof DocumentReference ||
|
|
75
|
+
ref instanceof Query ||
|
|
76
|
+
ref instanceof AggregateQuery) ||
|
|
77
|
+
owner !== this.firestore) {
|
|
78
|
+
throw new FirebaseEdgeError({
|
|
79
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
80
|
+
message: 'DocumentReference must belong to this Firestore instance.'
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (!(ref instanceof DocumentReference) && !this.transactionId) {
|
|
84
|
+
throw new FirebaseEdgeError({
|
|
85
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
86
|
+
message: 'A server transaction is required.'
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
const result = ref instanceof DocumentReference
|
|
90
|
+
? this.read(ref)
|
|
91
|
+
: ref._get(this.transactionId);
|
|
92
|
+
this.reads.push(result);
|
|
93
|
+
void result.catch(() => { });
|
|
94
|
+
return result;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
getAll(...refs) {
|
|
98
|
+
return firestoreResult(async () => {
|
|
99
|
+
this.assertOpen();
|
|
100
|
+
if (this.written || this.pipelineWritten) {
|
|
101
|
+
throw new FirebaseEdgeError({
|
|
102
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
103
|
+
message: 'Transaction reads must precede writes.'
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (!this.transactionId) {
|
|
107
|
+
throw new FirebaseEdgeError({
|
|
108
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
109
|
+
message: 'A server transaction is required.'
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
const result = this.firestore._getAll(refs, this.transactionId);
|
|
113
|
+
this.reads.push(result);
|
|
114
|
+
void result.catch(() => { });
|
|
115
|
+
return result;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
create(ref, data) {
|
|
119
|
+
this.assertWritable();
|
|
120
|
+
this.batch.create(ref, data);
|
|
121
|
+
this.written = true;
|
|
122
|
+
return this;
|
|
123
|
+
}
|
|
124
|
+
set(ref, data, options) {
|
|
125
|
+
this.assertWritable();
|
|
126
|
+
if (options === undefined)
|
|
127
|
+
this.batch.set(ref, data);
|
|
128
|
+
else
|
|
129
|
+
this.batch.set(ref, data, options);
|
|
130
|
+
this.written = true;
|
|
131
|
+
return this;
|
|
132
|
+
}
|
|
133
|
+
update(ref, data, ...args) {
|
|
134
|
+
this.assertWritable();
|
|
135
|
+
const update = normalizeUpdateArguments(data, args);
|
|
136
|
+
this.batch.update(ref, update.data, update.precondition);
|
|
137
|
+
this.written = true;
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
delete(ref, precondition) {
|
|
141
|
+
this.assertWritable();
|
|
142
|
+
this.batch.delete(ref, precondition);
|
|
143
|
+
this.written = true;
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
/** @internal */
|
|
147
|
+
async _commit() {
|
|
148
|
+
this.assertOpen();
|
|
149
|
+
this.closed = true;
|
|
150
|
+
await Promise.all(this.reads);
|
|
151
|
+
if (!this.written) {
|
|
152
|
+
await this.commitWrites([]);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
await this.batch.commit().then(firestoreData);
|
|
156
|
+
}
|
|
157
|
+
/** @internal */
|
|
158
|
+
_close() {
|
|
159
|
+
this.closed = true;
|
|
160
|
+
}
|
|
161
|
+
assertOpen() {
|
|
162
|
+
if (this.closed)
|
|
163
|
+
throw new FirebaseEdgeError({
|
|
164
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
165
|
+
message: 'Transaction is closed.'
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
assertWritable() {
|
|
169
|
+
this.assertOpen();
|
|
170
|
+
if (this.readOnly)
|
|
171
|
+
throw new FirebaseEdgeError({
|
|
172
|
+
...FirestoreErrorInfo.FAILED_PRECONDITION,
|
|
173
|
+
message: 'Read-only transactions cannot write.'
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/db/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-equality.d.ts","sourceRoot":"","sources":["../../src/db/value-equality.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAuClE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** @internal Compare Firestore values without depending on object property order. */
|
|
2
|
+
export function valueEquals(left, right) {
|
|
3
|
+
if (Object.is(left, right))
|
|
4
|
+
return true;
|
|
5
|
+
if (!left ||
|
|
6
|
+
!right ||
|
|
7
|
+
typeof left !== 'object' ||
|
|
8
|
+
typeof right !== 'object')
|
|
9
|
+
return false;
|
|
10
|
+
if ('isEqual' in left && typeof left.isEqual === 'function')
|
|
11
|
+
return left.isEqual(right);
|
|
12
|
+
if (left instanceof Date)
|
|
13
|
+
return right instanceof Date && left.getTime() === right.getTime();
|
|
14
|
+
if (left instanceof Uint8Array)
|
|
15
|
+
return (right instanceof Uint8Array &&
|
|
16
|
+
left.length === right.length &&
|
|
17
|
+
left.every((value, i) => value === right[i]));
|
|
18
|
+
if (Array.isArray(left))
|
|
19
|
+
return (Array.isArray(right) &&
|
|
20
|
+
left.length === right.length &&
|
|
21
|
+
left.every((value, i) => valueEquals(value, right[i])));
|
|
22
|
+
if (Object.getPrototypeOf(left) !== Object.getPrototypeOf(right))
|
|
23
|
+
return false;
|
|
24
|
+
const keys = Object.keys(left);
|
|
25
|
+
return (keys.length === Object.keys(right).length &&
|
|
26
|
+
keys.every((key) => Object.hasOwn(right, key) &&
|
|
27
|
+
valueEquals(left[key], right[key])));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=value-equality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-equality.js","sourceRoot":"","sources":["../../src/db/value-equality.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,KAAc;IACrD,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IACI,CAAC,IAAI;QACL,CAAC,KAAK;QACN,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,KAAK,KAAK,QAAQ;QAEzB,OAAO,KAAK,CAAC;IACjB,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,IAAI,YAAY,IAAI;QACpB,OAAO,KAAK,YAAY,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACvE,IAAI,IAAI,YAAY,UAAU;QAC1B,OAAO,CACH,KAAK,YAAY,UAAU;YAC3B,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/C,CAAC;IACN,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,OAAO,CACH,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACzD,CAAC;IACN,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CACH,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;QACzC,IAAI,CAAC,KAAK,CACN,CAAC,GAAG,EAAE,EAAE,CACJ,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;YACzB,WAAW,CACN,IAAgC,CAAC,GAAG,CAAC,EACrC,KAAiC,CAAC,GAAG,CAAC,CAC1C,CACR,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type FirestoreResult } from './firestore-results.js';
|
|
2
|
+
import { type DocumentChange, type Query } from './query.js';
|
|
3
|
+
import type { QueryDocumentSnapshot } from './query-document-snapshot.js';
|
|
4
|
+
import type { DocumentData } from './firestore-document.js';
|
|
5
|
+
import { FieldPath } from './field-path.js';
|
|
6
|
+
import { VectorValue } from './vector-value.js';
|
|
7
|
+
import type { Timestamp } from './timestamp.js';
|
|
8
|
+
import type { ExplainOptions, ExplainResults } from './explain.js';
|
|
9
|
+
export interface VectorQueryOptions {
|
|
10
|
+
vectorField: string | FieldPath;
|
|
11
|
+
queryVector: VectorValue | number[];
|
|
12
|
+
limit: number;
|
|
13
|
+
distanceMeasure: 'EUCLIDEAN' | 'COSINE' | 'DOT_PRODUCT';
|
|
14
|
+
distanceResultField?: string | FieldPath;
|
|
15
|
+
distanceThreshold?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class VectorQuery<T = DocumentData, DbModelType extends DocumentData = DocumentData> {
|
|
18
|
+
readonly query: Query<T, DbModelType>;
|
|
19
|
+
private readonly executable;
|
|
20
|
+
/** @internal Obtain from Query.findNearest(). */
|
|
21
|
+
constructor(query: Query<T, DbModelType>, options: VectorQueryOptions);
|
|
22
|
+
get(): Promise<FirestoreResult<VectorQuerySnapshot<T, DbModelType>>>;
|
|
23
|
+
isEqual(other: unknown): boolean;
|
|
24
|
+
explain(options?: ExplainOptions): Promise<FirestoreResult<ExplainResults<VectorQuerySnapshot<T, DbModelType>>>>;
|
|
25
|
+
}
|
|
26
|
+
export declare class VectorQuerySnapshot<T = DocumentData, DbModelType extends DocumentData = DocumentData> {
|
|
27
|
+
readonly query: VectorQuery<T, DbModelType>;
|
|
28
|
+
readonly docs: QueryDocumentSnapshot<T, DbModelType>[];
|
|
29
|
+
readonly readTime: Timestamp;
|
|
30
|
+
readonly size: number;
|
|
31
|
+
readonly empty: boolean;
|
|
32
|
+
/** @internal Obtain from VectorQuery.get(). */
|
|
33
|
+
constructor(query: VectorQuery<T, DbModelType>, docs: QueryDocumentSnapshot<T, DbModelType>[], readTime: Timestamp);
|
|
34
|
+
docChanges(): DocumentChange<T, DbModelType>[];
|
|
35
|
+
forEach(callback: (doc: QueryDocumentSnapshot<T, DbModelType>) => void, thisArg?: unknown): void;
|
|
36
|
+
isEqual(other: unknown): boolean;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=vector-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-query.d.ts","sourceRoot":"","sources":["../../src/db/vector-query.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,eAAe,EAGvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,WAAW,GAAG,QAAQ,GAAG,aAAa,CAAC;IACxD,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AACD,qBAAa,WAAW,CACpB,CAAC,GAAG,YAAY,EAChB,WAAW,SAAS,YAAY,GAAG,YAAY;IAK3C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;IAHzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,iDAAiD;gBAEpC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EACrC,OAAO,EAAE,kBAAkB;IAiDzB,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IAU1E,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAM1B,OAAO,CACT,OAAO,CAAC,EAAE,cAAc,GACzB,OAAO,CACN,eAAe,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CACvE;CAiBJ;AACD,qBAAa,mBAAmB,CAC5B,CAAC,GAAG,YAAY,EAChB,WAAW,SAAS,YAAY,GAAG,YAAY;IAM3C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS;IANhC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,+CAA+C;gBAElC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,EAClC,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAC7C,QAAQ,EAAE,SAAS;IAKhC,UAAU,IAAI,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE;IAO9C,OAAO,CACH,QAAQ,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,IAAI,EAC9D,OAAO,CAAC,EAAE,OAAO,GAClB,IAAI;IAQP,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAQnC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { firestoreResult, firestoreData } from './firestore-results.js';
|
|
2
|
+
import { QuerySnapshot } from './query.js';
|
|
3
|
+
import { FieldPath } from './field-path.js';
|
|
4
|
+
import { VectorValue } from './vector-value.js';
|
|
5
|
+
import { encodeValue, validateFieldPath } from './query-request.js';
|
|
6
|
+
import { FirebaseEdgeError } from '../auth/errors.js';
|
|
7
|
+
import { FirestoreErrorInfo } from './firestore-error-codes.js';
|
|
8
|
+
export class VectorQuery {
|
|
9
|
+
query;
|
|
10
|
+
executable;
|
|
11
|
+
/** @internal Obtain from Query.findNearest(). */
|
|
12
|
+
constructor(query, options) {
|
|
13
|
+
this.query = query;
|
|
14
|
+
if (!options ||
|
|
15
|
+
!Number.isInteger(options.limit) ||
|
|
16
|
+
options.limit < 1 ||
|
|
17
|
+
options.limit > 1000 ||
|
|
18
|
+
!['EUCLIDEAN', 'COSINE', 'DOT_PRODUCT'].includes(options.distanceMeasure) ||
|
|
19
|
+
(options.distanceThreshold !== undefined &&
|
|
20
|
+
!Number.isFinite(options.distanceThreshold)))
|
|
21
|
+
throw new FirebaseEdgeError({
|
|
22
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
23
|
+
message: 'Invalid vector query options.'
|
|
24
|
+
});
|
|
25
|
+
if (!(options.vectorField instanceof FieldPath))
|
|
26
|
+
validateFieldPath(options.vectorField);
|
|
27
|
+
if (options.distanceResultField !== undefined &&
|
|
28
|
+
!(options.distanceResultField instanceof FieldPath))
|
|
29
|
+
validateFieldPath(options.distanceResultField);
|
|
30
|
+
const vector = options.queryVector instanceof VectorValue
|
|
31
|
+
? options.queryVector
|
|
32
|
+
: new VectorValue(options.queryVector);
|
|
33
|
+
if (!vector.toArray().length)
|
|
34
|
+
throw new FirebaseEdgeError({
|
|
35
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
36
|
+
message: 'A query vector must not be empty.'
|
|
37
|
+
});
|
|
38
|
+
this.executable = query._withNearest({
|
|
39
|
+
vectorField: { fieldPath: options.vectorField.toString() },
|
|
40
|
+
queryVector: encodeValue(vector),
|
|
41
|
+
limit: options.limit,
|
|
42
|
+
distanceMeasure: options.distanceMeasure,
|
|
43
|
+
...(options.distanceResultField !== undefined
|
|
44
|
+
? {
|
|
45
|
+
distanceResultField: options.distanceResultField.toString()
|
|
46
|
+
}
|
|
47
|
+
: {}),
|
|
48
|
+
...(options.distanceThreshold !== undefined
|
|
49
|
+
? { distanceThreshold: options.distanceThreshold }
|
|
50
|
+
: {})
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async get() {
|
|
54
|
+
return firestoreResult(async () => {
|
|
55
|
+
const snapshot = await this.executable.get().then(firestoreData);
|
|
56
|
+
return new VectorQuerySnapshot(this, snapshot.docs, snapshot.readTime);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
isEqual(other) {
|
|
60
|
+
return (other instanceof VectorQuery &&
|
|
61
|
+
this.executable.isEqual(other.executable));
|
|
62
|
+
}
|
|
63
|
+
async explain(options) {
|
|
64
|
+
return firestoreResult(async () => {
|
|
65
|
+
const result = await this.executable
|
|
66
|
+
.explain(options)
|
|
67
|
+
.then(firestoreData);
|
|
68
|
+
return {
|
|
69
|
+
metrics: result.metrics,
|
|
70
|
+
snapshot: result.snapshot
|
|
71
|
+
? new VectorQuerySnapshot(this, result.snapshot.docs, result.snapshot.readTime)
|
|
72
|
+
: null
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export class VectorQuerySnapshot {
|
|
78
|
+
query;
|
|
79
|
+
docs;
|
|
80
|
+
readTime;
|
|
81
|
+
size;
|
|
82
|
+
empty;
|
|
83
|
+
/** @internal Obtain from VectorQuery.get(). */
|
|
84
|
+
constructor(query, docs, readTime) {
|
|
85
|
+
this.query = query;
|
|
86
|
+
this.docs = docs;
|
|
87
|
+
this.readTime = readTime;
|
|
88
|
+
this.size = docs.length;
|
|
89
|
+
this.empty = !docs.length;
|
|
90
|
+
}
|
|
91
|
+
docChanges() {
|
|
92
|
+
return new QuerySnapshot(this.query.query, this.docs, this.readTime).docChanges();
|
|
93
|
+
}
|
|
94
|
+
forEach(callback, thisArg) {
|
|
95
|
+
if (typeof callback !== 'function')
|
|
96
|
+
throw new FirebaseEdgeError({
|
|
97
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
98
|
+
message: 'Expected a callback function.'
|
|
99
|
+
});
|
|
100
|
+
for (const doc of this.docs)
|
|
101
|
+
callback.call(thisArg, doc);
|
|
102
|
+
}
|
|
103
|
+
isEqual(other) {
|
|
104
|
+
return (other instanceof VectorQuerySnapshot &&
|
|
105
|
+
this.query.isEqual(other.query) &&
|
|
106
|
+
this.docs.length === other.docs.length &&
|
|
107
|
+
this.docs.every((doc, i) => doc.isEqual(other.docs[i])));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=vector-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-query.js","sourceRoot":"","sources":["../../src/db/vector-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-value.d.ts","sourceRoot":"","sources":["../../src/db/vector-value.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,+BAA+B;gBACnB,MAAM,EAAE,MAAM,EAAE;IAc5B,OAAO,IAAI,MAAM,EAAE;IAGnB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAOnC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FirebaseEdgeError } from '../auth/errors.js';
|
|
2
|
+
import { FirestoreErrorInfo } from './firestore-error-codes.js';
|
|
3
|
+
export class VectorValue {
|
|
4
|
+
values;
|
|
5
|
+
/** Use FieldValue.vector(). */
|
|
6
|
+
constructor(values) {
|
|
7
|
+
if (!Array.isArray(values) ||
|
|
8
|
+
values.length > 2048 ||
|
|
9
|
+
Array.from(values).some((value) => typeof value !== 'number' || !Number.isFinite(value)))
|
|
10
|
+
throw new FirebaseEdgeError({
|
|
11
|
+
...FirestoreErrorInfo.INVALID_ARGUMENT,
|
|
12
|
+
message: 'Vectors require at most 2048 finite numbers.'
|
|
13
|
+
});
|
|
14
|
+
this.values = Object.freeze([...values]);
|
|
15
|
+
}
|
|
16
|
+
toArray() {
|
|
17
|
+
return [...this.values];
|
|
18
|
+
}
|
|
19
|
+
isEqual(other) {
|
|
20
|
+
return (other instanceof VectorValue &&
|
|
21
|
+
this.values.length === other.values.length &&
|
|
22
|
+
this.values.every((value, i) => Object.is(value, other.values[i])));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=vector-value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector-value.js","sourceRoot":"","sources":["../../src/db/vector-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,OAAO,WAAW;IACH,MAAM,CAAoB;IAC3C,+BAA+B;IAC/B,YAAY,MAAgB;QACxB,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,IAAI;YACpB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACnB,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAClE;YAED,MAAM,IAAI,iBAAiB,CAAC;gBACxB,GAAG,kBAAkB,CAAC,gBAAgB;gBACtC,OAAO,EAAE,8CAA8C;aAC1D,CAAC,CAAC;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,KAAc;QAClB,OAAO,CACH,KAAK,YAAY,WAAW;YAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC;IACN,CAAC;CACJ"}
|