diff --git a/etc/firebase-admin.api.md b/etc/firebase-admin.api.md index 6c80d32f91..69b9052166 100644 --- a/etc/firebase-admin.api.md +++ b/etc/firebase-admin.api.md @@ -270,14 +270,6 @@ export namespace firestore { import WhereFilterOp = _firestore.WhereFilterOp; import WriteBatch = _firestore.WriteBatch; import WriteResult = _firestore.WriteResult; - import PartialWithFieldValue = _firestore.PartialWithFieldValue; - import WithFieldValue = _firestore.WithFieldValue; - import Primitive = _firestore.Primitive; - import NestedUpdateFields = _firestore.NestedUpdateFields; - import ChildUpdateFields = _firestore.ChildUpdateFields; - import AddPrefixToKeys = _firestore.AddPrefixToKeys; - import UnionToIntersection = _firestore.UnionToIntersection; - import ReadOnlyTransactionOptions = _firestore.ReadOnlyTransactionOptions; import setLogFunction = _firestore.setLogFunction; } diff --git a/etc/firebase-admin.firestore.api.md b/etc/firebase-admin.firestore.api.md index 0e957df024..5a9bdd35df 100644 --- a/etc/firebase-admin.firestore.api.md +++ b/etc/firebase-admin.firestore.api.md @@ -6,12 +6,10 @@ /// -import { AddPrefixToKeys } from '@google-cloud/firestore'; import { Agent } from 'http'; import { BulkWriter } from '@google-cloud/firestore'; import { BulkWriterOptions } from '@google-cloud/firestore'; import { BundleBuilder } from '@google-cloud/firestore'; -import { ChildUpdateFields } from '@google-cloud/firestore'; import { CollectionGroup } from '@google-cloud/firestore'; import { CollectionReference } from '@google-cloud/firestore'; import { DocumentChange } from '@google-cloud/firestore'; @@ -25,40 +23,30 @@ import { Firestore } from '@google-cloud/firestore'; import { FirestoreDataConverter } from '@google-cloud/firestore'; import { GeoPoint } from '@google-cloud/firestore'; import { GrpcStatus } from '@google-cloud/firestore'; -import { NestedUpdateFields } from '@google-cloud/firestore'; import { OrderByDirection } from '@google-cloud/firestore'; -import { PartialWithFieldValue } from '@google-cloud/firestore'; import { Precondition } from '@google-cloud/firestore'; -import { Primitive } from '@google-cloud/firestore'; import { Query } from '@google-cloud/firestore'; import { QueryDocumentSnapshot } from '@google-cloud/firestore'; import { QueryPartition } from '@google-cloud/firestore'; import { QuerySnapshot } from '@google-cloud/firestore'; -import { ReadOnlyTransactionOptions } from '@google-cloud/firestore'; import { ReadOptions } from '@google-cloud/firestore'; import { setLogFunction } from '@google-cloud/firestore'; import { SetOptions } from '@google-cloud/firestore'; import { Settings } from '@google-cloud/firestore'; import { Timestamp } from '@google-cloud/firestore'; import { Transaction } from '@google-cloud/firestore'; -import { UnionToIntersection } from '@google-cloud/firestore'; import { UpdateData } from '@google-cloud/firestore'; import { v1 } from '@google-cloud/firestore'; import { WhereFilterOp } from '@google-cloud/firestore'; -import { WithFieldValue } from '@google-cloud/firestore'; import { WriteBatch } from '@google-cloud/firestore'; import { WriteResult } from '@google-cloud/firestore'; -export { AddPrefixToKeys } - export { BulkWriter } export { BulkWriterOptions } export { BundleBuilder } -export { ChildUpdateFields } - export { CollectionGroup } export { CollectionReference } @@ -90,16 +78,10 @@ export function getFirestore(app?: App): Firestore; export { GrpcStatus } -export { NestedUpdateFields } - export { OrderByDirection } -export { PartialWithFieldValue } - export { Precondition } -export { Primitive } - export { Query } export { QueryDocumentSnapshot } @@ -108,8 +90,6 @@ export { QueryPartition } export { QuerySnapshot } -export { ReadOnlyTransactionOptions } - export { ReadOptions } export { setLogFunction } @@ -122,16 +102,12 @@ export { Timestamp } export { Transaction } -export { UnionToIntersection } - export { UpdateData } export { v1 } export { WhereFilterOp } -export { WithFieldValue } - export { WriteBatch } export { WriteResult } diff --git a/package-lock.json b/package-lock.json index 5f2771d587..f254a39564 100644 --- a/package-lock.json +++ b/package-lock.json @@ -590,9 +590,9 @@ } }, "@google-cloud/firestore": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-5.0.2.tgz", - "integrity": "sha512-xlGcNYaW0nvUMzNn2+pLfbEBVt6oysVqtM89faMgZWkWfEtvIQGS0h5PRdLlcqufNzRCX3yIGv29Pb+03ys+VA==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-4.15.1.tgz", + "integrity": "sha512-2PWsCkEF1W02QbghSeRsNdYKN1qavrHBP3m72gPDMHQSYrGULOaTi7fSJquQmAtc4iPVB2/x6h80rdLHTATQtA==", "optional": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -9378,9 +9378,9 @@ } }, "typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true }, "unbox-primitive": { diff --git a/package.json b/package.json index 36971927a2..b9b49b5b85 100644 --- a/package.json +++ b/package.json @@ -168,7 +168,7 @@ "node-forge": "^1.0.0" }, "optionalDependencies": { - "@google-cloud/firestore": "^5.0.1", + "@google-cloud/firestore": "^4.5.0", "@google-cloud/storage": "^5.3.0" }, "devDependencies": { @@ -218,7 +218,7 @@ "sinon": "^9.0.0", "sinon-chai": "^3.0.0", "ts-node": "^10.2.0", - "typescript": "^4.4.3", + "typescript": "^3.7.3", "yargs": "^17.0.1" } } diff --git a/src/firestore/firestore-namespace.ts b/src/firestore/firestore-namespace.ts index a6ccc5c1d7..8fcdc43b00 100644 --- a/src/firestore/firestore-namespace.ts +++ b/src/firestore/firestore-namespace.ts @@ -57,14 +57,6 @@ export namespace firestore { export import WhereFilterOp = _firestore.WhereFilterOp; export import WriteBatch = _firestore.WriteBatch; export import WriteResult = _firestore.WriteResult; - export import PartialWithFieldValue = _firestore.PartialWithFieldValue; - export import WithFieldValue = _firestore.WithFieldValue; - export import Primitive = _firestore.Primitive; - export import NestedUpdateFields = _firestore.NestedUpdateFields; - export import ChildUpdateFields = _firestore.ChildUpdateFields; - export import AddPrefixToKeys = _firestore.AddPrefixToKeys; - export import UnionToIntersection = _firestore.UnionToIntersection; - export import ReadOnlyTransactionOptions = _firestore.ReadOnlyTransactionOptions; export import setLogFunction = _firestore.setLogFunction; } diff --git a/src/firestore/index.ts b/src/firestore/index.ts index 0f5dfc4ecd..305f5f9da8 100644 --- a/src/firestore/index.ts +++ b/src/firestore/index.ts @@ -26,11 +26,9 @@ import { FirebaseApp } from '../app/firebase-app'; import { FirestoreService } from './firestore-internal'; export { - AddPrefixToKeys, BulkWriter, BulkWriterOptions, BundleBuilder, - ChildUpdateFields, CollectionGroup, CollectionReference, DocumentChange, @@ -44,25 +42,19 @@ export { FirestoreDataConverter, GeoPoint, GrpcStatus, - NestedUpdateFields, OrderByDirection, - PartialWithFieldValue, Precondition, - Primitive, Query, QueryDocumentSnapshot, QueryPartition, QuerySnapshot, ReadOptions, - ReadOnlyTransactionOptions, Settings, SetOptions, Timestamp, Transaction, UpdateData, - UnionToIntersection, WhereFilterOp, - WithFieldValue, WriteBatch, WriteResult, v1, diff --git a/test/integration/auth.spec.ts b/test/integration/auth.spec.ts index c9054f1a2b..2308ca6879 100644 --- a/test/integration/auth.spec.ts +++ b/test/integration/auth.spec.ts @@ -1259,7 +1259,7 @@ describe('admin.auth', () => { const actualTenantObj = actualTenant.toJSON(); if (authEmulatorHost) { // Not supported in Auth Emulator - delete (actualTenantObj as {testPhoneNumbers?: Record}).testPhoneNumbers; + delete (actualTenantObj as {testPhoneNumbers: Record}).testPhoneNumbers; delete expectedCreatedTenant.testPhoneNumbers; } expect(actualTenantObj).to.deep.equal(expectedCreatedTenant); @@ -1617,7 +1617,7 @@ describe('admin.auth', () => { const actualTenantObj = actualTenant.toJSON(); if (authEmulatorHost) { // Not supported in Auth Emulator - delete (actualTenantObj as {testPhoneNumbers?: Record}).testPhoneNumbers; + delete (actualTenantObj as {testPhoneNumbers: Record}).testPhoneNumbers; delete expectedCreatedTenant.testPhoneNumbers; } expect(actualTenantObj).to.deep.equal(expectedCreatedTenant); @@ -1649,7 +1649,7 @@ describe('admin.auth', () => { .then((actualTenant) => { const actualTenantObj = actualTenant.toJSON(); // Not supported in Auth Emulator - delete (actualTenantObj as {testPhoneNumbers?: Record}).testPhoneNumbers; + delete (actualTenantObj as {testPhoneNumbers: Record}).testPhoneNumbers; delete expectedUpdatedTenant.testPhoneNumbers; expect(actualTenantObj).to.deep.equal(expectedUpdatedTenant); return getAuth().tenantManager().updateTenant(createdTenantId, updatedOptions2); @@ -1657,7 +1657,7 @@ describe('admin.auth', () => { .then((actualTenant) => { const actualTenantObj = actualTenant.toJSON(); // Not supported in Auth Emulator - delete (actualTenantObj as {testPhoneNumbers?: Record}).testPhoneNumbers; + delete (actualTenantObj as {testPhoneNumbers: Record}).testPhoneNumbers; delete expectedUpdatedTenant2.testPhoneNumbers; expect(actualTenantObj).to.deep.equal(expectedUpdatedTenant2); }); @@ -2150,8 +2150,8 @@ describe('admin.auth', () => { // Not supported in ID token, delete decodedIdToken.nonce; // exp and iat may vary depending on network connection latency. - delete (decodedIdToken as any).exp; - delete (decodedIdToken as any).iat; + delete decodedIdToken.exp; + delete decodedIdToken.iat; expect(decodedIdToken).to.deep.equal(payloadClaims); }); }); diff --git a/test/integration/postcheck/package.json b/test/integration/postcheck/package.json index 6345381702..854c355a68 100644 --- a/test/integration/postcheck/package.json +++ b/test/integration/postcheck/package.json @@ -10,7 +10,7 @@ "devDependencies": { "@types/chai": "^4.0.0", "@types/mocha": "^2.2.48", - "@types/node": "^10.10.0", + "@types/node": ">=12.12.47", "chai": "^4.2.0", "mocha": "^8.0.0", "ts-node": "^9.0.0", diff --git a/test/unit/auth/tenant.spec.ts b/test/unit/auth/tenant.spec.ts index 3843a41bb7..0f14856faa 100644 --- a/test/unit/auth/tenant.spec.ts +++ b/test/unit/auth/tenant.spec.ts @@ -86,7 +86,7 @@ describe('Tenant', () => { it('should return the expected server request without multi-factor and phone config', () => { const tenantOptionsClientRequest = deepCopy(clientRequestWithoutMfa); const tenantOptionsServerRequest = deepCopy(serverRequestWithoutMfa); - delete (tenantOptionsServerRequest as any).name; + delete tenantOptionsServerRequest.name; expect(Tenant.buildServerRequest(tenantOptionsClientRequest, !createRequest)) .to.deep.equal(tenantOptionsServerRequest); }); @@ -94,7 +94,7 @@ describe('Tenant', () => { it('should return the expected server request with multi-factor and phone config', () => { const tenantOptionsClientRequest = deepCopy(clientRequest); const tenantOptionsServerRequest = deepCopy(serverRequest); - delete (tenantOptionsServerRequest as any).name; + delete tenantOptionsServerRequest.name; expect(Tenant.buildServerRequest(tenantOptionsClientRequest, !createRequest)) .to.deep.equal(tenantOptionsServerRequest); }); @@ -134,7 +134,7 @@ describe('Tenant', () => { const tenantOptionsClientRequest = deepCopy(clientRequest); const tenantOptionsServerRequest = deepCopy(serverRequest); tenantOptionsClientRequest.testPhoneNumbers = null; - delete (tenantOptionsServerRequest as any).name; + delete tenantOptionsServerRequest.name; tenantOptionsServerRequest.testPhoneNumbers = {}; expect(Tenant.buildServerRequest(tenantOptionsClientRequest, !createRequest)) @@ -181,7 +181,7 @@ describe('Tenant', () => { it('should return the expected server request without multi-factor and phone config', () => { const tenantOptionsClientRequest: CreateTenantRequest = deepCopy(clientRequestWithoutMfa); const tenantOptionsServerRequest: TenantServerResponse = deepCopy(serverRequestWithoutMfa); - delete (tenantOptionsServerRequest as any).name; + delete tenantOptionsServerRequest.name; expect(Tenant.buildServerRequest(tenantOptionsClientRequest, createRequest)) .to.deep.equal(tenantOptionsServerRequest); @@ -190,7 +190,7 @@ describe('Tenant', () => { it('should return the expected server request with multi-factor and phone config', () => { const tenantOptionsClientRequest: CreateTenantRequest = deepCopy(clientRequest); const tenantOptionsServerRequest: TenantServerResponse = deepCopy(serverRequest); - delete (tenantOptionsServerRequest as any).name; + delete tenantOptionsServerRequest.name; expect(Tenant.buildServerRequest(tenantOptionsClientRequest, createRequest)) .to.deep.equal(tenantOptionsServerRequest); @@ -224,7 +224,7 @@ describe('Tenant', () => { const tenantOptionsClientRequest = deepCopy(clientRequest); const tenantOptionsServerRequest = deepCopy(serverRequest); tenantOptionsClientRequest.testPhoneNumbers = null; - delete (tenantOptionsServerRequest as any).name; + delete tenantOptionsServerRequest.name; tenantOptionsServerRequest.testPhoneNumbers = {}; expect(() => { diff --git a/test/unit/security-rules/security-rules.spec.ts b/test/unit/security-rules/security-rules.spec.ts index 380583d4cd..70611d7db5 100644 --- a/test/unit/security-rules/security-rules.spec.ts +++ b/test/unit/security-rules/security-rules.spec.ts @@ -825,7 +825,7 @@ describe('SecurityRules', () => { it('should resolve with RulesetMetadataList when the response contains no page token', () => { const response = deepCopy(LIST_RULESETS_RESPONSE); - delete (response as any).nextPageToken; + delete response.nextPageToken; const stub = sinon .stub(SecurityRulesApiClient.prototype, 'listRulesets') .resolves(response);