From 0c39d07fe3a7720e11ac72cd2adf803b0fd57633 Mon Sep 17 00:00:00 2001 From: Christopher Radek Date: Fri, 18 Feb 2022 15:27:24 -0800 Subject: [PATCH] add API review file and build step --- .gitignore | 1 + Makefile | 4 + api-extractor.json | 29 ++ api/analytics-next.api.md | 679 ++++++++++++++++++++++++++++++++++++++ package.json | 2 + yarn.lock | 150 ++++++++- 6 files changed, 855 insertions(+), 10 deletions(-) create mode 100644 api-extractor.json create mode 100644 api/analytics-next.api.md diff --git a/.gitignore b/.gitignore index e0542e1ed..ea5591c98 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ stats.json /coverage e2e-tests/data/requests/*.json +/temp/ \ No newline at end of file diff --git a/Makefile b/Makefile index 8521cfa27..11a81ed6c 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,10 @@ build: ## Builds typescript files and UMD library yarn clean && yarn build-prep && yarn concurrently "yarn umd" "yarn pkg" .PHONY: build +build-api: build ## Updates the api/analytics-next.api.md API review + yarn generate-api +.PHONY: build-api + build-browser: @rm -rf dist/umd @yarn umd --no-stats diff --git a/api-extractor.json b/api-extractor.json new file mode 100644 index 000000000..7da7c6b14 --- /dev/null +++ b/api-extractor.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "mainEntryPointFilePath": "dist/pkg/index.d.ts", + "docModel": { + "enabled": false + }, + "apiReport": { + "enabled": true, + "reportFolder": "./api" + }, + "dtsRollup": { + "enabled": false + }, + "messages": { + "tsdocMessageReporting": { + "default": { + "logLevel": "none" + } + }, + "extractorMessageReporting": { + "ae-missing-release-tag": { + "logLevel": "none" + }, + "ae-unresolved-link": { + "logLevel": "none" + } + } + } +} diff --git a/api/analytics-next.api.md b/api/analytics-next.api.md new file mode 100644 index 000000000..36c3b722a --- /dev/null +++ b/api/analytics-next.api.md @@ -0,0 +1,679 @@ +## API Report File for "@segment/analytics-next" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { Alias } from '@segment/facade' +import { Facade } from '@segment/facade' +import { Group as Group_2 } from '@segment/facade' +import { Identify } from '@segment/facade' +import { Page } from '@segment/facade' +import { Rule } from '@segment/tsub/dist/store' +import { Track } from '@segment/facade' + +// @public (undocumented) +export interface AbstractContext { + // (undocumented) + cancel: () => never + // Warning: (ae-forgotten-export) The symbol "LogLevel" needs to be exported by the entry point index.d.ts + // + // (undocumented) + log: (level: LogLevel, message: string, extras?: object) => void + // Warning: (ae-forgotten-export) The symbol "Stats" needs to be exported by the entry point index.d.ts + // + // (undocumented) + stats: Stats +} + +// Warning: (ae-forgotten-export) The symbol "Emitter" needs to be exported by the entry point index.d.ts +// +// @public (undocumented) +export class Analytics extends Emitter { + constructor( + settings: AnalyticsSettings, + options?: InitOptions, + queue?: EventQueue, + user?: User, + group?: Group + ) + // (undocumented) + add(): void + // Warning: (ae-forgotten-export) The symbol "DestinationMiddlewareFunction" needs to be exported by the entry point index.d.ts + // + // (undocumented) + addDestinationMiddleware( + integrationName: string, + ...middlewares: DestinationMiddlewareFunction[] + ): Promise + // (undocumented) + addEventListener(): void + // (undocumented) + addIntegration(): void + // (undocumented) + addIntegrationMiddleware(): void + // Warning: (ae-forgotten-export) The symbol "MiddlewareFunction" needs to be exported by the entry point index.d.ts + // + // (undocumented) + addSourceMiddleware(fn: MiddlewareFunction): Promise + // Warning: (ae-forgotten-export) The symbol "AliasParams" needs to be exported by the entry point index.d.ts + // + // (undocumented) + alias(...args: AliasParams): Promise + // (undocumented) + debug(toggle: boolean): Analytics + // (undocumented) + deregister(...plugins: string[]): Promise + // (undocumented) + get failedInitializations(): string[] + // (undocumented) + group(...args: UserParams): Promise | Group + // (undocumented) + hasListeners(): void + // Warning: (ae-forgotten-export) The symbol "UserParams" needs to be exported by the entry point index.d.ts + // + // (undocumented) + identify(...args: UserParams): Promise + // (undocumented) + init: ( + settings?: AnalyticsSettings | undefined, + options?: InitOptions | undefined + ) => Promise + // (undocumented) + initialize( + settings?: AnalyticsSettings, + options?: InitOptions + ): Promise + // (undocumented) + initialized: boolean + // Warning: (ae-forgotten-export) The symbol "LegacyIntegration" needs to be exported by the entry point index.d.ts + // + // (undocumented) + get Integrations(): Record + // (undocumented) + integrations: Integrations + // (undocumented) + listeners(): void + // (undocumented) + log(): void + // (undocumented) + noConflict(): Analytics + // (undocumented) + normalize(msg: SegmentEvent): SegmentEvent + // (undocumented) + options: InitOptions + // Warning: (ae-forgotten-export) The symbol "PageParams" needs to be exported by the entry point index.d.ts + // + // (undocumented) + page(...args: PageParams): Promise + // (undocumented) + pageview(url: string): Promise + // (undocumented) + get plugins(): any + // (undocumented) + push(args: any[]): void + // (undocumented) + queryString(query: string): Promise + // Warning: (ae-forgotten-export) The symbol "EventQueue" needs to be exported by the entry point index.d.ts + // + // (undocumented) + queue: EventQueue + // (undocumented) + ready(callback?: Function): Promise + // (undocumented) + register(...plugins: Plugin_2[]): Promise + // (undocumented) + removeAllListeners(): void + // (undocumented) + removeEventListener(): void + // (undocumented) + removeListener(): void + // (undocumented) + reset(): void + // (undocumented) + screen(...args: PageParams): Promise + // (undocumented) + setAnonymousId(id?: string): ID + // (undocumented) + protected settings: AnalyticsSettings + // (undocumented) + timeout(timeout: number): void + // Warning: (ae-forgotten-export) The symbol "EventParams" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "DispatchedEvent" needs to be exported by the entry point index.d.ts + // + // (undocumented) + track(...args: EventParams): Promise + // Warning: (ae-forgotten-export) The symbol "LinkArgs" needs to be exported by the entry point index.d.ts + // + // (undocumented) + trackClick(...args: LinkArgs): Promise + // (undocumented) + trackForm(...args: FormArgs): Promise + // (undocumented) + trackLink(...args: LinkArgs): Promise + // Warning: (ae-forgotten-export) The symbol "FormArgs" needs to be exported by the entry point index.d.ts + // + // (undocumented) + trackSubmit(...args: FormArgs): Promise + // @deprecated (undocumented) + use(legacyPluginFactory: (analytics: Analytics) => void): Analytics + // (undocumented) + user: () => User + // (undocumented) + get VERSION(): string +} + +// @public (undocumented) +export class AnalyticsBrowser { + // (undocumented) + static load( + settings: AnalyticsSettings, + options?: InitOptions + ): Promise<[Analytics, Context]> + // (undocumented) + static standalone(writeKey: string, options?: InitOptions): Promise +} + +// @public (undocumented) +export class AnalyticsNode { + // (undocumented) + static load(settings: { writeKey: string }): Promise<[Analytics, Context]> +} + +// @public (undocumented) +export interface AnalyticsSettings { + // (undocumented) + [key: string]: unknown + // (undocumented) + plugins?: Plugin_2[] + // (undocumented) + timeout?: number + // (undocumented) + writeKey: string +} + +// @public (undocumented) +export class Context implements AbstractContext { + constructor(event: SegmentEvent, id?: string) + // (undocumented) + get attempts(): number + set attempts(attempts: number) + // (undocumented) + cancel: (error?: Error | ContextCancelation | undefined) => never + // (undocumented) + get event(): SegmentEvent + set event(evt: SegmentEvent) + // (undocumented) + flush(): void + // (undocumented) + get id(): string + // Warning: (ae-forgotten-export) The symbol "MetricsOptions" needs to be exported by the entry point index.d.ts + // + // (undocumented) + static initMetrics(options?: MetricsOptions): void + // (undocumented) + isSame(other: Context): boolean + // (undocumented) + log(level: LogLevel, message: string, extras?: object): void + // Warning: (ae-forgotten-export) The symbol "Logger" needs to be exported by the entry point index.d.ts + // + // (undocumented) + logger: Logger + // Warning: (ae-forgotten-export) The symbol "LogMessage" needs to be exported by the entry point index.d.ts + // + // (undocumented) + logs(): LogMessage[] + // (undocumented) + stats: Stats + // (undocumented) + static system(): Context + // (undocumented) + toJSON(): SerializedContext + // (undocumented) + updateEvent(path: string, val: unknown): SegmentEvent +} + +// @public (undocumented) +export class ContextCancelation { + // Warning: (ae-forgotten-export) The symbol "CancelationOptions" needs to be exported by the entry point index.d.ts + constructor(options: CancelationOptions) + // (undocumented) + reason?: string + // (undocumented) + retry: boolean + // (undocumented) + type: string +} + +// Warning: (ae-forgotten-export) The symbol "Store" needs to be exported by the entry point index.d.ts +// +// @public (undocumented) +export class Cookie extends Store { + constructor(options?: CookieOptions) + // (undocumented) + static available(): boolean + // (undocumented) + static defaults: CookieOptions + // (undocumented) + get(key: string): T | null + // (undocumented) + remove(key: string): void + // (undocumented) + set(key: string, value: T): T | null +} + +// @public (undocumented) +export interface CookieOptions { + // (undocumented) + domain?: string + // (undocumented) + maxage?: number + // (undocumented) + path?: string + // (undocumented) + sameSite?: string + // (undocumented) + secure?: boolean +} + +// @public (undocumented) +export class EventFactory { + constructor(user: User) + // (undocumented) + alias( + to: string, + from: string | null, + options?: Options, + globalIntegrations?: Integrations + ): SegmentEvent + // (undocumented) + group( + groupId: ID, + traits?: SegmentEvent['traits'], + options?: Options, + globalIntegrations?: Integrations + ): SegmentEvent + // (undocumented) + identify( + userId: ID, + traits?: SegmentEvent['traits'], + options?: Options, + globalIntegrations?: Integrations + ): SegmentEvent + // (undocumented) + normalize(event: SegmentEvent): SegmentEvent + // (undocumented) + page( + category: string | null, + page: string | null, + properties?: object, + options?: Options, + globalIntegrations?: Integrations + ): SegmentEvent + // (undocumented) + screen( + category: string | null, + screen: string | null, + properties?: object, + options?: Options, + globalIntegrations?: Integrations + ): SegmentEvent + // (undocumented) + track( + event: string, + properties?: SegmentEvent['properties'], + options?: Options, + globalIntegrations?: Integrations + ): SegmentEvent + // (undocumented) + user: User +} + +// @public (undocumented) +export class Group extends User { + constructor(options?: UserOptions, cookie?: CookieOptions) + // (undocumented) + anonymousId: (_id?: ID) => ID +} + +// @public (undocumented) +export type ID = string | null | undefined + +// @public (undocumented) +export interface InitOptions { + // (undocumented) + cookie?: CookieOptions + // (undocumented) + group?: UserOptions + // (undocumented) + initialPageview?: boolean + // (undocumented) + integrations?: Integrations + // (undocumented) + plan?: Plan + // (undocumented) + retryQueue?: boolean + // (undocumented) + user?: UserOptions +} + +// @public (undocumented) +export type Integrations = { + All?: boolean + [integration: string]: boolean | JSONObject | undefined +} + +// @public (undocumented) +export type JSONArray = Array + +// @public (undocumented) +export type JSONObject = { + [member: string]: JSONValue +} + +// @public (undocumented) +export type JSONPrimitive = string | number | boolean | null + +// @public (undocumented) +export type JSONValue = JSONPrimitive | JSONObject | JSONArray + +// @public (undocumented) +export interface LegacyIntegrationConfiguration { + // (undocumented) + [key: string]: any + // (undocumented) + bundlingStatus?: string + // (undocumented) + retryQueue?: boolean + // (undocumented) + type?: string + // (undocumented) + versionSettings?: { + version?: string + override?: string + componentTypes?: Array<'browser' | 'android' | 'ios' | 'server'> + } +} + +// @public (undocumented) +export interface LegacySettings { + // (undocumented) + enabledMiddleware?: Record + // (undocumented) + integrations: { + [name: string]: LegacyIntegrationConfiguration + } + // (undocumented) + legacyVideoPluginsEnabled?: boolean + // (undocumented) + metrics?: MetricsOptions + // (undocumented) + middlewareSettings?: { + routingRules: RoutingRule[] + } + // (undocumented) + plan?: Plan + // Warning: (ae-forgotten-export) The symbol "RemotePlugin" needs to be exported by the entry point index.d.ts + // + // (undocumented) + remotePlugins?: RemotePlugin[] +} + +// @public (undocumented) +export function loadLegacySettings(writeKey: string): Promise + +// @public (undocumented) +export class LocalStorage extends Store { + // (undocumented) + static available(): boolean + // (undocumented) + get(key: string): T | null + // (undocumented) + remove(key: string): void + // (undocumented) + set(key: string, value: T): T | null +} + +// @public (undocumented) +export type Options = { + integrations?: Integrations + anonymousId?: ID + timestamp?: Date | string + context?: AnalyticsContext + traits?: object + [key: string]: any +} + +// @public +export interface Plan { + // (undocumented) + track?: TrackPlan +} + +// @public (undocumented) +export interface PlanEvent { + enabled: boolean + integrations: { + [key: string]: boolean + } +} + +// @public (undocumented) +interface Plugin_2 { + // (undocumented) + alias?: (ctx: Context) => Promise | Context + // (undocumented) + group?: (ctx: Context) => Promise | Context + // (undocumented) + identify?: (ctx: Context) => Promise | Context + // (undocumented) + isLoaded: () => boolean + // Warning: (ae-forgotten-export) The symbol "PluginConfig" needs to be exported by the entry point index.d.ts + // + // (undocumented) + load: ( + ctx: Context, + instance: Analytics, + config?: PluginConfig + ) => Promise + // (undocumented) + name: string + // (undocumented) + page?: (ctx: Context) => Promise | Context + // (undocumented) + ready?: () => Promise + // (undocumented) + screen?: (ctx: Context) => Promise | Context + // (undocumented) + track?: (ctx: Context) => Promise | Context + // (undocumented) + type: 'before' | 'after' | 'destination' | 'enrichment' | 'utility' + // (undocumented) + unload?: (ctx: Context, instance: Analytics) => Promise | unknown + // (undocumented) + version: string +} +export { Plugin_2 as Plugin } + +// @public (undocumented) +export interface ReservedTraits { + // (undocumented) + address: Partial<{ + city: string + country: string + postalCode: string + state: string + street: string + }> + // (undocumented) + age: number + // (undocumented) + avatar: string + // (undocumented) + birthday: Date + // (undocumented) + company: Partial<{ + name: string + id: string | number + industry: string + employee_count: number + }> + // (undocumented) + createdAt: Date + // (undocumented) + description: string + // (undocumented) + email: string + // (undocumented) + firstName: string + // (undocumented) + gender: string + // (undocumented) + id: string + // (undocumented) + lastName: string + // (undocumented) + name: string + // (undocumented) + phone: string + // (undocumented) + plan: string + // (undocumented) + title: string + // (undocumented) + username: string + // (undocumented) + website: string +} + +// @public (undocumented) +export interface SegmentEvent { + // (undocumented) + anonymousId?: ID + // (undocumented) + category?: string + // (undocumented) + context?: AnalyticsContext | Options + // (undocumented) + event?: string + // (undocumented) + groupId?: ID + // (undocumented) + integrations?: Integrations + // (undocumented) + messageId?: string + // (undocumented) + _metadata?: { + failedInitializations?: unknown[] + bundled?: string[] + unbundled?: string[] + nodeVersion?: string + bundledConfigIds?: string[] + unbundledConfigIds?: string[] + bundledIds?: string[] + } + // (undocumented) + name?: string + // (undocumented) + options?: Options + // (undocumented) + previousId?: ID + // (undocumented) + properties?: object & { + [k: string]: JSONValue + } + // (undocumented) + sentAt?: Date + // (undocumented) + timestamp?: Date | string + // (undocumented) + traits?: object & { + [k: string]: JSONValue + } + // (undocumented) + type: 'track' | 'page' | 'identify' | 'group' | 'alias' | 'screen' + // (undocumented) + userId?: ID + // (undocumented) + writeKey?: string +} + +// @public (undocumented) +export interface SerializedContext { + // (undocumented) + event: SegmentEvent + // (undocumented) + id: string + // (undocumented) + logs: LogMessage[] + // Warning: (ae-forgotten-export) The symbol "Metric" needs to be exported by the entry point index.d.ts + // + // (undocumented) + metrics: Metric[] +} + +// @public (undocumented) +export interface TrackPlan { + // (undocumented) + __default?: PlanEvent + // (undocumented) + [key: string]: PlanEvent | undefined +} + +// @public (undocumented) +export class User { + constructor(options?: UserOptions, cookieOptions?: CookieOptions) + // (undocumented) + anonymousId: (id?: ID) => ID + // (undocumented) + static defaults: { + persist: boolean + cookie: { + key: string + oldKey: string + } + localStorage: { + key: string + } + } + // (undocumented) + id: (id?: ID) => ID + // (undocumented) + identify(id?: ID, traits?: object): void + // (undocumented) + load(): User + // (undocumented) + logout(): void + // (undocumented) + options: UserOptions + // (undocumented) + reset(): void + // (undocumented) + save(): boolean + // (undocumented) + traits: (traits?: object | null | undefined) => SegmentEvent['traits'] +} + +// @public (undocumented) +export interface UserOptions { + // (undocumented) + cookie?: { + key?: string + oldKey?: string + } + // (undocumented) + localStorage?: { + key: string + } + // (undocumented) + localStorageFallbackDisabled?: boolean + // (undocumented) + persist?: boolean +} + +// Warnings were encountered during analysis: +// +// dist/pkg/browser.d.ts:23:9 - (ae-forgotten-export) The symbol "RoutingRule" needs to be exported by the entry point index.d.ts +// dist/pkg/core/events/interfaces.d.ts:17:5 - (ae-forgotten-export) The symbol "AnalyticsContext" needs to be exported by the entry point index.d.ts + +// (No @packageDocumentation comment for this package) +``` diff --git a/package.json b/package.json index 1f9ec75e7..3895ca1b2 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ ], "sideEffects": false, "scripts": { + "generate-api": "api-extractor run --local", "build-prep": "echo \"// This file is generated.\\nexport const version = '$npm_package_version'\" > src/generated/version.ts", "version": "npm run build-prep && git add src/generated/version.ts", "umd": "webpack", @@ -54,6 +55,7 @@ }, "dependencies": { "@lukeed/uuid": "^2.0.0", + "@microsoft/api-extractor": "^7.19.4", "@segment/analytics.js-video-plugins": "^0.2.1", "@segment/facade": "3.4.8", "@segment/tsub": "^0.1.10", diff --git a/yarn.lock b/yarn.lock index d2fc24e96..bd0fc597a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -571,6 +571,48 @@ dependencies: "@lukeed/csprng" "^1.0.0" +"@microsoft/api-extractor-model@7.15.3": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.15.3.tgz#cf76deeeb2733d974da678f530c2dbaceb18a065" + integrity sha512-NkSjolmSI7NGvbdz0Y7kjQfdpD+j9E5CwXTxEyjDqxd10MI7GXV8DnAsQ57GFJcgHKgTjf2aUnYfMJ9w3aMicw== + dependencies: + "@microsoft/tsdoc" "0.13.2" + "@microsoft/tsdoc-config" "~0.15.2" + "@rushstack/node-core-library" "3.45.0" + +"@microsoft/api-extractor@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.19.4.tgz#95d43d410a1dfb28a02062c4693bcb9c52afe9eb" + integrity sha512-iehC6YA3DGJvxTUaK7HUtQmP6hAQU07+Q/OR8TG4dVR6KpqCi9UPEVk8AgCvQkiK+6FbVEFQTx0qLuYk4EeuHg== + dependencies: + "@microsoft/api-extractor-model" "7.15.3" + "@microsoft/tsdoc" "0.13.2" + "@microsoft/tsdoc-config" "~0.15.2" + "@rushstack/node-core-library" "3.45.0" + "@rushstack/rig-package" "0.3.7" + "@rushstack/ts-command-line" "4.10.6" + colors "~1.2.1" + lodash "~4.17.15" + resolve "~1.17.0" + semver "~7.3.0" + source-map "~0.6.1" + typescript "~4.5.2" + +"@microsoft/tsdoc-config@~0.15.2": + version "0.15.2" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.15.2.tgz#eb353c93f3b62ab74bdc9ab6f4a82bcf80140f14" + integrity sha512-mK19b2wJHSdNf8znXSMYVShAHktVr/ib0Ck2FA3lsVBSEhSI/TfXT7DJQkAYgcztTuwazGcg58ZjYdk0hTCVrA== + dependencies: + "@microsoft/tsdoc" "0.13.2" + ajv "~6.12.6" + jju "~1.4.0" + resolve "~1.19.0" + +"@microsoft/tsdoc@0.13.2": + version "0.13.2" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.13.2.tgz#3b0efb6d3903bd49edb073696f60e90df08efb26" + integrity sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -597,6 +639,39 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71" integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA== +"@rushstack/node-core-library@3.45.0": + version "3.45.0" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.45.0.tgz#8c86b39271b6d84260b1e70db87e1e265b54f620" + integrity sha512-YMuIJl19vQT1+g/OU9mLY6T5ZBT9uDlmeXExDQACpGuxTJW+LHNbk/lRX+eCApQI2eLBlaL4U68r3kZlqwbdmw== + dependencies: + "@types/node" "12.20.24" + colors "~1.2.1" + fs-extra "~7.0.1" + import-lazy "~4.0.0" + jju "~1.4.0" + resolve "~1.17.0" + semver "~7.3.0" + timsort "~0.3.0" + z-schema "~5.0.2" + +"@rushstack/rig-package@0.3.7": + version "0.3.7" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.7.tgz#3fa564b1d129d28689dd4309502792b15e84bf81" + integrity sha512-pzMsTSeTC8IiZ6EJLr53gGMvhT4oLWH+hxD7907cHyWuIUlEXFtu/2pK25vUQT13nKp5DJCWxXyYoGRk/h6rtA== + dependencies: + resolve "~1.17.0" + strip-json-comments "~3.1.1" + +"@rushstack/ts-command-line@4.10.6": + version "4.10.6" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.10.6.tgz#5669e481e4339ceb4e1428183eb0937d3bc3841b" + integrity sha512-Y3GkUag39sTIlukDg9mUp8MCHrrlJ27POrBNRQGc/uF+VVgX8M7zMzHch5zP6O1QVquWgD7Engdpn2piPYaS/g== + dependencies: + "@types/argparse" "1.0.38" + argparse "~1.0.9" + colors "~1.2.1" + string-argv "~0.3.1" + "@samverschueren/stream-to-observable@^0.3.0", "@samverschueren/stream-to-observable@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" @@ -1446,6 +1521,11 @@ dependencies: "@types/glob" "*" +"@types/argparse@1.0.38": + version "1.0.38" + resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" + integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== + "@types/atob@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@types/atob/-/atob-2.1.2.tgz#157eb0cc46264a8c55f2273a836c7a1a644fb820" @@ -1754,6 +1834,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.3.tgz#cc4f979548ca4d8e7b90bc0180052ab99ee64224" integrity sha512-pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww== +"@types/node@12.20.24": + version "12.20.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" + integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== + "@types/node@^12.0.12": version "12.20.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.4.tgz#73687043dd00fcb6962c60fbf499553a24d6bdf2" @@ -2483,7 +2568,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@6.12.6, ajv@^6.12.5: +ajv@6.12.6, ajv@^6.12.5, ajv@~6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2686,7 +2771,7 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^1.0.7: +argparse@^1.0.7, argparse@~1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -3925,6 +4010,11 @@ colorette@^1.2.1, colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colors@~1.2.1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" + integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3942,7 +4032,7 @@ command-line-args@^5.1.1: lodash.camelcase "^4.3.0" typical "^4.0.0" -commander@^2.11.0, commander@^2.20.0, commander@^2.8.1: +commander@^2.11.0, commander@^2.20.0, commander@^2.7.1, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -5981,6 +6071,15 @@ fs-extra@^9.0.0, fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^1.0.0" +fs-extra@~7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -6717,6 +6816,11 @@ import-lazy@^3.1.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== +import-lazy@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -7788,6 +7892,11 @@ jest@^26.6.3: import-local "^3.0.2" jest-cli "^26.6.3" +jju@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= + jmespath@0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" @@ -8363,7 +8472,7 @@ lodash.zip@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= -lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@~4.17.10: +lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@~4.17.10, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -10761,7 +10870,7 @@ resolve@^1.10.0, resolve@^1.20.0, resolve@^1.9.0: is-core-module "^2.2.0" path-parse "^1.0.6" -resolve@^1.18.1: +resolve@^1.18.1, resolve@~1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== @@ -10769,7 +10878,7 @@ resolve@^1.18.1: is-core-module "^2.1.0" path-parse "^1.0.6" -resolve@^1.3.2: +resolve@^1.3.2, resolve@~1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -11065,7 +11174,7 @@ semver-truncate@^1.1.2: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.3.5, semver@^7.3.4, semver@^7.3.5: +semver@7.3.5, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -11620,7 +11729,7 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -string-argv@0.3.1, string-argv@^0.3.1: +string-argv@0.3.1, string-argv@^0.3.1, string-argv@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== @@ -11776,7 +11885,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.0.1: +strip-json-comments@^3.0.1, strip-json-comments@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -12089,7 +12198,7 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -timsort@^0.3.0: +timsort@^0.3.0, timsort@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= @@ -12395,6 +12504,11 @@ typescript@^3.8.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +typescript@~4.5.2: + version "4.5.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== + typical@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" @@ -12701,6 +12815,11 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -13314,6 +13433,17 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +z-schema@~5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-5.0.2.tgz#f410394b2c9fcb9edaf6a7511491c0bb4e89a504" + integrity sha512-40TH47ukMHq5HrzkeVE40Ad7eIDKaRV2b+Qpi2prLc9X9eFJFzV7tMe5aH12e6avaSS/u5l653EQOv+J9PirPw== + dependencies: + lodash.get "^4.4.2" + lodash.isequal "^4.5.0" + validator "^13.7.0" + optionalDependencies: + commander "^2.7.1" + zip-stream@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.0.4.tgz#3a8f100b73afaa7d1ae9338d910b321dec77ff3a"