skuba 12.1.0-async-checks-20250803090938 → 12.1.0-auto-map-experimental-vm-modules-20250808074558
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 +1 -2
- package/config/tsconfig.json +3 -2
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js +1 -1
- package/lib/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.js.map +1 -1
- package/lib/cli/test/index.d.ts +1 -1
- package/lib/cli/test/index.js +25 -4
- package/lib/cli/test/index.js.map +2 -2
- package/package.json +10 -10
- package/template/express-rest-api/package.json +3 -3
- package/template/greeter/package.json +1 -1
- package/template/koa-rest-api/package.json +4 -4
- package/template/koa-rest-api/src/framework/server.test.ts +0 -1
- package/template/lambda-sqs-worker-cdk/package.json +2 -2
package/README.md
CHANGED
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
- Write in [TypeScript]
|
|
13
13
|
- Enforce coding standards with [ESLint] and [Prettier]
|
|
14
14
|
- Test with [Jest]
|
|
15
|
-
- Deploy with [Gantry]
|
|
15
|
+
- Deploy with [Gantry] or the [AWS CDK]
|
|
16
16
|
|
|
17
17
|
[aws cdk]: https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-typescript.html
|
|
18
18
|
[gantry]: https://backstage.myseek.xyz/docs/default/component/gantry/
|
|
19
|
-
[serverless]: https://serverless.com/
|
|
20
19
|
|
|
21
20
|
It provides you with:
|
|
22
21
|
|
package/config/tsconfig.json
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
"incremental": true,
|
|
4
4
|
"isolatedModules": true,
|
|
5
5
|
"moduleResolution": "node",
|
|
6
|
-
"
|
|
6
|
+
"noUncheckedSideEffectImports": true,
|
|
7
7
|
"noUnusedLocals": false,
|
|
8
|
-
"noUnusedParameters": false
|
|
8
|
+
"noUnusedParameters": false,
|
|
9
|
+
"resolveJsonModule": true
|
|
9
10
|
},
|
|
10
11
|
"extends": "tsconfig-seek"
|
|
11
12
|
}
|
|
@@ -61,7 +61,7 @@ const tryReadFilesSequentially = async (filepaths) => {
|
|
|
61
61
|
}
|
|
62
62
|
return;
|
|
63
63
|
};
|
|
64
|
-
const IMPORT_REGEX = /import\s+(?:\{\s*(\w*[Ll]ogger)(?:\s+as\s+(\w*[Ll]ogger))?\s*\}|(\w*[Ll]ogger))\s+from\s+['"][^'"]+\/(?:logger|logging)(?:\.
|
|
64
|
+
const IMPORT_REGEX = /import\s+(?:\{\s*(\w*[Ll]ogger)(?:\s+as\s+(\w*[Ll]ogger))?\s*\}|(\w*[Ll]ogger))\s+from\s+['"][^'"]+\/(?:logger|logging)(?:\/index)?(?:\.[jt]s)?['"]/u;
|
|
65
65
|
const NAMED_EXPORT_REGEX = /export\s+(?:const\s+|\{[^{}]*)\b(\w*[Ll]ogger)\b/u;
|
|
66
66
|
const findLogger = async ({
|
|
67
67
|
contents,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/12.0.2/unhandledRejections.ts"],
|
|
4
|
-
"sourcesContent": ["import path from 'path';\nimport { inspect } from 'util';\n\nimport { glob } from 'fast-glob';\nimport fs from 'fs-extra';\n\nimport { isErrorWithCode } from '../../../../../../utils/error.js';\nimport { log } from '../../../../../../utils/logging.js';\nimport { formatPrettier } from '../../../../../configure/processing/prettier.js';\nimport type { PatchFunction, PatchReturnType } from '../../index.js';\n\nconst addListener = (identifier: string) =>\n `\n// Report unhandled rejections instead of crashing the process\n// Make sure to monitor these reports and alert as appropriate\nprocess.on('unhandledRejection', (err) =>\n ${identifier}.error(err, 'Unhandled promise rejection'),\n);\n`.trim();\n\nconst tryReadFilesSequentially = async (\n filepaths: string[],\n): Promise<{ contents: string; filepath: string } | undefined> => {\n for (const filepath of filepaths) {\n try {\n const contents = await fs.promises.readFile(filepath, 'utf8');\n\n return { contents, filepath };\n } catch (err) {\n if (isErrorWithCode(err, 'ENOENT')) {\n continue;\n }\n\n throw err;\n }\n }\n\n return;\n};\n\nexport const IMPORT_REGEX =\n /import\\s+(?:\\{\\s*(\\w*[Ll]ogger)(?:\\s+as\\s+(\\w*[Ll]ogger))?\\s*\\}|(\\w*[Ll]ogger))\\s+from\\s+['\"][^'\"]+\\/(?:logger|logging)(?:\\.
|
|
4
|
+
"sourcesContent": ["import path from 'path';\nimport { inspect } from 'util';\n\nimport { glob } from 'fast-glob';\nimport fs from 'fs-extra';\n\nimport { isErrorWithCode } from '../../../../../../utils/error.js';\nimport { log } from '../../../../../../utils/logging.js';\nimport { formatPrettier } from '../../../../../configure/processing/prettier.js';\nimport type { PatchFunction, PatchReturnType } from '../../index.js';\n\nconst addListener = (identifier: string) =>\n `\n// Report unhandled rejections instead of crashing the process\n// Make sure to monitor these reports and alert as appropriate\nprocess.on('unhandledRejection', (err) =>\n ${identifier}.error(err, 'Unhandled promise rejection'),\n);\n`.trim();\n\nconst tryReadFilesSequentially = async (\n filepaths: string[],\n): Promise<{ contents: string; filepath: string } | undefined> => {\n for (const filepath of filepaths) {\n try {\n const contents = await fs.promises.readFile(filepath, 'utf8');\n\n return { contents, filepath };\n } catch (err) {\n if (isErrorWithCode(err, 'ENOENT')) {\n continue;\n }\n\n throw err;\n }\n }\n\n return;\n};\n\nexport const IMPORT_REGEX =\n /import\\s+(?:\\{\\s*(\\w*[Ll]ogger)(?:\\s+as\\s+(\\w*[Ll]ogger))?\\s*\\}|(\\w*[Ll]ogger))\\s+from\\s+['\"][^'\"]+\\/(?:logger|logging)(?:\\/index)?(?:\\.[jt]s)?['\"]/u;\n\nexport const NAMED_EXPORT_REGEX =\n /export\\s+(?:const\\s+|\\{[^{}]*)\\b(\\w*[Ll]ogger)\\b/u;\n\nconst findLogger = async ({\n contents,\n root,\n}: {\n contents: string;\n root: string;\n}): Promise<{ identifier: string; import?: string }> => {\n const importResult = IMPORT_REGEX.exec(contents);\n\n {\n const identifier =\n importResult?.[3] ?? importResult?.[2] ?? importResult?.[1];\n\n if (identifier) {\n return { identifier };\n }\n }\n\n const loggerPaths = await glob('**/{logger,logging}.ts', {\n cwd: root,\n ignore: ['**/.git', '**/node_modules'],\n });\n\n const loggingModule = await tryReadFilesSequentially(loggerPaths);\n\n if (!loggingModule) {\n return { identifier: 'console' };\n }\n\n const parsedPath = path.parse(path.relative(root, loggingModule.filepath));\n\n const importPath = path.join(parsedPath.dir, parsedPath.name);\n\n const namedExportResult = NAMED_EXPORT_REGEX.exec(loggingModule.contents);\n\n if (namedExportResult?.[1]) {\n const identifier = namedExportResult[1];\n\n return {\n identifier: namedExportResult[1],\n import: `import { ${identifier} } from '${importPath}';`,\n };\n }\n\n if (loggingModule.contents.includes('export default')) {\n return {\n identifier: 'logger',\n import: `import logger from '${importPath}';`,\n };\n }\n\n return { identifier: 'console' };\n};\n\nconst patchUnhandledRejections = async (\n mode: 'format' | 'lint',\n): Promise<PatchReturnType> => {\n const filepaths = await glob('**/src/listen.ts', {\n ignore: ['**/.git', '**/node_modules'],\n });\n\n let hasPatched = false;\n\n for (const filepath of filepaths) {\n const contents = await fs.promises.readFile(filepath, 'utf8');\n\n if (contents.includes('unhandledRejection')) {\n log.subtle(\n 'Skipping entry point that appears to have an unhandled rejection listener:',\n filepath,\n );\n continue;\n }\n\n const root = path.dirname(path.dirname(filepath));\n\n const logger = await findLogger({ contents, root });\n\n log.subtle(\n 'Logging unhandled rejections to',\n logger.identifier,\n 'in file:',\n filepath,\n );\n\n const patched = [\n contents,\n\n ...[logger.import ? [logger.import] : []],\n\n addListener(logger.identifier),\n ].join('\\n\\n');\n\n const newContents = await formatPrettier(patched, { parser: 'typescript' });\n\n if (mode === 'lint') {\n return { result: 'apply' };\n }\n\n await fs.promises.writeFile(filepath, newContents);\n\n hasPatched = true;\n }\n\n if (hasPatched) {\n return { result: 'apply' };\n }\n\n return {\n result: 'skip',\n reason: 'no applicable src/listen.ts entry points found',\n };\n};\n\nexport const tryPatchUnhandledRejections: PatchFunction = async ({\n mode,\n}): Promise<PatchReturnType> => {\n try {\n return await patchUnhandledRejections(mode);\n } catch (err) {\n log.warn('Failed to patch listeners for unhandled promise rejections');\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/lib/cli/test/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const test: () => Promise<
|
|
1
|
+
export declare const test: () => Promise<import("execa").ExecaReturnValue<string>>;
|
package/lib/cli/test/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,18 +17,37 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
var test_exports = {};
|
|
20
30
|
__export(test_exports, {
|
|
21
31
|
test: () => test
|
|
22
32
|
});
|
|
23
33
|
module.exports = __toCommonJS(test_exports);
|
|
24
|
-
var
|
|
34
|
+
var import_exec = require("../../utils/exec.js");
|
|
25
35
|
const test = async () => {
|
|
26
|
-
process.env.NODE_ENV ??= "test";
|
|
27
|
-
process.env.TS_JEST_LOG ??= "stdout:error";
|
|
28
36
|
const argv = process.argv.slice(2);
|
|
29
|
-
|
|
37
|
+
const nodeOptions = process.env.NODE_OPTIONS || "";
|
|
38
|
+
const execWithEnv = (0, import_exec.createExec)({
|
|
39
|
+
env: {
|
|
40
|
+
// This is usually set in `jest-cli`'s binary wrapper
|
|
41
|
+
NODE_ENV: process.env.NODE_ENV ?? "test",
|
|
42
|
+
// ts-jest is logging a warning about `isolatedModules`.
|
|
43
|
+
// This is a workaround until we can remove the `isolatedModules` option.
|
|
44
|
+
// https://github.com/seek-oss/skuba/issues/1841
|
|
45
|
+
TS_JEST_LOG: process.env.TS_JEST_LOG ?? "stdout:error",
|
|
46
|
+
// Add experimental VM modules support if not already present
|
|
47
|
+
NODE_OPTIONS: !nodeOptions.includes("--experimental-vm-modules") ? `${nodeOptions} --experimental-vm-modules` : nodeOptions
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return execWithEnv(require.resolve("jest/bin/jest"), ...argv);
|
|
30
51
|
};
|
|
31
52
|
// Annotate the CommonJS export names for ESM import in node:
|
|
32
53
|
0 && (module.exports = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cli/test/index.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { createExec } from '../../utils/exec.js';\n\nexport const test = async () => {\n const argv = process.argv.slice(2);\n\n // Prepare environment variables for Jest\n const nodeOptions = process.env.NODE_OPTIONS || '';\n\n const execWithEnv = createExec({\n env: {\n // This is usually set in `jest-cli`'s binary wrapper\n NODE_ENV: process.env.NODE_ENV ?? 'test',\n\n // ts-jest is logging a warning about `isolatedModules`.\n // This is a workaround until we can remove the `isolatedModules` option.\n // https://github.com/seek-oss/skuba/issues/1841\n TS_JEST_LOG: process.env.TS_JEST_LOG ?? 'stdout:error',\n\n // Add experimental VM modules support if not already present\n NODE_OPTIONS: !nodeOptions.includes('--experimental-vm-modules')\n ? `${nodeOptions} --experimental-vm-modules`\n : nodeOptions,\n },\n });\n\n // Run Jest in a child process with proper environment\n return execWithEnv(require.resolve('jest/bin/jest'), ...argv);\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA2B;AAEpB,MAAM,OAAO,YAAY;AAC9B,QAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;AAGjC,QAAM,cAAc,QAAQ,IAAI,gBAAgB;AAEhD,QAAM,kBAAc,wBAAW;AAAA,IAC7B,KAAK;AAAA;AAAA,MAEH,UAAU,QAAQ,IAAI,YAAY;AAAA;AAAA;AAAA;AAAA,MAKlC,aAAa,QAAQ,IAAI,eAAe;AAAA;AAAA,MAGxC,cAAc,CAAC,YAAY,SAAS,2BAA2B,IAC3D,GAAG,WAAW,+BACd;AAAA,IACN;AAAA,EACF,CAAC;AAGD,SAAO,YAAY,gBAAgB,eAAe,GAAG,GAAG,IAAI;AAC9D;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skuba",
|
|
3
|
-
"version": "12.1.0-
|
|
3
|
+
"version": "12.1.0-auto-map-experimental-vm-modules-20250808074558",
|
|
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",
|
|
@@ -95,15 +95,15 @@
|
|
|
95
95
|
"tsconfig-paths": "^4.0.0",
|
|
96
96
|
"tsconfig-seek": "2.0.0",
|
|
97
97
|
"tsx": "^4.16.2",
|
|
98
|
-
"typescript": "~5.
|
|
98
|
+
"typescript": "~5.9.0",
|
|
99
99
|
"zod": "^4.0.0",
|
|
100
|
-
"eslint-config-skuba": "7.1.0-
|
|
100
|
+
"eslint-config-skuba": "7.1.0-auto-map-experimental-vm-modules-20250808074558"
|
|
101
101
|
},
|
|
102
102
|
"devDependencies": {
|
|
103
103
|
"@changesets/cli": "2.29.5",
|
|
104
104
|
"@changesets/get-github-info": "0.6.0",
|
|
105
|
-
"@jest/reporters": "30.0.
|
|
106
|
-
"@jest/test-result": "30.0.
|
|
105
|
+
"@jest/reporters": "30.0.5",
|
|
106
|
+
"@jest/test-result": "30.0.5",
|
|
107
107
|
"@types/ejs": "3.1.5",
|
|
108
108
|
"@types/express": "5.0.3",
|
|
109
109
|
"@types/fs-extra": "11.0.4",
|
|
@@ -113,20 +113,20 @@
|
|
|
113
113
|
"@types/module-alias": "2.0.4",
|
|
114
114
|
"@types/npm-registry-fetch": "8.0.8",
|
|
115
115
|
"@types/npm-which": "3.0.4",
|
|
116
|
-
"@types/picomatch": "4.0.
|
|
116
|
+
"@types/picomatch": "4.0.2",
|
|
117
117
|
"@types/semver": "7.7.0",
|
|
118
118
|
"@types/supertest": "6.0.3",
|
|
119
119
|
"enhanced-resolve": "5.18.2",
|
|
120
120
|
"express": "5.1.0",
|
|
121
121
|
"fastify": "5.4.0",
|
|
122
|
-
"jest-diff": "30.0.
|
|
122
|
+
"jest-diff": "30.0.5",
|
|
123
123
|
"jsonfile": "6.1.0",
|
|
124
124
|
"koa": "3.0.1",
|
|
125
|
-
"memfs": "4.
|
|
125
|
+
"memfs": "4.36.0",
|
|
126
126
|
"remark-cli": "12.0.1",
|
|
127
127
|
"remark-preset-lint-recommended": "7.0.1",
|
|
128
128
|
"semver": "7.7.2",
|
|
129
|
-
"supertest": "7.1.
|
|
129
|
+
"supertest": "7.1.4",
|
|
130
130
|
"type-fest": "2.19.0"
|
|
131
131
|
},
|
|
132
132
|
"peerDependencies": {
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"lint:packages": "pnpm --filter '!./template/**' lint",
|
|
163
163
|
"release": "pnpm --silent build && changeset publish",
|
|
164
164
|
"skuba": "pnpm --silent build && pnpm --silent skuba:exec",
|
|
165
|
-
"skuba:exec": "node --
|
|
165
|
+
"skuba:exec": "node --no-warnings=ExperimentalWarning lib/skuba",
|
|
166
166
|
"stage": "changeset version && node ./.changeset/inject.js && pnpm format",
|
|
167
167
|
"test": "pnpm --silent skuba test --selectProjects unit",
|
|
168
168
|
"test:ci": "pnpm --silent skuba test --runInBand",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"test:watch": "skuba test --watch"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@seek/logger": "
|
|
16
|
+
"@seek/logger": "master",
|
|
17
17
|
"express": "^5.0.0",
|
|
18
|
-
"hot-shots": "^
|
|
19
|
-
"seek-datadog-custom-metrics": "^
|
|
18
|
+
"hot-shots": "^11.0.0",
|
|
19
|
+
"seek-datadog-custom-metrics": "^5.0.0",
|
|
20
20
|
"skuba-dive": "^2.0.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@koa/bodyparser": "^6.0.0",
|
|
17
|
-
"@koa/router": "^
|
|
17
|
+
"@koa/router": "^14.0.0",
|
|
18
18
|
"@opentelemetry/api": "^1.9.0",
|
|
19
19
|
"@opentelemetry/core": "^2.0.0",
|
|
20
20
|
"@opentelemetry/exporter-trace-otlp-grpc": "^0.203.0",
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
"@opentelemetry/instrumentation-http": "^0.203.0",
|
|
23
23
|
"@opentelemetry/propagator-b3": "^2.0.0",
|
|
24
24
|
"@opentelemetry/sdk-node": "^0.203.0",
|
|
25
|
-
"@seek/logger": "
|
|
26
|
-
"hot-shots": "^
|
|
25
|
+
"@seek/logger": "master",
|
|
26
|
+
"hot-shots": "^11.0.0",
|
|
27
27
|
"koa": "^3.0.1",
|
|
28
28
|
"koa-compose": "^4.1.0",
|
|
29
|
-
"seek-datadog-custom-metrics": "^
|
|
29
|
+
"seek-datadog-custom-metrics": "^5.0.0",
|
|
30
30
|
"seek-koala": "^7.1.0",
|
|
31
31
|
"skuba-dive": "^2.0.0",
|
|
32
32
|
"zod": "^4.0.0"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"@aws-sdk/client-lambda": "^3.363.0",
|
|
19
19
|
"@aws-sdk/client-sns": "^3.363.0",
|
|
20
20
|
"@seek/aws-codedeploy-hooks": "^2.0.0",
|
|
21
|
-
"@seek/logger": "
|
|
21
|
+
"@seek/logger": "master",
|
|
22
22
|
"datadog-lambda-js": "^12.0.0",
|
|
23
23
|
"dd-trace": "^5.0.0",
|
|
24
24
|
"skuba-dive": "^2.0.0",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"constructs": "^10.0.17",
|
|
38
38
|
"datadog-cdk-constructs-v2": "^2.0.0",
|
|
39
39
|
"pino-pretty": "^13.0.0",
|
|
40
|
-
"skuba": "12.1.0-
|
|
40
|
+
"skuba": "12.1.0-auto-map-experimental-vm-modules-20250808074558"
|
|
41
41
|
},
|
|
42
42
|
"packageManager": "pnpm@10.14.0",
|
|
43
43
|
"engines": {
|