@msn-control/liftoff 0.6.2 → 0.8.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.
Files changed (111) hide show
  1. package/README.md +15 -1
  2. package/assets/governance/single-maintainer-gitflow/policy.md +705 -0
  3. package/assets/locks/frontend/package-lock.json +1012 -1694
  4. package/assets/locks/frontend/package.json +5 -6
  5. package/assets/locks/go-backend/go.mod +17 -0
  6. package/assets/locks/go-backend/go.sum +159 -0
  7. package/assets/locks/node-backend/package-lock.json +1473 -2320
  8. package/assets/locks/node-backend/package.json +8 -7
  9. package/assets/locks/opentofu-azure/.terraform.lock.hcl +39 -0
  10. package/assets/locks/opentofu-azure/versions.tf +10 -0
  11. package/assets/locks/python-genai/function-requirements.txt +1734 -0
  12. package/assets/locks/python-genai/liftoff_template_python_genai.egg-info/PKG-INFO +25 -0
  13. package/assets/locks/python-genai/liftoff_template_python_genai.egg-info/SOURCES.txt +6 -0
  14. package/assets/locks/python-genai/liftoff_template_python_genai.egg-info/dependency_links.txt +1 -0
  15. package/assets/locks/python-genai/liftoff_template_python_genai.egg-info/requires.txt +23 -0
  16. package/assets/locks/python-genai/liftoff_template_python_genai.egg-info/top_level.txt +1 -0
  17. package/assets/locks/python-genai/pyproject.toml +42 -0
  18. package/assets/locks/python-genai/uv.lock +2536 -0
  19. package/assets/locks/python-standard/pyproject.toml +36 -0
  20. package/assets/locks/python-standard/uv.lock +1780 -0
  21. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/catalog.json +4 -4
  22. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package-lock.json +667 -1108
  23. package/assets/supported-stack.json +711 -0
  24. package/dist/args.js +26 -1
  25. package/dist/args.js.map +1 -1
  26. package/dist/catalogs.d.ts +3 -1
  27. package/dist/catalogs.js +29 -7
  28. package/dist/catalogs.js.map +1 -1
  29. package/dist/cli.js +2 -1
  30. package/dist/cli.js.map +1 -1
  31. package/dist/commands.d.ts +6 -0
  32. package/dist/commands.js +364 -172
  33. package/dist/commands.js.map +1 -1
  34. package/dist/container-validation.d.ts +2 -0
  35. package/dist/container-validation.js +26 -0
  36. package/dist/container-validation.js.map +1 -0
  37. package/dist/file-system.d.ts +1 -0
  38. package/dist/file-system.js +141 -7
  39. package/dist/file-system.js.map +1 -1
  40. package/dist/framework-adapters.js +1 -0
  41. package/dist/framework-adapters.js.map +1 -1
  42. package/dist/go-template-assets.d.ts +2 -0
  43. package/dist/go-template-assets.js +14 -0
  44. package/dist/go-template-assets.js.map +1 -0
  45. package/dist/init-filesystem.js +5 -4
  46. package/dist/init-filesystem.js.map +1 -1
  47. package/dist/interactive.d.ts +0 -5
  48. package/dist/interactive.js +11 -73
  49. package/dist/interactive.js.map +1 -1
  50. package/dist/opentofu-template-assets.d.ts +2 -0
  51. package/dist/opentofu-template-assets.js +10 -0
  52. package/dist/opentofu-template-assets.js.map +1 -0
  53. package/dist/package-identity.d.ts +8 -0
  54. package/dist/package-identity.js +16 -0
  55. package/dist/package-identity.js.map +1 -0
  56. package/dist/planner.js +42 -3
  57. package/dist/planner.js.map +1 -1
  58. package/dist/power-apps-templates.js +6 -0
  59. package/dist/power-apps-templates.js.map +1 -1
  60. package/dist/project-dependencies.d.ts +1 -1
  61. package/dist/project-dependencies.js +15 -34
  62. package/dist/project-dependencies.js.map +1 -1
  63. package/dist/published-verifier.js +11 -1
  64. package/dist/published-verifier.js.map +1 -1
  65. package/dist/python-template-assets.d.ts +4 -0
  66. package/dist/python-template-assets.js +34 -0
  67. package/dist/python-template-assets.js.map +1 -0
  68. package/dist/repository-governance.d.ts +17 -0
  69. package/dist/repository-governance.js +507 -0
  70. package/dist/repository-governance.js.map +1 -0
  71. package/dist/runtime.d.ts +1 -1
  72. package/dist/runtime.js +3 -1
  73. package/dist/runtime.js.map +1 -1
  74. package/dist/self-upgrade.d.ts +77 -0
  75. package/dist/self-upgrade.js +499 -0
  76. package/dist/self-upgrade.js.map +1 -0
  77. package/dist/stable-release.d.ts +18 -0
  78. package/dist/stable-release.js +66 -0
  79. package/dist/stable-release.js.map +1 -0
  80. package/dist/standard-templates.js +28 -97
  81. package/dist/standard-templates.js.map +1 -1
  82. package/dist/supported-stack.d.ts +115 -0
  83. package/dist/supported-stack.js +439 -0
  84. package/dist/supported-stack.js.map +1 -0
  85. package/dist/telemetry/contract.d.ts +1 -1
  86. package/dist/telemetry/contract.js +1 -0
  87. package/dist/telemetry/contract.js.map +1 -1
  88. package/dist/templates.js +216 -125
  89. package/dist/templates.js.map +1 -1
  90. package/dist/types.d.ts +18 -1
  91. package/dist/workstation-catalog.js +15 -12
  92. package/dist/workstation-catalog.js.map +1 -1
  93. package/dist/workstation.js +16 -6
  94. package/dist/workstation.js.map +1 -1
  95. package/docs/cli-reference.md +99 -22
  96. package/docs/configuration-and-manifests.md +14 -7
  97. package/docs/existing-repositories.md +27 -6
  98. package/docs/getting-started.md +23 -7
  99. package/docs/prerequisites.md +30 -4
  100. package/docs/project-structure.md +20 -1
  101. package/docs/repository-governance.md +91 -0
  102. package/docs/safety-and-consent.md +42 -17
  103. package/docs/spec-workflows-and-agents.md +22 -8
  104. package/docs/supported-stack.md +89 -0
  105. package/docs/telemetry.md +6 -0
  106. package/docs/troubleshooting.md +84 -8
  107. package/docs/workloads.md +18 -5
  108. package/package.json +14 -6
  109. package/dist/update-impact.d.ts +0 -23
  110. package/dist/update-impact.js +0 -127
  111. package/dist/update-impact.js.map +0 -1
