jsii 5.9.29-dev.0 → 5.9.29
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/README.md +53 -2
- package/lib/assembler.js +0 -4
- package/lib/assembler.js.map +1 -1
- package/lib/compiler.js +4 -1
- package/lib/compiler.js.map +1 -1
- package/lib/directives.d.ts +2 -0
- package/lib/directives.js +13 -1
- package/lib/directives.js.map +1 -1
- package/lib/jsii-diagnostic.d.ts +8 -0
- package/lib/jsii-diagnostic.js +17 -0
- package/lib/jsii-diagnostic.js.map +1 -1
- package/lib/literate.js +1 -1
- package/lib/literate.js.map +1 -1
- package/lib/main.js +6 -5
- package/lib/main.js.map +1 -1
- package/lib/utils.d.ts +4 -0
- package/lib/utils.js +42 -4
- package/lib/utils.js.map +1 -1
- package/lib/validator.js +19 -13
- package/lib/validator.js.map +1 -1
- package/lib/version.d.ts +2 -2
- package/lib/version.js +2 -2
- package/lib/version.js.map +1 -1
- package/lib/warnings.d.ts +16 -5
- package/lib/warnings.js +86 -6
- package/lib/warnings.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsii-diagnostic.js","sourceRoot":"","sources":["../src/jsii-diagnostic.ts"],"names":[],"mappings":"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","sourcesContent":["import * as spec from '@jsii/spec';\nimport { camel, constant, pascal } from 'case';\nimport * as ts from 'typescript';\n\nimport { TypeSystemHints } from './docs';\nimport { WARNINGSCODE_FILE_NAME } from './transforms/deprecation-warnings';\nimport { Violation } from './tsconfig/validator';\nimport { JSII_DIAGNOSTICS_CODE, _formatDiagnostic } from './utils';\n\n/**\n * Descriptors for all valid jsii diagnostic codes.\n *\n * The `category` or non-error codes can be updated, for example to treat\n * warnings as errors, or to suppress certain undesirable warnings.\n */\nexport class Code<T extends DiagnosticMessageFormatter = DiagnosticMessageFormatter> {\n /**\n * @internal\n */\n public static message<T extends DiagnosticMessageFormatter>({\n code,\n name,\n formatter,\n }: {\n code: number;\n formatter: T;\n name: string;\n }) {\n return new Code<T>(code, name, ts.DiagnosticCategory.Message, formatter);\n }\n\n /**\n * @internal\n */\n public static suggestion<T extends DiagnosticMessageFormatter>({\n code,\n name,\n formatter,\n }: {\n code: number;\n formatter: T;\n name: string;\n }) {\n return new Code<T>(code, name, ts.DiagnosticCategory.Suggestion, formatter);\n }\n\n /**\n * @internal\n */\n public static warning<T extends DiagnosticMessageFormatter>({\n code,\n name,\n formatter,\n }: {\n code: number;\n formatter: T;\n name: string;\n }) {\n return new Code<T>(code, name, ts.DiagnosticCategory.Warning, formatter);\n }\n\n /**\n * @internal\n */\n public static error<T extends DiagnosticMessageFormatter>({\n code,\n name,\n formatter,\n }: {\n code: number;\n formatter: T;\n name: string;\n }) {\n return new Code<T>(code, name, ts.DiagnosticCategory.Error, formatter);\n }\n\n /**\n * Get a diagnostic code by code or name.\n *\n * @param codeOrName the looked up diagnostic code or name.\n *\n * @returns the JsiiDiagnosticCode instande, if one exists, or `undefined`\n *\n * @experimental this module is under active development and the error codes\n * and names may change in the future.\n */\n public static lookup(codeOrName: string | number): Code | undefined {\n if (typeof codeOrName === 'number') {\n return this.byCode.get(codeOrName);\n }\n return this.byName.get(codeOrName);\n }\n\n private static readonly byCode: Map<number, Code> = new Map();\n private static readonly byName: Map<string, Code> = new Map();\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n readonly #defaultCategory: ts.DiagnosticCategory;\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n #category?: ts.DiagnosticCategory;\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n #formatter: T;\n\n /**\n * Registers a new diagnostic code.\n *\n * @param code the numeric code for the diagnostic\n * @param name the symbolic name for the diagnostic\n * @param defaultCategory the default category this diagnostic ranks in\n * @param formatter a message formatter for easy creation of diagnostics\n */\n private constructor(\n public readonly code: number,\n public readonly name: string,\n defaultCategory: ts.DiagnosticCategory,\n formatter: T,\n ) {\n this.#defaultCategory = defaultCategory;\n this.#formatter = formatter;\n\n if (code in Code.byCode) {\n throw new Error(`Attempted to create two instances of ${this.constructor.name} with code ${code}`);\n }\n if (name in Code.byName) {\n throw new Error(`Attempted to create two instances of ${this.constructor.name} with name ${name}`);\n }\n Code.byCode.set(code, this);\n Code.byName.set(name, this);\n }\n\n /**\n * Determines whether this diagnostic is a compilation error. Diagnostics\n * where this is `true` cannot have their `category` overridden to a lower\n * category.\n */\n public get isError(): boolean {\n return this.#defaultCategory === ts.DiagnosticCategory.Error;\n }\n\n /**\n * The diagnostic category this particular code is filed as.\n */\n public get category(): ts.DiagnosticCategory {\n return this.#category ?? this.#defaultCategory;\n }\n\n /**\n * Update the diagnostic category for this particular code. If `isError` is\n * `true`, attempting to set anything other than `ts.DiagnosticCategory.Error`\n * will result in an error being throw.\n *\n * @param newValue the new diagnostic category to be used.\n */\n public set category(newValue: ts.DiagnosticCategory) {\n if (this.isError && newValue !== ts.DiagnosticCategory.Error) {\n throw new Error(\n `Illegal attempt to override category of error ${this.code} to ${ts.DiagnosticCategory[newValue]}`,\n );\n }\n this.#category = newValue;\n }\n\n /**\n * Creates a new `JsiiDiagnostic` message without any source code location\n * data.\n *\n * @param args the arguments to the message formatter.\n *\n * @deprecated It is preferred to specify a source code location for problem\n * markers. Prefer the use of `create` while providing a value\n * for the `location` parameter whenever possible.\n */\n public createDetached(...args: Parameters<T>): JsiiDiagnostic {\n return new JsiiDiagnostic(this, this.#formatter(...args));\n }\n\n /**\n * Creates a new `JsiiDiagnostic` message with source code location denoted\n * by the provided `location` node.\n *\n * @param location the source code location attachment of the message.\n * @param args the arguments to the message formatter.\n */\n public create(location: ts.Node | undefined, ...args: Parameters<T>): JsiiDiagnostic {\n return new JsiiDiagnostic(this, this.#formatter(...args), location);\n }\n}\n\n/**\n * A jsii-specific diagnostic entry.\n */\nexport class JsiiDiagnostic implements ts.Diagnostic {\n //////////////////////////////////////////////////////////////////////////////\n // 0001 => 0999 -- PACKAGE METADATA PROBLEMS\n\n public static readonly JSII_0001_PKG_MISSING_DESCRIPTION = Code.suggestion({\n code: 1,\n formatter: () => 'A \"description\" field should be specified in \"package.json\"',\n name: 'metadata/package-json-missing-description',\n });\n\n public static readonly JSII_0002_PKG_MISSING_HOMEPAGE = Code.suggestion({\n code: 2,\n formatter: () => 'A \"homepage\" field should be specified in \"package.json\"',\n name: 'metadata/package-json-missing-homepage',\n });\n\n public static readonly JSII_0003_MISSING_README = Code.warning({\n code: 3,\n formatter: () => 'There is no \"README.md\" file. It is required in order to generate valid PyPI (Python) packages.',\n name: 'metadata/missing-readme',\n });\n\n public static readonly JSII_0004_COULD_NOT_FIND_ENTRYPOINT = Code.error({\n code: 4,\n formatter: (mainFile: string) => `Could not find \"main\" file: ${mainFile}`,\n name: 'metadata/could-not-find-entrypoint',\n });\n\n public static readonly JSII_0005_MISSING_PEER_DEPENDENCY = Code.warning({\n code: 5,\n formatter: (assm: string, reference: string) =>\n `The type \"${reference}\" is exposed in the public API of this module. ` +\n `Therefore, the module \"${assm}\" must also be defined under \"peerDependencies\". ` +\n 'This will be auto-corrected unless --no-fix-peer-dependencies was specified.',\n name: 'metadata/missing-peer-dependency',\n });\n\n // NOTE: currently not possible to change the severity of this code,\n // as it's being emitted before the overrides have been loaded\n public static readonly JSII_0006_MISSING_DEV_DEPENDENCY = Code.warning({\n code: 6,\n formatter: (dependencyName: string, peerRange: string, minVersion: string, actual: string) =>\n `A \"peerDependency\" on \"${dependencyName}\" at \"${peerRange}\" means you ` +\n `should take a \"devDependency\" on \"${dependencyName}\" at \"${minVersion}\" ` +\n `(found ${JSON.stringify(actual)})`,\n name: 'metadata/missing-dev-dependency',\n });\n\n public static readonly JSII_0007_MISSING_WARNINGS_EXPORT = Code.error({\n code: 7,\n formatter: () =>\n 'If you are compiling with --add-deprecation-warnings and your package.json ' +\n `declares subpath exports, you must include { \"./${WARNINGSCODE_FILE_NAME}\": \"./${WARNINGSCODE_FILE_NAME}\" } ` +\n 'in the set of exports.',\n name: 'metadata/missing-warnings-export',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 1000 => 1999 -- TYPESCRIPT LANGUAGE RESTRICTIONS\n\n public static readonly JSII_1000_NO_CONST_ENUM = Code.error({\n code: 1000,\n formatter: () => 'Exported \"const enum\" declarations are not allowed',\n name: 'typescript-restrictions/no-const-enum',\n });\n\n public static readonly JSII_1001_TYPE_HAS_NO_SYMBOL = Code.error({\n code: 1001,\n formatter: () => 'Non-primitive types without a symbol cannot be processed.',\n name: 'typescript-restrictions/type-has-no-symbol',\n });\n\n public static readonly JSII_1002_UNSPECIFIED_PROMISE = Code.error({\n code: 1002,\n formatter: () => 'Un-specified promise type. Specify it using \"Promise<T>\"',\n name: 'typescript-restrictions/unspecified-promise',\n });\n\n public static readonly JSII_1003_UNSUPPORTED_TYPE = Code.error({\n code: 1003,\n formatter: (messageText) => messageText,\n name: 'typescript-restrictions/unsupported-type',\n });\n\n public static readonly JSII_1004_DUPLICATE_ENUM_VALUE = Code.error({\n code: 1004,\n formatter: (enumValue: string, enumMemberNames: string[]) =>\n `Value ${enumValue} is used for multiple enum values: ${enumMemberNames.join(', ')}`,\n name: 'typescript-restrictions/duplicate-enum-value',\n });\n\n public static readonly JSII_1005_SEPARATE_WRITE_TYPE = Code.error({\n code: 1005,\n formatter: () => 'Visible property signatures cannot use a separate write type. Use the same type as the getter.',\n name: 'typescript-restrictions/separate-write-type',\n });\n\n public static readonly JSII_1006_GENERIC_TYPE = Code.error({\n code: 1006,\n formatter: () => 'Generic types are not supported because semantics are not uniform in target languages.',\n name: 'typescript-restriction/generic-type',\n });\n\n public static readonly JSII_1007_NEVER_TYPE = Code.error({\n code: 1007,\n formatter: () => 'The \"never\" type is not allowed because it cannot be represented in target languages.',\n name: 'typescript-restriction/no-never-type',\n });\n\n public static readonly JSII_1008_ONLY_INTERFACE_INTERSECTION = Code.error({\n code: 1008,\n formatter: (type: string) => `Found non-interface type in type intersection: ${type}`,\n name: 'typescript-restriction/only-interface-intersection',\n });\n\n public static readonly JSII_1009_INTERSECTION_ONLY_INPUT = Code.error({\n code: 1009,\n formatter: (location: string) => `Intersection types may only be used as inputs, but ${location} is used as output`,\n name: 'typescript-restriction/intersection-only-input',\n });\n\n public static readonly JSII_1010_INTERSECTION_NOT_IN_CTOR = Code.error({\n code: 1010,\n formatter: () => `Intersection types cannot be used as constructor arguments`,\n name: 'typescript-restriction/intersection-no-ctor',\n });\n\n public static readonly JSII_1011_INTERSECTION_MEMBER_DIFFERENT = Code.error({\n code: 1011,\n formatter: (member: string, type1: string, reason1: string, type2: string, reason2: string) =>\n `Member ${member} is different between types in a type intersection: ${type1} (${reason1}) and ${type2} (${reason2})`,\n name: 'typescript-restriction/intersection-member-different',\n });\n\n public static readonly JSII_1999_UNSUPPORTED = Code.error({\n code: 1999,\n formatter: ({\n what,\n alternative,\n suggestInternal,\n }: {\n what: string;\n alternative?: string;\n suggestInternal?: boolean;\n }) =>\n `${what} are not supported in jsii APIs.${alternative ? ` Consider using ${alternative} instead.` : ''}${\n suggestInternal\n ? ` This declaration must${alternative ? ' otherwise' : ''} be marked \"@internal\" or \"@jsii ignore\".`\n : ''\n }`,\n name: 'typescript-restrictions/unsupported',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 2000 => 2999 -- INCORRECT USE OF THE @jsii DIRECTIVE\n public static readonly JSII_2000_MISSING_DIRECTIVE_ARGUMENT = Code.warning({\n code: 2000,\n formatter: () =>\n 'Missing argument to @jsii directive. Refer to the jsii compiler documentation for more information.',\n name: 'jsii-directive/missing-argument',\n });\n\n public static readonly JSII_2100_STRUCT_ON_NON_INTERFACE = Code.warning({\n code: 2100,\n formatter: () => 'The \"@jsii struct\" directive is only applicable to interface declarations.',\n name: 'jsii-directive/struct-on-non-interface',\n });\n\n public static readonly JSII_2999_UNKNOWN_DIRECTIVE = Code.warning({\n code: 2999,\n formatter: (text: string) =>\n `Unknown @jsii directive: ${JSON.stringify(\n text,\n )}. Refer to the jsii compiler documentation for more information.`,\n name: 'jsii-directive/unknown',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 3000 => 3999 -- TYPE MODEL COHERENCE\n\n public static readonly JSII_3000_EXPORTED_API_USES_HIDDEN_TYPE = Code.error({\n code: 3000,\n formatter: (badFqn) => `Exported APIs cannot use un-exported type \"${badFqn}\"`,\n name: 'type-model/exported-api-cannot-use-unexported-type',\n });\n\n public static readonly JSII_3001_EXPOSED_INTERNAL_TYPE = Code.error({\n code: 3001,\n formatter: (symbol: ts.Symbol, isThisType: boolean, typeUse: string) =>\n `Type ${\n isThisType ? `\"this\" (aka: \"${symbol.name}\")` : `\"${symbol.name}\"`\n } cannot be used as the ${typeUse} because it is private or @internal`,\n name: 'type-model/use-of-internal-type',\n });\n\n public static readonly JSII_3002_USE_OF_UNEXPORTED_FOREIGN_TYPE = Code.error({\n code: 3002,\n formatter: (fqn: string, typeUse: string, pkg: { readonly name: string }) =>\n `Type \"${fqn}\" cannot be used as a ${typeUse} because it is not exported from ${pkg.name}`,\n name: 'type-model/unexported-foreign-type',\n });\n\n public static readonly JSII_3003_SYMBOL_IS_EXPORTED_TWICE = Code.error({\n code: 3003,\n formatter: (ns1: string, ns2: string) => `Symbol is exported under two distinct submodules: ${ns1} and ${ns2}`,\n name: 'type-model/symbol-is-exported-twice',\n });\n\n public static readonly JSII_3004_INVALID_SUPERTYPE = Code.error({\n code: 3004,\n formatter: (clause: ts.HeritageClause, badDeclaration: ts.Declaration) => {\n return `Illegal ${clauseType(clause.token)} clause for an exported API: ${ts.SyntaxKind[badDeclaration.kind]}`;\n\n function clauseType(token: ts.SyntaxKind): string {\n switch (token) {\n case ts.SyntaxKind.ExtendsKeyword:\n return 'extends';\n case ts.SyntaxKind.ImplementsKeyword:\n return 'implements';\n default:\n return ts.SyntaxKind[token];\n }\n }\n },\n name: 'type-model/invalid-supertype',\n });\n\n public static readonly JSII_3005_TYPE_USED_AS_INTERFACE = Code.error({\n code: 3005,\n formatter: (badType: spec.TypeReference) =>\n `Type \"${spec.describeTypeReference(badType)}\" cannot be used as an interface`,\n name: 'type-model/type-used-as-interface',\n });\n\n public static readonly JSII_3006_TYPE_USED_AS_CLASS = Code.error({\n code: 3006,\n formatter: (badType: spec.TypeReference) =>\n `Type \"${spec.describeTypeReference(badType)}\" cannot be used as a class`,\n name: 'type-model/type-used-as-class',\n });\n\n public static readonly JSII_3007_ILLEGAL_STRUCT_EXTENSION = Code.error({\n code: 3007,\n formatter: (offender: spec.Type, struct: spec.InterfaceType) =>\n `Attempt to extend or implement struct \"${struct.fqn}\" from \"${offender.fqn}\"`,\n name: 'type-model/illegal-struct-extension',\n });\n\n public static readonly JSII_3008_STRUCT_PROPS_MUST_BE_READONLY = Code.error({\n code: 3008,\n formatter: (propName: string, struct: spec.InterfaceType) =>\n `The \"${propName}\" property of struct \"${struct.fqn}\" must be \"readonly\". Rename \"${struct.fqn}\" to \"I${struct.name}\" if it is meant to be a behavioral interface.`,\n name: 'type-model/struct-props-must-be-readonly',\n });\n\n public static readonly JSII_3009_OPTIONAL_PARAMETER_BEFORE_REQUIRED = Code.error({\n code: 3009,\n formatter: (param: spec.Parameter, nextParam: spec.Parameter) =>\n `Parameter \"${param.name}\" cannot be optional, as it precedes required parameter \"${nextParam.name}\"`,\n name: 'type-model/optional-parameter-before-required',\n });\n\n public static readonly JSII_3999_INCOHERENT_TYPE_MODEL = Code.error({\n code: 3999,\n formatter: (messageText) => messageText,\n name: 'type-model/incoherent-type-model',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 4000 => 4999 -- TYPESCRIPT & JSII CONFIG ERRORS\n\n public static readonly JSII_4000_FAILED_TSCONFIG_VALIDATION = Code.error({\n code: 4000,\n formatter: (config: string, ruleSet: string, violations: Array<Violation>) => {\n return `Typescript compiler options in \"${config}\" are not passing validation against rule set \"${ruleSet}\", found the following rule violations:\\n${violations\n .map((v) => ` - ${v.field}: ${v.message}`)\n .join('\\n')}`;\n },\n name: 'typescript-config/invalid-tsconfig',\n });\n\n public static readonly JSII_4009_DISABLED_TSCONFIG_VALIDATION = Code.warning({\n code: 4009,\n formatter: (config: string) =>\n `Validation of typescript config \"${config}\" is disabled. This is intended for experimental setups only. Compilation might fail or produce incompatible artifacts.`,\n name: 'typescript-config/disabled-tsconfig-validation',\n });\n\n public static readonly JSII_4010_SUBMODULE_NAMESPACE_CONFLICT = Code.warning({\n code: 4010,\n formatter: (language: string, namespace: string, modules: string[]) =>\n `Multiple modules emit to the same ${language} namespace \"${namespace}\": ${modules.join(', ')}`,\n name: 'jsii-config/submodule-conflict',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 5000 => 5999 -- LANGUAGE COMPATIBILITY ERRORS\n\n public static readonly JSII_5000_JAVA_GETTERS = Code.error({\n code: 5000,\n formatter: (badName: string, typeName: string) =>\n `Methods and properties cannot have names like \"getXxx\": those conflict with Java property getters. Rename \"${typeName}.${badName}\"`,\n name: 'language-compatibility/potential-java-getter-conflict',\n });\n\n public static readonly JSII_5001_JAVA_SETTERS = Code.error({\n code: 5001,\n formatter: (badName: string, typeName: string) =>\n `Methods and properties cannot have names like \"setXxx\": those conflict with Java property setters. Rename \"${typeName}.${badName}\"`,\n name: 'language-compatibility/potential-java-setter-conflict',\n });\n\n public static readonly JSII_5002_OVERRIDE_CHANGES_VISIBILITY = Code.error({\n code: 5002,\n formatter: (\n newElement: string,\n action: string,\n newValue: 'protected' | 'public',\n oldValue: 'protected' | 'public',\n ) => `\"${newElement}\" changes visibility to ${newValue} when ${action}. Change it to ${oldValue}`,\n name: 'language-compatibility/override-changes-visibility',\n });\n\n public static readonly JSII_5003_OVERRIDE_CHANGES_RETURN_TYPE = Code.error({\n code: 5003,\n formatter: (newElement: string, action: string, newValue: string, oldValue: string) =>\n `\"${newElement}\" changes the return type to \"${newValue}\" when ${action}. Change it to \"${oldValue}\"`,\n name: 'language-compatibility/override-changes-return-type',\n });\n\n public static readonly JSII_5004_OVERRIDE_CHANGES_PROP_TYPE = Code.error({\n code: 5004,\n formatter: (newElement: string, action: string, newType: spec.TypeReference, oldType: spec.TypeReference) =>\n `\"${newElement}\" changes the property type to \"${spec.describeTypeReference(\n newType,\n )}\" when ${action}. Change it to \"${spec.describeTypeReference(oldType)}\"`,\n name: 'language-compatibility/override-changes-property-type',\n });\n\n public static readonly JSII_5005_OVERRIDE_CHANGES_PARAM_COUNT = Code.error({\n code: 5005,\n formatter: (newElement: string, action: string, newCount: number, oldCount: number) =>\n `\"${newElement}\" has ${newCount} parameters when ${action}. It should accept ${oldCount} parameters`,\n name: 'language-compatibility/override-changes-param-count',\n });\n\n public static readonly JSII_5006_OVERRIDE_CHANGES_PARAM_TYPE = Code.error({\n code: 5006,\n formatter: (newElement: string, action: string, newParam: spec.Parameter, oldParam: spec.Parameter) =>\n `\"${newElement}\" changes the type of parameter \"${newParam.name}\" to ${spec.describeTypeReference(\n newParam.type,\n )} when ${action}. Change it to ${spec.describeTypeReference(oldParam.type)}`,\n name: 'language-compatibility/override-changes-param-type',\n });\n\n public static readonly JSII_5007_OVERRIDE_CHANGES_VARIADIC = Code.error({\n code: 5007,\n formatter: (newElement: string, action: string, newVariadic = false, oldVariadic = false) =>\n `\"${newElement}\" turns ${newVariadic ? 'variadic' : 'non variadic'} when ${action}. Make it ${\n oldVariadic ? 'variadic' : 'non-variadic'\n }`,\n name: 'language-compatibility/override-changes-variadic',\n });\n\n public static readonly JSII_5008_OVERRIDE_CHANGES_PARAM_OPTIONAL = Code.error({\n code: 5008,\n formatter: (newElement: string, action: string, newParam: spec.Parameter, oldParam: spec.Parameter) =>\n `\"${newElement}\" turns parameter \"${newParam.name}\" ${\n newParam.optional ? 'optional' : 'required'\n } when ${action}. Make it ${oldParam.optional ? 'optional' : 'required'}`,\n name: 'language-compatibility/override-changes-param-optional',\n });\n\n public static readonly JSII_5009_OVERRIDE_CHANGES_PROP_OPTIONAL = Code.error({\n code: 5009,\n formatter: (newElement: string, action: string, newOptional = false, oldOptional = false) =>\n `\"${newElement}\" turns ${newOptional ? 'optional' : 'required'} when ${action}. Make it ${\n oldOptional ? 'optional' : 'required'\n }`,\n name: 'language-compatibility/override-changes-prop-optional',\n });\n\n public static readonly JSII_5010_OVERRIDE_CHANGES_MUTABILITY = Code.error({\n code: 5010,\n formatter: (newElement: string, action: string, newReadonly = false, oldReadonly = false) =>\n `\"${newElement}\" turns ${newReadonly ? 'readonly' : 'mutable'} when ${action}. Make it ${\n oldReadonly ? 'readonly' : 'mutable'\n }`,\n name: 'language-compatibility/override-changes-mutability',\n });\n\n public static readonly JSII_5011_SUBMODULE_NAME_CONFLICT = Code.error({\n code: 5011,\n formatter: (submoduleName: string, typeName: string, reserved: readonly string[]) =>\n `Submodule \"${submoduleName}\" conflicts with \"${typeName}, as different languages could represent it as: ${reserved\n .map((x) => `\"${x}\"`)\n .join(', ')}\"`,\n name: 'language-compatibility/submodule-name-conflicts',\n });\n\n public static readonly JSII_5012_NAMESPACE_IN_TYPE = Code.error({\n code: 5012,\n formatter: (typeName: string, namespaceName: string) =>\n `All entities nested under a type (e.g: \"${typeName}\") must be concrete types, but \"${namespaceName}\" is a namespace. This structure cannot be supported in all languages (e.g: Java)`,\n name: 'language-compatibility/namespace-in-type',\n });\n\n public static readonly JSII_5013_STATIC_INSTANCE_CONFLICT = Code.error({\n code: 5013,\n formatter: (member: string, type: spec.ClassType) =>\n `Member \"${member}\" of class \"${type.fqn}\" has both a static and an instance delcaration`,\n name: 'language-compatibility/static-instance-conflict',\n });\n\n public static readonly JSII_5014_INHERITED_STATIC_CONFLICT = Code.error({\n code: 5014,\n formatter: (\n member: spec.Method | spec.Property,\n type: spec.ClassType,\n baseMember: spec.Method | spec.Property,\n baseType: spec.ClassType,\n ) =>\n `${member.static ? 'Static' : 'Instance'} member \"${member.name}\" of class \"${type.fqn}\" conflicts with ${\n baseMember.static ? 'static' : 'instance'\n } member in ancestor \"${baseType.fqn}\"`,\n name: 'language-compatibility/inherited-static-conflict',\n });\n\n public static readonly JSII_5015_REDECLARED_INTERFACE_MEMBER = Code.error({\n code: 5015,\n formatter: (memberName: string, iface: spec.InterfaceType) =>\n `Interface \"${iface.fqn}\" re-declares member \"${memberName}\". This is not supported as it results in invalid C#.`,\n name: 'language-compatibility/redeclared-interface-member',\n });\n\n public static readonly JSII_5016_PROHIBITED_MEMBER_NAME = Code.error({\n code: 5016,\n formatter: (badName: string) =>\n `Members cannot be named \"${badName}\" as it conflicts with synthetic declarations in some languages.`,\n name: 'language-compatibility/prohibited-member-name',\n });\n\n public static readonly JSII_5017_POSITIONAL_KEYWORD_CONFLICT = Code.error({\n code: 5017,\n formatter: (badName: string) =>\n `Parameter name \"${badName}\" is also the name of a property in a struct parameter. Rename the positional parameter.`,\n name: 'language-compatibility/positional-keyword-conflict',\n });\n\n public static readonly JSII_5018_RESERVED_WORD = Code.warning({\n code: 5018,\n formatter: (badName: string, languages: readonly string[]) =>\n `\"${badName}\" is a reserved word in ${languages.join(\n ', ',\n )}. Using this name may cause problems when generating language bindings. Consider a different name.`,\n name: 'language-compatibility/reserved-word',\n });\n\n public static readonly JSII_5019_MEMBER_TYPE_NAME_CONFLICT = Code.warning({\n code: 5019,\n formatter: (memberKind: 'method' | 'property', memberSymbol: ts.Symbol, declaringType: spec.Type) =>\n `The ${memberKind} name \"${memberSymbol.name}\" conflicts with the declaring ${declaringType.kind} \"${declaringType.name}\". This will result in renaming the ${declaringType.kind} to \"_${declaringType.name}\" in C#. Consider renaming \"${memberSymbol.name}\".`,\n name: 'language-compatibility/member-name-conflicts-with-type-name',\n });\n\n public static readonly JSII_5020_STATIC_MEMBER_CONFLICTS_WITH_NESTED_TYPE = Code.error({\n code: 5020,\n formatter: (\n nestingType: spec.Type,\n staticMember: spec.Property | spec.Method | spec.EnumMember,\n nestedType: spec.Type,\n ) =>\n `The static member \"${nestingType.name}.${staticMember.name}\" has the same PascalCased representation as nested type \"${nestingType.name}.${nestedType.name}\". This would result in invalid code in Go.`,\n name: 'language-compatibility/static-member-name-conflicts-with-nested-type',\n });\n\n public static readonly JSII_5021_ABSTRACT_CLASS_MISSING_PROP_IMPL = Code.error({\n code: 5021,\n formatter: (intf: spec.InterfaceType, cls: spec.ClassType, prop: string) =>\n `A declaration of \"${intf.name}.${prop}\" is missing on class \"${cls.name}\". Declare the property as \"public abstract\" if you want to defer it to subclasses.`,\n name: 'language-compatibility/abstract-class-missing-prop-impl',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 6000 => 6999 -- RESERVED\n\n //////////////////////////////////////////////////////////////////////////////\n // 7000 => 7999 -- DOCUMENTATION ERRORS\n\n public static readonly JSII_7000_NON_EXISTENT_PARAMETER = Code.warning({\n code: 7000,\n formatter: (method: spec.Method, param: string) =>\n `Documentation for method \"${method.name}\" refers to non-existent @param \"${param}\"`,\n name: 'documentation/non-existent-parameter',\n });\n\n public static readonly JSII_7001_ILLEGAL_HINT = Code.error({\n code: 7001,\n formatter: (hint: keyof TypeSystemHints, ...valid: readonly string[]) =>\n `Illegal use of \"@${hint}\" hint. It is only valid on ${valid.join(', ')}.`,\n name: 'documentation/illegal-hint',\n });\n\n public static readonly JSII_7999_DOCUMENTATION_ERROR = Code.error({\n code: 7999,\n formatter: (messageText) => messageText,\n name: 'documentation/documentation-error',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 8000 => 8999 -- JSII STYLE ENFORCEMENT\n\n public static readonly JSII_8000_PASCAL_CASED_TYPE_NAMES = Code.error({\n code: 8000,\n formatter: (badName: string, expectedName: string = pascal(badName)) =>\n `Type names must be PascalCased. Rename \"${badName}\" to \"${expectedName}\"`,\n name: 'code-style/type-names-must-use-pascal-case',\n });\n\n public static readonly JSII_8001_ALL_CAPS_ENUM_MEMBERS = Code.error({\n code: 8001,\n formatter: (badName: string, typeName: string) =>\n `Enum members must be ALL_CAPS. Rename \"${typeName}.${badName}\" to \"${constant(badName)}\"`,\n name: 'code-style/enum-members-must-use-all-caps',\n });\n\n public static readonly JSII_8002_CAMEL_CASED_MEMBERS = Code.error({\n code: 8002,\n formatter: (badName: string, typeName: string) =>\n `Method and property (unless they are static readonly) names must use camelCase. Rename \"${typeName}.${badName}\" to \"${camel(\n badName,\n )}\"`,\n name: 'code-style/member-names-must-use-camel-case',\n });\n\n public static readonly JSII_8003_STATIC_CONST_CASING = Code.error({\n code: 8003,\n formatter: (badName: string, typeName: string) =>\n `Static constant names must use ALL_CAPS, PascalCase, or camelCase. Rename \"${typeName}.${badName}\" to \"${constant(\n badName,\n )}\"`,\n name: 'code-style/static-readonly-property-casing',\n });\n\n public static readonly JSII_8004_SUBMOULE_NAME_CASING = Code.error({\n code: 8004,\n formatter: (badName: string) =>\n `Submodule namespaces must be camelCased or snake_cased. Rename \"${badName}\" to ${camel(badName)}`,\n name: 'code-style/submodule-name-casing',\n });\n\n public static readonly JSII_8005_INTERNAL_UNDERSCORE = Code.error({\n code: 8005,\n formatter: (badName: string) =>\n `Members marked with @internal must have a name starting with \"_\". Rename \"${badName}\" to \"_${badName}\"`,\n name: 'code-style/internal-members-underscore-prefix',\n });\n\n public static readonly JSII_8006_UNDERSCORE_INTERNAL = Code.error({\n code: 8006,\n formatter: (badName: string) =>\n `Members with a name starting with \"_\" (e.g: \"${badName}\") must be marked @internal`,\n name: 'code-style/underscored-members-must-be-internal',\n });\n\n public static readonly JSII_8007_BEHAVIORAL_INTERFACE_NAME = Code.error({\n code: 8007,\n formatter: (badName: string) => `Interface contains behavior. Rename \"${badName}\" to \"I${badName}\"`,\n name: 'code-style/behavioral-interface-name',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 9000 => 9999 -- SURPRISING ERRORS & INFORMATIONAL MESSAGES\n\n public static readonly JSII_9000_UNKNOWN_MODULE = Code.error({\n code: 9000,\n formatter: (moduleName) =>\n `Encountered use of module that is not declared in \"dependencies\" or \"peerDependencies\": \"${moduleName}\"`,\n name: 'miscellaneous/unknown-module',\n });\n\n public static readonly JSII_9001_TYPE_NOT_FOUND = Code.error({\n code: 9001,\n formatter: (typeRef: spec.NamedTypeReference) => `Type not found in the corresponding assembly: \"${typeRef.fqn}\"`,\n name: 'miscellaneous/type-not-found',\n });\n\n public static readonly JSII_9002_UNRESOLVEABLE_TYPE = Code.error({\n code: 9002,\n formatter: (reference: string) =>\n `Type \"${reference}\" is part of the public API but not exported (@internal or not exported from the package.json \"main\" file). Either export it or add @internal explicitly if you want this to be a hidden base class.`,\n name: 'miscellaneous/unresolveable-type',\n });\n\n public static readonly JSII_9003_UNRESOLVEABLE_MODULE = Code.error({\n code: 9003,\n formatter: (location: string) => `Unable to resolve module location \"${location}\"`,\n name: 'miscellaneous/unresolveable-module',\n });\n\n public static readonly JSII_9004_UNABLE_TO_COMPUTE_SIGNATURE = Code.error({\n code: 9004,\n formatter: (methodName: string, type: spec.Type) =>\n `Unable to compute signature for method \"${methodName}\" of \"${type.fqn}\"`,\n name: 'miscellaneous/unable-to-compute-signature',\n });\n\n public static readonly JSII_9996_UNNECESSARY_TOKEN = Code.message({\n code: 9996,\n formatter: () => 'Unnecessary token, consider removing it',\n name: 'miscellaneous/unnecessary-token',\n });\n\n public static readonly JSII_9997_UNKNOWN_ERROR = Code.error({\n code: 9997,\n formatter: (error: Error) => `Unknown error: ${error.message} -- ${error.stack}`,\n name: 'miscellaneous/unknown-error',\n });\n\n public static readonly JSII_9998_UNSUPPORTED_NODE = Code.message({\n code: 9998,\n formatter: (kindOrMessage: ts.SyntaxKind | string) =>\n typeof kindOrMessage === 'string'\n ? kindOrMessage\n : `Unsupported ${ts.SyntaxKind[kindOrMessage]} node. This declaration will not be accessible from other languages.`,\n name: 'miscellaneous/unsupported-node',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n\n /**\n * Determines whether a `Diagnostic` instance is a `JsiiDiagnostic` or not.\n * @param diag\n */\n public static isJsiiDiagnostic(diag: ts.Diagnostic): diag is JsiiDiagnostic {\n return (diag as unknown as JsiiDiagnostic).domain === JsiiDiagnostic.DOMAIN;\n }\n\n //////////////////////////////////////////////////////////////////////////////\n\n private static readonly JSII_9999_RELATED_INFO = Code.suggestion({\n code: 9999,\n formatter: (messageText) => messageText,\n name: 'miscellaneous/related-info',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n\n /**\n * This symbol unequivocally identifies the `JsiiDiagnostic` domain.\n */\n private static readonly DOMAIN = Symbol('jsii');\n\n private readonly domain = JsiiDiagnostic.DOMAIN;\n\n public readonly category: ts.DiagnosticCategory;\n public readonly code: number = JSII_DIAGNOSTICS_CODE;\n public readonly jsiiCode: number;\n public readonly messageText: string | ts.DiagnosticMessageChain;\n\n public readonly file: ts.SourceFile | undefined;\n public readonly start: number | undefined;\n public readonly length: number | undefined;\n\n public readonly relatedInformation = new Array<ts.DiagnosticRelatedInformation>();\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n #formatted?: string;\n\n /**\n * Creates a new `JsiiDiagnostic` with the provided properties.\n *\n * @internal\n */\n public constructor(code: Code, messageText: string | ts.DiagnosticMessageChain, location?: ts.Node) {\n this.category = code.category;\n this.jsiiCode = code.code;\n this.messageText = messageText;\n\n if (location != null) {\n this.file = location.getSourceFile();\n this.start = location.getStart(this.file);\n this.length = location.getEnd() - this.start;\n }\n }\n\n public addRelatedInformation(node: ts.Node, message: JsiiDiagnostic['messageText']): this {\n // Don't relate info into the TypeScript standard library\n if (!/[\\\\/]typescript[\\\\/]lib[\\\\/]lib\\..+\\.d\\.ts$/.test(node.getSourceFile().fileName)) {\n this.relatedInformation.push(JsiiDiagnostic.JSII_9999_RELATED_INFO.create(node, message));\n }\n // Clearing out #formatted, as this would no longer be the correct string.\n this.#formatted = undefined;\n return this;\n }\n\n /**\n * Links the provided `node` with the specified `message` as related to the\n * current diagnostic, unless `node` is undefined.\n *\n * @param node the node where the message should be attached, if any.\n * @param message the message to be attached to the diagnostic entry.\n *\n * @returns `this`\n */\n public addRelatedInformationIf(node: ts.Node | undefined, message: JsiiDiagnostic['messageText']): this {\n if (node != null) {\n return this.addRelatedInformation(node, message);\n } else {\n return this;\n }\n }\n\n /**\n * Adds related information to this `JsiiDiagnostic` instance if the provided\n * `node` is defined.\n *\n * @param node the node to bind as related information, or `undefined`.\n * @param message the message to attach to the related information.\n *\n * @returns `this`\n */\n public maybeAddRelatedInformation(node: ts.Node | undefined, message: JsiiDiagnostic['messageText']): this {\n if (node == null) {\n return this;\n }\n this.relatedInformation.push(JsiiDiagnostic.JSII_9999_RELATED_INFO.create(node, message));\n // Clearing out #formatted, as this would no longer be the correct string.\n this.#formatted = undefined;\n return this;\n }\n\n /**\n * Formats this diagnostic with color and context if possible, and returns it.\n * The formatted diagnostic is cached, so that it can be re-used. This is\n * useful for diagnostic messages involving trivia -- as the trivia may have\n * been obliterated from the `SourceFile` by the `TsCommentReplacer`, which\n * makes the error messages really confusing.\n */\n public format(projectRoot: string): string {\n if (this.#formatted == null) {\n this.#formatted = _formatDiagnostic(this, projectRoot);\n }\n return this.#formatted;\n }\n}\n\nexport type DiagnosticMessageFormatter = (...args: any[]) => JsiiDiagnostic['messageText'];\n\nexport function configureCategories(records: { [code: string]: ts.DiagnosticCategory }) {\n for (const [code, category] of Object.entries(records)) {\n const diagCode = Code.lookup(diagnosticCode(code));\n if (!diagCode) {\n throw new Error(`Unrecognized diagnostic code '${code}'`);\n }\n diagCode.category = category;\n }\n}\n\nfunction diagnosticCode(str: string): string | number {\n if (str.toLowerCase().startsWith('jsii')) {\n const re = /^JSII(\\d+)$/i.exec(str);\n if (re) {\n return parseInt(re[1], 10);\n }\n throw new Error(`Invalid diagnostic code ${str}. A number must follow code that starts with 'JSII'`);\n }\n return str;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"jsii-diagnostic.js","sourceRoot":"","sources":["../src/jsii-diagnostic.ts"],"names":[],"mappings":"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","sourcesContent":["import * as spec from '@jsii/spec';\nimport { camel, constant, pascal } from 'case';\nimport * as ts from 'typescript';\n\nimport { TypeSystemHints } from './docs';\nimport { WARNINGSCODE_FILE_NAME } from './transforms/deprecation-warnings';\nimport { Violation } from './tsconfig/validator';\nimport { JSII_DIAGNOSTICS_CODE, _formatDiagnostic } from './utils';\n\n/**\n * Descriptors for all valid jsii diagnostic codes.\n *\n * The `category` or non-error codes can be updated, for example to treat\n * warnings as errors, or to suppress certain undesirable warnings.\n */\nexport class Code<T extends DiagnosticMessageFormatter = DiagnosticMessageFormatter> {\n /**\n * @internal\n */\n public static message<T extends DiagnosticMessageFormatter>({\n code,\n name,\n formatter,\n }: {\n code: number;\n formatter: T;\n name: string;\n }) {\n return new Code<T>(code, name, ts.DiagnosticCategory.Message, formatter);\n }\n\n /**\n * @internal\n */\n public static suggestion<T extends DiagnosticMessageFormatter>({\n code,\n name,\n formatter,\n }: {\n code: number;\n formatter: T;\n name: string;\n }) {\n return new Code<T>(code, name, ts.DiagnosticCategory.Suggestion, formatter);\n }\n\n /**\n * @internal\n */\n public static warning<T extends DiagnosticMessageFormatter>({\n code,\n name,\n formatter,\n }: {\n code: number;\n formatter: T;\n name: string;\n }) {\n return new Code<T>(code, name, ts.DiagnosticCategory.Warning, formatter);\n }\n\n /**\n * @internal\n */\n public static error<T extends DiagnosticMessageFormatter>({\n code,\n name,\n formatter,\n }: {\n code: number;\n formatter: T;\n name: string;\n }) {\n return new Code<T>(code, name, ts.DiagnosticCategory.Error, formatter);\n }\n\n /**\n * Get a diagnostic code by code or name.\n *\n * @param codeOrName the looked up diagnostic code or name.\n *\n * @returns the JsiiDiagnosticCode instande, if one exists, or `undefined`\n *\n * @experimental this module is under active development and the error codes\n * and names may change in the future.\n */\n public static lookup(codeOrName: string | number): Code | undefined {\n if (typeof codeOrName === 'number') {\n return this.byCode.get(codeOrName);\n }\n return this.byName.get(codeOrName);\n }\n\n /**\n * Find all codes matching a name or partial name.\n *\n * If the input contains a `/`, it must match a full diagnostic name exactly.\n * Otherwise it matches any diagnostic whose category (before `/`) or specific\n * name (after `/`) equals the input.\n */\n public static lookupByPartialName(name: string): Code[] {\n if (name.includes('/')) {\n const exact = this.byName.get(name);\n return exact ? [exact] : [];\n }\n return [...this.byName.values()].filter((c) => {\n const [category, specific] = c.name.split('/', 2);\n return category === name || specific === name;\n });\n }\n\n private static readonly byCode: Map<number, Code> = new Map();\n private static readonly byName: Map<string, Code> = new Map();\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n readonly #defaultCategory: ts.DiagnosticCategory;\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n #category?: ts.DiagnosticCategory;\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n #formatter: T;\n\n /**\n * Registers a new diagnostic code.\n *\n * @param code the numeric code for the diagnostic\n * @param name the symbolic name for the diagnostic\n * @param defaultCategory the default category this diagnostic ranks in\n * @param formatter a message formatter for easy creation of diagnostics\n */\n private constructor(\n public readonly code: number,\n public readonly name: string,\n defaultCategory: ts.DiagnosticCategory,\n formatter: T,\n ) {\n this.#defaultCategory = defaultCategory;\n this.#formatter = formatter;\n\n if (code in Code.byCode) {\n throw new Error(`Attempted to create two instances of ${this.constructor.name} with code ${code}`);\n }\n if (name in Code.byName) {\n throw new Error(`Attempted to create two instances of ${this.constructor.name} with name ${name}`);\n }\n Code.byCode.set(code, this);\n Code.byName.set(name, this);\n }\n\n /**\n * Determines whether this diagnostic is a compilation error. Diagnostics\n * where this is `true` cannot have their `category` overridden to a lower\n * category.\n */\n public get isError(): boolean {\n return this.#defaultCategory === ts.DiagnosticCategory.Error;\n }\n\n /**\n * The diagnostic category this particular code is filed as.\n */\n public get category(): ts.DiagnosticCategory {\n return this.#category ?? this.#defaultCategory;\n }\n\n /**\n * Update the diagnostic category for this particular code. If `isError` is\n * `true`, attempting to set anything other than `ts.DiagnosticCategory.Error`\n * will result in an error being throw.\n *\n * @param newValue the new diagnostic category to be used.\n */\n public set category(newValue: ts.DiagnosticCategory) {\n if (this.isError && newValue !== ts.DiagnosticCategory.Error) {\n throw new Error(\n `Illegal attempt to override category of error ${this.code} to ${ts.DiagnosticCategory[newValue]}`,\n );\n }\n this.#category = newValue;\n }\n\n /**\n * Creates a new `JsiiDiagnostic` message without any source code location\n * data.\n *\n * @param args the arguments to the message formatter.\n *\n * @deprecated It is preferred to specify a source code location for problem\n * markers. Prefer the use of `create` while providing a value\n * for the `location` parameter whenever possible.\n */\n public createDetached(...args: Parameters<T>): JsiiDiagnostic {\n return new JsiiDiagnostic(this, this.#formatter(...args));\n }\n\n /**\n * Creates a new `JsiiDiagnostic` message with source code location denoted\n * by the provided `location` node.\n *\n * @param location the source code location attachment of the message.\n * @param args the arguments to the message formatter.\n */\n public create(location: ts.Node | undefined, ...args: Parameters<T>): JsiiDiagnostic {\n return new JsiiDiagnostic(this, this.#formatter(...args), location);\n }\n}\n\n/**\n * A jsii-specific diagnostic entry.\n */\nexport class JsiiDiagnostic implements ts.Diagnostic {\n //////////////////////////////////////////////////////////////////////////////\n // 0001 => 0999 -- PACKAGE METADATA PROBLEMS\n\n public static readonly JSII_0001_PKG_MISSING_DESCRIPTION = Code.suggestion({\n code: 1,\n formatter: () => 'A \"description\" field should be specified in \"package.json\"',\n name: 'metadata/package-json-missing-description',\n });\n\n public static readonly JSII_0002_PKG_MISSING_HOMEPAGE = Code.suggestion({\n code: 2,\n formatter: () => 'A \"homepage\" field should be specified in \"package.json\"',\n name: 'metadata/package-json-missing-homepage',\n });\n\n public static readonly JSII_0003_MISSING_README = Code.warning({\n code: 3,\n formatter: () => 'There is no \"README.md\" file. It is required in order to generate valid PyPI (Python) packages.',\n name: 'metadata/missing-readme',\n });\n\n public static readonly JSII_0004_COULD_NOT_FIND_ENTRYPOINT = Code.error({\n code: 4,\n formatter: (mainFile: string) => `Could not find \"main\" file: ${mainFile}`,\n name: 'metadata/could-not-find-entrypoint',\n });\n\n public static readonly JSII_0005_MISSING_PEER_DEPENDENCY = Code.warning({\n code: 5,\n formatter: (assm: string, reference: string) =>\n `The type \"${reference}\" is exposed in the public API of this module. ` +\n `Therefore, the module \"${assm}\" must also be defined under \"peerDependencies\". ` +\n 'This will be auto-corrected unless --no-fix-peer-dependencies was specified.',\n name: 'metadata/missing-peer-dependency',\n });\n\n // NOTE: currently not possible to change the severity of this code,\n // as it's being emitted before the overrides have been loaded\n public static readonly JSII_0006_MISSING_DEV_DEPENDENCY = Code.warning({\n code: 6,\n formatter: (dependencyName: string, peerRange: string, minVersion: string, actual: string) =>\n `A \"peerDependency\" on \"${dependencyName}\" at \"${peerRange}\" means you ` +\n `should take a \"devDependency\" on \"${dependencyName}\" at \"${minVersion}\" ` +\n `(found ${JSON.stringify(actual)})`,\n name: 'metadata/missing-dev-dependency',\n });\n\n public static readonly JSII_0007_MISSING_WARNINGS_EXPORT = Code.error({\n code: 7,\n formatter: () =>\n 'If you are compiling with --add-deprecation-warnings and your package.json ' +\n `declares subpath exports, you must include { \"./${WARNINGSCODE_FILE_NAME}\": \"./${WARNINGSCODE_FILE_NAME}\" } ` +\n 'in the set of exports.',\n name: 'metadata/missing-warnings-export',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 1000 => 1999 -- TYPESCRIPT LANGUAGE RESTRICTIONS\n\n public static readonly JSII_1000_NO_CONST_ENUM = Code.error({\n code: 1000,\n formatter: () => 'Exported \"const enum\" declarations are not allowed',\n name: 'typescript-restrictions/no-const-enum',\n });\n\n public static readonly JSII_1001_TYPE_HAS_NO_SYMBOL = Code.error({\n code: 1001,\n formatter: () => 'Non-primitive types without a symbol cannot be processed.',\n name: 'typescript-restrictions/type-has-no-symbol',\n });\n\n public static readonly JSII_1002_UNSPECIFIED_PROMISE = Code.error({\n code: 1002,\n formatter: () => 'Un-specified promise type. Specify it using \"Promise<T>\"',\n name: 'typescript-restrictions/unspecified-promise',\n });\n\n public static readonly JSII_1003_UNSUPPORTED_TYPE = Code.error({\n code: 1003,\n formatter: (messageText) => messageText,\n name: 'typescript-restrictions/unsupported-type',\n });\n\n public static readonly JSII_1004_DUPLICATE_ENUM_VALUE = Code.error({\n code: 1004,\n formatter: (enumValue: string, enumMemberNames: string[]) =>\n `Value ${enumValue} is used for multiple enum values: ${enumMemberNames.join(', ')}`,\n name: 'typescript-restrictions/duplicate-enum-value',\n });\n\n public static readonly JSII_1005_SEPARATE_WRITE_TYPE = Code.error({\n code: 1005,\n formatter: () => 'Visible property signatures cannot use a separate write type. Use the same type as the getter.',\n name: 'typescript-restrictions/separate-write-type',\n });\n\n public static readonly JSII_1006_GENERIC_TYPE = Code.error({\n code: 1006,\n formatter: () => 'Generic types are not supported because semantics are not uniform in target languages.',\n name: 'typescript-restriction/generic-type',\n });\n\n public static readonly JSII_1007_NEVER_TYPE = Code.error({\n code: 1007,\n formatter: () => 'The \"never\" type is not allowed because it cannot be represented in target languages.',\n name: 'typescript-restriction/no-never-type',\n });\n\n public static readonly JSII_1008_ONLY_INTERFACE_INTERSECTION = Code.error({\n code: 1008,\n formatter: (type: string) => `Found non-interface type in type intersection: ${type}`,\n name: 'typescript-restriction/only-interface-intersection',\n });\n\n public static readonly JSII_1009_INTERSECTION_ONLY_INPUT = Code.error({\n code: 1009,\n formatter: (location: string) => `Intersection types may only be used as inputs, but ${location} is used as output`,\n name: 'typescript-restriction/intersection-only-input',\n });\n\n public static readonly JSII_1010_INTERSECTION_NOT_IN_CTOR = Code.error({\n code: 1010,\n formatter: () => `Intersection types cannot be used as constructor arguments`,\n name: 'typescript-restriction/intersection-no-ctor',\n });\n\n public static readonly JSII_1011_INTERSECTION_MEMBER_DIFFERENT = Code.error({\n code: 1011,\n formatter: (member: string, type1: string, reason1: string, type2: string, reason2: string) =>\n `Member ${member} is different between types in a type intersection: ${type1} (${reason1}) and ${type2} (${reason2})`,\n name: 'typescript-restriction/intersection-member-different',\n });\n\n public static readonly JSII_1999_UNSUPPORTED = Code.error({\n code: 1999,\n formatter: ({\n what,\n alternative,\n suggestInternal,\n }: {\n what: string;\n alternative?: string;\n suggestInternal?: boolean;\n }) =>\n `${what} are not supported in jsii APIs.${alternative ? ` Consider using ${alternative} instead.` : ''}${\n suggestInternal\n ? ` This declaration must${alternative ? ' otherwise' : ''} be marked \"@internal\" or \"@jsii ignore\".`\n : ''\n }`,\n name: 'typescript-restrictions/unsupported',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 2000 => 2999 -- INCORRECT USE OF THE @jsii DIRECTIVE\n public static readonly JSII_2000_MISSING_DIRECTIVE_ARGUMENT = Code.warning({\n code: 2000,\n formatter: () =>\n 'Missing argument to @jsii directive. Refer to the jsii compiler documentation for more information.',\n name: 'jsii-directive/missing-argument',\n });\n\n public static readonly JSII_2100_STRUCT_ON_NON_INTERFACE = Code.warning({\n code: 2100,\n formatter: () => 'The \"@jsii struct\" directive is only applicable to interface declarations.',\n name: 'jsii-directive/struct-on-non-interface',\n });\n\n public static readonly JSII_2999_UNKNOWN_DIRECTIVE = Code.warning({\n code: 2999,\n formatter: (text: string) =>\n `Unknown @jsii directive: ${JSON.stringify(\n text,\n )}. Refer to the jsii compiler documentation for more information.`,\n name: 'jsii-directive/unknown',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 3000 => 3999 -- TYPE MODEL COHERENCE\n\n public static readonly JSII_3000_EXPORTED_API_USES_HIDDEN_TYPE = Code.error({\n code: 3000,\n formatter: (badFqn) => `Exported APIs cannot use un-exported type \"${badFqn}\"`,\n name: 'type-model/exported-api-cannot-use-unexported-type',\n });\n\n public static readonly JSII_3001_EXPOSED_INTERNAL_TYPE = Code.error({\n code: 3001,\n formatter: (symbol: ts.Symbol, isThisType: boolean, typeUse: string) =>\n `Type ${\n isThisType ? `\"this\" (aka: \"${symbol.name}\")` : `\"${symbol.name}\"`\n } cannot be used as the ${typeUse} because it is private or @internal`,\n name: 'type-model/use-of-internal-type',\n });\n\n public static readonly JSII_3002_USE_OF_UNEXPORTED_FOREIGN_TYPE = Code.error({\n code: 3002,\n formatter: (fqn: string, typeUse: string, pkg: { readonly name: string }) =>\n `Type \"${fqn}\" cannot be used as a ${typeUse} because it is not exported from ${pkg.name}`,\n name: 'type-model/unexported-foreign-type',\n });\n\n public static readonly JSII_3003_SYMBOL_IS_EXPORTED_TWICE = Code.error({\n code: 3003,\n formatter: (ns1: string, ns2: string) => `Symbol is exported under two distinct submodules: ${ns1} and ${ns2}`,\n name: 'type-model/symbol-is-exported-twice',\n });\n\n public static readonly JSII_3004_INVALID_SUPERTYPE = Code.error({\n code: 3004,\n formatter: (clause: ts.HeritageClause, badDeclaration: ts.Declaration) => {\n return `Illegal ${clauseType(clause.token)} clause for an exported API: ${ts.SyntaxKind[badDeclaration.kind]}`;\n\n function clauseType(token: ts.SyntaxKind): string {\n switch (token) {\n case ts.SyntaxKind.ExtendsKeyword:\n return 'extends';\n case ts.SyntaxKind.ImplementsKeyword:\n return 'implements';\n default:\n return ts.SyntaxKind[token];\n }\n }\n },\n name: 'type-model/invalid-supertype',\n });\n\n public static readonly JSII_3005_TYPE_USED_AS_INTERFACE = Code.error({\n code: 3005,\n formatter: (badType: spec.TypeReference) =>\n `Type \"${spec.describeTypeReference(badType)}\" cannot be used as an interface`,\n name: 'type-model/type-used-as-interface',\n });\n\n public static readonly JSII_3006_TYPE_USED_AS_CLASS = Code.error({\n code: 3006,\n formatter: (badType: spec.TypeReference) =>\n `Type \"${spec.describeTypeReference(badType)}\" cannot be used as a class`,\n name: 'type-model/type-used-as-class',\n });\n\n public static readonly JSII_3007_ILLEGAL_STRUCT_EXTENSION = Code.error({\n code: 3007,\n formatter: (offender: spec.Type, struct: spec.InterfaceType) =>\n `Attempt to extend or implement struct \"${struct.fqn}\" from \"${offender.fqn}\"`,\n name: 'type-model/illegal-struct-extension',\n });\n\n public static readonly JSII_3008_STRUCT_PROPS_MUST_BE_READONLY = Code.error({\n code: 3008,\n formatter: (propName: string, struct: spec.InterfaceType) =>\n `The \"${propName}\" property of struct \"${struct.fqn}\" must be \"readonly\". Rename \"${struct.fqn}\" to \"I${struct.name}\" if it is meant to be a behavioral interface.`,\n name: 'type-model/struct-props-must-be-readonly',\n });\n\n public static readonly JSII_3009_OPTIONAL_PARAMETER_BEFORE_REQUIRED = Code.error({\n code: 3009,\n formatter: (param: spec.Parameter, nextParam: spec.Parameter) =>\n `Parameter \"${param.name}\" cannot be optional, as it precedes required parameter \"${nextParam.name}\"`,\n name: 'type-model/optional-parameter-before-required',\n });\n\n public static readonly JSII_3999_INCOHERENT_TYPE_MODEL = Code.error({\n code: 3999,\n formatter: (messageText) => messageText,\n name: 'type-model/incoherent-type-model',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 4000 => 4999 -- TYPESCRIPT & JSII CONFIG ERRORS\n\n public static readonly JSII_4000_FAILED_TSCONFIG_VALIDATION = Code.error({\n code: 4000,\n formatter: (config: string, ruleSet: string, violations: Array<Violation>) => {\n return `Typescript compiler options in \"${config}\" are not passing validation against rule set \"${ruleSet}\", found the following rule violations:\\n${violations\n .map((v) => ` - ${v.field}: ${v.message}`)\n .join('\\n')}`;\n },\n name: 'typescript-config/invalid-tsconfig',\n });\n\n public static readonly JSII_4009_DISABLED_TSCONFIG_VALIDATION = Code.warning({\n code: 4009,\n formatter: (config: string) =>\n `Validation of typescript config \"${config}\" is disabled. This is intended for experimental setups only. Compilation might fail or produce incompatible artifacts.`,\n name: 'typescript-config/disabled-tsconfig-validation',\n });\n\n public static readonly JSII_4010_SUBMODULE_NAMESPACE_CONFLICT = Code.warning({\n code: 4010,\n formatter: (language: string, namespace: string, modules: string[]) =>\n `Multiple modules emit to the same ${language} namespace \"${namespace}\": ${modules.join(', ')}`,\n name: 'jsii-config/submodule-conflict',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 5000 => 5999 -- LANGUAGE COMPATIBILITY ERRORS\n\n public static readonly JSII_5000_JAVA_GETTERS = Code.error({\n code: 5000,\n formatter: (badName: string, typeName: string) =>\n `Methods and properties cannot have names like \"getXxx\": those conflict with Java property getters. Rename \"${typeName}.${badName}\"`,\n name: 'language-compatibility/potential-java-getter-conflict',\n });\n\n public static readonly JSII_5001_JAVA_SETTERS = Code.error({\n code: 5001,\n formatter: (badName: string, typeName: string) =>\n `Methods and properties cannot have names like \"setXxx\": those conflict with Java property setters. Rename \"${typeName}.${badName}\"`,\n name: 'language-compatibility/potential-java-setter-conflict',\n });\n\n public static readonly JSII_5002_OVERRIDE_CHANGES_VISIBILITY = Code.error({\n code: 5002,\n formatter: (\n newElement: string,\n action: string,\n newValue: 'protected' | 'public',\n oldValue: 'protected' | 'public',\n ) => `\"${newElement}\" changes visibility to ${newValue} when ${action}. Change it to ${oldValue}`,\n name: 'language-compatibility/override-changes-visibility',\n });\n\n public static readonly JSII_5003_OVERRIDE_CHANGES_RETURN_TYPE = Code.error({\n code: 5003,\n formatter: (newElement: string, action: string, newValue: string, oldValue: string) =>\n `\"${newElement}\" changes the return type to \"${newValue}\" when ${action}. Change it to \"${oldValue}\"`,\n name: 'language-compatibility/override-changes-return-type',\n });\n\n public static readonly JSII_5004_OVERRIDE_CHANGES_PROP_TYPE = Code.error({\n code: 5004,\n formatter: (newElement: string, action: string, newType: spec.TypeReference, oldType: spec.TypeReference) =>\n `\"${newElement}\" changes the property type to \"${spec.describeTypeReference(\n newType,\n )}\" when ${action}. Change it to \"${spec.describeTypeReference(oldType)}\"`,\n name: 'language-compatibility/override-changes-property-type',\n });\n\n public static readonly JSII_5005_OVERRIDE_CHANGES_PARAM_COUNT = Code.error({\n code: 5005,\n formatter: (newElement: string, action: string, newCount: number, oldCount: number) =>\n `\"${newElement}\" has ${newCount} parameters when ${action}. It should accept ${oldCount} parameters`,\n name: 'language-compatibility/override-changes-param-count',\n });\n\n public static readonly JSII_5006_OVERRIDE_CHANGES_PARAM_TYPE = Code.error({\n code: 5006,\n formatter: (newElement: string, action: string, newParam: spec.Parameter, oldParam: spec.Parameter) =>\n `\"${newElement}\" changes the type of parameter \"${newParam.name}\" to ${spec.describeTypeReference(\n newParam.type,\n )} when ${action}. Change it to ${spec.describeTypeReference(oldParam.type)}`,\n name: 'language-compatibility/override-changes-param-type',\n });\n\n public static readonly JSII_5007_OVERRIDE_CHANGES_VARIADIC = Code.error({\n code: 5007,\n formatter: (newElement: string, action: string, newVariadic = false, oldVariadic = false) =>\n `\"${newElement}\" turns ${newVariadic ? 'variadic' : 'non variadic'} when ${action}. Make it ${\n oldVariadic ? 'variadic' : 'non-variadic'\n }`,\n name: 'language-compatibility/override-changes-variadic',\n });\n\n public static readonly JSII_5008_OVERRIDE_CHANGES_PARAM_OPTIONAL = Code.error({\n code: 5008,\n formatter: (newElement: string, action: string, newParam: spec.Parameter, oldParam: spec.Parameter) =>\n `\"${newElement}\" turns parameter \"${newParam.name}\" ${\n newParam.optional ? 'optional' : 'required'\n } when ${action}. Make it ${oldParam.optional ? 'optional' : 'required'}`,\n name: 'language-compatibility/override-changes-param-optional',\n });\n\n public static readonly JSII_5009_OVERRIDE_CHANGES_PROP_OPTIONAL = Code.error({\n code: 5009,\n formatter: (newElement: string, action: string, newOptional = false, oldOptional = false) =>\n `\"${newElement}\" turns ${newOptional ? 'optional' : 'required'} when ${action}. Make it ${\n oldOptional ? 'optional' : 'required'\n }`,\n name: 'language-compatibility/override-changes-prop-optional',\n });\n\n public static readonly JSII_5010_OVERRIDE_CHANGES_MUTABILITY = Code.error({\n code: 5010,\n formatter: (newElement: string, action: string, newReadonly = false, oldReadonly = false) =>\n `\"${newElement}\" turns ${newReadonly ? 'readonly' : 'mutable'} when ${action}. Make it ${\n oldReadonly ? 'readonly' : 'mutable'\n }`,\n name: 'language-compatibility/override-changes-mutability',\n });\n\n public static readonly JSII_5011_SUBMODULE_NAME_CONFLICT = Code.error({\n code: 5011,\n formatter: (submoduleName: string, typeName: string, reserved: readonly string[]) =>\n `Submodule \"${submoduleName}\" conflicts with \"${typeName}, as different languages could represent it as: ${reserved\n .map((x) => `\"${x}\"`)\n .join(', ')}\"`,\n name: 'language-compatibility/submodule-name-conflicts',\n });\n\n public static readonly JSII_5012_NAMESPACE_IN_TYPE = Code.error({\n code: 5012,\n formatter: (typeName: string, namespaceName: string) =>\n `All entities nested under a type (e.g: \"${typeName}\") must be concrete types, but \"${namespaceName}\" is a namespace. This structure cannot be supported in all languages (e.g: Java)`,\n name: 'language-compatibility/namespace-in-type',\n });\n\n public static readonly JSII_5013_STATIC_INSTANCE_CONFLICT = Code.error({\n code: 5013,\n formatter: (member: string, type: spec.ClassType) =>\n `Member \"${member}\" of class \"${type.fqn}\" has both a static and an instance delcaration`,\n name: 'language-compatibility/static-instance-conflict',\n });\n\n public static readonly JSII_5014_INHERITED_STATIC_CONFLICT = Code.error({\n code: 5014,\n formatter: (\n member: spec.Method | spec.Property,\n type: spec.ClassType,\n baseMember: spec.Method | spec.Property,\n baseType: spec.ClassType,\n ) =>\n `${member.static ? 'Static' : 'Instance'} member \"${member.name}\" of class \"${type.fqn}\" conflicts with ${\n baseMember.static ? 'static' : 'instance'\n } member in ancestor \"${baseType.fqn}\"`,\n name: 'language-compatibility/inherited-static-conflict',\n });\n\n public static readonly JSII_5015_REDECLARED_INTERFACE_MEMBER = Code.error({\n code: 5015,\n formatter: (memberName: string, iface: spec.InterfaceType) =>\n `Interface \"${iface.fqn}\" re-declares member \"${memberName}\". This is not supported as it results in invalid C#.`,\n name: 'language-compatibility/redeclared-interface-member',\n });\n\n public static readonly JSII_5016_PROHIBITED_MEMBER_NAME = Code.error({\n code: 5016,\n formatter: (badName: string) =>\n `Members cannot be named \"${badName}\" as it conflicts with synthetic declarations in some languages.`,\n name: 'language-compatibility/prohibited-member-name',\n });\n\n public static readonly JSII_5017_POSITIONAL_KEYWORD_CONFLICT = Code.error({\n code: 5017,\n formatter: (badName: string) =>\n `Parameter name \"${badName}\" is also the name of a property in a struct parameter. Rename the positional parameter.`,\n name: 'language-compatibility/positional-keyword-conflict',\n });\n\n public static readonly JSII_5018_RESERVED_WORD = Code.warning({\n code: 5018,\n formatter: (badName: string, languages: readonly string[]) =>\n `\"${badName}\" is a reserved word in ${languages.join(\n ', ',\n )}. Using this name may cause problems when generating language bindings. Consider a different name.`,\n name: 'language-compatibility/reserved-word',\n });\n\n public static readonly JSII_5019_MEMBER_TYPE_NAME_CONFLICT = Code.warning({\n code: 5019,\n formatter: (memberKind: 'method' | 'property', memberSymbol: ts.Symbol, declaringType: spec.Type) =>\n `The ${memberKind} name \"${memberSymbol.name}\" conflicts with the declaring ${declaringType.kind} \"${declaringType.name}\". This will result in renaming the ${declaringType.kind} to \"_${declaringType.name}\" in C#. Consider renaming \"${memberSymbol.name}\".`,\n name: 'language-compatibility/member-name-conflicts-with-type-name',\n });\n\n public static readonly JSII_5020_STATIC_MEMBER_CONFLICTS_WITH_NESTED_TYPE = Code.error({\n code: 5020,\n formatter: (\n nestingType: spec.Type,\n staticMember: spec.Property | spec.Method | spec.EnumMember,\n nestedType: spec.Type,\n ) =>\n `The static member \"${nestingType.name}.${staticMember.name}\" has the same PascalCased representation as nested type \"${nestingType.name}.${nestedType.name}\". This would result in invalid code in Go.`,\n name: 'language-compatibility/static-member-name-conflicts-with-nested-type',\n });\n\n public static readonly JSII_5021_ABSTRACT_CLASS_MISSING_PROP_IMPL = Code.error({\n code: 5021,\n formatter: (intf: spec.InterfaceType, cls: spec.ClassType, prop: string) =>\n `A declaration of \"${intf.name}.${prop}\" is missing on class \"${cls.name}\". Declare the property as \"public abstract\" if you want to defer it to subclasses.`,\n name: 'language-compatibility/abstract-class-missing-prop-impl',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 6000 => 6999 -- RESERVED\n\n //////////////////////////////////////////////////////////////////////////////\n // 7000 => 7999 -- DOCUMENTATION ERRORS\n\n public static readonly JSII_7000_NON_EXISTENT_PARAMETER = Code.warning({\n code: 7000,\n formatter: (method: spec.Method, param: string) =>\n `Documentation for method \"${method.name}\" refers to non-existent @param \"${param}\"`,\n name: 'documentation/non-existent-parameter',\n });\n\n public static readonly JSII_7001_ILLEGAL_HINT = Code.error({\n code: 7001,\n formatter: (hint: keyof TypeSystemHints, ...valid: readonly string[]) =>\n `Illegal use of \"@${hint}\" hint. It is only valid on ${valid.join(', ')}.`,\n name: 'documentation/illegal-hint',\n });\n\n public static readonly JSII_7999_DOCUMENTATION_ERROR = Code.error({\n code: 7999,\n formatter: (messageText) => messageText,\n name: 'documentation/documentation-error',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 8000 => 8999 -- JSII STYLE ENFORCEMENT\n\n public static readonly JSII_8000_PASCAL_CASED_TYPE_NAMES = Code.error({\n code: 8000,\n formatter: (badName: string, expectedName: string = pascal(badName)) =>\n `Type names must be PascalCased. Rename \"${badName}\" to \"${expectedName}\"`,\n name: 'code-style/type-names-must-use-pascal-case',\n });\n\n public static readonly JSII_8001_ALL_CAPS_ENUM_MEMBERS = Code.error({\n code: 8001,\n formatter: (badName: string, typeName: string) =>\n `Enum members must be ALL_CAPS. Rename \"${typeName}.${badName}\" to \"${constant(badName)}\"`,\n name: 'code-style/enum-members-must-use-all-caps',\n });\n\n public static readonly JSII_8002_CAMEL_CASED_MEMBERS = Code.error({\n code: 8002,\n formatter: (badName: string, typeName: string) =>\n `Method and property (unless they are static readonly) names must use camelCase. Rename \"${typeName}.${badName}\" to \"${camel(\n badName,\n )}\"`,\n name: 'code-style/member-names-must-use-camel-case',\n });\n\n public static readonly JSII_8003_STATIC_CONST_CASING = Code.error({\n code: 8003,\n formatter: (badName: string, typeName: string) =>\n `Static constant names must use ALL_CAPS, PascalCase, or camelCase. Rename \"${typeName}.${badName}\" to \"${constant(\n badName,\n )}\"`,\n name: 'code-style/static-readonly-property-casing',\n });\n\n public static readonly JSII_8004_SUBMOULE_NAME_CASING = Code.error({\n code: 8004,\n formatter: (badName: string) =>\n `Submodule namespaces must be camelCased or snake_cased. Rename \"${badName}\" to ${camel(badName)}`,\n name: 'code-style/submodule-name-casing',\n });\n\n public static readonly JSII_8005_INTERNAL_UNDERSCORE = Code.error({\n code: 8005,\n formatter: (badName: string) =>\n `Members marked with @internal must have a name starting with \"_\". Rename \"${badName}\" to \"_${badName}\"`,\n name: 'code-style/internal-members-underscore-prefix',\n });\n\n public static readonly JSII_8006_UNDERSCORE_INTERNAL = Code.error({\n code: 8006,\n formatter: (badName: string) =>\n `Members with a name starting with \"_\" (e.g: \"${badName}\") must be marked @internal`,\n name: 'code-style/underscored-members-must-be-internal',\n });\n\n public static readonly JSII_8007_BEHAVIORAL_INTERFACE_NAME = Code.error({\n code: 8007,\n formatter: (badName: string) => `Interface contains behavior. Rename \"${badName}\" to \"I${badName}\"`,\n name: 'code-style/behavioral-interface-name',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n // 9000 => 9999 -- SURPRISING ERRORS & INFORMATIONAL MESSAGES\n\n public static readonly JSII_9000_UNKNOWN_MODULE = Code.error({\n code: 9000,\n formatter: (moduleName) =>\n `Encountered use of module that is not declared in \"dependencies\" or \"peerDependencies\": \"${moduleName}\"`,\n name: 'miscellaneous/unknown-module',\n });\n\n public static readonly JSII_9001_TYPE_NOT_FOUND = Code.error({\n code: 9001,\n formatter: (typeRef: spec.NamedTypeReference) => `Type not found in the corresponding assembly: \"${typeRef.fqn}\"`,\n name: 'miscellaneous/type-not-found',\n });\n\n public static readonly JSII_9002_UNRESOLVEABLE_TYPE = Code.error({\n code: 9002,\n formatter: (reference: string) =>\n `Type \"${reference}\" is part of the public API but not exported (@internal or not exported from the package.json \"main\" file). Either export it or add @internal explicitly if you want this to be a hidden base class.`,\n name: 'miscellaneous/unresolveable-type',\n });\n\n public static readonly JSII_9003_UNRESOLVEABLE_MODULE = Code.error({\n code: 9003,\n formatter: (location: string) => `Unable to resolve module location \"${location}\"`,\n name: 'miscellaneous/unresolveable-module',\n });\n\n public static readonly JSII_9004_UNABLE_TO_COMPUTE_SIGNATURE = Code.error({\n code: 9004,\n formatter: (methodName: string, type: spec.Type) =>\n `Unable to compute signature for method \"${methodName}\" of \"${type.fqn}\"`,\n name: 'miscellaneous/unable-to-compute-signature',\n });\n\n public static readonly JSII_9996_UNNECESSARY_TOKEN = Code.message({\n code: 9996,\n formatter: () => 'Unnecessary token, consider removing it',\n name: 'miscellaneous/unnecessary-token',\n });\n\n public static readonly JSII_9997_UNKNOWN_ERROR = Code.error({\n code: 9997,\n formatter: (error: Error) => `Unknown error: ${error.message} -- ${error.stack}`,\n name: 'miscellaneous/unknown-error',\n });\n\n public static readonly JSII_9998_UNSUPPORTED_NODE = Code.message({\n code: 9998,\n formatter: (kindOrMessage: ts.SyntaxKind | string) =>\n typeof kindOrMessage === 'string'\n ? kindOrMessage\n : `Unsupported ${ts.SyntaxKind[kindOrMessage]} node. This declaration will not be accessible from other languages.`,\n name: 'miscellaneous/unsupported-node',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n\n /**\n * Determines whether a `Diagnostic` instance is a `JsiiDiagnostic` or not.\n * @param diag\n */\n public static isJsiiDiagnostic(diag: ts.Diagnostic): diag is JsiiDiagnostic {\n return (diag as unknown as JsiiDiagnostic).domain === JsiiDiagnostic.DOMAIN;\n }\n\n //////////////////////////////////////////////////////////////////////////////\n\n private static readonly JSII_9999_RELATED_INFO = Code.suggestion({\n code: 9999,\n formatter: (messageText) => messageText,\n name: 'miscellaneous/related-info',\n });\n\n //////////////////////////////////////////////////////////////////////////////\n\n /**\n * This symbol unequivocally identifies the `JsiiDiagnostic` domain.\n */\n private static readonly DOMAIN = Symbol('jsii');\n\n private readonly domain = JsiiDiagnostic.DOMAIN;\n\n public readonly category: ts.DiagnosticCategory;\n public readonly code: number = JSII_DIAGNOSTICS_CODE;\n public readonly jsiiCode: number;\n public readonly messageText: string | ts.DiagnosticMessageChain;\n\n public readonly file: ts.SourceFile | undefined;\n public readonly start: number | undefined;\n public readonly length: number | undefined;\n\n public readonly relatedInformation = new Array<ts.DiagnosticRelatedInformation>();\n\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n #formatted?: string;\n\n /**\n * Creates a new `JsiiDiagnostic` with the provided properties.\n *\n * @internal\n */\n public constructor(code: Code, messageText: string | ts.DiagnosticMessageChain, location?: ts.Node) {\n this.category = code.category;\n this.jsiiCode = code.code;\n this.messageText = messageText;\n\n if (location != null) {\n this.file = location.getSourceFile();\n this.start = location.getStart(this.file);\n this.length = location.getEnd() - this.start;\n }\n }\n\n public addRelatedInformation(node: ts.Node, message: JsiiDiagnostic['messageText']): this {\n // Don't relate info into the TypeScript standard library\n if (!/[\\\\/]typescript[\\\\/]lib[\\\\/]lib\\..+\\.d\\.ts$/.test(node.getSourceFile().fileName)) {\n this.relatedInformation.push(JsiiDiagnostic.JSII_9999_RELATED_INFO.create(node, message));\n }\n // Clearing out #formatted, as this would no longer be the correct string.\n this.#formatted = undefined;\n return this;\n }\n\n /**\n * Links the provided `node` with the specified `message` as related to the\n * current diagnostic, unless `node` is undefined.\n *\n * @param node the node where the message should be attached, if any.\n * @param message the message to be attached to the diagnostic entry.\n *\n * @returns `this`\n */\n public addRelatedInformationIf(node: ts.Node | undefined, message: JsiiDiagnostic['messageText']): this {\n if (node != null) {\n return this.addRelatedInformation(node, message);\n } else {\n return this;\n }\n }\n\n /**\n * Adds related information to this `JsiiDiagnostic` instance if the provided\n * `node` is defined.\n *\n * @param node the node to bind as related information, or `undefined`.\n * @param message the message to attach to the related information.\n *\n * @returns `this`\n */\n public maybeAddRelatedInformation(node: ts.Node | undefined, message: JsiiDiagnostic['messageText']): this {\n if (node == null) {\n return this;\n }\n this.relatedInformation.push(JsiiDiagnostic.JSII_9999_RELATED_INFO.create(node, message));\n // Clearing out #formatted, as this would no longer be the correct string.\n this.#formatted = undefined;\n return this;\n }\n\n /**\n * Formats this diagnostic with color and context if possible, and returns it.\n * The formatted diagnostic is cached, so that it can be re-used. This is\n * useful for diagnostic messages involving trivia -- as the trivia may have\n * been obliterated from the `SourceFile` by the `TsCommentReplacer`, which\n * makes the error messages really confusing.\n */\n public format(projectRoot: string): string {\n if (this.#formatted == null) {\n this.#formatted = _formatDiagnostic(this, projectRoot);\n }\n return this.#formatted;\n }\n}\n\nexport type DiagnosticMessageFormatter = (...args: any[]) => JsiiDiagnostic['messageText'];\n\nexport function configureCategories(records: { [code: string]: ts.DiagnosticCategory }) {\n for (const [code, category] of Object.entries(records)) {\n const diagCode = Code.lookup(diagnosticCode(code));\n if (!diagCode) {\n throw new Error(`Unrecognized diagnostic code '${code}'`);\n }\n diagCode.category = category;\n }\n}\n\nfunction diagnosticCode(str: string): string | number {\n if (str.toLowerCase().startsWith('jsii')) {\n const re = /^JSII(\\d+)$/i.exec(str);\n if (re) {\n return parseInt(re[1], 10);\n }\n throw new Error(`Invalid diagnostic code ${str}. A number must follow code that starts with 'JSII'`);\n }\n return str;\n}\n"]}
|
package/lib/literate.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.fileSystemLoader = fileSystemLoader;
|
|
|
8
8
|
/**
|
|
9
9
|
* A tiny module to include annotated (working!) code snippets into the documentation
|
|
10
10
|
*
|
|
11
|
-
* Not using 'literate-programming' or '
|
|
11
|
+
* Not using 'literate-programming' or 'erasmus' projects because they work
|
|
12
12
|
* the other way around: take code from MarkDown, save it as a file, then
|
|
13
13
|
* execute that.
|
|
14
14
|
*
|
package/lib/literate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literate.js","sourceRoot":"","sources":["../src/literate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * A tiny module to include annotated (working!) code snippets into the documentation\n *\n * Not using 'literate-programming' or '
|
|
1
|
+
{"version":3,"file":"literate.js","sourceRoot":"","sources":["../src/literate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * A tiny module to include annotated (working!) code snippets into the documentation\n *\n * Not using 'literate-programming' or 'erasmus' projects because they work\n * the other way around: take code from MarkDown, save it as a file, then\n * execute that.\n *\n * We do the opposite: start from source code annotated with MarkDown and\n * extract it into (larger) MarkDown files.\n *\n * Including into README\n * ---------------------\n *\n * To include the examples directly into the README, make a link to the\n * annotated TypeScript file on a line by itself, and make sure the\n * extension of the file ends in `.lit.ts`.\n *\n * For example:\n *\n * [example](test/integ.bucket.lit.ts)\n *\n * Annotating source\n * -----------------\n *\n * We use the triple-slash comment for our directives, since it's valid TypeScript\n * and are treated as regular comments if not the very first thing in the file.\n *\n * By default, the whole file is included, unless the source contains the statement\n * \"/// !show\". For example:\n *\n * a\n * /// !show\n * b\n * /// !hide\n * c\n *\n * In this example, only 'b' would be included in the output. A single file may\n * switching including and excluding on and off multiple times in the same file.\n *\n * Other lines starting with triple slashes will be rendered as Markdown in between\n * the source lines. For example:\n *\n * const x = 1;\n * /// Now we're going to print x:\n * console.log(x);\n *\n * Will be rendered as:\n *\n * ```ts\n * const x = 1;\n * ```\n *\n * Now we're going to print x:\n *\n * ```ts\n * console.log(x);\n * ```\n */\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\n\n/**\n * Convert an annotated TypeScript source file to MarkDown\n */\nexport function typescriptSourceToMarkdown(lines: string[], codeBlockAnnotations: string[]): string[] {\n const relevantLines = findRelevantLines(lines);\n const markdownLines = markdownify(relevantLines, codeBlockAnnotations);\n return markdownLines;\n}\n\nexport interface LoadedFile {\n readonly fullPath: string;\n readonly lines: string[];\n}\n\nexport type FileLoader = (relativePath: string) => LoadedFile;\n\n/**\n * Given MarkDown source, find source files to include and render\n *\n * We recognize links on a line by themselves if the link text starts\n * with the string \"example\" (case insensitive). For example:\n *\n * [example](test/integ.bucket.ts)\n */\nexport function includeAndRenderExamples(lines: string[], loader: FileLoader, projectRoot: string): string[] {\n const ret: string[] = [];\n\n const regex = /^\\[([^\\]]*)\\]\\(([^)]+\\.lit\\.ts)\\)/i;\n for (const line of lines) {\n const m = regex.exec(line);\n if (m) {\n // Found an include\n const filename = m[2];\n // eslint-disable-next-line no-await-in-loop\n const { lines: source, fullPath } = loader(filename);\n // 'lit' source attribute will make snippet compiler know to extract the same source\n // Needs to be relative to the project root.\n const imported = typescriptSourceToMarkdown(source, [`lit=${toUnixPath(path.relative(projectRoot, fullPath))}`]);\n ret.push(...imported);\n } else {\n ret.push(line);\n }\n }\n\n return ret;\n}\n\n/**\n * Load a file into a string array\n */\nexport function loadFromFile(fileName: string): string[] {\n const content = fs.readFileSync(fileName, { encoding: 'utf-8' });\n return contentToLines(content);\n}\n\n/**\n * Turn file content string into an array of lines ready for processing using the other functions\n */\nexport function contentToLines(content: string): string[] {\n return content.split('\\n').map((x) => x.trimRight());\n}\n\n/**\n * Return a file system loader given a base directory\n */\nexport function fileSystemLoader(directory: string): FileLoader {\n return (fileName) => {\n const fullPath = path.resolve(directory, fileName);\n return { fullPath, lines: loadFromFile(fullPath) };\n };\n}\n\nconst RELEVANT_TAG = '/// !show';\nconst DETAIL_TAG = '/// !hide';\nconst INLINE_MD_REGEX = /^\\s*\\/\\/\\/ (.*)$/;\n\n/**\n * Find the relevant lines of the input source\n *\n * Respects switching tags, returns everything if no switching found.\n *\n * Strips common indentation from the blocks it finds.\n */\nfunction findRelevantLines(lines: string[]): string[] {\n let inRelevant = false;\n let didFindRelevant = false;\n const ret: string[] = [];\n\n for (const line of lines) {\n if (line.trim() === RELEVANT_TAG) {\n inRelevant = true;\n didFindRelevant = true;\n } else if (line.trim() === DETAIL_TAG) {\n inRelevant = false;\n } else {\n if (inRelevant) {\n ret.push(line);\n }\n }\n }\n\n // Return full lines list if no switching found\n return stripCommonIndent(didFindRelevant ? ret : lines);\n}\n\n/**\n * Remove common leading whitespace from the given lines\n */\nfunction stripCommonIndent(lines: string[]): string[] {\n const leadingWhitespace = /^(\\s*)/;\n const indents = lines.map((l) => leadingWhitespace.exec(l)![1].length);\n const commonIndent = Math.min(...indents);\n return lines.map((l) => l.slice(commonIndent));\n}\n\n/**\n * Turn source lines into Markdown, starting in TypeScript mode\n */\nfunction markdownify(lines: string[], codeBlockAnnotations: string[]): string[] {\n const typescriptLines: string[] = [];\n const ret: string[] = [];\n\n for (const line of lines) {\n const m = INLINE_MD_REGEX.exec(line);\n if (m) {\n // Literal MarkDown line\n flushTS();\n ret.push(m[1]);\n } else {\n typescriptLines.push(line);\n }\n }\n\n flushTS();\n\n return ret;\n\n /**\n * Flush typescript lines with a triple-backtick-ts block around it.\n */\n function flushTS() {\n if (typescriptLines.length !== 0) {\n // eslint-disable-next-line prefer-template\n ret.push(\n `\\`\\`\\`ts${codeBlockAnnotations.length > 0 ? ` ${codeBlockAnnotations.join(' ')}` : ''}`,\n ...typescriptLines,\n '```',\n );\n typescriptLines.splice(0); // Clear\n }\n }\n}\n\nfunction toUnixPath(x: string) {\n return x.replace(/\\\\/g, '/');\n}\n"]}
|
package/lib/main.js
CHANGED
|
@@ -14,7 +14,6 @@ const tsconfig_1 = require("./tsconfig");
|
|
|
14
14
|
const utils = require("./utils");
|
|
15
15
|
const version_1 = require("./version");
|
|
16
16
|
const warnings_1 = require("./warnings");
|
|
17
|
-
const warningTypes = Object.keys(warnings_1.enabledWarnings);
|
|
18
17
|
function choiceWithDesc(choices, desc) {
|
|
19
18
|
return {
|
|
20
19
|
choices: Object.keys(choices),
|
|
@@ -68,9 +67,10 @@ const ruleSets = {
|
|
|
68
67
|
})
|
|
69
68
|
.option('silence-warnings', {
|
|
70
69
|
group: OPTION_GROUP.JSII,
|
|
70
|
+
alias: 'Wno',
|
|
71
71
|
type: 'array',
|
|
72
72
|
default: [],
|
|
73
|
-
desc:
|
|
73
|
+
desc: 'List of warnings to silence. Accepts JSII codes (e.g. JSII5018), numbers (e.g. 5018), or diagnostic names (e.g. reserved-word, language-compatibility)',
|
|
74
74
|
})
|
|
75
75
|
.option('strip-deprecated', {
|
|
76
76
|
group: OPTION_GROUP.JSII,
|
|
@@ -122,10 +122,9 @@ const ruleSets = {
|
|
|
122
122
|
const { projectInfo, diagnostics: projectInfoDiagnostics } = (0, project_info_1.loadProjectInfo)(projectRoot);
|
|
123
123
|
// disable all silenced warnings
|
|
124
124
|
for (const key of argv['silence-warnings']) {
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
for (const code of (0, warnings_1.parseWarningCodes)(String(key))) {
|
|
126
|
+
warnings_1.silencedWarnings.add(code);
|
|
127
127
|
}
|
|
128
|
-
warnings_1.enabledWarnings[key] = false;
|
|
129
128
|
}
|
|
130
129
|
(0, jsii_diagnostic_1.configureCategories)(projectInfo.diagnostics ?? {});
|
|
131
130
|
const typeScriptConfig = argv.tsconfig ?? projectInfo.packageJson.jsii?.tsconfig;
|
|
@@ -144,11 +143,13 @@ const ruleSets = {
|
|
|
144
143
|
validateTypeScriptConfig,
|
|
145
144
|
compressAssembly: argv['compress-assembly'],
|
|
146
145
|
});
|
|
146
|
+
const startTime = Date.now();
|
|
147
147
|
const emitResult = argv.watch ? await compiler.watch() : compiler.emit();
|
|
148
148
|
const allDiagnostics = [...projectInfoDiagnostics, ...emitResult.diagnostics];
|
|
149
149
|
for (const diagnostic of allDiagnostics) {
|
|
150
150
|
utils.logDiagnostic(diagnostic, projectRoot);
|
|
151
151
|
}
|
|
152
|
+
console.log(utils.formatCompilationSummary(allDiagnostics, emitResult.emitSkipped, Date.now() - startTime));
|
|
152
153
|
if (emitResult.emitSkipped) {
|
|
153
154
|
process.exitCode = 1;
|
|
154
155
|
}
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["import '@jsii/check-node/run';\n\nimport * as path from 'node:path';\nimport * as util from 'node:util';\nimport * as log4js from 'log4js';\nimport { version as tsVersion } from 'typescript/package.json';\nimport * as yargs from 'yargs';\n\nimport { Compiler } from './compiler';\nimport { configureCategories } from './jsii-diagnostic';\nimport { loadProjectInfo } from './project-info';\nimport { emitSupportPolicyInformation } from './support';\nimport { TypeScriptConfigValidationRuleSet } from './tsconfig';\nimport * as utils from './utils';\nimport { VERSION } from './version';\nimport { enabledWarnings } from './warnings';\n\nconst warningTypes = Object.keys(enabledWarnings);\n\nfunction choiceWithDesc(\n choices: { [choice: string]: string },\n desc: string,\n): {\n choices: string[];\n desc: string;\n} {\n return {\n choices: Object.keys(choices),\n desc: [desc, ...Object.entries(choices).map(([choice, docs]) => `${choice}: ${docs}`)].join('\\n'),\n };\n}\n\nenum OPTION_GROUP {\n JSII = 'jsii compiler options:',\n TS = 'TypeScript config options:',\n}\n\nconst ruleSets: {\n [choice in TypeScriptConfigValidationRuleSet]: string;\n} = {\n [TypeScriptConfigValidationRuleSet.STRICT]:\n 'Validates the provided config against a strict rule set designed for maximum backwards-compatibility.',\n [TypeScriptConfigValidationRuleSet.GENERATED]:\n 'Enforces a config as created by --generate-tsconfig. Use this to stay compatible with the generated config, but have full ownership over the file.',\n [TypeScriptConfigValidationRuleSet.MINIMAL]:\n 'Only enforce options that are known to be incompatible with jsii. This rule set is likely to be incomplete and new rules will be added without notice as incompatibilities emerge.',\n [TypeScriptConfigValidationRuleSet.NONE]:\n 'Disables all config validation, including options that are known to be incompatible with jsii. Intended for experimentation only. Use at your own risk.',\n};\n\n(async () => {\n await emitSupportPolicyInformation();\n\n await yargs\n .env('JSII')\n .command(\n ['$0 [PROJECT_ROOT]', 'compile [PROJECT_ROOT]'],\n 'Compiles a jsii/TypeScript project',\n (argv) =>\n argv\n .positional('PROJECT_ROOT', {\n type: 'string',\n desc: 'The root of the project to be compiled',\n default: '.',\n normalize: true,\n })\n .option('watch', {\n alias: 'w',\n type: 'boolean',\n desc: 'Watch for file changes and recompile automatically',\n })\n .option('project-references', {\n group: OPTION_GROUP.JSII,\n alias: 'r',\n type: 'boolean',\n desc: 'Generate TypeScript project references (also [package.json].jsii.projectReferences)\\nHas no effect if --tsconfig is provided',\n })\n .option('fix-peer-dependencies', {\n type: 'boolean',\n default: true,\n desc: 'This option no longer has any effect.',\n hidden: true,\n })\n .options('fail-on-warnings', {\n group: OPTION_GROUP.JSII,\n alias: 'Werr',\n type: 'boolean',\n desc: 'Treat warnings as errors',\n })\n .option('silence-warnings', {\n group: OPTION_GROUP.JSII,\n type: 'array',\n default: [],\n desc: `List of warnings to silence (warnings: ${warningTypes.join(',')})`,\n })\n .option('strip-deprecated', {\n group: OPTION_GROUP.JSII,\n type: 'string',\n desc: '[EXPERIMENTAL] Hides all @deprecated members from the API (implementations remain). If an optional file name is given, only FQNs present in the file will be stripped.',\n })\n .option('add-deprecation-warnings', {\n group: OPTION_GROUP.JSII,\n type: 'boolean',\n default: false,\n desc: '[EXPERIMENTAL] Injects warning statements for all deprecated elements, to be printed at runtime',\n })\n .option('generate-tsconfig', {\n group: OPTION_GROUP.TS,\n type: 'string',\n defaultDescription: 'tsconfig.json',\n desc: 'Name of the typescript configuration file to generate with compiler settings',\n })\n .option('tsconfig', {\n group: OPTION_GROUP.TS,\n alias: 'c',\n type: 'string',\n desc: '[EXPERIMENTAL] Use this typescript configuration file to compile the jsii project.',\n })\n .conflicts('tsconfig', ['generate-tsconfig', 'project-references'])\n .option('validate-tsconfig', {\n group: OPTION_GROUP.TS,\n ...choiceWithDesc(\n ruleSets,\n '[EXPERIMENTAL] Validate the provided typescript configuration file against a set of rules.',\n ),\n defaultDescription: TypeScriptConfigValidationRuleSet.STRICT,\n })\n .option('compress-assembly', {\n group: OPTION_GROUP.JSII,\n type: 'boolean',\n default: false,\n desc: 'Emit a compressed version of the assembly',\n })\n .option('verbose', {\n alias: 'v',\n type: 'count',\n desc: 'Increase the verbosity of output',\n global: true,\n }),\n async (argv) => {\n try {\n _configureLog4js(argv.verbose);\n\n if (argv['generate-tsconfig'] != null && argv.tsconfig != null) {\n throw new utils.JsiiError('Options --generate-tsconfig and --tsconfig are mutually exclusive', true);\n }\n\n const projectRoot = path.normalize(path.resolve(process.cwd(), argv.PROJECT_ROOT));\n\n const { projectInfo, diagnostics: projectInfoDiagnostics } = loadProjectInfo(projectRoot);\n\n // disable all silenced warnings\n for (const key of argv['silence-warnings']) {\n if (!(key in enabledWarnings)) {\n throw new utils.JsiiError(\n `Unknown warning type ${key as any}. Must be one of: ${warningTypes.join(', ')}`,\n );\n }\n\n enabledWarnings[key] = false;\n }\n\n configureCategories(projectInfo.diagnostics ?? {});\n\n const typeScriptConfig = argv.tsconfig ?? projectInfo.packageJson.jsii?.tsconfig;\n const validateTypeScriptConfig =\n (argv['validate-tsconfig'] as TypeScriptConfigValidationRuleSet) ??\n projectInfo.packageJson.jsii?.validateTsconfig ??\n TypeScriptConfigValidationRuleSet.STRICT;\n\n const compiler = new Compiler({\n projectInfo,\n projectReferences: argv['project-references'],\n failOnWarnings: argv['fail-on-warnings'],\n stripDeprecated: argv['strip-deprecated'] != null,\n stripDeprecatedAllowListFile: argv['strip-deprecated'],\n addDeprecationWarnings: argv['add-deprecation-warnings'],\n generateTypeScriptConfig: argv['generate-tsconfig'],\n typeScriptConfig,\n validateTypeScriptConfig,\n compressAssembly: argv['compress-assembly'],\n });\n\n const emitResult = argv.watch ? await compiler.watch() : compiler.emit();\n\n const allDiagnostics = [...projectInfoDiagnostics, ...emitResult.diagnostics];\n\n for (const diagnostic of allDiagnostics) {\n utils.logDiagnostic(diagnostic, projectRoot);\n }\n if (emitResult.emitSkipped) {\n process.exitCode = 1;\n }\n } catch (e: unknown) {\n if (e instanceof utils.JsiiError) {\n if (e.showHelp) {\n console.log();\n yargs.showHelp();\n console.log();\n }\n\n const LOG = log4js.getLogger(utils.CLI_LOGGER);\n LOG.error(e.message);\n\n process.exitCode = -1;\n } else {\n throw e;\n }\n }\n },\n )\n .help()\n .version(`${VERSION}, typescript ${tsVersion}`)\n .parse();\n})().catch((e) => {\n console.error(`Error: ${e.stack}`);\n process.exitCode = -1;\n});\n\nfunction _configureLog4js(verbosity: number) {\n const stderrColor = !!process.stderr.isTTY;\n const stdoutColor = !!process.stdout.isTTY;\n\n log4js.addLayout('passThroughNoColor', () => {\n return (loggingEvent) => utils.stripAnsi(util.format(...loggingEvent.data));\n });\n\n log4js.configure({\n appenders: {\n console: {\n type: 'stderr',\n layout: { type: stderrColor ? 'colored' : 'basic' },\n },\n\n [utils.DIAGNOSTICS]: {\n type: 'stdout',\n layout: {\n type: stdoutColor ? 'messagePassThrough' : ('passThroughNoColor' as any),\n },\n },\n [utils.CLI_LOGGER]: {\n type: 'stderr',\n layout: {\n type: 'pattern',\n pattern: stdoutColor ? '%[[%p]%] %m' : '[%p] %m',\n },\n },\n },\n categories: {\n default: { appenders: ['console'], level: _logLevel() },\n [utils.CLI_LOGGER]: {\n appenders: [utils.CLI_LOGGER],\n level: _logLevel(),\n },\n // The diagnostics logger must be set to INFO or more verbose, or watch won't show important messages\n [utils.DIAGNOSTICS]: {\n appenders: [utils.DIAGNOSTICS],\n level: _logLevel(Math.max(verbosity, 1)),\n },\n },\n });\n\n function _logLevel(verbosityLevel = verbosity): keyof log4js.Levels {\n switch (verbosityLevel) {\n case 0:\n return 'WARN';\n case 1:\n return 'INFO';\n case 2:\n return 'DEBUG';\n case 3:\n return 'TRACE';\n default:\n return 'ALL';\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["import '@jsii/check-node/run';\n\nimport * as path from 'node:path';\nimport * as util from 'node:util';\nimport * as log4js from 'log4js';\nimport { version as tsVersion } from 'typescript/package.json';\nimport * as yargs from 'yargs';\n\nimport { Compiler } from './compiler';\nimport { configureCategories } from './jsii-diagnostic';\nimport { loadProjectInfo } from './project-info';\nimport { emitSupportPolicyInformation } from './support';\nimport { TypeScriptConfigValidationRuleSet } from './tsconfig';\nimport * as utils from './utils';\nimport { VERSION } from './version';\nimport { parseWarningCodes, silencedWarnings } from './warnings';\n\nfunction choiceWithDesc(\n choices: { [choice: string]: string },\n desc: string,\n): {\n choices: string[];\n desc: string;\n} {\n return {\n choices: Object.keys(choices),\n desc: [desc, ...Object.entries(choices).map(([choice, docs]) => `${choice}: ${docs}`)].join('\\n'),\n };\n}\n\nenum OPTION_GROUP {\n JSII = 'jsii compiler options:',\n TS = 'TypeScript config options:',\n}\n\nconst ruleSets: {\n [choice in TypeScriptConfigValidationRuleSet]: string;\n} = {\n [TypeScriptConfigValidationRuleSet.STRICT]:\n 'Validates the provided config against a strict rule set designed for maximum backwards-compatibility.',\n [TypeScriptConfigValidationRuleSet.GENERATED]:\n 'Enforces a config as created by --generate-tsconfig. Use this to stay compatible with the generated config, but have full ownership over the file.',\n [TypeScriptConfigValidationRuleSet.MINIMAL]:\n 'Only enforce options that are known to be incompatible with jsii. This rule set is likely to be incomplete and new rules will be added without notice as incompatibilities emerge.',\n [TypeScriptConfigValidationRuleSet.NONE]:\n 'Disables all config validation, including options that are known to be incompatible with jsii. Intended for experimentation only. Use at your own risk.',\n};\n\n(async () => {\n await emitSupportPolicyInformation();\n\n await yargs\n .env('JSII')\n .command(\n ['$0 [PROJECT_ROOT]', 'compile [PROJECT_ROOT]'],\n 'Compiles a jsii/TypeScript project',\n (argv) =>\n argv\n .positional('PROJECT_ROOT', {\n type: 'string',\n desc: 'The root of the project to be compiled',\n default: '.',\n normalize: true,\n })\n .option('watch', {\n alias: 'w',\n type: 'boolean',\n desc: 'Watch for file changes and recompile automatically',\n })\n .option('project-references', {\n group: OPTION_GROUP.JSII,\n alias: 'r',\n type: 'boolean',\n desc: 'Generate TypeScript project references (also [package.json].jsii.projectReferences)\\nHas no effect if --tsconfig is provided',\n })\n .option('fix-peer-dependencies', {\n type: 'boolean',\n default: true,\n desc: 'This option no longer has any effect.',\n hidden: true,\n })\n .options('fail-on-warnings', {\n group: OPTION_GROUP.JSII,\n alias: 'Werr',\n type: 'boolean',\n desc: 'Treat warnings as errors',\n })\n .option('silence-warnings', {\n group: OPTION_GROUP.JSII,\n alias: 'Wno',\n type: 'array',\n default: [],\n desc: 'List of warnings to silence. Accepts JSII codes (e.g. JSII5018), numbers (e.g. 5018), or diagnostic names (e.g. reserved-word, language-compatibility)',\n })\n .option('strip-deprecated', {\n group: OPTION_GROUP.JSII,\n type: 'string',\n desc: '[EXPERIMENTAL] Hides all @deprecated members from the API (implementations remain). If an optional file name is given, only FQNs present in the file will be stripped.',\n })\n .option('add-deprecation-warnings', {\n group: OPTION_GROUP.JSII,\n type: 'boolean',\n default: false,\n desc: '[EXPERIMENTAL] Injects warning statements for all deprecated elements, to be printed at runtime',\n })\n .option('generate-tsconfig', {\n group: OPTION_GROUP.TS,\n type: 'string',\n defaultDescription: 'tsconfig.json',\n desc: 'Name of the typescript configuration file to generate with compiler settings',\n })\n .option('tsconfig', {\n group: OPTION_GROUP.TS,\n alias: 'c',\n type: 'string',\n desc: '[EXPERIMENTAL] Use this typescript configuration file to compile the jsii project.',\n })\n .conflicts('tsconfig', ['generate-tsconfig', 'project-references'])\n .option('validate-tsconfig', {\n group: OPTION_GROUP.TS,\n ...choiceWithDesc(\n ruleSets,\n '[EXPERIMENTAL] Validate the provided typescript configuration file against a set of rules.',\n ),\n defaultDescription: TypeScriptConfigValidationRuleSet.STRICT,\n })\n .option('compress-assembly', {\n group: OPTION_GROUP.JSII,\n type: 'boolean',\n default: false,\n desc: 'Emit a compressed version of the assembly',\n })\n .option('verbose', {\n alias: 'v',\n type: 'count',\n desc: 'Increase the verbosity of output',\n global: true,\n }),\n async (argv) => {\n try {\n _configureLog4js(argv.verbose);\n\n if (argv['generate-tsconfig'] != null && argv.tsconfig != null) {\n throw new utils.JsiiError('Options --generate-tsconfig and --tsconfig are mutually exclusive', true);\n }\n\n const projectRoot = path.normalize(path.resolve(process.cwd(), argv.PROJECT_ROOT));\n\n const { projectInfo, diagnostics: projectInfoDiagnostics } = loadProjectInfo(projectRoot);\n\n // disable all silenced warnings\n for (const key of argv['silence-warnings']) {\n for (const code of parseWarningCodes(String(key))) {\n silencedWarnings.add(code);\n }\n }\n\n configureCategories(projectInfo.diagnostics ?? {});\n\n const typeScriptConfig = argv.tsconfig ?? projectInfo.packageJson.jsii?.tsconfig;\n const validateTypeScriptConfig =\n (argv['validate-tsconfig'] as TypeScriptConfigValidationRuleSet) ??\n projectInfo.packageJson.jsii?.validateTsconfig ??\n TypeScriptConfigValidationRuleSet.STRICT;\n\n const compiler = new Compiler({\n projectInfo,\n projectReferences: argv['project-references'],\n failOnWarnings: argv['fail-on-warnings'],\n stripDeprecated: argv['strip-deprecated'] != null,\n stripDeprecatedAllowListFile: argv['strip-deprecated'],\n addDeprecationWarnings: argv['add-deprecation-warnings'],\n generateTypeScriptConfig: argv['generate-tsconfig'],\n typeScriptConfig,\n validateTypeScriptConfig,\n compressAssembly: argv['compress-assembly'],\n });\n\n const startTime = Date.now();\n const emitResult = argv.watch ? await compiler.watch() : compiler.emit();\n\n const allDiagnostics = [...projectInfoDiagnostics, ...emitResult.diagnostics];\n\n for (const diagnostic of allDiagnostics) {\n utils.logDiagnostic(diagnostic, projectRoot);\n }\n\n console.log(utils.formatCompilationSummary(allDiagnostics, emitResult.emitSkipped, Date.now() - startTime));\n\n if (emitResult.emitSkipped) {\n process.exitCode = 1;\n }\n } catch (e: unknown) {\n if (e instanceof utils.JsiiError) {\n if (e.showHelp) {\n console.log();\n yargs.showHelp();\n console.log();\n }\n\n const LOG = log4js.getLogger(utils.CLI_LOGGER);\n LOG.error(e.message);\n\n process.exitCode = -1;\n } else {\n throw e;\n }\n }\n },\n )\n .help()\n .version(`${VERSION}, typescript ${tsVersion}`)\n .parse();\n})().catch((e) => {\n console.error(`Error: ${e.stack}`);\n process.exitCode = -1;\n});\n\nfunction _configureLog4js(verbosity: number) {\n const stderrColor = !!process.stderr.isTTY;\n const stdoutColor = !!process.stdout.isTTY;\n\n log4js.addLayout('passThroughNoColor', () => {\n return (loggingEvent) => utils.stripAnsi(util.format(...loggingEvent.data));\n });\n\n log4js.configure({\n appenders: {\n console: {\n type: 'stderr',\n layout: { type: stderrColor ? 'colored' : 'basic' },\n },\n\n [utils.DIAGNOSTICS]: {\n type: 'stdout',\n layout: {\n type: stdoutColor ? 'messagePassThrough' : ('passThroughNoColor' as any),\n },\n },\n [utils.CLI_LOGGER]: {\n type: 'stderr',\n layout: {\n type: 'pattern',\n pattern: stdoutColor ? '%[[%p]%] %m' : '[%p] %m',\n },\n },\n },\n categories: {\n default: { appenders: ['console'], level: _logLevel() },\n [utils.CLI_LOGGER]: {\n appenders: [utils.CLI_LOGGER],\n level: _logLevel(),\n },\n // The diagnostics logger must be set to INFO or more verbose, or watch won't show important messages\n [utils.DIAGNOSTICS]: {\n appenders: [utils.DIAGNOSTICS],\n level: _logLevel(Math.max(verbosity, 1)),\n },\n },\n });\n\n function _logLevel(verbosityLevel = verbosity): keyof log4js.Levels {\n switch (verbosityLevel) {\n case 0:\n return 'WARN';\n case 1:\n return 'INFO';\n case 2:\n return 'DEBUG';\n case 3:\n return 'TRACE';\n default:\n return 'ALL';\n }\n }\n}\n"]}
|
package/lib/utils.d.ts
CHANGED
|
@@ -42,6 +42,10 @@ export declare function formatDiagnostic(diagnostic: ts.Diagnostic, projectRoot:
|
|
|
42
42
|
*/
|
|
43
43
|
export declare function _formatDiagnostic(diagnostic: ts.Diagnostic, projectRoot: string): string;
|
|
44
44
|
export declare function logDiagnostic(diagnostic: ts.Diagnostic, projectRoot: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* Format a compilation summary with status line and counts line.
|
|
47
|
+
*/
|
|
48
|
+
export declare function formatCompilationSummary(diagnostics: readonly ts.Diagnostic[], emitSkipped: boolean, elapsedMs: number): string;
|
|
45
49
|
/**
|
|
46
50
|
* Parses a string-formatted person entry from `package.json`.
|
|
47
51
|
* @param value the string-formatted person entry.
|