@vltpkg/cli-js 1.0.0-rc.27 → 1.0.0-rc.29

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 (85) hide show
  1. package/access-6HRR4HXE.js +293 -0
  2. package/{bugs-CS34LDPD.js → bugs-2CAZQ32S.js} +19 -22
  3. package/{build-XHEFAWMN.js → build-OAWTNBMS.js} +10 -13
  4. package/{cache-LII2V5IM.js → cache-JTAFST6T.js} +14 -15
  5. package/cache-unzip-src-unzip.js +606 -575
  6. package/{chunk-D27QPHKI.js → chunk-2V4AQPBR.js} +67 -20
  7. package/{chunk-JQHMLTO5.js → chunk-3MWZTKGK.js} +419 -328
  8. package/{chunk-DJBBJDHI.js → chunk-7RZL7BZI.js} +159 -74
  9. package/chunk-7WHVJ56C.js +73 -0
  10. package/{chunk-LAG2R3YJ.js → chunk-BW6C3YUV.js} +6 -6
  11. package/{chunk-6YTJVEK2.js → chunk-CLDF5XLG.js} +11 -11
  12. package/{chunk-DYL7AFY7.js → chunk-CPM47YUH.js} +5 -3
  13. package/{chunk-QWWYZ3TT.js → chunk-D2MVJDUA.js} +1 -1
  14. package/{chunk-5E5GX4G6.js → chunk-FBTBHRPG.js} +1 -1
  15. package/{chunk-AZLX27EM.js → chunk-FXDRM4ZO.js} +296 -258
  16. package/chunk-G2YT2GWF.js +120 -0
  17. package/{chunk-INXSTZAX.js → chunk-HAGUS4HI.js} +21 -21
  18. package/{chunk-FI5TUER7.js → chunk-HQ4US6G3.js} +681 -687
  19. package/chunk-IEISSXS4.js +711 -0
  20. package/{chunk-TRXTSZFT.js → chunk-IYO5QKUW.js} +1 -1
  21. package/{chunk-DJBVQKBB.js → chunk-K3RN3BGU.js} +5 -5
  22. package/{chunk-P2HZ4ISK.js → chunk-LPLXAVG7.js} +54 -6
  23. package/{chunk-XSUIV5NF.js → chunk-M7HPHM7B.js} +14 -12
  24. package/{chunk-BIUCOMBH.js → chunk-MAIQR5GM.js} +5 -5
  25. package/{chunk-TDTJOKF2.js → chunk-NLFBANVO.js} +8 -1
  26. package/{chunk-XWF3GJKE.js → chunk-Q3DNNTPG.js} +27 -1
  27. package/{chunk-VCSVHRCS.js → chunk-R44FR7BY.js} +1269 -590
  28. package/{chunk-QDGZZ5FZ.js → chunk-TYV4N3S3.js} +6 -692
  29. package/{chunk-LKFTVDWS.js → chunk-VPKJNCKL.js} +26 -13
  30. package/{chunk-VTZZIXYW.js → chunk-VRIS5HAW.js} +3 -3
  31. package/{chunk-S5I2UOBT.js → chunk-WX2DCAG2.js} +7 -7
  32. package/{chunk-YR47M5L7.js → chunk-XYCCQT7N.js} +34 -39
  33. package/{chunk-D7U7KDEM.js → chunk-YCQTLBWF.js} +1 -1
  34. package/{chunk-SR66HWMM.js → chunk-ZINDEKAU.js} +144 -93
  35. package/{ci-EEXNEPKP.js → ci-TOJJVHI4.js} +13 -16
  36. package/cli-package.json +2 -1
  37. package/{config-4ZFJD5AY.js → config-DVAPEE5D.js} +12 -14
  38. package/{config-6MUU2TRJ.js → config-GOV4E2KK.js} +26 -26
  39. package/{create-DEKJKPYX.js → create-NGJD7K4L.js} +24 -26
  40. package/deprecate-WROL4AHK.js +176 -0
  41. package/{devtools-NOLON5YL.js → devtools-TPMVKPB5.js} +80 -77
  42. package/dist-tag-WZXXWXMB.js +204 -0
  43. package/{docs-5EKPZANX.js → docs-YCOZFMZG.js} +19 -22
  44. package/{exec-I4YPE6YW.js → exec-URG5OWLH.js} +24 -26
  45. package/{exec-cache-XEWPABLK.js → exec-cache-KHDOEH2F.js} +21 -23
  46. package/{exec-local-OQXG2VPW.js → exec-local-52TVUL5K.js} +19 -21
  47. package/{help-OG655SE5.js → help-LNSDVBGJ.js} +4 -5
  48. package/{init-LJH2YTBM.js → init-XNMWYATA.js} +10 -8
  49. package/{install-KP2FGWOR.js → install-SKUZERZJ.js} +28 -17
  50. package/{list-ACZ3ZSIZ.js → list-XEDVFUD5.js} +19 -21
  51. package/{login-VFTRKZE2.js → login-52SA2DSI.js} +6 -9
  52. package/{logout-Z4AVG64D.js → logout-5YYHNV5W.js} +6 -9
  53. package/{pack-GPJNX7RP.js → pack-B7QZHMYP.js} +14 -17
  54. package/package.json +1 -1
  55. package/{ping-B2YS4SR3.js → ping-PRGDYDRI.js} +6 -9
  56. package/{pkg-WUYJDFSH.js → pkg-UEIQIVVD.js} +15 -19
  57. package/profile-46FKVQEL.js +129 -0
  58. package/{publish-WTMGC4ET.js → publish-HBYHOSKH.js} +17 -20
  59. package/{query-UCM35VVC.js → query-5A4YLS2C.js} +19 -21
  60. package/registry-client-package.json +1 -1
  61. package/registry-client-src-revalidate.js +1157 -1032
  62. package/{repo-MZCPTQZU.js → repo-I6X66PHD.js} +19 -22
  63. package/{reporter-XRZ37LFK.js → reporter-NUXJTV4G.js} +2 -3
  64. package/{run-CAX4Z2SC.js → run-VEZMUMVH.js} +19 -21
  65. package/{run-exec-SM42FE7W.js → run-exec-6ADY4BKH.js} +19 -21
  66. package/security-archive-src-update-expired.js +8 -7
  67. package/{src-SDJWTPCU.js → src-O32QL33R.js} +20 -22
  68. package/token-YK6L74PA.js +206 -0
  69. package/{uninstall-YYPPXM2O.js → uninstall-UBUZBV7E.js} +14 -17
  70. package/unpublish-ZHJEKT7A.js +224 -0
  71. package/{update-YFUTH33A.js → update-WO4BHJF4.js} +13 -16
  72. package/{version-SK256WED.js → version-RLESYHML.js} +13 -16
  73. package/{view-CBYGJ76J.js → view-UA5HXFXG.js} +16 -17
  74. package/vlr.js +1 -1
  75. package/vlrx.js +1 -1
  76. package/vlt.js +1 -1
  77. package/vlx.js +1 -1
  78. package/vlxl.js +1 -1
  79. package/{whoami-ZT4ZEN2C.js → whoami-7H3FPR2O.js} +6 -9
  80. package/chunk-52LBC3AX.js +0 -75
  81. package/chunk-BGQCUUCA.js +0 -667
  82. package/chunk-E74WGW5C.js +0 -49
  83. package/chunk-JLJKOF75.js +0 -40
  84. package/chunk-YP4YNE5Y.js +0 -68
  85. package/token-YCURCCNR.js +0 -103
