skuba 13.0.0-custom-conditions-exports-20250729050504 → 13.0.0-custom-conditions-exports-20250729055507

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.
@@ -135,7 +135,10 @@ const replacePackageJson = (contents, repoName) => {
135
135
  };
136
136
  const replaceTsconfig = (contents, repoName, isMonoRepo) => {
137
137
  try {
138
- const parseResult = tsConfigSchema.safeParse(JSON.parse(contents));
138
+ const jsonWithNoComments = contents.replace(/\/\/.*|\/\*[\s\S]*?\*\//g, "").trim();
139
+ const parseResult = tsConfigSchema.safeParse(
140
+ JSON.parse(jsonWithNoComments)
141
+ );
139
142
  if (!parseResult.success) {
140
143
  import_logging.log.warn(`Failed to parse tsconfig.json: ${parseResult.error.message}`);
141
144
  return contents;
@@ -1,7 +1,7 @@
1
1
  {
2
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 // Handle TypeScript Jest configs\n if (isTypeScriptJestConfig(contents)) {\n return addModuleNameMapperToTypeScript(contents, moduleNameMapper);\n }\n\n // Handle JSON Jest configs\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 = (\n contents: string,\n repoName: string,\n isMonoRepo: boolean,\n) => {\n try {\n const parseResult = tsConfigSchema.safeParse(JSON.parse(contents));\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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",
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 '#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
6
  "names": ["fs"]
7
7
  }
@@ -21,11 +21,11 @@ __export(__exports, {
21
21
  patches: () => patches
22
22
  });
23
23
  module.exports = __toCommonJS(__exports);
24
- var import_rewriteSrcImports = require("./rewriteSrcImports.js");
24
+ var import_configureTsConfigForESM = require("./configureTsConfigForESM.js");
25
25
  const patches = [
26
26
  {
27
- apply: import_rewriteSrcImports.rewriteSrcImports,
28
- description: "Rewrite all 'src' imports to be '#src'"
27
+ apply: import_configureTsConfigForESM.configureTsConfigForESM,
28
+ description: "Configure `tsconfig.json`, `package.json` and `jest.config.ts` for ESM"
29
29
  }
30
30
  ];
31
31
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,7 @@
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
+ }
@@ -21,11 +21,11 @@ __export(__exports, {
21
21
  patches: () => patches
22
22
  });
23
23
  module.exports = __toCommonJS(__exports);
24
- var import_configureTsConfigForESM = require("./configureTsConfigForESM.js");
24
+ var import_rewriteSrcImports = require("./rewriteSrcImports.js");
25
25
  const patches = [
26
26
  {
27
- apply: import_configureTsConfigForESM.configureTsConfigForESM,
28
- description: "Configure `tsconfig.json` and `package.json` for ESM"
27
+ apply: import_rewriteSrcImports.rewriteSrcImports,
28
+ description: "Rewrite all 'src' imports to be '#src'"
29
29
  }
30
30
  ];
31
31
  // 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 { configureTsConfigForESM } from './configureTsConfigForESM.js';\n\nexport const patches: Patches = [\n {\n apply: configureTsConfigForESM,\n description: 'Configure `tsconfig.json` and `package.json` for ESM',\n },\n];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qCAAwC;AAEjC,MAAM,UAAmB;AAAA,EAC9B;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,EACf;AACF;",
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;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/12.0.0/rewriteSrcImports.ts"],
3
+ "sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/12.0.2/rewriteSrcImports.ts"],
4
4
  "sourcesContent": ["import { inspect } from 'util';\n\nimport { glob } from 'fast-glob';\nimport fs from 'fs-extra';\n\nimport { log } from '../../../../../../utils/logging.js';\nimport type { PatchFunction, PatchReturnType } from '../../index.js';\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\nexport const hasSkubaDiveRegisterImportRegex =\n /import\\s+['\"](?:skuba-dive\\/register|\\.\\.?\\/.*?register)(?:\\.js)?['\"];?\\s*/gm;\n\nexport const hasSrcImportRegex =\n /import\\s+(?:type\\s+\\{[^}]*\\}|\\{[^}]*\\}|\\*\\s+as\\s+\\w+|\\w+(?:\\s*,\\s*\\{[^}]*\\})?)\\s+from\\s+['\"]src\\/[^'\"]*['\"]/gm;\n\nexport const replaceSrcImport = (contents: string) =>\n contents.replace(hasSrcImportRegex, (match) =>\n match.replace(/(['\"])src\\//g, '$1#src/'),\n );\n\nconst removeSkubaDiveRegisterImport = (contents: string) =>\n contents.replace(hasSkubaDiveRegisterImportRegex, '');\n\nconst replaceAllImports = (contents: string) =>\n removeSkubaDiveRegisterImport(replaceSrcImport(contents));\n\nexport const tryRewriteSrcImports: PatchFunction = async ({\n mode,\n}): Promise<PatchReturnType> => {\n const allTsFileNames = await glob(['**/*.ts', '**/*.test.ts']);\n const tsFileNames = allTsFileNames.filter(\n (file) => !file.includes('src/cli/lint/internalLints/upgrade/patches/'),\n );\n\n if (!tsFileNames.length) {\n return {\n result: 'skip',\n reason: 'no .ts or test.ts files found',\n };\n }\n\n const tsFiles = await fetchFiles(tsFileNames);\n\n const mapped = tsFiles.map(({ file, contents }) => ({\n file,\n before: contents,\n after: replaceAllImports(contents),\n }));\n\n if (mode === 'lint') {\n return {\n result: 'apply',\n };\n }\n\n await Promise.all(\n mapped.map(async ({ file, after }) => {\n await fs.promises.writeFile(file, after);\n }),\n );\n\n return { result: 'apply' };\n};\n\nexport const rewriteSrcImports: PatchFunction = async (config) => {\n try {\n return await tryRewriteSrcImports(config);\n } catch (err) {\n log.warn('Failed to rewrite src imports to #src');\n log.subtle(inspect(err));\n return { result: 'skip', reason: 'due to an error' };\n }\n};\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwB;AAExB,uBAAqB;AACrB,sBAAe;AAEf,qBAAoB;AAGpB,MAAM,aAAa,OAAO,UACxB,QAAQ;AAAA,EACN,MAAM,IAAI,OAAO,SAAS;AACxB,UAAM,WAAW,MAAM,gBAAAA,QAAG,SAAS,SAAS,MAAM,MAAM;AAExD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEK,MAAM,kCACX;AAEK,MAAM,oBACX;AAEK,MAAM,mBAAmB,CAAC,aAC/B,SAAS;AAAA,EAAQ;AAAA,EAAmB,CAAC,UACnC,MAAM,QAAQ,gBAAgB,SAAS;AACzC;AAEF,MAAM,gCAAgC,CAAC,aACrC,SAAS,QAAQ,iCAAiC,EAAE;AAEtD,MAAM,oBAAoB,CAAC,aACzB,8BAA8B,iBAAiB,QAAQ,CAAC;AAEnD,MAAM,uBAAsC,OAAO;AAAA,EACxD;AACF,MAAgC;AAC9B,QAAM,iBAAiB,UAAM,uBAAK,CAAC,WAAW,cAAc,CAAC;AAC7D,QAAM,cAAc,eAAe;AAAA,IACjC,CAAC,SAAS,CAAC,KAAK,SAAS,6CAA6C;AAAA,EACxE;AAEA,MAAI,CAAC,YAAY,QAAQ;AACvB,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,UAAU,MAAM,WAAW,WAAW;AAE5C,QAAM,SAAS,QAAQ,IAAI,CAAC,EAAE,MAAM,SAAS,OAAO;AAAA,IAClD;AAAA,IACA,QAAQ;AAAA,IACR,OAAO,kBAAkB,QAAQ;AAAA,EACnC,EAAE;AAEF,MAAI,SAAS,QAAQ;AACnB,WAAO;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,QAAQ;AAAA,IACZ,OAAO,IAAI,OAAO,EAAE,MAAM,MAAM,MAAM;AACpC,YAAM,gBAAAA,QAAG,SAAS,UAAU,MAAM,KAAK;AAAA,IACzC,CAAC;AAAA,EACH;AAEA,SAAO,EAAE,QAAQ,QAAQ;AAC3B;AAEO,MAAM,oBAAmC,OAAO,WAAW;AAChE,MAAI;AACF,WAAO,MAAM,qBAAqB,MAAM;AAAA,EAC1C,SAAS,KAAK;AACZ,uBAAI,KAAK,uCAAuC;AAChD,uBAAI,WAAO,qBAAQ,GAAG,CAAC;AACvB,WAAO,EAAE,QAAQ,QAAQ,QAAQ,kBAAkB;AAAA,EACrD;AACF;",
6
6
  "names": ["fs"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skuba",
3
- "version": "13.0.0-custom-conditions-exports-20250729050504",
3
+ "version": "13.0.0-custom-conditions-exports-20250729055507",
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",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^22.13.10",
26
- "skuba": "13.0.0-custom-conditions-exports-20250729050504"
26
+ "skuba": "13.0.0-custom-conditions-exports-20250729055507"
27
27
  },
28
28
  "packageManager": "pnpm@10.12.4",
29
29
  "engines": {
@@ -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-20250729050504"
46
+ "skuba": "13.0.0-custom-conditions-exports-20250729055507"
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.0/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;",
6
- "names": []
7
- }