vlt 0.0.0-0.1740089541607 → 0.0.0-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 (120) hide show
  1. package/cache-unzip-src-unzip.js +7896 -0
  2. package/cache-unzip-src-unzip.js.map +7 -0
  3. package/chunk-3HXIYJS2.js +54 -0
  4. package/chunk-3HXIYJS2.js.map +7 -0
  5. package/chunk-5GF452XW.js +82 -0
  6. package/chunk-5GF452XW.js.map +7 -0
  7. package/chunk-6CEDBCAO.js +37 -0
  8. package/chunk-6CEDBCAO.js.map +7 -0
  9. package/chunk-BE4I27TH.js +11837 -0
  10. package/chunk-BE4I27TH.js.map +7 -0
  11. package/chunk-BIZ76GHC.js +1864 -0
  12. package/chunk-BIZ76GHC.js.map +7 -0
  13. package/chunk-BWVKWL27.js +1105 -0
  14. package/chunk-BWVKWL27.js.map +7 -0
  15. package/chunk-BWYD3ODC.js +9820 -0
  16. package/chunk-BWYD3ODC.js.map +7 -0
  17. package/chunk-DRASNOJL.js +4810 -0
  18. package/chunk-DRASNOJL.js.map +7 -0
  19. package/chunk-FTPQIXAY.js +19823 -0
  20. package/chunk-FTPQIXAY.js.map +7 -0
  21. package/chunk-GBCUEMDE.js +1137 -0
  22. package/chunk-GBCUEMDE.js.map +7 -0
  23. package/chunk-GPWWWN7B.js +152 -0
  24. package/chunk-GPWWWN7B.js.map +7 -0
  25. package/chunk-I6DIIGH5.js +5234 -0
  26. package/chunk-I6DIIGH5.js.map +7 -0
  27. package/chunk-KCUUTVXO.js +512 -0
  28. package/chunk-KCUUTVXO.js.map +7 -0
  29. package/chunk-KWJE3L2X.js +73 -0
  30. package/chunk-KWJE3L2X.js.map +7 -0
  31. package/chunk-LY3B6Z7K.js +41 -0
  32. package/chunk-LY3B6Z7K.js.map +7 -0
  33. package/chunk-NLYHRND5.js +62 -0
  34. package/chunk-NLYHRND5.js.map +7 -0
  35. package/chunk-RHN7G72C.js +481 -0
  36. package/chunk-RHN7G72C.js.map +7 -0
  37. package/chunk-RQWFRD2V.js +969 -0
  38. package/chunk-RQWFRD2V.js.map +7 -0
  39. package/chunk-S5T2ANVM.js +35 -0
  40. package/chunk-S5T2ANVM.js.map +7 -0
  41. package/chunk-SNUWVLXY.js +1183 -0
  42. package/chunk-SNUWVLXY.js.map +7 -0
  43. package/chunk-SSXXXTGH.js +44 -0
  44. package/chunk-SSXXXTGH.js.map +7 -0
  45. package/chunk-WLT6F67Q.js +8656 -0
  46. package/chunk-WLT6F67Q.js.map +7 -0
  47. package/chunk-WRZL6XHP.js +72 -0
  48. package/chunk-WRZL6XHP.js.map +7 -0
  49. package/chunk-WTR3IN76.js +1379 -0
  50. package/chunk-WTR3IN76.js.map +7 -0
  51. package/chunk-Z6OI5OS3.js +2071 -0
  52. package/chunk-Z6OI5OS3.js.map +7 -0
  53. package/chunk-ZKZVS45C.js +83 -0
  54. package/chunk-ZKZVS45C.js.map +7 -0
  55. package/cli-package.json +129 -0
  56. package/config-OY6HRCXF.js +179 -0
  57. package/config-OY6HRCXF.js.map +7 -0
  58. package/devtools-SGK32I5X.js +16682 -0
  59. package/devtools-SGK32I5X.js.map +7 -0
  60. package/exec-VGRQ6U6G.js +50 -0
  61. package/exec-VGRQ6U6G.js.map +7 -0
  62. package/gui-NOT5S3PV.js +46 -0
  63. package/gui-NOT5S3PV.js.map +7 -0
  64. package/gui-assets/favicon.ico +0 -0
  65. package/gui-assets/fonts/geist-mono.ttf +0 -0
  66. package/gui-assets/fonts/inter.ttf +0 -0
  67. package/gui-assets/images/folder.png +0 -0
  68. package/gui-assets/index.html +34 -0
  69. package/gui-assets/index.js +1549 -0
  70. package/gui-assets/index.js.map +7 -0
  71. package/gui-assets/main.css +1 -0
  72. package/help-7WIX3H76.js +25 -0
  73. package/help-7WIX3H76.js.map +7 -0
  74. package/init-JZ2QFQFS.js +25 -0
  75. package/init-JZ2QFQFS.js.map +7 -0
  76. package/install-ELTKO2LL.js +56 -0
  77. package/install-ELTKO2LL.js.map +7 -0
  78. package/install-exec-NFPKF3U3.js +28 -0
  79. package/install-exec-NFPKF3U3.js.map +7 -0
  80. package/list-NACWFDOZ.js +129 -0
  81. package/list-NACWFDOZ.js.map +7 -0
  82. package/login-KH3PDEN4.js +36 -0
  83. package/login-KH3PDEN4.js.map +7 -0
  84. package/logout-SC4MAN4J.js +36 -0
  85. package/logout-SC4MAN4J.js.map +7 -0
  86. package/package.json +9 -12
  87. package/pkg-CNHUWY4L.js +364 -0
  88. package/pkg-CNHUWY4L.js.map +7 -0
  89. package/query-GUEC5FM5.js +117 -0
  90. package/query-GUEC5FM5.js.map +7 -0
  91. package/registry-client-package.json +85 -0
  92. package/reporter-TCTQDWPH.js +18 -0
  93. package/reporter-TCTQDWPH.js.map +7 -0
  94. package/rollback-remove-src-remove.js +7398 -0
  95. package/rollback-remove-src-remove.js.map +7 -0
  96. package/run-R6APCILI.js +68 -0
  97. package/run-R6APCILI.js.map +7 -0
  98. package/run-exec-DWNBA7KI.js +41 -0
  99. package/run-exec-DWNBA7KI.js.map +7 -0
  100. package/source-M7VNOG6F.js +33 -0
  101. package/source-M7VNOG6F.js.map +7 -0
  102. package/token-ZEA4NKEX.js +86 -0
  103. package/token-ZEA4NKEX.js.map +7 -0
  104. package/uninstall-XNRHR6A3.js +45 -0
  105. package/uninstall-XNRHR6A3.js.map +7 -0
  106. package/vlix.js +25 -0
  107. package/vlix.js.map +7 -0
  108. package/vlr.js +25 -0
  109. package/vlr.js.map +7 -0
  110. package/vlrx.js +25 -0
  111. package/vlrx.js.map +7 -0
  112. package/vlt.js +24 -0
  113. package/vlt.js.map +7 -0
  114. package/vlx.js +25 -0
  115. package/vlx.js.map +7 -0
  116. package/whoami-LLOORW6C.js +46 -0
  117. package/whoami-LLOORW6C.js.map +7 -0
  118. package/yoga.wasm +0 -0
  119. package/postinstall.js +0 -51
  120. package/vlt +0 -27
