@gezelligate/core 0.1.2 → 0.2.0

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.
@@ -4,9 +4,9 @@ export interface BootstrapOptions {
4
4
  catalogRef?: string;
5
5
  /** Explicit local catalog dir. Skips fetching entirely. */
6
6
  catalogDir?: string;
7
- /** GitHub org/user. Defaults to "gezelligate". */
7
+ /** GitHub org/user. Overrides config; falls back to "gezelligate". */
8
8
  owner?: string;
9
- /** GitHub repo. Defaults to "catalog". */
9
+ /** GitHub repo. Overrides config; falls back to "catalog". */
10
10
  repo?: string;
11
11
  /** Caller's npm version. Recorded in the pin (diagnostic only). */
12
12
  callerVersion?: string;
@@ -22,4 +22,12 @@ export interface ResolvedCatalog {
22
22
  ref: string;
23
23
  }
24
24
  export declare function bootstrapCatalog(opts: BootstrapOptions): Promise<ResolvedCatalog>;
25
+ /**
26
+ * Accepts `owner/repo`, `github.com/owner/repo`, `https://github.com/owner/repo`,
27
+ * or any of the above with a trailing `.git`. Throws on anything else.
28
+ */
29
+ export declare function parseCatalogSource(source: string): {
30
+ owner: string;
31
+ repo: string;
32
+ };
25
33
  //# sourceMappingURL=bootstrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/catalog/bootstrap.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA4CvF"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/catalog/bootstrap.ts"],"names":[],"mappings":"AAkCA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsEvF;AAoCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAclF"}
@@ -1,18 +1,22 @@
1
1
  // Shared bootstrap routine used by both CLI (`gezelligate init`) and Studio's
2
2
  // first-run hook. Resolves a catalog ref, fetches the tarball if uncached,
3
- // writes the pin to services/.gezelligate.json, returns the on-disk paths
4
- // downstream code (renderer, server) needs.
3
+ // writes the pin to gezelligate.json, returns the on-disk paths downstream
4
+ // code (renderer, server) needs.
5
5
  //
6
6
  // Honours three precedence rules:
7
7
  // 1. `--catalog-dir` (or programmatic catalogDir) wins outright — treat as a
8
8
  // stable local checkout, never fetch, never pin.
9
- // 2. Explicit `--catalog-ref` overrides what's in the pin file.
9
+ // 2. Explicit `--catalog-ref` overrides what's in the project config.
10
10
  // 3. With neither, an existing pin's ref is reused; on first run, the latest
11
11
  // GitHub release is resolved.
12
+ //
13
+ // Catalog source (owner/repo) is read from `gezelligate.json` →
14
+ // toolchain.catalog.source so users can point at a fork or mirror without
15
+ // editing flags on every command.
12
16
  import crypto from "node:crypto";
13
17
  import path from "node:path";
14
- import { catalogCacheExists, catalogCachePaths, fetchCatalogTarball, projectCatalogDir, resolveLatestCatalogRef } from "./tarball.js";
15
- import { readProjectPin, writeProjectPin } from "./projectPin.js";
18
+ import { catalogCacheExists, catalogCachePaths, fetchCatalogTarball, projectCatalogDir, resolveLatestCatalogRef, DEFAULT_CATALOG_OWNER, DEFAULT_CATALOG_REPO } from "./tarball.js";
19
+ import { readProjectConfig, writeProjectConfig, DEFAULT_CATALOG_SOURCE } from "./projectConfig.js";
16
20
  export async function bootstrapCatalog(opts) {
17
21
  const log = opts.log ?? ((m) => process.stdout.write(m));
18
22
  if (opts.catalogDir) {
@@ -25,26 +29,51 @@ export async function bootstrapCatalog(opts) {
25
29
  ref: "local"
26
30
  };
27
31
  }
28
- const existing = await readProjectPin(opts.projectDir);
29
- let ref = opts.catalogRef ?? existing?.catalogRef;
32
+ const existing = await readProjectConfig(opts.projectDir);
33
+ const configSource = existing?.toolchain.catalog.source;
34
+ const { owner, repo } = resolveOwnerRepo(opts, configSource);
35
+ let ref = opts.catalogRef ?? existing?.toolchain.catalog.ref;
30
36
  if (!ref) {
31
37
  log("→ resolving latest catalog release …\n");
32
- ref = await resolveLatestCatalogRef({ owner: opts.owner, repo: opts.repo });
38
+ ref = await resolveLatestCatalogRef({ owner, repo });
33
39
  log(` latest release: ${ref}\n`);
34
40
  }
35
41
  const destDir = projectCatalogDir(opts.projectDir, ref);
36
42
  if (!(await catalogCacheExists(opts.projectDir, ref))) {
37
- const owner = opts.owner ?? "gezelligate";
38
- const repo = opts.repo ?? "catalog";
39
43
  log(`→ fetching catalog ${owner}/${repo}@${ref} …\n`);
40
- await fetchCatalogTarball({ owner: opts.owner, repo: opts.repo, ref, destDir });
44
+ await fetchCatalogTarball({ owner, repo, ref, destDir });
41
45
  log(` cached at ${destDir}\n`);
42
46
  }
43
- await writeProjectPin(opts.projectDir, {
44
- catalogRef: ref,
45
- projectId: existing?.projectId ?? crypto.randomUUID(),
46
- ...(opts.callerVersion ? { studioVersion: opts.callerVersion } : {})
47
- });
47
+ const now = new Date().toISOString();
48
+ const next = existing
49
+ ? {
50
+ ...existing,
51
+ project: { ...existing.project, lastOpenedAt: now },
52
+ toolchain: {
53
+ ...existing.toolchain,
54
+ ...(opts.callerVersion ? { studioVersion: opts.callerVersion } : {}),
55
+ catalog: {
56
+ source: existing.toolchain.catalog.source,
57
+ ref
58
+ }
59
+ }
60
+ }
61
+ : {
62
+ schemaVersion: 1,
63
+ project: {
64
+ id: crypto.randomUUID(),
65
+ createdAt: now,
66
+ lastOpenedAt: now
67
+ },
68
+ toolchain: {
69
+ ...(opts.callerVersion ? { studioVersion: opts.callerVersion } : {}),
70
+ catalog: {
71
+ source: catalogSourceLabel(opts, configSource, owner, repo),
72
+ ref
73
+ }
74
+ }
75
+ };
76
+ await writeProjectConfig(opts.projectDir, next);
48
77
  const paths = catalogCachePaths(destDir);
49
78
  return {
50
79
  catalogDir: destDir,
@@ -53,4 +82,47 @@ export async function bootstrapCatalog(opts) {
53
82
  ref
54
83
  };
55
84
  }
85
+ function resolveOwnerRepo(opts, configSource) {
86
+ // Explicit opts win — they come from CLI flags or programmatic callers
87
+ // who already know what they want. Otherwise parse from config; fall back
88
+ // to the public defaults.
89
+ if (opts.owner && opts.repo) {
90
+ return { owner: opts.owner, repo: opts.repo };
91
+ }
92
+ if (configSource) {
93
+ const parsed = parseCatalogSource(configSource);
94
+ return {
95
+ owner: opts.owner ?? parsed.owner,
96
+ repo: opts.repo ?? parsed.repo
97
+ };
98
+ }
99
+ return {
100
+ owner: opts.owner ?? DEFAULT_CATALOG_OWNER,
101
+ repo: opts.repo ?? DEFAULT_CATALOG_REPO
102
+ };
103
+ }
104
+ function catalogSourceLabel(opts, configSource, owner, repo) {
105
+ if (configSource)
106
+ return configSource;
107
+ if (opts.owner || opts.repo)
108
+ return `${owner}/${repo}`;
109
+ return DEFAULT_CATALOG_SOURCE;
110
+ }
111
+ /**
112
+ * Accepts `owner/repo`, `github.com/owner/repo`, `https://github.com/owner/repo`,
113
+ * or any of the above with a trailing `.git`. Throws on anything else.
114
+ */
115
+ export function parseCatalogSource(source) {
116
+ const stripped = source
117
+ .trim()
118
+ .replace(/^https?:\/\//i, "")
119
+ .replace(/^github\.com\//i, "")
120
+ .replace(/\.git$/i, "")
121
+ .replace(/\/$/, "");
122
+ const parts = stripped.split("/");
123
+ if (parts.length !== 2 || !parts[0] || !parts[1]) {
124
+ throw new Error(`Invalid catalog source "${source}". Expected "owner/repo" or a github.com URL.`);
125
+ }
126
+ return { owner: parts[0], repo: parts[1] };
127
+ }
56
128
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/catalog/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/catalog/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { ProjectPinSchema, type ProjectPin, PIN_RELATIVE_PATH, readProjectPin, writeProjectPin } from "./projectPin.js";
2
+ export { ProjectConfigSchema, type ProjectConfig, PROJECT_CONFIG_RELATIVE_PATH, DEFAULT_CATALOG_SOURCE, readProjectConfig, writeProjectConfig, migrateLegacyIfNeeded } from "./projectConfig.js";
2
3
  export { DEFAULT_CATALOG_OWNER, DEFAULT_CATALOG_REPO, type CatalogTarballOptions, type CatalogCachePaths, catalogCachePaths, projectCatalogDir, catalogCacheExists, fetchCatalogTarball, resolveLatestCatalogRef } from "./tarball.js";
3
- export { type BootstrapOptions, type ResolvedCatalog, bootstrapCatalog } from "./bootstrap.js";
4
+ export { type BootstrapOptions, type ResolvedCatalog, bootstrapCatalog, parseCatalogSource } from "./bootstrap.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { ProjectPinSchema, PIN_RELATIVE_PATH, readProjectPin, writeProjectPin } from "./projectPin.js";
2
+ export { ProjectConfigSchema, PROJECT_CONFIG_RELATIVE_PATH, DEFAULT_CATALOG_SOURCE, readProjectConfig, writeProjectConfig, migrateLegacyIfNeeded } from "./projectConfig.js";
2
3
  export { DEFAULT_CATALOG_OWNER, DEFAULT_CATALOG_REPO, catalogCachePaths, projectCatalogDir, catalogCacheExists, fetchCatalogTarball, resolveLatestCatalogRef } from "./tarball.js";
3
- export { bootstrapCatalog } from "./bootstrap.js";
4
+ export { bootstrapCatalog, parseCatalogSource } from "./bootstrap.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EACjB,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EAGpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAGL,gBAAgB,EACjB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EACjB,cAAc,EACd,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EAEnB,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EAGpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAGL,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { z } from "zod";
2
+ export declare const PROJECT_CONFIG_RELATIVE_PATH = "gezelligate.json";
3
+ export declare const DEFAULT_CATALOG_SOURCE = "gezelligate/catalog";
4
+ export declare const ProjectConfigSchema: z.ZodObject<{
5
+ schemaVersion: z.ZodLiteral<1>;
6
+ project: z.ZodObject<{
7
+ /** Stable random uuid per project. Identifies the project across runs. */
8
+ id: z.ZodString;
9
+ /** Optional human-friendly name set by the user in the wizard. */
10
+ label: z.ZodOptional<z.ZodString>;
11
+ createdAt: z.ZodString;
12
+ lastOpenedAt: z.ZodString;
13
+ }, "strip", z.ZodTypeAny, {
14
+ id: string;
15
+ createdAt: string;
16
+ lastOpenedAt: string;
17
+ label?: string | undefined;
18
+ }, {
19
+ id: string;
20
+ createdAt: string;
21
+ lastOpenedAt: string;
22
+ label?: string | undefined;
23
+ }>;
24
+ toolchain: z.ZodObject<{
25
+ /** Caller's npm version (studio or cli). Diagnostic only. */
26
+ studioVersion: z.ZodOptional<z.ZodString>;
27
+ catalog: z.ZodObject<{
28
+ /**
29
+ * Where the catalog comes from. Either `owner/repo` (e.g. `gezelligate/catalog`)
30
+ * or a github URL (`https://github.com/owner/repo`). Lets users point at a
31
+ * fork or private mirror.
32
+ */
33
+ source: z.ZodString;
34
+ /** Pinned git ref. Optional only between `project create` and the first bootstrap. */
35
+ ref: z.ZodOptional<z.ZodString>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ source: string;
38
+ ref?: string | undefined;
39
+ }, {
40
+ source: string;
41
+ ref?: string | undefined;
42
+ }>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ catalog: {
45
+ source: string;
46
+ ref?: string | undefined;
47
+ };
48
+ studioVersion?: string | undefined;
49
+ }, {
50
+ catalog: {
51
+ source: string;
52
+ ref?: string | undefined;
53
+ };
54
+ studioVersion?: string | undefined;
55
+ }>;
56
+ defaults: z.ZodOptional<z.ZodObject<{
57
+ /** Pre-fills the wizard for new projects. Does NOT override services/global.yaml.target. */
58
+ renderTarget: z.ZodOptional<z.ZodEnum<["docker", "kubernetes", "both"]>>;
59
+ outputPaths: z.ZodOptional<z.ZodObject<{
60
+ /** Where docker target output is written. Project-relative or absolute. */
61
+ docker: z.ZodOptional<z.ZodString>;
62
+ /** Where kubernetes target output is written. Project-relative or absolute. */
63
+ kubernetes: z.ZodOptional<z.ZodString>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ docker?: string | undefined;
66
+ kubernetes?: string | undefined;
67
+ }, {
68
+ docker?: string | undefined;
69
+ kubernetes?: string | undefined;
70
+ }>>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ renderTarget?: "docker" | "kubernetes" | "both" | undefined;
73
+ outputPaths?: {
74
+ docker?: string | undefined;
75
+ kubernetes?: string | undefined;
76
+ } | undefined;
77
+ }, {
78
+ renderTarget?: "docker" | "kubernetes" | "both" | undefined;
79
+ outputPaths?: {
80
+ docker?: string | undefined;
81
+ kubernetes?: string | undefined;
82
+ } | undefined;
83
+ }>>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ schemaVersion: 1;
86
+ project: {
87
+ id: string;
88
+ createdAt: string;
89
+ lastOpenedAt: string;
90
+ label?: string | undefined;
91
+ };
92
+ toolchain: {
93
+ catalog: {
94
+ source: string;
95
+ ref?: string | undefined;
96
+ };
97
+ studioVersion?: string | undefined;
98
+ };
99
+ defaults?: {
100
+ renderTarget?: "docker" | "kubernetes" | "both" | undefined;
101
+ outputPaths?: {
102
+ docker?: string | undefined;
103
+ kubernetes?: string | undefined;
104
+ } | undefined;
105
+ } | undefined;
106
+ }, {
107
+ schemaVersion: 1;
108
+ project: {
109
+ id: string;
110
+ createdAt: string;
111
+ lastOpenedAt: string;
112
+ label?: string | undefined;
113
+ };
114
+ toolchain: {
115
+ catalog: {
116
+ source: string;
117
+ ref?: string | undefined;
118
+ };
119
+ studioVersion?: string | undefined;
120
+ };
121
+ defaults?: {
122
+ renderTarget?: "docker" | "kubernetes" | "both" | undefined;
123
+ outputPaths?: {
124
+ docker?: string | undefined;
125
+ kubernetes?: string | undefined;
126
+ } | undefined;
127
+ } | undefined;
128
+ }>;
129
+ export type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
130
+ /**
131
+ * Reads the unified project config. Triggers migration from legacy files
132
+ * (`.gezelligate.json` at root, `services/.gezelligate.json`) on first read.
133
+ * Returns null when no config and no legacy files exist.
134
+ */
135
+ export declare function readProjectConfig(projectDir: string): Promise<ProjectConfig | null>;
136
+ /**
137
+ * Atomically writes the unified project config. Creates the project dir if
138
+ * missing. Validates against the schema before writing.
139
+ */
140
+ export declare function writeProjectConfig(projectDir: string, cfg: ProjectConfig): Promise<void>;
141
+ /**
142
+ * Idempotent: if `gezelligate.json` already exists, no-op. Otherwise reads
143
+ * whichever legacy files are present, merges them into a v1 ProjectConfig,
144
+ * writes the new file, and removes the legacy files. The legacy files are
145
+ * only deleted after the new file is durably written.
146
+ *
147
+ * Safe to call from any code path that needs project state — readProjectConfig
148
+ * already does this on every read.
149
+ */
150
+ export declare function migrateLegacyIfNeeded(projectDir: string): Promise<void>;
151
+ //# sourceMappingURL=projectConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../src/catalog/projectConfig.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAC/D,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAyC5D,eAAO,MAAM,mBAAmB;;;QAtC9B,0EAA0E;;QAE1E,kEAAkE;;;;;;;;;;;;;;;;QAkBlE,6DAA6D;;;YAX7D;;;;eAIG;;YAEH,sFAAsF;;;;;;;;;;;;;;;;;;;;;;;QAkBtF,4FAA4F;;;YAP5F,2EAA2E;;YAE3E,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe/E,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAWzF;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAOf;AAaD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC7E"}
@@ -0,0 +1,158 @@
1
+ // Single root-of-truth project config at `<projectDir>/gezelligate.json`.
2
+ // Replaces two earlier hidden files — the studio manifest (.gezelligate.json
3
+ // at the root) and the catalog pin (services/.gezelligate.json) — with one
4
+ // visible JSON document the studio writes and the cli reads. Migration from
5
+ // either legacy file is automatic and idempotent (see migrateLegacyIfNeeded).
6
+ import fs from "node:fs/promises";
7
+ import path from "node:path";
8
+ import crypto from "node:crypto";
9
+ import { z } from "zod";
10
+ import { ProjectPinSchema } from "./projectPin.js";
11
+ export const PROJECT_CONFIG_RELATIVE_PATH = "gezelligate.json";
12
+ export const DEFAULT_CATALOG_SOURCE = "gezelligate/catalog";
13
+ const ProjectSection = z.object({
14
+ /** Stable random uuid per project. Identifies the project across runs. */
15
+ id: z.string().uuid(),
16
+ /** Optional human-friendly name set by the user in the wizard. */
17
+ label: z.string().optional(),
18
+ createdAt: z.string(),
19
+ lastOpenedAt: z.string()
20
+ });
21
+ const CatalogSection = z.object({
22
+ /**
23
+ * Where the catalog comes from. Either `owner/repo` (e.g. `gezelligate/catalog`)
24
+ * or a github URL (`https://github.com/owner/repo`). Lets users point at a
25
+ * fork or private mirror.
26
+ */
27
+ source: z.string().min(1),
28
+ /** Pinned git ref. Optional only between `project create` and the first bootstrap. */
29
+ ref: z.string().min(1).optional()
30
+ });
31
+ const ToolchainSection = z.object({
32
+ /** Caller's npm version (studio or cli). Diagnostic only. */
33
+ studioVersion: z.string().optional(),
34
+ catalog: CatalogSection
35
+ });
36
+ const OutputPathsSection = z.object({
37
+ /** Where docker target output is written. Project-relative or absolute. */
38
+ docker: z.string().min(1).optional(),
39
+ /** Where kubernetes target output is written. Project-relative or absolute. */
40
+ kubernetes: z.string().min(1).optional()
41
+ });
42
+ const DefaultsSection = z.object({
43
+ /** Pre-fills the wizard for new projects. Does NOT override services/global.yaml.target. */
44
+ renderTarget: z.enum(["docker", "kubernetes", "both"]).optional(),
45
+ outputPaths: OutputPathsSection.optional()
46
+ });
47
+ export const ProjectConfigSchema = z.object({
48
+ schemaVersion: z.literal(1),
49
+ project: ProjectSection,
50
+ toolchain: ToolchainSection,
51
+ defaults: DefaultsSection.optional()
52
+ });
53
+ /**
54
+ * Reads the unified project config. Triggers migration from legacy files
55
+ * (`.gezelligate.json` at root, `services/.gezelligate.json`) on first read.
56
+ * Returns null when no config and no legacy files exist.
57
+ */
58
+ export async function readProjectConfig(projectDir) {
59
+ await migrateLegacyIfNeeded(projectDir);
60
+ const configPath = path.join(projectDir, PROJECT_CONFIG_RELATIVE_PATH);
61
+ let raw;
62
+ try {
63
+ raw = await fs.readFile(configPath, "utf8");
64
+ }
65
+ catch (err) {
66
+ if (isErrnoException(err) && err.code === "ENOENT")
67
+ return null;
68
+ throw err;
69
+ }
70
+ return ProjectConfigSchema.parse(JSON.parse(raw));
71
+ }
72
+ /**
73
+ * Atomically writes the unified project config. Creates the project dir if
74
+ * missing. Validates against the schema before writing.
75
+ */
76
+ export async function writeProjectConfig(projectDir, cfg) {
77
+ const validated = ProjectConfigSchema.parse(cfg);
78
+ await fs.mkdir(projectDir, { recursive: true });
79
+ const finalPath = path.join(projectDir, PROJECT_CONFIG_RELATIVE_PATH);
80
+ const tmpPath = `${finalPath}.${process.pid}.${Date.now()}.tmp`;
81
+ await fs.writeFile(tmpPath, JSON.stringify(validated, null, 2) + "\n", "utf8");
82
+ await fs.rename(tmpPath, finalPath);
83
+ }
84
+ const LEGACY_ROOT_MANIFEST_PATH = ".gezelligate.json";
85
+ const LEGACY_PIN_PATH = "services/.gezelligate.json";
86
+ const LegacyManifestSchema = z.object({
87
+ schemaVersion: z.number().optional(),
88
+ createdAt: z.string().optional(),
89
+ lastOpenedAt: z.string().optional(),
90
+ label: z.string().optional()
91
+ });
92
+ /**
93
+ * Idempotent: if `gezelligate.json` already exists, no-op. Otherwise reads
94
+ * whichever legacy files are present, merges them into a v1 ProjectConfig,
95
+ * writes the new file, and removes the legacy files. The legacy files are
96
+ * only deleted after the new file is durably written.
97
+ *
98
+ * Safe to call from any code path that needs project state — readProjectConfig
99
+ * already does this on every read.
100
+ */
101
+ export async function migrateLegacyIfNeeded(projectDir) {
102
+ const newPath = path.join(projectDir, PROJECT_CONFIG_RELATIVE_PATH);
103
+ if (await pathExists(newPath))
104
+ return;
105
+ const manifestPath = path.join(projectDir, LEGACY_ROOT_MANIFEST_PATH);
106
+ const pinPath = path.join(projectDir, LEGACY_PIN_PATH);
107
+ const [legacyManifest, legacyPin] = await Promise.all([
108
+ readJsonOrNull(manifestPath, LegacyManifestSchema),
109
+ readJsonOrNull(pinPath, ProjectPinSchema)
110
+ ]);
111
+ if (!legacyManifest && !legacyPin)
112
+ return;
113
+ const now = new Date().toISOString();
114
+ const merged = {
115
+ schemaVersion: 1,
116
+ project: {
117
+ id: legacyPin?.projectId ?? crypto.randomUUID(),
118
+ ...(legacyManifest?.label ? { label: legacyManifest.label } : {}),
119
+ createdAt: legacyManifest?.createdAt ?? now,
120
+ lastOpenedAt: legacyManifest?.lastOpenedAt ?? now
121
+ },
122
+ toolchain: {
123
+ ...(legacyPin?.studioVersion ? { studioVersion: legacyPin.studioVersion } : {}),
124
+ catalog: {
125
+ source: DEFAULT_CATALOG_SOURCE,
126
+ ...(legacyPin?.catalogRef ? { ref: legacyPin.catalogRef } : {})
127
+ }
128
+ }
129
+ };
130
+ await writeProjectConfig(projectDir, merged);
131
+ await Promise.all([
132
+ fs.rm(pinPath, { force: true }),
133
+ fs.rm(manifestPath, { force: true })
134
+ ]);
135
+ }
136
+ async function readJsonOrNull(p, schema) {
137
+ try {
138
+ const raw = await fs.readFile(p, "utf8");
139
+ const parsed = schema.safeParse(JSON.parse(raw));
140
+ return parsed.success ? parsed.data : null;
141
+ }
142
+ catch {
143
+ return null;
144
+ }
145
+ }
146
+ async function pathExists(p) {
147
+ try {
148
+ await fs.access(p);
149
+ return true;
150
+ }
151
+ catch {
152
+ return false;
153
+ }
154
+ }
155
+ function isErrnoException(err) {
156
+ return err instanceof Error && "code" in err;
157
+ }
158
+ //# sourceMappingURL=projectConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/catalog/projectConfig.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAE9E,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AAEpE,MAAM,CAAC,MAAM,4BAA4B,GAAG,kBAAkB,CAAC;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAE5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,kEAAkE;IAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,sFAAsF;IACtF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,6DAA6D;IAC7D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,2EAA2E;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,+EAA+E;IAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjE,WAAW,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;IACvE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChE,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,GAAkB;IAElB,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AACtD,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAErD,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAGH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,UAAkB;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;IACpE,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IAEtC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpD,cAAc,CAAiB,YAAY,EAAE,oBAAoB,CAAC;QAClE,cAAc,CAAa,OAAO,EAAE,gBAAgB,CAAC;KACtD,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS;QAAE,OAAO;IAE1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAAkB;QAC5B,aAAa,EAAE,CAAC;QAChB,OAAO,EAAE;YACP,EAAE,EAAE,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;YAC/C,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,SAAS,EAAE,cAAc,EAAE,SAAS,IAAI,GAAG;YAC3C,YAAY,EAAE,cAAc,EAAE,YAAY,IAAI,GAAG;SAClD;QACD,SAAS,EAAE;YACT,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,OAAO,EAAE;gBACP,MAAM,EAAE,sBAAsB;gBAC9B,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChE;SACF;KACF,CAAC;IAEF,MAAM,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC/B,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAAI,CAAS,EAAE,MAAoB;IAC9D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,OAAO,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC;AAC/C,CAAC"}
@@ -16,6 +16,7 @@ export declare const ProjectPinSchema: z.ZodObject<{
16
16
  studioVersion?: string | undefined;
17
17
  }>;
18
18
  export type ProjectPin = z.infer<typeof ProjectPinSchema>;
19
+ /** @deprecated Pin moved into `gezelligate.json` at the project root. Kept for callers that grep for it. */
19
20
  export declare const PIN_RELATIVE_PATH = "services/.gezelligate.json";
20
21
  export declare function readProjectPin(projectDir: string): Promise<ProjectPin | null>;
21
22
  export declare function writeProjectPin(projectDir: string, pin: ProjectPin): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"projectPin.d.ts","sourceRoot":"","sources":["../../src/catalog/projectPin.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;IAC3B,oFAAoF;;IAEpF,8FAA8F;;IAE9F,wFAAwF;;;;;;;;;;EAExF,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAUnF;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxF"}
1
+ {"version":3,"file":"projectPin.d.ts","sourceRoot":"","sources":["../../src/catalog/projectPin.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;IAC3B,oFAAoF;;IAEpF,8FAA8F;;IAE9F,wFAAwF;;;;;;;;;;EAExF,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,4GAA4G;AAC5G,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CASnF;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCxF"}
@@ -1,9 +1,8 @@
1
- // Per-project pin recorded at `services/.gezelligate.json`. Identifies which
2
- // catalog ref the project was initialized against so subsequent studio/cli
3
- // runs don't silently upgrade the user has to opt in via
4
- // `gezelligate catalog update`.
5
- import fs from "node:fs/promises";
6
- import path from "node:path";
1
+ // Legacy "project pin" surface. The pin itself moved into the unified
2
+ // `gezelligate.json` at the project root (see projectConfig.ts), but this
3
+ // module still exists so external callers don't need a coordinated rename.
4
+ // Reads/writes proxy through readProjectConfig/writeProjectConfig — the
5
+ // legacy `services/.gezelligate.json` file is migrated lazily on first read.
7
6
  import { z } from "zod";
8
7
  export const ProjectPinSchema = z.object({
9
8
  /** Git ref of the gezelligate/catalog repo (release tag preferred, sha allowed). */
@@ -13,27 +12,56 @@ export const ProjectPinSchema = z.object({
13
12
  /** Stable random uuid per project. Lets the bridge / analytics distinguish projects. */
14
13
  projectId: z.string().uuid()
15
14
  });
15
+ /** @deprecated Pin moved into `gezelligate.json` at the project root. Kept for callers that grep for it. */
16
16
  export const PIN_RELATIVE_PATH = "services/.gezelligate.json";
17
17
  export async function readProjectPin(projectDir) {
18
- const pinPath = path.join(projectDir, PIN_RELATIVE_PATH);
19
- let raw;
20
- try {
21
- raw = await fs.readFile(pinPath, "utf8");
22
- }
23
- catch (err) {
24
- if (isNodeErrnoException(err) && err.code === "ENOENT")
25
- return null;
26
- throw err;
27
- }
28
- return ProjectPinSchema.parse(JSON.parse(raw));
18
+ const { readProjectConfig } = await import("./projectConfig.js");
19
+ const cfg = await readProjectConfig(projectDir);
20
+ if (!cfg || !cfg.toolchain.catalog.ref)
21
+ return null;
22
+ return {
23
+ catalogRef: cfg.toolchain.catalog.ref,
24
+ projectId: cfg.project.id,
25
+ ...(cfg.toolchain.studioVersion ? { studioVersion: cfg.toolchain.studioVersion } : {})
26
+ };
29
27
  }
30
28
  export async function writeProjectPin(projectDir, pin) {
31
- const pinPath = path.join(projectDir, PIN_RELATIVE_PATH);
32
- await fs.mkdir(path.dirname(pinPath), { recursive: true });
33
29
  const validated = ProjectPinSchema.parse(pin);
34
- await fs.writeFile(pinPath, JSON.stringify(validated, null, 2) + "\n", "utf8");
35
- }
36
- function isNodeErrnoException(err) {
37
- return err instanceof Error && "code" in err;
30
+ const { readProjectConfig, writeProjectConfig, DEFAULT_CATALOG_SOURCE } = await import("./projectConfig.js");
31
+ const existing = await readProjectConfig(projectDir);
32
+ const now = new Date().toISOString();
33
+ const next = existing
34
+ ? {
35
+ ...existing,
36
+ project: {
37
+ ...existing.project,
38
+ id: validated.projectId,
39
+ lastOpenedAt: now
40
+ },
41
+ toolchain: {
42
+ ...existing.toolchain,
43
+ ...(validated.studioVersion ? { studioVersion: validated.studioVersion } : {}),
44
+ catalog: {
45
+ source: existing.toolchain.catalog.source,
46
+ ref: validated.catalogRef
47
+ }
48
+ }
49
+ }
50
+ : {
51
+ schemaVersion: 1,
52
+ project: {
53
+ id: validated.projectId,
54
+ createdAt: now,
55
+ lastOpenedAt: now
56
+ },
57
+ toolchain: {
58
+ ...(validated.studioVersion ? { studioVersion: validated.studioVersion } : {}),
59
+ catalog: {
60
+ source: DEFAULT_CATALOG_SOURCE,
61
+ ref: validated.catalogRef
62
+ }
63
+ }
64
+ };
65
+ await writeProjectConfig(projectDir, next);
38
66
  }
39
67
  //# sourceMappingURL=projectPin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectPin.js","sourceRoot":"","sources":["../../src/catalog/projectPin.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2EAA2E;AAC3E,2DAA2D;AAC3D,gCAAgC;AAEhC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,oFAAoF;IACpF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,8FAA8F;IAC9F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,wFAAwF;IACxF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CAC7B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACzD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACpE,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,GAAe;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY;IACxC,OAAO,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"projectPin.js","sourceRoot":"","sources":["../../src/catalog/projectPin.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,5 +11,5 @@ export { loadProviders } from "./providers.js";
11
11
  export { loadLifecycle, type ClusterLifecycle, type ClusterLifecycleStatic, type ClusterLifecycleDynamic, type LifecycleContext, type LoadedProvider, type ValidateResult } from "./providers/lifecycle.js";
12
12
  export type { CatalogReader, CatalogIndex, RecipeMeta, ProviderMeta, RecipeBundle, ProviderBundle } from "./catalog/reader.js";
13
13
  export type { KubernetesExtras, RenderDockerFn, RenderKubernetesFn, RenderTargets, FileTree } from "./target.js";
14
- export { ProjectPinSchema, type ProjectPin, PIN_RELATIVE_PATH, readProjectPin, writeProjectPin, DEFAULT_CATALOG_OWNER, DEFAULT_CATALOG_REPO, type CatalogTarballOptions, type CatalogCachePaths, catalogCachePaths, projectCatalogDir, catalogCacheExists, fetchCatalogTarball, resolveLatestCatalogRef, type BootstrapOptions, type ResolvedCatalog, bootstrapCatalog } from "./catalog/index.js";
14
+ export { ProjectPinSchema, type ProjectPin, PIN_RELATIVE_PATH, readProjectPin, writeProjectPin, ProjectConfigSchema, type ProjectConfig, PROJECT_CONFIG_RELATIVE_PATH, DEFAULT_CATALOG_SOURCE, readProjectConfig, writeProjectConfig, migrateLegacyIfNeeded, DEFAULT_CATALOG_OWNER, DEFAULT_CATALOG_REPO, type CatalogTarballOptions, type CatalogCachePaths, catalogCachePaths, projectCatalogDir, catalogCacheExists, fetchCatalogTarball, resolveLatestCatalogRef, type BootstrapOptions, type ResolvedCatalog, bootstrapCatalog, parseCatalogSource } from "./catalog/index.js";
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClH,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClH,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,KAAK,aAAa,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -13,5 +13,5 @@ export { ProviderYamlSchema } from "./schema/providerYaml.js";
13
13
  export { loadClusterConfig } from "./cluster.js";
14
14
  export { loadProviders } from "./providers.js";
15
15
  export { loadLifecycle } from "./providers/lifecycle.js";
16
- export { ProjectPinSchema, PIN_RELATIVE_PATH, readProjectPin, writeProjectPin, DEFAULT_CATALOG_OWNER, DEFAULT_CATALOG_REPO, catalogCachePaths, projectCatalogDir, catalogCacheExists, fetchCatalogTarball, resolveLatestCatalogRef, bootstrapCatalog } from "./catalog/index.js";
16
+ export { ProjectPinSchema, PIN_RELATIVE_PATH, readProjectPin, writeProjectPin, ProjectConfigSchema, PROJECT_CONFIG_RELATIVE_PATH, DEFAULT_CATALOG_SOURCE, readProjectConfig, writeProjectConfig, migrateLegacyIfNeeded, DEFAULT_CATALOG_OWNER, DEFAULT_CATALOG_REPO, catalogCachePaths, projectCatalogDir, catalogCacheExists, fetchCatalogTarball, resolveLatestCatalogRef, bootstrapCatalog, parseCatalogSource } from "./catalog/index.js";
17
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,iFAAiF;AACjF,+EAA+E;AAC/E,+CAA+C;AAE/C,OAAO,EAAE,MAAM,EAAyC,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAoB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAsC,MAAM,wBAAwB,CAAC;AAClH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAqB,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,aAAa,EAOd,MAAM,0BAA0B,CAAC;AAgBlC,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EAGpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EAGvB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,iFAAiF;AACjF,+EAA+E;AAC/E,+CAA+C;AAE/C,OAAO,EAAE,MAAM,EAAyC,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAoB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAsC,MAAM,wBAAwB,CAAC;AAClH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAqB,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,aAAa,EAOd,MAAM,0BAA0B,CAAC;AAgBlC,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EAEnB,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EAGpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EAGvB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC"}
package/dist/render.d.ts CHANGED
@@ -6,6 +6,15 @@ export interface RenderOptions {
6
6
  repositoryDir: string;
7
7
  /** Provider-catalog root: where provider.yaml + templates live. Defaults to projectDir/providers. */
8
8
  providersDir?: string;
9
+ /**
10
+ * Per-target output overrides. Each path is resolved relative to projectDir
11
+ * if not absolute. Defaults to `<projectDir>/output/{docker,kubernetes}`.
12
+ * The secrets summary always lives at `<projectDir>/output/secrets-summary.md`.
13
+ */
14
+ outputPaths?: {
15
+ docker?: string;
16
+ kubernetes?: string;
17
+ };
9
18
  /**
10
19
  * Target renderers, injected by the caller. Required for whichever target the
11
20
  * project's global.yaml selects (`docker`, `kubernetes`, or `both`). Core has
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoBjD,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;IACtB,qGAAqG;IACrG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA+SvE"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoBjD,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;IACtB,qGAAqG;IACrG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD;;;;;OAKG;IACH,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAuTvE"}
package/dist/render.js CHANGED
@@ -22,6 +22,12 @@ export async function render(opts) {
22
22
  const providersDir = opts.providersDir ?? path.join(opts.projectDir, "providers");
23
23
  const servicesDir = path.join(opts.projectDir, "services");
24
24
  const outputDir = path.join(opts.projectDir, "output");
25
+ const dockerOut = opts.outputPaths?.docker
26
+ ? path.resolve(opts.projectDir, opts.outputPaths.docker)
27
+ : path.join(outputDir, "docker");
28
+ const k8sOut = opts.outputPaths?.kubernetes
29
+ ? path.resolve(opts.projectDir, opts.outputPaths.kubernetes)
30
+ : path.join(outputDir, "kubernetes");
25
31
  const global = await loadGlobalConfig(opts.projectDir);
26
32
  const effectiveGlobal = {
27
33
  ...global,
@@ -156,7 +162,6 @@ export async function render(opts) {
156
162
  if (bridgeManifestJson) {
157
163
  dockerFiles["bridge-manifest.json"] = bridgeManifestJson;
158
164
  }
159
- const dockerOut = path.join(outputDir, "docker");
160
165
  await fs.rm(dockerOut, { recursive: true, force: true });
161
166
  await fs.mkdir(dockerOut, { recursive: true });
162
167
  for (const [name, content] of Object.entries(dockerFiles)) {
@@ -201,7 +206,6 @@ export async function render(opts) {
201
206
  bridgeIconsByService,
202
207
  dedicatedPeerManifests: dedicatedK8sManifests
203
208
  }, lbAnnotations);
204
- const k8sOut = path.join(outputDir, "kubernetes");
205
209
  // Preserve state-bearing files across re-renders. Wiping `terraform.tfstate`
206
210
  // would orphan every cloud resource Terraform has created, forcing a
207
211
  // painful re-import on the next deploy. Same deal for the kubeconfig we
@@ -218,7 +222,9 @@ export async function render(opts) {
218
222
  "kubeconfig.yaml"
219
223
  ];
220
224
  const preserved = [];
221
- const tmpRoot = path.join(outputDir, `.preserve-${Date.now()}`);
225
+ // Keep tmpRoot adjacent to k8sOut so renames stay on the same filesystem
226
+ // even when outputPaths.kubernetes redirects to a custom mount.
227
+ const tmpRoot = path.join(path.dirname(k8sOut), `.preserve-${path.basename(k8sOut)}-${Date.now()}`);
222
228
  for (const rel of preservedRelPaths) {
223
229
  const abs = path.join(k8sOut, rel);
224
230
  try {
@@ -260,7 +266,9 @@ export async function render(opts) {
260
266
  }
261
267
  }
262
268
  }
263
- // Secrets summary.
269
+ // Secrets summary. outputDir may not exist yet when both targets have
270
+ // custom outputPaths that point elsewhere — make sure it does.
271
+ await fs.mkdir(outputDir, { recursive: true });
264
272
  const hiddenServices = new Set([...repo.entries()].filter(([, def]) => def.hidden === true).map(([name]) => name));
265
273
  await fs.writeFile(path.join(outputDir, "secrets-summary.md"), buildSecretsSummary(envByService, hiddenServices), "utf8");
266
274
  outputFileList.push("secrets-summary.md");
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gezelligate/core",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "description": "Core engine for Gezelligate: schema, loader, templating, validation, and target abstraction. Consumed by @gezelligate/{cli,studio,k8s,docker,dev}.",
6
6
  "license": "MIT",