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

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 (149) hide show
  1. package/dist/esm/commands/build.d.ts +25 -0
  2. package/dist/esm/commands/build.d.ts.map +1 -0
  3. package/dist/esm/commands/build.js +102 -0
  4. package/dist/esm/commands/build.js.map +1 -0
  5. package/dist/esm/commands/cache.d.ts +18 -0
  6. package/dist/esm/commands/cache.d.ts.map +1 -1
  7. package/dist/esm/commands/cache.js +48 -2
  8. package/dist/esm/commands/cache.js.map +1 -1
  9. package/dist/esm/commands/ci.d.ts +11 -0
  10. package/dist/esm/commands/ci.d.ts.map +1 -0
  11. package/dist/esm/commands/ci.js +32 -0
  12. package/dist/esm/commands/ci.js.map +1 -0
  13. package/dist/esm/commands/config.d.ts +3 -2
  14. package/dist/esm/commands/config.d.ts.map +1 -1
  15. package/dist/esm/commands/config.js +372 -101
  16. package/dist/esm/commands/config.js.map +1 -1
  17. package/dist/esm/commands/docs.d.ts +18 -0
  18. package/dist/esm/commands/docs.d.ts.map +1 -0
  19. package/dist/esm/commands/docs.js +154 -0
  20. package/dist/esm/commands/docs.js.map +1 -0
  21. package/dist/esm/commands/exec-cache.d.ts +49 -0
  22. package/dist/esm/commands/exec-cache.d.ts.map +1 -0
  23. package/dist/esm/commands/exec-cache.js +146 -0
  24. package/dist/esm/commands/exec-cache.js.map +1 -0
  25. package/dist/esm/commands/exec-local.d.ts +1 -0
  26. package/dist/esm/commands/exec-local.d.ts.map +1 -1
  27. package/dist/esm/commands/exec-local.js +2 -0
  28. package/dist/esm/commands/exec-local.js.map +1 -1
  29. package/dist/esm/commands/exec.d.ts +6 -1
  30. package/dist/esm/commands/exec.d.ts.map +1 -1
  31. package/dist/esm/commands/exec.js +79 -5
  32. package/dist/esm/commands/exec.js.map +1 -1
  33. package/dist/esm/commands/help.d.ts +1 -1
  34. package/dist/esm/commands/help.d.ts.map +1 -1
  35. package/dist/esm/commands/help.js +32 -3
  36. package/dist/esm/commands/help.js.map +1 -1
  37. package/dist/esm/commands/init.d.ts +3 -3
  38. package/dist/esm/commands/init.d.ts.map +1 -1
  39. package/dist/esm/commands/init.js +95 -9
  40. package/dist/esm/commands/init.js.map +1 -1
  41. package/dist/esm/commands/install/reporter.d.ts +3 -2
  42. package/dist/esm/commands/install/reporter.d.ts.map +1 -1
  43. package/dist/esm/commands/install/reporter.js +42 -15
  44. package/dist/esm/commands/install/reporter.js.map +1 -1
  45. package/dist/esm/commands/install.d.ts +21 -3
  46. package/dist/esm/commands/install.d.ts.map +1 -1
  47. package/dist/esm/commands/install.js +27 -3
  48. package/dist/esm/commands/install.js.map +1 -1
  49. package/dist/esm/commands/list.d.ts +2 -2
  50. package/dist/esm/commands/list.d.ts.map +1 -1
  51. package/dist/esm/commands/list.js +149 -49
  52. package/dist/esm/commands/list.js.map +1 -1
  53. package/dist/esm/commands/pack.d.ts +32 -0
  54. package/dist/esm/commands/pack.d.ts.map +1 -0
  55. package/dist/esm/commands/pack.js +147 -0
  56. package/dist/esm/commands/pack.js.map +1 -0
  57. package/dist/esm/commands/pkg.d.ts +1 -2
  58. package/dist/esm/commands/pkg.d.ts.map +1 -1
  59. package/dist/esm/commands/pkg.js +123 -38
  60. package/dist/esm/commands/pkg.js.map +1 -1
  61. package/dist/esm/commands/publish.d.ts +22 -0
  62. package/dist/esm/commands/publish.d.ts.map +1 -0
  63. package/dist/esm/commands/publish.js +245 -0
  64. package/dist/esm/commands/publish.js.map +1 -0
  65. package/dist/esm/commands/query.d.ts +2 -3
  66. package/dist/esm/commands/query.d.ts.map +1 -1
  67. package/dist/esm/commands/query.js +132 -38
  68. package/dist/esm/commands/query.js.map +1 -1
  69. package/dist/esm/commands/run-exec.d.ts +1 -0
  70. package/dist/esm/commands/run-exec.d.ts.map +1 -1
  71. package/dist/esm/commands/run-exec.js +1 -0
  72. package/dist/esm/commands/run-exec.js.map +1 -1
  73. package/dist/esm/commands/run.d.ts +1 -0
  74. package/dist/esm/commands/run.d.ts.map +1 -1
  75. package/dist/esm/commands/run.js +13 -16
  76. package/dist/esm/commands/run.js.map +1 -1
  77. package/dist/esm/commands/serve.d.ts +14 -0
  78. package/dist/esm/commands/serve.d.ts.map +1 -0
  79. package/dist/esm/commands/serve.js +103 -0
  80. package/dist/esm/commands/serve.js.map +1 -0
  81. package/dist/esm/commands/uninstall.d.ts +8 -2
  82. package/dist/esm/commands/uninstall.d.ts.map +1 -1
  83. package/dist/esm/commands/uninstall.js +8 -3
  84. package/dist/esm/commands/uninstall.js.map +1 -1
  85. package/dist/esm/commands/update.d.ts +14 -0
  86. package/dist/esm/commands/update.d.ts.map +1 -0
  87. package/dist/esm/commands/update.js +41 -0
  88. package/dist/esm/commands/update.js.map +1 -0
  89. package/dist/esm/commands/version.d.ts +26 -0
  90. package/dist/esm/commands/version.d.ts.map +1 -0
  91. package/dist/esm/commands/version.js +226 -0
  92. package/dist/esm/commands/version.js.map +1 -0
  93. package/dist/esm/config/definition.d.ts +118 -15
  94. package/dist/esm/config/definition.d.ts.map +1 -1
  95. package/dist/esm/config/definition.js +185 -37
  96. package/dist/esm/config/definition.js.map +1 -1
  97. package/dist/esm/config/index.d.ts +41 -37
  98. package/dist/esm/config/index.d.ts.map +1 -1
  99. package/dist/esm/config/index.js +109 -172
  100. package/dist/esm/config/index.js.map +1 -1
  101. package/dist/esm/config/merge.d.ts +3 -1
  102. package/dist/esm/config/merge.d.ts.map +1 -1
  103. package/dist/esm/config/merge.js +11 -6
  104. package/dist/esm/config/merge.js.map +1 -1
  105. package/dist/esm/custom-help.d.ts +9 -0
  106. package/dist/esm/custom-help.d.ts.map +1 -0
  107. package/dist/esm/custom-help.js +400 -0
  108. package/dist/esm/custom-help.js.map +1 -0
  109. package/dist/esm/exec-command.d.ts +33 -14
  110. package/dist/esm/exec-command.d.ts.map +1 -1
  111. package/dist/esm/exec-command.js +213 -64
  112. package/dist/esm/exec-command.js.map +1 -1
  113. package/dist/esm/index.d.ts +1 -14
  114. package/dist/esm/index.d.ts.map +1 -1
  115. package/dist/esm/index.js +45 -19
  116. package/dist/esm/index.js.map +1 -1
  117. package/dist/esm/load-command.d.ts +16 -0
  118. package/dist/esm/load-command.d.ts.map +1 -0
  119. package/dist/esm/load-command.js +21 -0
  120. package/dist/esm/load-command.js.map +1 -0
  121. package/dist/esm/output.d.ts +6 -11
  122. package/dist/esm/output.d.ts.map +1 -1
  123. package/dist/esm/output.js +64 -27
  124. package/dist/esm/output.js.map +1 -1
  125. package/dist/esm/pack-tarball.d.ts +22 -0
  126. package/dist/esm/pack-tarball.d.ts.map +1 -0
  127. package/dist/esm/pack-tarball.js +249 -0
  128. package/dist/esm/pack-tarball.js.map +1 -0
  129. package/dist/esm/print-err.d.ts +9 -2
  130. package/dist/esm/print-err.d.ts.map +1 -1
  131. package/dist/esm/print-err.js +130 -46
  132. package/dist/esm/print-err.js.map +1 -1
  133. package/dist/esm/query-host-contexts.d.ts +16 -0
  134. package/dist/esm/query-host-contexts.d.ts.map +1 -0
  135. package/dist/esm/query-host-contexts.js +135 -0
  136. package/dist/esm/query-host-contexts.js.map +1 -0
  137. package/dist/esm/start-gui.d.ts +1 -0
  138. package/dist/esm/start-gui.d.ts.map +1 -1
  139. package/dist/esm/start-gui.js +25 -6
  140. package/dist/esm/start-gui.js.map +1 -1
  141. package/dist/esm/view.d.ts +2 -3
  142. package/dist/esm/view.d.ts.map +1 -1
  143. package/dist/esm/view.js +1 -1
  144. package/dist/esm/view.js.map +1 -1
  145. package/package.json +51 -37
  146. package/dist/esm/commands/gui.d.ts +0 -6
  147. package/dist/esm/commands/gui.d.ts.map +0 -1
  148. package/dist/esm/commands/gui.js +0 -13
  149. 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,46 @@ 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 build: "build";
