@substrat-run/contracts 0.56.0 → 0.57.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.
package/dist/ci.d.ts CHANGED
@@ -88,7 +88,24 @@ export interface DeployWorkflowOptions {
88
88
  cpUrl: string;
89
89
  /** Defaults to `trunk`. */
90
90
  release?: ReleaseMode;
91
+ /**
92
+ * The vertical's directory INSIDE the repo, for a monorepo whose package is not the
93
+ * repo root (e.g. `demos/auth-server`). Every push/preview runs against this directory,
94
+ * the version gates read ITS package.json, and the triggers gain a `paths:` filter so a
95
+ * merge that never touched the package does not release it. Install still runs at the
96
+ * repo root — a workspace repo's lockfile lives there. Omitted = the repo root, exactly
97
+ * the file this generator always produced.
98
+ */
99
+ path?: string;
91
100
  }
101
+ /**
102
+ * Normalize a package directory to the repo-relative form the workflow embeds: no leading
103
+ * `./`, no trailing `/`. Root spellings (``, `.`, `./`) collapse to undefined so callers
104
+ * cannot generate a `push ./` that means the same thing as the pathless file but diffs
105
+ * against it. Traversal is refused here — a generator shared by three writers must not
106
+ * rely on every caller validating.
107
+ */
108
+ export declare function normalizeWorkflowDir(path: string | undefined): string | undefined;
92
109
  /**
93
110
  * The workflow the one-click setup commits and `substrat init --ci github` writes.
94
111
  *
package/dist/ci.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../src/ci.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,aAAc,MAAM,KAAG,MAA0B,CAAC;AAEzE;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,aAAc,MAAM,SAAS,MAAM,GAAG,MAAM,KAAG,MAChD,CAAC;AAE5B;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,aAAc,MAAM,KAAG,MAA2B,CAAC;AAMrF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,CAa1F;AAED,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAO,MACiF,CAAC;AAMvH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA8LtE"}
1
+ {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../src/ci.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,aAAc,MAAM,KAAG,MAA0B,CAAC;AAEzE;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,aAAc,MAAM,SAAS,MAAM,GAAG,MAAM,KAAG,MAChD,CAAC;AAE5B;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,aAAc,MAAM,KAAG,MAA2B,CAAC;AAMrF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,CAa1F;AAED,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAO,MACiF,CAAC;AAMvH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQjF;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAuNtE"}
package/dist/ci.js CHANGED
@@ -77,6 +77,24 @@ export function previewCommentBody(urls) {
77
77
  }
78
78
  /** The sticky comment after the PR closed and the preview forks were deleted. */
79
79
  export const previewReapedBody = () => `${PREVIEW_COMMENT_MARKER}\n🔎 **Substrat preview:** reaped — this PR is closed and the preview forks were deleted.`;
