@smoothbricks/cli 0.10.5 → 0.10.7

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.
Files changed (65) hide show
  1. package/dist/cli.js +3 -2
  2. package/dist/github-ci/index.d.ts +1 -0
  3. package/dist/github-ci/index.d.ts.map +1 -1
  4. package/dist/github-ci/index.js +28 -5
  5. package/dist/lib/json.d.ts +3 -1
  6. package/dist/lib/json.d.ts.map +1 -1
  7. package/dist/lib/json.js +5 -20
  8. package/dist/lib/workspace.d.ts.map +1 -1
  9. package/dist/lib/workspace.js +1 -0
  10. package/dist/monorepo/ci-workflow.d.ts +2 -0
  11. package/dist/monorepo/ci-workflow.d.ts.map +1 -1
  12. package/dist/monorepo/ci-workflow.js +10 -4
  13. package/dist/monorepo/github-runs-on.d.ts +14 -0
  14. package/dist/monorepo/github-runs-on.d.ts.map +1 -0
  15. package/dist/monorepo/github-runs-on.js +43 -0
  16. package/dist/monorepo/index.d.ts +2 -2
  17. package/dist/monorepo/index.d.ts.map +1 -1
  18. package/dist/monorepo/index.js +7 -7
  19. package/dist/monorepo/managed-files.d.ts +14 -3
  20. package/dist/monorepo/managed-files.d.ts.map +1 -1
  21. package/dist/monorepo/managed-files.js +54 -74
  22. package/dist/monorepo/package-policy.js +2 -2
  23. package/dist/monorepo/packs/index.d.ts.map +1 -1
  24. package/dist/monorepo/packs/index.js +3 -1
  25. package/dist/monorepo/publish-workflow.d.ts +3 -0
  26. package/dist/monorepo/publish-workflow.d.ts.map +1 -1
  27. package/dist/monorepo/publish-workflow.js +17 -14
  28. package/dist/monorepo/runtime.d.ts +2 -2
  29. package/dist/monorepo/runtime.d.ts.map +1 -1
  30. package/dist/monorepo/runtime.js +11 -16
  31. package/dist/monorepo/tool-validation.d.ts.map +1 -1
  32. package/dist/monorepo/tool-validation.js +20 -23
  33. package/dist/nx/index.d.ts +7 -4
  34. package/dist/nx/index.d.ts.map +1 -1
  35. package/dist/nx/index.js +117 -56
  36. package/managed/raw/tooling/devenv +71 -0
  37. package/managed/raw/tooling/direnv/github-actions-bootstrap.sh +24 -7
  38. package/managed/templates/github/actions/cache-nix-devenv/action.yml +13 -11
  39. package/managed/templates/github/actions/save-nix-devenv/action.yml +34 -3
  40. package/managed/templates/github/actions/setup-devenv/action.yml +44 -15
  41. package/managed/templates/github/workflows/managed-files.yml +64 -12
  42. package/package.json +4 -4
  43. package/src/cli.ts +10 -3
  44. package/src/github-ci/index.test.ts +53 -4
  45. package/src/github-ci/index.ts +37 -5
  46. package/src/lib/json.ts +3 -1
  47. package/src/lib/workspace.ts +1 -0
  48. package/src/monorepo/__tests__/ci-workflow.test.ts +37 -1
  49. package/src/monorepo/__tests__/publish-workflow.test.ts +39 -4
  50. package/src/monorepo/ci-workflow.ts +14 -4
  51. package/src/monorepo/github-runs-on.ts +45 -0
  52. package/src/monorepo/index.ts +7 -7
  53. package/src/monorepo/managed-files.test.ts +58 -0
  54. package/src/monorepo/managed-files.ts +59 -76
  55. package/src/monorepo/package-policy.test.ts +31 -0
  56. package/src/monorepo/package-policy.ts +2 -2
  57. package/src/monorepo/packs/index.ts +3 -1
  58. package/src/monorepo/publish-workflow.ts +28 -15
  59. package/src/monorepo/runtime.test.ts +23 -17
  60. package/src/monorepo/runtime.ts +12 -17
  61. package/src/monorepo/tool-validation.test.ts +15 -8
  62. package/src/monorepo/tool-validation.ts +20 -25
  63. package/src/nx/index.test.ts +45 -14
  64. package/src/nx/index.ts +133 -64
  65. package/managed/raw/patches/ttsc@0.19.3.patch +0 -67
