skuba 7.3.0 → 7.4.0-horrible-hacks-20240206023615
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 +3 -3
- package/jest/transform.test.ts +3 -1
- package/lib/api/jest/index.d.ts +1 -1
- package/lib/api/jest/index.js.map +2 -2
- package/lib/cli/adapter/prettier.d.ts +1 -1
- package/lib/cli/adapter/prettier.js +11 -10
- package/lib/cli/adapter/prettier.js.map +2 -2
- package/lib/cli/build/index.js +0 -2
- package/lib/cli/build/index.js.map +2 -2
- package/lib/cli/buildPackage.js +0 -2
- package/lib/cli/buildPackage.js.map +2 -2
- package/lib/cli/configure/analyseConfiguration.d.ts +2 -0
- package/lib/cli/configure/analyseConfiguration.js.map +2 -2
- package/lib/cli/configure/getEntryPoint.js +1 -1
- package/lib/cli/configure/getEntryPoint.js.map +2 -2
- package/lib/cli/configure/getProjectType.js +1 -1
- package/lib/cli/configure/getProjectType.js.map +2 -2
- package/lib/cli/configure/index.js +11 -8
- package/lib/cli/configure/index.js.map +2 -2
- package/lib/cli/configure/modules/index.js +0 -2
- package/lib/cli/configure/modules/index.js.map +2 -2
- package/lib/cli/configure/modules/package.d.ts +1 -1
- package/lib/cli/configure/modules/package.js +2 -1
- package/lib/cli/configure/modules/package.js.map +2 -2
- package/lib/cli/configure/patchRenovateConfig.d.ts +2 -1
- package/lib/cli/configure/patchRenovateConfig.js +23 -10
- package/lib/cli/configure/patchRenovateConfig.js.map +2 -2
- package/lib/cli/configure/types.d.ts +2 -0
- package/lib/cli/configure/types.js.map +1 -1
- package/lib/cli/configure/upgrade/index.d.ts +15 -0
- package/lib/cli/configure/upgrade/index.js +130 -0
- package/lib/cli/configure/upgrade/index.js.map +7 -0
- package/lib/cli/configure/{addEmptyExports.d.ts → upgrade/patches/7.3.1/addEmptyExports.d.ts} +2 -2
- package/lib/cli/configure/{addEmptyExports.js → upgrade/patches/7.3.1/addEmptyExports.js} +15 -11
- package/lib/cli/configure/upgrade/patches/7.3.1/addEmptyExports.js.map +7 -0
- package/lib/cli/configure/upgrade/patches/7.3.1/index.d.ts +2 -0
- package/lib/cli/configure/upgrade/patches/7.3.1/index.js +55 -0
- package/lib/cli/configure/upgrade/patches/7.3.1/index.js.map +7 -0
- package/lib/cli/configure/upgrade/patches/7.3.1/moveNpmrcOutOfGitignoreManagedSection.d.ts +2 -0
- package/lib/cli/configure/upgrade/patches/7.3.1/moveNpmrcOutOfGitignoreManagedSection.js +94 -0
- package/lib/cli/configure/upgrade/patches/7.3.1/moveNpmrcOutOfGitignoreManagedSection.js.map +7 -0
- package/lib/cli/configure/upgrade/patches/7.3.1/patchDockerfile.d.ts +2 -0
- package/lib/cli/configure/{patchDockerfile.js → upgrade/patches/7.3.1/patchDockerfile.js} +18 -12
- package/lib/cli/configure/upgrade/patches/7.3.1/patchDockerfile.js.map +7 -0
- package/lib/cli/configure/upgrade/patches/7.3.1/patchServerListener.d.ts +2 -0
- package/lib/cli/configure/{patchServerListener.js → upgrade/patches/7.3.1/patchServerListener.js} +18 -14
- package/lib/cli/configure/upgrade/patches/7.3.1/patchServerListener.js.map +7 -0
- package/lib/cli/format.js +7 -14
- package/lib/cli/format.js.map +2 -2
- package/lib/cli/init/getConfig.d.ts +4 -2
- package/lib/cli/init/getConfig.js +53 -26
- package/lib/cli/init/getConfig.js.map +2 -2
- package/lib/cli/init/git.d.ts +2 -1
- package/lib/cli/init/git.js +2 -9
- package/lib/cli/init/git.js.map +2 -2
- package/lib/cli/init/index.d.ts +1 -1
- package/lib/cli/init/index.js +19 -9
- package/lib/cli/init/index.js.map +2 -2
- package/lib/cli/init/prompts.d.ts +26 -3
- package/lib/cli/init/prompts.js +10 -2
- package/lib/cli/init/prompts.js.map +2 -2
- package/lib/cli/init/types.d.ts +21 -0
- package/lib/cli/init/types.js +5 -1
- package/lib/cli/init/types.js.map +2 -2
- package/lib/cli/init/writePackageJson.d.ts +6 -0
- package/lib/cli/init/writePackageJson.js.map +2 -2
- package/lib/cli/lint/annotate/buildkite/index.d.ts +2 -1
- package/lib/cli/lint/annotate/buildkite/index.js +5 -3
- package/lib/cli/lint/annotate/buildkite/index.js.map +2 -2
- package/lib/cli/lint/annotate/buildkite/internal.d.ts +2 -0
- package/lib/cli/lint/annotate/buildkite/internal.js +45 -0
- package/lib/cli/lint/annotate/buildkite/internal.js.map +7 -0
- package/lib/cli/lint/annotate/github/index.d.ts +2 -1
- package/lib/cli/lint/annotate/github/index.js +4 -2
- package/lib/cli/lint/annotate/github/index.js.map +2 -2
- package/lib/cli/lint/annotate/github/internal.d.ts +3 -0
- package/lib/cli/lint/annotate/github/internal.js +36 -0
- package/lib/cli/lint/annotate/github/internal.js.map +7 -0
- package/lib/cli/lint/annotate/index.d.ts +4 -3
- package/lib/cli/lint/annotate/index.js +9 -3
- package/lib/cli/lint/annotate/index.js.map +2 -2
- package/lib/cli/lint/autofix.d.ts +3 -1
- package/lib/cli/lint/autofix.js +36 -59
- package/lib/cli/lint/autofix.js.map +3 -3
- package/lib/cli/lint/external.d.ts +6 -1
- package/lib/cli/lint/external.js +6 -29
- package/lib/cli/lint/external.js.map +2 -2
- package/lib/cli/lint/index.d.ts +2 -1
- package/lib/cli/lint/index.js +46 -14
- package/lib/cli/lint/index.js.map +2 -2
- package/lib/cli/lint/internal.d.ts +12 -1
- package/lib/cli/lint/internal.js +55 -19
- package/lib/cli/lint/internal.js.map +3 -3
- package/lib/cli/lint/internalLints/deleteFiles.d.ts +3 -0
- package/lib/cli/lint/internalLints/deleteFiles.js +102 -0
- package/lib/cli/lint/internalLints/deleteFiles.js.map +7 -0
- package/lib/cli/lint/internalLints/noSkubaTemplateJs.d.ts +3 -0
- package/lib/cli/lint/internalLints/noSkubaTemplateJs.js +75 -0
- package/lib/cli/lint/internalLints/noSkubaTemplateJs.js.map +7 -0
- package/lib/cli/lint/internalLints/refreshConfigFiles.d.ts +11 -0
- package/lib/cli/lint/internalLints/refreshConfigFiles.js +147 -0
- package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +7 -0
- package/lib/cli/test/index.js +0 -2
- package/lib/cli/test/index.js.map +2 -2
- package/lib/skuba.d.ts +1 -1
- package/lib/skuba.js.map +1 -1
- package/lib/utils/exec.d.ts +2 -1
- package/lib/utils/exec.js +1 -0
- package/lib/utils/exec.js.map +2 -2
- package/lib/utils/logging.d.ts +2 -0
- package/lib/utils/logging.js +1 -0
- package/lib/utils/logging.js.map +2 -2
- package/lib/utils/logo.js +6 -10
- package/lib/utils/logo.js.map +3 -3
- package/lib/utils/manifest.d.ts +1 -1
- package/lib/utils/manifest.js +1 -1
- package/lib/utils/manifest.js.map +2 -2
- package/lib/utils/npmrc.d.ts +1 -0
- package/lib/utils/npmrc.js +29 -0
- package/lib/utils/npmrc.js.map +7 -0
- package/lib/utils/packageManager.d.ts +24 -0
- package/lib/utils/packageManager.js +97 -0
- package/lib/utils/packageManager.js.map +7 -0
- package/lib/utils/template.d.ts +8 -5
- package/lib/utils/template.js +3 -1
- package/lib/utils/template.js.map +2 -2
- package/lib/utils/worker.d.ts +1 -0
- package/lib/wrapper/http.d.ts +1 -0
- package/package.json +47 -44
- package/template/base/_.dockerignore +0 -1
- package/template/base/_.eslintignore +1 -0
- package/template/base/_.gitignore +1 -1
- package/template/base/_.npmrc +8 -0
- package/template/express-rest-api/.buildkite/pipeline.yml +13 -10
- package/template/express-rest-api/.gantry/dev.yml +3 -0
- package/template/express-rest-api/.nvmrc +1 -1
- package/template/express-rest-api/Dockerfile +6 -12
- package/template/express-rest-api/Dockerfile.dev-deps +8 -7
- package/template/express-rest-api/README.md +6 -6
- package/template/express-rest-api/docker-compose.yml +0 -10
- package/template/express-rest-api/gantry.apply.yml +5 -0
- package/template/express-rest-api/gantry.build.yml +1 -2
- package/template/express-rest-api/package.json +4 -4
- package/template/express-rest-api/skuba.template.js +1 -0
- package/template/greeter/.buildkite/pipeline.yml +12 -9
- package/template/greeter/.nvmrc +1 -1
- package/template/greeter/Dockerfile +8 -7
- package/template/greeter/README.md +6 -6
- package/template/greeter/docker-compose.yml +0 -10
- package/template/greeter/package.json +3 -3
- package/template/greeter/skuba.template.js +1 -0
- package/template/koa-rest-api/.buildkite/pipeline.yml +13 -10
- package/template/koa-rest-api/.gantry/dev.yml +3 -0
- package/template/koa-rest-api/.nvmrc +1 -1
- package/template/koa-rest-api/Dockerfile +6 -12
- package/template/koa-rest-api/Dockerfile.dev-deps +8 -7
- package/template/koa-rest-api/README.md +6 -6
- package/template/koa-rest-api/docker-compose.yml +0 -10
- package/template/koa-rest-api/gantry.apply.yml +5 -0
- package/template/koa-rest-api/gantry.build.yml +1 -2
- package/template/koa-rest-api/package.json +10 -8
- package/template/koa-rest-api/skuba.template.js +1 -0
- package/template/koa-rest-api/src/framework/validation.test.ts +48 -15
- package/template/koa-rest-api/src/framework/validation.ts +31 -8
- package/template/koa-rest-api/src/testing/types.ts +16 -4
- package/template/lambda-sqs-worker/.buildkite/pipeline.yml +21 -15
- package/template/lambda-sqs-worker/.nvmrc +1 -1
- package/template/lambda-sqs-worker/Dockerfile +8 -8
- package/template/lambda-sqs-worker/README.md +8 -8
- package/template/lambda-sqs-worker/_.npmrc +12 -0
- package/template/lambda-sqs-worker/docker-compose.yml +0 -15
- package/template/lambda-sqs-worker/package.json +6 -7
- package/template/lambda-sqs-worker/serverless.yml +5 -2
- package/template/lambda-sqs-worker/skuba.template.js +1 -0
- package/template/lambda-sqs-worker/src/hooks.ts +1 -2
- package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +42 -18
- package/template/lambda-sqs-worker-cdk/.nvmrc +1 -1
- package/template/lambda-sqs-worker-cdk/Dockerfile +11 -9
- package/template/lambda-sqs-worker-cdk/cdk.json +12 -6
- package/template/lambda-sqs-worker-cdk/docker-compose.yml +0 -15
- package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +1590 -228
- package/template/lambda-sqs-worker-cdk/infra/appStack.test.ts +23 -3
- package/template/lambda-sqs-worker-cdk/infra/appStack.ts +128 -15
- package/template/lambda-sqs-worker-cdk/package.json +9 -7
- package/template/lambda-sqs-worker-cdk/shared/context-types.ts +1 -0
- package/template/lambda-sqs-worker-cdk/skuba.template.js +1 -0
- package/template/lambda-sqs-worker-cdk/src/app.ts +14 -1
- package/template/lambda-sqs-worker-cdk/src/postHook.ts +154 -0
- package/template/lambda-sqs-worker-cdk/src/preHook.ts +95 -0
- package/template/oss-npm-package/.github/workflows/release.yml +10 -7
- package/template/oss-npm-package/.github/workflows/validate.yml +10 -7
- package/template/oss-npm-package/.nvmrc +1 -1
- package/template/oss-npm-package/.releaserc +16 -0
- package/template/oss-npm-package/README.md +17 -17
- package/template/oss-npm-package/_package.json +3 -2
- package/template/oss-npm-package/skuba.template.js +1 -0
- package/template/private-npm-package/.nvmrc +1 -1
- package/template/private-npm-package/.releaserc +16 -0
- package/template/private-npm-package/README.md +16 -16
- package/template/private-npm-package/_package.json +3 -3
- package/template/private-npm-package/skuba.template.js +1 -0
- package/lib/cli/configure/addEmptyExports.js.map +0 -7
- package/lib/cli/configure/modules/tsconfig.d.ts +0 -2
- package/lib/cli/configure/modules/tsconfig.js +0 -87
- package/lib/cli/configure/modules/tsconfig.js.map +0 -7
- package/lib/cli/configure/patchDockerfile.d.ts +0 -1
- package/lib/cli/configure/patchDockerfile.js.map +0 -7
- package/lib/cli/configure/patchServerListener.d.ts +0 -3
- package/lib/cli/configure/patchServerListener.js.map +0 -7
- package/lib/cli/configure/refreshIgnoreFiles.d.ts +0 -3
- package/lib/cli/configure/refreshIgnoreFiles.js +0 -78
- package/lib/cli/configure/refreshIgnoreFiles.js.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/manifest.ts"],
|
|
4
|
-
"sourcesContent": ["import readPkgUp, { type NormalizedPackageJson } from 'read-pkg-up';\nimport { z } from 'zod';\n\nimport { hasProp } from './validation';\n\nexport type ProjectType = z.infer<typeof projectTypeSchema>;\n\nexport const projectTypeSchema = z.union([\n z.literal('application'),\n z.literal('package'),\n]);\n\nexport const PROJECT_TYPES = ['application', 'package'] as const;\n\nconst DEFAULT_ENTRY_POINT = 'src/app.ts';\n\nlet skubaManifest: NormalizedPackageJson | undefined;\n\nexport const getSkubaManifest = async (): Promise<NormalizedPackageJson> => {\n if (skubaManifest !== undefined) {\n return skubaManifest;\n }\n\n const result = await readPkgUp({ cwd: __dirname });\n\n if (result === undefined) {\n throw Error('skuba could not find its own manifest');\n }\n\n return (skubaManifest = result.packageJson);\n};\n\nexport const getConsumerManifest = () => readPkgUp();\n\nexport const getPropFromConsumerManifest = async <\n T extends string,\n V = unknown,\n>(\n prop: T,\n): Promise<V | undefined> => {\n const result = await getConsumerManifest();\n\n return result !== undefined && hasProp<T, V>(result.packageJson.skuba, prop)\n ? result.packageJson.skuba[prop]\n : undefined;\n};\n\nexport const getStringPropFromConsumerManifest = async <T extends string>(\n prop: T,\n): Promise<string | undefined> => {\n const result = await getPropFromConsumerManifest(prop);\n\n return typeof result === 'string' ? result : undefined;\n};\n\nexport const getEntryPointFromManifest = async (): Promise<string> => {\n const entryPoint = await getStringPropFromConsumerManifest('entryPoint');\n\n return entryPoint ?? DEFAULT_ENTRY_POINT;\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAsD;AACtD,iBAAkB;AAElB,wBAAwB;AAIjB,MAAM,oBAAoB,aAAE,MAAM;AAAA,EACvC,aAAE,QAAQ,aAAa;AAAA,EACvB,aAAE,QAAQ,SAAS;AACrB,CAAC;AAEM,MAAM,gBAAgB,CAAC,eAAe,SAAS;AAEtD,MAAM,sBAAsB;AAE5B,IAAI;AAEG,MAAM,mBAAmB,YAA4C;AAC1E,MAAI,kBAAkB,QAAW;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,UAAM,mBAAAA,SAAU,EAAE,KAAK,UAAU,CAAC;AAEjD,MAAI,WAAW,QAAW;AACxB,UAAM,MAAM,uCAAuC;AAAA,EACrD;AAEA,SAAQ,gBAAgB,OAAO;AACjC;AAEO,MAAM,sBAAsB,
|
|
4
|
+
"sourcesContent": ["import readPkgUp, { type NormalizedPackageJson } from 'read-pkg-up';\nimport { z } from 'zod';\n\nimport { hasProp } from './validation';\n\nexport type ProjectType = z.infer<typeof projectTypeSchema>;\n\nexport const projectTypeSchema = z.union([\n z.literal('application'),\n z.literal('package'),\n]);\n\nexport const PROJECT_TYPES = ['application', 'package'] as const;\n\nconst DEFAULT_ENTRY_POINT = 'src/app.ts';\n\nlet skubaManifest: NormalizedPackageJson | undefined;\n\nexport const getSkubaManifest = async (): Promise<NormalizedPackageJson> => {\n if (skubaManifest !== undefined) {\n return skubaManifest;\n }\n\n const result = await readPkgUp({ cwd: __dirname });\n\n if (result === undefined) {\n throw Error('skuba could not find its own manifest');\n }\n\n return (skubaManifest = result.packageJson);\n};\n\nexport const getConsumerManifest = (cwd?: string) => readPkgUp({ cwd });\n\nexport const getPropFromConsumerManifest = async <\n T extends string,\n V = unknown,\n>(\n prop: T,\n): Promise<V | undefined> => {\n const result = await getConsumerManifest();\n\n return result !== undefined && hasProp<T, V>(result.packageJson.skuba, prop)\n ? result.packageJson.skuba[prop]\n : undefined;\n};\n\nexport const getStringPropFromConsumerManifest = async <T extends string>(\n prop: T,\n): Promise<string | undefined> => {\n const result = await getPropFromConsumerManifest(prop);\n\n return typeof result === 'string' ? result : undefined;\n};\n\nexport const getEntryPointFromManifest = async (): Promise<string> => {\n const entryPoint = await getStringPropFromConsumerManifest('entryPoint');\n\n return entryPoint ?? DEFAULT_ENTRY_POINT;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAsD;AACtD,iBAAkB;AAElB,wBAAwB;AAIjB,MAAM,oBAAoB,aAAE,MAAM;AAAA,EACvC,aAAE,QAAQ,aAAa;AAAA,EACvB,aAAE,QAAQ,SAAS;AACrB,CAAC;AAEM,MAAM,gBAAgB,CAAC,eAAe,SAAS;AAEtD,MAAM,sBAAsB;AAE5B,IAAI;AAEG,MAAM,mBAAmB,YAA4C;AAC1E,MAAI,kBAAkB,QAAW;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,UAAM,mBAAAA,SAAU,EAAE,KAAK,UAAU,CAAC;AAEjD,MAAI,WAAW,QAAW;AACxB,UAAM,MAAM,uCAAuC;AAAA,EACrD;AAEA,SAAQ,gBAAgB,OAAO;AACjC;AAEO,MAAM,sBAAsB,CAAC,YAAiB,mBAAAA,SAAU,EAAE,IAAI,CAAC;AAE/D,MAAM,8BAA8B,OAIzC,SAC2B;AAC3B,QAAM,SAAS,MAAM,oBAAoB;AAEzC,SAAO,WAAW,cAAa,2BAAc,OAAO,YAAY,OAAO,IAAI,IACvE,OAAO,YAAY,MAAM,IAAI,IAC7B;AACN;AAEO,MAAM,oCAAoC,OAC/C,SACgC;AAChC,QAAM,SAAS,MAAM,4BAA4B,IAAI;AAErD,SAAO,OAAO,WAAW,WAAW,SAAS;AAC/C;AAEO,MAAM,4BAA4B,YAA6B;AACpE,QAAM,aAAa,MAAM,kCAAkC,YAAY;AAEvE,SAAO,cAAc;AACvB;",
|
|
6
6
|
"names": ["readPkgUp"]
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const hasNpmrcSecret: (lineOrFullFileContents: string) => boolean;
|
|
@@ -0,0 +1,29 @@
|
|
|
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 npmrc_exports = {};
|
|
20
|
+
__export(npmrc_exports, {
|
|
21
|
+
hasNpmrcSecret: () => hasNpmrcSecret
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(npmrc_exports);
|
|
24
|
+
const hasNpmrcSecret = (lineOrFullFileContents) => lineOrFullFileContents.includes("_auth") || lineOrFullFileContents.includes("_password");
|
|
25
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
26
|
+
0 && (module.exports = {
|
|
27
|
+
hasNpmrcSecret
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=npmrc.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/npmrc.ts"],
|
|
4
|
+
"sourcesContent": ["// Preventing against _auth, _authToken, _password\n// https://docs.npmjs.com/cli/v10/configuring-npm/npmrc#auth-related-configuration\n\nexport const hasNpmrcSecret = (lineOrFullFileContents: string): boolean =>\n lineOrFullFileContents.includes('_auth') ||\n lineOrFullFileContents.includes('_password');\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,iBAAiB,CAAC,2BAC7B,uBAAuB,SAAS,OAAO,KACvC,uBAAuB,SAAS,WAAW;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const DEFAULT_PACKAGE_MANAGER = "yarn";
|
|
3
|
+
export type PackageManagerConfig = (typeof PACKAGE_MANAGERS)[keyof typeof PACKAGE_MANAGERS] & {
|
|
4
|
+
command: PackageManager;
|
|
5
|
+
};
|
|
6
|
+
declare const PACKAGE_MANAGERS: {
|
|
7
|
+
pnpm: {
|
|
8
|
+
exec: string;
|
|
9
|
+
install: string;
|
|
10
|
+
runSilent: string;
|
|
11
|
+
update: string;
|
|
12
|
+
};
|
|
13
|
+
yarn: {
|
|
14
|
+
exec: string;
|
|
15
|
+
install: string;
|
|
16
|
+
runSilent: string;
|
|
17
|
+
update: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare const configForPackageManager: (packageManager: PackageManager) => PackageManagerConfig;
|
|
21
|
+
export declare const detectPackageManager: (cwd?: string) => Promise<PackageManagerConfig>;
|
|
22
|
+
export type PackageManager = z.infer<typeof packageManagerSchema>;
|
|
23
|
+
export declare const packageManagerSchema: z.ZodDefault<z.ZodEnum<["pnpm", "yarn"]>>;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
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
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var packageManager_exports = {};
|
|
30
|
+
__export(packageManager_exports, {
|
|
31
|
+
DEFAULT_PACKAGE_MANAGER: () => DEFAULT_PACKAGE_MANAGER,
|
|
32
|
+
configForPackageManager: () => configForPackageManager,
|
|
33
|
+
detectPackageManager: () => detectPackageManager,
|
|
34
|
+
packageManagerSchema: () => packageManagerSchema
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(packageManager_exports);
|
|
37
|
+
var import_detect_package_manager = require("detect-package-manager");
|
|
38
|
+
var import_is_installed_globally = __toESM(require("is-installed-globally"));
|
|
39
|
+
var import_zod = require("zod");
|
|
40
|
+
var import_logging = require("./logging");
|
|
41
|
+
const DEFAULT_PACKAGE_MANAGER = "yarn";
|
|
42
|
+
const PACKAGE_MANAGERS = {
|
|
43
|
+
pnpm: {
|
|
44
|
+
exec: "pnpm exec",
|
|
45
|
+
install: "pnpm install",
|
|
46
|
+
runSilent: "pnpm --silent run",
|
|
47
|
+
update: import_is_installed_globally.default ? "pnpm update --global" : "pnpm update"
|
|
48
|
+
},
|
|
49
|
+
yarn: {
|
|
50
|
+
exec: "yarn",
|
|
51
|
+
install: "yarn install",
|
|
52
|
+
runSilent: "yarn -s",
|
|
53
|
+
update: import_is_installed_globally.default ? "yarn global upgrade" : "yarn upgrade"
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const configForPackageManager = (packageManager) => ({
|
|
57
|
+
...PACKAGE_MANAGERS[packageManager],
|
|
58
|
+
command: packageManager
|
|
59
|
+
});
|
|
60
|
+
const detectPackageManager = async (cwd) => {
|
|
61
|
+
let packageManager = DEFAULT_PACKAGE_MANAGER;
|
|
62
|
+
let raw;
|
|
63
|
+
try {
|
|
64
|
+
raw = await (0, import_detect_package_manager.detect)({ cwd, includeGlobalBun: false });
|
|
65
|
+
packageManager = packageManagerSchema.parse(raw);
|
|
66
|
+
} catch (err) {
|
|
67
|
+
import_logging.log.warn(
|
|
68
|
+
`Failed to detect package manager; defaulting to ${import_logging.log.bold(
|
|
69
|
+
DEFAULT_PACKAGE_MANAGER
|
|
70
|
+
)}.`
|
|
71
|
+
);
|
|
72
|
+
import_logging.log.subtle(
|
|
73
|
+
(() => {
|
|
74
|
+
switch (true) {
|
|
75
|
+
case err instanceof import_zod.ZodError:
|
|
76
|
+
return `Expected ${Object.keys(PACKAGE_MANAGERS).join(
|
|
77
|
+
"|"
|
|
78
|
+
)}, received ${raw}`;
|
|
79
|
+
case err instanceof Error:
|
|
80
|
+
return err.message;
|
|
81
|
+
default:
|
|
82
|
+
return String(err);
|
|
83
|
+
}
|
|
84
|
+
})()
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
return configForPackageManager(packageManager);
|
|
88
|
+
};
|
|
89
|
+
const packageManagerSchema = import_zod.z.enum(["pnpm", "yarn"]).default(DEFAULT_PACKAGE_MANAGER);
|
|
90
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
91
|
+
0 && (module.exports = {
|
|
92
|
+
DEFAULT_PACKAGE_MANAGER,
|
|
93
|
+
configForPackageManager,
|
|
94
|
+
detectPackageManager,
|
|
95
|
+
packageManagerSchema
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=packageManager.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/packageManager.ts"],
|
|
4
|
+
"sourcesContent": ["import { detect } from 'detect-package-manager';\nimport isInstalledGlobally from 'is-installed-globally';\nimport { ZodError, z } from 'zod';\n\nimport { log } from './logging';\n\n// TODO: consider changing to this to `pnpm` in a future major version.\nexport const DEFAULT_PACKAGE_MANAGER = 'yarn';\n\nexport type PackageManagerConfig =\n (typeof PACKAGE_MANAGERS)[keyof typeof PACKAGE_MANAGERS] & {\n command: PackageManager;\n };\n\nconst PACKAGE_MANAGERS = {\n pnpm: {\n exec: 'pnpm exec',\n install: 'pnpm install',\n runSilent: 'pnpm --silent run',\n update: isInstalledGlobally ? 'pnpm update --global' : 'pnpm update',\n },\n yarn: {\n exec: 'yarn',\n install: 'yarn install',\n runSilent: 'yarn -s',\n update: isInstalledGlobally ? 'yarn global upgrade' : 'yarn upgrade',\n },\n};\n\nexport const configForPackageManager = (\n packageManager: PackageManager,\n): PackageManagerConfig => ({\n ...PACKAGE_MANAGERS[packageManager],\n command: packageManager,\n});\n\nexport const detectPackageManager = async (\n cwd?: string,\n): Promise<PackageManagerConfig> => {\n let packageManager: PackageManager = DEFAULT_PACKAGE_MANAGER;\n\n let raw: string | undefined;\n try {\n raw = await detect({ cwd, includeGlobalBun: false });\n\n packageManager = packageManagerSchema.parse(raw);\n } catch (err) {\n log.warn(\n `Failed to detect package manager; defaulting to ${log.bold(\n DEFAULT_PACKAGE_MANAGER,\n )}.`,\n );\n log.subtle(\n (() => {\n switch (true) {\n case err instanceof ZodError:\n return `Expected ${Object.keys(PACKAGE_MANAGERS).join(\n '|',\n )}, received ${raw}`;\n\n case err instanceof Error:\n return err.message;\n\n default:\n return String(err);\n }\n })(),\n );\n }\n\n return configForPackageManager(packageManager);\n};\n\nexport type PackageManager = z.infer<typeof packageManagerSchema>;\n\nexport const packageManagerSchema = z\n .enum(['pnpm', 'yarn'])\n .default(DEFAULT_PACKAGE_MANAGER);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAuB;AACvB,mCAAgC;AAChC,iBAA4B;AAE5B,qBAAoB;AAGb,MAAM,0BAA0B;AAOvC,MAAM,mBAAmB;AAAA,EACvB,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ,6BAAAA,UAAsB,yBAAyB;AAAA,EACzD;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ,6BAAAA,UAAsB,wBAAwB;AAAA,EACxD;AACF;AAEO,MAAM,0BAA0B,CACrC,oBAC0B;AAAA,EAC1B,GAAG,iBAAiB,cAAc;AAAA,EAClC,SAAS;AACX;AAEO,MAAM,uBAAuB,OAClC,QACkC;AAClC,MAAI,iBAAiC;AAErC,MAAI;AACJ,MAAI;AACF,UAAM,UAAM,sCAAO,EAAE,KAAK,kBAAkB,MAAM,CAAC;AAEnD,qBAAiB,qBAAqB,MAAM,GAAG;AAAA,EACjD,SAAS,KAAK;AACZ,uBAAI;AAAA,MACF,mDAAmD,mBAAI;AAAA,QACrD;AAAA,MACF,CAAC;AAAA,IACH;AACA,uBAAI;AAAA,OACD,MAAM;AACL,gBAAQ,MAAM;AAAA,UACZ,KAAK,eAAe;AAClB,mBAAO,YAAY,OAAO,KAAK,gBAAgB,EAAE;AAAA,cAC/C;AAAA,YACF,CAAC,cAAc,GAAG;AAAA,UAEpB,KAAK,eAAe;AAClB,mBAAO,IAAI;AAAA,UAEb;AACE,mBAAO,OAAO,GAAG;AAAA,QACrB;AAAA,MACF,GAAG;AAAA,IACL;AAAA,EACF;AAEA,SAAO,wBAAwB,cAAc;AAC/C;AAIO,MAAM,uBAAuB,aACjC,KAAK,CAAC,QAAQ,MAAM,CAAC,EACrB,QAAQ,uBAAuB;",
|
|
6
|
+
"names": ["isInstalledGlobally"]
|
|
7
|
+
}
|
package/lib/utils/template.d.ts
CHANGED
|
@@ -23,28 +23,30 @@ export declare const templateConfigSchema: z.ZodObject<{
|
|
|
23
23
|
name: z.ZodString;
|
|
24
24
|
message: z.ZodString;
|
|
25
25
|
initial: z.ZodString;
|
|
26
|
-
validate: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodString],
|
|
26
|
+
validate: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodUnion<[z.ZodBoolean, z.ZodString]>>>;
|
|
27
27
|
}, "strip", z.ZodTypeAny, {
|
|
28
28
|
message: string;
|
|
29
29
|
name: string;
|
|
30
30
|
initial: string;
|
|
31
|
-
validate?: ((args_0: string) => boolean) | undefined;
|
|
31
|
+
validate?: ((args_0: string, ...args_1: unknown[]) => string | boolean) | undefined;
|
|
32
32
|
}, {
|
|
33
33
|
message: string;
|
|
34
34
|
name: string;
|
|
35
35
|
initial: string;
|
|
36
|
-
validate?: ((args_0: string) => boolean) | undefined;
|
|
36
|
+
validate?: ((args_0: string, ...args_1: unknown[]) => string | boolean) | undefined;
|
|
37
37
|
}>, "many">;
|
|
38
38
|
entryPoint: z.ZodOptional<z.ZodString>;
|
|
39
39
|
noSkip: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
packageManager: z.ZodDefault<z.ZodEnum<["pnpm", "yarn"]>>;
|
|
40
41
|
type: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"application">, z.ZodLiteral<"package">]>>;
|
|
41
42
|
}, "strip", z.ZodTypeAny, {
|
|
42
43
|
fields: {
|
|
43
44
|
message: string;
|
|
44
45
|
name: string;
|
|
45
46
|
initial: string;
|
|
46
|
-
validate?: ((args_0: string) => boolean) | undefined;
|
|
47
|
+
validate?: ((args_0: string, ...args_1: unknown[]) => string | boolean) | undefined;
|
|
47
48
|
}[];
|
|
49
|
+
packageManager: "yarn" | "pnpm";
|
|
48
50
|
entryPoint?: string | undefined;
|
|
49
51
|
noSkip?: boolean | undefined;
|
|
50
52
|
type?: "package" | "application" | undefined;
|
|
@@ -53,10 +55,11 @@ export declare const templateConfigSchema: z.ZodObject<{
|
|
|
53
55
|
message: string;
|
|
54
56
|
name: string;
|
|
55
57
|
initial: string;
|
|
56
|
-
validate?: ((args_0: string) => boolean) | undefined;
|
|
58
|
+
validate?: ((args_0: string, ...args_1: unknown[]) => string | boolean) | undefined;
|
|
57
59
|
}[];
|
|
58
60
|
entryPoint?: string | undefined;
|
|
59
61
|
noSkip?: boolean | undefined;
|
|
62
|
+
packageManager?: "yarn" | "pnpm" | undefined;
|
|
60
63
|
type?: "package" | "application" | undefined;
|
|
61
64
|
}>;
|
|
62
65
|
export declare const TEMPLATE_CONFIG_FILENAME = "skuba.template.js";
|
package/lib/utils/template.js
CHANGED
|
@@ -43,6 +43,7 @@ var import_path = __toESM(require("path"));
|
|
|
43
43
|
var import_fs_extra = __toESM(require("fs-extra"));
|
|
44
44
|
var import_zod = require("zod");
|
|
45
45
|
var import_manifest = require("./manifest");
|
|
46
|
+
var import_packageManager = require("./packageManager");
|
|
46
47
|
const TEMPLATE_NAMES = [
|
|
47
48
|
"express-rest-api",
|
|
48
49
|
"greeter",
|
|
@@ -89,11 +90,12 @@ const templateConfigSchema = import_zod.z.object({
|
|
|
89
90
|
name: import_zod.z.string(),
|
|
90
91
|
message: import_zod.z.string(),
|
|
91
92
|
initial: import_zod.z.string(),
|
|
92
|
-
validate: import_zod.z.function(import_zod.z.
|
|
93
|
+
validate: import_zod.z.function().args(import_zod.z.string()).returns(import_zod.z.union([import_zod.z.boolean(), import_zod.z.string()])).optional()
|
|
93
94
|
})
|
|
94
95
|
),
|
|
95
96
|
entryPoint: import_zod.z.string().optional(),
|
|
96
97
|
noSkip: import_zod.z.boolean().optional(),
|
|
98
|
+
packageManager: import_packageManager.packageManagerSchema,
|
|
97
99
|
type: import_manifest.projectTypeSchema.optional()
|
|
98
100
|
});
|
|
99
101
|
const TEMPLATE_CONFIG_FILENAME = "skuba.template.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/template.ts"],
|
|
4
|
-
"sourcesContent": ["import path from 'path';\n\nimport fs from 'fs-extra';\nimport { z } from 'zod';\n\nimport { projectTypeSchema } from './manifest';\n\nexport const TEMPLATE_NAMES = [\n 'express-rest-api',\n 'greeter',\n 'koa-rest-api',\n 'lambda-sqs-worker',\n 'lambda-sqs-worker-cdk',\n 'oss-npm-package',\n 'private-npm-package',\n] as const;\n\nexport type TemplateName = (typeof TEMPLATE_NAMES)[number];\n\nexport const TEMPLATE_NAMES_WITH_BYO = [...TEMPLATE_NAMES, 'github \u2192'] as const;\n\ninterface TemplateDocumentationConfig {\n /**\n * The semantic version in which the template was first added.\n *\n * This is used to filter out historical changelogs.\n */\n added: string;\n\n /**\n * The Markdown file for the template in our `/docs`.\n *\n * This is used to compile per-template changelogs for our documentation site.\n */\n filename: string;\n}\n\nexport const TEMPLATE_DOCUMENTATION_CONFIG: Record<\n TemplateName,\n TemplateDocumentationConfig\n> = {\n 'express-rest-api': {\n added: '3.8.0',\n filename: 'api.md',\n },\n greeter: {\n added: '3.4.1',\n filename: 'barebones.md',\n },\n 'koa-rest-api': {\n added: '3.4.1',\n filename: 'api.md',\n },\n 'lambda-sqs-worker': {\n added: '3.4.1',\n filename: 'worker.md',\n },\n 'lambda-sqs-worker-cdk': {\n added: '3.13.0',\n filename: 'worker.md',\n },\n 'oss-npm-package': {\n added: '3.7.0',\n filename: 'package.md',\n },\n 'private-npm-package': {\n added: '3.6.0',\n filename: 'package.md',\n },\n};\n\nexport type TemplateConfig = z.infer<typeof templateConfigSchema>;\n\nexport const templateConfigSchema = z.object({\n fields: z.array(\n z.object({\n name: z.string(),\n message: z.string(),\n initial: z.string(),\n validate: z.function(z.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,sBAAe;AACf,iBAAkB;AAElB,sBAAkC;
|
|
4
|
+
"sourcesContent": ["import path from 'path';\n\nimport fs from 'fs-extra';\nimport { z } from 'zod';\n\nimport { projectTypeSchema } from './manifest';\nimport { packageManagerSchema } from './packageManager';\n\nexport const TEMPLATE_NAMES = [\n 'express-rest-api',\n 'greeter',\n 'koa-rest-api',\n 'lambda-sqs-worker',\n 'lambda-sqs-worker-cdk',\n 'oss-npm-package',\n 'private-npm-package',\n] as const;\n\nexport type TemplateName = (typeof TEMPLATE_NAMES)[number];\n\nexport const TEMPLATE_NAMES_WITH_BYO = [...TEMPLATE_NAMES, 'github \u2192'] as const;\n\ninterface TemplateDocumentationConfig {\n /**\n * The semantic version in which the template was first added.\n *\n * This is used to filter out historical changelogs.\n */\n added: string;\n\n /**\n * The Markdown file for the template in our `/docs`.\n *\n * This is used to compile per-template changelogs for our documentation site.\n */\n filename: string;\n}\n\nexport const TEMPLATE_DOCUMENTATION_CONFIG: Record<\n TemplateName,\n TemplateDocumentationConfig\n> = {\n 'express-rest-api': {\n added: '3.8.0',\n filename: 'api.md',\n },\n greeter: {\n added: '3.4.1',\n filename: 'barebones.md',\n },\n 'koa-rest-api': {\n added: '3.4.1',\n filename: 'api.md',\n },\n 'lambda-sqs-worker': {\n added: '3.4.1',\n filename: 'worker.md',\n },\n 'lambda-sqs-worker-cdk': {\n added: '3.13.0',\n filename: 'worker.md',\n },\n 'oss-npm-package': {\n added: '3.7.0',\n filename: 'package.md',\n },\n 'private-npm-package': {\n added: '3.6.0',\n filename: 'package.md',\n },\n};\n\nexport type TemplateConfig = z.infer<typeof templateConfigSchema>;\n\nexport const templateConfigSchema = z.object({\n fields: z.array(\n z.object({\n name: z.string(),\n message: z.string(),\n initial: z.string(),\n validate: z\n .function()\n .args(z.string())\n .returns(z.union([z.boolean(), z.string()]))\n .optional(),\n }),\n ),\n entryPoint: z.string().optional(),\n noSkip: z.boolean().optional(),\n packageManager: packageManagerSchema,\n type: projectTypeSchema.optional(),\n});\n\nexport const TEMPLATE_CONFIG_FILENAME = 'skuba.template.js';\n\nexport const TEMPLATE_DIR = path.join(__dirname, '..', '..', 'template');\n\nexport const BASE_TEMPLATE_DIR = path.join(TEMPLATE_DIR, 'base');\n\nexport const ensureTemplateConfigDeletion = (dir: string): Promise<void> =>\n fs.promises.rm(path.join(dir, TEMPLATE_CONFIG_FILENAME));\n\nexport const readBaseTemplateFile = (src: string): Promise<string> =>\n fs.promises.readFile(path.join(BASE_TEMPLATE_DIR, src), 'utf8');\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAEjB,sBAAe;AACf,iBAAkB;AAElB,sBAAkC;AAClC,4BAAqC;AAE9B,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,0BAA0B,CAAC,GAAG,gBAAgB,eAAU;AAkB9D,MAAM,gCAGT;AAAA,EACF,oBAAoB;AAAA,IAClB,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA,qBAAqB;AAAA,IACnB,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA,yBAAyB;AAAA,IACvB,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA,mBAAmB;AAAA,IACjB,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA,uBAAuB;AAAA,IACrB,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AACF;AAIO,MAAM,uBAAuB,aAAE,OAAO;AAAA,EAC3C,QAAQ,aAAE;AAAA,IACR,aAAE,OAAO;AAAA,MACP,MAAM,aAAE,OAAO;AAAA,MACf,SAAS,aAAE,OAAO;AAAA,MAClB,SAAS,aAAE,OAAO;AAAA,MAClB,UAAU,aACP,SAAS,EACT,KAAK,aAAE,OAAO,CAAC,EACf,QAAQ,aAAE,MAAM,CAAC,aAAE,QAAQ,GAAG,aAAE,OAAO,CAAC,CAAC,CAAC,EAC1C,SAAS;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EACA,YAAY,aAAE,OAAO,EAAE,SAAS;AAAA,EAChC,QAAQ,aAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,gBAAgB;AAAA,EAChB,MAAM,kCAAkB,SAAS;AACnC,CAAC;AAEM,MAAM,2BAA2B;AAEjC,MAAM,eAAe,YAAAA,QAAK,KAAK,WAAW,MAAM,MAAM,UAAU;AAEhE,MAAM,oBAAoB,YAAAA,QAAK,KAAK,cAAc,MAAM;AAExD,MAAM,+BAA+B,CAAC,QAC3C,gBAAAC,QAAG,SAAS,GAAG,YAAAD,QAAK,KAAK,KAAK,wBAAwB,CAAC;AAElD,MAAM,uBAAuB,CAAC,QACnC,gBAAAC,QAAG,SAAS,SAAS,YAAAD,QAAK,KAAK,mBAAmB,GAAG,GAAG,MAAM;",
|
|
6
6
|
"names": ["path", "fs"]
|
|
7
7
|
}
|
package/lib/utils/worker.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const execWorkerThread: <Input, Output>(filepath: string, input:
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const postWorkerOutput: <Input, Output>(fn: (input: Input) => Promise<Output>, logger?: {
|
|
10
10
|
bold: import("chalk").Chalk;
|
|
11
|
+
dim: import("chalk").Chalk;
|
|
11
12
|
formatSubtle: import("chalk").Chalk;
|
|
12
13
|
timing: (start: bigint, end: bigint) => string;
|
|
13
14
|
debug: (...message: unknown[]) => void;
|
package/lib/wrapper/http.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skuba",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.4.0-horrible-hacks-20240206023615",
|
|
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",
|
|
@@ -27,21 +27,6 @@
|
|
|
27
27
|
"template/**/*",
|
|
28
28
|
"jest-preset.js"
|
|
29
29
|
],
|
|
30
|
-
"scripts": {
|
|
31
|
-
"build": "scripts/build.sh",
|
|
32
|
-
"deploy": "scripts/deploy.sh",
|
|
33
|
-
"format": "yarn skuba format",
|
|
34
|
-
"lint": "yarn skuba lint && yarn lint:md",
|
|
35
|
-
"lint:md": "remark --frail --quiet .",
|
|
36
|
-
"release": "yarn build && changeset publish",
|
|
37
|
-
"skuba": "yarn build && node lib/skuba",
|
|
38
|
-
"stage": "changeset version && yarn format",
|
|
39
|
-
"test": "yarn skuba test --selectProjects unit",
|
|
40
|
-
"test:ci": "yarn skuba test --runInBand",
|
|
41
|
-
"test:int": "yarn skuba test --selectProjects integration --runInBand",
|
|
42
|
-
"test:template": "scripts/test-template.sh",
|
|
43
|
-
"test:watch": "yarn skuba test --runInBand --watch"
|
|
44
|
-
},
|
|
45
30
|
"remarkConfig": {
|
|
46
31
|
"plugins": [
|
|
47
32
|
"remark-preset-lint-recommended",
|
|
@@ -64,9 +49,6 @@
|
|
|
64
49
|
]
|
|
65
50
|
]
|
|
66
51
|
},
|
|
67
|
-
"resolutions": {
|
|
68
|
-
"**/@types/node": ">=18.12"
|
|
69
|
-
},
|
|
70
52
|
"dependencies": {
|
|
71
53
|
"@esbuild-plugins/tsconfig-paths": "^0.1.0",
|
|
72
54
|
"@jest/types": "^29.0.0",
|
|
@@ -78,12 +60,13 @@
|
|
|
78
60
|
"@types/node": ">=18.12",
|
|
79
61
|
"chalk": "^4.1.0",
|
|
80
62
|
"concurrently": "^8.0.0",
|
|
63
|
+
"detect-package-manager": "^3.0.1",
|
|
81
64
|
"dotenv": "^16.0.0",
|
|
82
65
|
"ejs": "^3.1.6",
|
|
83
66
|
"enquirer": "^2.3.6",
|
|
84
|
-
"esbuild": "~0.
|
|
67
|
+
"esbuild": "~0.20.0",
|
|
85
68
|
"eslint": "^8.11.0",
|
|
86
|
-
"eslint-config-skuba": "3.0
|
|
69
|
+
"eslint-config-skuba": "3.1.0",
|
|
87
70
|
"execa": "^5.0.0",
|
|
88
71
|
"fdir": "^6.0.0",
|
|
89
72
|
"fs-extra": "^11.0.0",
|
|
@@ -101,9 +84,9 @@
|
|
|
101
84
|
"normalize-package-data": "^6.0.0",
|
|
102
85
|
"npm-run-path": "^4.0.1",
|
|
103
86
|
"npm-which": "^3.0.1",
|
|
104
|
-
"picomatch": "^
|
|
105
|
-
"prettier": "~3.
|
|
106
|
-
"prettier-plugin-packagejson": "^2.4.
|
|
87
|
+
"picomatch": "^3.0.0",
|
|
88
|
+
"prettier": "~3.2.5",
|
|
89
|
+
"prettier-plugin-packagejson": "^2.4.10",
|
|
107
90
|
"read-pkg-up": "^7.0.1",
|
|
108
91
|
"semantic-release": "^21.0.0",
|
|
109
92
|
"serialize-error": "^8.0.1",
|
|
@@ -111,39 +94,41 @@
|
|
|
111
94
|
"strip-ansi": "^6.0.1",
|
|
112
95
|
"ts-dedent": "^2.2.0",
|
|
113
96
|
"ts-jest": "^29.1.0",
|
|
114
|
-
"ts-node": "^10.
|
|
97
|
+
"ts-node": "^10.9.2",
|
|
115
98
|
"ts-node-dev": "^2.0.0",
|
|
116
99
|
"tsconfig-paths": "^4.0.0",
|
|
117
100
|
"tsconfig-seek": "2.0.0",
|
|
118
|
-
"typescript": "~5.
|
|
101
|
+
"typescript": "~5.3.0",
|
|
119
102
|
"validate-npm-package-name": "^5.0.0",
|
|
120
103
|
"zod": "^3.22.4"
|
|
121
104
|
},
|
|
122
105
|
"devDependencies": {
|
|
123
|
-
"@changesets/cli": "2.
|
|
124
|
-
"@changesets/get-github-info": "0.
|
|
106
|
+
"@changesets/cli": "2.27.1",
|
|
107
|
+
"@changesets/get-github-info": "0.6.0",
|
|
125
108
|
"@jest/reporters": "29.7.0",
|
|
126
|
-
"@
|
|
127
|
-
"@types/
|
|
128
|
-
"@types/
|
|
129
|
-
"@types/
|
|
130
|
-
"@types/
|
|
131
|
-
"@types/
|
|
132
|
-
"@types/
|
|
133
|
-
"@types/
|
|
134
|
-
"@types/
|
|
135
|
-
"@types/
|
|
136
|
-
"@types/
|
|
109
|
+
"@jest/test-result": "29.7.0",
|
|
110
|
+
"@types/ejs": "3.1.5",
|
|
111
|
+
"@types/express": "4.17.21",
|
|
112
|
+
"@types/fs-extra": "11.0.4",
|
|
113
|
+
"@types/koa": "2.14.0",
|
|
114
|
+
"@types/libnpmsearch": "2.0.7",
|
|
115
|
+
"@types/lodash.mergewith": "4.6.9",
|
|
116
|
+
"@types/module-alias": "2.0.4",
|
|
117
|
+
"@types/npm-which": "3.0.3",
|
|
118
|
+
"@types/picomatch": "2.3.3",
|
|
119
|
+
"@types/supertest": "6.0.2",
|
|
120
|
+
"@types/validate-npm-package-name": "4.0.2",
|
|
137
121
|
"enhanced-resolve": "5.15.0",
|
|
138
122
|
"express": "4.18.2",
|
|
139
|
-
"fastify": "4.
|
|
123
|
+
"fastify": "4.25.2",
|
|
124
|
+
"jest-diff": "29.7.0",
|
|
140
125
|
"jsonfile": "6.1.0",
|
|
141
|
-
"koa": "2.
|
|
126
|
+
"koa": "2.15.0",
|
|
142
127
|
"memfs": "4.6.0",
|
|
143
128
|
"remark-cli": "12.0.0",
|
|
144
129
|
"remark-preset-lint-recommended": "6.1.3",
|
|
145
130
|
"semver": "7.5.4",
|
|
146
|
-
"supertest": "6.3.
|
|
131
|
+
"supertest": "6.3.4",
|
|
147
132
|
"type-fest": "2.19.0"
|
|
148
133
|
},
|
|
149
134
|
"peerDependencies": {
|
|
@@ -154,6 +139,7 @@
|
|
|
154
139
|
"optional": true
|
|
155
140
|
}
|
|
156
141
|
},
|
|
142
|
+
"packageManager": "pnpm@8.15.1",
|
|
157
143
|
"engines": {
|
|
158
144
|
"node": ">=18.12"
|
|
159
145
|
},
|
|
@@ -165,6 +151,23 @@
|
|
|
165
151
|
"entryPoint": "src/index.ts",
|
|
166
152
|
"template": null,
|
|
167
153
|
"type": "package",
|
|
168
|
-
"version": "
|
|
154
|
+
"version": "7.3.1"
|
|
155
|
+
},
|
|
156
|
+
"scripts": {
|
|
157
|
+
"build": "scripts/build.sh",
|
|
158
|
+
"changeset": "changeset",
|
|
159
|
+
"deploy": "scripts/deploy.sh",
|
|
160
|
+
"format": "pnpm run --silent skuba format",
|
|
161
|
+
"lint": "pnpm run --silent skuba lint && pnpm run --silent lint:md",
|
|
162
|
+
"lint:md": "remark --frail --quiet .",
|
|
163
|
+
"release": "pnpm run --silent build && changeset publish",
|
|
164
|
+
"skuba": "pnpm run --silent build && pnpm run --silent skuba:exec",
|
|
165
|
+
"skuba:exec": "node --env-file=.env lib/skuba",
|
|
166
|
+
"stage": "changeset version && node ./.changeset/inject.js && pnpm run format",
|
|
167
|
+
"test": "pnpm run --silent skuba test --selectProjects unit",
|
|
168
|
+
"test:ci": "pnpm run --silent skuba test --runInBand",
|
|
169
|
+
"test:int": "pnpm run --silent skuba test --runInBand --selectProjects integration",
|
|
170
|
+
"test:template": "scripts/test-template.sh",
|
|
171
|
+
"test:watch": "pnpm run --silent skuba test --runInBand --watch"
|
|
169
172
|
}
|
|
170
|
-
}
|
|
173
|
+
}
|
|
@@ -4,15 +4,13 @@ agents:
|
|
|
4
4
|
configs:
|
|
5
5
|
plugins:
|
|
6
6
|
- &aws-sm
|
|
7
|
-
seek-oss/aws-sm#v2.3.
|
|
7
|
+
seek-oss/aws-sm#v2.3.2:
|
|
8
8
|
env:
|
|
9
9
|
NPM_READ_TOKEN: arn:aws:secretsmanager:ap-southeast-2:987872074697:secret:npm/npm-read-token
|
|
10
10
|
|
|
11
11
|
- &docker-ecr-cache
|
|
12
|
-
seek-oss/docker-ecr-cache#v2.1.
|
|
13
|
-
cache-on:
|
|
14
|
-
- package.json
|
|
15
|
-
- yarn.lock
|
|
12
|
+
seek-oss/docker-ecr-cache#v2.1.1: &docker-ecr-cache-defaults
|
|
13
|
+
cache-on: pnpm-lock.yaml
|
|
16
14
|
dockerfile: Dockerfile.dev-deps
|
|
17
15
|
secrets: id=npm,src=tmp/.npmrc
|
|
18
16
|
|
|
@@ -37,16 +35,18 @@ steps:
|
|
|
37
35
|
plugins:
|
|
38
36
|
- *aws-sm
|
|
39
37
|
- *private-npm
|
|
40
|
-
- seek-oss/docker-ecr-cache#v2.1.
|
|
38
|
+
- seek-oss/docker-ecr-cache#v2.1.1:
|
|
41
39
|
<<: *docker-ecr-cache-defaults
|
|
42
40
|
skip-pull-from-cache: true
|
|
43
41
|
|
|
44
42
|
- label: 🧪 Test & Lint
|
|
45
43
|
commands:
|
|
46
|
-
- echo '
|
|
47
|
-
-
|
|
48
|
-
- echo '
|
|
49
|
-
-
|
|
44
|
+
- echo '--- pnpm install --offline'
|
|
45
|
+
- pnpm install --offline
|
|
46
|
+
- echo '+++ pnpm run test:ci'
|
|
47
|
+
- pnpm run test:ci
|
|
48
|
+
- echo '--- pnpm run lint'
|
|
49
|
+
- pnpm run lint
|
|
50
50
|
depends_on: warm-prod
|
|
51
51
|
env:
|
|
52
52
|
GET_GITHUB_TOKEN: please
|
|
@@ -56,6 +56,9 @@ steps:
|
|
|
56
56
|
- *docker-ecr-cache
|
|
57
57
|
- docker-compose#v4.16.0:
|
|
58
58
|
run: app
|
|
59
|
+
environment:
|
|
60
|
+
- GITHUB_API_TOKEN
|
|
61
|
+
propagate-environment: true
|
|
59
62
|
timeout_in_minutes: 10
|
|
60
63
|
|
|
61
64
|
- label: 📦 Build & Package
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
20
|
|
@@ -1,29 +1,23 @@
|
|
|
1
1
|
ARG BASE_IMAGE
|
|
2
|
-
ARG BASE_TAG
|
|
3
2
|
|
|
4
3
|
###
|
|
5
4
|
|
|
6
|
-
FROM ${BASE_IMAGE}
|
|
7
|
-
|
|
8
|
-
RUN yarn install --ignore-optional --ignore-scripts --non-interactive --offline --production
|
|
9
|
-
|
|
10
|
-
###
|
|
11
|
-
|
|
12
|
-
FROM ${BASE_IMAGE}:${BASE_TAG} AS build
|
|
5
|
+
FROM ${BASE_IMAGE} AS build
|
|
13
6
|
|
|
14
7
|
COPY . .
|
|
15
8
|
|
|
16
|
-
RUN
|
|
9
|
+
RUN pnpm install --offline
|
|
10
|
+
RUN pnpm run build
|
|
11
|
+
RUN pnpm install --offline --prod
|
|
17
12
|
|
|
18
13
|
###
|
|
19
14
|
|
|
20
|
-
FROM --platform=${BUILDPLATFORM:-<%- platformName %>} gcr.io/distroless/
|
|
15
|
+
FROM --platform=${BUILDPLATFORM:-<%- platformName %>} gcr.io/distroless/nodejs20-debian12 AS runtime
|
|
21
16
|
|
|
22
17
|
WORKDIR /workdir
|
|
23
18
|
|
|
24
19
|
COPY --from=build /workdir/lib lib
|
|
25
|
-
|
|
26
|
-
COPY --from=deps /workdir/node_modules node_modules
|
|
20
|
+
COPY --from=build /workdir/node_modules node_modules
|
|
27
21
|
|
|
28
22
|
ENV NODE_ENV=production
|
|
29
23
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
# syntax=docker/dockerfile:1.
|
|
1
|
+
# syntax=docker/dockerfile:1.6
|
|
2
2
|
|
|
3
|
-
FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:
|
|
3
|
+
FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:20-alpine AS dev-deps
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
RUN corepack enable pnpm
|
|
6
|
+
RUN pnpm config set store-dir /root/.pnpm-store
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
WORKDIR /workdir
|
|
8
9
|
|
|
9
|
-
RUN \
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
RUN --mount=type=bind,source=pnpm-lock.yaml,target=pnpm-lock.yaml \
|
|
11
|
+
--mount=type=secret,id=npm,dst=/root/.npmrc,required=true \
|
|
12
|
+
pnpm fetch
|