@@ -11,27 +11,24 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  InstallReporter
14
- } from "./chunk-SR66HWMM.js";
14
+ } from "./chunk-ZINDEKAU.js";
15
+ import {
16
+ install
17
+ } from "./chunk-7RZL7BZI.js";
18
+ import "./chunk-MAIQR5GM.js";
15
19
  import "./chunk-VTEFO2FT.js";
16
20
  import "./chunk-RXNA2XCX.js";
17
21
  import "./chunk-WGDTG44V.js";
18
- import {
19
- install
20
- } from "./chunk-DJBBJDHI.js";
21
- import "./chunk-BIUCOMBH.js";
22
- import "./chunk-52LBC3AX.js";
22
+ import "./chunk-XYCCQT7N.js";
23
+ import "./chunk-TYV4N3S3.js";
24
+ import "./chunk-IEISSXS4.js";
25
+ import "./chunk-HTOTG4TS.js";
23
26
  import {
24
27
  commandUsage
25
- } from "./chunk-5E5GX4G6.js";
26
- import "./chunk-YR47M5L7.js";
27
- import "./chunk-BGQCUUCA.js";
28
- import "./chunk-E74WGW5C.js";
29
- import "./chunk-QDGZZ5FZ.js";
30
- import "./chunk-VCSVHRCS.js";
31
- import "./chunk-D27QPHKI.js";
32
- import "./chunk-JLJKOF75.js";
33
- import "./chunk-XWF3GJKE.js";
34
- import "./chunk-HTOTG4TS.js";
28
+ } from "./chunk-FBTBHRPG.js";
29
+ import "./chunk-R44FR7BY.js";
30
+ import "./chunk-2V4AQPBR.js";
31
+ import "./chunk-Q3DNNTPG.js";
35
32
  import "./chunk-XNLSTHDK.js";
