skuba 13.0.0-custom-conditions-exports-20250730031317 → 13.0.0-custom-conditions-exports-20250730235248
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/lib/cli/lint/internalLints/upgrade/index.js +7 -3
- package/lib/cli/lint/internalLints/upgrade/index.js.map +2 -2
- package/lib/cli/lint/internalLints/upgrade/patches/{12.0.1 → 12.0.2}/configureTsConfigForESM.d.ts +1 -1
- package/lib/cli/lint/internalLints/upgrade/patches/{12.0.1 → 12.0.2}/configureTsConfigForESM.js +3 -4
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/configureTsConfigForESM.js.map +7 -0
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js +5 -0
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/index.js.map +2 -2
- package/lib/cli/node/index.js +2 -2
- package/lib/cli/node/index.js.map +2 -2
- package/lib/cli/start/index.js +2 -2
- package/lib/cli/start/index.js.map +1 -1
- package/package.json +3 -4
- package/template/base/_pnpm-workspace.yaml +0 -1
- package/template/greeter/package.json +1 -1
- package/template/koa-rest-api/package.json +3 -3
- package/template/lambda-sqs-worker-cdk/package.json +1 -1
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.1/configureTsConfigForESM.js.map +0 -7
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.1/index.d.ts +0 -2
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.1/index.js +0 -35
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.1/index.js.map +0 -7
|
@@ -130,9 +130,13 @@ const upgradeSkuba = async (mode, logger, additionalFlags = []) => {
|
|
|
130
130
|
logger.plain(`Patch applied: ${description}`);
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
const updatedManifest = await (0, import_manifest.getConsumerManifest)();
|
|
134
|
+
if (!updatedManifest) {
|
|
135
|
+
throw new Error("Could not find a package json for this project");
|
|
136
|
+
}
|
|
137
|
+
updatedManifest.packageJson.skuba.version = currentVersion;
|
|
138
|
+
const updatedPackageJson = await (0, import_package.formatPackage)(updatedManifest.packageJson);
|
|
139
|
+
await import_fs_extra.default.writeFile(updatedManifest.path, updatedPackageJson);
|
|
136
140
|
logger.newline();
|
|
137
141
|
logger.plain("skuba update complete.");
|
|
138
142
|
logger.newline();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/cli/lint/internalLints/upgrade/index.ts"],
|
|
4
|
-
"sourcesContent": ["import path from 'path';\n\nimport fs from 'fs-extra';\nimport type readPkgUp from 'read-pkg-up';\nimport { gte, sort } from 'semver';\n\nimport type { Logger } from '../../../../utils/logging.js';\nimport { getConsumerManifest } from '../../../../utils/manifest.js';\nimport {\n type PackageManagerConfig,\n detectPackageManager,\n} from '../../../../utils/packageManager.js';\nimport { getSkubaVersion } from '../../../../utils/version.js';\nimport { formatPackage } from '../../../configure/processing/package.js';\nimport type { SkubaPackageJson } from '../../../init/writePackageJson.js';\nimport type { InternalLintResult } from '../../internal.js';\n\nexport type Patches = Patch[];\nexport type Patch = {\n apply: PatchFunction;\n description: string;\n};\nexport type PatchReturnType =\n | { result: 'apply' }\n | { result: 'skip'; reason?: string };\n\nexport type PatchConfig = {\n mode: 'format' | 'lint';\n manifest: readPkgUp.NormalizedReadResult;\n packageManager: PackageManagerConfig;\n dir?: string;\n};\n\nexport type PatchFunction = (config: PatchConfig) => Promise<PatchReturnType>;\n\nconst getPatches = async (manifestVersion: string): Promise<Patches> => {\n const patches = await fs.readdir(path.join(__dirname, 'patches'), {\n withFileTypes: true,\n });\n\n // The patches are sorted by the version they were added from.\n // Only return patches that are newer or equal to the current version.\n const patchesForVersion = sort(\n patches.flatMap((patch) =>\n // Is a directory rather than a JavaScript source file\n patch.isDirectory() &&\n // Has been added since the last patch run on the project\n gte(patch.name, manifestVersion)\n ? patch.name\n : [],\n ),\n );\n\n return (await Promise.all(patchesForVersion.map(resolvePatches))).flat();\n};\n\nconst fileExtensions = ['js', 'ts'];\n\n// Hack to allow our Jest environment/transform to resolve the patches\n// In normal scenarios this will resolve immediately after the .js import\nconst resolvePatches = async (version: string): Promise<Patches> => {\n for (const extension of fileExtensions) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return (await import(`./patches/${version}/index.${extension}`)).patches;\n } catch {\n // Ignore\n }\n }\n throw new Error(`Could not resolve patches for ${version}`);\n};\n\nexport const upgradeSkuba = async (\n mode: 'lint' | 'format',\n logger: Logger,\n additionalFlags: string[] = [],\n): Promise<InternalLintResult> => {\n const [currentVersion, manifest, packageManager] = await Promise.all([\n getSkubaVersion(),\n getConsumerManifest(),\n detectPackageManager(),\n ]);\n\n if (!manifest) {\n throw new Error('Could not find a package json for this project');\n }\n\n manifest.packageJson.skuba ??= { version: '1.0.0' };\n\n const manifestVersion = additionalFlags.includes('--force-apply-all-patches')\n ? '1.0.0'\n : (manifest.packageJson.skuba as SkubaPackageJson).version;\n\n // We are up to date, skip patches\n if (gte(manifestVersion, currentVersion)) {\n return { ok: true, fixable: false };\n }\n\n const patches = await getPatches(manifestVersion);\n // No patches to apply even if version out of date. Early exit to avoid unnecessary commits.\n if (patches.length === 0) {\n return { ok: true, fixable: false };\n }\n\n if (mode === 'lint') {\n const results = await Promise.all(\n patches.map(\n async ({ apply }) =>\n await apply({\n mode,\n manifest,\n packageManager,\n }),\n ),\n );\n\n // No patches are applicable. Early exit to avoid unnecessary commits.\n if (results.every(({ result }) => result === 'skip')) {\n return { ok: true, fixable: false };\n }\n\n logger.warn(\n `skuba has patches to apply. Run ${logger.bold(\n packageManager.print.exec,\n 'skuba',\n 'format',\n )} to run them.`,\n );\n\n return {\n ok: false,\n fixable: true,\n annotations: [\n {\n // package.json as likely skuba version has changed\n // TODO: locate the \"skuba\": {} config in the package.json and annotate on the version property\n path: manifest.path,\n message: `skuba has patches to apply. Run ${packageManager.print.exec} skuba format to run them.`,\n },\n ],\n };\n }\n\n logger.plain('Updating skuba...');\n\n // Run these in series in case a subsequent patch relies on a previous patch\n for (const { apply, description } of patches) {\n const result = await apply({\n mode,\n manifest,\n packageManager,\n });\n logger.newline();\n if (result.result === 'skip') {\n logger.plain(\n `Patch skipped: ${description}${\n result.reason ? ` - ${result.reason}` : ''\n }`,\n );\n } else {\n logger.plain(`Patch applied: ${description}`);\n }\n }\n\n (
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import path from 'path';\n\nimport fs from 'fs-extra';\nimport type readPkgUp from 'read-pkg-up';\nimport { gte, sort } from 'semver';\n\nimport type { Logger } from '../../../../utils/logging.js';\nimport { getConsumerManifest } from '../../../../utils/manifest.js';\nimport {\n type PackageManagerConfig,\n detectPackageManager,\n} from '../../../../utils/packageManager.js';\nimport { getSkubaVersion } from '../../../../utils/version.js';\nimport { formatPackage } from '../../../configure/processing/package.js';\nimport type { SkubaPackageJson } from '../../../init/writePackageJson.js';\nimport type { InternalLintResult } from '../../internal.js';\n\nexport type Patches = Patch[];\nexport type Patch = {\n apply: PatchFunction;\n description: string;\n};\nexport type PatchReturnType =\n | { result: 'apply' }\n | { result: 'skip'; reason?: string };\n\nexport type PatchConfig = {\n mode: 'format' | 'lint';\n manifest: readPkgUp.NormalizedReadResult;\n packageManager: PackageManagerConfig;\n dir?: string;\n};\n\nexport type PatchFunction = (config: PatchConfig) => Promise<PatchReturnType>;\n\nconst getPatches = async (manifestVersion: string): Promise<Patches> => {\n const patches = await fs.readdir(path.join(__dirname, 'patches'), {\n withFileTypes: true,\n });\n\n // The patches are sorted by the version they were added from.\n // Only return patches that are newer or equal to the current version.\n const patchesForVersion = sort(\n patches.flatMap((patch) =>\n // Is a directory rather than a JavaScript source file\n patch.isDirectory() &&\n // Has been added since the last patch run on the project\n gte(patch.name, manifestVersion)\n ? patch.name\n : [],\n ),\n );\n\n return (await Promise.all(patchesForVersion.map(resolvePatches))).flat();\n};\n\nconst fileExtensions = ['js', 'ts'];\n\n// Hack to allow our Jest environment/transform to resolve the patches\n// In normal scenarios this will resolve immediately after the .js import\nconst resolvePatches = async (version: string): Promise<Patches> => {\n for (const extension of fileExtensions) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return (await import(`./patches/${version}/index.${extension}`)).patches;\n } catch {\n // Ignore\n }\n }\n throw new Error(`Could not resolve patches for ${version}`);\n};\n\nexport const upgradeSkuba = async (\n mode: 'lint' | 'format',\n logger: Logger,\n additionalFlags: string[] = [],\n): Promise<InternalLintResult> => {\n const [currentVersion, manifest, packageManager] = await Promise.all([\n getSkubaVersion(),\n getConsumerManifest(),\n detectPackageManager(),\n ]);\n\n if (!manifest) {\n throw new Error('Could not find a package json for this project');\n }\n\n manifest.packageJson.skuba ??= { version: '1.0.0' };\n\n const manifestVersion = additionalFlags.includes('--force-apply-all-patches')\n ? '1.0.0'\n : (manifest.packageJson.skuba as SkubaPackageJson).version;\n\n // We are up to date, skip patches\n if (gte(manifestVersion, currentVersion)) {\n return { ok: true, fixable: false };\n }\n\n const patches = await getPatches(manifestVersion);\n // No patches to apply even if version out of date. Early exit to avoid unnecessary commits.\n if (patches.length === 0) {\n return { ok: true, fixable: false };\n }\n\n if (mode === 'lint') {\n const results = await Promise.all(\n patches.map(\n async ({ apply }) =>\n await apply({\n mode,\n manifest,\n packageManager,\n }),\n ),\n );\n\n // No patches are applicable. Early exit to avoid unnecessary commits.\n if (results.every(({ result }) => result === 'skip')) {\n return { ok: true, fixable: false };\n }\n\n logger.warn(\n `skuba has patches to apply. Run ${logger.bold(\n packageManager.print.exec,\n 'skuba',\n 'format',\n )} to run them.`,\n );\n\n return {\n ok: false,\n fixable: true,\n annotations: [\n {\n // package.json as likely skuba version has changed\n // TODO: locate the \"skuba\": {} config in the package.json and annotate on the version property\n path: manifest.path,\n message: `skuba has patches to apply. Run ${packageManager.print.exec} skuba format to run them.`,\n },\n ],\n };\n }\n\n logger.plain('Updating skuba...');\n\n // Run these in series in case a subsequent patch relies on a previous patch\n for (const { apply, description } of patches) {\n const result = await apply({\n mode,\n manifest,\n packageManager,\n });\n logger.newline();\n if (result.result === 'skip') {\n logger.plain(\n `Patch skipped: ${description}${\n result.reason ? ` - ${result.reason}` : ''\n }`,\n );\n } else {\n logger.plain(`Patch applied: ${description}`);\n }\n }\n\n const updatedManifest = await getConsumerManifest();\n if (!updatedManifest) {\n throw new Error('Could not find a package json for this project');\n }\n\n (updatedManifest.packageJson.skuba as SkubaPackageJson).version =\n currentVersion;\n\n const updatedPackageJson = await formatPackage(updatedManifest.packageJson);\n\n await fs.writeFile(updatedManifest.path, updatedPackageJson);\n logger.newline();\n logger.plain('skuba update complete.');\n logger.newline();\n\n return {\n ok: true,\n fixable: false,\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["fs", "path"]
|
|
7
7
|
}
|
package/lib/cli/lint/internalLints/upgrade/patches/{12.0.1 → 12.0.2}/configureTsConfigForESM.d.ts
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PatchFunction } from '../../index.js';
|
|
2
2
|
export declare const addJestModuleNameMapper: (contents: string, subfolderPaths: string[]) => string;
|
|
3
3
|
export declare const replacePackageJson: (contents: string, repoName: string) => string;
|
|
4
|
-
export declare const replaceTsconfig: (contents: string, repoName: string
|
|
4
|
+
export declare const replaceTsconfig: (contents: string, repoName: string) => string;
|
|
5
5
|
export declare const tryConfigureTsConfigForESM: PatchFunction;
|
|
6
6
|
export declare const configureTsConfigForESM: PatchFunction;
|
package/lib/cli/lint/internalLints/upgrade/patches/{12.0.1 → 12.0.2}/configureTsConfigForESM.js
RENAMED
|
@@ -122,7 +122,6 @@ const replacePackageJson = (contents, repoName) => {
|
|
|
122
122
|
}
|
|
123
123
|
const packageJson = parseResult.data;
|
|
124
124
|
packageJson.imports = {
|
|
125
|
-
...packageJson.imports ?? {},
|
|
126
125
|
"#src/*": {
|
|
127
126
|
[`@seek/${repoName}/source`]: "./src/*",
|
|
128
127
|
default: "./lib/*"
|
|
@@ -134,7 +133,7 @@ const replacePackageJson = (contents, repoName) => {
|
|
|
134
133
|
return contents;
|
|
135
134
|
}
|
|
136
135
|
};
|
|
137
|
-
const replaceTsconfig = (contents, repoName
|
|
136
|
+
const replaceTsconfig = (contents, repoName) => {
|
|
138
137
|
try {
|
|
139
138
|
const jsonWithNoComments = contents.replace(/\/\/.*|\/\*[\s\S]*?\*\//g, "").trim();
|
|
140
139
|
const parseResult = tsConfigSchema.safeParse(
|
|
@@ -155,7 +154,7 @@ const replaceTsconfig = (contents, repoName, isMonoRepo) => {
|
|
|
155
154
|
tsconfigJson.compilerOptions = {};
|
|
156
155
|
}
|
|
157
156
|
const compilerOptions = tsconfigJson.compilerOptions;
|
|
158
|
-
if (compilerOptions.paths !== void 0
|
|
157
|
+
if (compilerOptions.paths !== void 0) {
|
|
159
158
|
delete compilerOptions.paths;
|
|
160
159
|
}
|
|
161
160
|
compilerOptions.customConditions ??= [];
|
|
@@ -203,7 +202,7 @@ const tryConfigureTsConfigForESM = async ({
|
|
|
203
202
|
({ file, contents }) => ({
|
|
204
203
|
file,
|
|
205
204
|
before: contents,
|
|
206
|
-
after: replaceTsconfig(contents, repoName
|
|
205
|
+
after: replaceTsconfig(contents, repoName)
|
|
207
206
|
})
|
|
208
207
|
);
|
|
209
208
|
const replacedJestConfigFiles = subfolderPaths.length > 0 ? jestConfigFiles.map(({ file, contents }) => ({
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/12.0.2/configureTsConfigForESM.ts"],
|
|
4
|
+
"sourcesContent": ["import { inspect } from 'util';\n\nimport { glob } from 'fast-glob';\nimport fs from 'fs-extra';\nimport { z } from 'zod';\n\nimport { Git } from '../../../../../../index.js';\nimport { log } from '../../../../../../utils/logging.js';\nimport type { PatchFunction, PatchReturnType } from '../../index.js';\n\nconst packageJsonSchema = z\n .object({\n imports: z.record(z.record(z.string())).optional(),\n })\n .passthrough();\n\nconst tsConfigSchema = z\n .object({\n compilerOptions: z\n .object({\n customConditions: z.array(z.string()).optional(),\n rootDir: z.string().optional(),\n paths: z.record(z.unknown()).optional(),\n })\n .passthrough()\n .optional(),\n })\n .passthrough();\n\nconst getRepoName = async (): Promise<string | undefined> => {\n try {\n const dir = process.cwd();\n const { repo } = await Git.getOwnerAndRepo({ dir });\n\n return repo;\n } catch (error) {\n log.warn(`Error getting repository information: ${String(error)}`);\n throw error;\n }\n};\n\nconst fetchFiles = async (files: string[]) =>\n Promise.all(\n files.map(async (file) => {\n const contents = await fs.promises.readFile(file, 'utf8');\n\n return {\n file,\n contents,\n };\n }),\n );\n\nconst formatModuleNameMapper = (subfolderPaths: string[]) =>\n subfolderPaths.map((subfolderPath) => `<rootDir>/${subfolderPath}/src`);\n\nconst isTypeScriptJestConfig = (contents: string): boolean =>\n contents.includes('Jest.mergePreset') ||\n contents.includes('export default') ||\n contents.includes('import');\n\nconst addModuleNameMapperToTypeScript = (\n contents: string,\n moduleNameMapper: Record<string, unknown>,\n): string => {\n const moduleNameMapperStr = JSON.stringify(moduleNameMapper, null, 2)\n .split('\\n')\n .map((line, index) => (index === 0 ? line : ` ${line}`))\n .join('\\n');\n\n const mergePresetRegex = /(Jest\\.mergePreset\\(\\s*\\{)/;\n const match = mergePresetRegex.exec(contents);\n\n if (match?.index !== undefined) {\n const insertIndex = match.index + match[0].length;\n const before = contents.slice(0, insertIndex);\n const after = contents.slice(insertIndex);\n\n return `${before}\\n moduleNameMapper: ${moduleNameMapperStr},${after}`;\n }\n\n return contents;\n};\n\nexport const addJestModuleNameMapper = (\n contents: string,\n subfolderPaths: string[],\n) => {\n const formattedNames = formatModuleNameMapper(subfolderPaths);\n const formattedNamesWithPath = formattedNames.map((name) => `${name}/$1`);\n\n const moduleNameMapper = {\n '^(\\\\.{1,2}/.*)\\\\.js$': '$1',\n '^#src$': formattedNames,\n '^#src/(.*)\\\\.js$': formattedNamesWithPath,\n '^#src\\/(.*)$': formattedNamesWithPath,\n };\n\n if (isTypeScriptJestConfig(contents)) {\n return addModuleNameMapperToTypeScript(contents, moduleNameMapper);\n }\n\n try {\n const parseResult = packageJsonSchema.safeParse(JSON.parse(contents));\n\n if (!parseResult.success) {\n log.warn(\n `Failed to parse Jest config as JSON: ${parseResult.error.message}`,\n );\n return contents;\n }\n\n const jestConfig = parseResult.data;\n jestConfig.moduleNameMapper = moduleNameMapper;\n\n return JSON.stringify(jestConfig, null, 2);\n } catch (error) {\n log.warn(`Failed to parse Jest config: ${String(error)}`);\n return contents;\n }\n};\n\nexport const replacePackageJson = (contents: string, repoName: string) => {\n try {\n const parseResult = packageJsonSchema.safeParse(JSON.parse(contents));\n\n if (!parseResult.success) {\n log.warn(`Failed to parse package.json: ${parseResult.error.message}`);\n return contents;\n }\n\n const packageJson = parseResult.data;\n\n packageJson.imports = {\n '#src/*': {\n [`@seek/${repoName}/source`]: './src/*',\n default: './lib/*',\n },\n };\n\n return JSON.stringify(packageJson, null, 2);\n } catch (error) {\n log.warn(`Failed to parse package.json as JSON: ${String(error)}`);\n return contents;\n }\n};\n\nexport const replaceTsconfig = (contents: string, repoName: string) => {\n try {\n const jsonWithNoComments = contents\n .replace(/\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g, '')\n .trim();\n\n const parseResult = tsConfigSchema.safeParse(\n JSON.parse(jsonWithNoComments),\n );\n\n if (!parseResult.success) {\n log.warn(`Failed to parse tsconfig.json: ${parseResult.error.message}`);\n return contents;\n }\n\n const tsconfigJson = parseResult.data;\n\n if (\n typeof tsconfigJson.extends === 'string' &&\n !tsconfigJson.extends.startsWith('skuba/')\n ) {\n log.subtle(\n 'Skipping tsconfig.json that does not extend skuba/config/tsconfig.json',\n );\n return contents;\n }\n\n if (\n !tsconfigJson.compilerOptions ||\n typeof tsconfigJson.compilerOptions !== 'object'\n ) {\n tsconfigJson.compilerOptions = {};\n }\n\n const compilerOptions = tsconfigJson.compilerOptions;\n\n if (compilerOptions.paths !== undefined) {\n delete compilerOptions.paths;\n }\n\n compilerOptions.customConditions ??= [];\n\n if (compilerOptions.customConditions.includes(`@seek/${repoName}/source`)) {\n log.subtle(\n 'Custom condition mapping already exists in tsconfig.json, skipping',\n );\n return contents;\n }\n\n compilerOptions.customConditions = [`@seek/${repoName}/source`];\n\n compilerOptions.rootDir ??= '.';\n\n return JSON.stringify(tsconfigJson, null, 2);\n } catch (error) {\n log.warn(`Failed to parse tsconfig.json as JSON: ${String(error)}`);\n return contents;\n }\n};\n\nexport const tryConfigureTsConfigForESM: PatchFunction = async ({\n mode,\n}): Promise<PatchReturnType> => {\n const packageJsonPatterns = ['**/package.*json'];\n const tsconfigJsonPatterns = ['**/tsconfig.*json'];\n const jestConfigPatterns = ['**/jest.config.*ts'];\n\n const globOptions = {\n ignore: ['**/node_modules/**', '**/tsconfig.build.json'],\n };\n\n const [packageJsonFiles, tsconfigJsonFiles, jestConfigFiles] =\n await Promise.all([\n fetchFiles(await glob(packageJsonPatterns, globOptions)),\n fetchFiles(await glob(tsconfigJsonPatterns, globOptions)),\n fetchFiles(await glob(jestConfigPatterns, globOptions)),\n ]);\n\n const subfolderPaths = packageJsonFiles\n .map(({ file }) => file.split('/').slice(0, -1).join('/'))\n .filter((path) => path !== '');\n\n const repoName = await getRepoName();\n if (!repoName) {\n return { result: 'skip', reason: 'no repository name found' };\n }\n\n const replacedPackageJsonFiles = packageJsonFiles.map(\n ({ file, contents }) => ({\n file,\n before: contents,\n after: replacePackageJson(contents, repoName),\n }),\n );\n\n const replacedTsconfigJsonFiles = tsconfigJsonFiles.map(\n ({ file, contents }) => ({\n file,\n before: contents,\n after: replaceTsconfig(contents, repoName),\n }),\n );\n\n const replacedJestConfigFiles =\n subfolderPaths.length > 0\n ? jestConfigFiles.map(({ file, contents }) => ({\n file,\n before: contents,\n after: addJestModuleNameMapper(contents, subfolderPaths),\n }))\n : [];\n\n if (mode === 'lint') {\n return {\n result: 'apply',\n };\n }\n\n await Promise.all(\n [\n ...replacedPackageJsonFiles,\n ...replacedTsconfigJsonFiles.filter(\n ({ after }) => typeof after === 'string',\n ),\n ...replacedJestConfigFiles,\n ].map(async ({ file, after }) => {\n await fs.promises.writeFile(file, after);\n }),\n );\n\n return { result: 'apply' };\n};\n\nexport const configureTsConfigForESM: PatchFunction = async (config) => {\n try {\n return await tryConfigureTsConfigForESM(config);\n } catch (err) {\n log.warn('Failed to write configure `tsconfig.json` and `package.json`');\n log.subtle(inspect(err));\n return { result: 'skip', reason: 'due to an error' };\n }\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["fs"]
|
|
7
|
+
}
|
|
@@ -21,11 +21,16 @@ __export(__exports, {
|
|
|
21
21
|
patches: () => patches
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(__exports);
|
|
24
|
+
var import_configureTsConfigForESM = require("./configureTsConfigForESM.js");
|
|
24
25
|
var import_rewriteSrcImports = require("./rewriteSrcImports.js");
|
|
25
26
|
const patches = [
|
|
26
27
|
{
|
|
27
28
|
apply: import_rewriteSrcImports.rewriteSrcImports,
|
|
28
29
|
description: "Rewrite all 'src' imports to be '#src'"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
apply: import_configureTsConfigForESM.configureTsConfigForESM,
|
|
33
|
+
description: "Configure `tsconfig.json`, `package.json` and `jest.config.ts` for ESM"
|
|
29
34
|
}
|
|
30
35
|
];
|
|
31
36
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/12.0.2/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Patches } from '../../index.js';\n\nimport { rewriteSrcImports } from './rewriteSrcImports.js';\n\nexport const patches: Patches = [\n {\n apply: rewriteSrcImports,\n description: \"Rewrite all 'src' imports to be '#src'\",\n },\n];\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,+BAAkC;AAE3B,MAAM,UAAmB;AAAA,EAC9B;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,EACf;AACF;",
|
|
4
|
+
"sourcesContent": ["import type { Patches } from '../../index.js';\n\nimport { configureTsConfigForESM } from './configureTsConfigForESM.js';\nimport { rewriteSrcImports } from './rewriteSrcImports.js';\n\nexport const patches: Patches = [\n {\n apply: rewriteSrcImports,\n description: \"Rewrite all 'src' imports to be '#src'\",\n },\n {\n apply: configureTsConfigForESM,\n description:\n 'Configure `tsconfig.json`, `package.json` and `jest.config.ts` for ESM',\n },\n];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qCAAwC;AACxC,+BAAkC;AAE3B,MAAM,UAAmB;AAAA,EAC9B;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aACE;AAAA,EACJ;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/lib/cli/node/index.js
CHANGED
|
@@ -44,8 +44,8 @@ const node = async () => {
|
|
|
44
44
|
const availablePort = await (0, import_get_port.default)();
|
|
45
45
|
const commonArgs = [
|
|
46
46
|
...args.node,
|
|
47
|
-
"--
|
|
48
|
-
|
|
47
|
+
"--env-file-if-exists",
|
|
48
|
+
".env",
|
|
49
49
|
"--require",
|
|
50
50
|
require.resolve("tsconfig-paths/register")
|
|
51
51
|
];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cli/node/index.ts"],
|
|
4
|
-
"sourcesContent": ["import path from 'path';\n\nimport execa from 'execa';\nimport getPort from 'get-port';\n\nimport { parseRunArgs } from '../../utils/args.js';\nimport { createExec } from '../../utils/exec.js';\nimport { isIpPort } from '../../utils/validation.js';\n\nexport const longRunning = true;\n\nexport const node = async () => {\n const args = parseRunArgs(process.argv.slice(2));\n\n const availablePort = await getPort();\n\n const commonArgs = [\n ...args.node,\n '--
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,mBAAkB;AAClB,sBAAoB;AAEpB,kBAA6B;AAC7B,kBAA2B;AAC3B,wBAAyB;AAElB,MAAM,cAAc;AAEpB,MAAM,OAAO,YAAY;AAC9B,QAAM,WAAO,0BAAa,QAAQ,KAAK,MAAM,CAAC,CAAC;AAE/C,QAAM,gBAAgB,UAAM,gBAAAA,SAAQ;AAEpC,QAAM,aAAa;AAAA,IACjB,GAAG,KAAK;AAAA,IACR;AAAA,IACA
|
|
4
|
+
"sourcesContent": ["import path from 'path';\n\nimport execa from 'execa';\nimport getPort from 'get-port';\n\nimport { parseRunArgs } from '../../utils/args.js';\nimport { createExec } from '../../utils/exec.js';\nimport { isIpPort } from '../../utils/validation.js';\n\nexport const longRunning = true;\n\nexport const node = async () => {\n const args = parseRunArgs(process.argv.slice(2));\n\n const availablePort = await getPort();\n\n const commonArgs = [\n ...args.node,\n '--env-file-if-exists',\n '.env',\n '--require',\n require.resolve('tsconfig-paths/register'),\n ];\n\n if (args.entryPoint) {\n const exec = createExec({\n env: {\n __SKUBA_ENTRY_POINT: args.entryPoint,\n __SKUBA_PORT: String(isIpPort(args.port) ? args.port : availablePort),\n },\n });\n\n return exec(\n 'tsx',\n ...commonArgs,\n path.join(__dirname, '..', '..', 'wrapper', 'index.js'),\n ...args.script,\n );\n }\n\n return execa(\n require.resolve('tsx/cli'),\n [\n ...commonArgs,\n '--require',\n // Unsure if bug or feature that this is needed, but tsx appears to not do anything typescript in the REPL without this!\n // Doesn't occur when just running the tsx binary directly \uD83E\uDDD0\n require.resolve('tsx/patch-repl'),\n ],\n {\n stdio: 'inherit',\n },\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,mBAAkB;AAClB,sBAAoB;AAEpB,kBAA6B;AAC7B,kBAA2B;AAC3B,wBAAyB;AAElB,MAAM,cAAc;AAEpB,MAAM,OAAO,YAAY;AAC9B,QAAM,WAAO,0BAAa,QAAQ,KAAK,MAAM,CAAC,CAAC;AAE/C,QAAM,gBAAgB,UAAM,gBAAAA,SAAQ;AAEpC,QAAM,aAAa;AAAA,IACjB,GAAG,KAAK;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,yBAAyB;AAAA,EAC3C;AAEA,MAAI,KAAK,YAAY;AACnB,UAAM,WAAO,wBAAW;AAAA,MACtB,KAAK;AAAA,QACH,qBAAqB,KAAK;AAAA,QAC1B,cAAc,WAAO,4BAAS,KAAK,IAAI,IAAI,KAAK,OAAO,aAAa;AAAA,MACtE;AAAA,IACF,CAAC;AAED,WAAO;AAAA,MACL;AAAA,MACA,GAAG;AAAA,MACH,YAAAC,QAAK,KAAK,WAAW,MAAM,MAAM,WAAW,UAAU;AAAA,MACtD,GAAG,KAAK;AAAA,IACV;AAAA,EACF;AAEA,aAAO,aAAAC;AAAA,IACL,gBAAgB,SAAS;AAAA,IACzB;AAAA,MACE,GAAG;AAAA,MACH;AAAA;AAAA;AAAA,MAGA,gBAAgB,gBAAgB;AAAA,IAClC;AAAA,IACA;AAAA,MACE,OAAO;AAAA,IACT;AAAA,EACF;AACF;",
|
|
6
6
|
"names": ["getPort", "path", "execa"]
|
|
7
7
|
}
|
package/lib/cli/start/index.js
CHANGED
|
@@ -54,8 +54,8 @@ const start = async () => {
|
|
|
54
54
|
"watch",
|
|
55
55
|
"--clear-screen=false",
|
|
56
56
|
...args.node,
|
|
57
|
-
"--
|
|
58
|
-
"
|
|
57
|
+
"--env-file-if-exists",
|
|
58
|
+
".env",
|
|
59
59
|
"--require",
|
|
60
60
|
"tsconfig-paths/register",
|
|
61
61
|
import_path.default.join(__dirname, "..", "..", "wrapper", "index.js"),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cli/start/index.ts"],
|
|
4
|
-
"sourcesContent": ["import path from 'path';\n\nimport getPort from 'get-port';\n\nimport { parseRunArgs } from '../../utils/args.js';\nimport { createExec } from '../../utils/exec.js';\nimport { getEntryPointFromManifest } from '../../utils/manifest.js';\nimport { isIpPort } from '../../utils/validation.js';\n\nexport const start = async () => {\n const [args, availablePort] = await Promise.all([\n parseRunArgs(process.argv.slice(2)),\n getPort(),\n ]);\n\n args.entryPoint ??= await getEntryPointFromManifest();\n\n const execProcess = createExec({\n env: {\n __SKUBA_ENTRY_POINT: args.entryPoint,\n __SKUBA_PORT: String(isIpPort(args.port) ? args.port : availablePort),\n },\n });\n\n return execProcess(\n 'tsx',\n 'watch',\n '--clear-screen=false',\n ...args.node,\n '--
|
|
4
|
+
"sourcesContent": ["import path from 'path';\n\nimport getPort from 'get-port';\n\nimport { parseRunArgs } from '../../utils/args.js';\nimport { createExec } from '../../utils/exec.js';\nimport { getEntryPointFromManifest } from '../../utils/manifest.js';\nimport { isIpPort } from '../../utils/validation.js';\n\nexport const start = async () => {\n const [args, availablePort] = await Promise.all([\n parseRunArgs(process.argv.slice(2)),\n getPort(),\n ]);\n\n args.entryPoint ??= await getEntryPointFromManifest();\n\n const execProcess = createExec({\n env: {\n __SKUBA_ENTRY_POINT: args.entryPoint,\n __SKUBA_PORT: String(isIpPort(args.port) ? args.port : availablePort),\n },\n });\n\n return execProcess(\n 'tsx',\n 'watch',\n '--clear-screen=false',\n ...args.node,\n '--env-file-if-exists',\n '.env',\n '--require',\n 'tsconfig-paths/register',\n path.join(__dirname, '..', '..', 'wrapper', 'index.js'),\n ...args.script,\n );\n};\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,sBAAoB;AAEpB,kBAA6B;AAC7B,kBAA2B;AAC3B,sBAA0C;AAC1C,wBAAyB;AAElB,MAAM,QAAQ,YAAY;AAC/B,QAAM,CAAC,MAAM,aAAa,IAAI,MAAM,QAAQ,IAAI;AAAA,QAC9C,0BAAa,QAAQ,KAAK,MAAM,CAAC,CAAC;AAAA,QAClC,gBAAAA,SAAQ;AAAA,EACV,CAAC;AAED,OAAK,eAAe,UAAM,2CAA0B;AAEpD,QAAM,kBAAc,wBAAW;AAAA,IAC7B,KAAK;AAAA,MACH,qBAAqB,KAAK;AAAA,MAC1B,cAAc,WAAO,4BAAS,KAAK,IAAI,IAAI,KAAK,OAAO,aAAa;AAAA,IACtE;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG,KAAK;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAAC,QAAK,KAAK,WAAW,MAAM,MAAM,WAAW,UAAU;AAAA,IACtD,GAAG,KAAK;AAAA,EACV;AACF;",
|
|
6
6
|
"names": ["getPort", "path"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skuba",
|
|
3
|
-
"version": "13.0.0-custom-conditions-exports-
|
|
3
|
+
"version": "13.0.0-custom-conditions-exports-20250730235248",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "SEEK development toolkit for backend applications and packages",
|
|
6
6
|
"homepage": "https://github.com/seek-oss/skuba#readme",
|
|
@@ -67,7 +67,6 @@
|
|
|
67
67
|
"@types/node": "^22.0.0",
|
|
68
68
|
"chalk": "^4.1.0",
|
|
69
69
|
"concurrently": "^9.0.0",
|
|
70
|
-
"dotenv": "^16.0.0",
|
|
71
70
|
"ejs": "^3.1.6",
|
|
72
71
|
"enquirer": "^2.3.6",
|
|
73
72
|
"esbuild": "~0.25.0",
|
|
@@ -114,7 +113,7 @@
|
|
|
114
113
|
"@types/ejs": "3.1.5",
|
|
115
114
|
"@types/express": "5.0.3",
|
|
116
115
|
"@types/fs-extra": "11.0.4",
|
|
117
|
-
"@types/koa": "
|
|
116
|
+
"@types/koa": "3.0.0",
|
|
118
117
|
"@types/lodash.mergewith": "4.6.9",
|
|
119
118
|
"@types/minimist": "1.2.5",
|
|
120
119
|
"@types/module-alias": "2.0.4",
|
|
@@ -128,7 +127,7 @@
|
|
|
128
127
|
"fastify": "5.4.0",
|
|
129
128
|
"jest-diff": "30.0.4",
|
|
130
129
|
"jsonfile": "6.1.0",
|
|
131
|
-
"koa": "3.0.
|
|
130
|
+
"koa": "3.0.1",
|
|
132
131
|
"memfs": "4.17.2",
|
|
133
132
|
"remark-cli": "12.0.1",
|
|
134
133
|
"remark-preset-lint-recommended": "7.0.1",
|
|
@@ -30,17 +30,17 @@
|
|
|
30
30
|
"@opentelemetry/sdk-node": "^0.203.0",
|
|
31
31
|
"@seek/logger": "^10.0.0",
|
|
32
32
|
"hot-shots": "^10.0.0",
|
|
33
|
-
"koa": "^
|
|
33
|
+
"koa": "^3.0.1",
|
|
34
34
|
"koa-compose": "^4.1.0",
|
|
35
35
|
"seek-datadog-custom-metrics": "^4.6.3",
|
|
36
|
-
"seek-koala": "^7.
|
|
36
|
+
"seek-koala": "^7.1.0",
|
|
37
37
|
"skuba-dive": "^2.0.0",
|
|
38
38
|
"zod": "^3.25.67"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/chance": "^1.1.3",
|
|
42
42
|
"@types/co-body": "^6.1.3",
|
|
43
|
-
"@types/koa": "^
|
|
43
|
+
"@types/koa": "^3.0.0",
|
|
44
44
|
"@types/koa__router": "^12.0.0",
|
|
45
45
|
"@types/node": "^22.13.10",
|
|
46
46
|
"@types/supertest": "^6.0.0",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"constructs": "^10.0.17",
|
|
44
44
|
"datadog-cdk-constructs-v2": "^2.0.0",
|
|
45
45
|
"pino-pretty": "^13.0.0",
|
|
46
|
-
"skuba": "13.0.0-custom-conditions-exports-
|
|
46
|
+
"skuba": "13.0.0-custom-conditions-exports-20250730235248"
|
|
47
47
|
},
|
|
48
48
|
"packageManager": "pnpm@10.12.4",
|
|
49
49
|
"engines": {
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/12.0.1/configureTsConfigForESM.ts"],
|
|
4
|
-
"sourcesContent": ["import { inspect } from 'util';\n\nimport { glob } from 'fast-glob';\nimport fs from 'fs-extra';\nimport { z } from 'zod';\n\nimport { Git } from '../../../../../../index.js';\nimport { log } from '../../../../../../utils/logging.js';\nimport type { PatchFunction, PatchReturnType } from '../../index.js';\n\nconst packageJsonSchema = z\n .object({\n imports: z.record(z.record(z.string())).optional(),\n })\n .passthrough();\n\nconst tsConfigSchema = z\n .object({\n compilerOptions: z\n .object({\n customConditions: z.array(z.string()).optional(),\n rootDir: z.string().optional(),\n paths: z.record(z.unknown()).optional(),\n })\n .passthrough()\n .optional(),\n })\n .passthrough();\n\nconst getRepoName = async (): Promise<string | undefined> => {\n try {\n const dir = process.cwd();\n const { repo } = await Git.getOwnerAndRepo({ dir });\n\n return repo;\n } catch (error) {\n log.warn(`Error getting repository information: ${String(error)}`);\n throw error;\n }\n};\n\nconst fetchFiles = async (files: string[]) =>\n Promise.all(\n files.map(async (file) => {\n const contents = await fs.promises.readFile(file, 'utf8');\n\n return {\n file,\n contents,\n };\n }),\n );\n\nconst formatModuleNameMapper = (subfolderPaths: string[]) =>\n subfolderPaths.map((subfolderPath) => `<rootDir>/${subfolderPath}/src`);\n\nconst isTypeScriptJestConfig = (contents: string): boolean =>\n contents.includes('Jest.mergePreset') ||\n contents.includes('export default') ||\n contents.includes('import');\n\nconst addModuleNameMapperToTypeScript = (\n contents: string,\n moduleNameMapper: Record<string, unknown>,\n): string => {\n const moduleNameMapperStr = JSON.stringify(moduleNameMapper, null, 2)\n .split('\\n')\n .map((line, index) => (index === 0 ? line : ` ${line}`))\n .join('\\n');\n\n const mergePresetRegex = /(Jest\\.mergePreset\\(\\s*\\{)/;\n const match = mergePresetRegex.exec(contents);\n\n if (match?.index !== undefined) {\n const insertIndex = match.index + match[0].length;\n const before = contents.slice(0, insertIndex);\n const after = contents.slice(insertIndex);\n\n return `${before}\\n moduleNameMapper: ${moduleNameMapperStr},${after}`;\n }\n\n return contents;\n};\n\nexport const addJestModuleNameMapper = (\n contents: string,\n subfolderPaths: string[],\n) => {\n const formattedNames = formatModuleNameMapper(subfolderPaths);\n const formattedNamesWithPath = formattedNames.map((name) => `${name}/$1`);\n\n const moduleNameMapper = {\n '^(\\\\.{1,2}/.*)\\\\.js$': '$1',\n '^#src$': formattedNames,\n '^#src/(.*)\\\\.js$': formattedNamesWithPath,\n '^#src\\/(.*)$': formattedNamesWithPath,\n };\n\n if (isTypeScriptJestConfig(contents)) {\n return addModuleNameMapperToTypeScript(contents, moduleNameMapper);\n }\n\n try {\n const parseResult = packageJsonSchema.safeParse(JSON.parse(contents));\n\n if (!parseResult.success) {\n log.warn(\n `Failed to parse Jest config as JSON: ${parseResult.error.message}`,\n );\n return contents;\n }\n\n const jestConfig = parseResult.data;\n jestConfig.moduleNameMapper = moduleNameMapper;\n\n return JSON.stringify(jestConfig, null, 2);\n } catch (error) {\n log.warn(`Failed to parse Jest config: ${String(error)}`);\n return contents;\n }\n};\n\nexport const replacePackageJson = (contents: string, repoName: string) => {\n try {\n const parseResult = packageJsonSchema.safeParse(JSON.parse(contents));\n\n if (!parseResult.success) {\n log.warn(`Failed to parse package.json: ${parseResult.error.message}`);\n return contents;\n }\n\n const packageJson = parseResult.data;\n\n packageJson.imports = {\n ...(packageJson.imports ?? {}),\n '#src/*': {\n [`@seek/${repoName}/source`]: './src/*',\n default: './lib/*',\n },\n };\n\n return JSON.stringify(packageJson, null, 2);\n } catch (error) {\n log.warn(`Failed to parse package.json as JSON: ${String(error)}`);\n return contents;\n }\n};\n\nexport const replaceTsconfig = (\n contents: string,\n repoName: string,\n isMonoRepo: boolean,\n) => {\n try {\n const jsonWithNoComments = contents\n .replace(/\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g, '')\n .trim();\n\n const parseResult = tsConfigSchema.safeParse(\n JSON.parse(jsonWithNoComments),\n );\n\n if (!parseResult.success) {\n log.warn(`Failed to parse tsconfig.json: ${parseResult.error.message}`);\n return contents;\n }\n\n const tsconfigJson = parseResult.data;\n\n if (\n typeof tsconfigJson.extends === 'string' &&\n !tsconfigJson.extends.startsWith('skuba/')\n ) {\n log.subtle(\n 'Skipping tsconfig.json that does not extend skuba/config/tsconfig.json',\n );\n return contents;\n }\n\n if (\n !tsconfigJson.compilerOptions ||\n typeof tsconfigJson.compilerOptions !== 'object'\n ) {\n tsconfigJson.compilerOptions = {};\n }\n\n const compilerOptions = tsconfigJson.compilerOptions;\n\n if (compilerOptions.paths !== undefined && !isMonoRepo) {\n delete compilerOptions.paths;\n }\n\n compilerOptions.customConditions ??= [];\n\n if (compilerOptions.customConditions.includes(`@seek/${repoName}/source`)) {\n log.subtle(\n 'Custom condition mapping already exists in tsconfig.json, skipping',\n );\n return contents;\n }\n\n compilerOptions.customConditions = [`@seek/${repoName}/source`];\n\n compilerOptions.rootDir ??= '.';\n\n return JSON.stringify(tsconfigJson, null, 2);\n } catch (error) {\n log.warn(`Failed to parse tsconfig.json as JSON: ${String(error)}`);\n return contents;\n }\n};\n\nexport const tryConfigureTsConfigForESM: PatchFunction = async ({\n mode,\n}): Promise<PatchReturnType> => {\n const packageJsonPatterns = ['**/package.*json'];\n const tsconfigJsonPatterns = ['**/tsconfig.*json'];\n const jestConfigPatterns = ['**/jest.config.*ts'];\n\n const globOptions = {\n ignore: ['**/node_modules/**', '**/tsconfig.build.json'],\n };\n\n const [packageJsonFiles, tsconfigJsonFiles, jestConfigFiles] =\n await Promise.all([\n fetchFiles(await glob(packageJsonPatterns, globOptions)),\n fetchFiles(await glob(tsconfigJsonPatterns, globOptions)),\n fetchFiles(await glob(jestConfigPatterns, globOptions)),\n ]);\n\n const subfolderPaths = packageJsonFiles\n .map(({ file }) => file.split('/').slice(0, -1).join('/'))\n .filter((path) => path !== '');\n\n const repoName = await getRepoName();\n if (!repoName) {\n return { result: 'skip', reason: 'no repository name found' };\n }\n\n const replacedPackageJsonFiles = packageJsonFiles.map(\n ({ file, contents }) => ({\n file,\n before: contents,\n after: replacePackageJson(contents, repoName),\n }),\n );\n\n const replacedTsconfigJsonFiles = tsconfigJsonFiles.map(\n ({ file, contents }) => ({\n file,\n before: contents,\n after: replaceTsconfig(contents, repoName, subfolderPaths.length > 0),\n }),\n );\n\n const replacedJestConfigFiles =\n subfolderPaths.length > 0\n ? jestConfigFiles.map(({ file, contents }) => ({\n file,\n before: contents,\n after: addJestModuleNameMapper(contents, subfolderPaths),\n }))\n : [];\n\n if (mode === 'lint') {\n return {\n result: 'apply',\n };\n }\n\n await Promise.all(\n [\n ...replacedPackageJsonFiles,\n ...replacedTsconfigJsonFiles.filter(\n ({ after }) => typeof after === 'string',\n ),\n ...replacedJestConfigFiles,\n ].map(async ({ file, after }) => {\n await fs.promises.writeFile(file, after);\n }),\n );\n\n return { result: 'apply' };\n};\n\nexport const configureTsConfigForESM: PatchFunction = async (config) => {\n try {\n return await tryConfigureTsConfigForESM(config);\n } catch (err) {\n log.warn('Failed to write configure `tsconfig.json` and `package.json`');\n log.subtle(inspect(err));\n return { result: 'skip', reason: 'due to an error' };\n }\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["fs"]
|
|
7
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var __exports = {};
|
|
20
|
-
__export(__exports, {
|
|
21
|
-
patches: () => patches
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(__exports);
|
|
24
|
-
var import_configureTsConfigForESM = require("./configureTsConfigForESM.js");
|
|
25
|
-
const patches = [
|
|
26
|
-
{
|
|
27
|
-
apply: import_configureTsConfigForESM.configureTsConfigForESM,
|
|
28
|
-
description: "Configure `tsconfig.json`, `package.json` and `jest.config.ts` for ESM"
|
|
29
|
-
}
|
|
30
|
-
];
|
|
31
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
-
0 && (module.exports = {
|
|
33
|
-
patches
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/12.0.1/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Patches } from '../../index.js';\n\nimport { configureTsConfigForESM } from './configureTsConfigForESM.js';\n\nexport const patches: Patches = [\n {\n apply: configureTsConfigForESM,\n description:\n 'Configure `tsconfig.json`, `package.json` and `jest.config.ts` for ESM',\n },\n];\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qCAAwC;AAEjC,MAAM,UAAmB;AAAA,EAC9B;AAAA,IACE,OAAO;AAAA,IACP,aACE;AAAA,EACJ;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|