ng-packagr 13.0.3 → 13.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/main.js +1 -1
- package/cli/main.js.map +1 -1
- package/lib/flatten/rollup.js +1 -1
- package/lib/flatten/rollup.js.map +1 -1
- package/lib/ng-package/discover-packages.js +3 -1
- package/lib/ng-package/discover-packages.js.map +1 -1
- package/lib/ng-package/entry-point/write-package.transform.js +1 -2
- package/lib/ng-package/entry-point/write-package.transform.js.map +1 -1
- package/lib/utils/color.js +25 -2
- package/lib/utils/color.js.map +1 -1
- package/package.json +1 -1
package/cli/main.js
CHANGED
|
@@ -36,7 +36,7 @@ commander_1.program
|
|
|
36
36
|
.option('-p, --project [path]', "Path to the 'ng-package.json' or 'package.json' file.", parseProjectPath, DEFAULT_PROJECT_PATH)
|
|
37
37
|
.option('-c, --config [config]', 'Path to a tsconfig file.', (value) => value ? path.resolve(value) : undefined);
|
|
38
38
|
commander_1.program.on('option:version', () => {
|
|
39
|
-
void version().then(() => process.exit(0));
|
|
39
|
+
void (0, public_api_1.version)().then(() => process.exit(0));
|
|
40
40
|
});
|
|
41
41
|
commander_1.program.parse(process.argv);
|
|
42
42
|
const { config, project, watch, version } = commander_1.program.opts();
|
package/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,0CAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,0CAAyC;AACzC,8CAA0E;AAE1E,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAE5E,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,MAAM,IAAI,oBAAoB,CAAC;AACxC,CAAC;AAED,mBAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,wBAAwB,CAAC,KAAK,CAAC;KAC/B,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAC9C,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;KAC/C,MAAM,CACL,sBAAsB,EACtB,uDAAuD,EACvD,gBAAgB,EAChB,oBAAoB,CACrB;KACA,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,EAAE,CAAC,KAAyB,EAAE,EAAE,CACzF,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CACxC,CAAC;AAEJ,mBAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAChC,KAAK,IAAA,oBAAc,GAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,mBAAO,CAAC,IAAI,EAAE,CAAC;AAE3D,IAAI,CAAC,OAAO,EAAE;IACZ,IAAA,oBAAO,EAAC,kBAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QAC9D,IAAA,WAAK,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;CACJ","sourcesContent":["#!/usr/bin/env node\n\nimport { program } from 'commander';\nimport * as path from 'path';\nimport { error } from '../lib/utils/log';\nimport { build, execute, version as versionCommand } from '../public_api';\n\nconst DEFAULT_PROJECT_PATH = path.resolve(process.cwd(), 'ng-package.json');\n\nfunction parseProjectPath(parsed: string): string {\n return parsed || DEFAULT_PROJECT_PATH;\n}\n\nprogram\n .name('ng-packagr')\n .storeOptionsAsProperties(false)\n .option('-v, --version', 'Prints version info')\n .option('-w, --watch', 'Watch for file changes')\n .option(\n '-p, --project [path]',\n \"Path to the 'ng-package.json' or 'package.json' file.\",\n parseProjectPath,\n DEFAULT_PROJECT_PATH,\n )\n .option('-c, --config [config]', 'Path to a tsconfig file.', (value: string | undefined) =>\n value ? path.resolve(value) : undefined,\n );\n\nprogram.on('option:version', () => {\n void versionCommand().then(() => process.exit(0));\n});\n\nprogram.parse(process.argv);\n\nconst { config, project, watch, version } = program.opts();\n\nif (!version) {\n execute(build, { config, project, watch: !!watch }).catch(err => {\n error(err.message);\n process.exit(1);\n });\n}\n"]}
|
package/lib/flatten/rollup.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../../src/lib/flatten/rollup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sEAA6C;AAC7C,sFAAsD;AACtD,2CAA6B;AAC7B,+CAAiC;AAEjC,wFAAkD;AAElD,0CAAgE;AAChE,kDAAoC;AACpC,wCAA+C;AAmB/C,mEAAmE;AAC5D,KAAK,UAAU,gBAAgB,CACpC,IAAmB;;IAEnB,GAAG,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEvE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAE3C,oBAAoB;IACpB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACjC,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QACpD,oBAAoB,EAAE,KAAK;QAC3B,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,IAAA,sBAAc,EAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE;YACP,IAAA,6BAAW,GAAE;YACb,IAAA,kCAAU,EAAC;gBACT,QAAQ,EAAE,CAAC,IAAY,EAAE,QAA8D,EAAE,EAAE;oBACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC,CAAC;oBAC1D,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,IAAI,gBAAgB,CAAC,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC;gBACpG,CAAC;aACF,CAAC;YACF,IAAA,qBAAU,GAAE;YACZ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS;SACjF;QACD,MAAM,EAAE,OAAO,CAAC,EAAE;YAChB,QAAQ,OAAO,CAAC,IAAI,EAAE;gBACpB,KAAK,wBAAwB,CAAC;gBAC9B,KAAK,mBAAmB;oBACtB,MAAM;gBAER;oBACE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1B,MAAM;aACT;QACH,CAAC;QACD,gBAAgB,EAAE,IAAI;QACtB,8CAA8C;QAC9C,qDAAqD;QACrD,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,UAAU;QACrB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,IAAI,cAAc,EAAE;QAClB,MAAM,IAAA,sBAAc,EAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACnF;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEvC,OAAO;QACL,IAAI;
|
|
1
|
+
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../../src/lib/flatten/rollup.ts"],"names":[],"mappings":"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","sourcesContent":["import rollupJson from '@rollup/plugin-json';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport * as path from 'path';\nimport * as rollup from 'rollup';\nimport { TransformHook } from 'rollup';\nimport sourcemaps from 'rollup-plugin-sourcemaps';\nimport { OutputFileCache } from '../ng-package/nodes';\nimport { readCacheEntry, saveCacheEntry } from '../utils/cache';\nimport * as log from '../utils/log';\nimport { ensureUnixPath } from '../utils/path';\n\n/**\n * Options used in `ng-packagr` for writing flat bundle files.\n *\n * These options are passed through to rollup.\n */\nexport interface RollupOptions {\n moduleName: string;\n entry: string;\n dest: string;\n sourceRoot: string;\n transform?: TransformHook;\n cache?: rollup.RollupCache;\n cacheDirectory?: string | false;\n fileCache: OutputFileCache;\n cacheKey: string;\n}\n\n/** Runs rollup over the given entry file, writes a bundle file. */\nexport async function rollupBundleFile(\n opts: RollupOptions,\n): Promise<{ cache: rollup.RollupCache; code: string; map: rollup.SourceMap }> {\n log.debug(`rollup (v${rollup.VERSION}) ${opts.entry} to ${opts.dest}`);\n\n const cacheDirectory = opts.cacheDirectory;\n\n // Create the bundle\n const bundle = await rollup.rollup({\n context: 'this',\n external: moduleId => isExternalDependency(moduleId),\n inlineDynamicImports: false,\n cache: opts.cache ?? (cacheDirectory ? await readCacheEntry(cacheDirectory, opts.cacheKey) : undefined),\n input: opts.entry,\n plugins: [\n nodeResolve(),\n sourcemaps({\n readFile: (path: string, callback: (error: Error | null, data: Buffer | string) => void) => {\n const fileData = opts.fileCache.get(ensureUnixPath(path));\n callback(fileData ? null : new Error(`Could not load '${path}' from memory.`), fileData?.content);\n },\n }),\n rollupJson(),\n opts.transform ? { transform: opts.transform, name: 'downlevel-ts' } : undefined,\n ],\n onwarn: warning => {\n switch (warning.code) {\n case 'UNUSED_EXTERNAL_IMPORT':\n case 'THIS_IS_UNDEFINED':\n break;\n\n default:\n log.warn(warning.message);\n break;\n }\n },\n preserveSymlinks: true,\n // Disable treeshaking when generating bundles\n // see: https://github.com/angular/angular/pull/32069\n treeshake: false,\n });\n\n // Output the bundle to disk\n const output = await bundle.write({\n name: opts.moduleName,\n format: 'es',\n file: opts.dest,\n banner: '',\n sourcemap: true,\n });\n\n if (cacheDirectory) {\n await saveCacheEntry(cacheDirectory, opts.cacheKey, JSON.stringify(bundle.cache));\n }\n\n const { code, map } = output.output[0];\n\n return {\n code: code + '//# sourceMapping' + `URL=${path.basename(opts.dest)}.map\\n`,\n map,\n cache: bundle.cache,\n };\n}\n\nfunction isExternalDependency(moduleId: string): boolean {\n // more information about why we don't check for 'node_modules' path\n // https://github.com/rollup/rollup-plugin-node-resolve/issues/110#issuecomment-350353632\n if (moduleId.startsWith('.') || moduleId.startsWith('/') || path.isAbsolute(moduleId)) {\n // if it's either 'absolute', marked to embed, starts with a '.' or '/' or is the umd bundle and is tslib\n return false;\n }\n\n return true;\n}\n"]}
|
|
@@ -51,7 +51,8 @@ async function resolveUserPackage(folderPathOrFilePath, isSecondary = false) {
|
|
|
51
51
|
const fullPath = path.resolve(folderPathOrFilePath);
|
|
52
52
|
const pathStats = await (0, fs_1.stat)(fullPath);
|
|
53
53
|
const basePath = pathStats.isDirectory() ? fullPath : path.dirname(fullPath);
|
|
54
|
-
const
|
|
54
|
+
const pkgJsonPath = path.join(basePath, 'package.json');
|
|
55
|
+
const packageJson = await readConfigFile(pkgJsonPath);
|
|
55
56
|
if (!packageJson && !isSecondary) {
|
|
56
57
|
throw new Error(`Cannot discover package sources at ${folderPathOrFilePath} as 'package.json' was not found.`);
|
|
57
58
|
}
|
|
@@ -62,6 +63,7 @@ async function resolveUserPackage(folderPathOrFilePath, isSecondary = false) {
|
|
|
62
63
|
if (packageJson && packageJson['ngPackage']) {
|
|
63
64
|
// Read `ngPackage` from `package.json`
|
|
64
65
|
ngPackageJson = { ...packageJson['ngPackage'] };
|
|
66
|
+
log.warn(`Found configuration in ${pkgJsonPath}.\nConfiguring ng-packagr in "package.json" is deprecated. Use "ng-package.json" instead.`);
|
|
65
67
|
}
|
|
66
68
|
else if (pathStats.isDirectory()) {
|
|
67
69
|
ngPackageJson = await readConfigFile(path.join(basePath, 'ng-package.json'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover-packages.js","sourceRoot":"","sources":["../../../src/lib/ng-package/discover-packages.ts"],"names":[],"mappings":"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","sourcesContent":["import { parse as parseJson } from 'jsonc-parser';\nimport * as path from 'path';\nimport { exists, readFile, stat } from '../utils/fs';\nimport { globFiles } from '../utils/glob';\nimport * as log from '../utils/log';\nimport { ensureUnixPath } from '../utils/path';\nimport { NgEntryPoint } from './entry-point/entry-point';\nimport { NgPackage } from './package';\nimport { validateNgPackageSchema } from './schema';\n\ninterface UserPackage {\n /** Values from the `package.json` file of this user package. */\n packageJson: Record<string, any>;\n /** NgPackageConfig for this user package. */\n ngPackageJson: Record<string, any>;\n /** Absolute directory path of this user package. */\n basePath: string;\n}\n\nasync function readConfigFile(filePath: string): Promise<any> {\n if (!(await exists(filePath))) {\n return undefined;\n }\n\n if (filePath.endsWith('.js')) {\n return import(filePath);\n }\n\n const data = await readFile(filePath, 'utf-8');\n\n return parseJson(data, undefined, { allowTrailingComma: true });\n}\n\n/**\n * Resolves a user's package by testing for 'package.json', 'ng-package.json', or 'ng-package.js'.\n *\n * @param folderPathOrFilePath A path pointing either to a file or a directory\n * @param isSecondary A boolean determining if this is a secondary package\n * @return The user's package\n */\nasync function resolveUserPackage(folderPathOrFilePath: string, isSecondary = false): Promise<UserPackage | undefined> {\n const fullPath = path.resolve(folderPathOrFilePath);\n const pathStats = await stat(fullPath);\n const basePath = pathStats.isDirectory() ? fullPath : path.dirname(fullPath);\n const packageJson: unknown = await readConfigFile(path.join(basePath, 'package.json'));\n\n if (!packageJson && !isSecondary) {\n throw new Error(`Cannot discover package sources at ${folderPathOrFilePath} as 'package.json' was not found.`);\n }\n\n if (packageJson && typeof packageJson !== 'object') {\n throw new Error(`Invalid 'package.json' at ${folderPathOrFilePath}.`);\n }\n\n let ngPackageJson: unknown;\n if (packageJson && packageJson['ngPackage']) {\n // Read `ngPackage` from `package.json`\n ngPackageJson = { ...packageJson['ngPackage'] };\n } else if (pathStats.isDirectory()) {\n ngPackageJson = await readConfigFile(path.join(basePath, 'ng-package.json'));\n if (!ngPackageJson) {\n ngPackageJson = await readConfigFile(path.join(basePath, 'ng-package.js'));\n }\n } else {\n ngPackageJson = await readConfigFile(fullPath);\n }\n\n if (ngPackageJson) {\n ngPackageJson = ngPackageJson['default'] ?? ngPackageJson;\n\n validateNgPackageSchema(ngPackageJson);\n\n return {\n basePath,\n packageJson: packageJson || {},\n ngPackageJson,\n };\n }\n\n if (pathStats.isDirectory()) {\n // return even if it's undefined and use defaults when it's not a file\n return undefined;\n }\n\n if (pathStats.isFile()) {\n // a project file was specified but was in valid\n if (path.basename(folderPathOrFilePath) === 'package.json') {\n throw new Error(`Cannot read a package from 'package.json' without 'ngPackage' property.`);\n }\n\n throw new Error(`Trying to read a package from unsupported file extension. Path: ${folderPathOrFilePath}`);\n }\n\n throw new Error(`Cannot discover package sources at ${folderPathOrFilePath}`);\n}\n\n/**\n * Scans `directoryPath` and sub-folders, looking for `package.json` files.\n * Similar to `find ${directoryPath} --name package.json --exec dirname {}`.\n *\n * @param directoryPath Path pointing to a directory\n * @param excludeFolder A sub-folder of `directoryPath` that is excluded from search results.\n */\nasync function findSecondaryPackagesPaths(directoryPath: string, excludeFolder: string): Promise<string[]> {\n const ignore = [\n '**/node_modules/**',\n '**/.git/**',\n `${path.resolve(directoryPath, excludeFolder)}/**`,\n `${directoryPath}/package.json`,\n `${directoryPath}/ng-package.json`,\n ];\n\n const filePaths = await globFiles(`${directoryPath}/**/{package,ng-package}.json`, {\n ignore,\n nodir: true,\n cwd: directoryPath,\n });\n\n return filePaths.map(path.dirname);\n}\n\n/**\n * Reads a secondary entry point from it's package file.\n *\n * @param primary The primary entry point.\n * @param userPackage The user package for the secondary entry point.\n */\nfunction secondaryEntryPoint(primary: NgEntryPoint, userPackage: UserPackage): NgEntryPoint {\n const { packageJson, ngPackageJson, basePath } = userPackage;\n if (path.resolve(basePath) === path.resolve(primary.basePath)) {\n log.error(`Cannot read secondary entry point. It's already a primary entry point. Path: ${basePath}`);\n throw new Error(`Secondary entry point is already a primary.`);\n }\n\n const relativeSourcePath = path.relative(primary.basePath, basePath);\n const secondaryModuleId = ensureUnixPath(`${primary.moduleId}/${relativeSourcePath}`);\n\n return new NgEntryPoint(packageJson, ngPackageJson, basePath, {\n moduleId: secondaryModuleId,\n primaryDestinationPath: primary.destinationPath,\n destinationPath: path.join(primary.destinationPath, relativeSourcePath),\n });\n}\n\nexport async function discoverPackages({ project }: { project: string }): Promise<NgPackage> {\n project = path.isAbsolute(project) ? project : path.resolve(project);\n\n const { packageJson, ngPackageJson, basePath } = await resolveUserPackage(project);\n const primary = new NgEntryPoint(packageJson, ngPackageJson, basePath);\n log.debug(`Found primary entry point: ${primary.moduleId}`);\n\n const folderPaths = await findSecondaryPackagesPaths(basePath, primary.$get('dest'));\n const secondaries: NgEntryPoint[] = [];\n\n for (const folderPath of folderPaths) {\n const secondaryPackage = await resolveUserPackage(folderPath, true);\n if (secondaryPackage) {\n secondaries.push(secondaryEntryPoint(primary, secondaryPackage));\n }\n }\n\n if (secondaries.length > 0) {\n log.debug(`Found secondary entry points: ${secondaries.map(e => e.moduleId).join(', ')}`);\n }\n\n return new NgPackage(basePath, primary, secondaries);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"discover-packages.js","sourceRoot":"","sources":["../../../src/lib/ng-package/discover-packages.ts"],"names":[],"mappings":"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","sourcesContent":["import { parse as parseJson } from 'jsonc-parser';\nimport * as path from 'path';\nimport { exists, readFile, stat } from '../utils/fs';\nimport { globFiles } from '../utils/glob';\nimport * as log from '../utils/log';\nimport { ensureUnixPath } from '../utils/path';\nimport { NgEntryPoint } from './entry-point/entry-point';\nimport { NgPackage } from './package';\nimport { validateNgPackageSchema } from './schema';\n\ninterface UserPackage {\n /** Values from the `package.json` file of this user package. */\n packageJson: Record<string, any>;\n /** NgPackageConfig for this user package. */\n ngPackageJson: Record<string, any>;\n /** Absolute directory path of this user package. */\n basePath: string;\n}\n\nasync function readConfigFile(filePath: string): Promise<any> {\n if (!(await exists(filePath))) {\n return undefined;\n }\n\n if (filePath.endsWith('.js')) {\n return import(filePath);\n }\n\n const data = await readFile(filePath, 'utf-8');\n\n return parseJson(data, undefined, { allowTrailingComma: true });\n}\n\n/**\n * Resolves a user's package by testing for 'package.json', 'ng-package.json', or 'ng-package.js'.\n *\n * @param folderPathOrFilePath A path pointing either to a file or a directory\n * @param isSecondary A boolean determining if this is a secondary package\n * @return The user's package\n */\nasync function resolveUserPackage(folderPathOrFilePath: string, isSecondary = false): Promise<UserPackage | undefined> {\n const fullPath = path.resolve(folderPathOrFilePath);\n const pathStats = await stat(fullPath);\n const basePath = pathStats.isDirectory() ? fullPath : path.dirname(fullPath);\n const pkgJsonPath = path.join(basePath, 'package.json');\n const packageJson: unknown = await readConfigFile(pkgJsonPath);\n\n if (!packageJson && !isSecondary) {\n throw new Error(`Cannot discover package sources at ${folderPathOrFilePath} as 'package.json' was not found.`);\n }\n\n if (packageJson && typeof packageJson !== 'object') {\n throw new Error(`Invalid 'package.json' at ${folderPathOrFilePath}.`);\n }\n\n let ngPackageJson: unknown;\n if (packageJson && packageJson['ngPackage']) {\n // Read `ngPackage` from `package.json`\n ngPackageJson = { ...packageJson['ngPackage'] };\n log.warn(\n `Found configuration in ${pkgJsonPath}.\\nConfiguring ng-packagr in \"package.json\" is deprecated. Use \"ng-package.json\" instead.`,\n );\n } else if (pathStats.isDirectory()) {\n ngPackageJson = await readConfigFile(path.join(basePath, 'ng-package.json'));\n if (!ngPackageJson) {\n ngPackageJson = await readConfigFile(path.join(basePath, 'ng-package.js'));\n }\n } else {\n ngPackageJson = await readConfigFile(fullPath);\n }\n\n if (ngPackageJson) {\n ngPackageJson = ngPackageJson['default'] ?? ngPackageJson;\n\n validateNgPackageSchema(ngPackageJson);\n\n return {\n basePath,\n packageJson: packageJson || {},\n ngPackageJson,\n };\n }\n\n if (pathStats.isDirectory()) {\n // return even if it's undefined and use defaults when it's not a file\n return undefined;\n }\n\n if (pathStats.isFile()) {\n // a project file was specified but was in valid\n if (path.basename(folderPathOrFilePath) === 'package.json') {\n throw new Error(`Cannot read a package from 'package.json' without 'ngPackage' property.`);\n }\n\n throw new Error(`Trying to read a package from unsupported file extension. Path: ${folderPathOrFilePath}`);\n }\n\n throw new Error(`Cannot discover package sources at ${folderPathOrFilePath}`);\n}\n\n/**\n * Scans `directoryPath` and sub-folders, looking for `package.json` files.\n * Similar to `find ${directoryPath} --name package.json --exec dirname {}`.\n *\n * @param directoryPath Path pointing to a directory\n * @param excludeFolder A sub-folder of `directoryPath` that is excluded from search results.\n */\nasync function findSecondaryPackagesPaths(directoryPath: string, excludeFolder: string): Promise<string[]> {\n const ignore = [\n '**/node_modules/**',\n '**/.git/**',\n `${path.resolve(directoryPath, excludeFolder)}/**`,\n `${directoryPath}/package.json`,\n `${directoryPath}/ng-package.json`,\n ];\n\n const filePaths = await globFiles(`${directoryPath}/**/{package,ng-package}.json`, {\n ignore,\n nodir: true,\n cwd: directoryPath,\n });\n\n return filePaths.map(path.dirname);\n}\n\n/**\n * Reads a secondary entry point from it's package file.\n *\n * @param primary The primary entry point.\n * @param userPackage The user package for the secondary entry point.\n */\nfunction secondaryEntryPoint(primary: NgEntryPoint, userPackage: UserPackage): NgEntryPoint {\n const { packageJson, ngPackageJson, basePath } = userPackage;\n if (path.resolve(basePath) === path.resolve(primary.basePath)) {\n log.error(`Cannot read secondary entry point. It's already a primary entry point. Path: ${basePath}`);\n throw new Error(`Secondary entry point is already a primary.`);\n }\n\n const relativeSourcePath = path.relative(primary.basePath, basePath);\n const secondaryModuleId = ensureUnixPath(`${primary.moduleId}/${relativeSourcePath}`);\n\n return new NgEntryPoint(packageJson, ngPackageJson, basePath, {\n moduleId: secondaryModuleId,\n primaryDestinationPath: primary.destinationPath,\n destinationPath: path.join(primary.destinationPath, relativeSourcePath),\n });\n}\n\nexport async function discoverPackages({ project }: { project: string }): Promise<NgPackage> {\n project = path.isAbsolute(project) ? project : path.resolve(project);\n\n const { packageJson, ngPackageJson, basePath } = await resolveUserPackage(project);\n const primary = new NgEntryPoint(packageJson, ngPackageJson, basePath);\n log.debug(`Found primary entry point: ${primary.moduleId}`);\n\n const folderPaths = await findSecondaryPackagesPaths(basePath, primary.$get('dest'));\n const secondaries: NgEntryPoint[] = [];\n\n for (const folderPath of folderPaths) {\n const secondaryPackage = await resolveUserPackage(folderPath, true);\n if (secondaryPackage) {\n secondaries.push(secondaryEntryPoint(primary, secondaryPackage));\n }\n }\n\n if (secondaries.length > 0) {\n log.debug(`Found secondary entry points: ${secondaries.map(e => e.moduleId).join(', ')}`);\n }\n\n return new NgPackage(basePath, primary, secondaries);\n}\n"]}
|
|
@@ -246,8 +246,7 @@ function checkNonPeerDependencies(packageJson, property, allowed, spinner) {
|
|
|
246
246
|
* This is supposed to match with: https://github.com/angular/angular/blob/e0667efa6eada64d1fb8b143840689090fc82e52/packages/bazel/src/ng_package/packager.ts#L415.
|
|
247
247
|
*/
|
|
248
248
|
function generatePackageExports({ destinationPath, packageJson }, graph) {
|
|
249
|
-
|
|
250
|
-
const exports = (_a = packageJson.exports) !== null && _a !== void 0 ? _a : {};
|
|
249
|
+
const exports = packageJson.exports ? JSON.parse(JSON.stringify(packageJson.exports)) : {};
|
|
251
250
|
const insertMappingOrError = (subpath, mapping) => {
|
|
252
251
|
if (exports[subpath] === undefined) {
|
|
253
252
|
exports[subpath] = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-package.transform.js","sourceRoot":"","sources":["../../../../src/lib/ng-package/entry-point/write-package.transform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAsB;AACtB,2CAA6B;AAE7B,2CAAwC;AACxC,qDAA6D;AAC7D,6CAA2C;AAC3C,uCAAkE;AAClE,2CAA6C;AAC7C,qDAAuC;AACvC,2CAAkD;AAClD,oCAAiH;AAO1G,MAAM,qBAAqB,GAAG,CAAC,OAAyB,EAAE,EAAE,CACjE,IAAA,gCAAoB,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE;;IACjC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC;QAClB,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,MAAM,UAAU,GAAmB,KAAK,CAAC,IAAI,CAAC,IAAA,8BAAsB,GAAE,CAAC,CAAC;IACxE,MAAM,YAAY,GAAiB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9D,MAAM,aAAa,GAAgB,KAAK,CAAC,IAAI,CAAC,iBAAS,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC;IACrC,MAAM,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7C,MAAM,WAAW,GAAa;QAC5B,UAAU;QACV,cAAc;QACd,cAAc;QACd,oBAAoB;QACpB,GAAG,SAAS,CAAC,IAAI,KAAK;KACvB,CAAC;IAEF,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE;QACvC,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,kCAAkC;QAClC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEhC,IAAI;YACF,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE;gBACpE,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAEpD,IAAI;oBACF,MAAM,KAAK,GAAG,MAAM,IAAA,SAAI,EAAC,aAAa,CAAC,CAAC;oBACxC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;wBAClB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC/B,SAAS;qBACV;oBAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;wBACvB,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;qBAClD;iBACF;gBAAC,MAAM,GAAE;gBAEV,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,SAAS;iBACV;gBAED,MAAM,KAAK,GAAG,MAAM,IAAA,gBAAS,EAAC,aAAa,EAAE;oBAC3C,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS;oBACpC,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBAEH,IAAI,KAAK,CAAC,MAAM,EAAE;oBAChB,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;iBAC3B;aACF;YAED,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;gBAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACxD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9B,IAAI,CAAC,IAAI,EAAE;oBACT,IAAI,GAAG,IAAI,WAAI,CAAC,OAAO,CAAC,CAAC;oBACzB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACjB;gBAED,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,IAAA,aAAQ,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;aACnC;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;SACb;QACD,OAAO,CAAC,OAAO,EAAE,CAAC;KACnB;IAED,wBAAwB;IACxB,IAAI;QACF,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAE,EAAE,CACpD,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;QAExE,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAE7D,MAAM,gBAAgB,CACpB,YAAY,EACZ,SAAS,EACT;YACE,MAAM,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC3D,MAAM,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC3D,OAAO,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC3D,QAAQ,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC7D,QAAQ,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC7D,OAAO,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAChE,OAAO,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC;YACrG,gFAAgF;YAChF,WAAW,EAAE,MAAA,YAAY,CAAC,WAAW,CAAC,WAAW,mCAAI,KAAK;SAC3D,EACD,CAAC,CAAC,OAAO,CAAC,KAAK,EACf,eAAkC,EAClC,OAAO,CACR,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,KAAK,CAAC;KACb;IACD,OAAO,CAAC,OAAO,EAAE,CAAC;IAClB,OAAO,CAAC,OAAO,CAAC,SAAS,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAElD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AA/GQ,QAAA,qBAAqB,yBA+G7B;AAEL;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,gBAAgB,CAC7B,UAAwB,EACxB,GAAc,EACd,oBAAwF,EACxF,WAAoB,EACpB,eAAgC,EAChC,OAAgB;;IAEhB,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAElC,4BAA4B;IAC5B,MAAM,WAAW,GAAG,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAE3E,gEAAgE;IAChE,8EAA8E;IAC9E,mFAAmF;IACnF,oCAAoC;IACpC,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE;QACrC,IAAI,WAAW,EAAE;YACf,oDAAoD;YACpD,sDAAsD;YACtD,WAAW,CAAC,OAAO,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;SACnD;QAED,IAAI,CAAC,CAAA,MAAA,WAAW,CAAC,gBAAgB,0CAAE,KAAK,CAAA,IAAI,CAAC,CAAA,MAAA,WAAW,CAAC,YAAY,0CAAE,KAAK,CAAA,EAAE;YAC5E,MAAM,EACJ,gBAAgB,EAAE,uBAAuB,GAAG,EAAE,EAC9C,YAAY,EAAE,mBAAmB,GAAG,EAAE,GACvC,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC;YAEhF,IAAI,YAAY,EAAE;gBAChB,WAAW,CAAC,YAAY,GAAG;oBACzB,GAAG,WAAW,CAAC,YAAY;oBAC3B,KAAK,EAAE,YAAY;iBACpB,CAAC;aACH;SACF;aAAM,IAAI,MAAA,WAAW,CAAC,gBAAgB,0CAAE,KAAK,EAAE;YAC9C,OAAO,CAAC,IAAI,CACV,cAAM,CAAC,MAAM,CACX,mGAAmG,CACpG,CACF,CAAC;YACF,WAAW,CAAC,YAAY,GAAG;gBACzB,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;gBACnC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK;aAC1C,CAAC;YAEF,OAAO,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC;SAC3C;KACF;IAED,iGAAiG;IACjG,+CAA+C;IAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,IAAI;QACF,wBAAwB,CAAC,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;KAC7E;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAA,UAAK,EAAC,UAAU,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,CAAC;KACT;IAED,gDAAgD;IAChD,IAAI,WAAW,CAAC,OAAO,EAAE;QACvB,IAAI,GAAG,CAAC,oBAAoB,KAAK,IAAI,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;YAChH,OAAO,WAAW,CAAC,OAAO,CAAC;SAC5B;aAAM;YACL,OAAO,CAAC,IAAI,CACV,cAAM,CAAC,MAAM,CACX,4GAA4G,CAC7G,CACF,CAAC;SACH;KACF;IAED,IAAI,CAAC,UAAU,CAAC,qBAAqB,IAAI,eAAe,KAAK,SAAS,EAAE;QACtE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,cAAc;YACpB,+BAA+B;gBAC/B,oHAAoH;gBACpH,2GAA2G;gBAC3G,OAAO;gBACP,WAAW,CAAC;KACf;IAED,mCAAmC;IACnC,wDAAwD;IACxD,OAAO,WAAW,CAAC,SAAS,CAAC;IAE7B,MAAM,6BAA6B,GAAG;QACpC,WAAW;QACX,UAAU;QACV,cAAc;QACd,iBAAiB;QACjB,MAAM;QACN,YAAY;QACZ,OAAO;KACR,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,6BAA6B,EAAE;QAChD,IAAI,IAAI,IAAI,WAAW,EAAE;YACvB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,2BAA2B,CAAC,CAAC;SAC3D;KACF;IAED,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;IACvC,MAAM,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AACpH,CAAC;AAED,SAAS,wBAAwB,CAC/B,WAAoC,EACpC,QAAgB,EAChB,OAAiB,EACjB,OAAgB;IAEhB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO;KACR;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE;QACpD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1C,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,mBAAmB,QAAQ,GAAG,CAAC,CAAC;SAC5D;aAAM;YACL,OAAO,CAAC,IAAI,CACV,cAAM,CAAC,MAAM,CACX,mCAAmC,QAAQ,gDAAgD,GAAG,EAAE;gBAC9F,4CAA4C,QAAQ,IAAI,CAC3D,CACF,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,4EAA4E,CAAC,CAAC;SAChH;KACF;AACH,CAAC;AAiBD;;;GAGG;AACH,SAAS,sBAAsB,CAAC,EAAE,eAAe,EAAE,WAAW,EAAgB,EAAE,KAAiB;;IAC/F,MAAM,OAAO,GAAmB,MAAA,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC;IAE1D,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,OAA0B,EAAE,EAAE;QAC3E,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;YAClC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SACvB;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,iFAAiF;QACjF,kFAAkF;QAClF,iFAAiF;QACjF,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAA8B,EAAE;YAC7E,IAAI,aAAa,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE;gBAC9C,MAAM,KAAK,CACT,6CAA6C,OAAO,WAAW,aAAa,IAAI;oBAC9E,+DAA+D,CAClE,CAAC;aACH;YAED,gFAAgF;YAChF,4EAA4E;YAC5E,aAAa,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;SACvD;IACH,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAE,EAAE,CACpD,IAAI,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElE,oBAAoB,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;IAC/C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/E,MAAM,OAAO,GAAG,qBAAqB,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEhF,oBAAoB,CAAC,OAAO,EAAE;YAC5B,KAAK,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAC9D,OAAO,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC3D,MAAM,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC3D,MAAM,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC3D,IAAI,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YACzD,OAAO,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;SAC7D,CAAC,CAAC;KACJ;IAED,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import ora from 'ora';\nimport * as path from 'path';\nimport { BuildGraph } from '../../graph/build-graph';\nimport { Node } from '../../graph/node';\nimport { transformFromPromise } from '../../graph/transform';\nimport { colors } from '../../utils/color';\nimport { copyFile, rmdir, stat, writeFile } from '../../utils/fs';\nimport { globFiles } from '../../utils/glob';\nimport * as log from '../../utils/log';\nimport { ensureUnixPath } from '../../utils/path';\nimport { EntryPointNode, PackageNode, fileUrl, isEntryPoint, isEntryPointInProgress, isPackage } from '../nodes';\nimport { NgPackagrOptions } from '../options.di';\nimport { NgPackage } from '../package';\nimport { NgEntryPoint } from './entry-point';\n\ntype CompilationMode = 'partial' | 'full' | undefined;\n\nexport const writePackageTransform = (options: NgPackagrOptions) =>\n transformFromPromise(async graph => {\n const spinner = ora({\n hideCursor: false,\n discardStdin: false,\n });\n const entryPoint: EntryPointNode = graph.find(isEntryPointInProgress());\n const ngEntryPoint: NgEntryPoint = entryPoint.data.entryPoint;\n const ngPackageNode: PackageNode = graph.find(isPackage);\n const ngPackage = ngPackageNode.data;\n const { destinationFiles } = entryPoint.data;\n const ignorePaths: string[] = [\n '.gitkeep',\n '**/.DS_Store',\n '**/Thumbs.db',\n '**/node_modules/**',\n `${ngPackage.dest}/**`,\n ];\n\n if (!ngEntryPoint.isSecondaryEntryPoint) {\n const assetFiles: string[] = [];\n\n // COPY ASSET FILES TO DESTINATION\n spinner.start('Copying assets');\n\n try {\n for (const asset of [...ngPackage.assets, 'LICENSE', '**/README.md']) {\n let assetFullPath = path.join(ngPackage.src, asset);\n\n try {\n const stats = await stat(assetFullPath);\n if (stats.isFile()) {\n assetFiles.push(assetFullPath);\n continue;\n }\n\n if (stats.isDirectory()) {\n assetFullPath = path.join(assetFullPath, '**/*');\n }\n } catch {}\n\n if (asset === 'LICENSE') {\n continue;\n }\n\n const files = await globFiles(assetFullPath, {\n ignore: ignorePaths,\n cache: ngPackageNode.cache.globCache,\n dot: true,\n nodir: true,\n });\n\n if (files.length) {\n assetFiles.push(...files);\n }\n }\n\n for (const file of assetFiles) {\n const relativePath = path.relative(ngPackage.src, file);\n const destination = path.resolve(ngPackage.dest, relativePath);\n const nodeUri = fileUrl(ensureUnixPath(file));\n let node = graph.get(nodeUri);\n if (!node) {\n node = new Node(nodeUri);\n graph.put(node);\n }\n\n entryPoint.dependsOn(node);\n await copyFile(file, destination);\n }\n } catch (error) {\n spinner.fail();\n throw error;\n }\n spinner.succeed();\n }\n\n // 6. WRITE PACKAGE.JSON\n try {\n spinner.start('Writing package manifest');\n const relativeUnixFromDestPath = (filePath: string) =>\n ensureUnixPath(path.relative(ngEntryPoint.destinationPath, filePath));\n\n const { compilationMode } = entryPoint.data.tsConfig.options;\n\n await writePackageJson(\n ngEntryPoint,\n ngPackage,\n {\n module: relativeUnixFromDestPath(destinationFiles.fesm2015),\n es2020: relativeUnixFromDestPath(destinationFiles.fesm2020),\n esm2020: relativeUnixFromDestPath(destinationFiles.esm2020),\n fesm2020: relativeUnixFromDestPath(destinationFiles.fesm2020),\n fesm2015: relativeUnixFromDestPath(destinationFiles.fesm2015),\n typings: relativeUnixFromDestPath(destinationFiles.declarations),\n exports: ngEntryPoint.isSecondaryEntryPoint ? undefined : generatePackageExports(ngEntryPoint, graph),\n // webpack v4+ specific flag to enable advanced optimizations and code splitting\n sideEffects: ngEntryPoint.packageJson.sideEffects ?? false,\n },\n !!options.watch,\n compilationMode as CompilationMode,\n spinner,\n );\n } catch (error) {\n spinner.fail();\n throw error;\n }\n spinner.succeed();\n spinner.succeed(`Built ${ngEntryPoint.moduleId}`);\n\n return graph;\n });\n\n/**\n * Creates and writes a `package.json` file of the entry point used by the `node_module`\n * resolution strategies.\n *\n * #### Example\n *\n * A consumer of the entry point depends on it by `import {..} from '@my/module/id';`.\n * The module id `@my/module/id` will be resolved to the `package.json` file that is written by\n * this build step.\n * The properties `main`, `module`, `typings` (and so on) in the `package.json` point to the\n * flattened JavaScript bundles, type definitions, (...).\n *\n * @param entryPoint An entry point of an Angular package / library\n * @param additionalProperties Additional properties, e.g. binary artefacts (bundle files), to merge into `package.json`\n */\nasync function writePackageJson(\n entryPoint: NgEntryPoint,\n pkg: NgPackage,\n additionalProperties: { [key: string]: string | boolean | string[] | ConditionalExport },\n isWatchMode: boolean,\n compilationMode: CompilationMode,\n spinner: ora.Ora,\n): Promise<void> {\n log.debug('Writing package.json');\n\n // set additional properties\n const packageJson = { ...entryPoint.packageJson, ...additionalProperties };\n\n // read tslib version from `@angular/compiler` so that our tslib\n // version at least matches that of angular if we use require('tslib').version\n // it will get what installed and not the minimum version nor if it is a `~` or `^`\n // this is only required for primary\n if (!entryPoint.isSecondaryEntryPoint) {\n if (isWatchMode) {\n // Needed because of Webpack's 5 `cachemanagedpaths`\n // https://github.com/angular/angular-cli/issues/20962\n packageJson.version = `0.0.0-watch+${Date.now()}`;\n }\n\n if (!packageJson.peerDependencies?.tslib && !packageJson.dependencies?.tslib) {\n const {\n peerDependencies: angularPeerDependencies = {},\n dependencies: angularDependencies = {},\n } = require('@angular/compiler/package.json');\n const tsLibVersion = angularPeerDependencies.tslib || angularDependencies.tslib;\n\n if (tsLibVersion) {\n packageJson.dependencies = {\n ...packageJson.dependencies,\n tslib: tsLibVersion,\n };\n }\n } else if (packageJson.peerDependencies?.tslib) {\n spinner.warn(\n colors.yellow(\n `'tslib' is no longer recommended to be used as a 'peerDependencies'. Moving it to 'dependencies'.`,\n ),\n );\n packageJson.dependencies = {\n ...(packageJson.dependencies || {}),\n tslib: packageJson.peerDependencies.tslib,\n };\n\n delete packageJson.peerDependencies.tslib;\n }\n }\n\n // Verify non-peerDependencies as they can easily lead to duplicate installs or version conflicts\n // in the node_modules folder of an application\n const allowedList = pkg.allowedNonPeerDependencies.map(value => new RegExp(value));\n try {\n checkNonPeerDependencies(packageJson, 'dependencies', allowedList, spinner);\n } catch (e) {\n await rmdir(entryPoint.destinationPath, { recursive: true });\n throw e;\n }\n\n // Removes scripts from package.json after build\n if (packageJson.scripts) {\n if (pkg.keepLifecycleScripts !== true) {\n spinner.info(`Removing scripts section in package.json as it's considered a potential security vulnerability.`);\n delete packageJson.scripts;\n } else {\n spinner.warn(\n colors.yellow(\n `You enabled keepLifecycleScripts explicitly. The scripts section in package.json will be published to npm.`,\n ),\n );\n }\n }\n\n if (!entryPoint.isSecondaryEntryPoint && compilationMode !== 'partial') {\n const scripts = packageJson.scripts || (packageJson.scripts = {});\n scripts.prepublishOnly =\n 'node --eval \"console.error(\\'' +\n 'ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\\\n' +\n 'Please delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\\\n' +\n '\\')\" ' +\n '&& exit 1';\n }\n\n // keep the dist package.json clean\n // this will not throw if ngPackage field does not exist\n delete packageJson.ngPackage;\n\n const packageJsonPropertiesToDelete = [\n 'stylelint',\n 'prettier',\n 'browserslist',\n 'devDependencies',\n 'jest',\n 'workspaces',\n 'husky',\n ];\n\n for (const prop of packageJsonPropertiesToDelete) {\n if (prop in packageJson) {\n delete packageJson[prop];\n spinner.info(`Removing ${prop} section in package.json.`);\n }\n }\n\n packageJson.name = entryPoint.moduleId;\n await writeFile(path.join(entryPoint.destinationPath, 'package.json'), JSON.stringify(packageJson, undefined, 2));\n}\n\nfunction checkNonPeerDependencies(\n packageJson: Record<string, unknown>,\n property: string,\n allowed: RegExp[],\n spinner: ora.Ora,\n) {\n if (!packageJson[property]) {\n return;\n }\n\n for (const dep of Object.keys(packageJson[property])) {\n if (allowed.some(regex => regex.test(dep))) {\n log.debug(`Dependency ${dep} is allowed in '${property}'`);\n } else {\n spinner.warn(\n colors.yellow(\n `Distributing npm packages with '${property}' is not recommended. Please consider adding ${dep}` +\n `to 'peerDependencies' or remove it from '${property}'.`,\n ),\n );\n throw new Error(`Dependency ${dep} must be explicitly allowed using the \"allowedNonPeerDependencies\" option.`);\n }\n }\n}\n\ntype PackageExports = Record<string, ConditionalExport>;\n\n/**\n * Type describing the conditional exports descriptor for an entry-point.\n * https://nodejs.org/api/packages.html#packages_conditional_exports\n */\ntype ConditionalExport = {\n node?: string;\n types?: string;\n esm2020?: string;\n es2020?: string;\n es2015?: string;\n default?: string;\n};\n\n/**\n * Generates the `package.json` package exports following APF v13.\n * This is supposed to match with: https://github.com/angular/angular/blob/e0667efa6eada64d1fb8b143840689090fc82e52/packages/bazel/src/ng_package/packager.ts#L415.\n */\nfunction generatePackageExports({ destinationPath, packageJson }: NgEntryPoint, graph: BuildGraph): PackageExports {\n const exports: PackageExports = packageJson.exports ?? {};\n\n const insertMappingOrError = (subpath: string, mapping: ConditionalExport) => {\n if (exports[subpath] === undefined) {\n exports[subpath] = {};\n }\n\n const subpathExport = exports[subpath];\n\n // Go through all conditions that should be inserted. If the condition is already\n // manually set of the subpath export, we throw an error. In general, we allow for\n // additional conditions to be set. These will always precede the generated ones.\n for (const conditionName of Object.keys(mapping) as [keyof ConditionalExport]) {\n if (subpathExport[conditionName] !== undefined) {\n throw Error(\n `Found a conflicting export condition for \"${subpath}\". The \"${conditionName}\" ` +\n `condition would be overridden by ng-packagr. Please unset it.`,\n );\n }\n\n // **Note**: The order of the conditions is preserved even though we are setting\n // the conditions once at a time (the latest assignment will be at the end).\n subpathExport[conditionName] = mapping[conditionName];\n }\n };\n\n const relativeUnixFromDestPath = (filePath: string) =>\n './' + ensureUnixPath(path.relative(destinationPath, filePath));\n\n insertMappingOrError('./package.json', { default: './package.json' });\n\n const entryPoints = graph.filter(isEntryPoint);\n for (const entryPoint of entryPoints) {\n const { destinationFiles, isSecondaryEntryPoint } = entryPoint.data.entryPoint;\n const subpath = isSecondaryEntryPoint ? `./${destinationFiles.directory}` : '.';\n\n insertMappingOrError(subpath, {\n types: relativeUnixFromDestPath(destinationFiles.declarations),\n esm2020: relativeUnixFromDestPath(destinationFiles.esm2020),\n es2020: relativeUnixFromDestPath(destinationFiles.fesm2020),\n es2015: relativeUnixFromDestPath(destinationFiles.fesm2015),\n node: relativeUnixFromDestPath(destinationFiles.fesm2015),\n default: relativeUnixFromDestPath(destinationFiles.fesm2020),\n });\n }\n\n return exports;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"write-package.transform.js","sourceRoot":"","sources":["../../../../src/lib/ng-package/entry-point/write-package.transform.ts"],"names":[],"mappings":"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","sourcesContent":["import ora from 'ora';\nimport * as path from 'path';\nimport { BuildGraph } from '../../graph/build-graph';\nimport { Node } from '../../graph/node';\nimport { transformFromPromise } from '../../graph/transform';\nimport { colors } from '../../utils/color';\nimport { copyFile, rmdir, stat, writeFile } from '../../utils/fs';\nimport { globFiles } from '../../utils/glob';\nimport * as log from '../../utils/log';\nimport { ensureUnixPath } from '../../utils/path';\nimport { EntryPointNode, PackageNode, fileUrl, isEntryPoint, isEntryPointInProgress, isPackage } from '../nodes';\nimport { NgPackagrOptions } from '../options.di';\nimport { NgPackage } from '../package';\nimport { NgEntryPoint } from './entry-point';\n\ntype CompilationMode = 'partial' | 'full' | undefined;\n\nexport const writePackageTransform = (options: NgPackagrOptions) =>\n transformFromPromise(async graph => {\n const spinner = ora({\n hideCursor: false,\n discardStdin: false,\n });\n const entryPoint: EntryPointNode = graph.find(isEntryPointInProgress());\n const ngEntryPoint: NgEntryPoint = entryPoint.data.entryPoint;\n const ngPackageNode: PackageNode = graph.find(isPackage);\n const ngPackage = ngPackageNode.data;\n const { destinationFiles } = entryPoint.data;\n const ignorePaths: string[] = [\n '.gitkeep',\n '**/.DS_Store',\n '**/Thumbs.db',\n '**/node_modules/**',\n `${ngPackage.dest}/**`,\n ];\n\n if (!ngEntryPoint.isSecondaryEntryPoint) {\n const assetFiles: string[] = [];\n\n // COPY ASSET FILES TO DESTINATION\n spinner.start('Copying assets');\n\n try {\n for (const asset of [...ngPackage.assets, 'LICENSE', '**/README.md']) {\n let assetFullPath = path.join(ngPackage.src, asset);\n\n try {\n const stats = await stat(assetFullPath);\n if (stats.isFile()) {\n assetFiles.push(assetFullPath);\n continue;\n }\n\n if (stats.isDirectory()) {\n assetFullPath = path.join(assetFullPath, '**/*');\n }\n } catch {}\n\n if (asset === 'LICENSE') {\n continue;\n }\n\n const files = await globFiles(assetFullPath, {\n ignore: ignorePaths,\n cache: ngPackageNode.cache.globCache,\n dot: true,\n nodir: true,\n });\n\n if (files.length) {\n assetFiles.push(...files);\n }\n }\n\n for (const file of assetFiles) {\n const relativePath = path.relative(ngPackage.src, file);\n const destination = path.resolve(ngPackage.dest, relativePath);\n const nodeUri = fileUrl(ensureUnixPath(file));\n let node = graph.get(nodeUri);\n if (!node) {\n node = new Node(nodeUri);\n graph.put(node);\n }\n\n entryPoint.dependsOn(node);\n await copyFile(file, destination);\n }\n } catch (error) {\n spinner.fail();\n throw error;\n }\n spinner.succeed();\n }\n\n // 6. WRITE PACKAGE.JSON\n try {\n spinner.start('Writing package manifest');\n const relativeUnixFromDestPath = (filePath: string) =>\n ensureUnixPath(path.relative(ngEntryPoint.destinationPath, filePath));\n\n const { compilationMode } = entryPoint.data.tsConfig.options;\n\n await writePackageJson(\n ngEntryPoint,\n ngPackage,\n {\n module: relativeUnixFromDestPath(destinationFiles.fesm2015),\n es2020: relativeUnixFromDestPath(destinationFiles.fesm2020),\n esm2020: relativeUnixFromDestPath(destinationFiles.esm2020),\n fesm2020: relativeUnixFromDestPath(destinationFiles.fesm2020),\n fesm2015: relativeUnixFromDestPath(destinationFiles.fesm2015),\n typings: relativeUnixFromDestPath(destinationFiles.declarations),\n exports: ngEntryPoint.isSecondaryEntryPoint ? undefined : generatePackageExports(ngEntryPoint, graph),\n // webpack v4+ specific flag to enable advanced optimizations and code splitting\n sideEffects: ngEntryPoint.packageJson.sideEffects ?? false,\n },\n !!options.watch,\n compilationMode as CompilationMode,\n spinner,\n );\n } catch (error) {\n spinner.fail();\n throw error;\n }\n spinner.succeed();\n spinner.succeed(`Built ${ngEntryPoint.moduleId}`);\n\n return graph;\n });\n\n/**\n * Creates and writes a `package.json` file of the entry point used by the `node_module`\n * resolution strategies.\n *\n * #### Example\n *\n * A consumer of the entry point depends on it by `import {..} from '@my/module/id';`.\n * The module id `@my/module/id` will be resolved to the `package.json` file that is written by\n * this build step.\n * The properties `main`, `module`, `typings` (and so on) in the `package.json` point to the\n * flattened JavaScript bundles, type definitions, (...).\n *\n * @param entryPoint An entry point of an Angular package / library\n * @param additionalProperties Additional properties, e.g. binary artefacts (bundle files), to merge into `package.json`\n */\nasync function writePackageJson(\n entryPoint: NgEntryPoint,\n pkg: NgPackage,\n additionalProperties: { [key: string]: string | boolean | string[] | ConditionalExport },\n isWatchMode: boolean,\n compilationMode: CompilationMode,\n spinner: ora.Ora,\n): Promise<void> {\n log.debug('Writing package.json');\n\n // set additional properties\n const packageJson = { ...entryPoint.packageJson, ...additionalProperties };\n\n // read tslib version from `@angular/compiler` so that our tslib\n // version at least matches that of angular if we use require('tslib').version\n // it will get what installed and not the minimum version nor if it is a `~` or `^`\n // this is only required for primary\n if (!entryPoint.isSecondaryEntryPoint) {\n if (isWatchMode) {\n // Needed because of Webpack's 5 `cachemanagedpaths`\n // https://github.com/angular/angular-cli/issues/20962\n packageJson.version = `0.0.0-watch+${Date.now()}`;\n }\n\n if (!packageJson.peerDependencies?.tslib && !packageJson.dependencies?.tslib) {\n const {\n peerDependencies: angularPeerDependencies = {},\n dependencies: angularDependencies = {},\n } = require('@angular/compiler/package.json');\n const tsLibVersion = angularPeerDependencies.tslib || angularDependencies.tslib;\n\n if (tsLibVersion) {\n packageJson.dependencies = {\n ...packageJson.dependencies,\n tslib: tsLibVersion,\n };\n }\n } else if (packageJson.peerDependencies?.tslib) {\n spinner.warn(\n colors.yellow(\n `'tslib' is no longer recommended to be used as a 'peerDependencies'. Moving it to 'dependencies'.`,\n ),\n );\n packageJson.dependencies = {\n ...(packageJson.dependencies || {}),\n tslib: packageJson.peerDependencies.tslib,\n };\n\n delete packageJson.peerDependencies.tslib;\n }\n }\n\n // Verify non-peerDependencies as they can easily lead to duplicate installs or version conflicts\n // in the node_modules folder of an application\n const allowedList = pkg.allowedNonPeerDependencies.map(value => new RegExp(value));\n try {\n checkNonPeerDependencies(packageJson, 'dependencies', allowedList, spinner);\n } catch (e) {\n await rmdir(entryPoint.destinationPath, { recursive: true });\n throw e;\n }\n\n // Removes scripts from package.json after build\n if (packageJson.scripts) {\n if (pkg.keepLifecycleScripts !== true) {\n spinner.info(`Removing scripts section in package.json as it's considered a potential security vulnerability.`);\n delete packageJson.scripts;\n } else {\n spinner.warn(\n colors.yellow(\n `You enabled keepLifecycleScripts explicitly. The scripts section in package.json will be published to npm.`,\n ),\n );\n }\n }\n\n if (!entryPoint.isSecondaryEntryPoint && compilationMode !== 'partial') {\n const scripts = packageJson.scripts || (packageJson.scripts = {});\n scripts.prepublishOnly =\n 'node --eval \"console.error(\\'' +\n 'ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\\\n' +\n 'Please delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\\\n' +\n '\\')\" ' +\n '&& exit 1';\n }\n\n // keep the dist package.json clean\n // this will not throw if ngPackage field does not exist\n delete packageJson.ngPackage;\n\n const packageJsonPropertiesToDelete = [\n 'stylelint',\n 'prettier',\n 'browserslist',\n 'devDependencies',\n 'jest',\n 'workspaces',\n 'husky',\n ];\n\n for (const prop of packageJsonPropertiesToDelete) {\n if (prop in packageJson) {\n delete packageJson[prop];\n spinner.info(`Removing ${prop} section in package.json.`);\n }\n }\n\n packageJson.name = entryPoint.moduleId;\n await writeFile(path.join(entryPoint.destinationPath, 'package.json'), JSON.stringify(packageJson, undefined, 2));\n}\n\nfunction checkNonPeerDependencies(\n packageJson: Record<string, unknown>,\n property: string,\n allowed: RegExp[],\n spinner: ora.Ora,\n) {\n if (!packageJson[property]) {\n return;\n }\n\n for (const dep of Object.keys(packageJson[property])) {\n if (allowed.some(regex => regex.test(dep))) {\n log.debug(`Dependency ${dep} is allowed in '${property}'`);\n } else {\n spinner.warn(\n colors.yellow(\n `Distributing npm packages with '${property}' is not recommended. Please consider adding ${dep}` +\n `to 'peerDependencies' or remove it from '${property}'.`,\n ),\n );\n throw new Error(`Dependency ${dep} must be explicitly allowed using the \"allowedNonPeerDependencies\" option.`);\n }\n }\n}\n\ntype PackageExports = Record<string, ConditionalExport>;\n\n/**\n * Type describing the conditional exports descriptor for an entry-point.\n * https://nodejs.org/api/packages.html#packages_conditional_exports\n */\ntype ConditionalExport = {\n node?: string;\n types?: string;\n esm2020?: string;\n es2020?: string;\n es2015?: string;\n default?: string;\n};\n\n/**\n * Generates the `package.json` package exports following APF v13.\n * This is supposed to match with: https://github.com/angular/angular/blob/e0667efa6eada64d1fb8b143840689090fc82e52/packages/bazel/src/ng_package/packager.ts#L415.\n */\nfunction generatePackageExports({ destinationPath, packageJson }: NgEntryPoint, graph: BuildGraph): PackageExports {\n const exports: PackageExports = packageJson.exports ? JSON.parse(JSON.stringify(packageJson.exports)) : {};\n\n const insertMappingOrError = (subpath: string, mapping: ConditionalExport) => {\n if (exports[subpath] === undefined) {\n exports[subpath] = {};\n }\n\n const subpathExport = exports[subpath];\n\n // Go through all conditions that should be inserted. If the condition is already\n // manually set of the subpath export, we throw an error. In general, we allow for\n // additional conditions to be set. These will always precede the generated ones.\n for (const conditionName of Object.keys(mapping) as [keyof ConditionalExport]) {\n if (subpathExport[conditionName] !== undefined) {\n throw Error(\n `Found a conflicting export condition for \"${subpath}\". The \"${conditionName}\" ` +\n `condition would be overridden by ng-packagr. Please unset it.`,\n );\n }\n\n // **Note**: The order of the conditions is preserved even though we are setting\n // the conditions once at a time (the latest assignment will be at the end).\n subpathExport[conditionName] = mapping[conditionName];\n }\n };\n\n const relativeUnixFromDestPath = (filePath: string) =>\n './' + ensureUnixPath(path.relative(destinationPath, filePath));\n\n insertMappingOrError('./package.json', { default: './package.json' });\n\n const entryPoints = graph.filter(isEntryPoint);\n for (const entryPoint of entryPoints) {\n const { destinationFiles, isSecondaryEntryPoint } = entryPoint.data.entryPoint;\n const subpath = isSecondaryEntryPoint ? `./${destinationFiles.directory}` : '.';\n\n insertMappingOrError(subpath, {\n types: relativeUnixFromDestPath(destinationFiles.declarations),\n esm2020: relativeUnixFromDestPath(destinationFiles.esm2020),\n es2020: relativeUnixFromDestPath(destinationFiles.fesm2020),\n es2015: relativeUnixFromDestPath(destinationFiles.fesm2015),\n node: relativeUnixFromDestPath(destinationFiles.fesm2015),\n default: relativeUnixFromDestPath(destinationFiles.fesm2020),\n });\n }\n\n return exports;\n}\n"]}
|
package/lib/utils/color.js
CHANGED
|
@@ -22,10 +22,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
exports.colors = void 0;
|
|
23
23
|
const ansiColors = __importStar(require("ansi-colors"));
|
|
24
24
|
const tty_1 = require("tty");
|
|
25
|
-
|
|
25
|
+
function supportColor() {
|
|
26
|
+
if (process.env.FORCE_COLOR !== undefined) {
|
|
27
|
+
// 2 colors: FORCE_COLOR = 0 (Disables colors), depth 1
|
|
28
|
+
// 16 colors: FORCE_COLOR = 1, depth 4
|
|
29
|
+
// 256 colors: FORCE_COLOR = 2, depth 8
|
|
30
|
+
// 16,777,216 colors: FORCE_COLOR = 3, depth 16
|
|
31
|
+
// See: https://nodejs.org/dist/latest-v12.x/docs/api/tty.html#tty_writestream_getcolordepth_env
|
|
32
|
+
// and https://github.com/nodejs/node/blob/b9f36062d7b5c5039498e98d2f2c180dca2a7065/lib/internal/tty.js#L106;
|
|
33
|
+
switch (process.env.FORCE_COLOR) {
|
|
34
|
+
case '':
|
|
35
|
+
case 'true':
|
|
36
|
+
case '1':
|
|
37
|
+
case '2':
|
|
38
|
+
case '3':
|
|
39
|
+
return true;
|
|
40
|
+
default:
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (process.stdout instanceof tty_1.WriteStream) {
|
|
45
|
+
return process.stdout.getColorDepth() > 1;
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
26
49
|
// Create a separate instance to prevent unintended global changes to the color configuration
|
|
27
50
|
// Create function is not defined in the typings. See: https://github.com/doowb/ansi-colors/pull/44
|
|
28
51
|
const colors = ansiColors.create();
|
|
29
52
|
exports.colors = colors;
|
|
30
|
-
colors.enabled =
|
|
53
|
+
colors.enabled = supportColor();
|
|
31
54
|
//# sourceMappingURL=color.js.map
|
package/lib/utils/color.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/lib/utils/color.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAC1C,6BAAkC;AAIlC,MAAM,
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/lib/utils/color.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAC1C,6BAAkC;AAIlC,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE;QACzC,uDAAuD;QACvD,sCAAsC;QACtC,uCAAuC;QACvC,+CAA+C;QAC/C,gGAAgG;QAChG,6GAA6G;QAC7G,QAAQ,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;YAC/B,KAAK,EAAE,CAAC;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,KAAK,CAAC;SAChB;KACF;IAED,IAAI,OAAO,CAAC,MAAM,YAAY,iBAAW,EAAE;QACzC,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KAC3C;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,6FAA6F;AAC7F,mGAAmG;AACnG,MAAM,MAAM,GAAI,UAAwD,CAAC,MAAM,EAAE,CAAC;AAGzE,wBAAM;AAFf,MAAM,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC","sourcesContent":["import * as ansiColors from 'ansi-colors';\nimport { WriteStream } from 'tty';\n\ntype AnsiColors = typeof ansiColors;\n\nfunction supportColor(): boolean {\n if (process.env.FORCE_COLOR !== undefined) {\n // 2 colors: FORCE_COLOR = 0 (Disables colors), depth 1\n // 16 colors: FORCE_COLOR = 1, depth 4\n // 256 colors: FORCE_COLOR = 2, depth 8\n // 16,777,216 colors: FORCE_COLOR = 3, depth 16\n // See: https://nodejs.org/dist/latest-v12.x/docs/api/tty.html#tty_writestream_getcolordepth_env\n // and https://github.com/nodejs/node/blob/b9f36062d7b5c5039498e98d2f2c180dca2a7065/lib/internal/tty.js#L106;\n switch (process.env.FORCE_COLOR) {\n case '':\n case 'true':\n case '1':\n case '2':\n case '3':\n return true;\n default:\n return false;\n }\n }\n\n if (process.stdout instanceof WriteStream) {\n return process.stdout.getColorDepth() > 1;\n }\n\n return false;\n}\n\n\n// Create a separate instance to prevent unintended global changes to the color configuration\n// Create function is not defined in the typings. See: https://github.com/doowb/ansi-colors/pull/44\nconst colors = (ansiColors as AnsiColors & { create: () => AnsiColors }).create();\ncolors.enabled = supportColor();\n\nexport { colors };\n"]}
|