hatchkit 0.1.13 → 0.1.14
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coolify.d.ts","sourceRoot":"","sources":["../../src/deploy/coolify.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,WAAW,sBAAsB;IACrC;;sCAEkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;kEAE8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;uDAEmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC;;wDAEoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB;;4CAEwC;IACxC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;oDAEoD;AACpD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"coolify.d.ts","sourceRoot":"","sources":["../../src/deploy/coolify.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,WAAW,sBAAsB;IACrC;;sCAEkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;kEAE8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;uDAEmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC;;wDAEoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB;;4CAEwC;IACxC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;oDAEoD;AACpD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA8HhC"}
|
package/dist/deploy/coolify.js
CHANGED
|
@@ -106,7 +106,12 @@ export async function runCoolifySetup(config, options = {}) {
|
|
|
106
106
|
environmentName: "production",
|
|
107
107
|
gitRepository: options.repoUrl,
|
|
108
108
|
gitBranch: "main",
|
|
109
|
-
|
|
109
|
+
// Canonical pipeline: GitHub Actions builds → pushes to GHCR →
|
|
110
|
+
// Coolify pulls via docker-compose.yml (scaffolded at the repo
|
|
111
|
+
// root by `scaffoldBuildPipeline`). `dockerfile` here would
|
|
112
|
+
// ignore that compose file and try to build the repo directly,
|
|
113
|
+
// which fails on the monorepo layout.
|
|
114
|
+
buildPack: "dockercompose",
|
|
110
115
|
// Coolify exposes one container port. The starter's server
|
|
111
116
|
// listens on `serverPort` and serves client assets in prod —
|
|
112
117
|
// that's the right port to route to. The client dev port is a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coolify.js","sourceRoot":"","sources":["../../src/deploy/coolify.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"coolify.js","sourceRoot":"","sources":["../../src/deploy/coolify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA4BrD;;oDAEoD;AACpD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqB,EACrB,UAAkC,EAAE;IAEpC,MAAM,GAAG,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAE5F,MAAM,MAAM,GAAG,GAAG,CAAC,4BAA4B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,GAAG,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAExD,mEAAmE;IACnE,oEAAoE;IACpE,yBAAyB;IACzB,IAAI,WAAmB,CAAC;IACxB,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,eAAe,EAAE,CAAC;QACpB,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,+CAA+C;IAC/C,iDAAiD;IACjD,sDAAsD;IACtD,+EAA+E;IAC/E,2DAA2D;IAC3D,gEAAgE;IAChE,+DAA+D;IAC/D,0DAA0D;IAC1D,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG;QACd,WAAW,MAAM,CAAC,MAAM,EAAE;QAC1B,WAAW,SAAS,EAAE;QACtB,WAAW,MAAM,CAAC,MAAM,MAAM;QAC9B,WAAW,MAAM,CAAC,MAAM,SAAS;QACjC,WAAW,SAAS,KAAK;KAC1B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvE,qEAAqE;IACrE,kEAAkE;IAClE,oEAAoE;IACpE,kEAAkE;IAClE,sCAAsC;IACtC,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC;IACrC,IAAI,OAAe,CAAC;IACpB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,+BAA+B,CAAC;gBACxD,WAAW;gBACX,UAAU;gBACV,eAAe,EAAE,YAAY;gBAC7B,aAAa,EAAE,OAAO,CAAC,OAAO;gBAC9B,SAAS,EAAE,MAAM;gBACjB,+DAA+D;gBAC/D,+DAA+D;gBAC/D,4DAA4D;gBAC5D,+DAA+D;gBAC/D,sCAAsC;gBACtC,SAAS,EAAE,eAAe;gBAC1B,2DAA2D;gBAC3D,6DAA6D;gBAC7D,8DAA8D;gBAC9D,2BAA2B;gBAC3B,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;gBAChD,IAAI,EAAE,OAAO;gBACb,OAAO;gBACP,6DAA6D;gBAC7D,+DAA+D;gBAC/D,aAAa,EAAE,KAAK;aACrB,CAAC,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,wBAAwB,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,gEAAgE;IAChE,8DAA8D;IAC9D,oEAAoE;IACpE,oCAAoC;IACpC,MAAM,IAAI,GAA2B;QACnC,QAAQ,EAAE,YAAY;QACtB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QACxC,YAAY,EAAE,WAAW,MAAM,CAAC,MAAM,EAAE;KACzC,CAAC;IACF,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChG,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAE5D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;2BAG2B;AAC3B,KAAK,UAAU,iBAAiB,CAAC,GAAe,EAAE,MAAqB;IACrE,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC;IAEhD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,kEAAkE;IAClE,iEAAiE;IACjE,uDAAuD;IACvD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hatchkit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"packageManager": "pnpm@10.33.2",
|
|
5
5
|
"description": "Interactive CLI for scaffolding full-stack projects and provisioning observability/email clients",
|
|
6
6
|
"type": "module",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"check": "pnpm run typecheck && pnpm run lint && pnpm run test",
|
|
25
25
|
"install-local": "pnpm run build && npm install -g .",
|
|
26
26
|
"release": "pnpm run release:patch",
|
|
27
|
-
"release:patch": "node scripts/release-prep.mjs &&
|
|
28
|
-
"release:minor": "node scripts/release-prep.mjs &&
|
|
29
|
-
"release:major": "node scripts/release-prep.mjs &&
|
|
27
|
+
"release:patch": "node scripts/release-prep.mjs && node scripts/release-bump.mjs patch && pnpm run _release:finish",
|
|
28
|
+
"release:minor": "node scripts/release-prep.mjs && node scripts/release-bump.mjs minor && pnpm run _release:finish",
|
|
29
|
+
"release:major": "node scripts/release-prep.mjs && node scripts/release-bump.mjs major && pnpm run _release:finish",
|
|
30
30
|
"_release:finish": "pnpm run build && pnpm run typecheck && npm publish --access public && git push --follow-tags && npm install -g .",
|
|
31
31
|
"prepublishOnly": "pnpm run build"
|
|
32
32
|
},
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/*
|
|
3
|
+
* release-bump — bump cli/package.json + commit + tag, atomically.
|
|
4
|
+
*
|
|
5
|
+
* Replaces `npm version <bump> -m "..."` because npm's built-in
|
|
6
|
+
* version command silently skips the commit/tag step in this monorepo
|
|
7
|
+
* layout (cli/ is a workspace member, not the repo root, and the lock
|
|
8
|
+
* file npm tries to stage doesn't exist anymore — pnpm-lock.yaml at
|
|
9
|
+
* the workspace root is the source of truth). The result: every
|
|
10
|
+
* release left cli/package.json modified-but-uncommitted, the publish
|
|
11
|
+
* succeeded against an untracked version, and the release machinery
|
|
12
|
+
* drifted from git history.
|
|
13
|
+
*
|
|
14
|
+
* Doing the three steps ourselves is unambiguous: bump, stage, commit,
|
|
15
|
+
* tag. release-prep.mjs has already verified the working tree is
|
|
16
|
+
* clean before this runs, so the commit only contains the version bump.
|
|
17
|
+
*
|
|
18
|
+
* Usage: node scripts/release-bump.mjs <patch|minor|major>
|
|
19
|
+
*/
|
|
20
|
+
import { execSync } from "node:child_process";
|
|
21
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
22
|
+
import { dirname, join } from "node:path";
|
|
23
|
+
import { fileURLToPath } from "node:url";
|
|
24
|
+
|
|
25
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
26
|
+
const cliDir = join(here, "..");
|
|
27
|
+
const pkgPath = join(cliDir, "package.json");
|
|
28
|
+
|
|
29
|
+
const bumpKind = process.argv[2];
|
|
30
|
+
if (!["patch", "minor", "major"].includes(bumpKind)) {
|
|
31
|
+
console.error(`release-bump: expected patch|minor|major, got ${bumpKind ?? "(nothing)"}`);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function sh(cmd, opts = {}) {
|
|
36
|
+
return execSync(cmd, { encoding: "utf-8", ...opts }).trim();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const repoRoot = sh("git rev-parse --show-toplevel");
|
|
40
|
+
|
|
41
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
42
|
+
const current = pkg.version;
|
|
43
|
+
const [maj, min, pat] = current.split(".").map((n) => Number(n) || 0);
|
|
44
|
+
const next =
|
|
45
|
+
bumpKind === "major"
|
|
46
|
+
? `${maj + 1}.0.0`
|
|
47
|
+
: bumpKind === "minor"
|
|
48
|
+
? `${maj}.${min + 1}.0`
|
|
49
|
+
: `${maj}.${min}.${pat + 1}`;
|
|
50
|
+
|
|
51
|
+
pkg.version = next;
|
|
52
|
+
// npm's `npm version` keeps a trailing newline; preserve that so diffs
|
|
53
|
+
// stay 1 line and don't churn whitespace.
|
|
54
|
+
writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`, "utf-8");
|
|
55
|
+
console.log(` release-bump: ${current} → ${next}`);
|
|
56
|
+
|
|
57
|
+
// Stage + commit + tag from the repo root so the path in the commit
|
|
58
|
+
// is `cli/package.json` regardless of where the script was invoked.
|
|
59
|
+
sh(`git add ${JSON.stringify(join("cli", "package.json"))}`, { cwd: repoRoot });
|
|
60
|
+
sh(`git commit -m ${JSON.stringify(`chore: release v${next}`)}`, { cwd: repoRoot });
|
|
61
|
+
sh(`git tag ${JSON.stringify(`v${next}`)}`, { cwd: repoRoot });
|
|
62
|
+
console.log(` release-bump: committed + tagged v${next}`);
|
package/scripts/release-prep.mjs
CHANGED
|
@@ -8,11 +8,10 @@
|
|
|
8
8
|
* same baseline.
|
|
9
9
|
*
|
|
10
10
|
* ALSO refuses when the local cli/package.json version is at-or-
|
|
11
|
-
* behind the version published to npm.
|
|
12
|
-
* from the LOCAL version,
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* front instead.
|
|
11
|
+
* behind the version published to npm. release-bump.mjs increments
|
|
12
|
+
* from the LOCAL version, so drift between local and registry leads
|
|
13
|
+
* to the bump generating a number that's already taken and the
|
|
14
|
+
* publish step crashing after build/typecheck. Catch it up front.
|
|
16
15
|
*
|
|
17
16
|
* Skip with RELEASE_SKIP_PREP=1 (e.g. a CI-driven release that's
|
|
18
17
|
* already vouched for cleanliness). RELEASE_SKIP_NPM_CHECK=1 only
|
|
@@ -118,13 +117,13 @@ function checkNpmDrift(repoRoot) {
|
|
|
118
117
|
return [
|
|
119
118
|
`local ${name}@${local} is behind the registry's ${registry}.`,
|
|
120
119
|
"",
|
|
121
|
-
"
|
|
120
|
+
" release-bump.mjs increments from the LOCAL version, so a release now",
|
|
122
121
|
" would try to publish a version that's already taken. Sync first:",
|
|
123
122
|
"",
|
|
124
123
|
` cd ${join(repoRoot, "cli")}`,
|
|
125
124
|
` npm version ${registry} --no-git-tag-version # match the registry`,
|
|
126
125
|
` cd ${repoRoot}`,
|
|
127
|
-
` git add cli/package.json
|
|
126
|
+
` git add cli/package.json`,
|
|
128
127
|
` git commit -m "chore: release v${registry}"`,
|
|
129
128
|
` git tag v${registry}`,
|
|
130
129
|
"",
|