@vltpkg/cli-sdk 0.0.0-9 → 1.0.0-rc.10

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 (157) hide show
  1. package/dist/esm/commands/bugs.d.ts +18 -0
  2. package/dist/esm/commands/bugs.d.ts.map +1 -0
  3. package/dist/esm/commands/bugs.js +164 -0
  4. package/dist/esm/commands/bugs.js.map +1 -0
  5. package/dist/esm/commands/build.d.ts +25 -0
  6. package/dist/esm/commands/build.d.ts.map +1 -0
  7. package/dist/esm/commands/build.js +102 -0
  8. package/dist/esm/commands/build.js.map +1 -0
  9. package/dist/esm/commands/cache.d.ts +18 -0
  10. package/dist/esm/commands/cache.d.ts.map +1 -1
  11. package/dist/esm/commands/cache.js +48 -2
  12. package/dist/esm/commands/cache.js.map +1 -1
  13. package/dist/esm/commands/ci.d.ts +11 -0
  14. package/dist/esm/commands/ci.d.ts.map +1 -0
  15. package/dist/esm/commands/ci.js +32 -0
  16. package/dist/esm/commands/ci.js.map +1 -0
  17. package/dist/esm/commands/config.d.ts +3 -2
  18. package/dist/esm/commands/config.d.ts.map +1 -1
  19. package/dist/esm/commands/config.js +372 -101
  20. package/dist/esm/commands/config.js.map +1 -1
  21. package/dist/esm/commands/docs.d.ts +18 -0
  22. package/dist/esm/commands/docs.d.ts.map +1 -0
  23. package/dist/esm/commands/docs.js +154 -0
  24. package/dist/esm/commands/docs.js.map +1 -0
  25. package/dist/esm/commands/exec-cache.d.ts +49 -0
  26. package/dist/esm/commands/exec-cache.d.ts.map +1 -0
  27. package/dist/esm/commands/exec-cache.js +146 -0
  28. package/dist/esm/commands/exec-cache.js.map +1 -0
  29. package/dist/esm/commands/exec-local.d.ts +1 -0
  30. package/dist/esm/commands/exec-local.d.ts.map +1 -1
  31. package/dist/esm/commands/exec-local.js +2 -0
  32. package/dist/esm/commands/exec-local.js.map +1 -1
  33. package/dist/esm/commands/exec.d.ts +6 -1
  34. package/dist/esm/commands/exec.d.ts.map +1 -1
  35. package/dist/esm/commands/exec.js +79 -5
  36. package/dist/esm/commands/exec.js.map +1 -1
  37. package/dist/esm/commands/help.d.ts +1 -1
  38. package/dist/esm/commands/help.d.ts.map +1 -1
  39. package/dist/esm/commands/help.js +32 -3
  40. package/dist/esm/commands/help.js.map +1 -1
  41. package/dist/esm/commands/init.d.ts +3 -3
  42. package/dist/esm/commands/init.d.ts.map +1 -1
  43. package/dist/esm/commands/init.js +95 -9
  44. package/dist/esm/commands/init.js.map +1 -1
  45. package/dist/esm/commands/install/reporter.d.ts +3 -2
  46. package/dist/esm/commands/install/reporter.d.ts.map +1 -1
  47. package/dist/esm/commands/install/reporter.js +42 -15
  48. package/dist/esm/commands/install/reporter.js.map +1 -1
  49. package/dist/esm/commands/install.d.ts +21 -3
  50. package/dist/esm/commands/install.d.ts.map +1 -1
  51. package/dist/esm/commands/install.js +29 -4
  52. package/dist/esm/commands/install.js.map +1 -1
  53. package/dist/esm/commands/list.d.ts +2 -2
  54. package/dist/esm/commands/list.d.ts.map +1 -1
  55. package/dist/esm/commands/list.js +149 -49
  56. package/dist/esm/commands/list.js.map +1 -1
  57. package/dist/esm/commands/pack.d.ts +32 -0
  58. package/dist/esm/commands/pack.d.ts.map +1 -0
  59. package/dist/esm/commands/pack.js +147 -0
  60. package/dist/esm/commands/pack.js.map +1 -0
  61. package/dist/esm/commands/pkg.d.ts +1 -2
  62. package/dist/esm/commands/pkg.d.ts.map +1 -1
  63. package/dist/esm/commands/pkg.js +123 -38
  64. package/dist/esm/commands/pkg.js.map +1 -1
  65. package/dist/esm/commands/publish.d.ts +22 -0
  66. package/dist/esm/commands/publish.d.ts.map +1 -0
  67. package/dist/esm/commands/publish.js +245 -0
  68. package/dist/esm/commands/publish.js.map +1 -0
  69. package/dist/esm/commands/query.d.ts +2 -3
  70. package/dist/esm/commands/query.d.ts.map +1 -1
  71. package/dist/esm/commands/query.js +132 -38
  72. package/dist/esm/commands/query.js.map +1 -1
  73. package/dist/esm/commands/run-exec.d.ts +1 -0
  74. package/dist/esm/commands/run-exec.d.ts.map +1 -1
  75. package/dist/esm/commands/run-exec.js +1 -0
  76. package/dist/esm/commands/run-exec.js.map +1 -1
  77. package/dist/esm/commands/run.d.ts +1 -0
  78. package/dist/esm/commands/run.d.ts.map +1 -1
  79. package/dist/esm/commands/run.js +13 -16
  80. package/dist/esm/commands/run.js.map +1 -1
  81. package/dist/esm/commands/serve.d.ts +14 -0
  82. package/dist/esm/commands/serve.d.ts.map +1 -0
  83. package/dist/esm/commands/serve.js +103 -0
  84. package/dist/esm/commands/serve.js.map +1 -0
  85. package/dist/esm/commands/uninstall.d.ts +8 -2
  86. package/dist/esm/commands/uninstall.d.ts.map +1 -1
  87. package/dist/esm/commands/uninstall.js +10 -5
  88. package/dist/esm/commands/uninstall.js.map +1 -1
  89. package/dist/esm/commands/update.d.ts +14 -0
  90. package/dist/esm/commands/update.d.ts.map +1 -0
  91. package/dist/esm/commands/update.js +41 -0
  92. package/dist/esm/commands/update.js.map +1 -0
  93. package/dist/esm/commands/version.d.ts +26 -0
  94. package/dist/esm/commands/version.d.ts.map +1 -0
  95. package/dist/esm/commands/version.js +226 -0
  96. package/dist/esm/commands/version.js.map +1 -0
  97. package/dist/esm/config/definition.d.ts +119 -15
  98. package/dist/esm/config/definition.d.ts.map +1 -1
  99. package/dist/esm/config/definition.js +186 -37
  100. package/dist/esm/config/definition.js.map +1 -1
  101. package/dist/esm/config/index.d.ts +41 -37
  102. package/dist/esm/config/index.d.ts.map +1 -1
  103. package/dist/esm/config/index.js +109 -172
  104. package/dist/esm/config/index.js.map +1 -1
  105. package/dist/esm/config/merge.d.ts +3 -1
  106. package/dist/esm/config/merge.d.ts.map +1 -1
  107. package/dist/esm/config/merge.js +11 -6
  108. package/dist/esm/config/merge.js.map +1 -1
  109. package/dist/esm/custom-help.d.ts +9 -0
  110. package/dist/esm/custom-help.d.ts.map +1 -0
  111. package/dist/esm/custom-help.js +400 -0
  112. package/dist/esm/custom-help.js.map +1 -0
  113. package/dist/esm/exec-command.d.ts +33 -14
  114. package/dist/esm/exec-command.d.ts.map +1 -1
  115. package/dist/esm/exec-command.js +213 -64
  116. package/dist/esm/exec-command.js.map +1 -1
  117. package/dist/esm/index.d.ts +1 -14
  118. package/dist/esm/index.d.ts.map +1 -1
  119. package/dist/esm/index.js +45 -19
  120. package/dist/esm/index.js.map +1 -1
  121. package/dist/esm/load-command.d.ts +16 -0
  122. package/dist/esm/load-command.d.ts.map +1 -0
  123. package/dist/esm/load-command.js +21 -0
  124. package/dist/esm/load-command.js.map +1 -0
  125. package/dist/esm/output.d.ts +6 -11
  126. package/dist/esm/output.d.ts.map +1 -1
  127. package/dist/esm/output.js +64 -27
  128. package/dist/esm/output.js.map +1 -1
  129. package/dist/esm/pack-tarball.d.ts +22 -0
  130. package/dist/esm/pack-tarball.d.ts.map +1 -0
  131. package/dist/esm/pack-tarball.js +249 -0
  132. package/dist/esm/pack-tarball.js.map +1 -0
  133. package/dist/esm/parse-add-remove-args.d.ts +9 -2
  134. package/dist/esm/parse-add-remove-args.d.ts.map +1 -1
  135. package/dist/esm/parse-add-remove-args.js +43 -10
  136. package/dist/esm/parse-add-remove-args.js.map +1 -1
  137. package/dist/esm/print-err.d.ts +9 -2
  138. package/dist/esm/print-err.d.ts.map +1 -1
  139. package/dist/esm/print-err.js +130 -46
  140. package/dist/esm/print-err.js.map +1 -1
  141. package/dist/esm/query-host-contexts.d.ts +16 -0
  142. package/dist/esm/query-host-contexts.d.ts.map +1 -0
  143. package/dist/esm/query-host-contexts.js +135 -0
  144. package/dist/esm/query-host-contexts.js.map +1 -0
  145. package/dist/esm/start-gui.d.ts +1 -0
  146. package/dist/esm/start-gui.d.ts.map +1 -1
  147. package/dist/esm/start-gui.js +28 -8
  148. package/dist/esm/start-gui.js.map +1 -1
  149. package/dist/esm/view.d.ts +2 -3
  150. package/dist/esm/view.d.ts.map +1 -1
  151. package/dist/esm/view.js +1 -1
  152. package/dist/esm/view.js.map +1 -1
  153. package/package.json +55 -41
  154. package/dist/esm/commands/gui.d.ts +0 -6
  155. package/dist/esm/commands/gui.d.ts.map +0 -1
  156. package/dist/esm/commands/gui.js +0 -13
  157. package/dist/esm/commands/gui.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ import { update } from '@vltpkg/graph';