@@ -0,0 +1,129 @@
1
+ {
2
+ "name": "@vltpkg/cli",
3
+ "description": "The vlt CLI",
4
+ "version": "0.0.0-1",
5
+ "private": true,
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/vltpkg/vltpkg.git",
9
+ "directory": "src/vlt"
10
+ },
11
+ "tshy": {
12
+ "selfLink": false,
13
+ "liveDev": true,
14
+ "dialects": [
15
+ "esm"
16
+ ],
17
+ "exports": {
18
+ "./package.json": "./package.json",
19
+ ".": "./src/index.ts",
20
+ "./commands": "./src/commands",
21
+ "./commands/*": "./src/commands/*.ts",
22
+ "./config": "./src/config/index.ts",
23
+ "./config/definition": "./src/config/definition.ts"
24
+ }
25
+ },
26
+ "dependencies": {
27
+ "@vltpkg/dep-id": "workspace:*",
28
+ "@vltpkg/dot-prop": "workspace:*",
29
+ "@vltpkg/error-cause": "workspace:*",
30
+ "@vltpkg/git": "workspace:*",
31
+ "@vltpkg/graph": "workspace:*",
32
+ "@vltpkg/gui": "workspace:*",
33
+ "@vltpkg/init": "workspace:*",
34
+ "@vltpkg/output": "workspace:*",
35
+ "@vltpkg/package-info": "workspace:*",
36
+ "@vltpkg/package-json": "workspace:*",
37
+ "@vltpkg/promise-spawn": "workspace:*",
38
+ "@vltpkg/query": "workspace:*",
39
+ "@vltpkg/registry-client": "workspace:*",
40
+ "@vltpkg/run": "workspace:*",
41
+ "@vltpkg/spec": "workspace:*",
42
+ "@vltpkg/types": "workspace:*",
43
+ "@vltpkg/url-open": "workspace:*",
44
+ "@vltpkg/workspaces": "workspace:*",
45
+ "@vltpkg/xdg": "workspace:*",
46
+ "ansi-to-pre": "^1.0.5",
47
+ "chalk": "catalog:",
48
+ "ink": "^5.1.0",
49
+ "ink-spinner": "^5.0.0",
50
+ "jackspeak": "^4.0.3",
51
+ "package-json-from-dist": "catalog:",
52
+ "path-scurry": "catalog:",
53
+ "polite-json": "catalog:",
54
+ "promise-call-limit": "catalog:",
55
+ "react": "^18.3.1",
56
+ "react-devtools-core": "^4.28.5",
57
+ "serve-handler": "^6.1.5",
58
+ "walk-up-path": "catalog:"
59
+ },
60
+ "devDependencies": {
61
+ "@eslint/js": "catalog:",
62
+ "@types/eslint__js": "catalog:",
63
+ "@types/node": "catalog:",
64
+ "@types/react": "catalog:",
65
+ "@types/serve-handler": "^6.1.4",
66
+ "eslint": "catalog:",
67
+ "prettier": "catalog:",
68
+ "tap": "catalog:",
69
+ "tshy": "catalog:",
70
+ "typescript": "catalog:",
71
+ "typescript-eslint": "catalog:"
72
+ },
73
+ "license": "BSD-2-Clause-Patent",
74
+ "engines": {
75
+ "node": ">=22",
76
+ "pnpm": "9"
77
+ },
78
+ "scripts": {
79
+ "format": "prettier --write . --log-level warn --ignore-path ../../.prettierignore --cache",
80
+ "format:check": "prettier --check . --ignore-path ../../.prettierignore --cache",
81
+ "lint": "eslint . --fix",
82
+ "lint:check": "eslint .",
83
+ "prepack": "tshy",
84
+ "snap": "tap",
85
+ "test": "tap",
86
+ "posttest": "tsc --project tsconfig.test.json",
87
+ "typecheck": "tsc --noEmit --project .tshy/esm.json"
88
+ },
89
+ "tap": {
90
+ "extends": "../../tap-config.yaml",
91
+ "test-env": [
92
+ "__VLT_INTERNAL_GUI_ASSETS_DIR=/mock-path/to/gui/assets"
93
+ ]
94
+ },
95
+ "prettier": "../../.prettierrc.js",
96
+ "module": "./src/index.ts",
97
+ "type": "module",
98
+ "exports": {
99
+ "./package.json": "./package.json",
100
+ ".": {
101
+ "import": {
102
+ "default": "./src/index.ts"
103
+ }
104
+ },
105
+ "./commands": {
106
+ "import": {
107
+ "default": "./src/commands"
108
+ }
109
+ },
110
+ "./commands/*": {
111
+ "import": {
112
+ "default": "./src/commands/*.ts"
113
+ }
114
+ },
115
+ "./config": {
116
+ "import": {
117
+ "default": "./src/config/index.ts"
118
+ }
119
+ },
120
+ "./config/definition": {
121
+ "import": {
122
+ "default": "./src/config/definition.ts"
123
+ }
124
+ }
125
+ },
126
+ "keywords": [
127
+ "vltpkg"
128
+ ]
129
+ }
@@ -0,0 +1,179 @@
1
+ var global = globalThis;
2
+ import {Buffer} from "node:buffer";
3
+ import {setImmediate, clearImmediate} from "node:timers";
4
+ import {createRequire as _vlt_createRequire} from 'node:module';
5
+ var require = _vlt_createRequire(import.meta.filename);
6
+ import {
7
+ pairsToRecords,
8
+ recordsToPairs
9
+ } from "./chunk-RHN7G72C.js";
10
+ import {
11
+ commandUsage
12
+ } from "./chunk-NLYHRND5.js";
13
+ import "./chunk-RQWFRD2V.js";
14
+ import "./chunk-I6DIIGH5.js";
15
+ import "./chunk-BIZ76GHC.js";
16
+ import "./chunk-WTR3IN76.js";
17
+ import {
18
+ error
19
+ } from "./chunk-6CEDBCAO.js";
20
+ import {
21
+ definition,
22
+ isRecordField
23
+ } from "./chunk-Z6OI5OS3.js";
24
+ import "./chunk-3HXIYJS2.js";
25
+
26
+ // src/vlt/src/commands/config.ts
27
+ import { spawnSync } from "node:child_process";
28
+ var usage = () => commandUsage({
29
+ command: "config",
30
+ usage: "<command> [flags]",
31
+ description: "Work with vlt configuration",
32
+ subcommands: {
33
+ get: {
34
+ usage: "<key> [<key> ...]",
35
+ description: "Print the named config value"
36
+ },
37
+ list: {
38
+ description: "Print all configuration settings currently in effect"
39
+ },
40
+ set: {
41
+ usage: "<key>=<value> [<key>=<value> ...] [--config=<user | project>]",
42
+ description: `Set config values. By default, these are
43
+ written to the project config file, \`vlt.json\`
44
+ in the root of the project. To set things for all
45
+ projects, run with \`--config=user\``
46
+ },
47
+ del: {
48
+ usage: "<key> [<key> ...] [--config=<user | project>]",
49
+ description: `Delete the named config fields. If no values remain in
50
+ the config file, delete the file as well. By default,
51
+ operates on the \`vlt.json\` file in the root of the
52
+ current project. To delete a config field from the user
53
+ config file, specify \`--config=user\`.`
54
+ },
55
+ edit: {
56
+ usage: "[--config=<user | project>]",
57
+ description: "Edit the configuration file"
58
+ },
59
+ help: {
60
+ usage: "[field ...]",
61
+ description: `Get information about a config field, or show a list
62
+ of known config field names.`
63
+ }
64
+ }
65
+ });
66
+ var command = async (conf) => {
67
+ const sub = conf.positionals[0];
68
+ switch (sub) {
69
+ case "set":
70
+ return set(conf);
71
+ case "get":
72
+ return get(conf);
73
+ case "ls":
74
+ case "list":
75
+ return list(conf);
76
+ case "edit":
77
+ return edit(conf);
78
+ case "help":
79
+ return help(conf);
80
+ case "del":
81
+ return del(conf);
82
+ default: {
83
+ throw error("Unrecognized config command", {
84
+ code: "EUSAGE",
85
+ found: sub,
86
+ validOptions: ["set", "get", "list", "edit", "help", "del"]
87
+ });
88
+ }
89
+ }
90
+ };
91
+ var help = (conf) => {
92
+ const j = definition.toJSON();
93
+ const fields = conf.positionals.slice(1);
94
+ if (!fields.length) {
95
+ return [
96
+ "Specify one or more options to see information:",
97
+ ...Object.keys(j).sort((a, b) => a.localeCompare(b, "en")).map((c) => ` ${c}`)
98
+ ].join("\n");
99
+ }
100
+ const res = [];
101
+ for (const f of fields) {
102
+ const def = j[f];
103
+ if (!def) {
104
+ res.push(`unknown config field: ${f}`);
105
+ } else {
106
+ const hint = def.hint ? `=<${def.hint}>` : "";
107
+ const type = isRecordField(f) ? "Record<string, string>" : def.type + (def.multiple ? "[]" : "");
108
+ res.push(`--${f}${hint}`);
109
+ res.push(` type: ${type}`);
110
+ if (def.default) {
111
+ res.push(` default: ${JSON.stringify(def.default)}`);
112
+ }
113
+ if (def.description) {
114
+ res.push(def.description);
115
+ }
116
+ }
117
+ }
118
+ return res.join("\n");
119
+ };
120
+ var list = (conf) => {
121
+ return recordsToPairs(conf.options);
122
+ };
123
+ var del = async (conf) => {
124
+ const fields = conf.positionals.slice(1);
125
+ if (!fields.length) {
126
+ throw error("At least one key is required", {
127
+ code: "EUSAGE"
128
+ });
129
+ }
130
+ await conf.deleteConfigKeys(conf.get("config"), fields);
131
+ };
132
+ var get = async (conf) => {
133
+ const keys = conf.positionals.slice(1);
134
+ const k = keys[0];
135
+ if (!k || keys.length > 1) {
136
+ throw error("Exactly one key is required", {
137
+ code: "EUSAGE"
138
+ });
139
+ }
140
+ return conf.get(k);
141
+ };
142
+ var edit = async (conf) => {
143
+ const [command2, ...args] = conf.get("editor").split(" ");
144
+ if (!command2) {
145
+ throw error(`editor is empty`);
146
+ }
147
+ await conf.editConfigFile(conf.get("config"), (file) => {
148
+ args.push(file);
149
+ const res = spawnSync(command2, args, {
150
+ stdio: "inherit"
151
+ });
152
+ if (res.status !== 0) {
153
+ throw error(`${command2} command failed`, {
154
+ ...res,
155
+ command: command2,
156
+ args
157
+ });
158
+ }
159
+ });
160
+ };
161
+ var set = async (conf) => {
162
+ const pairs = conf.positionals.slice(1);
163
+ if (!pairs.length) {
164
+ throw error("At least one key=value pair is required", {
165
+ code: "EUSAGE"
166
+ });
167
+ }
168
+ await conf.addConfigToFile(
169
+ conf.get("config"),
170
+ pairsToRecords(
171
+ conf.jack.parseRaw(pairs.map((kv) => `--${kv}`)).values
172
+ )
173
+ );
174
+ };
175
+ export {
176
+ command,
177
+ usage
178
+ };
179
+ //# sourceMappingURL=config-OY6HRCXF.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/vlt/src/commands/config.ts"],
4
+ "sourcesContent": ["import { error } from '@vltpkg/error-cause'\nimport { spawnSync } from 'child_process'\nimport {\n definition,\n isRecordField,\n pairsToRecords,\n recordsToPairs,\n} from '../config/index.ts'\nimport type {\n ConfigDefinitions,\n LoadedConfig,\n RecordPairs,\n} from '../config/index.ts'\nimport { commandUsage } from '../config/usage.ts'\nimport type { CommandFn, CommandUsage } from '../index.ts'\n\nexport const usage: CommandUsage = () =>\n commandUsage({\n command: 'config',\n usage: '<command> [flags]',\n description: 'Work with vlt configuration',\n\n subcommands: {\n get: {\n usage: '<key> [<key> ...]',\n description: 'Print the named config value',\n },\n\n list: {\n description:\n 'Print all configuration settings currently in effect',\n },\n\n set: {\n usage:\n '<key>=<value> [<key>=<value> ...] [--config=<user | project>]',\n description: `Set config values. By default, these are\n written to the project config file, \\`vlt.json\\`\n in the root of the project. To set things for all\n projects, run with \\`--config=user\\``,\n },\n\n del: {\n usage: '<key> [<key> ...] [--config=<user | project>]',\n description: `Delete the named config fields. If no values remain in\n the config file, delete the file as well. By default,\n operates on the \\`vlt.json\\` file in the root of the\n current project. To delete a config field from the user\n config file, specify \\`--config=user\\`.`,\n },\n\n edit: {\n usage: '[--config=<user | project>]',\n description: 'Edit the configuration file',\n },\n\n help: {\n usage: '[field ...]',\n description: `Get information about a config field, or show a list\n of known config field names.`,\n },\n },\n })\n\nexport const command: CommandFn<\n string | number | boolean | void | string[] | RecordPairs\n> = async conf => {\n const sub = conf.positionals[0]\n switch (sub) {\n case 'set':\n return set(conf)\n\n case 'get':\n return get(conf)\n\n case 'ls':\n case 'list':\n return list(conf)\n\n case 'edit':\n return edit(conf)\n\n case 'help':\n return help(conf)\n\n case 'del':\n return del(conf)\n\n default: {\n throw error('Unrecognized config command', {\n code: 'EUSAGE',\n found: sub,\n validOptions: ['set', 'get', 'list', 'edit', 'help', 'del'],\n })\n }\n }\n}\n\nconst help = (conf: LoadedConfig) => {\n const j = definition.toJSON()\n const fields = conf.positionals.slice(1)\n if (!fields.length) {\n return [\n 'Specify one or more options to see information:',\n ...Object.keys(j)\n .sort((a, b) => a.localeCompare(b, 'en'))\n .map(c => ` ${c}`),\n ].join('\\n')\n }\n\n // TODO: some kind of fuzzy search?\n const res: string[] = []\n for (const f of fields) {\n const def = j[f]\n if (!def) {\n res.push(`unknown config field: ${f}`)\n } else {\n const hint = def.hint ? `=<${def.hint}>` : ''\n const type =\n isRecordField(f) ?\n 'Record<string, string>'\n : def.type + (def.multiple ? '[]' : '')\n\n res.push(`--${f}${hint}`)\n res.push(` type: ${type}`)\n if (def.default) {\n res.push(` default: ${JSON.stringify(def.default)}`)\n }\n if (def.description) {\n res.push(def.description)\n }\n }\n }\n return res.join('\\n')\n}\n\nconst list = (conf: LoadedConfig) => {\n return recordsToPairs(conf.options)\n}\n\nconst del = async (conf: LoadedConfig) => {\n const fields = conf.positionals.slice(1)\n if (!fields.length) {\n throw error('At least one key is required', {\n code: 'EUSAGE',\n })\n }\n await conf.deleteConfigKeys(conf.get('config'), fields)\n}\n\nconst get = async (conf: LoadedConfig) => {\n const keys = conf.positionals.slice(1)\n const k = keys[0]\n if (!k || keys.length > 1) {\n throw error('Exactly one key is required', {\n code: 'EUSAGE',\n })\n }\n return conf.get(k as keyof ConfigDefinitions)\n}\n\nconst edit = async (conf: LoadedConfig) => {\n const [command, ...args] = conf.get('editor').split(' ')\n if (!command) {\n throw error(`editor is empty`)\n }\n await conf.editConfigFile(conf.get('config'), file => {\n args.push(file)\n const res = spawnSync(command, args, {\n stdio: 'inherit',\n })\n if (res.status !== 0) {\n throw error(`${command} command failed`, {\n ...res,\n command,\n args,\n })\n }\n })\n}\n\nconst set = async (conf: LoadedConfig) => {\n const pairs = conf.positionals.slice(1)\n if (!pairs.length) {\n throw error('At least one key=value pair is required', {\n code: 'EUSAGE',\n })\n }\n await conf.addConfigToFile(\n conf.get('config'),\n pairsToRecords(\n conf.jack.parseRaw(pairs.map(kv => `--${kv}`)).values,\n ),\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["command"]
7
+ }