@@ -0,0 +1,439 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ export const supportedStackSchemaVersion = 1;
4
+ export const supportedHostPlatforms = [
5
+ 'darwin/arm64',
6
+ 'darwin/x64',
7
+ 'linux/arm64',
8
+ 'linux/x64',
9
+ 'win32/x64'
10
+ ];
11
+ export const generatedContainerPlatforms = [
12
+ 'linux/amd64',
13
+ 'linux/arm64'
14
+ ];
15
+ export const runtimeIds = ['node', 'python', 'go', 'opentofu'];
16
+ export const packageManagerIds = ['npm', 'uv'];
17
+ export const frameworkIds = ['openspec', 'spec-kit'];
18
+ export const npmProjectIds = [
19
+ 'liftoff',
20
+ 'telemetry-ingest',
21
+ 'node-backend',
22
+ 'frontend',
23
+ 'power-apps-code-app'
24
+ ];
25
+ export const pythonProjectIds = [
26
+ 'genai-backend',
27
+ 'standard-backend',
28
+ 'function-worker'
29
+ ];
30
+ export const goModuleIds = ['go-backend'];
31
+ export const opentofuProviderIds = ['azapi', 'azurerm', 'time'];
32
+ export const githubActionIds = [
33
+ 'checkout',
34
+ 'setup-node',
35
+ 'setup-python',
36
+ 'setup-go',
37
+ 'setup-opentofu'
38
+ ];
39
+ export const containerIds = [
40
+ 'python-runtime',
41
+ 'uv-tool',
42
+ 'node-runtime',
43
+ 'go-build',
44
+ 'alpine-runtime',
45
+ 'nginx-runtime',
46
+ 'postgres',
47
+ 'pgvector',
48
+ 'redis',
49
+ 'azurite',
50
+ 'mailpit',
51
+ 'langfuse-web',
52
+ 'langfuse-worker',
53
+ 'clickhouse',
54
+ 'minio',
55
+ 'container-apps-bootstrap',
56
+ 'telemetry-node'
57
+ ];
58
+ export const upstreamIds = ['power-apps-code-app'];
59
+ export class SupportedStackError extends Error {
60
+ constructor(message) {
61
+ super(message);
62
+ this.name = 'SupportedStackError';
63
+ }
64
+ }
65
+ const stableSemverPattern = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
66
+ const releaseLinePattern = /^(0|[1-9]\d*)(?:\.(0|[1-9]\d*))?$/;
67
+ const digestPattern = /^sha256:[0-9a-f]{64}$/;
68
+ const commitPattern = /^[0-9a-f]{40}$/;
69
+ const isoDatePattern = /^\d{4}-\d{2}-\d{2}$/;
70
+ const packageSpecifierPattern = /^(?:[~^]|>=?|<=?)?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:\s*,?\s*<(?:=)?\s*(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*))?$/;
71
+ const goVersionPattern = /^v?(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9]{14}-[0-9a-f]{12})?$/;
72
+ function isRecord(value) {
73
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
74
+ }
75
+ function record(value, label) {
76
+ if (!isRecord(value)) {
77
+ throw new SupportedStackError(`${label} must be an object.`);
78
+ }
79
+ return value;
80
+ }
81
+ function exactKeys(value, expected, label) {
82
+ const actual = Object.keys(value).sort();
83
+ const required = [...expected].sort();
84
+ const missing = required.filter((key) => !Object.hasOwn(value, key));
85
+ const unexpected = actual.filter((key) => !required.includes(key));
86
+ if (missing.length > 0 || unexpected.length > 0) {
87
+ const detail = [
88
+ missing.length > 0 ? `missing ${missing.join(', ')}` : '',
89
+ unexpected.length > 0 ? `unsupported ${unexpected.join(', ')}` : ''
90
+ ].filter(Boolean).join('; ');
91
+ throw new SupportedStackError(`${label} fields are invalid: ${detail}.`);
92
+ }
93
+ }
94
+ function string(value, label) {
95
+ if (typeof value !== 'string' || value.trim() === '') {
96
+ throw new SupportedStackError(`${label} must be a nonempty string.`);
97
+ }
98
+ return value;
99
+ }
100
+ function stableVersion(value, label) {
101
+ const version = string(value, label);
102
+ if (!stableSemverPattern.test(version)) {
103
+ throw new SupportedStackError(`${label} must be a stable semantic version.`);
104
+ }
105
+ return version;
106
+ }
107
+ function url(value, label) {
108
+ const source = string(value, label);
109
+ let parsed;
110
+ try {
111
+ parsed = new URL(source);
112
+ }
113
+ catch {
114
+ throw new SupportedStackError(`${label} must be an absolute HTTPS URL.`);
115
+ }
116
+ if (parsed.protocol !== 'https:' || parsed.username || parsed.password) {
117
+ throw new SupportedStackError(`${label} must be an absolute credential-free HTTPS URL.`);
118
+ }
119
+ return source;
120
+ }
121
+ function isoDate(value, label) {
122
+ const date = string(value, label);
123
+ if (!isoDatePattern.test(date)) {
124
+ throw new SupportedStackError(`${label} must use YYYY-MM-DD.`);
125
+ }
126
+ const parsed = new Date(`${date}T00:00:00.000Z`);
127
+ if (!Number.isFinite(parsed.getTime()) || parsed.toISOString().slice(0, 10) !== date) {
128
+ throw new SupportedStackError(`${label} must be a valid calendar date.`);
129
+ }
130
+ return date;
131
+ }
132
+ function pathParts(value, label) {
133
+ if (!Array.isArray(value) || value.length === 0) {
134
+ throw new SupportedStackError(`${label} must be a nonempty path-part array.`);
135
+ }
136
+ return value.map((part, index) => {
137
+ const item = string(part, `${label}[${index}]`);
138
+ if (item === '.' ||
139
+ item === '..' ||
140
+ item.includes('/') ||
141
+ item.includes('\\') ||
142
+ path.posix.isAbsolute(item) ||
143
+ path.win32.isAbsolute(item)) {
144
+ throw new SupportedStackError(`${label}[${index}] is not a safe portable path part.`);
145
+ }
146
+ return item;
147
+ });
148
+ }
149
+ function uniqueEnumArray(value, allowed, label) {
150
+ if (!Array.isArray(value) || value.length === 0) {
151
+ throw new SupportedStackError(`${label} must be a nonempty array.`);
152
+ }
153
+ const items = value.map((item, index) => {
154
+ if (typeof item !== 'string' || !allowed.includes(item)) {
155
+ throw new SupportedStackError(`${label}[${index}] is unsupported.`);
156
+ }
157
+ return item;
158
+ });
159
+ if (new Set(items).size !== items.length) {
160
+ throw new SupportedStackError(`${label} must not contain duplicates.`);
161
+ }
162
+ return items;
163
+ }
164
+ function versionBaseline(value, label) {
165
+ const entry = record(value, label);
166
+ const allowed = [
167
+ 'version',
168
+ 'minimumVersion',
169
+ 'releaseLine',
170
+ 'channel',
171
+ 'source',
172
+ 'selectionReason'
173
+ ];
174
+ const required = allowed.filter((key) => key !== 'minimumVersion' && key !== 'selectionReason' ||
175
+ Object.hasOwn(entry, key));
176
+ exactKeys(entry, required, label);
177
+ const releaseLine = string(entry.releaseLine, `${label}.releaseLine`);
178
+ if (!releaseLinePattern.test(releaseLine)) {
179
+ throw new SupportedStackError(`${label}.releaseLine must contain one or two numeric components.`);
180
+ }
181
+ if (entry.channel !== 'stable' && entry.channel !== 'lts') {
182
+ throw new SupportedStackError(`${label}.channel must be stable or lts.`);
183
+ }
184
+ return {
185
+ version: stableVersion(entry.version, `${label}.version`),
186
+ ...(entry.minimumVersion === undefined
187
+ ? {}
188
+ : { minimumVersion: stableVersion(entry.minimumVersion, `${label}.minimumVersion`) }),
189
+ releaseLine,
190
+ channel: entry.channel,
191
+ source: url(entry.source, `${label}.source`),
192
+ ...(entry.selectionReason === undefined
193
+ ? {}
194
+ : { selectionReason: string(entry.selectionReason, `${label}.selectionReason`) })
195
+ };
196
+ }
197
+ function namedRecord(value, keys, label, parse) {
198
+ const entries = record(value, label);
199
+ exactKeys(entries, keys, label);
200
+ return Object.fromEntries(keys.map((key) => [key, parse(entries[key], `${label}.${key}`)]));
201
+ }
202
+ function dependencyVersions(value, label, resolved) {
203
+ const entries = record(value, label);
204
+ const result = {};
205
+ for (const name of Object.keys(entries).sort()) {
206
+ const specifier = string(entries[name], `${label}.${name}`);
207
+ if (resolved ? !stableSemverPattern.test(specifier) : !packageSpecifierPattern.test(specifier)) {
208
+ throw new SupportedStackError(`${label}.${name} must be a ${resolved ? 'stable exact version' : 'stable version constraint'}.`);
209
+ }
210
+ result[name] = specifier;
211
+ }
212
+ return result;
213
+ }
214
+ function npmDependencyGroups(value, label, resolved) {
215
+ const groups = record(value, label);
216
+ exactKeys(groups, ['dependencies', 'devDependencies'], label);
217
+ return {
218
+ dependencies: dependencyVersions(groups.dependencies, `${label}.dependencies`, resolved),
219
+ devDependencies: dependencyVersions(groups.devDependencies, `${label}.devDependencies`, resolved)
220
+ };
221
+ }
222
+ function npmProject(value, label) {
223
+ const entry = record(value, label);
224
+ const allowed = [
225
+ 'manifestPathParts',
226
+ 'lockPathParts',
227
+ 'freshnessPolicy',
228
+ 'requirements',
229
+ 'resolved',
230
+ 'selectionExceptions'
231
+ ];
232
+ const required = allowed.filter((key) => key !== 'lockPathParts' && key !== 'selectionExceptions' ||
233
+ Object.hasOwn(entry, key));
234
+ exactKeys(entry, required, label);
235
+ const result = {
236
+ manifestPathParts: pathParts(entry.manifestPathParts, `${label}.manifestPathParts`),
237
+ ...(entry.lockPathParts === undefined
238
+ ? {}
239
+ : { lockPathParts: pathParts(entry.lockPathParts, `${label}.lockPathParts`) }),
240
+ freshnessPolicy: entry.freshnessPolicy === 'latest' ||
241
+ entry.freshnessPolicy === 'declared-range'
242
+ ? entry.freshnessPolicy
243
+ : (() => {
244
+ throw new SupportedStackError(`${label}.freshnessPolicy must be latest or declared-range.`);
245
+ })(),
246
+ requirements: npmDependencyGroups(entry.requirements, `${label}.requirements`, false),
247
+ resolved: npmDependencyGroups(entry.resolved, `${label}.resolved`, true)
248
+ };
249
+ if (entry.selectionExceptions === undefined) {
250
+ return result;
251
+ }
252
+ const exceptions = record(entry.selectionExceptions, `${label}.selectionExceptions`);
253
+ result.selectionExceptions = Object.fromEntries(Object.keys(exceptions).sort().map((name) => {
254
+ const exception = record(exceptions[name], `${label}.selectionExceptions.${name}`);
255
+ exactKeys(exception, ['selectedVersion', 'reviewedCandidateVersion', 'reason'], `${label}.selectionExceptions.${name}`);
256
+ const selectedVersion = stableVersion(exception.selectedVersion, `${label}.selectionExceptions.${name}.selectedVersion`);
257
+ const resolvedVersion = result.resolved.dependencies[name] ?? result.resolved.devDependencies[name];
258
+ if (resolvedVersion !== selectedVersion) {
259
+ throw new SupportedStackError(`${label}.selectionExceptions.${name}.selectedVersion must match its resolved direct dependency.`);
260
+ }
261
+ const reviewedCandidateVersion = stableVersion(exception.reviewedCandidateVersion, `${label}.selectionExceptions.${name}.reviewedCandidateVersion`);
262
+ return [name, {
263
+ selectedVersion,
264
+ reviewedCandidateVersion,
265
+ reason: string(exception.reason, `${label}.selectionExceptions.${name}.reason`)
266
+ }];
267
+ }));
268
+ return result;
269
+ }
270
+ function pythonProject(value, label) {
271
+ const entry = record(value, label);
272
+ exactKeys(entry, ['lockTemplatePathParts', 'requiresPython', 'dependencies', 'optionalDependencies'], label);
273
+ const optional = record(entry.optionalDependencies, `${label}.optionalDependencies`);
274
+ return {
275
+ lockTemplatePathParts: pathParts(entry.lockTemplatePathParts, `${label}.lockTemplatePathParts`),
276
+ requiresPython: string(entry.requiresPython, `${label}.requiresPython`),
277
+ dependencies: dependencyVersions(entry.dependencies, `${label}.dependencies`, true),
278
+ optionalDependencies: Object.fromEntries(Object.keys(optional).sort().map((group) => [
279
+ group,
280
+ dependencyVersions(optional[group], `${label}.optionalDependencies.${group}`, true)
281
+ ]))
282
+ };
283
+ }
284
+ function goModule(value, label) {
285
+ const entry = record(value, label);
286
+ exactKeys(entry, ['moduleTemplatePathParts', 'goVersion', 'dependencies', 'tools'], label);
287
+ const moduleVersions = (versions, versionsLabel) => {
288
+ const entries = record(versions, versionsLabel);
289
+ return Object.fromEntries(Object.keys(entries).sort().map((name) => {
290
+ const moduleVersion = string(entries[name], `${versionsLabel}.${name}`);
291
+ if (!goVersionPattern.test(moduleVersion)) {
292
+ throw new SupportedStackError(`${versionsLabel}.${name} must be a stable Go module version.`);
293
+ }
294
+ return [name, moduleVersion];
295
+ }));
296
+ };
297
+ return {
298
+ moduleTemplatePathParts: pathParts(entry.moduleTemplatePathParts, `${label}.moduleTemplatePathParts`),
299
+ goVersion: string(entry.goVersion, `${label}.goVersion`),
300
+ dependencies: moduleVersions(entry.dependencies, `${label}.dependencies`),
301
+ tools: moduleVersions(entry.tools, `${label}.tools`)
302
+ };
303
+ }
304
+ function opentofuBaseline(value, label) {
305
+ const entry = record(value, label);
306
+ exactKeys(entry, ['version', 'lockPlatforms', 'providers'], label);
307
+ const providers = namedRecord(entry.providers, opentofuProviderIds, `${label}.providers`, (providerValue, providerLabel) => {
308
+ const provider = record(providerValue, providerLabel);
309
+ exactKeys(provider, ['source', 'version'], providerLabel);
310
+ return {
311
+ source: string(provider.source, `${providerLabel}.source`),
312
+ version: stableVersion(provider.version, `${providerLabel}.version`)
313
+ };
314
+ });
315
+ return {
316
+ version: versionBaseline(entry.version, `${label}.version`),
317
+ lockPlatforms: uniqueEnumArray(entry.lockPlatforms, ['darwin_amd64', 'darwin_arm64', 'linux_amd64', 'linux_arm64', 'windows_amd64'], `${label}.lockPlatforms`),
318
+ providers
319
+ };
320
+ }
321
+ function container(value, label) {
322
+ const entry = record(value, label);
323
+ const allowed = ['image', 'tag', 'digest', 'platforms', 'source', 'selectionReason'];
324
+ exactKeys(entry, allowed.filter((key) => key !== 'selectionReason' || Object.hasOwn(entry, key)), label);
325
+ const image = string(entry.image, `${label}.image`);
326
+ const tag = string(entry.tag, `${label}.tag`);
327
+ const digest = string(entry.digest, `${label}.digest`);
328
+ if (image.includes('@') || image.endsWith(':latest') || tag === 'latest' || tag.includes('@')) {
329
+ throw new SupportedStackError(`${label} must separate a non-latest image, tag, and digest.`);
330
+ }
331
+ if (!digestPattern.test(digest)) {
332
+ throw new SupportedStackError(`${label}.digest must be a sha256 digest.`);
333
+ }
334
+ return {
335
+ image,
336
+ tag,
337
+ digest,
338
+ platforms: uniqueEnumArray(entry.platforms, generatedContainerPlatforms, `${label}.platforms`),
339
+ source: url(entry.source, `${label}.source`),
340
+ ...(entry.selectionReason === undefined
341
+ ? {}
342
+ : { selectionReason: string(entry.selectionReason, `${label}.selectionReason`) })
343
+ };
344
+ }
345
+ function githubAction(value, label) {
346
+ const entry = record(value, label);
347
+ exactKeys(entry, ['repository', 'ref', 'commit', 'source'], label);
348
+ const commit = string(entry.commit, `${label}.commit`);
349
+ if (!commitPattern.test(commit)) {
350
+ throw new SupportedStackError(`${label}.commit must be a full lowercase Git commit SHA.`);
351
+ }
352
+ return {
353
+ repository: string(entry.repository, `${label}.repository`),
354
+ ref: string(entry.ref, `${label}.ref`),
355
+ commit,
356
+ source: url(entry.source, `${label}.source`)
357
+ };
358
+ }
359
+ function upstream(value, label) {
360
+ const entry = record(value, label);
361
+ exactKeys(entry, ['repository', 'path', 'commit', 'compatibleSourceCommits', 'source'], label);
362
+ const commit = string(entry.commit, `${label}.commit`);
363
+ if (!commitPattern.test(commit)) {
364
+ throw new SupportedStackError(`${label}.commit must be a full lowercase Git commit SHA.`);
365
+ }
366
+ const compatibleSourceCommits = uniqueEnumArray(entry.compatibleSourceCommits, entry.compatibleSourceCommits.filter((item) => typeof item === 'string'), `${label}.compatibleSourceCommits`);
367
+ for (const [index, compatibleCommit] of compatibleSourceCommits.entries()) {
368
+ if (!commitPattern.test(compatibleCommit)) {
369
+ throw new SupportedStackError(`${label}.compatibleSourceCommits[${index}] must be a full lowercase Git commit SHA.`);
370
+ }
371
+ }
372
+ if (!compatibleSourceCommits.includes(commit)) {
373
+ throw new SupportedStackError(`${label}.compatibleSourceCommits must include the current commit.`);
374
+ }
375
+ return {
376
+ repository: url(entry.repository, `${label}.repository`),
377
+ path: string(entry.path, `${label}.path`),
378
+ commit,
379
+ compatibleSourceCommits,
380
+ source: url(entry.source, `${label}.source`)
381
+ };
382
+ }
383
+ export function parseSupportedStackBaseline(value) {
384
+ const baseline = record(value, 'baseline');
385
+ exactKeys(baseline, [
386
+ 'schemaVersion',
387
+ 'id',
388
+ 'verifiedOn',
389
+ 'supportedHostPlatforms',
390
+ 'runtimes',
391
+ 'packageManagers',
392
+ 'frameworks',
393
+ 'npmProjects',
394
+ 'pythonProjects',
395
+ 'goModules',
396
+ 'opentofu',
397
+ 'githubActions',
398
+ 'containers',
399
+ 'upstreams'
400
+ ], 'baseline');
401
+ if (baseline.schemaVersion !== supportedStackSchemaVersion) {
402
+ throw new SupportedStackError(`baseline.schemaVersion must be ${supportedStackSchemaVersion}.`);
403
+ }
404
+ const id = string(baseline.id, 'baseline.id');
405
+ if (!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(id)) {
406
+ throw new SupportedStackError('baseline.id must be a stable lowercase identifier.');
407
+ }
408
+ return {
409
+ schemaVersion: supportedStackSchemaVersion,
410
+ id,
411
+ verifiedOn: isoDate(baseline.verifiedOn, 'baseline.verifiedOn'),
412
+ supportedHostPlatforms: uniqueEnumArray(baseline.supportedHostPlatforms, supportedHostPlatforms, 'baseline.supportedHostPlatforms'),
413
+ runtimes: namedRecord(baseline.runtimes, runtimeIds, 'baseline.runtimes', versionBaseline),
414
+ packageManagers: namedRecord(baseline.packageManagers, packageManagerIds, 'baseline.packageManagers', versionBaseline),
415
+ frameworks: namedRecord(baseline.frameworks, frameworkIds, 'baseline.frameworks', versionBaseline),
416
+ npmProjects: namedRecord(baseline.npmProjects, npmProjectIds, 'baseline.npmProjects', npmProject),
417
+ pythonProjects: namedRecord(baseline.pythonProjects, pythonProjectIds, 'baseline.pythonProjects', pythonProject),
418
+ goModules: namedRecord(baseline.goModules, goModuleIds, 'baseline.goModules', goModule),
419
+ opentofu: opentofuBaseline(baseline.opentofu, 'baseline.opentofu'),
420
+ githubActions: namedRecord(baseline.githubActions, githubActionIds, 'baseline.githubActions', githubAction),
421
+ containers: namedRecord(baseline.containers, containerIds, 'baseline.containers', container),
422
+ upstreams: namedRecord(baseline.upstreams, upstreamIds, 'baseline.upstreams', upstream)
423
+ };
424
+ }
425
+ export function readSupportedStackBaseline(file) {
426
+ let value;
427
+ try {
428
+ value = JSON.parse(readFileSync(file, 'utf8'));
429
+ }
430
+ catch (error) {
431
+ throw new SupportedStackError(`Unable to read supported-stack baseline: ${error instanceof Error ? error.message : String(error)}`);
432
+ }
433
+ return parseSupportedStackBaseline(value);
434
+ }
435
+ export const supportedStack = readSupportedStackBaseline(new URL('../assets/supported-stack.json', import.meta.url));
436
+ export function formatContainerImage(entry) {
437
+ return `${entry.image}:${entry.tag}@${entry.digest}`;
438
+ }
439
+ //# sourceMappingURL=supported-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supported-stack.js","sourceRoot":"","sources":["../src/supported-stack.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export declare const telemetryEventName: 'command_executed';
3
3
  export declare const telemetryNoticeVersion: 1;
