skuba 13.0.0-subpath-imports-20251003044159 → 13.0.0-subpath-imports-20251003052152
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/patches/13.0.0/rewriteSrcImports.js +1 -1
- package/lib/cli/lint/internalLints/upgrade/patches/13.0.0/rewriteSrcImports.js.map +1 -1
- package/package.json +1 -1
- package/template/greeter/package.json +1 -1
- package/template/lambda-sqs-worker-cdk/package.json +1 -1
|
@@ -61,7 +61,7 @@ const hasRelativeRegisterImportRegex = /import\s+['"](\.\.?\/.*?register)(?:\.js
|
|
|
61
61
|
const hasRelativeImportRegex = /import\s+['"](\.\.?\/[^'"]*?)(?:\.js)?['"];?\s*/gm;
|
|
62
62
|
const hasSrcImportRegex = /import\s+(?:type\s+\{[^}]*\}|\{[^}]*\}|\*\s+as\s+\w+|\w+(?:\s*,\s*\{[^}]*\})?)\s+from\s+['"]src\/[^'"]*['"]/gm;
|
|
63
63
|
const hasImportRegex = /import\(\s*["']src\/[^'"]*["']\s*\)/gm;
|
|
64
|
-
const hasJestMockRegex = /jest\.mock\(\s*["']src\/[^'"]*["']
|
|
64
|
+
const hasJestMockRegex = /jest\.mock\(\s*["']src\/[^'"]*["']/gm;
|
|
65
65
|
const multiLineCommentRegex = /\/\*[\s\S]*?\*\//g;
|
|
66
66
|
const singleLineCommentRegex = /\/\/.*$/gm;
|
|
67
67
|
const whitespaceRegex = /\s/g;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/13.0.0/rewriteSrcImports.ts"],
|
|
4
|
-
"sourcesContent": ["import path from 'path';\nimport { 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)(?:\\.js)?['\"];?\\s*/gm;\n\nexport const hasRelativeRegisterImportRegex =\n /import\\s+['\"](\\.\\.?\\/.*?register)(?:\\.js)?['\"];?\\s*/gm;\n\nexport const hasRelativeImportRegex =\n /import\\s+['\"](\\.\\.?\\/[^'\"]*?)(?:\\.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 hasImportRegex = /import\\(\\s*[\"']src\\/[^'\"]*[\"']\\s*\\)/gm;\n\nexport const hasJestMockRegex = /jest\\.mock\\(\\s*[\"']src\\/[^'\"]*[\"']
|
|
4
|
+
"sourcesContent": ["import path from 'path';\nimport { 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)(?:\\.js)?['\"];?\\s*/gm;\n\nexport const hasRelativeRegisterImportRegex =\n /import\\s+['\"](\\.\\.?\\/.*?register)(?:\\.js)?['\"];?\\s*/gm;\n\nexport const hasRelativeImportRegex =\n /import\\s+['\"](\\.\\.?\\/[^'\"]*?)(?:\\.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 hasImportRegex = /import\\(\\s*[\"']src\\/[^'\"]*[\"']\\s*\\)/gm;\n\nexport const hasJestMockRegex = /jest\\.mock\\(\\s*[\"']src\\/[^'\"]*[\"']/gm;\n\nconst multiLineCommentRegex = /\\/\\*[\\s\\S]*?\\*\\//g;\n\nconst singleLineCommentRegex = /\\/\\/.*$/gm;\n\nconst whitespaceRegex = /\\s/g;\n\nconst removeSkubaDiveRegisterImport = (contents: string) =>\n contents.replace(hasSkubaDiveRegisterImportRegex, '');\n\nconst removeRelativeRegisterImport = (contents: string) =>\n contents.replace(hasRelativeRegisterImportRegex, '');\n\nconst removeSelectiveRelativeImports = (\n contents: string,\n file: string,\n deletionSet: Set<string>,\n): string =>\n contents.replace(hasRelativeImportRegex, (match, relativePath: string) => {\n if (!relativePath) {\n return match;\n }\n\n const fileDir = path.dirname(file);\n const resolvedPath = path.resolve(fileDir, relativePath);\n\n if (path.extname(relativePath)) {\n return deletionSet.has(resolvedPath) ? '' : match;\n }\n\n const possiblePaths = [`${resolvedPath}.ts`, `${resolvedPath}.js`];\n const shouldRemove = possiblePaths.some((possiblePath) =>\n deletionSet.has(possiblePath),\n );\n\n return shouldRemove ? '' : match;\n });\n\nexport const isFileEmpty = (contents: string): boolean =>\n contents\n .replace(multiLineCommentRegex, '')\n .replace(singleLineCommentRegex, '')\n .replace(whitespaceRegex, '').length === 0;\n\nexport const replaceSrcImport = (contents: string) => {\n const combinedSrcRegex = new RegExp(\n [\n hasSrcImportRegex.source,\n hasImportRegex.source,\n hasJestMockRegex.source,\n ].join('|'),\n 'gm',\n );\n\n const withReplacedSrcImports = contents.replace(combinedSrcRegex, (match) =>\n match.replace(/(['\"])src\\//g, '$1#src/'),\n );\n\n return removeSkubaDiveRegisterImport(withReplacedSrcImports);\n};\n\nexport const replaceSrcImportWithConditionalRegisterRemoval = (\n contents: string,\n shouldRemoveRelativeRegister: boolean,\n) => {\n const combinedSrcRegex = new RegExp(\n [\n hasSrcImportRegex.source,\n hasImportRegex.source,\n hasJestMockRegex.source,\n ].join('|'),\n 'gm',\n );\n\n const withReplacedSrcImports = contents.replace(combinedSrcRegex, (match) =>\n match.replace(/(['\"])src\\//g, '$1#src/'),\n );\n\n const withoutSkubaDive = removeSkubaDiveRegisterImport(\n withReplacedSrcImports,\n );\n\n return shouldRemoveRelativeRegister\n ? removeRelativeRegisterImport(withoutSkubaDive)\n : withoutSkubaDive;\n};\n\nexport const replaceSrcImportWithSelectiveRegisterRemoval = (\n contents: string,\n file: string,\n deletionSet: Set<string>,\n) => {\n const combinedSrcRegex = new RegExp(\n [\n hasSrcImportRegex.source,\n hasImportRegex.source,\n hasJestMockRegex.source,\n ].join('|'),\n 'gm',\n );\n\n const withReplacedSrcImports = contents.replace(combinedSrcRegex, (match) =>\n match.replace(/(['\"])src\\//g, '$1#src/'),\n );\n\n const withoutSkubaDive = removeSkubaDiveRegisterImport(\n withReplacedSrcImports,\n );\n\n return removeSelectiveRelativeImports(withoutSkubaDive, file, deletionSet);\n};\n\nexport const tryRewriteSrcImports: PatchFunction = async ({\n mode,\n}): Promise<PatchReturnType> => {\n const tsFileNames = await glob(['**/*.ts', '**/*.test.ts'], {\n ignore: ['**/.git', '**/node_modules'],\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 filesWithSkubaDiveRemoved = tsFiles.map(({ file, contents }) => ({\n file,\n before: contents,\n afterSkubaDiveRemoval: removeSkubaDiveRegisterImport(\n contents.replace(\n new RegExp(\n [\n hasSrcImportRegex.source,\n hasImportRegex.source,\n hasJestMockRegex.source,\n ].join('|'),\n 'gm',\n ),\n (match) => match.replace(/(['\"])src\\//g, '$1#src/'),\n ),\n ),\n }));\n\n const filesToDelete = new Set(\n filesWithSkubaDiveRemoved\n .filter(({ afterSkubaDiveRemoval }) => isFileEmpty(afterSkubaDiveRemoval))\n .map(({ file }) => path.resolve(file)),\n );\n\n const mapped = tsFiles.map(({ file, contents }) => ({\n file,\n before: contents,\n after: replaceSrcImportWithSelectiveRegisterRemoval(\n contents,\n file,\n filesToDelete,\n ),\n }));\n\n if (mode === 'lint') {\n return {\n result: 'apply',\n };\n }\n\n await Promise.all(\n mapped.map(async ({ file, before, after }) => {\n if (isFileEmpty(after)) {\n await fs.promises.unlink(file);\n return;\n }\n\n if (before !== after) {\n await fs.promises.writeFile(file, after);\n }\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": "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",
|
|
6
6
|
"names": ["fs", "path"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skuba",
|
|
3
|
-
"version": "13.0.0-subpath-imports-
|
|
3
|
+
"version": "13.0.0-subpath-imports-20251003052152",
|
|
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",
|