2
+ import { error } from '@vltpkg/error-cause';
3
+ import { commandUsage } from "../config/usage.js";
4
+ import { InstallReporter } from "./install/reporter.js";
5
+ export const usage = () => commandUsage({
6
+ command: 'update',
7
+ usage: '',
8
+ description: `Update dependencies to their latest in-range versions.
9
+ Discards the lockfile and resolves dependencies from scratch.`,
10
+ });
11
+ export const views = {
12
+ json: i => ({
13
+ ...(i.buildQueue?.length ?
14
+ {
15
+ buildQueue: i.buildQueue,
16
+ message: `${i.buildQueue.length} packages that will need to be built, run "vlt build" to complete the update.`,
17
+ }
18
+ : null),
19
+ graph: i.graph.toJSON(),
20
+ }),
21
+ human: InstallReporter,
22
+ };
23
+ export const command = async (conf) => {
24
+ // Throw error if any arguments are provided
25
+ if (conf.positionals.length > 0) {
26
+ throw error('Arguments are not yet supported for vlt update', {
27
+ code: 'EUSAGE',
28
+ });
29
+ }
30
+ /* c8 ignore start */
31
+ const allowScripts = conf.get('allow-scripts') ?
32
+ String(conf.get('allow-scripts'))
33
+ : ':not(*)';
34
+ /* c8 ignore stop */
35
+ const { buildQueue, graph } = await update({
36
+ ...conf.options,
37
+ allowScripts,
38
+ });
39
+ return { buildQueue, graph };
40
+ };
41
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAIvD,MAAM,CAAC,MAAM,KAAK,GAAiB,GAAG,EAAE,CACtC,YAAY,CAAC;IACX,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,EAAE;IACT,WAAW,EAAE;gFAC+D;CAC7E,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACV,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACxB;gBACE,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,OAAO,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,+EAA+E;aAC/G;YACH,CAAC,CAAC,IAAI,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;KACxB,CAAC;IACF,KAAK,EAAE,eAAe;CACiB,CAAA;AAEzC,MAAM,CAAC,MAAM,OAAO,GAA6B,KAAK,EAAC,IAAI,EAAC,EAAE;IAC5D,4CAA4C;IAC5C,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,gDAAgD,EAAE;YAC5D,IAAI,EAAE,QAAQ;SACf,CAAC,CAAA;IACJ,CAAC;IAED,qBAAqB;IACrB,MAAM,YAAY,GAChB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC,CAAC,SAAS,CAAA;IACb,oBAAoB;IACpB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC;QACzC,GAAG,IAAI,CAAC,OAAO;QACf,YAAY;KACb,CAAC,CAAA;IACF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;AAC9B,CAAC,CAAA","sourcesContent":["import { update } from '@vltpkg/graph'\nimport { error } from '@vltpkg/error-cause'\nimport { commandUsage } from '../config/usage.ts'\nimport type { CommandFn, CommandUsage } from '../index.ts'\nimport { InstallReporter } from './install/reporter.ts'\nimport type { Views } from '../view.ts'\nimport type { InstallResult } from './install.ts'\n\nexport const usage: CommandUsage = () =>\n commandUsage({\n command: 'update',\n usage: '',\n description: `Update dependencies to their latest in-range versions.\n Discards the lockfile and resolves dependencies from scratch.`,\n })\n\nexport const views = {\n json: i => ({\n ...(i.buildQueue?.length ?\n {\n buildQueue: i.buildQueue,\n message: `${i.buildQueue.length} packages that will need to be built, run \"vlt build\" to complete the update.`,\n }\n : null),\n graph: i.graph.toJSON(),\n }),\n human: InstallReporter,\n} as const satisfies Views<InstallResult>\n\nexport const command: CommandFn<InstallResult> = async conf => {\n // Throw error if any arguments are provided\n if (conf.positionals.length > 0) {\n throw error('Arguments are not yet supported for vlt update', {\n code: 'EUSAGE',\n })\n }\n\n /* c8 ignore start */\n const allowScripts =\n conf.get('allow-scripts') ?\n String(conf.get('allow-scripts'))\n : ':not(*)'\n /* c8 ignore stop */\n const { buildQueue, graph } = await update({\n ...conf.options,\n allowScripts,\n })\n return { buildQueue, graph }\n}\n"]}
@@ -0,0 +1,26 @@
1
+ import type { CommandFn, CommandUsage } from '../index.ts';
2
+ export type VersionOptions = {
3
+ prereleaseId?: string;
4
+ commit?: boolean;
5
+ tag?: boolean;
6
+ message?: string;
7
+ tagMessage?: string;
8
+ includeNameInCommit?: boolean;
9
+ includeNameInTag?: boolean;
10
+ };
11
+ export type CommandResultSingle = {
12
+ name: string;
13
+ oldVersion: string;
14
+ newVersion: string;
15
+ dir: string;
16
+ committed?: string[];
17
+ tag?: string;
18
+ };
19
+ export type CommandResult = CommandResultSingle | CommandResultSingle[];
20
+ export declare const usage: CommandUsage;
21
+ export declare const views: {
22
+ readonly json: (result: CommandResult) => CommandResult;
23
+ readonly human: (results: CommandResult) => string;
24
+ };
25
+ export declare const command: CommandFn<CommandResult>;
26
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/commands/version.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAS1D,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,mBAAmB,EAAE,CAAA;AA2LzB,eAAO,MAAM,KAAK,EAAE,YAanB,CAAA;AAED,eAAO,MAAM,KAAK;;;CAiBuB,CAAA;AAEzC,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,aAAa,CAkE5C,CAAA"}
@@ -0,0 +1,226 @@
1
+ import { inc, parse as parseVersion, versionIncrements, } from '@vltpkg/semver';
2
+ import { is as isGit, spawn as spawn_, isClean } from '@vltpkg/git';
3
+ import { error } from '@vltpkg/error-cause';
4
+ import { asError } from '@vltpkg/types';
5
+ import { commandUsage } from "../config/usage.js";
6
+ import { dirname, resolve } from 'node:path';
7
+ import assert from 'node:assert';
8
+ import { actual } from '@vltpkg/graph';
9
+ import { Query } from '@vltpkg/query';
10
+ import { createHostContextsMap } from "../query-host-contexts.js";
11
+ const isValidVersionIncrement = (value) => versionIncrements.includes(value);
12
+ const version = async (conf, increment, cwd, {
13
+ // Hardcode happy path options for now.
14
+ // TODO: make these config definitions
15
+ prereleaseId = 'pre', commit = true, tag = true, message = 'v%s', tagMessage = 'v%s', includeNameInCommit = false, includeNameInTag = false, } = {}) => {
16
+ assert(increment, error('Version increment argument is required', {
17
+ code: 'EUSAGE',
18
+ validOptions: versionIncrements,
19
+ }));
20
+ const manifestPath = conf.options.packageJson.find(cwd);
21
+ assert(manifestPath, error('No package.json found', {
22
+ code: 'ENOENT',
23
+ path: cwd,
24
+ }));
25
+ const spawn = (args, opts) => spawn_(args, { cwd: manifestDir, ...opts });
26
+ const manifestDir = dirname(manifestPath);
27
+ const manifest = conf.options.packageJson.read(manifestDir);
28
+ assert(manifest.name, error('No name field found in package.json', {
29
+ path: manifestPath,
30
+ }));
31
+ assert(manifest.version, error('No version field found in package.json', {
32
+ path: manifestPath,
33
+ }));
34
+ const oldVersion = manifest.version;
35
+ let newVersion;
36
+ // Check if increment is a valid semver version string
37
+ const parsedIncrement = parseVersion(increment);
38
+ if (parsedIncrement) {
39
+ newVersion = parsedIncrement.toString();
40
+ }
41
+ else if (isValidVersionIncrement(increment)) {
42
+ // Use semver increment
43
+ const incrementType = increment;
44
+ try {
45
+ const result = inc(oldVersion, incrementType, prereleaseId);
46
+ newVersion = result.toString();
47
+ }
48
+ catch (err) {
49
+ throw error(`Failed to increment version from ${oldVersion} with ${increment}`, { version: oldVersion, wanted: increment, cause: err });
50
+ }
51
+ }
52
+ else {
53
+ throw error(`Invalid version increment: ${increment}. Must be a valid semver version or one of: major, minor, patch, premajor, preminor, prepatch, prerelease`, {
54
+ found: increment,
55
+ validOptions: versionIncrements,
56
+ });
57
+ }
58
+ // Update the manifest
59
+ manifest.version = newVersion;
60
+ conf.options.packageJson.write(manifestDir, manifest);
61
+ const result = {
62
+ name: manifest.name,
63
+ oldVersion,
64
+ newVersion,
65
+ dir: manifestDir,
66
+ };
67
+ // Handle git operations if we're in a git repository
68
+ if (
69
+ /* c8 ignore next -- commit and tag are always true for now */
70
+ (commit || tag) &&
71
+ (await isGit({ cwd: conf.options.projectRoot }))) {
72
+ // Check for uncommitted changes (excluding package.json since we just modified it)
73
+ if (!(await isClean({ cwd: conf.options.projectRoot }))) {
74
+ try {
75
+ // Check if there are changes other than package.json
76
+ const gitResult = await spawn([
77
+ 'diff',
78
+ '--name-only',
79
+ 'HEAD',
80
+ '--',
81
+ '.',
82
+ ]);
83
+ const changedFiles = gitResult.stdout
84
+ .trim()
85
+ .split('\n')
86
+ .filter(Boolean)
87
+ .map(f => resolve(conf.options.projectRoot, f));
88
+ const nonPackageJsonChanges = changedFiles.filter(file => file !== resolve(manifestDir, 'package.json'));
89
+ assert(nonPackageJsonChanges.length === 0, error('Git working directory not clean. Please commit or stash your changes first.', { found: nonPackageJsonChanges }));
90
+ }
91
+ catch (err) {
92
+ throw error('Git working directory not clean. Please commit or stash your changes first.', asError(err));
93
+ }
94
+ }
95
+ if (commit) {
96
+ try {
97
+ // Stage package.json
98
+ const files = ['package.json'];
99
+ await spawn(['add', ...files]);
100
+ await spawn([
101
+ 'commit',
102
+ '-m',
103
+ `${includeNameInCommit ? `${manifest.name}: ` : ''}${message.replace('%s', newVersion)}`,
104
+ ]);
105
+ result.committed = files.map(f => resolve(manifestDir, f));
106
+ }
107
+ catch (err) {
108
+ throw error('Failed to commit version changes', {
109
+ version: newVersion,
110
+ cause: err,
111
+ });
112
+ }
113
+ }
114
+ if (tag) {
115
+ try {
116
+ const tagName = (includeNameInTag ?
117
+ `${manifest.name.replace('/', '-').replace('@', '')}-`
118
+ : '') + `v${newVersion}`;
119
+ await spawn([
120
+ 'tag',
121
+ tagName,
122
+ '-m',
123
+ (includeNameInTag ? `${manifest.name}: ` : '') +
124
+ tagMessage.replace('%s', newVersion),
125
+ ]);
126
+ result.tag = tagName;
127
+ }
128
+ catch (err) {
129
+ throw error('Failed to create git tag', {
130
+ version: newVersion,
131
+ cause: err,
132
+ });
133
+ }
134
+ }
135
+ }
136
+ return result;
137
+ };
138
+ export const usage = () => {
139
+ return commandUsage({
140
+ command: 'version',
141
+ usage: '[<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]',
142
+ description: `Bump a package's version.
143
+
144
+ Run in a package directory to bump the version and write the new data back to package.json.
145
+
146
+ The \`<newversion>\` argument should be a valid semver string or a valid increment type (one of patch, minor, major, prepatch, preminor, premajor, prerelease).
147
+
148
+ If run in a git repository, it will also create a version commit and tag.`,
149
+ });
150
+ };
151
+ export const views = {
152
+ json: result => result,
153
+ human: results => {
154
+ const item = (result) => {
155
+ let output = `${result.name}: v${result.newVersion}`;
156
+ if (result.committed) {
157
+ output += ` +commit`;
158
+ }
159
+ if (result.tag) {
160
+ output += ` +tag`;
161
+ }
162
+ return output;
163
+ };
164
+ return Array.isArray(results) ?
165
+ results.map(item).join('\n')
166
+ : item(results);
167
+ },
168
+ };
169
+ export const command = async (conf) => {
170
+ const { positionals, options, projectRoot } = conf;
171
+ const queryString = conf.get('scope');
172
+ const paths = conf.get('workspace');
173
+ const groups = conf.get('workspace-group');
174
+ const recursive = conf.get('recursive');
175
+ const locations = [];
176
+ if (queryString) {
177
+ const mainManifest = options.packageJson.maybeRead(projectRoot);
178
+ let graph;
179
+ if (mainManifest) {
180
+ graph = actual.load({
181
+ ...options,
182
+ mainManifest,
183
+ monorepo: options.monorepo,
184
+ loadManifests: false,
185
+ });
186
+ }
187
+ const hostContexts = await createHostContextsMap(conf);
188
+ const query = new Query({
189
+ /* c8 ignore next */
190
+ nodes: graph ? new Set(graph.nodes.values()) : new Set(),
191
+ edges: graph?.edges ?? new Set(),
192
+ importers: graph?.importers ?? new Set(),
193
+ securityArchive: undefined,
194
+ hostContexts,
195
+ });
196
+ const { nodes } = await query.search(queryString, {
197
+ signal: new AbortController().signal,
198
+ });
199
+ for (const node of nodes) {
200
+ const location = node.location;
201
+ assert(location, error(`node ${node.id} has no location`, {
202
+ found: node,
203
+ }));
204
+ locations.push(resolve(node.projectRoot, location));
205
+ }
206
+ }
207
+ else if (paths?.length || groups?.length || recursive) {
208
+ for (const workspace of options.monorepo ?? []) {
209
+ locations.push(workspace.fullpath);
210
+ }
211
+ }
212
+ else {
213
+ const cwd = options.packageJson.find(process.cwd()) ?? projectRoot;
214
+ return version(conf, positionals[0], cwd);
215
+ }
216
+ assert(locations.length > 0, error('No workspaces or query results found'));
217
+ const results = [];
218
+ for (const location of locations) {
219
+ results.push(await version(conf, positionals[0], location, {
220
+ includeNameInCommit: true,
221
+ includeNameInTag: true,
222
+ }));
223
+ }
224
+ return results;
225
+ };
226
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/commands/version.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n inc,\n parse as parseVersion,\n versionIncrements,\n} from '@vltpkg/semver'\nimport type { IncrementType } from '@vltpkg/semver'\nimport { is as isGit, spawn as spawn_, isClean } from '@vltpkg/git'\nimport type { GitOptions } from '@vltpkg/git'\nimport { error } from '@vltpkg/error-cause'\nimport { asError } from '@vltpkg/types'\nimport { commandUsage } from '../config/usage.ts'\nimport type { CommandFn, CommandUsage } from '../index.ts'\nimport type { Views } from '../view.ts'\nimport type { ParsedConfig } from '../config/index.ts'\nimport { dirname, resolve } from 'node:path'\nimport assert from 'node:assert'\nimport { actual } from '@vltpkg/graph'\nimport { Query } from '@vltpkg/query'\nimport { createHostContextsMap } from '../query-host-contexts.ts'\n\nexport type VersionOptions = {\n prereleaseId?: string\n commit?: boolean\n tag?: boolean\n message?: string\n tagMessage?: string\n includeNameInCommit?: boolean\n includeNameInTag?: boolean\n}\n\nexport type CommandResultSingle = {\n name: string\n oldVersion: string\n newVersion: string\n dir: string\n committed?: string[]\n tag?: string\n}\n\nexport type CommandResult =\n | CommandResultSingle\n | CommandResultSingle[]\n\nconst isValidVersionIncrement = (\n value: string,\n): value is IncrementType =>\n versionIncrements.includes(value as IncrementType)\n\nconst version = async (\n conf: ParsedConfig,\n increment: string | undefined,\n cwd: string,\n {\n // Hardcode happy path options for now.\n // TODO: make these config definitions\n prereleaseId = 'pre',\n commit = true,\n tag = true,\n message = 'v%s',\n tagMessage = 'v%s',\n includeNameInCommit = false,\n includeNameInTag = false,\n }: VersionOptions = {},\n): Promise<CommandResultSingle> => {\n assert(\n increment,\n error('Version increment argument is required', {\n code: 'EUSAGE',\n validOptions: versionIncrements,\n }),\n )\n\n const manifestPath = conf.options.packageJson.find(cwd)\n assert(\n manifestPath,\n error('No package.json found', {\n code: 'ENOENT',\n path: cwd,\n }),\n )\n\n const spawn = (args: string[], opts?: GitOptions) =>\n spawn_(args, { cwd: manifestDir, ...opts })\n\n const manifestDir = dirname(manifestPath)\n const manifest = conf.options.packageJson.read(manifestDir)\n\n assert(\n manifest.name,\n error('No name field found in package.json', {\n path: manifestPath,\n }),\n )\n assert(\n manifest.version,\n error('No version field found in package.json', {\n path: manifestPath,\n }),\n )\n\n const oldVersion = manifest.version\n let newVersion: string\n\n // Check if increment is a valid semver version string\n const parsedIncrement = parseVersion(increment)\n if (parsedIncrement) {\n newVersion = parsedIncrement.toString()\n } else if (isValidVersionIncrement(increment)) {\n // Use semver increment\n const incrementType = increment\n try {\n const result = inc(oldVersion, incrementType, prereleaseId)\n newVersion = result.toString()\n } catch (err) {\n throw error(\n `Failed to increment version from ${oldVersion} with ${increment}`,\n { version: oldVersion, wanted: increment, cause: err },\n )\n }\n } else {\n throw error(\n `Invalid version increment: ${increment}. Must be a valid semver version or one of: major, minor, patch, premajor, preminor, prepatch, prerelease`,\n {\n found: increment,\n validOptions: versionIncrements,\n },\n )\n }\n\n // Update the manifest\n manifest.version = newVersion\n conf.options.packageJson.write(manifestDir, manifest)\n\n const result: CommandResultSingle = {\n name: manifest.name,\n oldVersion,\n newVersion,\n dir: manifestDir,\n }\n\n // Handle git operations if we're in a git repository\n if (\n /* c8 ignore next -- commit and tag are always true for now */\n (commit || tag) &&\n (await isGit({ cwd: conf.options.projectRoot }))\n ) {\n // Check for uncommitted changes (excluding package.json since we just modified it)\n if (!(await isClean({ cwd: conf.options.projectRoot }))) {\n try {\n // Check if there are changes other than package.json\n const gitResult = await spawn([\n 'diff',\n '--name-only',\n 'HEAD',\n '--',\n '.',\n ])\n const changedFiles = gitResult.stdout\n .trim()\n .split('\\n')\n .filter(Boolean)\n .map(f => resolve(conf.options.projectRoot, f))\n const nonPackageJsonChanges = changedFiles.filter(\n file => file !== resolve(manifestDir, 'package.json'),\n )\n assert(\n nonPackageJsonChanges.length === 0,\n error(\n 'Git working directory not clean. Please commit or stash your changes first.',\n { found: nonPackageJsonChanges },\n ),\n )\n } catch (err) {\n throw error(\n 'Git working directory not clean. Please commit or stash your changes first.',\n asError(err),\n )\n }\n }\n\n if (commit) {\n try {\n // Stage package.json\n const files = ['package.json']\n await spawn(['add', ...files])\n await spawn([\n 'commit',\n '-m',\n `${includeNameInCommit ? `${manifest.name}: ` : ''}${message.replace(\n '%s',\n newVersion,\n )}`,\n ])\n result.committed = files.map(f => resolve(manifestDir, f))\n } catch (err) {\n throw error('Failed to commit version changes', {\n version: newVersion,\n cause: err,\n })\n }\n }\n\n if (tag) {\n try {\n const tagName =\n (includeNameInTag ?\n `${manifest.name.replace('/', '-').replace('@', '')}-`\n : '') + `v${newVersion}`\n await spawn([\n 'tag',\n tagName,\n '-m',\n (includeNameInTag ? `${manifest.name}: ` : '') +\n tagMessage.replace('%s', newVersion),\n ])\n result.tag = tagName\n } catch (err) {\n throw error('Failed to create git tag', {\n version: newVersion,\n cause: err,\n })\n }\n }\n }\n\n return result\n}\n\nexport const usage: CommandUsage = () => {\n return commandUsage({\n command: 'version',\n usage:\n '[<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]',\n description: `Bump a package's version.\n\n Run in a package directory to bump the version and write the new data back to package.json.\n\n The \\`<newversion>\\` argument should be a valid semver string or a valid increment type (one of patch, minor, major, prepatch, preminor, premajor, prerelease).\n\n If run in a git repository, it will also create a version commit and tag.`,\n })\n}\n\nexport const views = {\n json: result => result,\n human: results => {\n const item = (result: CommandResultSingle) => {\n let output = `${result.name}: v${result.newVersion}`\n if (result.committed) {\n output += ` +commit`\n }\n if (result.tag) {\n output += ` +tag`\n }\n return output\n }\n return Array.isArray(results) ?\n results.map(item).join('\\n')\n : item(results)\n },\n} as const satisfies Views<CommandResult>\n\nexport const command: CommandFn<CommandResult> = async conf => {\n const { positionals, options, projectRoot } = conf\n const queryString = conf.get('scope')\n const paths = conf.get('workspace')\n const groups = conf.get('workspace-group')\n const recursive = conf.get('recursive')\n\n const locations: string[] = []\n\n if (queryString) {\n const mainManifest = options.packageJson.maybeRead(projectRoot)\n let graph\n if (mainManifest) {\n graph = actual.load({\n ...options,\n mainManifest,\n monorepo: options.monorepo,\n loadManifests: false,\n })\n }\n const hostContexts = await createHostContextsMap(conf)\n const query = new Query({\n /* c8 ignore next */\n nodes: graph ? new Set(graph.nodes.values()) : new Set(),\n edges: graph?.edges ?? new Set(),\n importers: graph?.importers ?? new Set(),\n securityArchive: undefined,\n hostContexts,\n })\n const { nodes } = await query.search(queryString, {\n signal: new AbortController().signal,\n })\n for (const node of nodes) {\n const location = node.location\n assert(\n location,\n error(`node ${node.id} has no location`, {\n found: node,\n }),\n )\n locations.push(resolve(node.projectRoot, location))\n }\n } else if (paths?.length || groups?.length || recursive) {\n for (const workspace of options.monorepo ?? []) {\n locations.push(workspace.fullpath)\n }\n } else {\n const cwd = options.packageJson.find(process.cwd()) ?? projectRoot\n return version(conf, positionals[0], cwd)\n }\n\n assert(\n locations.length > 0,\n error('No workspaces or query results found'),\n )\n\n const results: CommandResultSingle[] = []\n for (const location of locations) {\n results.push(\n await version(conf, positionals[0], location, {\n includeNameInCommit: true,\n includeNameInTag: true,\n }),\n )\n }\n return results\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  export declare const defaultView: string;
2
+ export declare const defaultEditor: () => string;
2
3
  /**
3
4
  * Command aliases mapped to their canonical names
4
5
  */
@@ -6,33 +7,47 @@ export declare const commands: {
6
7
  readonly i: "install";
7
8
  readonly add: "install";
8
9
  readonly rm: "uninstall";
9
- readonly u: "uninstall";
10
+ readonly u: "update";
11
+ readonly p: "pkg";
12
+ readonly pub: "publish";
13
+ readonly q: "query";
14
+ readonly b: "build";
10
15
  readonly r: "run";
11
16
  readonly 'run-script': "run";
12
17
  readonly rx: "run-exec";
18
+ readonly s: "serve";
13
19
  readonly x: "exec";
14
20
  readonly xl: "exec-local";
15
21
  readonly h: "help";
16
22
  readonly '?': "help";
17
- readonly conf: "config";
18
23
  readonly ls: "list";
24
+ readonly xc: "exec-cache";
25
+ readonly bugs: "bugs";
26
+ readonly build: "build";
19
27
  readonly cache: "cache";
28
+ readonly ci: "ci";
20
29
  readonly config: "config";
30
+ readonly docs: "docs";
21
31
  readonly exec: "exec";
22
32
  readonly 'exec-local': "exec-local";
23
- readonly gui: "gui";
24
33
  readonly help: "help";
25
34
  readonly init: "init";
26
35
  readonly install: "install";
27
36
  readonly login: "login";
28
37
  readonly logout: "logout";
29
38
  readonly list: "list";
39
+ readonly pack: "pack";
30
40
  readonly pkg: "pkg";
41
+ readonly publish: "publish";
31
42
  readonly query: "query";
32
43
  readonly 'run-exec': "run-exec";
33
44
  readonly run: "run";
45
+ readonly serve: "serve";
34
46
  readonly token: "token";
35
47
  readonly uninstall: "uninstall";
48
+ readonly update: "update";
49
+ readonly 'exec-cache': "exec-cache";
50
+ readonly version: "version";
36
51
  readonly whoami: "whoami";
37
52
  };
38
53
  /**
@@ -44,7 +59,7 @@ export declare const getCommand: (s?: string) => Commands[keyof Commands] | unde
44
59
  /**
45
60
  * Fields that are parsed as a set of key=value pairs
46
61
  */
47
- export declare const recordFields: readonly ["git-hosts", "registries", "git-host-archives", "scope-registries"];
62
+ export declare const recordFields: readonly ["git-hosts", "registries", "git-host-archives", "scope-registries", "jsr-registries"];
48
63
  export type RecordField = (typeof recordFields)[number];
49
64
  export declare const isRecordField: (s: string) => s is RecordField;
50
65
  export declare const definition: import("jackspeak").Jack<{
@@ -76,6 +91,10 @@ export declare const definition: import("jackspeak").Jack<{
76
91
  hint: string;
77
92
  description: string;
78
93
  };
94
+ 'jsr-registries': {
95
+ hint: string;
96
+ description: string;
97
+ };
79
98
  'git-hosts': {
80
99
  hint: string;
81
100
  short: string;
@@ -89,6 +108,7 @@ export declare const definition: import("jackspeak").Jack<{
89
108
  } & {
90
109
  registries: import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
91
110
  'scope-registries': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
111
+ 'jsr-registries': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
92
112
  'git-hosts': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
93
113
  'git-host-archives': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
94
114
  } & {
@@ -186,6 +206,26 @@ export declare const definition: import("jackspeak").Jack<{
186
206
  } & {
187
207
  workspace: import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
188
208
  'workspace-group': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
209
+ } & {
210
+ scope: {
211
+ short: string;
212
+ hint: string;
213
+ description: string;
214
+ };
215
+ target: {
216
+ short: string;
217
+ hint: string;
218
+ description: string;
219
+ };
220
+ } & {
221
+ scope: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
222
+ target: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
223
+ } & {
224
+ 'if-present': {
225
+ description: string;
226
+ };
227
+ } & {
228
+ 'if-present': import("jackspeak").ConfigOption<"boolean", false, undefined>;
189
229
  } & {
190
230
  recursive: {
191
231
  short: string;
@@ -208,7 +248,7 @@ export declare const definition: import("jackspeak").Jack<{
208
248
  config: {
209
249
  hint: string;
210
250
  description: string;
211
- validOptions: readonly ["user", "project"];
251
+ validOptions: readonly ["all", "user", "project"];
212
252
  default: string;
213
253
  };
214
254
  editor: {
@@ -243,7 +283,7 @@ export declare const definition: import("jackspeak").Jack<{
243
283
  hint: string;
244
284
  default: string;
245
285
  description: string;
246
- validOptions: readonly ["human", "json", "mermaid", "gui", "inspect"];
286
+ validOptions: readonly ["human", "json", "mermaid", "gui", "inspect", "silent"];
247
287
  };
248
288
  } & {
249
289
  view: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
@@ -276,26 +316,90 @@ export declare const definition: import("jackspeak").Jack<{
276
316
  'save-peer': import("jackspeak").ConfigOption<"boolean", false, undefined>;
277
317
  'save-prod': import("jackspeak").ConfigOption<"boolean", false, undefined>;
278
318
  } & {
279
- version: {
280
- short: string;
319
+ 'expect-results': {
320
+ hint: string;
321
+ validate: (v: unknown) => boolean;
281
322
  description: string;
282
323
  };
283
324
  } & {
284
- version: import("jackspeak").ConfigOption<"boolean", false, undefined>;
325
+ 'expect-results': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
285
326
  } & {
286
- help: {
287
- short: string;
327
+ 'dry-run': {
328
+ description: string;
329
+ };
330
+ 'expect-lockfile': {
331
+ description: string;
332
+ };
333
+ 'frozen-lockfile': {
334
+ description: string;
335
+ };
336
+ 'lockfile-only': {
288
337
  description: string;
289
338
  };
290
339
  } & {
291
- help: import("jackspeak").ConfigOption<"boolean", false, undefined>;
340
+ 'dry-run': import("jackspeak").ConfigOption<"boolean", false, undefined>;
341
+ 'expect-lockfile': import("jackspeak").ConfigOption<"boolean", false, undefined>;
342
+ 'frozen-lockfile': import("jackspeak").ConfigOption<"boolean", false, undefined>;
343
+ 'lockfile-only': import("jackspeak").ConfigOption<"boolean", false, undefined>;
292
344
  } & {
293
- 'expect-results': {
345
+ 'allow-scripts': {
294
346
  hint: string;
295
- validate: (v: unknown) => boolean;
296
347
  description: string;
297
348
  };
298
349
  } & {
299
- 'expect-results': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
350
+ 'allow-scripts': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
351
+ } & {
352
+ access: {
353
+ description: string;
354
+ validOptions: readonly ["public", "restricted"];
355
+ default: string;
356
+ };
357
+ } & {
358
+ access: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
359
+ } & {
360
+ otp: {
361
+ description: string;
362
+ };
363
+ 'publish-directory': {
364
+ hint: string;
365
+ description: string;
366
+ };
367
+ port: {
368
+ hint: string;
369
+ description: string;
370
+ };
371
+ 'registry-port': {
372
+ hint: string;
373
+ description: string;
374
+ };
375
+ } & {
376
+ otp: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
377
+ 'publish-directory': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
378
+ port: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
379
+ 'registry-port': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
380
+ } & {
381
+ yes: {
382
+ short: string;
383
+ description: string;
384
+ };
385
+ version: {
386
+ short: string;
387
+ description: string;
388
+ };
389
+ help: {
390
+ short: string;
391
+ description: string;
392
+ };
393
+ all: {
394
+ short: string;
395
+ description: string;
396
+ };
397
+ } & {
398
+ yes: import("jackspeak").ConfigOption<"boolean", false, undefined>;
399
+ version: import("jackspeak").ConfigOption<"boolean", false, undefined>;
400
+ help: import("jackspeak").ConfigOption<"boolean", false, undefined>;
401
+ all: import("jackspeak").ConfigOption<"boolean", false, undefined>;
300
402
  }>;
403
+ export declare const getSortedCliOptions: () => string[];
404
+ export declare const getSortedKeys: () => string[];
301
405
  //# sourceMappingURL=definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/config/definition.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,QAA0C,CAAA;AAwClE;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGX,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,cAAc,uBAW1B,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAA;AAEtC,eAAO,MAAM,UAAU,OACjB,MAAM,KACT,QAAQ,CAAC,MAAM,QAAQ,CAAC,GAAG,SACkC,CAAA;AAKhE;;GAEG;AACH,eAAO,MAAM,YAAY,+EAKf,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvD,eAAO,MAAM,aAAa,MAAO,MAAM,KAAG,CAAC,IAAI,WACN,CAAA;AAwCzC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAwNH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA8MP,OAAO;;;;;EAWvB,CAAA"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/config/definition.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,QAOd,CAAA;AAEV,eAAO,MAAM,aAAa,cAKjB,CAAA;AAsDT;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGX,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,cAAc,uBAW1B,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAA;AAEtC,eAAO,MAAM,UAAU,OACjB,MAAM,KACT,QAAQ,CAAC,MAAM,QAAQ,CAAC,GAAG,SACkC,CAAA;AAKhE;;GAEG;AACH,eAAO,MAAM,YAAY,iGAMf,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvD,eAAO,MAAM,aAAa,MAAO,MAAM,KAAG,CAAC,IAAI,WACN,CAAA;AAwCzC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2OH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAmOP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFvB,CAAA;AAEJ,eAAO,MAAM,mBAAmB,gBAS/B,CAAA;AAED,eAAO,MAAM,aAAa,gBAC2C,CAAA"}