4
4
  export declare const telemetryClientFields: readonly ['schemaVersion', 'event', 'command', 'cliVersion', 'outcome'];
5
5
  export declare const telemetryStorageFields: readonly ['TimeGenerated', 'EventName', 'SchemaVersion', 'Command', 'CliVersion', 'Outcome'];
6
- export declare const telemetryCommands: readonly ['help', 'version', 'init', 'plan', 'patterns', 'providers', 'regions', 'regions:search', 'validate', 'update', 'migrate', 'doctor', 'dev', 'dev:up', 'dev:down', 'dev:logs', 'dev:reset', 'infra', 'infra:init', 'infra:plan', 'infra:apply', 'infra:output'];
6
+ export declare const telemetryCommands: readonly ['help', 'version', 'init', 'plan', 'patterns', 'providers', 'regions', 'regions:search', 'validate', 'update', 'upgrade', 'migrate', 'doctor', 'dev', 'dev:up', 'dev:down', 'dev:logs', 'dev:reset', 'infra', 'infra:init', 'infra:plan', 'infra:apply', 'infra:output'];
7
7
  export type TelemetryCommand = (typeof telemetryCommands)[number];
8
8
  export type TelemetryOutcome = 'success' | 'failure';
9
9
  export interface TelemetryEvent {
@@ -27,6 +27,7 @@ export const telemetryCommands = [
27
27
  'regions:search',
28
28
  'validate',
29
29
  'update',
30
+ 'upgrade',
30
31
  'migrate',
31
32
  'doctor',
32
33
  'dev',
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/telemetry/contract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAA2B,CAAC;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,eAAe;IACf,OAAO;IACP,SAAS;IACT,YAAY;IACZ,SAAS;CACD,CAAC;AACX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,eAAe;IACf,WAAW;IACX,eAAe;IACf,SAAS;IACT,YAAY;IACZ,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,UAAU;IACV,UAAU;IACV,WAAW;IACX,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,cAAc;CACN,CAAC;AA4BX,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC5E,MAAM,0BAA0B,GAC9B,sFAAsF,CAAC;AAEzF,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAA4B;IACpE,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3B,KAAK,CAAC,OAAO,KAAK,MAAM;QACxB,KAAK,CAAC,OAAO,KAAK,QAAQ;QAC1B,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU;QAChC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE;QACxC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAClB,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,UAAkB,EAClB,QAAgB;IAEhB,OAAO;QACL,aAAa,EAAE,sBAAsB;QACrC,KAAK,EAAE,kBAAkB;QACzB,OAAO;QACP,UAAU;QACV,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAqB,EACrB,WAAiB;IAEjB,OAAO;QACL,aAAa,EAAE,WAAW,CAAC,WAAW,EAAE;QACxC,SAAS,EAAE,KAAK,CAAC,KAAK;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/telemetry/contract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAA2B,CAAC;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,eAAe;IACf,OAAO;IACP,SAAS;IACT,YAAY;IACZ,SAAS;CACD,CAAC;AACX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,eAAe;IACf,WAAW;IACX,eAAe;IACf,SAAS;IACT,YAAY;IACZ,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,UAAU;IACV,UAAU;IACV,WAAW;IACX,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,cAAc;CACN,CAAC;AA4BX,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC5E,MAAM,0BAA0B,GAC9B,sFAAsF,CAAC;AAEzF,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAA4B;IACpE,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3B,KAAK,CAAC,OAAO,KAAK,MAAM;QACxB,KAAK,CAAC,OAAO,KAAK,QAAQ;QAC1B,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU;QAChC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE;QACxC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAClB,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,UAAkB,EAClB,QAAgB;IAEhB,OAAO;QACL,aAAa,EAAE,sBAAsB;QACrC,KAAK,EAAE,kBAAkB;QACzB,OAAO;QACP,UAAU;QACV,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAqB,EACrB,WAAiB;IAEjB,OAAO;QACL,aAAa,EAAE,WAAW,CAAC,WAAW,EAAE;QACxC,SAAS,EAAE,KAAK,CAAC,KAAK;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}