80
+ /**
81
+ * Normalize a package directory to the repo-relative form the workflow embeds: no leading
82
+ * `./`, no trailing `/`. Root spellings (``, `.`, `./`) collapse to undefined so callers
83
+ * cannot generate a `push ./` that means the same thing as the pathless file but diffs
84
+ * against it. Traversal is refused here — a generator shared by three writers must not
85
+ * rely on every caller validating.
86
+ */
87
+ export function normalizeWorkflowDir(path) {
88
+ if (path === undefined)
89
+ return undefined;
90
+ const trimmed = path.replace(/^\.\//, '').replace(/\/+$/, '');
91
+ if (trimmed === '' || trimmed === '.')
92
+ return undefined;
93
+ if (trimmed.startsWith('/') || trimmed.split('/').some((seg) => seg === '' || seg === '.' || seg === '..')) {
94
+ throw new Error(`not a repo-relative package directory: '${path}'`);
95
+ }
96
+ return trimmed;
97
+ }
80
98
  /** Render a comment body as a single-quoted `printf` format string (literal `\n`, `%s` holes). */
81
99
  const printfFormat = (body) => body.replace(/\n/g, '\\n');
82
100
  /**
@@ -101,6 +119,10 @@ export function deployWorkflowYaml(opts) {
101
119
  const { branch, slug, cpUrl } = opts;
102
120
  const release = opts.release ?? 'trunk';
103
121
  const cli = 'npx @substrat-run/cli';
122
+ // The package directory: what push/preview build, whose package.json owns the version.
123
+ const path = normalizeWorkflowDir(opts.path);
124
+ const dir = path ?? '.';
125
+ const pkgRef = path ? `./${path}/package.json` : './package.json';
104
126
  // The install block repeats across jobs (self-contained file, see above). `fetch-depth: 2`
105
127
  // is what lets the changesets release gate diff package.json against the previous commit.
106
128
  const setup = (fetchDepth) => ` - uses: actions/checkout@v4${fetchDepth ? `\n with:\n fetch-depth: ${fetchDepth}` : ''}
@@ -131,19 +153,19 @@ export function deployWorkflowYaml(opts) {
131
153
  ${cpEnv}
132
154
  run: |
133
155
  set -euo pipefail
134
- CUR=$(node -p "require('./package.json').version")
135
- PREV=$(git show HEAD^:package.json 2>/dev/null | node -pe "JSON.parse(require('fs').readFileSync(0,'utf8')).version" 2>/dev/null || echo '')
156
+ CUR=$(node -p "require('${pkgRef}').version")
157
+ PREV=$(git show HEAD^:${path ? `${path}/package.json` : 'package.json'} 2>/dev/null | node -pe "JSON.parse(require('fs').readFileSync(0,'utf8')).version" 2>/dev/null || echo '')
136
158
  if [ "$CUR" = "$PREV" ]; then
137
159
  echo "package.json version is still $CUR — this merge landed a changeset, not a release. Skipping prod."
138
160
  exit 0
139
161
  fi
140
162
  echo "releasing $CUR (was \${PREV:-none})"
141
- ${cli} push . --slug ${slug} --version "$CUR" --promote prod`
163
+ ${cli} push ${dir} --slug ${slug} --version "$CUR" --promote prod`
142
164
  : ` - name: Release to prod
143
165
  ${cpEnv}
144
166
  run: |
145
167
  set -euo pipefail
146
- ${cli} push . --slug ${slug} --promote prod`;
168
+ ${cli} push ${dir} --slug ${slug} --promote prod`;
147
169
  // --- the "tracks main" test environment ---------------------------------------------
148
170
  //
149
171
  // Runs on EVERY merge, release or not — that is the point of a test env: it is always the
@@ -157,8 +179,8 @@ ${cpEnv}
157
179
  ${cpEnv}
158
180
  run: |
159
181
  set -euo pipefail
160
- BASE=$(node -p "require('./package.json').version")
161
- ${cli} push . --slug ${slug} --version "$BASE-test.\${{ github.run_number }}" | tee push.out
182
+ BASE=$(node -p "require('${pkgRef}').version")
183
+ ${cli} push ${dir} --slug ${slug} --version "$BASE-test.\${{ github.run_number }}" | tee push.out
162
184
  # '|| true' so an unmatched grep does not trip pipefail before the message below —
163
185
  # "could not read the pushed version id" beats a bare exit 1 from grep.
164
186
  VID=$(grep -F '✓ pushed' push.out | grep -oE 'version [A-Za-z0-9]+' | head -1 | cut -d' ' -f2 || true)
@@ -172,7 +194,7 @@ ${cpEnv}
172
194
  ${cpEnv}
173
195
  run: |
174
196
  set -euo pipefail
175
- ${cli} preview create . --slug ${slug} --tag pr-\${{ github.event.number }} | tee preview.out
197
+ ${cli} preview create ${dir} --slug ${slug} --tag pr-\${{ github.event.number }} | tee preview.out
176
198
  # Take the URL from the CLI success line (the ✓ marker) only — the push it runs
177
199
  # first also prints an https:// *deploy endpoint* we must never mistake for a preview.
178
200
  grep -F '✓ preview' preview.out | grep -oE 'https://[a-zA-Z0-9.:/_-]+' | tail -1 > preview.url || true
@@ -184,7 +206,7 @@ ${cpEnv}
184
206
  # A FRESH scope, bound once and never rebound, so this URL is frozen to this build
185
207
  # forever. Clean-room (--empty) rather than a fork: a throwaway per build should not
186
208
  # copy prod data every push. Short TTL — the sticky preview is the one that lives.
187
- ${cli} preview create . --slug ${slug} \\
209
+ ${cli} preview create ${dir} --slug ${slug} \\
188
210
  --tag pr-\${{ github.event.number }}-\${{ github.run_id }} --empty --ttl 24h | tee build.out
189
211
  grep -F '✓ preview' build.out | grep -oE 'https://[a-zA-Z0-9.:/_-]+' | tail -1 > build.url || true`;
190
212
  // The comment body comes from previewCommentBody() so the CI-written and platform-written
@@ -227,6 +249,22 @@ ${cpEnv}
227
249
  - name: Reap the preview
228
250
  ${cpEnv}
229
251
  run: ${cli} preview delete --slug ${slug} --tag pr-\${{ github.event.number }}`;
252
+ // A nested package only deploys when a change could have affected it. The filter is
253
+ // deliberately editable prose, not policy: a workspace package that consumes SIBLING
254
+ // packages should add their paths, or delete the filter to deploy on every merge.
255
+ const pathsFilter = path
256
+ ? `
257
+ # Only changes that can affect ${path} deploy it. If this package depends on other
258
+ # directories of the repo (workspace packages, shared config), add their paths here —
259
+ # or remove the filter to build on every merge.
260
+ paths:
261
+ - '${path}/**'
262
+ - '.github/workflows/**'
263
+ - 'package.json'
264
+ - 'pnpm-lock.yaml'
265
+ - 'yarn.lock'
266
+ - 'package-lock.json'`
267
+ : '';
230
268
  const releaseNote = release === 'changesets'
231
269
  ? ` # Release train: the version lives in package.json and only a version PR moves it, so a
232
270
  # merge releases ONLY when that version changed. Every merge still updates the test env.`
@@ -236,7 +274,9 @@ ${cpEnv}
236
274
 
237
275
  # Generated by Substrat (substrat init --ci github). The workflow this encodes — one prod
238
276
  # channel, previews as the only non-prod environment — is documented at
239
- # https://substrat.net/guide/environments-and-previews
277
+ # https://substrat.net/guide/environments-and-previews${path
278
+ ? `\n#\n# Monorepo: this deploys the '${slug}' vertical from ${path}/ (dependencies still\n# install at the repo root — the workspace lockfile lives there).`
279
+ : ''}
240
280
  #
241
281
  # Optional repository variables (Settings → Secrets and variables → Actions → Variables):
242
282
  # SUBSTRAT_TEST_SCOPE_ID a long-lived scope rebound to every merge (the test env)
@@ -244,11 +284,11 @@ ${cpEnv}
244
284
 
245
285
  on:
246
286
  push:
247
- branches: [${branch}]
287
+ branches: [${branch}]${pathsFilter}
248
288
  # Per-PR previews: open/update a PR → a preview instance running the PR's code against a
249
289
  # FORK of prod on its own URL; close the PR → it is reaped (the TTL is the GC backstop).
250
290
  pull_request:
251
- types: [opened, synchronize, reopened, closed]
291
+ types: [opened, synchronize, reopened, closed]${pathsFilter}
252
292
 
253
293
  jobs:
254
294
  deploy:
package/dist/ci.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ci.js","sourceRoot":"","sources":["../src/ci.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci.js","sourceRoot":"","sources":["../src/ci.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/contracts",
3
- "version": "0.56.0",
3
+ "version": "0.57.0",
4
4
  "description": "Substrat kernel contract schemas — Zod is the source of truth (master plan D-22); OAS/JSON Schema are emitted artifacts",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {