jsii 5.9.15-dev.3 → 5.9.18

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.
@@ -36,7 +36,7 @@ export interface ProjectInfo {
36
36
  };
37
37
  readonly keywords?: readonly string[];
38
38
  readonly main: string;
39
- readonly types: string;
39
+ readonly types?: string;
40
40
  readonly dependencies: {
41
41
  readonly [name: string]: string;
42
42
  };
@@ -75,7 +75,7 @@ function loadProjectInfo(projectRoot) {
75
75
  license: _validateLicense(pkg.license),
76
76
  keywords: pkg.keywords,
77
77
  main: _required(pkg.main, 'The "package.json" file must specify the "main" attribute'),
78
- types: _required(pkg.types, 'The "package.json" file must specify the "types" attribute'),
78
+ types: pkg.types,
79
79
  dependencies,
80
80
  peerDependencies,
81
81
  dependencyClosure: transitiveDependencies,
@@ -1 +1 @@
1
- {"version":3,"file":"project-info.js","sourceRoot":"","sources":["../src/project-info.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport * as spec from '@jsii/spec';\nimport { findAssemblyFile, loadAssemblyFromFile } from '@jsii/spec';\nimport * as log4js from 'log4js';\nimport * as semver from 'semver';\nimport * as ts from 'typescript';\n\nimport { findDependencyDirectory } from './common/find-utils';\nimport { ASSEMBLY_FEATURES_SUPPORTED } from './helpers';\nimport { JsiiDiagnostic } from './jsii-diagnostic';\nimport { TypeScriptConfigValidationRuleSet } from './tsconfig';\nimport { JsiiError, parsePerson, parseRepository } from './utils';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\nconst spdx: Set<string> = require('spdx-license-list/simple');\n\nconst LOG = log4js.getLogger('jsii/package-info');\n\nexport type TSCompilerOptions = Partial<\n Pick<\n ts.CompilerOptions,\n // Directory preferences\n | 'outDir'\n | 'rootDir'\n // TypeScript path mapping\n | 'baseUrl'\n | 'paths'\n // Style preferences\n | 'forceConsistentCasingInFileNames'\n | 'noImplicitOverride'\n | 'noPropertyAccessFromIndexSignature'\n | 'noUncheckedIndexedAccess'\n // Source map preferences\n | 'declarationMap'\n | 'inlineSourceMap'\n | 'inlineSources'\n | 'sourceMap'\n // Types limitations\n | 'types'\n >\n>;\n\n/**\n * The assembly targets have some typing in `spec.PackageJson`, extract it.\n *\n * The types in the upstream spec library:\n *\n * - Missing the user-visible `go` target\n * - Missing the synthetic `js` target\n */\nexport type AssemblyTargets = spec.PackageJson['jsii']['targets'] & {\n js?: {\n npm: string;\n };\n go?: {\n moduleName: string;\n packageName: string;\n };\n [otherLanguage: string]: unknown;\n};\n\nexport interface ProjectInfo {\n readonly projectRoot: string;\n readonly packageJson: PackageJson;\n\n readonly name: string;\n readonly version: string;\n readonly author: spec.Person;\n readonly deprecated?: string;\n readonly stability?: spec.Stability;\n readonly license: string;\n readonly repository: {\n readonly type: string;\n readonly url: string;\n readonly directory?: string;\n };\n readonly keywords?: readonly string[];\n\n readonly main: string;\n readonly types: string;\n\n readonly dependencies: { readonly [name: string]: string };\n readonly peerDependencies: { readonly [name: string]: string };\n readonly dependencyClosure: readonly spec.Assembly[];\n readonly bundleDependencies?: { readonly [name: string]: string };\n readonly targets: AssemblyTargets;\n readonly metadata?: { readonly [key: string]: any };\n readonly jsiiVersionFormat: 'short' | 'full';\n readonly diagnostics?: { readonly [code: string]: ts.DiagnosticCategory };\n readonly description?: string;\n readonly homepage?: string;\n readonly contributors?: readonly spec.Person[];\n readonly excludeTypescript: readonly string[];\n readonly projectReferences?: boolean;\n readonly tsc?: TSCompilerOptions;\n readonly bin?: { readonly [name: string]: string };\n readonly exports?: {\n readonly [name: string]: string | { readonly [name: string]: string };\n };\n\n // user-provided tsconfig\n readonly tsconfig?: string;\n readonly validateTsconfig?: TypeScriptConfigValidationRuleSet;\n}\n\n/**\n * A type representing the contents of a `package.json` file.\n *\n * Note that there is also a `PackageJson` type in `@jsii/spec`, and this one is\n * not the same. Do not ask me why.\n */\nexport interface PackageJson {\n readonly description?: string;\n readonly homepage?: string;\n readonly name?: string;\n readonly version?: string;\n readonly keywords?: readonly string[];\n readonly license?: string;\n readonly private?: boolean;\n\n readonly exports?: { readonly [path: string]: string | { readonly [name: string]: string } };\n readonly main?: string;\n readonly types?: string;\n /**\n * @example { \"<4.0\": { \"*\": [\"ts3.9/*\"] } }\n * @example { \"<4.0\": { \"index.d.ts\": [\"index.ts3-9.d.ts\"] } }\n */\n readonly typesVersions?: {\n readonly [versionRange: string]: { readonly [pattern: string]: readonly string[] };\n };\n\n readonly bin?: { readonly [name: string]: string };\n\n readonly stability?: string;\n readonly deprecated?: string;\n\n readonly dependencies?: { readonly [name: string]: string };\n readonly devDependencies?: { readonly [name: string]: string };\n readonly peerDependencies?: { readonly [name: string]: string };\n\n readonly bundleDependencies?: readonly string[];\n readonly bundledDependencies?: readonly string[];\n\n readonly jsii?: {\n // main jsii config\n readonly diagnostics?: { readonly [id: string]: 'error' | 'warning' | 'suggestion' | 'message' };\n readonly metadata?: { readonly [key: string]: unknown };\n readonly targets?: AssemblyTargets;\n readonly versionFormat?: 'short' | 'full';\n\n // Either user-provided config ...\n readonly tsconfig?: string;\n readonly validateTsconfig?: string;\n\n // ... or configure tsc here\n readonly excludeTypescript?: readonly string[];\n readonly projectReferences?: boolean;\n readonly tsc?: TSCompilerOptions;\n\n // unexpected options\n readonly [key: string]: unknown;\n };\n\n readonly [key: string]: unknown;\n}\n\nexport interface ProjectInfoResult {\n readonly projectInfo: ProjectInfo;\n readonly diagnostics: readonly ts.Diagnostic[];\n}\n\nexport function loadProjectInfo(projectRoot: string): ProjectInfoResult {\n const packageJsonPath = path.join(projectRoot, 'package.json');\n const pkg: PackageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));\n\n const diagnostics: ts.Diagnostic[] = [];\n\n let bundleDependencies: { [name: string]: string } | undefined;\n for (const name of pkg.bundleDependencies ?? pkg.bundledDependencies ?? []) {\n const version = pkg.dependencies?.[name];\n if (!version) {\n throw new JsiiError(\n `The \"package.json\" file has \"${name}\" in \"bundleDependencies\", but it is not declared in \"dependencies\"`,\n );\n }\n\n if (pkg.peerDependencies && name in pkg.peerDependencies) {\n throw new JsiiError(\n `The \"package.json\" file has \"${name}\" in \"bundleDependencies\", and also in \"peerDependencies\"`,\n );\n }\n\n bundleDependencies = bundleDependencies ?? {};\n bundleDependencies[name] = _resolveVersion(version, projectRoot).version;\n }\n\n // Check peerDependencies are also in devDependencies\n // You need this to write tests properly. There are probably cases where\n // it makes sense to have this different, so most of what this checking\n // produces is warnings, not errors.\n const devDependencies = pkg.devDependencies ?? {};\n for (const [name, rng] of Object.entries(pkg.peerDependencies ?? {})) {\n const range = new semver.Range(_resolveVersion(rng as string, projectRoot).version);\n const minVersion = semver.minVersion(range)?.raw;\n\n if (!(name in devDependencies) || devDependencies[name] !== `${minVersion}`) {\n diagnostics.push(\n JsiiDiagnostic.JSII_0006_MISSING_DEV_DEPENDENCY.createDetached(\n name,\n `${rng as any}`,\n `${minVersion}`,\n `${devDependencies[name]}`,\n ),\n );\n continue;\n }\n }\n\n const bundled = new Set(Object.keys(bundleDependencies ?? {}));\n const dependencies: Record<string, string> = filterDictByKey(\n pkg.dependencies ?? {},\n (depName) => !bundled.has(depName),\n );\n const peerDependencies: Record<string, string> = pkg.peerDependencies ?? {};\n\n const resolver = new DependencyResolver();\n const resolved = resolver.discoverDependencyTree(projectRoot, {\n ...dependencies,\n ...peerDependencies,\n });\n const transitiveDependencies = resolver.assemblyClosure(resolved);\n\n const metadata = mergeMetadata(\n {\n jsii: {\n pacmak: {\n // When `true`, `jsii-pacmak` will use the `Jsii$Default` implementation in code generation even for dependencies.\n hasDefaultInterfaces: true,\n },\n },\n },\n pkg.jsii?.metadata,\n );\n\n const projectInfo: ProjectInfo = {\n projectRoot,\n packageJson: pkg,\n\n name: _required(pkg.name, 'The \"package.json\" file must specify the \"name\" attribute'),\n version: _required(pkg.version, 'The \"package.json\" file must specify the \"version\" attribute'),\n deprecated: pkg.deprecated,\n stability: _validateStability(pkg.stability, pkg.deprecated),\n author: _toPerson(_required(pkg.author, 'The \"package.json\" file must specify the \"author\" attribute'), 'author'),\n repository: _toRepository(\n _required(pkg.repository, 'The \"package.json\" file must specify the \"repository\" attribute'),\n ),\n license: _validateLicense(pkg.license),\n keywords: pkg.keywords,\n\n main: _required(pkg.main, 'The \"package.json\" file must specify the \"main\" attribute'),\n types: _required(pkg.types, 'The \"package.json\" file must specify the \"types\" attribute'),\n\n dependencies,\n peerDependencies,\n dependencyClosure: transitiveDependencies,\n bundleDependencies,\n targets: {\n ...validateTargets(\n _required(pkg.jsii, 'The \"package.json\" file must specify the \"jsii\" attribute').targets as AssemblyTargets,\n ),\n js: { npm: pkg.name! },\n },\n metadata,\n jsiiVersionFormat: _validateVersionFormat(pkg.jsii?.versionFormat ?? 'full'),\n\n description: pkg.description,\n homepage: pkg.homepage,\n contributors: (pkg.contributors as any[])?.map((contrib, index) =>\n _toPerson(contrib, `contributors[${index}]`, 'contributor'),\n ),\n\n excludeTypescript: pkg.jsii?.excludeTypescript ?? [],\n projectReferences: pkg.jsii?.projectReferences,\n tsc: {\n outDir: pkg.jsii?.tsc?.outDir,\n rootDir: pkg.jsii?.tsc?.rootDir,\n baseUrl: pkg.jsii?.tsc?.baseUrl,\n paths: pkg.jsii?.tsc?.paths,\n forceConsistentCasingInFileNames: pkg.jsii?.tsc?.forceConsistentCasingInFileNames,\n noImplicitOverride: pkg.jsii?.tsc?.noImplicitOverride,\n noPropertyAccessFromIndexSignature: pkg.jsii?.tsc?.noPropertyAccessFromIndexSignature,\n noUncheckedIndexedAccess: pkg.jsii?.tsc?.noUncheckedIndexedAccess,\n ..._sourceMapPreferences(pkg.jsii?.tsc),\n types: pkg.jsii?.tsc?.types,\n },\n bin: pkg.bin,\n exports: pkg.exports,\n diagnostics: _loadDiagnostics(pkg.jsii?.diagnostics),\n\n // user-provided tsconfig\n tsconfig: pkg.jsii?.tsconfig,\n validateTsconfig: _validateTsconfigRuleSet(pkg.jsii?.validateTsconfig ?? 'strict'),\n };\n return { projectInfo, diagnostics };\n}\n\n/**\n * Validate the values of the `.jsii.targets` field\n */\nexport function validateTargets(targets: AssemblyTargets | undefined): AssemblyTargets | undefined {\n if (!targets) {\n return undefined;\n }\n\n const VALID_TARGET_KEYS: Record<string, string[]> = {\n java: ['package', 'maven', 'versionSuffix'],\n python: ['module', 'distName', 'classifiers'],\n dotnet: ['namespace', 'packageId', 'iconUrl', 'versionSuffix'],\n go: ['moduleName', 'packageName', 'versionSuffix'],\n };\n\n for (const [language, config] of Object.entries(targets)) {\n if (!(language in VALID_TARGET_KEYS)) {\n throw new JsiiError(`Unknown target language: ${language}`);\n }\n\n if (typeof config !== 'object' || config === null) {\n throw new JsiiError(`jsii.targets.${language} must be an object`);\n }\n\n const validKeys = VALID_TARGET_KEYS[language];\n for (const key of Object.keys(config)) {\n if (!validKeys.includes(key)) {\n throw new JsiiError(`Unknown key in jsii.targets.${language}: ${key}`);\n }\n }\n }\n\n // Go package names must be valid identifiers\n if (\n targets.go &&\n typeof targets.go === 'object' &&\n 'packageName' in targets.go &&\n typeof targets.go.packageName === 'string'\n ) {\n if (!isIdentifier(targets.go.packageName)) {\n throw new JsiiError(`jsii.targets.go.packageName contains non-identifier characters: ${targets.go.packageName}`);\n }\n }\n\n if (\n targets.dotnet &&\n typeof targets.dotnet === 'object' &&\n 'namespace' in targets.dotnet &&\n typeof targets.dotnet.namespace === 'string'\n ) {\n if (!targets.dotnet.namespace.split('.').every(isIdentifier)) {\n throw new JsiiError(\n `jsii.targets.dotnet.namespace contains non-identifier characters: ${targets.dotnet.namespace}`,\n );\n }\n }\n\n if (\n targets.java &&\n typeof targets.java === 'object' &&\n 'package' in targets.java &&\n typeof targets.java.package === 'string'\n ) {\n if (!targets.java.package.split('.').every(isIdentifier)) {\n throw new JsiiError(`jsii.targets.java.package contains non-identifier characters: ${targets.java.package}`);\n }\n }\n\n if (\n targets.python &&\n typeof targets.python === 'object' &&\n 'module' in targets.python &&\n typeof targets.python.module === 'string'\n ) {\n if (!targets.python.module.split('.').every(isIdentifier)) {\n throw new JsiiError(`jsii.targets.python.module contains non-identifier characters: ${targets.python.module}`);\n }\n }\n\n return targets;\n\n /**\n * Regexp-check for matching an identifier\n *\n * Conveniently, all identifiers look more or less the same in all languages.\n */\n function isIdentifier(x: string) {\n return /^[\\w_][\\w\\d_]*$/u.test(x);\n }\n}\n\nfunction _guessRepositoryType(url: string): string {\n if (url.endsWith('.git')) {\n return 'git';\n }\n const parts = /^([^:]+):\\/\\//.exec(url);\n if (parts?.[1] !== 'http' && parts?.[1] !== 'https') {\n return parts![1];\n }\n throw new JsiiError(\n `The \"package.json\" file must specify the \"repository.type\" attribute (could not guess from ${url})`,\n );\n}\n\nfunction _sourceMapPreferences({ declarationMap, inlineSourceMap, inlineSources, sourceMap }: TSCompilerOptions = {}) {\n // If none of the options are specified, use the default configuration from jsii <= 1.58.0, which\n // means inline source maps with embedded source information.\n if (declarationMap == null && inlineSourceMap == null && inlineSources == null && sourceMap == null) {\n declarationMap = false;\n inlineSourceMap = true;\n inlineSources = true;\n sourceMap = undefined;\n }\n\n return {\n declarationMap,\n inlineSourceMap,\n inlineSources,\n sourceMap,\n };\n}\n\ninterface DependencyInfo {\n readonly assembly: spec.Assembly;\n readonly resolvedDependencies: Record<string, string>;\n}\n\nclass DependencyResolver {\n private readonly cache = new Map<string, DependencyInfo>();\n\n /**\n * Discover the dependency tree starting at 'root', validating versions as we go along\n *\n * This primes the data structures in this class and should be called first.\n *\n * Return the resolved jsii dependency paths\n */\n public discoverDependencyTree(root: string, dependencies: Record<string, string>): Record<string, string> {\n const ret: Record<string, string> = {};\n for (const [name, declaration] of Object.entries(dependencies)) {\n // eslint-disable-next-line no-await-in-loop\n let resolved;\n try {\n resolved = this.resolveDependency(root, name, declaration);\n } catch (e) {\n LOG.error(\n `Unable to find a JSII dependency named \"${name}\" as \"${declaration}\". If you meant to include a non-JSII dependency, try adding it to bundledDependencies instead.`,\n );\n throw e;\n }\n\n const actualVersion = resolved.dependencyInfo.assembly.version;\n if (!semver.satisfies(actualVersion, declaration)) {\n throw new JsiiError(\n `Declared dependency on version ${declaration} of ${name}, but version ${actualVersion} was found`,\n );\n }\n\n ret[name] = resolved.resolvedFile;\n }\n return ret;\n }\n\n /**\n * From a set of resolved paths, recursively return all assemblies\n */\n public assemblyClosure(resolved: Record<string, string>): spec.Assembly[] {\n const closure = new Map<string, spec.Assembly>();\n const queue = Array.from(Object.values(resolved));\n while (queue.length > 0) {\n const next = queue.shift()!;\n const depInfo = this.cache.get(next);\n if (!depInfo) {\n throw new Error(`Path ${next} not seen before`);\n }\n if (closure.has(next)) {\n continue;\n }\n\n closure.set(next, depInfo.assembly);\n queue.push(...Object.values(depInfo.resolvedDependencies));\n }\n return Array.from(closure.values());\n }\n\n private resolveDependency(root: string, name: string, declaration: string) {\n const { version: versionString, localPackage } = _resolveVersion(declaration, root);\n const version = new semver.Range(versionString);\n if (!version) {\n throw new JsiiError(`Invalid semver expression for ${name}: ${versionString}`);\n }\n const jsiiFile = _tryResolveAssembly(name, localPackage, root);\n LOG.debug(`Resolved dependency ${name} to ${jsiiFile}`);\n return {\n resolvedVersion: versionString,\n resolvedFile: jsiiFile,\n dependencyInfo: this.loadAssemblyAndRecurse(jsiiFile),\n };\n }\n\n private loadAssemblyAndRecurse(jsiiFile: string) {\n // Only recurse if we haven't seen this assembly yet\n if (this.cache.has(jsiiFile)) {\n return this.cache.get(jsiiFile)!;\n }\n\n const assembly = loadAssemblyFromFile(jsiiFile, true, ASSEMBLY_FEATURES_SUPPORTED);\n\n // Continue loading any dependencies declared in the asm\n const resolvedDependencies = assembly.dependencies\n ? this.discoverDependencyTree(path.dirname(jsiiFile), assembly.dependencies)\n : {};\n\n const depInfo: DependencyInfo = {\n assembly,\n resolvedDependencies,\n };\n this.cache.set(jsiiFile, depInfo);\n return depInfo;\n }\n}\n\nfunction _required<T>(value: T | undefined, message: string): T {\n if (value == null) {\n throw new JsiiError(message);\n }\n return value;\n}\n\nfunction _toPerson(value: any, field: string, defaultRole: string = field): spec.Person {\n if (typeof value === 'string') {\n value = parsePerson(value);\n }\n return {\n name: _required(value.name, `The \"package.json\" file must specify the \"${field}.name\" attribute`),\n roles: value.roles ? [...new Set(value.roles as string[])] : [defaultRole],\n email: value.email,\n url: value.url,\n organization: value.organization ? value.organization : undefined,\n };\n}\n\nfunction _toRepository(value: any): {\n type: string;\n url: string;\n directory?: string;\n} {\n if (typeof value === 'string') {\n value = parseRepository(value);\n }\n return {\n url: _required(value.url, 'The \"package.json\" file must specify the \"repository.url\" attribute'),\n type: value.type || _guessRepositoryType(value.url),\n directory: value.directory,\n };\n}\n\nfunction _tryResolveAssembly(mod: string, localPackage: string | undefined, searchPath: string): string {\n if (localPackage) {\n const result = findAssemblyFile(localPackage);\n if (!fs.existsSync(result)) {\n throw new JsiiError(`Assembly does not exist: ${result}`);\n }\n return result;\n }\n try {\n const dependencyDir = findDependencyDirectory(mod, searchPath);\n return findAssemblyFile(dependencyDir);\n } catch (e: any) {\n throw new JsiiError(\n `Unable to locate jsii assembly for \"${mod}\". If this module is not jsii-enabled, it must also be declared under bundledDependencies: ${e}`,\n );\n }\n}\n\nfunction _validateLicense(id: string | undefined): string {\n if (id == null) {\n throw new JsiiError(\n 'No \"license\" was specified in \"package.json\", see valid license identifiers at https://spdx.org/licenses/',\n );\n }\n if (id === 'UNLICENSED') {\n return id;\n }\n if (!spdx.has(id)) {\n throw new JsiiError(\n `Invalid license identifier \"${id}\", see valid license identifiers at https://spdx.org/licenses/`,\n );\n }\n return id;\n}\n\nfunction _validateVersionFormat(format: string): 'short' | 'full' {\n if (format !== 'short' && format !== 'full') {\n throw new JsiiError(`Invalid jsii.versionFormat \"${format}\", it must be either \"short\" or \"full\" (the default)`);\n }\n return format;\n}\n\nfunction _validateStability(stability: string | undefined, deprecated: string | undefined): spec.Stability | undefined {\n if (!stability && deprecated) {\n stability = spec.Stability.Deprecated;\n } else if (deprecated && stability !== spec.Stability.Deprecated) {\n console.warn(\n `Package is deprecated (${deprecated}), but it's stability is ${stability} and not ${spec.Stability.Deprecated}`,\n );\n }\n if (!stability) {\n return undefined;\n }\n if (!Object.values(spec.Stability).includes(stability as any)) {\n throw new JsiiError(\n `Invalid stability \"${stability}\", it must be one of ${Object.values(spec.Stability).join(', ')}`,\n );\n }\n return stability as spec.Stability;\n}\n\nfunction _validateTsconfigRuleSet(ruleSet: string): TypeScriptConfigValidationRuleSet | undefined {\n if (ruleSet == null) {\n return undefined;\n }\n if (!Object.values(TypeScriptConfigValidationRuleSet).includes(ruleSet as any)) {\n throw new JsiiError(\n `Invalid validateTsconfig \"${ruleSet}\", it must be one of ${Object.values(TypeScriptConfigValidationRuleSet).join(\n ', ',\n )}`,\n );\n }\n\n return ruleSet as TypeScriptConfigValidationRuleSet;\n}\n\n/**\n * Resolves an NPM package specifier to a version range\n *\n * If it was already a version range, return it. If it the\n * package references a local file, return the version that\n * package is at.\n */\nfunction _resolveVersion(dep: string, searchPath: string): { version: string; localPackage?: string } {\n const matches = /^file:(.+)$/.exec(dep);\n if (!matches) {\n return { version: dep };\n }\n const localPackage = path.resolve(searchPath, matches[1]);\n return {\n // Rendering as a caret version to maintain uniformity against the \"standard\".\n // eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires\n version: `^${JSON.parse(fs.readFileSync(path.join(localPackage, 'package.json'), 'utf-8')).version}`,\n localPackage,\n };\n}\n\n/**\n * Merges two metadata blocks together.\n *\n * @param base the base values\n * @param user the user-supplied values, which can override the `base` values\n *\n * @returns the merged metadata block\n */\nfunction mergeMetadata(\n base: NonNullable<ProjectInfo['metadata']>,\n user: ProjectInfo['metadata'],\n): ProjectInfo['metadata'] {\n if (user == null) {\n return base;\n }\n return mergeObjects(base, user);\n\n function mergeObjects(baseObj: Record<string, any>, override: Record<string, any>): Record<string, any> {\n const result: Record<string, any> = {};\n const allKeys = Array.from(new Set([...Object.keys(baseObj), ...Object.keys(override)])).sort();\n for (const key of allKeys) {\n const baseValue = baseObj[key];\n const overrideValue = override[key];\n\n if (typeof baseValue === 'object' && typeof overrideValue === 'object') {\n if (overrideValue != null) {\n result[key] = mergeObjects(baseValue, overrideValue);\n }\n } else {\n result[key] = overrideValue ?? baseValue;\n }\n }\n return result;\n }\n}\n\nfunction _loadDiagnostics(entries?: { [key: string]: string }):\n | {\n readonly [key: string]: ts.DiagnosticCategory;\n }\n | undefined {\n if (entries === undefined || Object.keys(entries).length === 0) {\n return undefined;\n }\n const result: { [key: string]: ts.DiagnosticCategory } = {};\n for (const code of Object.keys(entries)) {\n let category: ts.DiagnosticCategory;\n switch (entries[code].trim().toLowerCase()) {\n case 'error':\n category = ts.DiagnosticCategory.Error;\n break;\n case 'warning':\n category = ts.DiagnosticCategory.Warning;\n break;\n case 'suggestion':\n category = ts.DiagnosticCategory.Suggestion;\n break;\n case 'message':\n category = ts.DiagnosticCategory.Message;\n break;\n default:\n throw new JsiiError(`Invalid category '${entries[code]}' for code '${code}'`);\n }\n result[code] = category;\n }\n return result;\n}\n\nfunction filterDictByKey<A>(xs: Record<string, A>, predicate: (key: string) => boolean): Record<string, A> {\n const ret: Record<string, A> = {};\n for (const [key, value] of Object.entries(xs)) {\n if (predicate(key)) {\n ret[key] = value;\n }\n }\n return ret;\n}\n"]}
1
+ {"version":3,"file":"project-info.js","sourceRoot":"","sources":["../src/project-info.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport * as spec from '@jsii/spec';\nimport { findAssemblyFile, loadAssemblyFromFile } from '@jsii/spec';\nimport * as log4js from 'log4js';\nimport * as semver from 'semver';\nimport * as ts from 'typescript';\n\nimport { findDependencyDirectory } from './common/find-utils';\nimport { ASSEMBLY_FEATURES_SUPPORTED } from './helpers';\nimport { JsiiDiagnostic } from './jsii-diagnostic';\nimport { TypeScriptConfigValidationRuleSet } from './tsconfig';\nimport { JsiiError, parsePerson, parseRepository } from './utils';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\nconst spdx: Set<string> = require('spdx-license-list/simple');\n\nconst LOG = log4js.getLogger('jsii/package-info');\n\nexport type TSCompilerOptions = Partial<\n Pick<\n ts.CompilerOptions,\n // Directory preferences\n | 'outDir'\n | 'rootDir'\n // TypeScript path mapping\n | 'baseUrl'\n | 'paths'\n // Style preferences\n | 'forceConsistentCasingInFileNames'\n | 'noImplicitOverride'\n | 'noPropertyAccessFromIndexSignature'\n | 'noUncheckedIndexedAccess'\n // Source map preferences\n | 'declarationMap'\n | 'inlineSourceMap'\n | 'inlineSources'\n | 'sourceMap'\n // Types limitations\n | 'types'\n >\n>;\n\n/**\n * The assembly targets have some typing in `spec.PackageJson`, extract it.\n *\n * The types in the upstream spec library:\n *\n * - Missing the user-visible `go` target\n * - Missing the synthetic `js` target\n */\nexport type AssemblyTargets = spec.PackageJson['jsii']['targets'] & {\n js?: {\n npm: string;\n };\n go?: {\n moduleName: string;\n packageName: string;\n };\n [otherLanguage: string]: unknown;\n};\n\nexport interface ProjectInfo {\n readonly projectRoot: string;\n readonly packageJson: PackageJson;\n\n readonly name: string;\n readonly version: string;\n readonly author: spec.Person;\n readonly deprecated?: string;\n readonly stability?: spec.Stability;\n readonly license: string;\n readonly repository: {\n readonly type: string;\n readonly url: string;\n readonly directory?: string;\n };\n readonly keywords?: readonly string[];\n\n readonly main: string;\n readonly types?: string;\n\n readonly dependencies: { readonly [name: string]: string };\n readonly peerDependencies: { readonly [name: string]: string };\n readonly dependencyClosure: readonly spec.Assembly[];\n readonly bundleDependencies?: { readonly [name: string]: string };\n readonly targets: AssemblyTargets;\n readonly metadata?: { readonly [key: string]: any };\n readonly jsiiVersionFormat: 'short' | 'full';\n readonly diagnostics?: { readonly [code: string]: ts.DiagnosticCategory };\n readonly description?: string;\n readonly homepage?: string;\n readonly contributors?: readonly spec.Person[];\n readonly excludeTypescript: readonly string[];\n readonly projectReferences?: boolean;\n readonly tsc?: TSCompilerOptions;\n readonly bin?: { readonly [name: string]: string };\n readonly exports?: {\n readonly [name: string]: string | { readonly [name: string]: string };\n };\n\n // user-provided tsconfig\n readonly tsconfig?: string;\n readonly validateTsconfig?: TypeScriptConfigValidationRuleSet;\n}\n\n/**\n * A type representing the contents of a `package.json` file.\n *\n * Note that there is also a `PackageJson` type in `@jsii/spec`, and this one is\n * not the same. Do not ask me why.\n */\nexport interface PackageJson {\n readonly description?: string;\n readonly homepage?: string;\n readonly name?: string;\n readonly version?: string;\n readonly keywords?: readonly string[];\n readonly license?: string;\n readonly private?: boolean;\n\n readonly exports?: { readonly [path: string]: string | { readonly [name: string]: string } };\n readonly main?: string;\n readonly types?: string;\n /**\n * @example { \"<4.0\": { \"*\": [\"ts3.9/*\"] } }\n * @example { \"<4.0\": { \"index.d.ts\": [\"index.ts3-9.d.ts\"] } }\n */\n readonly typesVersions?: {\n readonly [versionRange: string]: { readonly [pattern: string]: readonly string[] };\n };\n\n readonly bin?: { readonly [name: string]: string };\n\n readonly stability?: string;\n readonly deprecated?: string;\n\n readonly dependencies?: { readonly [name: string]: string };\n readonly devDependencies?: { readonly [name: string]: string };\n readonly peerDependencies?: { readonly [name: string]: string };\n\n readonly bundleDependencies?: readonly string[];\n readonly bundledDependencies?: readonly string[];\n\n readonly jsii?: {\n // main jsii config\n readonly diagnostics?: { readonly [id: string]: 'error' | 'warning' | 'suggestion' | 'message' };\n readonly metadata?: { readonly [key: string]: unknown };\n readonly targets?: AssemblyTargets;\n readonly versionFormat?: 'short' | 'full';\n\n // Either user-provided config ...\n readonly tsconfig?: string;\n readonly validateTsconfig?: string;\n\n // ... or configure tsc here\n readonly excludeTypescript?: readonly string[];\n readonly projectReferences?: boolean;\n readonly tsc?: TSCompilerOptions;\n\n // unexpected options\n readonly [key: string]: unknown;\n };\n\n readonly [key: string]: unknown;\n}\n\nexport interface ProjectInfoResult {\n readonly projectInfo: ProjectInfo;\n readonly diagnostics: readonly ts.Diagnostic[];\n}\n\nexport function loadProjectInfo(projectRoot: string): ProjectInfoResult {\n const packageJsonPath = path.join(projectRoot, 'package.json');\n const pkg: PackageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));\n\n const diagnostics: ts.Diagnostic[] = [];\n\n let bundleDependencies: { [name: string]: string } | undefined;\n for (const name of pkg.bundleDependencies ?? pkg.bundledDependencies ?? []) {\n const version = pkg.dependencies?.[name];\n if (!version) {\n throw new JsiiError(\n `The \"package.json\" file has \"${name}\" in \"bundleDependencies\", but it is not declared in \"dependencies\"`,\n );\n }\n\n if (pkg.peerDependencies && name in pkg.peerDependencies) {\n throw new JsiiError(\n `The \"package.json\" file has \"${name}\" in \"bundleDependencies\", and also in \"peerDependencies\"`,\n );\n }\n\n bundleDependencies = bundleDependencies ?? {};\n bundleDependencies[name] = _resolveVersion(version, projectRoot).version;\n }\n\n // Check peerDependencies are also in devDependencies\n // You need this to write tests properly. There are probably cases where\n // it makes sense to have this different, so most of what this checking\n // produces is warnings, not errors.\n const devDependencies = pkg.devDependencies ?? {};\n for (const [name, rng] of Object.entries(pkg.peerDependencies ?? {})) {\n const range = new semver.Range(_resolveVersion(rng as string, projectRoot).version);\n const minVersion = semver.minVersion(range)?.raw;\n\n if (!(name in devDependencies) || devDependencies[name] !== `${minVersion}`) {\n diagnostics.push(\n JsiiDiagnostic.JSII_0006_MISSING_DEV_DEPENDENCY.createDetached(\n name,\n `${rng as any}`,\n `${minVersion}`,\n `${devDependencies[name]}`,\n ),\n );\n continue;\n }\n }\n\n const bundled = new Set(Object.keys(bundleDependencies ?? {}));\n const dependencies: Record<string, string> = filterDictByKey(\n pkg.dependencies ?? {},\n (depName) => !bundled.has(depName),\n );\n const peerDependencies: Record<string, string> = pkg.peerDependencies ?? {};\n\n const resolver = new DependencyResolver();\n const resolved = resolver.discoverDependencyTree(projectRoot, {\n ...dependencies,\n ...peerDependencies,\n });\n const transitiveDependencies = resolver.assemblyClosure(resolved);\n\n const metadata = mergeMetadata(\n {\n jsii: {\n pacmak: {\n // When `true`, `jsii-pacmak` will use the `Jsii$Default` implementation in code generation even for dependencies.\n hasDefaultInterfaces: true,\n },\n },\n },\n pkg.jsii?.metadata,\n );\n\n const projectInfo: ProjectInfo = {\n projectRoot,\n packageJson: pkg,\n\n name: _required(pkg.name, 'The \"package.json\" file must specify the \"name\" attribute'),\n version: _required(pkg.version, 'The \"package.json\" file must specify the \"version\" attribute'),\n deprecated: pkg.deprecated,\n stability: _validateStability(pkg.stability, pkg.deprecated),\n author: _toPerson(_required(pkg.author, 'The \"package.json\" file must specify the \"author\" attribute'), 'author'),\n repository: _toRepository(\n _required(pkg.repository, 'The \"package.json\" file must specify the \"repository\" attribute'),\n ),\n license: _validateLicense(pkg.license),\n keywords: pkg.keywords,\n\n main: _required(pkg.main, 'The \"package.json\" file must specify the \"main\" attribute'),\n types: pkg.types,\n\n dependencies,\n peerDependencies,\n dependencyClosure: transitiveDependencies,\n bundleDependencies,\n targets: {\n ...validateTargets(\n _required(pkg.jsii, 'The \"package.json\" file must specify the \"jsii\" attribute').targets as AssemblyTargets,\n ),\n js: { npm: pkg.name! },\n },\n metadata,\n jsiiVersionFormat: _validateVersionFormat(pkg.jsii?.versionFormat ?? 'full'),\n\n description: pkg.description,\n homepage: pkg.homepage,\n contributors: (pkg.contributors as any[])?.map((contrib, index) =>\n _toPerson(contrib, `contributors[${index}]`, 'contributor'),\n ),\n\n excludeTypescript: pkg.jsii?.excludeTypescript ?? [],\n projectReferences: pkg.jsii?.projectReferences,\n tsc: {\n outDir: pkg.jsii?.tsc?.outDir,\n rootDir: pkg.jsii?.tsc?.rootDir,\n baseUrl: pkg.jsii?.tsc?.baseUrl,\n paths: pkg.jsii?.tsc?.paths,\n forceConsistentCasingInFileNames: pkg.jsii?.tsc?.forceConsistentCasingInFileNames,\n noImplicitOverride: pkg.jsii?.tsc?.noImplicitOverride,\n noPropertyAccessFromIndexSignature: pkg.jsii?.tsc?.noPropertyAccessFromIndexSignature,\n noUncheckedIndexedAccess: pkg.jsii?.tsc?.noUncheckedIndexedAccess,\n ..._sourceMapPreferences(pkg.jsii?.tsc),\n types: pkg.jsii?.tsc?.types,\n },\n bin: pkg.bin,\n exports: pkg.exports,\n diagnostics: _loadDiagnostics(pkg.jsii?.diagnostics),\n\n // user-provided tsconfig\n tsconfig: pkg.jsii?.tsconfig,\n validateTsconfig: _validateTsconfigRuleSet(pkg.jsii?.validateTsconfig ?? 'strict'),\n };\n return { projectInfo, diagnostics };\n}\n\n/**\n * Validate the values of the `.jsii.targets` field\n */\nexport function validateTargets(targets: AssemblyTargets | undefined): AssemblyTargets | undefined {\n if (!targets) {\n return undefined;\n }\n\n const VALID_TARGET_KEYS: Record<string, string[]> = {\n java: ['package', 'maven', 'versionSuffix'],\n python: ['module', 'distName', 'classifiers'],\n dotnet: ['namespace', 'packageId', 'iconUrl', 'versionSuffix'],\n go: ['moduleName', 'packageName', 'versionSuffix'],\n };\n\n for (const [language, config] of Object.entries(targets)) {\n if (!(language in VALID_TARGET_KEYS)) {\n throw new JsiiError(`Unknown target language: ${language}`);\n }\n\n if (typeof config !== 'object' || config === null) {\n throw new JsiiError(`jsii.targets.${language} must be an object`);\n }\n\n const validKeys = VALID_TARGET_KEYS[language];\n for (const key of Object.keys(config)) {\n if (!validKeys.includes(key)) {\n throw new JsiiError(`Unknown key in jsii.targets.${language}: ${key}`);\n }\n }\n }\n\n // Go package names must be valid identifiers\n if (\n targets.go &&\n typeof targets.go === 'object' &&\n 'packageName' in targets.go &&\n typeof targets.go.packageName === 'string'\n ) {\n if (!isIdentifier(targets.go.packageName)) {\n throw new JsiiError(`jsii.targets.go.packageName contains non-identifier characters: ${targets.go.packageName}`);\n }\n }\n\n if (\n targets.dotnet &&\n typeof targets.dotnet === 'object' &&\n 'namespace' in targets.dotnet &&\n typeof targets.dotnet.namespace === 'string'\n ) {\n if (!targets.dotnet.namespace.split('.').every(isIdentifier)) {\n throw new JsiiError(\n `jsii.targets.dotnet.namespace contains non-identifier characters: ${targets.dotnet.namespace}`,\n );\n }\n }\n\n if (\n targets.java &&\n typeof targets.java === 'object' &&\n 'package' in targets.java &&\n typeof targets.java.package === 'string'\n ) {\n if (!targets.java.package.split('.').every(isIdentifier)) {\n throw new JsiiError(`jsii.targets.java.package contains non-identifier characters: ${targets.java.package}`);\n }\n }\n\n if (\n targets.python &&\n typeof targets.python === 'object' &&\n 'module' in targets.python &&\n typeof targets.python.module === 'string'\n ) {\n if (!targets.python.module.split('.').every(isIdentifier)) {\n throw new JsiiError(`jsii.targets.python.module contains non-identifier characters: ${targets.python.module}`);\n }\n }\n\n return targets;\n\n /**\n * Regexp-check for matching an identifier\n *\n * Conveniently, all identifiers look more or less the same in all languages.\n */\n function isIdentifier(x: string) {\n return /^[\\w_][\\w\\d_]*$/u.test(x);\n }\n}\n\nfunction _guessRepositoryType(url: string): string {\n if (url.endsWith('.git')) {\n return 'git';\n }\n const parts = /^([^:]+):\\/\\//.exec(url);\n if (parts?.[1] !== 'http' && parts?.[1] !== 'https') {\n return parts![1];\n }\n throw new JsiiError(\n `The \"package.json\" file must specify the \"repository.type\" attribute (could not guess from ${url})`,\n );\n}\n\nfunction _sourceMapPreferences({ declarationMap, inlineSourceMap, inlineSources, sourceMap }: TSCompilerOptions = {}) {\n // If none of the options are specified, use the default configuration from jsii <= 1.58.0, which\n // means inline source maps with embedded source information.\n if (declarationMap == null && inlineSourceMap == null && inlineSources == null && sourceMap == null) {\n declarationMap = false;\n inlineSourceMap = true;\n inlineSources = true;\n sourceMap = undefined;\n }\n\n return {\n declarationMap,\n inlineSourceMap,\n inlineSources,\n sourceMap,\n };\n}\n\ninterface DependencyInfo {\n readonly assembly: spec.Assembly;\n readonly resolvedDependencies: Record<string, string>;\n}\n\nclass DependencyResolver {\n private readonly cache = new Map<string, DependencyInfo>();\n\n /**\n * Discover the dependency tree starting at 'root', validating versions as we go along\n *\n * This primes the data structures in this class and should be called first.\n *\n * Return the resolved jsii dependency paths\n */\n public discoverDependencyTree(root: string, dependencies: Record<string, string>): Record<string, string> {\n const ret: Record<string, string> = {};\n for (const [name, declaration] of Object.entries(dependencies)) {\n // eslint-disable-next-line no-await-in-loop\n let resolved;\n try {\n resolved = this.resolveDependency(root, name, declaration);\n } catch (e) {\n LOG.error(\n `Unable to find a JSII dependency named \"${name}\" as \"${declaration}\". If you meant to include a non-JSII dependency, try adding it to bundledDependencies instead.`,\n );\n throw e;\n }\n\n const actualVersion = resolved.dependencyInfo.assembly.version;\n if (!semver.satisfies(actualVersion, declaration)) {\n throw new JsiiError(\n `Declared dependency on version ${declaration} of ${name}, but version ${actualVersion} was found`,\n );\n }\n\n ret[name] = resolved.resolvedFile;\n }\n return ret;\n }\n\n /**\n * From a set of resolved paths, recursively return all assemblies\n */\n public assemblyClosure(resolved: Record<string, string>): spec.Assembly[] {\n const closure = new Map<string, spec.Assembly>();\n const queue = Array.from(Object.values(resolved));\n while (queue.length > 0) {\n const next = queue.shift()!;\n const depInfo = this.cache.get(next);\n if (!depInfo) {\n throw new Error(`Path ${next} not seen before`);\n }\n if (closure.has(next)) {\n continue;\n }\n\n closure.set(next, depInfo.assembly);\n queue.push(...Object.values(depInfo.resolvedDependencies));\n }\n return Array.from(closure.values());\n }\n\n private resolveDependency(root: string, name: string, declaration: string) {\n const { version: versionString, localPackage } = _resolveVersion(declaration, root);\n const version = new semver.Range(versionString);\n if (!version) {\n throw new JsiiError(`Invalid semver expression for ${name}: ${versionString}`);\n }\n const jsiiFile = _tryResolveAssembly(name, localPackage, root);\n LOG.debug(`Resolved dependency ${name} to ${jsiiFile}`);\n return {\n resolvedVersion: versionString,\n resolvedFile: jsiiFile,\n dependencyInfo: this.loadAssemblyAndRecurse(jsiiFile),\n };\n }\n\n private loadAssemblyAndRecurse(jsiiFile: string) {\n // Only recurse if we haven't seen this assembly yet\n if (this.cache.has(jsiiFile)) {\n return this.cache.get(jsiiFile)!;\n }\n\n const assembly = loadAssemblyFromFile(jsiiFile, true, ASSEMBLY_FEATURES_SUPPORTED);\n\n // Continue loading any dependencies declared in the asm\n const resolvedDependencies = assembly.dependencies\n ? this.discoverDependencyTree(path.dirname(jsiiFile), assembly.dependencies)\n : {};\n\n const depInfo: DependencyInfo = {\n assembly,\n resolvedDependencies,\n };\n this.cache.set(jsiiFile, depInfo);\n return depInfo;\n }\n}\n\nfunction _required<T>(value: T | undefined, message: string): T {\n if (value == null) {\n throw new JsiiError(message);\n }\n return value;\n}\n\nfunction _toPerson(value: any, field: string, defaultRole: string = field): spec.Person {\n if (typeof value === 'string') {\n value = parsePerson(value);\n }\n return {\n name: _required(value.name, `The \"package.json\" file must specify the \"${field}.name\" attribute`),\n roles: value.roles ? [...new Set(value.roles as string[])] : [defaultRole],\n email: value.email,\n url: value.url,\n organization: value.organization ? value.organization : undefined,\n };\n}\n\nfunction _toRepository(value: any): {\n type: string;\n url: string;\n directory?: string;\n} {\n if (typeof value === 'string') {\n value = parseRepository(value);\n }\n return {\n url: _required(value.url, 'The \"package.json\" file must specify the \"repository.url\" attribute'),\n type: value.type || _guessRepositoryType(value.url),\n directory: value.directory,\n };\n}\n\nfunction _tryResolveAssembly(mod: string, localPackage: string | undefined, searchPath: string): string {\n if (localPackage) {\n const result = findAssemblyFile(localPackage);\n if (!fs.existsSync(result)) {\n throw new JsiiError(`Assembly does not exist: ${result}`);\n }\n return result;\n }\n try {\n const dependencyDir = findDependencyDirectory(mod, searchPath);\n return findAssemblyFile(dependencyDir);\n } catch (e: any) {\n throw new JsiiError(\n `Unable to locate jsii assembly for \"${mod}\". If this module is not jsii-enabled, it must also be declared under bundledDependencies: ${e}`,\n );\n }\n}\n\nfunction _validateLicense(id: string | undefined): string {\n if (id == null) {\n throw new JsiiError(\n 'No \"license\" was specified in \"package.json\", see valid license identifiers at https://spdx.org/licenses/',\n );\n }\n if (id === 'UNLICENSED') {\n return id;\n }\n if (!spdx.has(id)) {\n throw new JsiiError(\n `Invalid license identifier \"${id}\", see valid license identifiers at https://spdx.org/licenses/`,\n );\n }\n return id;\n}\n\nfunction _validateVersionFormat(format: string): 'short' | 'full' {\n if (format !== 'short' && format !== 'full') {\n throw new JsiiError(`Invalid jsii.versionFormat \"${format}\", it must be either \"short\" or \"full\" (the default)`);\n }\n return format;\n}\n\nfunction _validateStability(stability: string | undefined, deprecated: string | undefined): spec.Stability | undefined {\n if (!stability && deprecated) {\n stability = spec.Stability.Deprecated;\n } else if (deprecated && stability !== spec.Stability.Deprecated) {\n console.warn(\n `Package is deprecated (${deprecated}), but it's stability is ${stability} and not ${spec.Stability.Deprecated}`,\n );\n }\n if (!stability) {\n return undefined;\n }\n if (!Object.values(spec.Stability).includes(stability as any)) {\n throw new JsiiError(\n `Invalid stability \"${stability}\", it must be one of ${Object.values(spec.Stability).join(', ')}`,\n );\n }\n return stability as spec.Stability;\n}\n\nfunction _validateTsconfigRuleSet(ruleSet: string): TypeScriptConfigValidationRuleSet | undefined {\n if (ruleSet == null) {\n return undefined;\n }\n if (!Object.values(TypeScriptConfigValidationRuleSet).includes(ruleSet as any)) {\n throw new JsiiError(\n `Invalid validateTsconfig \"${ruleSet}\", it must be one of ${Object.values(TypeScriptConfigValidationRuleSet).join(\n ', ',\n )}`,\n );\n }\n\n return ruleSet as TypeScriptConfigValidationRuleSet;\n}\n\n/**\n * Resolves an NPM package specifier to a version range\n *\n * If it was already a version range, return it. If it the\n * package references a local file, return the version that\n * package is at.\n */\nfunction _resolveVersion(dep: string, searchPath: string): { version: string; localPackage?: string } {\n const matches = /^file:(.+)$/.exec(dep);\n if (!matches) {\n return { version: dep };\n }\n const localPackage = path.resolve(searchPath, matches[1]);\n return {\n // Rendering as a caret version to maintain uniformity against the \"standard\".\n // eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires\n version: `^${JSON.parse(fs.readFileSync(path.join(localPackage, 'package.json'), 'utf-8')).version}`,\n localPackage,\n };\n}\n\n/**\n * Merges two metadata blocks together.\n *\n * @param base the base values\n * @param user the user-supplied values, which can override the `base` values\n *\n * @returns the merged metadata block\n */\nfunction mergeMetadata(\n base: NonNullable<ProjectInfo['metadata']>,\n user: ProjectInfo['metadata'],\n): ProjectInfo['metadata'] {\n if (user == null) {\n return base;\n }\n return mergeObjects(base, user);\n\n function mergeObjects(baseObj: Record<string, any>, override: Record<string, any>): Record<string, any> {\n const result: Record<string, any> = {};\n const allKeys = Array.from(new Set([...Object.keys(baseObj), ...Object.keys(override)])).sort();\n for (const key of allKeys) {\n const baseValue = baseObj[key];\n const overrideValue = override[key];\n\n if (typeof baseValue === 'object' && typeof overrideValue === 'object') {\n if (overrideValue != null) {\n result[key] = mergeObjects(baseValue, overrideValue);\n }\n } else {\n result[key] = overrideValue ?? baseValue;\n }\n }\n return result;\n }\n}\n\nfunction _loadDiagnostics(entries?: { [key: string]: string }):\n | {\n readonly [key: string]: ts.DiagnosticCategory;\n }\n | undefined {\n if (entries === undefined || Object.keys(entries).length === 0) {\n return undefined;\n }\n const result: { [key: string]: ts.DiagnosticCategory } = {};\n for (const code of Object.keys(entries)) {\n let category: ts.DiagnosticCategory;\n switch (entries[code].trim().toLowerCase()) {\n case 'error':\n category = ts.DiagnosticCategory.Error;\n break;\n case 'warning':\n category = ts.DiagnosticCategory.Warning;\n break;\n case 'suggestion':\n category = ts.DiagnosticCategory.Suggestion;\n break;\n case 'message':\n category = ts.DiagnosticCategory.Message;\n break;\n default:\n throw new JsiiError(`Invalid category '${entries[code]}' for code '${code}'`);\n }\n result[code] = category;\n }\n return result;\n}\n\nfunction filterDictByKey<A>(xs: Record<string, A>, predicate: (key: string) => boolean): Record<string, A> {\n const ret: Record<string, A> = {};\n for (const [key, value] of Object.entries(xs)) {\n if (predicate(key)) {\n ret[key] = value;\n }\n }\n return ret;\n}\n"]}
package/lib/version.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /** The short version number for this JSII compiler (e.g: `X.Y.Z`) */
2
- export declare const SHORT_VERSION = "5.9.15-dev.3";
2
+ export declare const SHORT_VERSION = "5.9.18";
3
3
  /** The qualified version number for this JSII compiler (e.g: `X.Y.Z (build #######)`) */
4
- export declare const VERSION = "5.9.15-dev.3 (build 2eb27c3)";
4
+ export declare const VERSION = "5.9.18 (build 9d58cab)";
5
5
  /** The release line identifier for this JSII compiler (e.g: `X.Y`) */
6
6
  export declare const RELEASE_LINE = "5.9";
7
7
  //# sourceMappingURL=version.d.ts.map
package/lib/version.js CHANGED
@@ -4,9 +4,9 @@ exports.RELEASE_LINE = exports.VERSION = exports.SHORT_VERSION = void 0;
4
4
  const typescript_1 = require("typescript");
5
5
  // GENERATED: This file is generated by build-tools/code-gen.ts -- Do not edit by hand!
6
6
  /** The short version number for this JSII compiler (e.g: `X.Y.Z`) */
7
- exports.SHORT_VERSION = '5.9.15-dev.3';
7
+ exports.SHORT_VERSION = '5.9.18';
8
8
  /** The qualified version number for this JSII compiler (e.g: `X.Y.Z (build #######)`) */
9
- exports.VERSION = '5.9.15-dev.3 (build 2eb27c3)';
9
+ exports.VERSION = '5.9.18 (build 9d58cab)';
10
10
  /** The release line identifier for this JSII compiler (e.g: `X.Y`) */
11
11
  exports.RELEASE_LINE = typescript_1.versionMajorMinor;
12
12
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAE/C,uFAAuF;AAEvF,qEAAqE;AACxD,QAAA,aAAa,GAAG,cAAc,CAAC;AAE5C,yFAAyF;AAC5E,QAAA,OAAO,GAAG,8BAA8B,CAAC;AAEtD,sEAAsE;AACzD,QAAA,YAAY,GAAG,8BAAiB,CAAC","sourcesContent":["import { versionMajorMinor } from 'typescript';\n\n// GENERATED: This file is generated by build-tools/code-gen.ts -- Do not edit by hand!\n\n/** The short version number for this JSII compiler (e.g: `X.Y.Z`) */\nexport const SHORT_VERSION = '5.9.15-dev.3';\n\n/** The qualified version number for this JSII compiler (e.g: `X.Y.Z (build #######)`) */\nexport const VERSION = '5.9.15-dev.3 (build 2eb27c3)';\n\n/** The release line identifier for this JSII compiler (e.g: `X.Y`) */\nexport const RELEASE_LINE = versionMajorMinor;\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAE/C,uFAAuF;AAEvF,qEAAqE;AACxD,QAAA,aAAa,GAAG,QAAQ,CAAC;AAEtC,yFAAyF;AAC5E,QAAA,OAAO,GAAG,wBAAwB,CAAC;AAEhD,sEAAsE;AACzD,QAAA,YAAY,GAAG,8BAAiB,CAAC","sourcesContent":["import { versionMajorMinor } from 'typescript';\n\n// GENERATED: This file is generated by build-tools/code-gen.ts -- Do not edit by hand!\n\n/** The short version number for this JSII compiler (e.g: `X.Y.Z`) */\nexport const SHORT_VERSION = '5.9.18';\n\n/** The qualified version number for this JSII compiler (e.g: `X.Y.Z (build #######)`) */\nexport const VERSION = '5.9.18 (build 9d58cab)';\n\n/** The release line identifier for this JSII compiler (e.g: `X.Y`) */\nexport const RELEASE_LINE = versionMajorMinor;\n"]}
package/package.json CHANGED
@@ -64,14 +64,14 @@
64
64
  "npm": "^9.9.4",
65
65
  "npm-check-updates": "^16",
66
66
  "prettier": "^2.8.8",
67
- "projen": "^0.98.17",
67
+ "projen": "^0.98.29",
68
68
  "tar": "^6.2.1",
69
- "ts-jest": "^29.4.5",
69
+ "ts-jest": "^29.4.6",
70
70
  "ts-node": "^10.9.2"
71
71
  },
72
72
  "dependencies": {
73
- "@jsii/check-node": "1.119.0",
74
- "@jsii/spec": "1.119.0",
73
+ "@jsii/check-node": "1.121.0",
74
+ "@jsii/spec": "1.121.0",
75
75
  "case": "^1.6.3",
76
76
  "chalk": "^4",
77
77
  "fast-deep-equal": "^3.1.3",
@@ -92,7 +92,7 @@
92
92
  "publishConfig": {
93
93
  "access": "public"
94
94
  },
95
- "version": "5.9.15-dev.3",
95
+ "version": "5.9.18",
96
96
  "types": "lib/index.d.ts",
97
97
  "exports": {
98
98
  ".": "./lib/index.js",