36
33
  import "./chunk-WZWDS3W4.js";
37
34
  import "./chunk-PZLD7RTK.js";
package/cli-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vltpkg/cli-sdk",
3
3
  "description": "The source for the vlt CLI",
4
- "version": "1.0.0-rc.27",
4
+ "version": "1.0.0-rc.29",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/vltpkg/vltpkg.git",
@@ -18,6 +18,7 @@
18
18
  "@vltpkg/graph-run": "workspace:*",
19
19
  "@vltpkg/init": "workspace:*",
20
20
  "@vltpkg/output": "workspace:*",
21
+ "posthog-node": "^4.0.0",
21
22
  "@vltpkg/package-info": "workspace:*",
22
23
  "@vltpkg/package-json": "workspace:*",
23
24
  "@vltpkg/promise-spawn": "workspace:*",
@@ -14,25 +14,23 @@ import {
14
14
  kCustomInspect,
15
15
  pairsToRecords,
16
16
  recordsToPairs
17
- } from "./chunk-XSUIV5NF.js";
18
- import "./chunk-INXSTZAX.js";
19
- import "./chunk-FI5TUER7.js";
20
- import "./chunk-JQHMLTO5.js";
21
- import "./chunk-D7U7KDEM.js";
22
- import "./chunk-YR47M5L7.js";
23
- import "./chunk-BGQCUUCA.js";
24
- import "./chunk-E74WGW5C.js";
25
- import "./chunk-QDGZZ5FZ.js";
26
- import "./chunk-VCSVHRCS.js";
17
+ } from "./chunk-M7HPHM7B.js";
18
+ import "./chunk-HAGUS4HI.js";
19
+ import "./chunk-HQ4US6G3.js";
20
+ import "./chunk-XYCCQT7N.js";
21
+ import "./chunk-TYV4N3S3.js";
22
+ import "./chunk-IEISSXS4.js";
23
+ import "./chunk-HTOTG4TS.js";
24
+ import "./chunk-3MWZTKGK.js";
25
+ import "./chunk-YCQTLBWF.js";
26
+ import "./chunk-R44FR7BY.js";
27
27
  import {
28
28
  commands,
29
29
  definition,
30
30
  isRecordField,
31
31
  recordFields
32
- } from "./chunk-D27QPHKI.js";
33
- import "./chunk-JLJKOF75.js";
34
- import "./chunk-XWF3GJKE.js";
35
- import "./chunk-HTOTG4TS.js";
32
+ } from "./chunk-2V4AQPBR.js";
33
+ import "./chunk-Q3DNNTPG.js";
36
34
  import "./chunk-XNLSTHDK.js";
37
35
  import "./chunk-WZWDS3W4.js";
38
36
  import "./chunk-PZLD7RTK.js";
@@ -15,35 +15,33 @@ import {
15
15
  } from "./chunk-DBANBIL2.js";
16
16
  import {
17
17
  asRootError
18
- } from "./chunk-TRXTSZFT.js";
18
+ } from "./chunk-IYO5QKUW.js";
19
19
  import {
20
20
  pairsToRecords,
21
21
  recordsToPairs
22
- } from "./chunk-XSUIV5NF.js";
22
+ } from "./chunk-M7HPHM7B.js";
23
+ import "./chunk-HAGUS4HI.js";
24
+ import "./chunk-HQ4US6G3.js";
25
+ import "./chunk-XYCCQT7N.js";
26
+ import "./chunk-TYV4N3S3.js";
27
+ import "./chunk-IEISSXS4.js";
28
+ import {
29
+ find,
30
+ load
31
+ } from "./chunk-HTOTG4TS.js";
23
32
  import {
24
33
  commandUsage
25
- } from "./chunk-5E5GX4G6.js";
26
- import "./chunk-INXSTZAX.js";
27
- import "./chunk-FI5TUER7.js";
28
- import "./chunk-JQHMLTO5.js";
29
- import "./chunk-D7U7KDEM.js";
30
- import "./chunk-YR47M5L7.js";
31
- import "./chunk-BGQCUUCA.js";
32
- import "./chunk-E74WGW5C.js";
33
- import "./chunk-QDGZZ5FZ.js";
34
- import "./chunk-VCSVHRCS.js";
34
+ } from "./chunk-FBTBHRPG.js";
35
+ import "./chunk-3MWZTKGK.js";
36
+ import "./chunk-YCQTLBWF.js";
37
+ import "./chunk-R44FR7BY.js";
35
38
  import {
36
39
  getSortedKeys,
37
40
  isRecordField
38
- } from "./chunk-D27QPHKI.js";
39
- import "./chunk-JLJKOF75.js";
41
+ } from "./chunk-2V4AQPBR.js";
40
42
  import {
41
43
  isObject
42
- } from "./chunk-XWF3GJKE.js";
43
- import {
44
- find,
45
- load
46
- } from "./chunk-HTOTG4TS.js";
44
+ } from "./chunk-Q3DNNTPG.js";
47
45
  import "./chunk-XNLSTHDK.js";
