diff --git a/CHANGELOG.md b/CHANGELOG.md index e69de29bb..08bf07b55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -0,0 +1 @@ +- Fix an error that broke `firebase emulators:start` on older CLIs diff --git a/spec/common/providers/https.spec.ts b/spec/common/providers/https.spec.ts index 91b2ecad7..b8cc9546b 100644 --- a/spec/common/providers/https.spec.ts +++ b/spec/common/providers/https.spec.ts @@ -2,8 +2,8 @@ import { expect } from 'chai'; import * as express from 'express'; import * as firebase from 'firebase-admin'; +import { apps as appsNamespace } from '../../../src/apps'; import * as https from '../../../src/common/providers/https'; -import { apps as appsNamespace } from '../../../src/v1/apps'; import * as mocks from '../../fixtures/credential/key.json'; import { expectedResponseHeaders, diff --git a/spec/v1/apps.spec.ts b/spec/v1/apps.spec.ts index 33c263f4f..89a1b3f5b 100644 --- a/spec/v1/apps.spec.ts +++ b/spec/v1/apps.spec.ts @@ -21,7 +21,7 @@ // SOFTWARE. import { expect } from 'chai'; -import { apps as appsNamespace } from '../../src/v1/apps'; +import { apps as appsNamespace } from '../../src/apps'; import * as firebase from 'firebase-admin'; import * as _ from 'lodash'; diff --git a/spec/v1/cloud-functions.spec.ts b/spec/v1/cloud-functions.spec.ts index 48ecb3072..05e80bd21 100644 --- a/spec/v1/cloud-functions.spec.ts +++ b/spec/v1/cloud-functions.spec.ts @@ -29,7 +29,7 @@ import { EventContext, makeCloudFunction, MakeCloudFunctionArgs, -} from '../../src/v1/cloud-functions'; +} from '../../src/cloud-functions'; describe('makeCloudFunction', () => { const cloudFunctionArgs: MakeCloudFunctionArgs = { diff --git a/spec/v1/config.spec.ts b/spec/v1/config.spec.ts index 7b750032d..8341d6a34 100644 --- a/spec/v1/config.spec.ts +++ b/spec/v1/config.spec.ts @@ -25,7 +25,7 @@ import * as fs from 'fs'; import * as process from 'process'; import Sinon = require('sinon'); -import * as config from '../../src/v1/config'; +import * as config from '../../src/config'; describe('config()', () => { let readFileSync: Sinon.SinonStub; diff --git a/spec/v1/function-builder.spec.ts b/spec/v1/function-builder.spec.ts index 86a441c67..13d4daa06 100644 --- a/spec/v1/function-builder.spec.ts +++ b/spec/v1/function-builder.spec.ts @@ -22,7 +22,7 @@ import { expect } from 'chai'; -import * as functions from '../../src/v1'; +import * as functions from '../../src'; describe('FunctionBuilder', () => { before(() => { diff --git a/spec/v1/providers/analytics.spec.input.ts b/spec/v1/providers/analytics.spec.input.ts index 74ad65a93..b4a6505f5 100644 --- a/spec/v1/providers/analytics.spec.input.ts +++ b/spec/v1/providers/analytics.spec.input.ts @@ -21,7 +21,7 @@ // SOFTWARE. /* tslint:disable:max-line-length */ -import { AnalyticsEvent } from '../../../src/v1/providers/analytics'; +import { AnalyticsEvent } from '../../../src/providers/analytics'; // A payload, as it might arrive over the wire. Every possible field is filled out at least once. export const fullPayload = JSON.parse(`{ diff --git a/spec/v1/providers/analytics.spec.ts b/spec/v1/providers/analytics.spec.ts index a6e6b0af6..d92244439 100644 --- a/spec/v1/providers/analytics.spec.ts +++ b/spec/v1/providers/analytics.spec.ts @@ -22,9 +22,9 @@ import { expect } from 'chai'; -import * as functions from '../../../src/v1'; -import { Event, EventContext } from '../../../src/v1/cloud-functions'; -import * as analytics from '../../../src/v1/providers/analytics'; +import * as functions from '../../../src'; +import { Event, EventContext } from '../../../src/cloud-functions'; +import * as analytics from '../../../src/providers/analytics'; import * as analytics_spec_input from './analytics.spec.input'; describe('Analytics Functions', () => { diff --git a/spec/v1/providers/auth.spec.ts b/spec/v1/providers/auth.spec.ts index df0db01f7..e22052573 100644 --- a/spec/v1/providers/auth.spec.ts +++ b/spec/v1/providers/auth.spec.ts @@ -23,13 +23,13 @@ import { expect } from 'chai'; import * as firebase from 'firebase-admin'; -import * as functions from '../../../src/index'; import { CloudFunction, Event, EventContext, -} from '../../../src/v1/cloud-functions'; -import * as auth from '../../../src/v1/providers/auth'; +} from '../../../src/cloud-functions'; +import * as functions from '../../../src/index'; +import * as auth from '../../../src/providers/auth'; describe('Auth Functions', () => { const event: Event = { diff --git a/spec/v1/providers/database.spec.ts b/spec/v1/providers/database.spec.ts index 27d5854c6..d49c27854 100644 --- a/spec/v1/providers/database.spec.ts +++ b/spec/v1/providers/database.spec.ts @@ -21,11 +21,11 @@ // SOFTWARE. import { expect } from 'chai'; -import { apps as appsNamespace } from '../../../src/v1/apps'; -import * as config from '../../../src/v1/config'; -import * as functions from '../../../src/v1/index'; -import * as database from '../../../src/v1/providers/database'; -import { applyChange } from '../../../src/v1/utils'; +import { apps as appsNamespace } from '../../../src/apps'; +import * as config from '../../../src/config'; +import * as functions from '../../../src/index'; +import * as database from '../../../src/providers/database'; +import { applyChange } from '../../../src/utils'; describe('Database Functions', () => { describe('DatabaseBuilder', () => { diff --git a/spec/v1/providers/firestore.spec.ts b/spec/v1/providers/firestore.spec.ts index 26a8948fc..25cffaf6c 100644 --- a/spec/v1/providers/firestore.spec.ts +++ b/spec/v1/providers/firestore.spec.ts @@ -25,7 +25,7 @@ import * as admin from 'firebase-admin'; import * as _ from 'lodash'; import * as functions from '../../../src/index'; -import * as firestore from '../../../src/v1/providers/firestore'; +import * as firestore from '../../../src/providers/firestore'; describe('Firestore Functions', () => { function constructValue(fields: any) { diff --git a/spec/v1/providers/https.spec.ts b/spec/v1/providers/https.spec.ts index 55ecf9cb8..52b64df69 100644 --- a/spec/v1/providers/https.spec.ts +++ b/spec/v1/providers/https.spec.ts @@ -24,7 +24,7 @@ import { expect } from 'chai'; import * as express from 'express'; import * as _ from 'lodash'; import * as functions from '../../../src/index'; -import * as https from '../../../src/v1/providers/https'; +import * as https from '../../../src/providers/https'; import { expectedResponseHeaders, MockRequest, diff --git a/spec/v1/providers/pubsub.spec.ts b/spec/v1/providers/pubsub.spec.ts index 3d0569057..1ab8c7ba4 100644 --- a/spec/v1/providers/pubsub.spec.ts +++ b/spec/v1/providers/pubsub.spec.ts @@ -23,7 +23,7 @@ import { expect } from 'chai'; import { Event } from '../../../src/index'; import * as functions from '../../../src/index'; -import * as pubsub from '../../../src/v1/providers/pubsub'; +import * as pubsub from '../../../src/providers/pubsub'; describe('Pubsub Functions', () => { describe('pubsub.Message', () => { diff --git a/spec/v1/providers/remoteConfig.spec.ts b/spec/v1/providers/remoteConfig.spec.ts index 2ccfe41fd..f7221cf99 100644 --- a/spec/v1/providers/remoteConfig.spec.ts +++ b/spec/v1/providers/remoteConfig.spec.ts @@ -22,14 +22,14 @@ import { expect } from 'chai'; import * as _ from 'lodash'; -import * as functions from '../../../src/index'; import { CloudFunction, Event, EventContext, TriggerAnnotated, -} from '../../../src/v1/cloud-functions'; -import * as remoteConfig from '../../../src/v1/providers/remoteConfig'; +} from '../../../src/cloud-functions'; +import * as functions from '../../../src/index'; +import * as remoteConfig from '../../../src/providers/remoteConfig'; describe('RemoteConfig Functions', () => { function constructVersion() { diff --git a/spec/v1/providers/storage.spec.ts b/spec/v1/providers/storage.spec.ts index aee2d72a9..02762630d 100644 --- a/spec/v1/providers/storage.spec.ts +++ b/spec/v1/providers/storage.spec.ts @@ -21,10 +21,10 @@ // SOFTWARE. import { expect } from 'chai'; -import { Event, EventContext } from '../../../src/v1'; -import * as functions from '../../../src/v1'; -import * as config from '../../../src/v1/config'; -import * as storage from '../../../src/v1/providers/storage'; +import { Event, EventContext } from '../../../src'; +import * as functions from '../../../src'; +import * as config from '../../../src/config'; +import * as storage from '../../../src/providers/storage'; describe('Storage Functions', () => { describe('ObjectBuilder', () => { diff --git a/spec/v1/providers/testLab.spec.ts b/spec/v1/providers/testLab.spec.ts index 5584bfbf7..3dbe8c0f5 100644 --- a/spec/v1/providers/testLab.spec.ts +++ b/spec/v1/providers/testLab.spec.ts @@ -22,7 +22,7 @@ import { expect } from 'chai'; -import * as testLab from '../../../src/v1/providers/testLab'; +import * as testLab from '../../../src/providers/testLab'; describe('Test Lab Functions', () => { describe('#onComplete', () => { diff --git a/spec/v1/setup.spec.ts b/spec/v1/setup.spec.ts index 20ca26d12..25a6fbe0c 100644 --- a/spec/v1/setup.spec.ts +++ b/spec/v1/setup.spec.ts @@ -21,7 +21,7 @@ // SOFTWARE. import { expect } from 'chai'; -import { setup } from '../../src/v1/setup'; +import { setup } from '../../src/setup'; describe('setup()', () => { afterEach(() => { diff --git a/spec/v1/utils.spec.ts b/spec/v1/utils.spec.ts index 119d203f6..db749ca5d 100644 --- a/spec/v1/utils.spec.ts +++ b/spec/v1/utils.spec.ts @@ -21,7 +21,7 @@ // SOFTWARE. import { expect } from 'chai'; -import { applyChange } from '../../src/v1/utils'; +import { applyChange } from '../../src/utils'; describe('utils', () => { describe('.applyChange(from: any, to: any): any', () => { diff --git a/src/v1/apps.ts b/src/apps.ts similarity index 100% rename from src/v1/apps.ts rename to src/apps.ts diff --git a/src/v1/cloud-functions.ts b/src/cloud-functions.ts similarity index 99% rename from src/v1/cloud-functions.ts rename to src/cloud-functions.ts index b06d63836..85d69924e 100644 --- a/src/v1/cloud-functions.ts +++ b/src/cloud-functions.ts @@ -22,22 +22,22 @@ import { Request, Response } from 'express'; import * as _ from 'lodash'; -import { warn } from '../logger'; import { DEFAULT_FAILURE_POLICY, DeploymentOptions, FailurePolicy, Schedule, } from './function-configuration'; +import { warn } from './logger'; export { Request, Response }; import { convertIfPresent, + convertInvoker, copyIfPresent, Duration, durationFromSeconds, serviceAccountFromShorthand, - convertInvoker, -} from '../common/encoding'; +} from './common/encoding'; /** @hidden */ const WILDCARD_REGEX = new RegExp('{[^/{}]*}', 'g'); diff --git a/src/common/providers/https.ts b/src/common/providers/https.ts index 8b426756f..67c63613f 100644 --- a/src/common/providers/https.ts +++ b/src/common/providers/https.ts @@ -28,7 +28,7 @@ import * as logger from '../../logger'; // TODO(inlined): Decide whether we want to un-version apps or whether we want a // different strategy -import { apps } from '../../v1/apps'; +import { apps } from '../../apps'; /** @hidden */ export interface Request extends express.Request { diff --git a/src/v1/config.ts b/src/config.ts similarity index 100% rename from src/v1/config.ts rename to src/config.ts diff --git a/src/v1/encoder.ts b/src/encoder.ts similarity index 100% rename from src/v1/encoder.ts rename to src/encoder.ts diff --git a/src/v1/function-builder.ts b/src/function-builder.ts similarity index 100% rename from src/v1/function-builder.ts rename to src/function-builder.ts diff --git a/src/v1/function-configuration.ts b/src/function-configuration.ts similarity index 100% rename from src/v1/function-configuration.ts rename to src/function-configuration.ts diff --git a/src/v1/handler-builder.ts b/src/handler-builder.ts similarity index 100% rename from src/v1/handler-builder.ts rename to src/handler-builder.ts diff --git a/src/index.ts b/src/index.ts index fcac62f27..dbb42003c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,6 @@ // The MIT License (MIT) // -// Copyright (c) 2021 Firebase +// Copyright (c) 2017 Firebase // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -20,4 +20,43 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -export * from './v1'; +// Providers: +import * as analytics from './providers/analytics'; +import * as auth from './providers/auth'; +import * as database from './providers/database'; +import * as firestore from './providers/firestore'; +import * as https from './providers/https'; +import * as pubsub from './providers/pubsub'; +import * as remoteConfig from './providers/remoteConfig'; +import * as storage from './providers/storage'; +import * as testLab from './providers/testLab'; + +import * as apps from './apps'; +import { handler } from './handler-builder'; +import * as logger from './logger'; +import { setup } from './setup'; + +const app = apps.apps(); + +export { + analytics, + app, + auth, + database, + firestore, + handler, + https, + pubsub, + remoteConfig, + storage, + testLab, + logger, +}; + +// Exported root types: +export * from './cloud-functions'; +export * from './config'; +export * from './function-builder'; +export * from './function-configuration'; + +setup(); diff --git a/src/v1/providers/analytics.ts b/src/providers/analytics.ts similarity index 100% rename from src/v1/providers/analytics.ts rename to src/providers/analytics.ts diff --git a/src/v1/providers/auth.ts b/src/providers/auth.ts similarity index 100% rename from src/v1/providers/auth.ts rename to src/providers/auth.ts diff --git a/src/v1/providers/database.ts b/src/providers/database.ts similarity index 99% rename from src/v1/providers/database.ts rename to src/providers/database.ts index 372419169..76252d515 100644 --- a/src/v1/providers/database.ts +++ b/src/providers/database.ts @@ -22,7 +22,6 @@ import * as firebase from 'firebase-admin'; import * as _ from 'lodash'; -import { joinPath, normalizePath, pathParts } from '../../utilities/path'; import { apps } from '../apps'; import { Change, @@ -33,6 +32,7 @@ import { } from '../cloud-functions'; import { firebaseConfig } from '../config'; import { DeploymentOptions } from '../function-configuration'; +import { joinPath, normalizePath, pathParts } from '../utilities/path'; import { applyChange } from '../utils'; /** @hidden */ diff --git a/src/v1/providers/firestore.ts b/src/providers/firestore.ts similarity index 99% rename from src/v1/providers/firestore.ts rename to src/providers/firestore.ts index 5554f6e3b..620040d2b 100644 --- a/src/v1/providers/firestore.ts +++ b/src/providers/firestore.ts @@ -24,7 +24,6 @@ import * as firebase from 'firebase-admin'; import * as _ from 'lodash'; import { posix } from 'path'; -import * as logger from '../../logger'; import { apps } from '../apps'; import { Change, @@ -35,6 +34,7 @@ import { } from '../cloud-functions'; import { dateToTimestampProto } from '../encoder'; import { DeploymentOptions } from '../function-configuration'; +import * as logger from '../logger'; /** @hidden */ export const provider = 'google.firestore'; diff --git a/src/v1/providers/https.ts b/src/providers/https.ts similarity index 98% rename from src/v1/providers/https.ts rename to src/providers/https.ts index 659c43586..1b1fc9422 100644 --- a/src/v1/providers/https.ts +++ b/src/providers/https.ts @@ -22,8 +22,8 @@ import * as express from 'express'; -import * as common from '../../common/providers/https'; import { HttpsFunction, optionsToTrigger, Runnable } from '../cloud-functions'; +import * as common from '../common/providers/https'; import { DeploymentOptions } from '../function-configuration'; export type Request = common.Request; diff --git a/src/v1/providers/pubsub.ts b/src/providers/pubsub.ts similarity index 100% rename from src/v1/providers/pubsub.ts rename to src/providers/pubsub.ts diff --git a/src/v1/providers/remoteConfig.ts b/src/providers/remoteConfig.ts similarity index 100% rename from src/v1/providers/remoteConfig.ts rename to src/providers/remoteConfig.ts diff --git a/src/v1/providers/storage.ts b/src/providers/storage.ts similarity index 100% rename from src/v1/providers/storage.ts rename to src/providers/storage.ts diff --git a/src/v1/providers/testLab.ts b/src/providers/testLab.ts similarity index 100% rename from src/v1/providers/testLab.ts rename to src/providers/testLab.ts diff --git a/src/v1/setup.ts b/src/setup.ts similarity index 98% rename from src/v1/setup.ts rename to src/setup.ts index 6b0eb3506..6a9db702d 100644 --- a/src/v1/setup.ts +++ b/src/setup.ts @@ -21,8 +21,8 @@ // SOFTWARE. /** @hidden */ -import { warn } from '../logger'; import { firebaseConfig } from './config'; +import { warn } from './logger'; // Set up for config and vars export function setup() { diff --git a/src/v1/utils.ts b/src/utils.ts similarity index 100% rename from src/v1/utils.ts rename to src/utils.ts diff --git a/src/v1/index.ts b/src/v1/index.ts deleted file mode 100644 index ec83eeab5..000000000 --- a/src/v1/index.ts +++ /dev/null @@ -1,62 +0,0 @@ -// The MIT License (MIT) -// -// Copyright (c) 2017 Firebase -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// Providers: -import * as analytics from './providers/analytics'; -import * as auth from './providers/auth'; -import * as database from './providers/database'; -import * as firestore from './providers/firestore'; -import * as https from './providers/https'; -import * as pubsub from './providers/pubsub'; -import * as remoteConfig from './providers/remoteConfig'; -import * as storage from './providers/storage'; -import * as testLab from './providers/testLab'; - -import * as logger from '../logger'; -import * as apps from './apps'; -import { handler } from './handler-builder'; -import { setup } from './setup'; - -const app = apps.apps(); - -export { - analytics, - app, - auth, - database, - firestore, - handler, - https, - pubsub, - remoteConfig, - storage, - testLab, - logger, -}; - -// Exported root types: -export * from './cloud-functions'; -export * from './config'; -export * from './function-builder'; -export * from './function-configuration'; - -setup(); diff --git a/src/v2/options.ts b/src/v2/options.ts index 41480cfeb..94aaeb749 100644 --- a/src/v2/options.ts +++ b/src/v2/options.ts @@ -21,9 +21,9 @@ // SOFTWARE. import { + convertInvoker, durationFromSeconds, serviceAccountFromShorthand, - convertInvoker, } from '../common/encoding'; import { convertIfPresent, copyIfPresent } from '../common/encoding'; import * as logger from '../logger';