19
26
  readonly cache: "cache";
27
+ readonly ci: "ci";
20
28
  readonly config: "config";
29
+ readonly docs: "docs";
21
30
  readonly exec: "exec";
22
31
  readonly 'exec-local': "exec-local";
23
- readonly gui: "gui";
24
32
  readonly help: "help";
25
33
  readonly init: "init";
26
34
  readonly install: "install";
27
35
  readonly login: "login";
28
36
  readonly logout: "logout";
29
37
  readonly list: "list";
38
+ readonly pack: "pack";
30
39
  readonly pkg: "pkg";
40
+ readonly publish: "publish";
31
41
  readonly query: "query";
32
42
  readonly 'run-exec': "run-exec";
33
43
  readonly run: "run";
44
+ readonly serve: "serve";
34
45
  readonly token: "token";
35
46
  readonly uninstall: "uninstall";
47
+ readonly update: "update";
48
+ readonly 'exec-cache': "exec-cache";
49
+ readonly version: "version";
36
50
  readonly whoami: "whoami";
37
51
  };
38
52
  /**
@@ -44,7 +58,7 @@ export declare const getCommand: (s?: string) => Commands[keyof Commands] | unde
44
58
  /**
45
59
  * Fields that are parsed as a set of key=value pairs
46
60
  */
