diff --git a/.changeset/config.json b/.changeset/config.json index df5d7815c91..2d778c983e4 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -29,7 +29,6 @@ "@firebase/performance-exp", "@firebase/performance-types-exp", "@firebase/remote-config-exp", - "@firebase/remote-config-types-exp", "@firebase/remote-config-compat", "firebase-exp", "@firebase/app-compat", diff --git a/common/api-review/remote-config-exp.api.md b/common/api-review/remote-config-exp.api.md index 9c10672f92e..ba8402c6857 100644 --- a/common/api-review/remote-config-exp.api.md +++ b/common/api-review/remote-config-exp.api.md @@ -5,9 +5,6 @@ ```ts import { FirebaseApp } from '@firebase/app-exp'; -import { RemoteConfig } from '@firebase/remote-config-types-exp'; -import { LogLevel as RemoteConfigLogLevel } from '@firebase/remote-config-types-exp'; -import { Value as ValueType } from '@firebase/remote-config-types-exp'; // @public export function activate(remoteConfig: RemoteConfig): Promise; @@ -22,7 +19,10 @@ export function fetchAndActivate(remoteConfig: RemoteConfig): Promise; export function fetchConfig(remoteConfig: RemoteConfig): Promise; // @public -export function getAll(remoteConfig: RemoteConfig): Record; +export type FetchStatus = 'no-fetch-yet' | 'success' | 'failure' | 'throttle'; + +// @public +export function getAll(remoteConfig: RemoteConfig): Record; // @public export function getBoolean(remoteConfig: RemoteConfig, key: string): boolean; @@ -37,16 +37,40 @@ export function getRemoteConfig(app: FirebaseApp): RemoteConfig; export function getString(remoteConfig: RemoteConfig, key: string): string; // @public -export function getValue(remoteConfig: RemoteConfig, key: string): ValueType; +export function getValue(remoteConfig: RemoteConfig, key: string): Value; -export { RemoteConfig } +// @public +export type LogLevel = 'debug' | 'error' | 'silent'; -export { RemoteConfigLogLevel } +// @public +export interface RemoteConfig { + defaultConfig: { + [key: string]: string | number | boolean; + }; + fetchTimeMillis: number; + lastFetchStatus: FetchStatus; + settings: Settings; +} // @public -export function setLogLevel(remoteConfig: RemoteConfig, logLevel: RemoteConfigLogLevel): void; +export function setLogLevel(remoteConfig: RemoteConfig, logLevel: LogLevel): void; -export { ValueType } +// @public +export interface Settings { + fetchTimeoutMillis: number; + minimumFetchIntervalMillis: number; +} + +// @public +export interface Value { + asBoolean(): boolean; + asNumber(): number; + asString(): string; + getSource(): ValueSource; +} + +// @public +export type ValueSource = 'static' | 'default' | 'remote'; // (No @packageDocumentation comment for this package) diff --git a/common/api-review/remote-config-types-exp.api.md b/common/api-review/remote-config-types-exp.api.md deleted file mode 100644 index 0b388ecbf15..00000000000 --- a/common/api-review/remote-config-types-exp.api.md +++ /dev/null @@ -1,48 +0,0 @@ -## API Report File for "@firebase/remote-config-types-exp" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts - -// @public -export type FetchStatus = 'no-fetch-yet' | 'success' | 'failure' | 'throttle'; - -// @public -export type LogLevel = 'debug' | 'error' | 'silent'; - -// @public -export interface RemoteConfig { - defaultConfig: { [key: string]: string | number | boolean }; - - fetchTimeMillis: number; - - lastFetchStatus: FetchStatus; - - settings: Settings; -} - -// @public -export interface Settings { - fetchTimeoutMillis: number; - - minimumFetchIntervalMillis: number; -} - -// @public -export interface Value { - asBoolean(): boolean; - - asNumber(): number; - - asString(): string; - - getSource(): ValueSource; -} - -// @public -export type ValueSource = 'static' | 'default' | 'remote'; - - -// (No @packageDocumentation comment for this package) - -``` diff --git a/packages-exp/auth-exp/test/helpers/integration/helpers.ts b/packages-exp/auth-exp/test/helpers/integration/helpers.ts index b5719b36377..69ed7aafdcd 100644 --- a/packages-exp/auth-exp/test/helpers/integration/helpers.ts +++ b/packages-exp/auth-exp/test/helpers/integration/helpers.ts @@ -18,7 +18,7 @@ import { deleteApp, initializeApp } from '@firebase/app-exp'; import { Auth, User } from '@firebase/auth-types-exp'; -import { getAuth } from '../../../'; // Use browser OR node dist entrypoint depending on test env. +import { getAuth } from '../../../'; // Use browser OR node dist entrypoint depending on test env. import { _generateEventId } from '../../../src/core/util/event_id'; // eslint-disable-next-line @typescript-eslint/no-require-imports diff --git a/packages-exp/remote-config-compat/package.json b/packages-exp/remote-config-compat/package.json index 6ac112c3cf1..6984aa95f06 100644 --- a/packages-exp/remote-config-compat/package.json +++ b/packages-exp/remote-config-compat/package.json @@ -29,8 +29,7 @@ "@firebase/app-compat": "0.x" }, "dependencies": { - "@firebase/remote-config-exp": "0.0.900", - "@firebase/remote-config-types-exp": "0.0.900", + "@firebase/remote-config-exp": "0.0.900", "@firebase/util": "0.3.4", "@firebase/logger": "0.2.6", "@firebase/component": "0.2.0", diff --git a/packages-exp/remote-config-compat/src/index.ts b/packages-exp/remote-config-compat/src/index.ts index 6388da23e21..04b968a5625 100644 --- a/packages-exp/remote-config-compat/src/index.ts +++ b/packages-exp/remote-config-compat/src/index.ts @@ -25,7 +25,7 @@ import { RemoteConfigCompatImpl } from './remoteConfig'; import { name as packageName, version } from '../package.json'; import { RemoteConfig as RemoteConfigCompat } from '@firebase/remote-config-types'; -// TODO: move it to the future remote-config-compat-types package +// TODO: move it to remote-config-types package declare module '@firebase/component' { interface NameServiceMapping { 'remote-config-compat': RemoteConfigCompat; diff --git a/packages-exp/remote-config-compat/src/remoteConfig.test.ts b/packages-exp/remote-config-compat/src/remoteConfig.test.ts index a995323f6df..0d85990935e 100644 --- a/packages-exp/remote-config-compat/src/remoteConfig.test.ts +++ b/packages-exp/remote-config-compat/src/remoteConfig.test.ts @@ -21,7 +21,6 @@ import { stub } from 'sinon'; import { RemoteConfigCompatImpl } from './remoteConfig'; import { getFakeApp, getFakeModularRemoteConfig } from '../test/util'; import * as modularApi from '@firebase/remote-config-exp'; -import { Value } from '@firebase/remote-config-types-exp'; describe('Remote Config Compat', () => { let remoteConfig!: RemoteConfigCompatImpl; @@ -134,7 +133,7 @@ describe('Remote Config Compat', () => { }); it('getValue() calls modular getValue()', () => { - const fakeValue = {} as Value; + const fakeValue = {} as modularApi.Value; const modularGetValue = stub(modularApi, 'getValue').callsFake( () => fakeValue ); diff --git a/packages-exp/remote-config-compat/src/remoteConfig.ts b/packages-exp/remote-config-compat/src/remoteConfig.ts index 845dc8904f8..96d08a2501c 100644 --- a/packages-exp/remote-config-compat/src/remoteConfig.ts +++ b/packages-exp/remote-config-compat/src/remoteConfig.ts @@ -16,7 +16,6 @@ */ import { FirebaseApp, _FirebaseService } from '@firebase/app-compat'; -import { RemoteConfig } from '@firebase/remote-config-types-exp'; import { Value as ValueCompat, FetchStatus as FetchSTatusCompat, @@ -25,6 +24,7 @@ import { RemoteConfig as RemoteConfigCompat } from '@firebase/remote-config-types'; import { + RemoteConfig, setLogLevel, activate, ensureInitialized, diff --git a/packages-exp/remote-config-compat/test/util.ts b/packages-exp/remote-config-compat/test/util.ts index ef361db6cc3..c55386724c7 100644 --- a/packages-exp/remote-config-compat/test/util.ts +++ b/packages-exp/remote-config-compat/test/util.ts @@ -16,7 +16,7 @@ */ import { FirebaseApp } from '@firebase/app-compat'; -import { RemoteConfig } from '@firebase/remote-config-types-exp'; +import { RemoteConfig } from '@firebase/remote-config-exp'; export function getFakeApp(): FirebaseApp { return { diff --git a/packages-exp/remote-config-exp/api-extractor.json b/packages-exp/remote-config-exp/api-extractor.json index f291311f711..8a3c6cb251e 100644 --- a/packages-exp/remote-config-exp/api-extractor.json +++ b/packages-exp/remote-config-exp/api-extractor.json @@ -3,6 +3,8 @@ // Point it to your entry point d.ts file. "mainEntryPointFilePath": "/dist/src/index.d.ts", "dtsRollup": { - "enabled": true + "enabled": true, + "untrimmedFilePath": "/dist/.d.ts", + "publicTrimmedFilePath": "/dist/-public.d.ts" } } \ No newline at end of file diff --git a/packages-exp/remote-config-exp/package.json b/packages-exp/remote-config-exp/package.json index 1d0b0737332..2e03a7483ad 100644 --- a/packages-exp/remote-config-exp/package.json +++ b/packages-exp/remote-config-exp/package.json @@ -16,7 +16,7 @@ "lint:fix": "eslint --fix -c .eslintrc.js '**/*.ts' --ignore-path '../../.gitignore'", "build": "rollup -c && yarn api-report", "build:deps": "lerna run --scope @firebase/remote-config-exp --include-dependencies build", - "build:release": "rollup -c rollup.config.release.js && yarn api-report", + "build:release": "rollup -c rollup.config.release.js && yarn api-report && yarn typings:public", "dev": "rollup -c -w", "test": "run-p lint test:browser", "test:ci": "node ../../scripts/run_tests_in_ci.js -s test:browser", @@ -26,7 +26,9 @@ "api-report": "api-extractor run --local --verbose", "predoc": "node ../../scripts/exp/remove-exp.js temp", "doc": "api-documenter markdown --input temp --output docs", - "build:doc": "yarn build && yarn doc" + "build:doc": "yarn build && yarn doc", + "typings:public": "node ../../scripts/exp/use_typings.js ./dist/remote-config-exp-public.d.ts", + "typings:internal": "node ../../scripts/exp/use_typings.js ./dist/src/index.d.ts" }, "peerDependencies": { "@firebase/app-exp": "0.x" @@ -34,7 +36,6 @@ "dependencies": { "@firebase/installations-exp": "0.0.900", "@firebase/logger": "0.2.6", - "@firebase/remote-config-types-exp": "0.0.900", "@firebase/util": "0.3.4", "@firebase/component": "0.2.0", "tslib": "^1.11.1" @@ -54,7 +55,7 @@ "bugs": { "url": "https://github.com/firebase/firebase-js-sdk/issues" }, - "typings": "dist/remote-config-exp.d.ts", + "typings": "dist/src/index.d.ts", "nyc": { "extension": [ ".ts" diff --git a/packages-exp/remote-config-exp/src/api.ts b/packages-exp/remote-config-exp/src/api.ts index 0e735296c72..60283da4e70 100644 --- a/packages-exp/remote-config-exp/src/api.ts +++ b/packages-exp/remote-config-exp/src/api.ts @@ -19,13 +19,13 @@ import { _getProvider, FirebaseApp } from '@firebase/app-exp'; import { LogLevel as RemoteConfigLogLevel, RemoteConfig, - Value as ValueType -} from '@firebase/remote-config-types-exp'; + Value +} from './public_types'; import { RemoteConfigAbortSignal } from './client/remote_config_fetch_client'; import { RC_COMPONENT_NAME } from './constants'; import { ErrorCode, hasErrorCode } from './errors'; import { RemoteConfig as RemoteConfigImpl } from './remote_config'; -import { Value } from './value'; +import { Value as ValueImpl } from './value'; import { LogLevel as FirebaseLogLevel } from '@firebase/logger'; /** @@ -137,7 +137,7 @@ export async function fetchConfig(remoteConfig: RemoteConfig): Promise { * * @public */ -export function getAll(remoteConfig: RemoteConfig): Record { +export function getAll(remoteConfig: RemoteConfig): Record { const rc = remoteConfig as RemoteConfigImpl; return getAllKeys( rc._storageCache.getActiveConfig(), @@ -145,7 +145,7 @@ export function getAll(remoteConfig: RemoteConfig): Record { ).reduce((allConfigs, key) => { allConfigs[key] = getValue(remoteConfig, key); return allConfigs; - }, {} as Record); + }, {} as Record); } /** @@ -204,7 +204,7 @@ export function getString(remoteConfig: RemoteConfig, key: string): string { * * @public */ -export function getValue(remoteConfig: RemoteConfig, key: string): ValueType { +export function getValue(remoteConfig: RemoteConfig, key: string): Value { const rc = remoteConfig as RemoteConfigImpl; if (!rc._isInitializationComplete) { rc._logger.debug( @@ -214,15 +214,15 @@ export function getValue(remoteConfig: RemoteConfig, key: string): ValueType { } const activeConfig = rc._storageCache.getActiveConfig(); if (activeConfig && activeConfig[key] !== undefined) { - return new Value('remote', activeConfig[key]); + return new ValueImpl('remote', activeConfig[key]); } else if (rc.defaultConfig && rc.defaultConfig[key] !== undefined) { - return new Value('default', String(rc.defaultConfig[key])); + return new ValueImpl('default', String(rc.defaultConfig[key])); } rc._logger.debug( `Returning static value for key "${key}".` + ' Define a default or remote value if this is unintentional.' ); - return new Value('static'); + return new ValueImpl('static'); } /** @@ -256,5 +256,3 @@ export function setLogLevel( function getAllKeys(obj1: {} = {}, obj2: {} = {}): string[] { return Object.keys({ ...obj1, ...obj2 }); } - -export { RemoteConfig, ValueType, RemoteConfigLogLevel }; diff --git a/packages-exp/remote-config-exp/src/api2.ts b/packages-exp/remote-config-exp/src/api2.ts index 8a532613186..bbf141e204a 100644 --- a/packages-exp/remote-config-exp/src/api2.ts +++ b/packages-exp/remote-config-exp/src/api2.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { RemoteConfig } from '@firebase/remote-config-types-exp'; +import { RemoteConfig } from './public_types'; import { activate, fetchConfig } from './api'; // This API is put in a separate file, so we can stub fetchConfig and activate in tests. diff --git a/packages-exp/remote-config-exp/src/index.ts b/packages-exp/remote-config-exp/src/index.ts index 2ccde753bdf..665535c968c 100644 --- a/packages-exp/remote-config-exp/src/index.ts +++ b/packages-exp/remote-config-exp/src/index.ts @@ -29,6 +29,7 @@ declare global { export * from './api'; export * from './api2'; +export * from './public_types'; /** register component and version */ registerRemoteConfig(); diff --git a/packages-exp/remote-config-types-exp/index.d.ts b/packages-exp/remote-config-exp/src/public_types.ts similarity index 99% rename from packages-exp/remote-config-types-exp/index.d.ts rename to packages-exp/remote-config-exp/src/public_types.ts index bd40447e08b..5a820debae3 100644 --- a/packages-exp/remote-config-types-exp/index.d.ts +++ b/packages-exp/remote-config-exp/src/public_types.ts @@ -1,6 +1,6 @@ /** * @license - * Copyright 2019 Google LLC + * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/packages-exp/remote-config-exp/src/register.ts b/packages-exp/remote-config-exp/src/register.ts index 257a5d68e55..ab3c7aab6cd 100644 --- a/packages-exp/remote-config-exp/src/register.ts +++ b/packages-exp/remote-config-exp/src/register.ts @@ -25,7 +25,7 @@ import { ComponentContainer } from '@firebase/component'; import { Logger, LogLevel as FirebaseLogLevel } from '@firebase/logger'; -import { RemoteConfig } from '@firebase/remote-config-types-exp'; +import { RemoteConfig } from './public_types'; import { name as packageName, version } from '../package.json'; import { ensureInitialized } from './api'; import { CachingClient } from './client/caching_client'; diff --git a/packages-exp/remote-config-exp/src/remote_config.ts b/packages-exp/remote-config-exp/src/remote_config.ts index 9b6c0ad4087..43319da4888 100644 --- a/packages-exp/remote-config-exp/src/remote_config.ts +++ b/packages-exp/remote-config-exp/src/remote_config.ts @@ -20,7 +20,7 @@ import { RemoteConfig as RemoteConfigType, FetchStatus, Settings -} from '@firebase/remote-config-types-exp'; +} from './public_types'; import { StorageCache } from './storage/storage_cache'; import { RemoteConfigFetchClient } from './client/remote_config_fetch_client'; import { Storage } from './storage/storage'; diff --git a/packages-exp/remote-config-exp/test/remote_config.test.ts b/packages-exp/remote-config-exp/test/remote_config.test.ts index eb144fc38af..cb1f6066562 100644 --- a/packages-exp/remote-config-exp/test/remote_config.test.ts +++ b/packages-exp/remote-config-exp/test/remote_config.test.ts @@ -19,7 +19,7 @@ import { FirebaseApp } from '@firebase/app-exp'; import { RemoteConfig as RemoteConfigType, LogLevel as RemoteConfigLogLevel -} from '@firebase/remote-config-types-exp'; +} from '../src/public_types'; import { expect } from 'chai'; import * as sinon from 'sinon'; import { StorageCache } from '../src/storage/storage_cache'; diff --git a/packages-exp/remote-config-types-exp/README.md b/packages-exp/remote-config-types-exp/README.md deleted file mode 100644 index 8e988de0262..00000000000 --- a/packages-exp/remote-config-types-exp/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# @firebase/remoteconfig-types - -**This package is not intended for direct usage, and should only be used via the officially supported [firebase](https://www.npmjs.com/package/firebase) package.** diff --git a/packages-exp/remote-config-types-exp/api-extractor.json b/packages-exp/remote-config-types-exp/api-extractor.json deleted file mode 100644 index 42f37a88c4b..00000000000 --- a/packages-exp/remote-config-types-exp/api-extractor.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../config/api-extractor.json", - // Point it to your entry point d.ts file. - "mainEntryPointFilePath": "/index.d.ts" -} \ No newline at end of file diff --git a/packages-exp/remote-config-types-exp/package.json b/packages-exp/remote-config-types-exp/package.json deleted file mode 100644 index 260fca6ef38..00000000000 --- a/packages-exp/remote-config-types-exp/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "@firebase/remote-config-types-exp", - "version": "0.0.900", - "private": true, - "description": "@firebase/remote-config Types", - "author": "Firebase (https://firebase.google.com/)", - "license": "Apache-2.0", - "scripts": { - "test": "tsc", - "test:ci": "node ../../scripts/run_tests_in_ci.js", - "api-report": "api-extractor run --local --verbose", - "predoc": "node ../../scripts/exp/remove-exp.js temp", - "doc": "api-documenter markdown --input temp --output docs", - "build:doc": "yarn api-report && yarn doc" - }, - "files": [ - "index.d.ts" - ], - "repository": { - "directory": "packages/remote-config-types", - "type": "git", - "url": "https://github.com/firebase/firebase-js-sdk.git" - }, - "bugs": { - "url": "https://github.com/firebase/firebase-js-sdk/issues" - }, - "devDependencies": { - "typescript": "4.0.5" - } -} diff --git a/packages-exp/remote-config-types-exp/tsconfig.json b/packages-exp/remote-config-types-exp/tsconfig.json deleted file mode 100644 index 9a785433d90..00000000000 --- a/packages-exp/remote-config-types-exp/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../config/tsconfig.base.json", - "compilerOptions": { - "noEmit": true - }, - "exclude": [ - "dist/**/*" - ] -}