48
46
  import {
49
47
  error
@@ -58,8 +56,13 @@ import { spawnSync } from "node:child_process";
58
56
  var list = (conf) => {
59
57
  return recordsToPairs(conf.options);
60
58
  };
59
+ var npmScopeRegistryRe = /^(@[^:/\s]+):registry$/;
60
+ var normalizeConfigKey = (key) => {
61
+ const m = npmScopeRegistryRe.exec(key);
62
+ return m?.[1] ? `scoped-registries.${m[1]}` : key;
63
+ };
61
64
  var del = async (conf) => {
62
- const fields = conf.positionals.slice(1);
65
+ const fields = conf.positionals.slice(1).map(normalizeConfigKey);
63
66
  if (!fields.length) {
64
67
  throw error("At least one key is required", {
65
68
  code: "EUSAGE"
@@ -71,7 +74,7 @@ var del = async (conf) => {
71
74
  };
72
75
  var get2 = async (conf) => {
73
76
  const keys = conf.positionals.slice(1);
74
- const k = keys[0];
77
+ const k = keys[0] && normalizeConfigKey(keys[0]);
75
78
  if (!k || keys.length > 1) {
76
79
  throw error("Exactly one key is required", {
77
80
  code: "EUSAGE"
@@ -130,7 +133,7 @@ var set2 = async (conf) => {
130
133
  code: "EUSAGE"
131
134
  });
132
135
  }
133
- const key = pair.substring(0, eq);
136
+ const key = normalizeConfigKey(pair.substring(0, eq));
134
137
  const value = pair.substring(eq + 1);
135
138
  if (key.includes(".")) {
136
139
  const [field, ...rest] = key.split(".");
@@ -527,10 +530,7 @@ var getProjectConfigObject = () => {
527
530
  var getProjectConfigValue = (key) => {
528
531
  const projectConfig = getProjectConfigObject();
529
532
  if (!projectConfig) return;
530
- return get(
531
- projectConfig,
532
- key
533
- );
533
+ return get(projectConfig, key);
534
534
  };
535
535
  var getWriteConfigOption = (conf) => {
536
536
  const configOption = conf.get("config");
@@ -11,43 +11,41 @@ import {createRequire as _vlt_createRequire} from "node:module";
11
11
  var require = _vlt_createRequire(import.meta.filename);
12
12
  import {
13
13
  vlxResolve
14
- } from "./chunk-S5I2UOBT.js";
14
+ } from "./chunk-WX2DCAG2.js";
15
15
  import {
16
16
  ExecCommand,
17
17
  views
18
- } from "./chunk-6YTJVEK2.js";
18
+ } from "./chunk-CLDF5XLG.js";
19
19
  import "./chunk-RIYFGX27.js";
20
+ import "./chunk-VRIS5HAW.js";
20
21
  import {
21
22
  styleTextStdout
22
- } from "./chunk-P2HZ4ISK.js";
23
- import "./chunk-TDTJOKF2.js";
24
- import "./chunk-VTEFO2FT.js";
25
- import "./chunk-RXNA2XCX.js";
26
- import "./chunk-WGDTG44V.js";
27
- import "./chunk-TRXTSZFT.js";
28
- import "./chunk-VTZZIXYW.js";
23
+ } from "./chunk-LPLXAVG7.js";
24
+ import "./chunk-G2YT2GWF.js";
25
+ import "./chunk-NLFBANVO.js";
29
26
  import {
30
27
  exec,
31
28
  execFG
32
- } from "./chunk-DJBBJDHI.js";
33
- import "./chunk-BIUCOMBH.js";
34
- import "./chunk-52LBC3AX.js";
29
+ } from "./chunk-7RZL7BZI.js";
30
+ import "./chunk-MAIQR5GM.js";
31
+ import "./chunk-VTEFO2FT.js";
32
+ import "./chunk-RXNA2XCX.js";
33
+ import "./chunk-WGDTG44V.js";
34
+ import "./chunk-IYO5QKUW.js";
35
+ import "./chunk-HAGUS4HI.js";
36
+ import "./chunk-HQ4US6G3.js";
37
+ import "./chunk-XYCCQT7N.js";
38
+ import "./chunk-TYV4N3S3.js";
39
+ import "./chunk-IEISSXS4.js";
40
+ import "./chunk-HTOTG4TS.js";
35
41
  import {
36
42
  commandUsage
37
- } from "./chunk-5E5GX4G6.js";
38
- import "./chunk-INXSTZAX.js";
39
- import "./chunk-FI5TUER7.js";
40
- import "./chunk-JQHMLTO5.js";
41
- import "./chunk-D7U7KDEM.js";
42
- import "./chunk-YR47M5L7.js";
43
- import "./chunk-BGQCUUCA.js";
44
- import "./chunk-E74WGW5C.js";
45
- import "./chunk-QDGZZ5FZ.js";
46
- import "./chunk-VCSVHRCS.js";
47
- import "./chunk-D27QPHKI.js";
48
- import "./chunk-JLJKOF75.js";
49
- import "./chunk-XWF3GJKE.js";
50
- import "./chunk-HTOTG4TS.js";
43
+ } from "./chunk-FBTBHRPG.js";
44
+ import "./chunk-3MWZTKGK.js";
45
+ import "./chunk-YCQTLBWF.js";
46
+ import "./chunk-R44FR7BY.js";
47
+ import "./chunk-2V4AQPBR.js";
48
+ import "./chunk-Q3DNNTPG.js";
51
49
  import "./chunk-XNLSTHDK.js";
52
50
  import "./chunk-WZWDS3W4.js";
53
51
  import "./chunk-PZLD7RTK.js";
@@ -0,0 +1,176 @@
1
+ var global = globalThis;
2
+ import {Buffer} from "node:buffer";
3
+ import {setTimeout as _vlt_setTimeout,clearTimeout as _vlt_clearTimeout,setImmediate as _vlt_setImmediate,clearImmediate as _vlt_clearImmediate,setInterval as _vlt_setInterval,clearInterval as _vlt_clearInterval} from "node:timers";
4
+ globalThis.setTimeout = _vlt_setTimeout;
5
+ globalThis.clearTimeout = _vlt_clearTimeout;
6
+ globalThis.setImmediate = _vlt_setImmediate;
7
+ globalThis.clearImmediate = _vlt_clearImmediate;
8
+ globalThis.setInterval = _vlt_setInterval;
9
+ globalThis.clearInterval = _vlt_clearInterval;
10
+ import {createRequire as _vlt_createRequire} from "node:module";
11
+ var require = _vlt_createRequire(import.meta.filename);
12
+ import {
13
+ PackageInfoClient
14
+ } from "./chunk-HAGUS4HI.js";
15
+ import "./chunk-HQ4US6G3.js";
16
+ import "./chunk-XYCCQT7N.js";
17
+ import "./chunk-TYV4N3S3.js";
18
+ import {
19
+ Spec2 as Spec
20
+ } from "./chunk-IEISSXS4.js";
21
+ import "./chunk-HTOTG4TS.js";
22
+ import {
23
+ commandUsage
24
+ } from "./chunk-FBTBHRPG.js";
25
+ import {
26
+ RegistryClient
27
+ } from "./chunk-3MWZTKGK.js";
28
+ import "./chunk-YCQTLBWF.js";
29
+ import "./chunk-R44FR7BY.js";
30
+ import "./chunk-2V4AQPBR.js";
31
+ import {
32
+ asError,
33
+ satisfies
34
+ } from "./chunk-Q3DNNTPG.js";
35
+ import "./chunk-XNLSTHDK.js";
36
+ import {
37
+ error
38
+ } from "./chunk-WZWDS3W4.js";
39
+ import "./chunk-PZLD7RTK.js";
40
+
41
+ // ../../src/cli-sdk/src/commands/deprecate.ts
42
+ var usage = () => commandUsage({
43
+ command: "deprecate",
44
+ usage: "<pkg>[@<version>] <message>",
45
+ description: `Update the npm registry entry for a package, providing a
46
+ deprecation warning to all who attempt to install it.
47
+
48
+ It works on version ranges as well as specific versions,
49
+ so you can un-deprecate a previously deprecated package by
50
+ specifying the version range with an empty string as the
51
+ message.`,
52
+ examples: {
53
+ 'my-package "this package is no longer maintained"': {
54
+ description: "Deprecate all versions of a package"
55
+ },
56
+ 'my-package@"<0.2.0" "critical bug, please update"': {
57
+ description: "Deprecate specific versions"
58
+ },
59
+ 'my-package ""': {
60
+ description: "Un-deprecate a package"
61
+ }
62
+ },
63
+ options: {
64
+ registry: {
65
+ value: "<url>",
66
+ description: "The registry to update."
67
+ },
68
+ otp: {
69
+ description: `Provide an OTP to use when deprecating a package.`,
70
+ value: "<otp>"
71
+ }
72
+ }
73
+ });
74
+ var views = {
75
+ human: (result) => {
76
+ if (result.message === "") {
77
+ return `\u2705 Un-deprecated ${result.name}@${result.version} (${result.versions.length} version${result.versions.length === 1 ? "" : "s"})`;
78
+ }
79
+ return `\u26A0\uFE0F Deprecated ${result.name}@${result.version} (${result.versions.length} version${result.versions.length === 1 ? "" : "s"}): ${result.message}`;
80
+ },
81
+ json: (r) => r
82
+ };
83
+ var command = async (conf) => {
84
+ const specArg = conf.positionals[0];
85
+ const message = conf.positionals[1];
86
+ if (!specArg) {
87
+ throw error(
88
+ "deprecate requires a package spec and message argument",
89
+ {
90
+ code: "EUSAGE"
91
+ }
92
+ );
93
+ }
94
+ if (message === void 0) {
95
+ throw error("deprecate requires a message argument", {
96
+ code: "EUSAGE"
97
+ });
98
+ }
99
+ const spec = Spec.parseArgs(specArg, conf.options);
100
+ const { name } = spec;
101
+ if (!name || name === "(unknown)") {
102
+ throw error("could not determine package name from spec", {
103
+ found: specArg
104
+ });
105
+ }
106
+ const { registry, otp } = conf.options;
107
+ const registryUrl = new URL(registry);
108
+ const pic = new PackageInfoClient(conf.options);
109
+ const packument = await pic.packument(spec);
110
+ const versionRange = spec.bareSpec;
111
+ const matchedVersions = [];
112
+ for (const version of Object.keys(packument.versions)) {
113
+ if (!versionRange || satisfies(version, versionRange)) {
114
+ matchedVersions.push(version);
115
+ }
116
+ }
117
+ if (matchedVersions.length === 0) {
118
+ throw error("no versions found matching the spec", {
119
+ found: specArg,
120
+ wanted: Object.keys(packument.versions)
121
+ });
122
+ }
123
+ const versions = {};
124
+ for (const version of matchedVersions) {
125
+ const manifest = packument.versions[version];
126
+ if (!manifest) continue;
127
+ versions[version] = {
128
+ ...manifest,
129
+ ...message === "" ? { deprecated: void 0 } : { deprecated: message }
130
+ };
131
+ }
132
+ const body = {
133
+ _id: name,
134
+ name,
135
+ versions
136
+ };
137
+ const rc = new RegistryClient(conf.options);
138
+ const packageUrl = new URL(
139
+ name.startsWith("@") ? name.replace("/", "%2F") : name,
140
+ registryUrl
141
+ );
142
+ let response;
143
+ try {
144
+ response = await rc.request(packageUrl, {
145
+ method: "PUT",
146
+ headers: {
147
+ "content-type": "application/json",
148
+ "npm-auth-type": "web",
149
+ "npm-command": "deprecate"
150
+ },
151
+ body: JSON.stringify(body),
152
+ otp
153
+ });
154
+ } catch (err) {
155
+ throw error("failed to update deprecation status", {
156
+ cause: asError(err)
157
+ });
158
+ }
159
+ if (response.statusCode !== 200 && response.statusCode !== 201) {
160
+ throw error("failed to update deprecation status", {
161
+ url: packageUrl,
162
+ response
163
+ });
164
+ }
165
+ return {
166
+ name,
167
+ version: versionRange || "*",
168
+ message,
169
+ versions: matchedVersions
170
+ };
171
+ };
172
+ export {
173
+ command,
174
+ usage,
175
+ views
176
+ };