47
- export declare const recordFields: readonly ["git-hosts", "registries", "git-host-archives", "scope-registries"];
61
+ export declare const recordFields: readonly ["git-hosts", "registries", "git-host-archives", "scope-registries", "jsr-registries"];
48
62
  export type RecordField = (typeof recordFields)[number];
49
63
  export declare const isRecordField: (s: string) => s is RecordField;
50
64
  export declare const definition: import("jackspeak").Jack<{
@@ -76,6 +90,10 @@ export declare const definition: import("jackspeak").Jack<{
76
90
  hint: string;
77
91
  description: string;
78
92
  };
93
+ 'jsr-registries': {
94
+ hint: string;
95
+ description: string;
96
+ };
79
97
  'git-hosts': {
80
98
  hint: string;
81
99
  short: string;
@@ -89,6 +107,7 @@ export declare const definition: import("jackspeak").Jack<{
89
107
  } & {
90
108
  registries: import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
91
109
  'scope-registries': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
110
+ 'jsr-registries': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
92
111
  'git-hosts': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
93
112
  'git-host-archives': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
94
113
  } & {
@@ -186,6 +205,26 @@ export declare const definition: import("jackspeak").Jack<{
186
205
  } & {
187
206
  workspace: import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
188
207
  'workspace-group': import("jackspeak").ConfigOption<"string", true, readonly string[] | undefined>;
208
+ } & {
209
+ scope: {
210
+ short: string;
211
+ hint: string;
212
+ description: string;
213
+ };
214
+ target: {
215
+ short: string;
216
+ hint: string;
217
+ description: string;
218
+ };
219
+ } & {
220
+ scope: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
221
+ target: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
222
+ } & {
223
+ 'if-present': {
224
+ description: string;
225
+ };
226
+ } & {
227
+ 'if-present': import("jackspeak").ConfigOption<"boolean", false, undefined>;
189
228
  } & {
190
229
  recursive: {
191
230
  short: string;
@@ -208,7 +247,7 @@ export declare const definition: import("jackspeak").Jack<{
208
247
  config: {
209
248
  hint: string;
210
249
  description: string;
211
- validOptions: readonly ["user", "project"];
250
+ validOptions: readonly ["all", "user", "project"];
212
251
  default: string;
213
252
  };
214
253
  editor: {
@@ -243,7 +282,7 @@ export declare const definition: import("jackspeak").Jack<{
243
282
  hint: string;
244
283
  default: string;
245
284
  description: string;
246
- validOptions: readonly ["human", "json", "mermaid", "gui", "inspect"];
285
+ validOptions: readonly ["human", "json", "mermaid", "gui", "inspect", "silent"];
247
286
  };
248
287
  } & {
249
288
  view: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
@@ -276,26 +315,90 @@ export declare const definition: import("jackspeak").Jack<{
276
315
  'save-peer': import("jackspeak").ConfigOption<"boolean", false, undefined>;
277
316
  'save-prod': import("jackspeak").ConfigOption<"boolean", false, undefined>;
278
317
  } & {
279
- version: {
280
- short: string;
318
+ 'expect-results': {
319
+ hint: string;
320
+ validate: (v: unknown) => boolean;
281
321
  description: string;
282
322
  };
283
323
  } & {
284
- version: import("jackspeak").ConfigOption<"boolean", false, undefined>;
324
+ 'expect-results': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
285
325
  } & {
286
- help: {
287
- short: string;
326
+ 'dry-run': {
327
+ description: string;
328
+ };
329
+ 'expect-lockfile': {
330
+ description: string;
331
+ };
332
+ 'frozen-lockfile': {
333
+ description: string;
334
+ };
335
+ 'lockfile-only': {
288
336
  description: string;
289
337
  };
290
338
  } & {
291
- help: import("jackspeak").ConfigOption<"boolean", false, undefined>;
339
+ 'dry-run': import("jackspeak").ConfigOption<"boolean", false, undefined>;
340
+ 'expect-lockfile': import("jackspeak").ConfigOption<"boolean", false, undefined>;
341
+ 'frozen-lockfile': import("jackspeak").ConfigOption<"boolean", false, undefined>;
342
+ 'lockfile-only': import("jackspeak").ConfigOption<"boolean", false, undefined>;
292
343
  } & {
293
- 'expect-results': {
344
+ 'allow-scripts': {
294
345
  hint: string;
295
- validate: (v: unknown) => boolean;
296
346
  description: string;
297
347
  };
298
348
  } & {
299
- 'expect-results': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
349
+ 'allow-scripts': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
350
+ } & {
351
+ access: {
352
+ description: string;
353
+ validOptions: readonly ["public", "restricted"];
354
+ default: string;
355
+ };
356
+ } & {
357
+ access: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
358
+ } & {
359
+ otp: {
360
+ description: string;
361
+ };
362
+ 'publish-directory': {
363
+ hint: string;
364
+ description: string;
365
+ };
366
+ port: {
367
+ hint: string;
368
+ description: string;
369
+ };
370
+ 'registry-port': {
371
+ hint: string;
372
+ description: string;
373
+ };
374
+ } & {
375
+ otp: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
376
+ 'publish-directory': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
377
+ port: import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
378
+ 'registry-port': import("jackspeak").ConfigOption<"string", false, readonly string[] | undefined>;
379
+ } & {
380
+ yes: {
381
+ short: string;
382
+ description: string;
383
+ };
384
+ version: {
385
+ short: string;
386
+ description: string;
387
+ };
388
+ help: {
389
+ short: string;
390
+ description: string;
391
+ };
392
+ all: {
393
+ short: string;
394
+ description: string;
395
+ };
396
+ } & {
397
+ yes: import("jackspeak").ConfigOption<"boolean", false, undefined>;
398
+ version: import("jackspeak").ConfigOption<"boolean", false, undefined>;
399
+ help: import("jackspeak").ConfigOption<"boolean", false, undefined>;
400
+ all: import("jackspeak").ConfigOption<"boolean", false, undefined>;
300
401
  }>;
402
+ export declare const getSortedCliOptions: () => string[];
403
+ export declare const getSortedKeys: () => string[];
301
404
  //# 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;AAqDT;;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"}