diff --git a/package.json b/package.json
index 1759fa5be..b7754f378 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,7 @@
"prerelease": "yarn run clean && yarn run setup && yarn run pack && yarn run check",
"release": "yarn prerelease && beemo run-script lerna-release",
"version": "yarn install && git add yarn.lock",
- "pack": "NODE_ENV=production yarn run packemon build --addEngines --addExports --declaration=standard",
+ "pack": "NODE_ENV=production yarn run packemon build --addEngines --addExports --declaration",
"packemon": "node ./packages/packemon/lib/bin.js"
},
"workspaces": [
diff --git a/packages/packemon/CHANGELOG.md b/packages/packemon/CHANGELOG.md
index 78da57b58..a210996ff 100644
--- a/packages/packemon/CHANGELOG.md
+++ b/packages/packemon/CHANGELOG.md
@@ -20,21 +20,16 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
**Note:** Version bump only for package packemon
+## 1.14.1 - 2022-03-19
+#### 📦 Dependencies
-
-## 1.14.1 (2022-03-19)
-
-* deps: Update internals. ([3aba5ac](https://github.com/milesj/packemon/commit/3aba5ac))
-* deps(beemo): Update to v2 latest. ([d6aeac1](https://github.com/milesj/packemon/commit/d6aeac1))
-* deps(magic-string): Update to v0.26. ([dde44a1](https://github.com/milesj/packemon/commit/dde44a1))
-* deps(npm-packlist): Update to v4. ([263013e](https://github.com/milesj/packemon/commit/263013e))
-* deps(rollup-plugin-visualizer): Update to v5.6. ([0ed1404](https://github.com/milesj/packemon/commit/0ed1404))
-* deps(rollup): Update to v2.70. (#103) ([a1af6ef](https://github.com/milesj/packemon/commit/a1af6ef)), closes [#103](https://github.com/milesj/packemon/issues/103)
-* tests: Fix failing visualizer test. ([828ea38](https://github.com/milesj/packemon/commit/828ea38))
-
-
-
+- Update internals. ([3aba5ac](https://github.com/milesj/packemon/commit/3aba5ac))
+- **[beemo]** Update to v2 latest. ([d6aeac1](https://github.com/milesj/packemon/commit/d6aeac1))
+- **[magic-string]** Update to v0.26. ([dde44a1](https://github.com/milesj/packemon/commit/dde44a1))
+- **[npm-packlist]** Update to v4. ([263013e](https://github.com/milesj/packemon/commit/263013e))
+- **[rollup-plugin-visualizer]** Update to v5.6. ([0ed1404](https://github.com/milesj/packemon/commit/0ed1404))
+- **[rollup]** Update to v2.70. (#103) ([a1af6ef](https://github.com/milesj/packemon/commit/a1af6ef)), closes [#103](https://github.com/milesj/packemon/issues/103)
## 1.14.0 - 2022-02-23
diff --git a/packages/packemon/package.json b/packages/packemon/package.json
index 302df76bc..7432bf44f 100644
--- a/packages/packemon/package.json
+++ b/packages/packemon/package.json
@@ -64,7 +64,6 @@
"@boost/event": "^3.0.1",
"@boost/pipeline": "^3.2.2",
"@boost/terminal": "^3.0.0",
- "@microsoft/api-extractor": "^7.19.5",
"@rollup/plugin-babel": "^5.3.1",
"@rollup/plugin-commonjs": "^21.0.2",
"@rollup/plugin-json": "^4.1.0",
diff --git a/packages/packemon/src/Packemon.ts b/packages/packemon/src/Packemon.ts
index 0b3fc409c..79a7473d2 100644
--- a/packages/packemon/src/Packemon.ts
+++ b/packages/packemon/src/Packemon.ts
@@ -244,7 +244,7 @@ export class Packemon {
*/
generateArtifacts(
packages: Package[],
- { declaration = 'none', filterFormats, filterPlatforms }: BuildOptions = {},
+ { declaration, filterFormats, filterPlatforms }: BuildOptions = {},
): Package[] {
this.debug('Generating artifacts for packages');
@@ -294,10 +294,9 @@ export class Packemon {
});
});
- if (declaration !== 'none') {
+ if (declaration) {
const artifact = new TypesArtifact(pkg, Object.values(typesBuilds));
artifact.api = apiType;
- artifact.declarationType = declaration;
pkg.addArtifact(artifact);
}
diff --git a/packages/packemon/src/Project.ts b/packages/packemon/src/Project.ts
index db64d5934..74c70d615 100644
--- a/packages/packemon/src/Project.ts
+++ b/packages/packemon/src/Project.ts
@@ -5,7 +5,6 @@ import semver from 'semver';
import { Memoize, Path, Project as BaseProject, VirtualPath } from '@boost/common';
import { getVersion } from './helpers/getVersion';
import { Package } from './Package';
-import { DeclarationType } from './types';
export class Project extends BaseProject {
workspaces: string[] = [];
@@ -39,11 +38,7 @@ export class Project extends BaseProject {
return this.workspaces.length > 0;
}
- async generateDeclarations(
- declarationType: DeclarationType,
- pkgPath?: Path,
- declarationConfig?: string,
- ): Promise {
+ async generateDeclarations(pkgPath?: Path, declarationConfig?: string): Promise {
if (this.buildPromise) {
return this.buildPromise;
}
@@ -55,14 +50,6 @@ export class Project extends BaseProject {
if (this.isWorkspacesEnabled()) {
args.push('--build');
- // Since we collapse all DTS into a single file,
- // we need to force build to overwrite the types,
- // since they're not what the TS build expects.
- if (declarationType) {
- // TODO: This seems to always be required??
- args.push('--force');
- }
-
// Only build the specific project when applicable
if (pkgPath) {
let projectPath = this.root.relativeTo(pkgPath);
diff --git a/packages/packemon/src/TypesArtifact.ts b/packages/packemon/src/TypesArtifact.ts
index 57a816f5a..a5fb5f222 100644
--- a/packages/packemon/src/TypesArtifact.ts
+++ b/packages/packemon/src/TypesArtifact.ts
@@ -1,76 +1,20 @@
-import glob from 'fast-glob';
-import fs from 'fs-extra';
-import { Path, VirtualPath } from '@boost/common';
+import { VirtualPath } from '@boost/common';
import { createDebugger, Debugger } from '@boost/debug';
-import { Extractor, ExtractorConfig } from '@microsoft/api-extractor';
import { Artifact } from './Artifact';
import { removeSourcePath } from './helpers/removeSourcePath';
-import {
- APIExtractorStructure,
- BuildOptions,
- DeclarationType,
- PackageExports,
- TSConfigStructure,
- TypesBuild,
-} from './types';
-import { apiExtractorConfig } from './typescript/apiExtractorConfig';
+import { BuildOptions, PackageExports, TSConfigStructure, TypesBuild } from './types';
export class TypesArtifact extends Artifact {
- declarationType: DeclarationType = 'standard';
-
protected debug!: Debugger;
override startup() {
this.debug = createDebugger(['packemon', 'types', this.package.getSlug(), this.getLabel()]);
}
- override async cleanup(): Promise {
- // API extractor config files
- await this.removeFiles(
- this.builds.map(({ outputName }) => this.getApiExtractorConfigPath(outputName)),
- );
- }
-
async build(options: BuildOptions): Promise {
- this.debug('Building "%s" types artifact with TypeScript', this.declarationType);
-
- const tsConfig = this.loadTsconfigJson();
-
- // Compile the current projects declarations
- this.debug('Generating declarations at the root using `tsc`');
-
- await this.package.project.generateDeclarations(
- this.declarationType,
- this.package.path,
- options.declarationConfig,
- );
-
- // Combine all DTS files into a single file for each input
- if (this.declarationType === 'api') {
- this.debug('Combining declarations into a single API declaration file');
-
- // Resolved compiler options use absolute paths, so we should match
- let dtsBuildPath = this.package.path.append('dts');
-
- // Workspaces use the tsconfig setting, while non-workspaces is hard-coded to "dts"
- if (tsConfig && this.package.project.isWorkspacesEnabled()) {
- dtsBuildPath = new Path(
- tsConfig.options.declarationDir ?? tsConfig.options.outDir ?? dtsBuildPath,
- );
- }
+ this.debug('Building types artifact with TypeScript');
- await Promise.all(
- this.builds.map(({ inputFile, outputName }) =>
- this.generateApiDeclaration(outputName, inputFile, dtsBuildPath),
- ),
- );
-
- // Remove the TS output directory to reduce package size.
- // We do this in the background to speed up the CLI process!
- this.debug('Removing old and unnecessary declarations in the background');
-
- void this.removeDeclarationBuild(dtsBuildPath);
- }
+ await this.package.project.generateDeclarations(this.package.path, options.declarationConfig);
}
findEntryPoint(outputName: string): string {
@@ -80,11 +24,7 @@ export class TypesArtifact extends Artifact {
return '';
}
- // When not generating individual API declarations, we need to mirror the source structure
- const entry =
- this.declarationType === 'standard' ? removeSourcePath(output.inputFile) : outputName;
-
- return `./${new VirtualPath('dts', entry)}.d.ts`;
+ return `./${new VirtualPath('dts', removeSourcePath(output.inputFile))}.d.ts`;
}
getLabel(): string {
@@ -98,7 +38,7 @@ export class TypesArtifact extends Artifact {
getPackageExports(): PackageExports {
const exportMap: PackageExports = {};
- if (this.api === 'private' || this.declarationType === 'api') {
+ if (this.api === 'private') {
this.builds.forEach(({ outputName }) => {
exportMap[outputName === 'index' ? '.' : `./${outputName}`] = {
types: this.findEntryPoint(outputName),
@@ -116,117 +56,9 @@ export class TypesArtifact extends Artifact {
return `types (${this.getLabel()})`;
}
- protected async generateApiDeclaration(
- outputName: string,
- inputFile: string,
- dtsBuildPath: Path,
- ): Promise {
- const dtsEntryPoint = dtsBuildPath.append(`${removeSourcePath(inputFile)}.d.ts`);
-
- if (!dtsEntryPoint.exists()) {
- console.warn(
- `Unable to generate declaration for "${outputName}". Declaration entry point "${dtsEntryPoint}" does not exist.`,
- );
-
- return;
- }
-
- // Create a fake config file
- const configPath = this.getApiExtractorConfigPath(outputName).path();
- const config: APIExtractorStructure = {
- ...apiExtractorConfig,
- projectFolder: VirtualPath.create(this.package.path).path(),
- mainEntryPointFilePath: VirtualPath.create(dtsEntryPoint).path(),
- dtsRollup: {
- ...apiExtractorConfig.dtsRollup,
- untrimmedFilePath: `/dts/${outputName}.d.ts`,
- },
- };
-
- // Create the config file within the package
- await fs.writeJson(configPath, config);
-
- // Extract all DTS into a single file
- const result = Extractor.invoke(ExtractorConfig.loadFileAndPrepare(configPath), {
- localBuild: __DEV__,
- messageCallback: /* istanbul ignore next */ (warn) => {
- // eslint-disable-next-line no-param-reassign
- warn.handled = true;
-
- if (
- warn.messageId === 'ae-missing-release-tag' ||
- warn.messageId === 'console-preamble' ||
- warn.logLevel === 'verbose'
- ) {
- return;
- }
-
- let level = 'info';
-
- if (warn.logLevel === 'error') {
- level = 'error';
- } else if (warn.logLevel === 'warning') {
- level = 'warn';
- }
-
- this.logWithSource(warn.text, level as 'info', {
- id: warn.messageId,
- output: `${this.package.getSlug()}:${outputName}`,
- sourceColumn: warn.sourceFileColumn,
- sourceFile: warn.sourceFilePath,
- sourceLine: warn.sourceFileLine,
- });
- },
- });
-
- if (!result.succeeded) {
- console.error(
- `Generated "${outputName}" types completed with ${result.errorCount} errors and ${result.warningCount} warnings!`,
- );
- }
- }
-
- protected getApiExtractorConfigPath(outputName: string): Path {
- return this.package.path.append(`api-extractor-${outputName}.json`);
- }
-
// This method only exists so that we can mock in tests.
// istanbul ignore next
protected loadTsconfigJson(): TSConfigStructure | undefined {
return this.package.tsconfigJson;
}
-
- /**
- * This method is unfortunate but necessary if TypeScript is using project references.
- * When using references, TS uses the `types` (or `typings`) field to determine types
- * across packages. But since we set that field to "dts/index.d.ts" for distributing
- * only the types necessary, it breaks the `tsc --build` unless the `outDir` is "dts".
- *
- * But when this happens, we have all the generated `*.d.ts` and `*.js` files in the "dts"
- * folder, which we do not want to distribute. So we need to manually delete all of them
- * except for the output files we created above.
- *
- * Not sure of a workaround or better solution :(
- */
- protected async removeDeclarationBuild(dtsBuildPath: Path) {
- const outputs = new Set(this.builds.map(({ outputName }) => `${outputName}.d.ts`));
-
- // Remove all non-output files
- const files = await glob('*', {
- cwd: dtsBuildPath.path(),
- onlyFiles: true,
- });
-
- // Remove all folders
- const folders = await glob('*', {
- cwd: dtsBuildPath.path(),
- onlyDirectories: true,
- });
-
- await Promise.all(
- [...files, ...folders]
- .filter((file) => !outputs.has(file))
- .map((file) => fs.remove(dtsBuildPath.append(file).path())),
- );
- }
}
diff --git a/packages/packemon/src/commands/Build.tsx b/packages/packemon/src/commands/Build.tsx
index 3436bd823..1ec6c5f7b 100644
--- a/packages/packemon/src/commands/Build.tsx
+++ b/packages/packemon/src/commands/Build.tsx
@@ -1,6 +1,6 @@
import os from 'os';
import { Arg, Config } from '@boost/cli';
-import { AnalyzeType, BuildOptions, DeclarationType } from '../types';
+import { AnalyzeType, BuildOptions } from '../types';
import { BaseCommand } from './Base';
@Config('build', 'Build standardized packages for distribution')
@@ -22,10 +22,8 @@ export class BuildCommand extends BaseCommand> {
@Arg.Number('Number of builds to run in parallel')
concurrency: number = os.cpus().length;
- @Arg.String('Generate TypeScript declarations for each package', {
- choices: ['none', 'standard', 'api'],
- })
- declaration: DeclarationType = 'none';
+ @Arg.Flag('Generate TypeScript declarations for each package')
+ declaration: boolean = false;
@Arg.String('Path to a custom `tsconfig` for declaration building')
declarationConfig: string = 'tsconfig.json';
diff --git a/packages/packemon/src/schemas.ts b/packages/packemon/src/schemas.ts
index 3320da55a..c93c791d4 100644
--- a/packages/packemon/src/schemas.ts
+++ b/packages/packemon/src/schemas.ts
@@ -16,7 +16,6 @@ import {
ApiType,
BrowserFormat,
BuildOptions,
- DeclarationType,
Format,
NativeFormat,
NodeFormat,
@@ -76,7 +75,7 @@ export const buildBlueprint: Blueprint = {
addFiles: bool(),
analyze: string('none').oneOf(['none', 'sunburst', 'treemap', 'network']),
concurrency: number(1).gte(1),
- declaration: string('none').oneOf(['none', 'standard', 'api']),
+ declaration: bool(),
declarationConfig: string(),
filter: string(),
filterFormats: string(),
diff --git a/packages/packemon/src/types.ts b/packages/packemon/src/types.ts
index 3025f22ba..7a3a94004 100644
--- a/packages/packemon/src/types.ts
+++ b/packages/packemon/src/types.ts
@@ -54,8 +54,6 @@ export type ApiType = 'private' | 'public';
export type AnalyzeType = 'network' | 'none' | 'sunburst' | 'treemap';
-export type DeclarationType = 'api' | 'none' | 'standard';
-
// PACKAGES
export type InputMap = Record;
@@ -123,7 +121,7 @@ export interface BuildOptions extends FilterOptions {
addFiles?: boolean;
analyze?: AnalyzeType;
concurrency?: number;
- declaration?: DeclarationType;
+ declaration?: boolean;
declarationConfig?: string;
loadConfigs?: boolean;
stamp?: boolean;
@@ -233,11 +231,3 @@ export interface TSConfigStructure {
strict?: boolean;
};
}
-
-export interface APIExtractorStructure {
- projectFolder: string;
- mainEntryPointFilePath: string;
- dtsRollup: {
- untrimmedFilePath: string;
- };
-}
diff --git a/packages/packemon/src/typescript/apiExtractorConfig.ts b/packages/packemon/src/typescript/apiExtractorConfig.ts
deleted file mode 100644
index 573037782..000000000
--- a/packages/packemon/src/typescript/apiExtractorConfig.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-export const apiExtractorConfig = {
- $schema:
- 'https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json',
- projectFolder: '.',
- mainEntryPointFilePath: '/dts/index.d.ts',
- bundledPackages: [],
- compiler: {
- tsconfigFilePath: '/tsconfig.json',
- },
- apiReport: {
- enabled: false,
- },
- docModel: {
- enabled: false,
- },
- dtsRollup: {
- enabled: true,
- untrimmedFilePath: '/dts/index.d.ts',
- omitTrimmingComments: false,
- },
- tsdocMetadata: {
- enabled: false,
- },
- messages: {
- compilerMessageReporting: {
- default: {
- logLevel: 'warning',
- },
- },
- extractorMessageReporting: {
- default: {
- logLevel: 'warning',
- },
- 'ae-missing-release-tag': {
- logLevel: 'none',
- },
- },
- tsdocMessageReporting: {
- default: {
- logLevel: 'warning',
- },
- },
- },
-};
diff --git a/packages/packemon/templates/monorepo/package.json b/packages/packemon/templates/monorepo/package.json
index c926ae842..f5f68ee23 100644
--- a/packages/packemon/templates/monorepo/package.json
+++ b/packages/packemon/templates/monorepo/package.json
@@ -9,7 +9,7 @@
"coverage": "yarn run test --coverage",
"format": "prettier --write ./",
"lint": "eslint --cache --fix ./",
- "pack": "NODE_ENV=production packemon pack --addEngines --declaration=standard",
+ "pack": "NODE_ENV=production packemon pack --addEngines --declaration",
"prelease": "yarn run pack && yarn run check",
"release": "echo 'Customize your own release script!'",
"test": "jest",
diff --git a/packages/packemon/templates/polyrepo/package.json b/packages/packemon/templates/polyrepo/package.json
index 539c8d9db..72cb6b461 100644
--- a/packages/packemon/templates/polyrepo/package.json
+++ b/packages/packemon/templates/polyrepo/package.json
@@ -8,7 +8,7 @@
"coverage": "yarn run test --coverage",
"format": "prettier --write ./src ./tests",
"lint": "eslint --cache --fix ./src ./tests",
- "pack": "NODE_ENV=production packemon pack --addEngines --declaration=standard",
+ "pack": "NODE_ENV=production packemon pack --addEngines --declaration",
"prelease": "yarn run pack && yarn run check",
"release": "echo 'Customize your own release script!'",
"test": "jest",
diff --git a/packages/packemon/tests/Packemon.test.ts b/packages/packemon/tests/Packemon.test.ts
index 505d5cf4f..ff5ca4496 100644
--- a/packages/packemon/tests/Packemon.test.ts
+++ b/packages/packemon/tests/Packemon.test.ts
@@ -59,7 +59,7 @@ describe('Packemon', () => {
addFiles: false,
analyze: 'none',
concurrency: 3,
- declaration: 'none',
+ declaration: false,
declarationConfig: '',
filter: '',
filterFormats: '',
@@ -362,13 +362,12 @@ describe('Packemon', () => {
]);
});
- it('generates "standard" type artifacts for each config in a package', async () => {
+ it('generates type artifacts for each config in a package', async () => {
const packages = await packemon.loadConfiguredPackages();
- packemon.generateArtifacts(packages, { declaration: 'standard' });
+ packemon.generateArtifacts(packages, { declaration: true });
expect(packages[0].artifacts).toHaveLength(3);
- expect((packages[0].artifacts[2] as TypesArtifact).declarationType).toBe('standard');
expect((packages[0].artifacts[2] as TypesArtifact).builds).toEqual([
{
inputFile: 'src/index.ts',
@@ -377,7 +376,6 @@ describe('Packemon', () => {
]);
expect(packages[1].artifacts).toHaveLength(2);
- expect((packages[1].artifacts[1] as TypesArtifact).declarationType).toBe('standard');
expect((packages[1].artifacts[1] as TypesArtifact).builds).toEqual([
{
inputFile: './src/core.ts',
@@ -386,40 +384,6 @@ describe('Packemon', () => {
]);
expect(packages[2].artifacts).toHaveLength(2);
- expect((packages[2].artifacts[1] as TypesArtifact).declarationType).toBe('standard');
- expect((packages[2].artifacts[1] as TypesArtifact).builds).toEqual([
- {
- inputFile: 'src/index.ts',
- outputName: 'index',
- },
- ]);
- });
-
- it('generates "api" type artifacts for each config in a package', async () => {
- const packages = await packemon.loadConfiguredPackages();
-
- packemon.generateArtifacts(packages, { declaration: 'api' });
-
- expect(packages[0].artifacts).toHaveLength(3);
- expect((packages[0].artifacts[2] as TypesArtifact).declarationType).toBe('api');
- expect((packages[0].artifacts[2] as TypesArtifact).builds).toEqual([
- {
- inputFile: 'src/index.ts',
- outputName: 'index',
- },
- ]);
-
- expect(packages[1].artifacts).toHaveLength(2);
- expect((packages[1].artifacts[1] as TypesArtifact).declarationType).toBe('api');
- expect((packages[1].artifacts[1] as TypesArtifact).builds).toEqual([
- {
- inputFile: './src/core.ts',
- outputName: 'core',
- },
- ]);
-
- expect(packages[2].artifacts).toHaveLength(2);
- expect((packages[2].artifacts[1] as TypesArtifact).declarationType).toBe('api');
expect((packages[2].artifacts[1] as TypesArtifact).builds).toEqual([
{
inputFile: 'src/index.ts',
diff --git a/packages/packemon/tests/Project.test.ts b/packages/packemon/tests/Project.test.ts
index 10719ab70..a4d17675d 100644
--- a/packages/packemon/tests/Project.test.ts
+++ b/packages/packemon/tests/Project.test.ts
@@ -64,7 +64,7 @@ describe('Project', () => {
it('generates declarations with `tsc`', async () => {
const project = new Project(getFixturePath('workspace-private'));
- await project.generateDeclarations('standard');
+ await project.generateDeclarations();
expect(execa).toHaveBeenCalledWith(
'tsc',
@@ -80,9 +80,9 @@ describe('Project', () => {
const project = new Project(getFixturePath('workspaces'));
project.workspaces = ['packages/*'];
- await project.generateDeclarations('standard');
+ await project.generateDeclarations();
- expect(execa).toHaveBeenCalledWith('tsc', ['--build', '--force'], {
+ expect(execa).toHaveBeenCalledWith('tsc', ['--build'], {
cwd: project.root.path(),
preferLocal: true,
});
@@ -92,9 +92,9 @@ describe('Project', () => {
const project = new Project(getFixturePath('workspaces'));
project.workspaces = ['packages/*'];
- await project.generateDeclarations('standard', project.root.append('packages/foo'));
+ await project.generateDeclarations(project.root.append('packages/foo'));
- expect(execa).toHaveBeenCalledWith('tsc', ['--build', '--force', 'packages/foo'], {
+ expect(execa).toHaveBeenCalledWith('tsc', ['--build', 'packages/foo'], {
cwd: project.root.path(),
preferLocal: true,
});
@@ -108,9 +108,9 @@ describe('Project', () => {
const project = new Project(getFixturePath('workspace-private'));
await Promise.all([
- project.generateDeclarations('standard'),
- project.generateDeclarations('standard'),
- project.generateDeclarations('standard'),
+ project.generateDeclarations(),
+ project.generateDeclarations(),
+ project.generateDeclarations(),
]);
expect(execa).toHaveBeenCalledTimes(1);
@@ -119,7 +119,7 @@ describe('Project', () => {
it('can pass a custom tsconfig', async () => {
const project = new Project(getFixturePath('workspace-private'));
- await project.generateDeclarations('standard', undefined, 'tsconfig.custom.json');
+ await project.generateDeclarations(undefined, 'tsconfig.custom.json');
expect(execa).toHaveBeenCalledWith(
'tsc',
@@ -144,40 +144,23 @@ describe('Project', () => {
project.workspaces = ['packages/*'];
await project.generateDeclarations(
- 'standard',
project.root.append('packages/foo'),
'tsconfig.custom.json',
);
- expect(execa).toHaveBeenCalledWith(
- 'tsc',
- ['--build', '--force', 'packages/foo/tsconfig.custom.json'],
- {
- cwd: project.root.path(),
- preferLocal: true,
- },
- );
- });
-
- it('does not pass custom tsconfig when using workspaces and no package', async () => {
- const project = new Project(getFixturePath('workspaces'));
- project.workspaces = ['packages/*'];
-
- await project.generateDeclarations('standard', undefined, 'tsconfig.custom.json');
-
- expect(execa).toHaveBeenCalledWith('tsc', ['--build', '--force'], {
+ expect(execa).toHaveBeenCalledWith('tsc', ['--build', 'packages/foo/tsconfig.custom.json'], {
cwd: project.root.path(),
preferLocal: true,
});
});
- it('force builds when type is api', async () => {
+ it('does not pass custom tsconfig when using workspaces and no package', async () => {
const project = new Project(getFixturePath('workspaces'));
project.workspaces = ['packages/*'];
- await project.generateDeclarations('api');
+ await project.generateDeclarations(undefined, 'tsconfig.custom.json');
- expect(execa).toHaveBeenCalledWith('tsc', ['--build', '--force'], {
+ expect(execa).toHaveBeenCalledWith('tsc', ['--build'], {
cwd: project.root.path(),
preferLocal: true,
});
diff --git a/packages/packemon/tests/TypesArtifact.test.ts b/packages/packemon/tests/TypesArtifact.test.ts
index f7a7a990d..4f9670a88 100644
--- a/packages/packemon/tests/TypesArtifact.test.ts
+++ b/packages/packemon/tests/TypesArtifact.test.ts
@@ -1,15 +1,10 @@
-import fs from 'fs-extra';
import { Path } from '@boost/common';
-import { mockNormalizedFilePath } from '@boost/common/test';
import { getFixturePath } from '@boost/test-utils';
-import { Extractor } from '@microsoft/api-extractor';
import { Package } from '../src/Package';
import { Project } from '../src/Project';
import { TypesArtifact } from '../src/TypesArtifact';
-import { delay, mockSpy } from './helpers';
jest.mock('fs-extra');
-jest.mock('@microsoft/api-extractor');
describe('TypesArtifact', () => {
const fixturePath = new Path(getFixturePath('project'));
@@ -50,237 +45,38 @@ describe('TypesArtifact', () => {
expect(artifact.toString()).toBe('types (dts)');
});
- describe('cleanup()', () => {
- it('deletes API config files for each build', async () => {
- await artifact.cleanup();
-
- expect(fs.remove).toHaveBeenCalledWith(fixturePath.append('api-extractor-index.json').path());
- expect(fs.remove).toHaveBeenCalledWith(fixturePath.append('api-extractor-test.json').path());
- });
- });
-
describe('build()', () => {
let declSpy: jest.SpyInstance;
- let apiSpy: jest.SpyInstance;
beforeEach(() => {
declSpy = jest
.spyOn(artifact.package.project, 'generateDeclarations')
.mockImplementation(() => Promise.resolve());
-
- // @ts-expect-error Allow access
- apiSpy = jest.spyOn(artifact, 'generateApiDeclaration');
-
- mockSpy(Extractor.invoke).mockImplementation(() => ({ succeeded: true }));
});
afterEach(() => {
declSpy.mockRestore();
- apiSpy.mockRestore();
});
- describe('standard types', () => {
- it('generates types using `tsc`', async () => {
- await artifact.build({});
+ it('generates types using `tsc`', async () => {
+ await artifact.build({});
- expect(declSpy).toHaveBeenCalled();
- expect(apiSpy).not.toHaveBeenCalled();
- });
-
- it('runs the same `tsc` when using workspaces', async () => {
- artifact.package.project.workspaces = ['packages/*'];
-
- await artifact.build({});
-
- expect(declSpy).toHaveBeenCalled();
- expect(apiSpy).not.toHaveBeenCalled();
- });
+ expect(declSpy).toHaveBeenCalled();
});
- describe('api types', () => {
- beforeEach(() => {
- artifact.declarationType = 'api';
- });
-
- it('generates a single file using api extractor', async () => {
- await artifact.build({});
-
- expect(declSpy).toHaveBeenCalled();
- expect(apiSpy).toHaveBeenCalledWith(
- 'index',
- 'src/index.ts',
- mockNormalizedFilePath(fixturePath.append('dts')),
- );
- expect(apiSpy).toHaveBeenCalledWith(
- 'test',
- 'src/sub/test.ts',
- mockNormalizedFilePath(fixturePath.append('dts')),
- );
- expect(Extractor.invoke).toHaveBeenCalledTimes(2);
- });
-
- it('logs a warning if dts file does not exist', async () => {
- artifact.builds.push({
- inputFile: 'src/missing.ts',
- outputName: 'missing',
- });
-
- await artifact.build({});
-
- expect(warnSpy).toHaveBeenCalledWith(
- `Unable to generate declaration for "missing". Declaration entry point "${fixturePath
- .append('dts/missing.d.ts')
- .path()}" does not exist.`,
- );
- expect(fs.writeJson).not.toHaveBeenCalledWith(
- fixturePath.append('api-extractor-missing.json').path(),
- expect.any(Object),
- );
- expect(Extractor.invoke).not.toHaveBeenCalledTimes(3);
- });
-
- it('creates api extractor config files for each output', async () => {
- await artifact.build({});
-
- expect(fs.writeJson).toHaveBeenCalledWith(
- fixturePath.append('api-extractor-index.json').path(),
- expect.objectContaining({
- projectFolder: artifact.package.path.path(),
- mainEntryPointFilePath: fixturePath.append('dts/index.d.ts').path(),
- dtsRollup: expect.objectContaining({
- untrimmedFilePath: '/dts/index.d.ts',
- }),
- }),
- );
- expect(fs.writeJson).toHaveBeenCalledWith(
- fixturePath.append('api-extractor-test.json').path(),
- expect.objectContaining({
- projectFolder: artifact.package.path.path(),
- mainEntryPointFilePath: fixturePath.append('dts/sub/test.d.ts').path(),
- dtsRollup: expect.objectContaining({
- untrimmedFilePath: '/dts/test.d.ts',
- }),
- }),
- );
- });
-
- it('removes generated declarations that arent the output files', async () => {
- await artifact.build({});
+ it('runs the same `tsc` when using workspaces', async () => {
+ artifact.package.project.workspaces = ['packages/*'];
- // Remove happens in the background so we must wait manually
- await delay(250);
+ await artifact.build({});
- expect(fs.remove).not.toHaveBeenCalledWith(fixturePath.append('dts/index.d.ts').path());
- expect(fs.remove).toHaveBeenCalledWith(fixturePath.append('dts/extra.d.ts').path());
- expect(fs.remove).not.toHaveBeenCalledWith(fixturePath.append('dts/test.d.ts').path());
- });
-
- it('logs an error if extractor fails', async () => {
- const spy = jest.spyOn(console, 'error').mockImplementation();
-
- mockSpy(Extractor.invoke).mockImplementation(() => ({
- succeeded: false,
- errorCount: 1,
- warningCount: 3,
- }));
-
- await artifact.build({});
-
- expect(spy).toHaveBeenCalledWith(
- 'Generated "index" types completed with 1 errors and 3 warnings!',
- );
- spy.mockRestore();
- });
-
- describe('workspaces', () => {
- beforeEach(() => {
- artifact.package.project.workspaces = ['packages/*'];
- });
-
- it('uses `declarationDir` from compiler options', async () => {
- tsconfigSpy.mockImplementation(
- () =>
- ({
- options: {
- declarationDir: 'declarationDir',
- outDir: 'outDir',
- },
- } as any),
- );
-
- await artifact.build({});
-
- expect(apiSpy).toHaveBeenCalledWith(
- 'index',
- 'src/index.ts',
- mockNormalizedFilePath('declarationDir'),
- );
- expect(apiSpy).toHaveBeenCalledWith(
- 'test',
- 'src/sub/test.ts',
- mockNormalizedFilePath('declarationDir'),
- );
- });
-
- it('uses `outDir` from compiler options if `declarationDir` is not defined', async () => {
- tsconfigSpy.mockImplementation(
- () =>
- ({
- options: {
- outDir: 'outDir',
- },
- } as any),
- );
-
- await artifact.build({});
-
- expect(apiSpy).toHaveBeenCalledWith(
- 'index',
- 'src/index.ts',
- mockNormalizedFilePath('outDir'),
- );
- expect(apiSpy).toHaveBeenCalledWith(
- 'test',
- 'src/sub/test.ts',
- mockNormalizedFilePath('outDir'),
- );
- });
-
- it('uses hard-coded dts folder if neither compiler option is defined', async () => {
- await artifact.build({});
-
- expect(apiSpy).toHaveBeenCalledWith(
- 'index',
- 'src/index.ts',
- mockNormalizedFilePath(fixturePath.append('dts')),
- );
- expect(apiSpy).toHaveBeenCalledWith(
- 'test',
- 'src/sub/test.ts',
- mockNormalizedFilePath(fixturePath.append('dts')),
- );
- });
- });
+ expect(declSpy).toHaveBeenCalled();
});
});
describe('findEntryPoint()', () => {
- describe('standard types', () => {
- it('returns mirrored source path', () => {
- artifact.declarationType = 'standard';
-
- expect(artifact.findEntryPoint('index')).toBe('./dts/index.d.ts');
- expect(artifact.findEntryPoint('test')).toBe('./dts/sub/test.d.ts');
- });
- });
-
- describe('api types', () => {
- it('returns top level output file', () => {
- artifact.declarationType = 'api';
-
- expect(artifact.findEntryPoint('index')).toBe('./dts/index.d.ts');
- expect(artifact.findEntryPoint('test')).toBe('./dts/test.d.ts');
- });
+ it('returns mirrored source path', () => {
+ expect(artifact.findEntryPoint('index')).toBe('./dts/index.d.ts');
+ expect(artifact.findEntryPoint('test')).toBe('./dts/sub/test.d.ts');
});
});
diff --git a/website/docs/build.md b/website/docs/build.md
index a60eac56b..4cc1079af 100644
--- a/website/docs/build.md
+++ b/website/docs/build.md
@@ -35,12 +35,7 @@ Build supports the following command line options.
- `treemap` - Displays hierarchy levels as top-level and nested rectangles of varying size.
- `network` - Displays files as nodes with the relationship between files.
- `--concurrency` - Number of builds to run in parallel. Defaults to operating system CPU count.
-- `--declaration` - Generate TypeScript declarations for each package. Accepts one of the following
- values.
- - `standard` - Generates multiple `d.ts` files with `tsc`.
- - `api` - Generates a single `d.ts` file for each input. Uses
- [@microsoft/api-extractor](https://www.npmjs.com/package/@microsoft/api-extractor) to _only_
- generate the public API. _(NOTE: this is quite slow)_
+- `--declaration` - Generate TypeScript declarations for each package.
- `--declarationConfig` - Path to a custom `tsconfig` for declaration building.
- `--filter` - Filter packages to build based on their name in `package.json`.
- `--formats`, `-f` - Only generate specific output `format`s.
diff --git a/website/docs/install.mdx b/website/docs/install.mdx
index eb6995893..2871a6716 100644
--- a/website/docs/install.mdx
+++ b/website/docs/install.mdx
@@ -101,7 +101,7 @@ the following `build` (for development) and `pack` (for production) scripts.
"name": "package",
"scripts": {
"build": "packemon build",
- "pack": "NODE_ENV=production packemon pack --addEngines --addFiles --declaration=standard"
+ "pack": "NODE_ENV=production packemon pack --addEngines --addFiles --declaration"
}
}
```
diff --git a/website/docs/migrate/2.0.md b/website/docs/migrate/2.0.md
new file mode 100644
index 000000000..97831df03
--- /dev/null
+++ b/website/docs/migrate/2.0.md
@@ -0,0 +1,22 @@
+---
+title: 2.0 migration
+sidebar_label: '2.0'
+---
+
+## Removed `api` support from `--declaration`
+
+We removed support for the `api` option, which uses
+[@microsoft/api-extractor](https://api-extractor.com/) to generate a single `.d.ts` file. This
+feature was rarely used, overcomplicated the implementation, and had weird edge cases that we
+couldn't solve on our end.
+
+Because of this change, the `--declaration` option on the command line is now a flag with no value.
+
+```shell
+# Before
+--declaration standard
+--declaration api
+
+# After
+--declaration
+```
diff --git a/website/docs/pack.md b/website/docs/pack.md
index ea56ab1d4..820035778 100644
--- a/website/docs/pack.md
+++ b/website/docs/pack.md
@@ -13,7 +13,7 @@ aborted.
```json title="package.json"
{
"scripts": {
- "pack": "NODE_ENV=production packemon pack --addEngines --declaration=api",
+ "pack": "NODE_ENV=production packemon pack --addEngines --declaration",
"release": "yarn run pack && yarn publish"
}
}
diff --git a/website/sidebars.js b/website/sidebars.js
index 9a9433f6e..8a9207e6a 100644
--- a/website/sidebars.js
+++ b/website/sidebars.js
@@ -15,11 +15,15 @@ module.exports = {
items: ['build', 'clean', 'files', 'init', 'pack', 'scaffold', 'validate', 'watch'],
},
'advanced',
+ {
+ type: 'category',
+ label: 'Migration',
+ items: ['migrate/2.0'],
+ },
{
type: 'link',
label: 'Changelog',
href: 'https://github.com/milesj/packemon/releases',
- // href: 'https://github.com/milesj/packemon/blob/master/CHANGELOG.md',
},
],
};
diff --git a/yarn.lock b/yarn.lock
index 167b9a268..8b1eca979 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3822,58 +3822,6 @@ __metadata:
languageName: node
linkType: hard
-"@microsoft/api-extractor-model@npm:7.15.4":
- version: 7.15.4
- resolution: "@microsoft/api-extractor-model@npm:7.15.4"
- dependencies:
- "@microsoft/tsdoc": 0.13.2
- "@microsoft/tsdoc-config": ~0.15.2
- "@rushstack/node-core-library": 3.45.1
- checksum: 9e4cce0d2575da97413c7df8a26da39ed1d73e654035f811cbc001d231650647dd0692881f46cdfd3a08b53c89589960464347050953a8dfe8f4172367104273
- languageName: node
- linkType: hard
-
-"@microsoft/api-extractor@npm:^7.19.5":
- version: 7.19.5
- resolution: "@microsoft/api-extractor@npm:7.19.5"
- dependencies:
- "@microsoft/api-extractor-model": 7.15.4
- "@microsoft/tsdoc": 0.13.2
- "@microsoft/tsdoc-config": ~0.15.2
- "@rushstack/node-core-library": 3.45.1
- "@rushstack/rig-package": 0.3.8
- "@rushstack/ts-command-line": 4.10.7
- 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
- bin:
- api-extractor: bin/api-extractor
- checksum: 96fa1cff560f3e8c86db89389eb7a966657164b29532d0d8973ad5313dd375d1271b1eacec66e6a449b761e79df874be96cf7dd508dc19a5a3bd30c31e5f68aa
- languageName: node
- linkType: hard
-
-"@microsoft/tsdoc-config@npm:~0.15.2":
- version: 0.15.2
- resolution: "@microsoft/tsdoc-config@npm:0.15.2"
- dependencies:
- "@microsoft/tsdoc": 0.13.2
- ajv: ~6.12.6
- jju: ~1.4.0
- resolve: ~1.19.0
- checksum: 85eb7808d4e4541199437f39e6aed235aaece0a6d0fd05c0b923067d494d20baca483fc6871880d09630f6d4e62b8bb99af0fde503eb2b2ded1b7ae5f74dfaf3
- languageName: node
- linkType: hard
-
-"@microsoft/tsdoc@npm:0.13.2":
- version: 0.13.2
- resolution: "@microsoft/tsdoc@npm:0.13.2"
- checksum: 70948c5647495ef99752ff500e0f612c1fcf3476ea663ace19937e4d2f86fd78f0ad92ea5876d67e06b421f347d571b3d9e49c444935dc267768d5afd15581f8
- languageName: node
- linkType: hard
-
"@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3":
version: 2.1.8-no-fsevents.3
resolution: "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3"
@@ -5109,45 +5057,6 @@ __metadata:
languageName: node
linkType: hard
-"@rushstack/node-core-library@npm:3.45.1":
- version: 3.45.1
- resolution: "@rushstack/node-core-library@npm:3.45.1"
- 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
- checksum: 2001e1acda14e75dc3cc4aa988c2ec9609c2ed7a59ef27a5b97ce9a0380c534ad9eb96074821a52e52e34c06cc1f4a011c15f6e5d17bbf830430e739c6d185ce
- languageName: node
- linkType: hard
-
-"@rushstack/rig-package@npm:0.3.8":
- version: 0.3.8
- resolution: "@rushstack/rig-package@npm:0.3.8"
- dependencies:
- resolve: ~1.17.0
- strip-json-comments: ~3.1.1
- checksum: 375788eae1c18fa4807bbe96541ebddc65bcc44113f186fae2cfbf0b355deb376e20fa8a014f40a6babdcde86d446234dcbaf5d3df4fdca5bf196ec5d4c41f0b
- languageName: node
- linkType: hard
-
-"@rushstack/ts-command-line@npm:4.10.7":
- version: 4.10.7
- resolution: "@rushstack/ts-command-line@npm:4.10.7"
- dependencies:
- "@types/argparse": 1.0.38
- argparse: ~1.0.9
- colors: ~1.2.1
- string-argv: ~0.3.1
- checksum: 0c57867e5ea14b9296db403c2979995fe4bdeae3787331fc2d8faa18ee612b5fbcf989afcf5e30bc7f01cfe62003d451b29fc65fdda0790b95f3aacd72d41918
- languageName: node
- linkType: hard
-
"@sideway/address@npm:^4.1.3":
version: 4.1.3
resolution: "@sideway/address@npm:4.1.3"
@@ -5417,13 +5326,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/argparse@npm:1.0.38":
- version: 1.0.38
- resolution: "@types/argparse@npm:1.0.38"
- checksum: 26ed7e3f1e3595efdb883a852f5205f971b798e4c28b7e30a32c5298eee596e8b45834ce831f014d250b9730819ab05acff5b31229666d3af4ba465b4697d0eb
- languageName: node
- linkType: hard
-
"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14":
version: 7.1.15
resolution: "@types/babel__core@npm:7.1.15"
@@ -5773,13 +5675,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:12.20.24":
- version: 12.20.24
- resolution: "@types/node@npm:12.20.24"
- checksum: e7a13460e2f5b0b5a32c0f3af7daf1a05201552a66d542d3cc3b1ea8b52d4730250f9eb1961d755e31cfe5d03c78340911a6242657a0a9a17d6f7e341fc9f366
- languageName: node
- linkType: hard
-
"@types/node@npm:^16.11.26":
version: 16.11.26
resolution: "@types/node@npm:16.11.26"
@@ -6521,7 +6416,7 @@ __metadata:
languageName: node
linkType: hard
-"ajv@npm:^6.10.0, ajv@npm:^6.12.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:~6.12.6":
+"ajv@npm:^6.10.0, ajv@npm:^6.12.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5":
version: 6.12.6
resolution: "ajv@npm:6.12.6"
dependencies:
@@ -6713,7 +6608,7 @@ __metadata:
languageName: node
linkType: hard
-"argparse@npm:^1.0.7, argparse@npm:~1.0.9":
+"argparse@npm:^1.0.7":
version: 1.0.10
resolution: "argparse@npm:1.0.10"
dependencies:
@@ -8121,13 +8016,6 @@ __metadata:
languageName: node
linkType: hard
-"colors@npm:~1.2.1":
- version: 1.2.5
- resolution: "colors@npm:1.2.5"
- checksum: b6e23de735f68b72d5cdf6fd854ca43d1b66d82dcf54bda0b788083b910164a040f2c4edf23c670d36a7a2d8f1b7d6e62e3292703e4642691e6ccaa1c62d8f74
- languageName: node
- linkType: hard
-
"columnify@npm:^1.5.4":
version: 1.5.4
resolution: "columnify@npm:1.5.4"
@@ -8161,7 +8049,7 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:^2.20.0, commander@npm:^2.7.1":
+"commander@npm:^2.20.0":
version: 2.20.3
resolution: "commander@npm:2.20.3"
checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e
@@ -11098,17 +10986,6 @@ __metadata:
languageName: node
linkType: hard
-"fs-extra@npm:~7.0.1":
- version: 7.0.1
- resolution: "fs-extra@npm:7.0.1"
- dependencies:
- graceful-fs: ^4.1.2
- jsonfile: ^4.0.0
- universalify: ^0.1.0
- checksum: 141b9dccb23b66a66cefdd81f4cda959ff89282b1d721b98cea19ba08db3dcbe6f862f28841f3cf24bb299e0b7e6c42303908f65093cb7e201708e86ea5a8dcf
- languageName: node
- linkType: hard
-
"fs-minipass@npm:^1.2.5":
version: 1.2.7
resolution: "fs-minipass@npm:1.2.7"
@@ -12296,13 +12173,6 @@ __metadata:
languageName: node
linkType: hard
-"import-lazy@npm:~4.0.0":
- version: 4.0.0
- resolution: "import-lazy@npm:4.0.0"
- checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07
- languageName: node
- linkType: hard
-
"import-local@npm:^3.0.2":
version: 3.0.2
resolution: "import-local@npm:3.0.2"
@@ -12664,7 +12534,7 @@ __metadata:
languageName: node
linkType: hard
-"is-core-module@npm:^2.1.0, is-core-module@npm:^2.2.0, is-core-module@npm:^2.8.0, is-core-module@npm:^2.8.1":
+"is-core-module@npm:^2.2.0, is-core-module@npm:^2.8.0, is-core-module@npm:^2.8.1":
version: 2.8.1
resolution: "is-core-module@npm:2.8.1"
dependencies:
@@ -13653,13 +13523,6 @@ __metadata:
languageName: node
linkType: hard
-"jju@npm:~1.4.0":
- version: 1.4.0
- resolution: "jju@npm:1.4.0"
- checksum: 3790481bd2b7827dd6336e6e3dc2dcc6d425679ba7ebde7b679f61dceb4457ea0cda330972494de608571f4973c6dfb5f70fab6f3c5037dbab19ac449a60424f
- languageName: node
- linkType: hard
-
"joi@npm:^17.6.0":
version: 17.6.0
resolution: "joi@npm:17.6.0"
@@ -13874,18 +13737,6 @@ __metadata:
languageName: node
linkType: hard
-"jsonfile@npm:^4.0.0":
- version: 4.0.0
- resolution: "jsonfile@npm:4.0.0"
- dependencies:
- graceful-fs: ^4.1.6
- dependenciesMeta:
- graceful-fs:
- optional: true
- checksum: 6447d6224f0d31623eef9b51185af03ac328a7553efcee30fa423d98a9e276ca08db87d71e17f2310b0263fd3ffa6c2a90a6308367f661dc21580f9469897c9e
- languageName: node
- linkType: hard
-
"jsonfile@npm:^6.0.1":
version: 6.1.0
resolution: "jsonfile@npm:6.1.0"
@@ -14311,20 +14162,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.get@npm:^4.4.2":
- version: 4.4.2
- resolution: "lodash.get@npm:4.4.2"
- checksum: e403047ddb03181c9d0e92df9556570e2b67e0f0a930fcbbbd779370972368f5568e914f913e93f3b08f6d492abc71e14d4e9b7a18916c31fa04bd2306efe545
- languageName: node
- linkType: hard
-
-"lodash.isequal@npm:^4.5.0":
- version: 4.5.0
- resolution: "lodash.isequal@npm:4.5.0"
- checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644
- languageName: node
- linkType: hard
-
"lodash.ismatch@npm:^4.4.0":
version: 4.4.0
resolution: "lodash.ismatch@npm:4.4.0"
@@ -14414,7 +14251,7 @@ __metadata:
languageName: node
linkType: hard
-"lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.7.0, lodash@npm:~4.17.15":
+"lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.7.0":
version: 4.17.21
resolution: "lodash@npm:4.17.21"
checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
@@ -16162,7 +15999,6 @@ __metadata:
"@boost/event": ^3.0.1
"@boost/pipeline": ^3.2.2
"@boost/terminal": ^3.0.0
- "@microsoft/api-extractor": ^7.19.5
"@rollup/plugin-babel": ^5.3.1
"@rollup/plugin-commonjs": ^21.0.2
"@rollup/plugin-json": ^4.1.0
@@ -18314,44 +18150,6 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
-"resolve@patch:resolve@~1.17.0#~builtin":
- version: 1.17.0
- resolution: "resolve@patch:resolve@npm%3A1.17.0#~builtin::version=1.17.0&hash=07638b"
- dependencies:
- path-parse: ^1.0.6
- checksum: 6fd799f282ddf078c4bc20ce863e3af01fa8cb218f0658d9162c57161a2dbafe092b13015b9a4c58d0e1e801cf7aa7a4f13115fea9db98c3f9a0c43e429bad6f
- languageName: node
- linkType: hard
-
-"resolve@patch:resolve@~1.19.0#~builtin":
- version: 1.19.0
- resolution: "resolve@patch:resolve@npm%3A1.19.0#~builtin::version=1.19.0&hash=07638b"
- dependencies:
- is-core-module: ^2.1.0
- path-parse: ^1.0.6
- checksum: 2443b94d347e6946c87c85faf13071f605e609e0b54784829b0ed2b917d050bfc1cbaf4ecc6453f224cfa7d0c5dcd97cbb273454cd210bee68e4af15c1a5abc9
- languageName: node
- linkType: hard
-
-resolve@~1.17.0:
- version: 1.17.0
- resolution: "resolve@npm:1.17.0"
- dependencies:
- path-parse: ^1.0.6
- checksum: 9ceaf83b3429f2d7ff5d0281b8d8f18a1f05b6ca86efea7633e76b8f76547f33800799dfdd24434942dec4fbd9e651ed3aef577d9a6b5ec87ad89c1060e24759
- languageName: node
- linkType: hard
-
-resolve@~1.19.0:
- version: 1.19.0
- resolution: "resolve@npm:1.19.0"
- dependencies:
- is-core-module: ^2.1.0
- path-parse: ^1.0.6
- checksum: a05b356e47b85ad3613d9e2a39a824f3c27f4fcad9c9ff6c7cc71a2e314c5904a90ab37481ad0069d03cab9eaaac6eb68aca1bc3355fdb05f1045cd50e2aacea
- languageName: node
- linkType: hard
-
"responselike@npm:^1.0.2":
version: 1.0.2
resolution: "responselike@npm:1.0.2"
@@ -18707,7 +18505,7 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"semver@npm:7.3.5, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:~7.3.0":
+"semver@npm:7.3.5, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5":
version: 7.3.5
resolution: "semver@npm:7.3.5"
dependencies:
@@ -19401,13 +19199,6 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"string-argv@npm:~0.3.1":
- version: 0.3.1
- resolution: "string-argv@npm:0.3.1"
- checksum: efbd0289b599bee808ce80820dfe49c9635610715429c6b7cc50750f0437e3c2f697c81e5c390208c13b5d5d12d904a1546172a88579f6ee5cbaaaa4dc9ec5cf
- languageName: node
- linkType: hard
-
"string-hash@npm:^1.1.1":
version: 1.1.3
resolution: "string-hash@npm:1.1.3"
@@ -19613,7 +19404,7 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1":
+"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1":
version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1"
checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443
@@ -19927,7 +19718,7 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"timsort@npm:^0.3.0, timsort@npm:~0.3.0":
+"timsort@npm:^0.3.0":
version: 0.3.0
resolution: "timsort@npm:0.3.0"
checksum: 1a66cb897dacabd7dd7c91b7e2301498ca9e224de2edb9e42d19f5b17c4b6dc62a8d4cbc64f28be82aaf1541cb5a78ab49aa818f42a2989ebe049a64af731e2a
@@ -20291,16 +20082,6 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"typescript@npm:~4.5.2":
- version: 4.5.5
- resolution: "typescript@npm:4.5.5"
- bin:
- tsc: bin/tsc
- tsserver: bin/tsserver
- checksum: 506f4c919dc8aeaafa92068c997f1d213b9df4d9756d0fae1a1e7ab66b585ab3498050e236113a1c9e57ee08c21ec6814ca7a7f61378c058d79af50a4b1f5a5e
- languageName: node
- linkType: hard
-
"typescript@patch:typescript@^4.6.3#~builtin":
version: 4.6.3
resolution: "typescript@patch:typescript@npm%3A4.6.3#~builtin::version=4.6.3&hash=bda367"
@@ -20311,16 +20092,6 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"typescript@patch:typescript@~4.5.2#~builtin":
- version: 4.5.5
- resolution: "typescript@patch:typescript@npm%3A4.5.5#~builtin::version=4.5.5&hash=bda367"
- bin:
- tsc: bin/tsc
- tsserver: bin/tsserver
- checksum: 858c61fa63f7274ca4aaaffeced854d550bf416cff6e558c4884041b3311fb662f476f167cf5c9f8680c607239797e26a2ee0bcc6467fbc05bfcb218e1c6c671
- languageName: node
- linkType: hard
-
"ua-parser-js@npm:^0.7.18":
version: 0.7.28
resolution: "ua-parser-js@npm:0.7.28"
@@ -20541,7 +20312,7 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"universalify@npm:^0.1.0, universalify@npm:^0.1.2":
+"universalify@npm:^0.1.2":
version: 0.1.2
resolution: "universalify@npm:0.1.2"
checksum: 40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff
@@ -20796,13 +20567,6 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"validator@npm:^13.7.0":
- version: 13.7.0
- resolution: "validator@npm:13.7.0"
- checksum: 2b83283de1222ca549a7ef57f46e8d49c6669213348db78b7045bce36a3b5843ff1e9f709ebf74574e06223461ee1f264f8cc9a26a0060a79a27de079d8286ef
- languageName: node
- linkType: hard
-
"value-equal@npm:^1.0.1":
version: 1.0.1
resolution: "value-equal@npm:1.0.1"
@@ -21650,23 +21414,6 @@ resolve@~1.19.0:
languageName: node
linkType: hard
-"z-schema@npm:~5.0.2":
- version: 5.0.2
- resolution: "z-schema@npm:5.0.2"
- dependencies:
- commander: ^2.7.1
- lodash.get: ^4.4.2
- lodash.isequal: ^4.5.0
- validator: ^13.7.0
- dependenciesMeta:
- commander:
- optional: true
- bin:
- z-schema: bin/z-schema
- checksum: 084b2f16043ac0a892914ee29cc0b4fafd9338133eec0345cd6ced25e814f647fa67be1090ad5f606759c2c1f2f8c28127960ba187f437f1caf6fb8cd45d7336
- languageName: node
- linkType: hard
-
"zwitch@npm:^1.0.0":
version: 1.0.5
resolution: "zwitch@npm:1.0.5"