package/dist/cli.js CHANGED
@@ -57,11 +57,11 @@ function buildProgram() {
57
57
  .option('--warn', 'report drift as warnings (GitHub annotations) instead of failing')
58
58
  .action(async (options) => {
59
59
  const { checkManagedFiles } = await import('./monorepo/index.js');
60
- checkManagedFiles(await findRepoRoot(), { warn: options.warn });
60
+ await checkManagedFiles(await findRepoRoot(), { warn: options.warn });
61
61
  });
62
62
  monorepo.command('diff').action(async () => {
63
63
  const { diffManagedFiles } = await import('./monorepo/index.js');
64
- diffManagedFiles(await findRepoRoot());
64
+ await diffManagedFiles(await findRepoRoot());
65
65
  });
66
66
  monorepo
67
67
  .command('validate-commit-msg <commitMsgFile>')
@@ -290,6 +290,7 @@ function buildProgram() {
290
290
  .command('nx-run-many')
291
291
  .requiredOption('--targets <targets>')
292
292
  .option('--projects <projects>')
293
+ .option('--projects-with-targets <targets>', 'select projects owning any comma-separated target or target glob')
293
294
  .option('--configuration <configuration>')
294
295
  .option('--collect-outputs <directory>')
295
296
  .action(async (options) => {
@@ -16,6 +16,7 @@ export interface NxRunManyOptions {
16
16
  configuration?: string;
17
17
  collectOutputs?: string;
18
18
  allowEmptyProjects?: boolean;
19
+ projectsWithTargets?: string;
19
20
  }
20
21
  export interface ExpandedNxTargetRuns {
21
22
  runs: NxTargetRun[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github-ci/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAmBhD,KAAK,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBtE;AAmFD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3G;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACpG,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,CAiC9G;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAwC/E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAehF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9F;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAGf;AAgCD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACrG,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github-ci/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAmBhD,KAAK,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAKpD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBtE;AAmFD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3G;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACpG,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,CAmD9G;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAwC/E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAehF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9F;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAGf;AA0CD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACrG,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -25,6 +25,8 @@ const parseNxProjectDeployConfigurations = (() => {
25
25
  const __is = input => "object" === typeof input && null !== input && false === Array.isArray(input) && _io0(input);
26
26
  return input => { input = JSON.parse(input); return __is(input) ? input : null; };
27
27
  })();
28
+ /** Nx workers = host cores (CI runners sized for full machine use). */
29
+ const NX_PARALLEL = '100%';
28
30
  export async function cleanupGithubCiCache(root) {
29
31
  const githubOutput = process.env.GITHUB_OUTPUT;
30
32
  const markCacheReady = async (ready) => {
@@ -127,7 +129,7 @@ export function nxSmartArgs(target, mode, configuration) {
127
129
  if (configuration) {
128
130
  args.push(`--configuration=${configuration}`);
129
131
  }
130
- args.push(`--exclude=tag:ci:skip:${target}`, '--parallel=5');
132
+ args.push(`--exclude=tag:ci:skip:${target}`, `--parallel=${NX_PARALLEL}`);
131
133
  return args;
132
134
  }
133
135
  export async function githubCiNxSmart(root, options) {
@@ -143,10 +145,16 @@ export async function githubCiNxSmart(root, options) {
143
145
  }
144
146
  }
145
147
  export function expandNxTargetRuns(projects, options) {
146
- const selectedProjects = selectProjects(projects, options.projects);
147
- if (options.projects !== undefined && selectedProjects.length === 0 && options.allowEmptyProjects !== true) {
148
+ const namedProjects = selectProjects(projects, options.projects);
149
+ if (options.projects !== undefined && namedProjects.length === 0 && options.allowEmptyProjects !== true) {
148
150
  throw new Error(`No Nx projects matched --projects ${options.projects}.`);
149
151
  }
152
+ const selectedProjects = selectProjectsWithTargets(namedProjects, options.projectsWithTargets);
153
+ if (options.projectsWithTargets !== undefined &&
154
+ selectedProjects.length === 0 &&
155
+ options.allowEmptyProjects !== true) {
156
+ throw new Error(`No Nx projects own targets matching --projects-with-targets ${options.projectsWithTargets}.`);
157
+ }
150
158
  const selectedTargetNames = [...new Set(selectedProjects.flatMap((project) => project.targets))].sort((a, b) => a.localeCompare(b));
151
159
  const runs = [];
152
160
  const unmatchedGlobs = [];
@@ -160,6 +168,14 @@ export function expandNxTargetRuns(projects, options) {
160
168
  unmatchedGlobs.push(targetPattern);
161
169
  }
162
170
  for (const target of targets) {
171
+ if (!isGlob && options.projectsWithTargets !== undefined) {
172
+ const missingProjects = selectedProjects
173
+ .filter((project) => !project.targets.includes(target))
174
+ .map((project) => project.project);
175
+ if (missingProjects.length > 0) {
176
+ throw new Error(`Nx target ${target} is missing for project(s) selected by --projects-with-targets ${options.projectsWithTargets}: ${missingProjects.join(', ')}.`);
177
+ }
178
+ }
163
179
  if (addedTargets.has(target)) {
164
180
  continue;
165
181
  }
@@ -226,7 +242,7 @@ export function nxRunManyArgs(run, configuration) {
226
242
  if (configuration) {
227
243
  nxArgs.push(`--configuration=${configuration}`);
228
244
  }
229
- nxArgs.push('--parallel=5');
245
+ nxArgs.push(`--parallel=${NX_PARALLEL}`);
230
246
  return nxArgs;
231
247
  }
232
248
  export async function readGitHeadSha(root) {
@@ -271,6 +287,13 @@ function selectProjects(projects, selectors) {
271
287
  .filter((project) => patterns.some((pattern) => new Bun.Glob(pattern).match(project.project)))
272
288
  .sort((left, right) => left.project.localeCompare(right.project));
273
289
  }
290
+ function selectProjectsWithTargets(projects, selectors) {
291
+ if (selectors === undefined) {
292
+ return projects;
293
+ }
294
+ const patterns = commaSeparatedValues(selectors);
295
+ return projects.filter((project) => project.targets.some((target) => patterns.some((pattern) => new Bun.Glob(pattern).match(target))));
296
+ }
274
297
  function commaSeparatedValues(value) {
275
298
  return value
276
299
  .split(',')
@@ -291,7 +314,7 @@ export async function githubCiNxDeploy(root, options) {
291
314
  const projectList = projects.join(',');
292
315
  const targets = options.verify === true ? ['build', 'lint', 'test', 'deploy'] : ['deploy'];
293
316
  for (const target of targets) {
294
- const nxArgs = ['run-many', '-t', target, `--projects=${projectList}`, '--parallel=5'];
317
+ const nxArgs = ['run-many', '-t', target, `--projects=${projectList}`, `--parallel=${NX_PARALLEL}`];
295
318
  if (target === 'deploy') {
296
319
  nxArgs.push(`--configuration=${options.configuration}`);
297
320
  }
@@ -16,6 +16,8 @@ export interface PackagePublishConfig {
16
16
  }
17
17
  export interface PackageSmooGithub {
18
18
  pushBranches?: string[];
19
+ /** GitHub Actions runs-on for managed CI (string or label list). Default: ubuntu-latest. */
20
+ runsOn?: string | string[];
19
21
  }
20
22
  export interface PackageSmooConfig {
21
23
  github?: PackageSmooGithub;
@@ -63,7 +65,7 @@ export interface NxDependsOnObject {
63
65
  export type NxDependsOn = string | NxDependsOnObject;
64
66
  /** Nx target options are executor-specific open bags. */
65
67
  export type NxTargetOptions = Record<string, unknown>;
66
- export type NxInput = string | Record<string, unknown>;
68
+ export type NxInput = string | object;
67
69
  export interface NxTargetConfig {
68
70
  executor?: string;
69
71
  dependsOn?: NxDependsOn[];
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/lib/json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/lib/json.ts"],"names":[],"mappings":"AAGA,sDAAsD;AACtD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC;IAChD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,oBAAoB,CAAC,EAAE,SAAS,CAAC;IACjC,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxC,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,mEAAmE;AACnE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAErD,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,MAAM;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;CAChF;AAED,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,uCAA0C,CAAC;AAE5E,4FAA4F;AAC5F,eAAO,MAAM,sBAAsB,yCAA4C,CAAC;AAEhF,yEAAyE;AACzE,eAAO,MAAM,eAAe,kCAAqC,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,oCAAuC,CAAC;AAIzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAS/D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAM5D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK9C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAOzD;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,qBAAqB,GAC5G,SAAS,CAQX;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAOzD;AAED,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe,CAO1D;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAOnF;AAED,gDAAgD;AAChD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,oBAAoB,CAO1E;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,CAO1E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAMxF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAM/F;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,gBAAgB,EAChE,KAAK,EAAE,MAAM,GACZ,OAAO,CAMT;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,gBAAgB,EAChE,KAAK,EAAE,MAAM,GACZ,OAAO,CAMT;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAMrE;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAM5F;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,EAC7B,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,EACjC,KAAK,EAAE,MAAM,GACZ,OAAO,CAMT;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,iBAAiB,EAC7B,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,EACjC,KAAK,EAAE,MAAM,GACZ,OAAO,CAMT"}
package/dist/lib/json.js CHANGED
@@ -30,12 +30,7 @@ export const parsePackageJsonText = (() => {
30
30
  return true;
31
31
  return "string" === typeof value;
32
32
  });
33
- const _io10 = (input, _vctx = {}) => Object.keys(input).every(key => {
34
- const value = input[key];
35
- if (undefined === value)
36
- return true;
37
- return true;
38
- });
33
+ const _io10 = (input, _vctx = {}) => true;
39
34
  const _io11 = (input, _vctx = {}) => Object.keys(input).every(key => {
40
35
  const value = input[key];
41
36
  if (undefined === value)
@@ -43,7 +38,7 @@ export const parsePackageJsonText = (() => {
43
38
  return true;
44
39
  });
45
40
  const _io12 = (input, _vctx = {}) => undefined === input.github || "object" === typeof input.github && null !== input.github && false === Array.isArray(input.github) && _io13(input.github, _vctx);
46
- const _io13 = (input, _vctx = {}) => undefined === input.pushBranches || Array.isArray(input.pushBranches) && input.pushBranches.every(elem => "string" === typeof elem);
41
+ const _io13 = (input, _vctx = {}) => (undefined === input.pushBranches || Array.isArray(input.pushBranches) && input.pushBranches.every(elem => "string" === typeof elem)) && (null !== input.runsOn && (undefined === input.runsOn || "string" === typeof input.runsOn || Array.isArray(input.runsOn) && input.runsOn.every(elem => "string" === typeof elem)));
47
42
  const _io2 = (input, _vctx = {}) => (_vctx.io2 || (_vctx.io2 = new WeakSet())).has(input) ? true : (_vctx.io2.add(input), (Object.keys(input).every(key => {
48
43
  const value = input[key];
49
44
  if (undefined === value)
@@ -76,12 +71,7 @@ export const parseNxProjectJsonText = (() => {
76
71
  })) || (_vctx.io1.delete(input), false));
77
72
  const _io2 = (input, _vctx = {}) => (_vctx.io2 || (_vctx.io2 = new WeakSet())).has(input) ? true : (_vctx.io2.add(input), ((undefined === input.executor || "string" === typeof input.executor) && (undefined === input.dependsOn || Array.isArray(input.dependsOn) && input.dependsOn.every(elem => null !== elem && undefined !== elem && ("string" === typeof elem || "object" === typeof elem && null !== elem && _io3(elem, _vctx)))) && (undefined === input.outputs || Array.isArray(input.outputs) && input.outputs.every(elem => "string" === typeof elem)) && (undefined === input.inputs || Array.isArray(input.inputs) && input.inputs.every(elem => null !== elem && undefined !== elem && ("string" === typeof elem || "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io4(elem, _vctx)))) && (undefined === input.options || "object" === typeof input.options && null !== input.options && false === Array.isArray(input.options) && _io5(input.options, _vctx)) && (undefined === input.configurations || "object" === typeof input.configurations && null !== input.configurations && false === Array.isArray(input.configurations) && _io1(input.configurations, _vctx)) && (undefined === input.cache || "boolean" === typeof input.cache) && (undefined === input.command || "string" === typeof input.command) && (undefined === input.parallelism || "boolean" === typeof input.parallelism)) || (_vctx.io2.delete(input), false));
78
73
  const _io3 = (input, _vctx = {}) => "string" === typeof input.target && (null !== input.projects && (undefined === input.projects || "string" === typeof input.projects || Array.isArray(input.projects) && input.projects.every(elem => "string" === typeof elem)));
79
- const _io4 = (input, _vctx = {}) => Object.keys(input).every(key => {
80
- const value = input[key];
81
- if (undefined === value)
82
- return true;
83
- return true;
84
- });
74
+ const _io4 = (input, _vctx = {}) => true;
85
75
  const _io5 = (input, _vctx = {}) => Object.keys(input).every(key => {
86
76
  const value = input[key];
87
77
  if (undefined === value)
@@ -143,12 +133,7 @@ const isPackageJsonValue = (() => {
143
133
  return true;
144
134
  return "string" === typeof value;
145
135
  });
146
- const _io10 = (input, _vctx = {}) => Object.keys(input).every(key => {
147
- const value = input[key];
148
- if (undefined === value)
149
- return true;
150
- return true;
151
- });
136
+ const _io10 = (input, _vctx = {}) => true;
152
137
  const _io11 = (input, _vctx = {}) => Object.keys(input).every(key => {
153
138
  const value = input[key];
154
139
  if (undefined === value)
@@ -156,7 +141,7 @@ const isPackageJsonValue = (() => {
156
141
  return true;
157
142
  });
158
143
  const _io12 = (input, _vctx = {}) => undefined === input.github || "object" === typeof input.github && null !== input.github && false === Array.isArray(input.github) && _io13(input.github, _vctx);
159
- const _io13 = (input, _vctx = {}) => undefined === input.pushBranches || Array.isArray(input.pushBranches) && input.pushBranches.every(elem => "string" === typeof elem);
144
+ const _io13 = (input, _vctx = {}) => (undefined === input.pushBranches || Array.isArray(input.pushBranches) && input.pushBranches.every(elem => "string" === typeof elem)) && (null !== input.runsOn && (undefined === input.runsOn || "string" === typeof input.runsOn || Array.isArray(input.runsOn) && input.runsOn.every(elem => "string" === typeof elem)));
160
145
  const _io2 = (input, _vctx = {}) => (_vctx.io2 || (_vctx.io2 = new WeakSet())).has(input) ? true : (_vctx.io2.add(input), (Object.keys(input).every(key => {
161
146
  const value = input[key];
162
147
  if (undefined === value)
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/lib/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,yBAAyB,YACpC,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,CACd,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAE9D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,qBAA8C,GACxD,WAAW,EAAE,CAMf;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGtE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAE7E;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAGxF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAEhE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,EAAE,CAErF;AA8DD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CASlE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI3D;AAaD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAehE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI,CAa1F;AAMD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAEtE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE,CAMpD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAatE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAErF;AA6BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/lib/workspace.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGvB,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,yBAAyB,YACpC,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,CACd,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAE9D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,qBAA8C,GACxD,WAAW,EAAE,CAMf;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGtE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAE7E;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAGxF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAEhE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,EAAE,CAErF;AA+DD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CASlE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI3D;AAaD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAehE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI,CAa1F;AAMD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAEtE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE,CAMpD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAatE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAErF;AA6BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -74,6 +74,7 @@ function listWorkspacePackageJsonPaths(root, workspacePatterns) {
74
74
  const paths = [];
75
75
  for (const pattern of workspacePatterns) {
76
76
  if (!pattern.endsWith('/*')) {
77
+ paths.push(join(root, pattern, 'package.json'));
77
78
  continue;
78
79
  }
79
80
  const parent = join(root, pattern.slice(0, -2));
@@ -22,6 +22,8 @@ export interface CiWorkflowDefinitionOptions {
22
22
  deploy: boolean;
23
23
  deployProvider?: 'cloudflare';
24
24
  pushBranches: string[];
25
+ /** Default ubuntu-latest when omitted. */
26
+ runsOn?: string | string[];
25
27
  }
26
28
  export declare function defineCiWorkflow(options: CiWorkflowDefinitionOptions): CiWorkflowStep[];
27
29
  export declare function renderCiWorkflowYaml(options: CiWorkflowDefinitionOptions): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ci-workflow.d.ts","sourceRoot":"","sources":["../../src/monorepo/ci-workflow.ts"],"names":[],"mappings":"AAEA,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,WAAW,iBAAiB;IAC5B,SAAS,gBAAgB;IACzB,cAAc,qBAAqB;IACnC,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,eAAe;IACxB,iBAAiB,wBAAwB;IACzC,oBAAoB,2BAA2B;IAC/C,MAAM,WAAW;IACjB,WAAW,kBAAkB;IAC7B,cAAc,qBAAqB;IACnC,aAAa,oBAAoB;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,2BAA2B,GAAG,cAAc,EAAE,CAqBvF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CAGjF"}
1
+ {"version":3,"file":"ci-workflow.d.ts","sourceRoot":"","sources":["../../src/monorepo/ci-workflow.ts"],"names":[],"mappings":"AAIA,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,WAAW,iBAAiB;IAC5B,SAAS,gBAAgB;IACzB,cAAc,qBAAqB;IACnC,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,eAAe;IACxB,iBAAiB,wBAAwB;IACzC,oBAAoB,2BAA2B;IAC/C,MAAM,WAAW;IACjB,WAAW,kBAAkB;IAC7B,cAAc,qBAAqB;IACnC,aAAa,oBAAoB;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,2BAA2B,GAAG,cAAc,EAAE,CAqBvF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CAGjF"}
@@ -1,4 +1,5 @@
1
1
  /* biome-ignore-all lint/suspicious/noTemplateCurlyInString: GitHub Actions expressions are emitted literally. */
2
+ import { renderRunsOnLine } from './github-runs-on.js';
2
3
  export var CiWorkflowStepKind;
3
4
  (function (CiWorkflowStepKind) {
4
5
  CiWorkflowStepKind["Checkout"] = "checkout";
@@ -59,7 +60,7 @@ defaults:
59
60
  jobs:
60
61
  main:
61
62
  name: Validate
62
- runs-on: ubuntu-latest
63
+ ${renderRunsOnLine(options.runsOn)}
63
64
  timeout-minutes: 45
64
65
  env:
65
66
  NIX_STORE_NAR: ${githubExpression('github.workspace')}/nix-store.nar
@@ -124,6 +125,8 @@ function yamlLinesForStep(step, options) {
124
125
  ' fetch-depth: 0',
125
126
  ];
126
127
  case CiWorkflowStepKind.SetupDevenv:
128
+ // One step everywhere. setup-devenv detects host-nix (GARM) vs ephemeral
129
+ // and skips GH install/cache steps internally — same for ci/publish/managed.
127
130
  return [` - name: ${step.name}`, ' id: setup', ' uses: ./.github/actions/setup-devenv'];
128
131
  case CiWorkflowStepKind.SetNxShas:
129
132
  return [
@@ -158,7 +161,7 @@ function yamlLinesForStep(step, options) {
158
161
  // recursion guard, so the default token suffices.
159
162
  return [
160
163
  ` - name: ${step.name}`,
161
- " if: ${{ steps.managed-drift.outputs.drifted != '' && steps.managed-drift.outputs.drifted != '0' }}",
164
+ " if: steps.managed-drift.outputs.drifted != '' && steps.managed-drift.outputs.drifted != '0'",
162
165
  ' run: gh workflow run managed-files.yml --ref "$GITHUB_REF_NAME"',
163
166
  ];
164
167
  case CiWorkflowStepKind.Deploy:
@@ -186,7 +189,8 @@ function yamlLinesForStep(step, options) {
186
189
  case CiWorkflowStepKind.UploadTraceDbs:
187
190
  return [
188
191
  ` - name: ${step.name}`,
189
- ' if: ${{ always() }}',
192
+ ' # success() is the default; always() keeps traces after a red build/test.',
193
+ ' if: always()',
190
194
  ' uses: actions/upload-artifact@v7.0.1',
191
195
  ' with:',
192
196
  ' name: trace-results-${{ github.run_id }}',
@@ -198,7 +202,9 @@ function yamlLinesForStep(step, options) {
198
202
  case CiWorkflowStepKind.SaveNixDevenv:
199
203
  return [
200
204
  ` - name: ${step.name}`,
201
- ' if: ${{ always() }}',
205
+ ' # always() still saves after a red job. Nix NAR is ephemeral-only;',
206
+ ' # devenv eval-cache also saves on host-nix when setup missed.',
207
+ ' if: always()',
202
208
  ' uses: ./.github/actions/save-nix-devenv',
203
209
  ' with:',
204
210
  ' nix-cache-hit: ${{ steps.setup.outputs.nix-cache-hit }}',
@@ -0,0 +1,14 @@
1
+ /** Shared `runs-on:` emission for generated GitHub workflow YAML. */
2
+ export type WorkflowRunsOn = string | string[] | undefined;
3
+ export declare function isNixosRunner(runsOn: WorkflowRunsOn): boolean;
4
+ /**
5
+ * Trusted jobs use configured nixos self-hosted labels; fork PRs stay on
6
+ * ubuntu-latest (no access to the private runner fleet).
7
+ */
8
+ export declare function githubUsesNixosRunnerExpr(): string;
9
+ /**
10
+ * Full ` runs-on: …` line(s), indented for a job under `jobs.<id>:`.
11
+ * Nixos labels emit the multiline prettier-stable fork-gate expression.
12
+ */
13
+ export declare function renderRunsOnLine(runsOn: WorkflowRunsOn): string;
14
+ //# sourceMappingURL=github-runs-on.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-runs-on.d.ts","sourceRoot":"","sources":["../../src/monorepo/github-runs-on.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;AAE3D,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAG7D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAuB/D"}
@@ -0,0 +1,43 @@
1
+ /** Shared `runs-on:` emission for generated GitHub workflow YAML. */
2
+ export function isNixosRunner(runsOn) {
3
+ const labels = runsOn === undefined ? [] : typeof runsOn === 'string' ? [runsOn] : runsOn;
4
+ return labels.some((label) => label === 'nixos' || label.startsWith('nixos-'));
5
+ }
6
+ /**
7
+ * Trusted jobs use configured nixos self-hosted labels; fork PRs stay on
8
+ * ubuntu-latest (no access to the private runner fleet).
9
+ */
10
+ export function githubUsesNixosRunnerExpr() {
11
+ return "(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)";
12
+ }
13
+ /**
14
+ * Full ` runs-on: …` line(s), indented for a job under `jobs.<id>:`.
15
+ * Nixos labels emit the multiline prettier-stable fork-gate expression.
16
+ */
17
+ export function renderRunsOnLine(runsOn) {
18
+ if (!isNixosRunner(runsOn)) {
19
+ let value;
20
+ if (runsOn === undefined) {
21
+ value = 'ubuntu-latest';
22
+ }
23
+ else if (typeof runsOn === 'string') {
24
+ value = runsOn.length > 0 ? runsOn : 'ubuntu-latest';
25
+ }
26
+ else if (runsOn.length === 0) {
27
+ value = 'ubuntu-latest';
28
+ }
29
+ else if (runsOn.length === 1) {
30
+ value = runsOn[0] ?? 'ubuntu-latest';
31
+ }
32
+ else {
33
+ value = `[${runsOn.map((label) => `'${label}'`).join(', ')}]`;
34
+ }
35
+ return ` runs-on: ${value}`;
36
+ }
37
+ const labels = typeof runsOn === 'string' ? [runsOn] : runsOn;
38
+ // Multiline matches prettier so checked-in workflows stay byte-identical.
39
+ const nixosJson = JSON.stringify(labels);
40
+ return ` runs-on:
41
+ \${{ ${githubUsesNixosRunnerExpr()} &&
42
+ fromJSON('${nixosJson}') || 'ubuntu-latest' }}`;
43
+ }
@@ -33,8 +33,8 @@ export declare function validateMonorepo(root: string, options?: ValidateOptions
33
33
  export declare function updateManagedFiles(root: string): Promise<void>;
34
34
  export declare function checkManagedFiles(root: string, options?: {
35
35
  warn?: boolean;
36
- }): void;
37
- export declare function diffManagedFiles(root: string): void;
36
+ }): Promise<void>;
37
+ export declare function diffManagedFiles(root: string): Promise<void>;
38
38
  export declare function validateCommitMessageFile(path: string | undefined, options?: ValidateCommitMessageOptions, root?: string): void;
39
39
  export declare function listReleaseProjectNamesForNx(root: string, options?: ListReleasePackagesOptions): string;
40
40
  export declare function validatePublicPackageTags(root: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/monorepo/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAOxD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBjG;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAapE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAUtF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,GAAE,4BAAiC,EAC1C,IAAI,SAAgB,GACnB,IAAI,CAgBN;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,0BAA+B,GAAG,MAAM,CAW3G;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,uBAAuB,EAChC,KAAK,GAAE,qBAAoD,GAC1D,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/monorepo/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAOxD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBjG;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAapE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAUrG;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,GAAE,4BAAiC,EAC1C,IAAI,SAAgB,GACnB,IAAI,CAgBN;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,0BAA+B,GAAG,MAAM,CAW3G;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,uBAAuB,EAChC,KAAK,GAAE,qBAAoD,GAC1D,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -15,7 +15,7 @@ export async function initMonorepo(root, options) {
15
15
  await syncRootRuntimeVersions(root);
16
16
  return;
17
17
  }
18
- printResults(applyManagedFiles(root, 'update'));
18
+ printResults(await applyManagedFiles(root, 'update'));
19
19
  await runInitPacks({ root, syncRuntime: process.env.DEVENV_ROOT !== undefined || options.syncRuntime === true });
20
20
  }
21
21
  export async function validateMonorepo(root, options = {}) {
@@ -37,7 +37,7 @@ export async function validateMonorepo(root, options = {}) {
37
37
  }
38
38
  }
39
39
  export async function updateManagedFiles(root) {
40
- printResults(applyManagedFiles(root, 'update'));
40
+ printResults(await applyManagedFiles(root, 'update'));
41
41
  // Tool dependency policy (typescript API 6, @typescript/native for ttsc, nx, …)
42
42
  // lives next to managed templates — update must install them, not only rewrite files.
43
43
  await applyToolConfigDefaults(root);
@@ -50,19 +50,19 @@ export async function updateManagedFiles(root) {
50
50
  throw new Error(`bun install failed after monorepo update${stderr || stdout ? `:\n${stderr || stdout}` : ''}`);
51
51
  }
52
52
  }
53
- export function checkManagedFiles(root, options = {}) {
53
+ export async function checkManagedFiles(root, options = {}) {
54
54
  if (options.warn === true) {
55
- warnOnManagedFileDrift(root);
55
+ await warnOnManagedFileDrift(root);
56
56
  return;
57
57
  }
58
- const results = applyManagedFiles(root, 'check');
58
+ const results = await applyManagedFiles(root, 'check');
59
59
  printResults(results);
60
60
  if (results.some((result) => result.action === 'drifted')) {
61
61
  throw new Error('Managed monorepo files are out of date. Run: smoo monorepo update');
62
62
  }
63
63
  }
64
- export function diffManagedFiles(root) {
65
- printResults(applyManagedFiles(root, 'diff'));
64
+ export async function diffManagedFiles(root) {
65
+ printResults(await applyManagedFiles(root, 'diff'));
66
66
  }
67
67
  export function validateCommitMessageFile(path, options = {}, root = process.cwd()) {
68
68
  if (!path) {
@@ -1,3 +1,4 @@
1
+ import { type NxProjects } from '../nx/index.js';
1
2
  /**
2
3
  * Repos may append their own content to a managed file below this marker —
3
4
  * e.g. extra merge drivers in .gitattributes. Everything from the marker
@@ -47,10 +48,20 @@ export interface FileResult {
47
48
  target: string;
48
49
  action: 'created' | 'updated' | 'unchanged' | 'skipped' | 'skipped-symlink' | 'drifted' | 'ok-symlink';
49
50
  }
50
- export declare function applyManagedFiles(root: string, mode: 'update' | 'check' | 'diff'): FileResult[];
51
+ interface DeployTargetInfo {
52
+ exists: boolean;
53
+ provider?: 'cloudflare';
54
+ }
55
+ export declare const managedFileTargetsForTest: {
56
+ target: string;
57
+ executable: boolean | undefined;
58
+ }[];
59
+ export declare function applyManagedFiles(root: string, mode: 'update' | 'check' | 'diff'): Promise<FileResult[]>;
51
60
  export declare function platformTargetGlobsForTest(targetNames: Iterable<string>): string[];
61
+ /** Test seam: deploy configuration presence/provider from graph nodes. */
62
+ export declare function deployTargetInfoFromProjects(projects: NxProjects, configuration: string): DeployTargetInfo;
52
63
  export declare function printResults(results: FileResult[]): void;
53
- export declare function validateManagedFiles(root: string): number;
64
+ export declare function validateManagedFiles(root: string): Promise<number>;
54
65
  /**
55
66
  * Non-blocking drift report: prints the per-file table and surfaces drift as
56
67
  * GitHub Actions warning annotations (plain stderr elsewhere) without failing
@@ -61,6 +72,6 @@ export declare function validateManagedFiles(root: string): number;
61
72
  * Under GitHub Actions the drifted-file count is published as the step output
62
73
  * `drifted`, so downstream steps gate declaratively instead of parsing logs.
63
74
  */
64
- export declare function warnOnManagedFileDrift(root: string): void;
75
+ export declare function warnOnManagedFileDrift(root: string): Promise<void>;
65
76
  export {};
66
77
  //# sourceMappingURL=managed-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"managed-files.d.ts","sourceRoot":"","sources":["../../src/monorepo/managed-files.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,yEAAyE,CAAC;AAU3G,sFAAsF;AACtF,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAIlF;AAED,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,0BAAoB,CAAC;AAE1D;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;8BAE8B;AAC9B,iBAAS,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAkCxG;AAED,wCAAwC;AACxC,eAAO,MAAM,+BAA+B,iCAA2B,CAAC;AAExE;+EAC+E;AAC/E,iBAAS,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAqBtF;AAED,yCAAyC;AACzC,eAAO,MAAM,gCAAgC,kCAA4B,CAAC;AAE1E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAAC;CACxG;AA8HD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,EAAE,CAG/F;AA6FD,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAMlF;AAgGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAIxD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAkBzD"}
1
+ {"version":3,"file":"managed-files.d.ts","sourceRoot":"","sources":["../../src/monorepo/managed-files.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkB,KAAK,UAAU,EAA2B,MAAM,gBAAgB,CAAC;AAM1F;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,yEAAyE,CAAC;AAU3G,sFAAsF;AACtF,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAIlF;AAED,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,0BAAoB,CAAC;AAE1D;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;8BAE8B;AAC9B,iBAAS,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAkCxG;AAED,wCAAwC;AACxC,eAAO,MAAM,+BAA+B,iCAA2B,CAAC;AAExE;+EAC+E;AAC/E,iBAAS,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAqBtF;AAED,yCAAyC;AACzC,eAAO,MAAM,gCAAgC,kCAA4B,CAAC;AAE1E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAAC;CACxG;AAeD,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AA4GD,eAAO,MAAM,yBAAyB;;;GAAyE,CAAC;AAIhH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAG9G;AAmGD,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAMlF;AAED,0EAA0E;AAC1E,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,gBAAgB,CAY1G;AAsDD,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAIxD;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxE;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBxE"}