ovsx 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +71 -1
  2. package/lib/get.js +1 -1
  3. package/lib/get.js.map +1 -1
  4. package/lib/index.d.ts +4 -0
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +4 -0
  7. package/lib/index.js.map +1 -1
  8. package/lib/list-options.d.ts +24 -0
  9. package/lib/list-options.d.ts.map +1 -0
  10. package/lib/list-options.js +15 -0
  11. package/lib/list-options.js.map +1 -0
  12. package/lib/list.d.ts +18 -0
  13. package/lib/list.d.ts.map +1 -0
  14. package/lib/list.js +46 -0
  15. package/lib/list.js.map +1 -0
  16. package/lib/main.js +78 -2
  17. package/lib/main.js.map +1 -1
  18. package/lib/oidc.d.ts +22 -0
  19. package/lib/oidc.d.ts.map +1 -0
  20. package/lib/oidc.js +101 -0
  21. package/lib/oidc.js.map +1 -0
  22. package/lib/publish-options.d.ts +8 -1
  23. package/lib/publish-options.d.ts.map +1 -1
  24. package/lib/publish.d.ts.map +1 -1
  25. package/lib/publish.js +73 -4
  26. package/lib/publish.js.map +1 -1
  27. package/lib/registry-options.d.ts +8 -0
  28. package/lib/registry-options.d.ts.map +1 -1
  29. package/lib/registry.d.ts +119 -1
  30. package/lib/registry.d.ts.map +1 -1
  31. package/lib/registry.js +187 -19
  32. package/lib/registry.js.map +1 -1
  33. package/lib/search-options.d.ts +48 -0
  34. package/lib/search-options.d.ts.map +1 -0
  35. package/lib/search-options.js +15 -0
  36. package/lib/search-options.js.map +1 -0
  37. package/lib/search.d.ts +22 -0
  38. package/lib/search.d.ts.map +1 -0
  39. package/lib/search.js +86 -0
  40. package/lib/search.js.map +1 -0
  41. package/lib/show-options.d.ts +33 -0
  42. package/lib/show-options.d.ts.map +1 -0
  43. package/lib/show-options.js +15 -0
  44. package/lib/show-options.js.map +1 -0
  45. package/lib/show.d.ts +18 -0
  46. package/lib/show.d.ts.map +1 -0
  47. package/lib/show.js +289 -0
  48. package/lib/show.js.map +1 -0
  49. package/lib/table.d.ts +27 -0
  50. package/lib/table.d.ts.map +1 -0
  51. package/lib/table.js +56 -0
  52. package/lib/table.js.map +1 -0
  53. package/lib/trusted-publishing-options.d.ts +30 -0
  54. package/lib/trusted-publishing-options.d.ts.map +1 -0
  55. package/lib/trusted-publishing-options.js +15 -0
  56. package/lib/trusted-publishing-options.js.map +1 -0
  57. package/lib/trusted-publishing.d.ts +35 -0
  58. package/lib/trusted-publishing.d.ts.map +1 -0
  59. package/lib/trusted-publishing.js +112 -0
  60. package/lib/trusted-publishing.js.map +1 -0
  61. package/lib/unpublish-options.d.ts +34 -0
  62. package/lib/unpublish-options.d.ts.map +1 -0
  63. package/lib/unpublish-options.js +15 -0
  64. package/lib/unpublish-options.js.map +1 -0
  65. package/lib/unpublish.d.ts +22 -0
  66. package/lib/unpublish.d.ts.map +1 -0
  67. package/lib/unpublish.js +137 -0
  68. package/lib/unpublish.js.map +1 -0
  69. package/lib/util.d.ts +39 -1
  70. package/lib/util.d.ts.map +1 -1
  71. package/lib/util.js +91 -5
  72. package/lib/util.js.map +1 -1
  73. package/lib/verify-options.d.ts +24 -0
  74. package/lib/verify-options.d.ts.map +1 -0
  75. package/lib/verify-options.js +15 -0
  76. package/lib/verify-options.js.map +1 -0
  77. package/lib/verify-signature-options.d.ts +32 -0
  78. package/lib/verify-signature-options.d.ts.map +1 -0
  79. package/lib/verify-signature-options.js +15 -0
  80. package/lib/verify-signature-options.js.map +1 -0
  81. package/lib/verify-signature.d.ts +28 -0
  82. package/lib/verify-signature.d.ts.map +1 -0
  83. package/lib/verify-signature.js +105 -0
  84. package/lib/verify-signature.js.map +1 -0
  85. package/lib/verify.d.ts +21 -0
  86. package/lib/verify.d.ts.map +1 -0
  87. package/lib/verify.js +97 -0
  88. package/lib/verify.js.map +1 -0
  89. package/lib/version.d.ts +1 -1
  90. package/lib/version.js +1 -1
  91. package/lib/zip.d.ts +10 -0
  92. package/lib/zip.d.ts.map +1 -1
  93. package/lib/zip.js +31 -0
  94. package/lib/zip.js.map +1 -1
  95. package/package.json +9 -5
  96. package/src/get.ts +1 -1
  97. package/src/index.ts +4 -0
  98. package/src/list-options.ts +25 -0
  99. package/src/list.ts +48 -0
  100. package/src/main.ts +89 -3
  101. package/src/oidc.ts +107 -0
  102. package/src/publish-options.ts +8 -1
  103. package/src/publish.ts +97 -5
  104. package/src/registry-options.ts +8 -0
  105. package/src/registry.ts +292 -19
  106. package/src/search-options.ts +49 -0
  107. package/src/search.ts +95 -0
  108. package/src/show-options.ts +34 -0
  109. package/src/show.ts +328 -0
  110. package/src/table.ts +53 -0
  111. package/src/trusted-publishing-options.ts +30 -0
  112. package/src/trusted-publishing.ts +148 -0
  113. package/src/unpublish-options.ts +35 -0
  114. package/src/unpublish.ts +160 -0
  115. package/src/util.ts +102 -5
  116. package/src/verify-options.ts +25 -0
  117. package/src/verify-signature-options.ts +32 -0
  118. package/src/verify-signature.ts +124 -0
  119. package/src/verify.ts +107 -0
  120. package/src/version.ts +1 -1
  121. package/src/zip.ts +31 -1
package/README.md CHANGED
@@ -10,6 +10,8 @@ npm install --global ovsx
10
10
 
11
11
  `ovsx` uses open-vsx.org as default instance for publishing and downloading extensions. If you are using a different instance, specify it via the `--registryUrl` (or `-r`) argument or an environment variable named `OVSX_REGISTRY_URL`.
12
12
 
13
+ Requests give up if they stop making progress for 30 seconds, so a registry that accepts a connection and then goes quiet does not leave the command hanging. `OVSX_TIMEOUT` changes that, in milliseconds; `OVSX_TIMEOUT=0` disables it. It measures inactivity rather than total time, so a large extension downloading slowly is not cut off, and it covers the ID token request made for trusted publishing as well as the registry's own.
14
+
13
15
  ### Publish Extensions
14
16
 
15
17
  You can use `ovsx` for publishing [VS Code extensions](https://code.visualstudio.com/api) to an Open VSX instance. This is very similar to [vsce](https://github.com/microsoft/vscode-vsce), the publishing tool for the [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/vscode).
@@ -24,12 +26,68 @@ Variants:
24
26
  * `ovsx publish <file>`
25
27
  publishes an already packaged file.
26
28
 
29
+ Before uploading, `ovsx` checks the packaged extension's size against the limit the registry reports on `/api/version`, so an oversized package is rejected locally instead of failing after the whole file has been uploaded.
30
+
31
+ #### Package managers
32
+
33
+ Packaging is done by `vsce`, which walks your production dependencies to decide what goes into the `.vsix`. It knows how to do that for two package managers only - npm, and yarn v1 via `--yarn` - and [will not be adding more](https://github.com/microsoft/vscode-vsce/issues/421#issuecomment-1853665094). For anything else, pnpm included, there are two options:
34
+
35
+ * `ovsx publish --no-dependencies`
36
+ skips the dependency walk altogether. This is the right answer for a bundled extension - one built with esbuild, webpack or similar, where the bundle already contains everything the extension needs at runtime - regardless of which package manager installed the sources.
37
+ * `ovsx publish --follow-symlinks`
38
+ recurses into symlinked directories instead of packing each symlink as a file. A `node_modules` assembled out of symlinks, as pnpm's is, needs this for the walk to reach the real dependency files.
39
+
40
+ ### Trusted Publishing
41
+
42
+ Instead of a long-lived personal access token, `ovsx` can publish from a CI workflow with a short-lived token that the registry issues in exchange for an OIDC ID token of the workflow. The registry only issues such a token if the workflow matches a trusted publisher that a namespace owner registered under [trusted publishers](https://open-vsx.org/user-settings/trusted-publishers). No access token needs to be stored as a secret.
43
+
44
+ On GitHub Actions the workflow needs the `id-token: write` permission, everything else is detected automatically:
45
+
46
+ ```yaml
47
+ permissions:
48
+ contents: read
49
+ id-token: write
50
+ jobs:
51
+ publish:
52
+ runs-on: ubuntu-latest
53
+ # only needed if the trusted publisher pins an environment
54
+ environment: publish
55
+ steps:
56
+ - uses: actions/checkout@v5
57
+ - uses: actions/setup-node@v5
58
+ - run: npm ci
59
+ - run: npx ovsx publish --trusted-publishing
60
+ ```
61
+
62
+ Options:
63
+ * `--trusted-publishing` requires trusted publishing and fails if no ID token can be obtained. Without it, trusted publishing is used whenever an ID token is available and no access token was given; a `--pat` (or `OVSX_PAT`) always takes precedence.
64
+ * `--idToken <token>` passes the ID token explicitly. Use this on CI systems that expose the token as a variable, for example with GitLab CI's [`id_tokens`](https://docs.gitlab.com/ci/yaml/#id_tokens) keyword. The environment variable `OVSX_ID_TOKEN` does the same.
65
+ * `--oidcAudience <audience>` sets the audience requested for the ID token, by default the registry URL. Use it if the registry expects a different audience, and make sure it matches the `aud` claim the registry validates. The environment variable `OVSX_OIDC_AUDIENCE` does the same.
66
+
67
+ The issued token is valid for a few minutes only and is never written to the token store, but it does carry publishing rights, so treat CI logs accordingly.
68
+
69
+ ### Delete Extensions
70
+
71
+ You can delete extensions you published with `ovsx unpublish`, the counterpart of `vsce unpublish`. This requires an access token as described above, and the token's user must be a member of the extension's namespace: namespace owners may delete any version, other members only the versions they published themselves. This requires a registry running version 1.2.0 or later.
72
+
73
+ Deleting is irreversible: the files of a deleted version are removed and its version number stays reserved, so the same version can never be published again. You will be asked for confirmation unless you pass `--force` (or `-f`).
74
+
75
+ Variants:
76
+ * `ovsx unpublish`
77
+ deletes all versions of the extension in the current working directory, as identified by the `publisher` and `name` fields of its package.json.
78
+ * `ovsx unpublish <extension>`
79
+ deletes all versions of the given extension, identified with the format `namespace.extension`.
80
+ * `ovsx unpublish <extension> --versions <versions...>`
81
+ deletes only the given versions, e.g. `ovsx unpublish foo.bar -v 1.0.0 1.0.1`.
82
+ * `ovsx unpublish <extension> --versions <versions...> --target <targets...>`
83
+ deletes only the given [target platforms](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#platformspecific-extensions) of the given versions, e.g. `ovsx unpublish foo.bar -v 1.0.0 -t linux-x64`.
84
+
27
85
  ### Create a Namespace
28
86
 
29
87
  The `publisher` field of your extension's package.json defines the namespace into which the extension will be published. Before you publish the first extension in a namespace, you must create it. This requires an access token as described above.
30
88
 
31
89
  * `ovsx create-namespace <name>`
32
- creates the specifed namespace. The name must correspond to the `publisher` of your extension.
90
+ creates the specified namespace. The name must correspond to the `publisher` of your extension.
33
91
 
34
92
  Creating a namespace does _not_ automatically give you the exclusive publishing rights. Initially, everyone will be able to publish an extension with the new namespace. If you want exclusive publishing rights, you can [claim ownership of a namespace](https://github.com/eclipse/openvsx/wiki/Namespace-Access).
35
93
 
@@ -47,6 +105,18 @@ Variants:
47
105
  * `ovsx get <extension> --metadata -o <path>`
48
106
  downloads the JSON metadata of an extension and saves it in the specified file or directory.
49
107
 
108
+ ### Verify a Downloaded Package
109
+
110
+ If the registry signs published packages, `ovsx verify <path>` checks a downloaded `.vsix` file's signature against the registry's public key - the same check VS Code itself performs when installing a signed extension. The namespace, extension name and version are read from the package itself, so no extra arguments are needed beyond the file path (and `-t`/`--target` for a [target platform specific extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#platformspecific-extensions)).
111
+
112
+ * `ovsx verify <extension.vsix>`
113
+ verifies the package's signature and exits with an error if it is missing, invalid, or does not match - meaning the package was not published by, or was tampered with after being published by, the registry it was downloaded from.
114
+
115
+ If you already have the package, manifest and signature files on disk - e.g. extracted from a registry's signature archive - and don't want `ovsx` to talk to a registry at all, `ovsx verify-signature` verifies that trio entirely offline, mirroring `vsce verify-signature`:
116
+
117
+ * `ovsx verify-signature -i <package.vsix> -m <manifest> -s <signature> -k <publicKey>`
118
+ verifies the signature against the package, and cross-checks the manifest's recorded digests against the package's actual contents - reporting which entry doesn't match, if any. Unlike `vsce verify-signature`, a public key must be supplied explicitly (`-k`/`--publicKeyPath`): Open VSX registries each hold their own signing key, rather than trusting a single baked-in Marketplace key the way VS Code's own verifier does.
119
+
50
120
  ### Store Access Tokens
51
121
 
52
122
  The `login` command lets you store an access token for a namespace.
package/lib/get.js CHANGED
@@ -23,7 +23,7 @@ async function getExtension(options) {
23
23
  const registry = new registry_1.Registry(options);
24
24
  const match = (0, util_1.matchExtensionId)(options.extensionId);
25
25
  if (!match) {
26
- throw new Error('The extension identifier must have the form `namespace.extension`.');
26
+ throw new Error('The extension identifier must have the form `namespace.extension` or `namespace/extension`.');
27
27
  }
28
28
  const extension = await registry.getMetadata(match[1], match[2], options.target);
29
29
  if (extension.error) {
package/lib/get.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../src/get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../src/get.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -18,6 +18,10 @@ export * from './publish';
18
18
  export * from './publish-options';
19
19
  export * from './registry';
20
20
  export * from './registry-options';
21
+ export * from './trusted-publishing';
22
+ export * from './trusted-publishing-options';
23
+ export * from './unpublish';
24
+ export * from './unpublish-options';
21
25
  export * from './verify-pat';
22
26
  export * from './verify-pat-options';
23
27
  export { isLicenseOk } from './check-license';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAElF,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAElF,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC"}
package/lib/index.js CHANGED
@@ -35,6 +35,10 @@ __exportStar(require("./publish"), exports);
35
35
  __exportStar(require("./publish-options"), exports);
36
36
  __exportStar(require("./registry"), exports);
37
37
  __exportStar(require("./registry-options"), exports);
38
+ __exportStar(require("./trusted-publishing"), exports);
39
+ __exportStar(require("./trusted-publishing-options"), exports);
40
+ __exportStar(require("./unpublish"), exports);
41
+ __exportStar(require("./unpublish-options"), exports);
38
42
  __exportStar(require("./verify-pat"), exports);
39
43
  __exportStar(require("./verify-pat-options"), exports);
40
44
  var check_license_1 = require("./check-license");
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF;;;;;;;;;;;;;;;;;AAElF,qDAAmC;AACnC,6DAA2C;AAC3C,wCAAsB;AACtB,gDAA8B;AAC9B,0CAAwB;AACxB,kDAAgC;AAChC,2CAAyB;AACzB,4CAA0B;AAC1B,oDAAkC;AAClC,6CAA2B;AAC3B,qDAAmC;AACnC,+CAA6B;AAC7B,uDAAqC;AACrC,iDAA8C;AAArC,4GAAA,WAAW,OAAA;AACpB,+BAAwD;AAA/C,wGAAA,gBAAgB,OAAA;AAAE,oGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF;;;;;;;;;;;;;;;;;AAElF,qDAAmC;AACnC,6DAA2C;AAC3C,wCAAsB;AACtB,gDAA8B;AAC9B,0CAAwB;AACxB,kDAAgC;AAChC,2CAAyB;AACzB,4CAA0B;AAC1B,oDAAkC;AAClC,6CAA2B;AAC3B,qDAAmC;AACnC,uDAAqC;AACrC,+DAA6C;AAC7C,8CAA4B;AAC5B,sDAAoC;AACpC,+CAA6B;AAC7B,uDAAqC;AACrC,iDAA8C;AAArC,4GAAA,WAAW,OAAA;AACpB,+BAAwD;AAA/C,wGAAA,gBAAgB,OAAA;AAAE,oGAAA,YAAY,OAAA"}
@@ -0,0 +1,24 @@
1
+ /******************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0.
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ *****************************************************************************/
13
+ import { RegistryOptions } from './registry-options';
14
+ export interface ListOptions extends RegistryOptions {
15
+ /**
16
+ * Namespace whose extensions should be listed.
17
+ */
18
+ namespace: string;
19
+ /**
20
+ * Print the raw namespace metadata as JSON instead of a list.
21
+ */
22
+ json?: boolean;
23
+ }
24
+ //# sourceMappingURL=list-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-options.d.ts","sourceRoot":"","sources":["../src/list-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;+EAW+E;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,WAAY,SAAQ,eAAe;IAChD;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /******************************************************************************
3
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
4
+ *
5
+ * See the NOTICE file(s) distributed with this work for additional
6
+ * information regarding copyright ownership.
7
+ *
8
+ * This program and the accompanying materials are made available under the
9
+ * terms of the Eclipse Public License 2.0 which is available at
10
+ * https://www.eclipse.org/legal/epl-2.0.
11
+ *
12
+ * SPDX-License-Identifier: EPL-2.0
13
+ *****************************************************************************/
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ //# sourceMappingURL=list-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-options.js","sourceRoot":"","sources":["../src/list-options.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;+EAW+E"}
package/lib/list.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ /******************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0.
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ *****************************************************************************/
13
+ import { ListOptions } from './list-options';
14
+ /**
15
+ * Lists the extensions published in a namespace.
16
+ */
17
+ export declare function list(options: ListOptions): Promise<void>;
18
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;+EAW+E;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B9D"}
package/lib/list.js ADDED
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /******************************************************************************
3
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
4
+ *
5
+ * See the NOTICE file(s) distributed with this work for additional
6
+ * information regarding copyright ownership.
7
+ *
8
+ * This program and the accompanying materials are made available under the
9
+ * terms of the Eclipse Public License 2.0 which is available at
10
+ * https://www.eclipse.org/legal/epl-2.0.
11
+ *
12
+ * SPDX-License-Identifier: EPL-2.0
13
+ *****************************************************************************/
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.list = list;
16
+ const registry_1 = require("./registry");
17
+ const table_1 = require("./table");
18
+ const util_1 = require("./util");
19
+ /**
20
+ * Lists the extensions published in a namespace.
21
+ */
22
+ async function list(options) {
23
+ (0, util_1.addEnvOptions)(options);
24
+ const registry = new registry_1.Registry(options);
25
+ const namespace = await registry.getNamespace(options.namespace);
26
+ if (namespace.error) {
27
+ throw new Error(namespace.error);
28
+ }
29
+ if (options.json) {
30
+ console.log(JSON.stringify(namespace, null, 4));
31
+ return;
32
+ }
33
+ // Sorted here rather than relying on the response's key order, so the output is stable and
34
+ // scriptable regardless of how the registry happens to serialise the map.
35
+ const names = Object.keys(namespace.extensions ?? {}).sort((a, b) => a.localeCompare(b));
36
+ const verified = namespace.verified ? ' (verified)' : '';
37
+ console.log(`${namespace.name}${verified} - ${(0, table_1.formatCount)(names.length, 'extension')}`);
38
+ if (names.length === 0) {
39
+ return;
40
+ }
41
+ console.log();
42
+ for (const name of names) {
43
+ console.log(` ${namespace.name}.${name}`);
44
+ }
45
+ }
46
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;+EAW+E;;AAU/E,oBA0BC;AAjCD,yCAAsC;AACtC,mCAAsC;AACtC,iCAAuC;AAEvC;;GAEG;AACI,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC3C,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO;IACX,CAAC;IAED,2FAA2F;IAC3F,0EAA0E;IAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,QAAQ,MAAM,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC"}
package/lib/main.js CHANGED
@@ -14,8 +14,14 @@ const leven = require("leven");
14
14
  const create_namespace_1 = require("./create-namespace");
15
15
  const verify_pat_1 = require("./verify-pat");
16
16
  const publish_1 = require("./publish");
17
+ const unpublish_1 = require("./unpublish");
17
18
  const util_1 = require("./util");
18
19
  const get_1 = require("./get");
20
+ const list_1 = require("./list");
21
+ const search_1 = require("./search");
22
+ const show_1 = require("./show");
23
+ const verify_1 = require("./verify");
24
+ const verify_signature_1 = require("./verify-signature");
19
25
  const login_1 = require("./login");
20
26
  const logout_1 = require("./logout");
21
27
  const version_1 = require("./version");
@@ -47,12 +53,16 @@ module.exports = function (argv) {
47
53
  .option('--baseContentUrl <url>', 'Prepend all relative links in README.md with this URL.')
48
54
  .option('--baseImagesUrl <url>', 'Prepend all relative image links in README.md with this URL.')
49
55
  .option('--yarn', 'Use yarn instead of npm while packing extension files.')
56
+ .option('--follow-symlinks', 'Recurse into symlinked directories instead of packing each symlink as a file.')
50
57
  .option('--pre-release', 'Mark this package as a pre-release')
51
58
  .option('--allow-missing-repository', 'Allow packaging an extension whose package.json has no repository field')
52
59
  .option('--no-dependencies', 'Disable dependency detection via npm or yarn')
53
60
  .option('--skip-duplicate', 'Fail silently if version already exists on the marketplace')
54
61
  .option('--packageVersion <version>', 'Version of the provided VSIX packages.')
55
- .action((extensionFile, { target, packagePath, baseContentUrl, baseImagesUrl, yarn, preRelease, allowMissingRepository, dependencies, skipDuplicate, packageVersion }) => {
62
+ .option('--trusted-publishing', 'Exchange an OIDC ID token for a short-lived publishing token. Enabled automatically when a CI system provides an ID token and no access token is given.')
63
+ .option('--idToken <token>', 'The OIDC ID token to exchange. Only needed on CI systems that provide the token directly, e.g. GitLab CI.')
64
+ .option('--oidcAudience <audience>', 'Audience to request for the OIDC ID token. Defaults to the registry URL.')
65
+ .action((extensionFile, { target, packagePath, baseContentUrl, baseImagesUrl, yarn, followSymlinks, preRelease, allowMissingRepository, dependencies, skipDuplicate, packageVersion, trustedPublishing, idToken, oidcAudience }) => {
56
66
  if (extensionFile !== undefined && packagePath !== undefined) {
57
67
  console.error('\u274c Please specify either a package file or a package path, but not both.\n');
58
68
  publishCmd.help();
@@ -67,12 +77,14 @@ module.exports = function (argv) {
67
77
  console.warn("Ignoring option '--baseImagesUrl' for prepackaged extension.");
68
78
  if (extensionFile !== undefined && yarn !== undefined)
69
79
  console.warn("Ignoring option '--yarn' for prepackaged extension.");
80
+ if (extensionFile !== undefined && followSymlinks !== undefined)
81
+ console.warn("Ignoring option '--follow-symlinks' for prepackaged extension.");
70
82
  if (extensionFile !== undefined && packageVersion !== undefined)
71
83
  console.warn("Ignoring option '--packageVersion' for prepackaged extension.");
72
84
  if (extensionFile !== undefined && allowMissingRepository !== undefined)
73
85
  console.warn("Ignoring option '--allow-missing-repository' for prepackaged extension.");
74
86
  const { registryUrl, pat } = program.opts();
75
- (0, publish_1.publish)({ extensionFile, registryUrl, pat, targets: typeof target === 'string' ? [target] : target, packagePath: typeof packagePath === 'string' ? [packagePath] : packagePath, baseContentUrl, baseImagesUrl, yarn, preRelease, allowMissingRepository, dependencies, skipDuplicate, packageVersion })
87
+ (0, publish_1.publish)({ extensionFile, registryUrl, pat, targets: typeof target === 'string' ? [target] : target, packagePath: typeof packagePath === 'string' ? [packagePath] : packagePath, baseContentUrl, baseImagesUrl, yarn, followSymlinks, preRelease, allowMissingRepository, dependencies, skipDuplicate, packageVersion, trustedPublishing, idToken, oidcAudience })
76
88
  .then(results => {
77
89
  const reasons = results.filter(result => result.status === 'rejected')
78
90
  .map(rejectedResult => rejectedResult.reason);
@@ -87,6 +99,52 @@ module.exports = function (argv) {
87
99
  }
88
100
  });
89
101
  });
102
+ const unpublishCmd = program.command('unpublish [namespace.extension]');
103
+ unpublishCmd.description('Delete an extension or some of its versions from the registry.')
104
+ .option('-v, --versions <versions...>', 'Only delete the given versions.')
105
+ .option('-t, --target <targets...>', 'Only delete the given target architectures of the given versions.')
106
+ .option('-f, --force', 'Skip the confirmation prompt.')
107
+ .action((extensionId, { versions, target, force }) => {
108
+ const { registryUrl, pat } = program.opts();
109
+ (0, unpublish_1.unpublish)({
110
+ extensionId,
111
+ versions: typeof versions === 'string' ? [versions] : versions,
112
+ targets: typeof target === 'string' ? [target] : target,
113
+ force,
114
+ registryUrl,
115
+ pat
116
+ }).catch((0, util_1.handleError)(program.debug));
117
+ });
118
+ const searchCmd = program.command('search [text]');
119
+ searchCmd.description('Search the registry for extensions.')
120
+ .option('-c, --category <category>', 'Only return extensions in this category.')
121
+ .option('-t, --target <target>', 'Only return extensions built for this target architecture.')
122
+ .option('-s, --size <size>', `Number of results to return (default ${search_1.DEFAULT_SEARCH_SIZE}).`, util_1.parseNonNegativeInt)
123
+ .option('-o, --offset <offset>', 'Index of the first result, for paging.', util_1.parseNonNegativeInt)
124
+ .option('--sort-by <key>', `Sort key: ${search_1.SORT_KEYS.join(', ')}.`)
125
+ .option('--sort-order <order>', `Sort order: ${search_1.SORT_ORDERS.join(', ')}.`)
126
+ .option('--json', 'Print the raw results as JSON.')
127
+ .action((text, { category, target, size, offset, sortBy, sortOrder, json }) => {
128
+ const { registryUrl } = program.opts();
129
+ (0, search_1.search)({ text, category, target, size, offset, sortBy, sortOrder, json, registryUrl })
130
+ .catch((0, util_1.handleError)(program.debug));
131
+ });
132
+ const listCmd = program.command('list <namespace>');
133
+ listCmd.description('List the extensions published in a namespace.')
134
+ .option('--json', 'Print the raw namespace metadata as JSON.')
135
+ .action((namespace, { json }) => {
136
+ const { registryUrl } = program.opts();
137
+ (0, list_1.list)({ namespace, json, registryUrl }).catch((0, util_1.handleError)(program.debug));
138
+ });
139
+ const showCmd = program.command('show <namespace.extension[@version]>');
140
+ showCmd.description('Show an extension\'s metadata.')
141
+ .option('-t, --target <target>', 'Only report on the given target architecture.')
142
+ .option('--all-versions', 'List every published version instead of the most recent few.')
143
+ .option('--json', 'Print the raw metadata as JSON.')
144
+ .action((extensionId, { target, allVersions, json }) => {
145
+ const { registryUrl } = program.opts();
146
+ (0, show_1.show)({ extensionId, target, allVersions, json, registryUrl }).catch((0, util_1.handleError)(program.debug));
147
+ });
90
148
  const getCmd = program.command('get <namespace.extension>');
91
149
  getCmd.description('Download an extension or its metadata.')
92
150
  .option('-t, --target <target>', 'Target architecture')
@@ -98,6 +156,24 @@ module.exports = function (argv) {
98
156
  (0, get_1.getExtension)({ extensionId, target: target, version: versionRange, registryUrl, output, metadata })
99
157
  .catch((0, util_1.handleError)(program.debug));
100
158
  });
159
+ const verifyCmd = program.command('verify <extension.vsix>');
160
+ verifyCmd.description('Verify a downloaded package\'s signature against the registry\'s public key.')
161
+ .option('-t, --target <target>', 'Target architecture')
162
+ .action((packagePath, { target }) => {
163
+ const { registryUrl } = program.opts();
164
+ (0, verify_1.verify)({ packagePath, target, registryUrl })
165
+ .catch((0, util_1.handleError)(program.debug));
166
+ });
167
+ const verifySignatureCmd = program.command('verify-signature');
168
+ verifySignatureCmd.description('Verify a signature file against a package and manifest, entirely offline - like `vsce verify-signature`.')
169
+ .requiredOption('-i, --packagePath <path>', 'Path to the .vsix package.')
170
+ .requiredOption('-m, --manifestPath <path>', 'Path to the signature manifest file.')
171
+ .requiredOption('-s, --signaturePath <path>', 'Path to the signature file.')
172
+ .requiredOption('-k, --publicKeyPath <path>', 'Path to the registry\'s public key file.')
173
+ .action(({ packagePath, manifestPath, signaturePath, publicKeyPath }) => {
174
+ (0, verify_signature_1.verifySignature)({ packagePath, manifestPath, signaturePath, publicKeyPath })
175
+ .catch((0, util_1.handleError)(program.debug));
176
+ });
101
177
  const loginCmd = program.command('login <namespace>');
102
178
  loginCmd.description('Adds a namespace to the list of known namespaces')
103
179
  .action((namespace) => {
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/lib/oidc.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ /******************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0.
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ *****************************************************************************/
13
+ import { TrustedPublishingOptions } from './trusted-publishing-options';
14
+ /**
15
+ * Whether an OIDC ID token can be obtained without user interaction.
16
+ */
17
+ export declare function hasIdTokenSource(options: TrustedPublishingOptions): boolean;
18
+ /**
19
+ * Obtains an OIDC ID token for the given audience from the surrounding CI system.
20
+ */
21
+ export declare function getIdToken(audience: string, options: TrustedPublishingOptions): Promise<string>;
22
+ //# sourceMappingURL=oidc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;+EAW+E;AAI/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAE3E;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYrG"}
package/lib/oidc.js ADDED
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /******************************************************************************
3
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
4
+ *
5
+ * See the NOTICE file(s) distributed with this work for additional
6
+ * information regarding copyright ownership.
7
+ *
8
+ * This program and the accompanying materials are made available under the
9
+ * terms of the Eclipse Public License 2.0 which is available at
10
+ * https://www.eclipse.org/legal/epl-2.0.
11
+ *
12
+ * SPDX-License-Identifier: EPL-2.0
13
+ *****************************************************************************/
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.hasIdTokenSource = hasIdTokenSource;
16
+ exports.getIdToken = getIdToken;
17
+ const followRedirects = require("follow-redirects");
18
+ const util_1 = require("./util");
19
+ /**
20
+ * Whether an OIDC ID token can be obtained without user interaction.
21
+ */
22
+ function hasIdTokenSource(options) {
23
+ return Boolean(options.idToken) || isGitHubActionsIdTokenAvailable();
24
+ }
25
+ /**
26
+ * Obtains an OIDC ID token for the given audience from the surrounding CI system.
27
+ */
28
+ async function getIdToken(audience, options) {
29
+ // CI systems such as GitLab CI provide the ID token directly as an environment variable
30
+ if (options.idToken) {
31
+ return options.idToken;
32
+ }
33
+ if (isGitHubActionsIdTokenAvailable()) {
34
+ return getGitHubActionsIdToken(audience);
35
+ }
36
+ throw new Error('No OIDC ID token available for trusted publishing.\n'
37
+ + "On GitHub Actions, grant the job the 'id-token: write' permission.\n"
38
+ + 'On other CI systems, pass the ID token via the --idToken argument '
39
+ + 'or the OVSX_ID_TOKEN environment variable.');
40
+ }
41
+ function isGitHubActionsIdTokenAvailable() {
42
+ return Boolean(process.env.ACTIONS_ID_TOKEN_REQUEST_URL && process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN);
43
+ }
44
+ async function getGitHubActionsIdToken(audience) {
45
+ // the request URL already carries an api-version query parameter, so keep its query intact
46
+ const url = new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);
47
+ url.searchParams.set('audience', audience);
48
+ const response = await getJson(url, {
49
+ 'Authorization': `Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`,
50
+ 'Accept': 'application/json'
51
+ });
52
+ if (!response.value) {
53
+ throw new Error('GitHub Actions did not return an OIDC ID token.');
54
+ }
55
+ return response.value;
56
+ }
57
+ /**
58
+ * Minimal JSON GET that is not bound to the registry: the request must not carry any registry
59
+ * credentials, as it is sent to the CI system's token service.
60
+ */
61
+ function getJson(url, headers) {
62
+ return new Promise((resolve, reject) => {
63
+ const protocol = url.protocol === 'https:' ? followRedirects.https : followRedirects.http;
64
+ // OVSX_TIMEOUT covers this request too. Read here rather than taken from the registry's
65
+ // options, since this one carries none of the registry's configuration - only the clock is
66
+ // shared, and having two of those to explain would be worse.
67
+ const timeout = (0, util_1.configuredTimeout)();
68
+ const request = protocol.request(url, { method: 'GET', headers, timeout }, response => {
69
+ response.setEncoding('utf-8');
70
+ let json = '';
71
+ // See Registry.getJsonResponse: a connection lost mid-body never fires 'end', so the
72
+ // response's own error has to be what settles the promise.
73
+ response.on('error', reject);
74
+ response.on('data', chunk => json += chunk);
75
+ response.on('end', () => {
76
+ if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode > 299)) {
77
+ reject((0, util_1.statusError)(response));
78
+ }
79
+ else {
80
+ try {
81
+ resolve(JSON.parse(json));
82
+ }
83
+ catch (err) {
84
+ reject(err);
85
+ }
86
+ }
87
+ });
88
+ });
89
+ request.on('error', reject);
90
+ // The timeout option only raises an event, so the request has to be destroyed for it to mean
91
+ // anything; the error then arrives at the handler above.
92
+ request.on('timeout', () => {
93
+ // Rejected before the teardown, so the timeout is what the caller sees rather than
94
+ // whichever error destroying the request happens to raise first.
95
+ reject(new Error(`No response from ${(0, util_1.redactUrl)(url)} for ${timeout} ms.`));
96
+ request.destroy();
97
+ });
98
+ request.end();
99
+ });
100
+ }
101
+ //# sourceMappingURL=oidc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  ********************************************************************************/
10
10
  import { RegistryOptions } from './registry-options';
11
- export interface PublishCommonOptions extends RegistryOptions {
11
+ import { TrustedPublishingOptions } from './trusted-publishing-options';
12
+ export interface PublishCommonOptions extends RegistryOptions, TrustedPublishingOptions {
12
13
  /**
13
14
  * Path to the vsix file to be published. Cannot be used together with `packagePath`.
14
15
  */
@@ -25,6 +26,12 @@ export interface PublishCommonOptions extends RegistryOptions {
25
26
  * Should use `yarn` instead of `npm`. Only valid with `packagePath`.
26
27
  */
27
28
  yarn?: boolean;
29
+ /**
30
+ * Recurse into symlinked directories when collecting the files to pack, instead of packing each
31
+ * symlink as a file. Needed for a `node_modules` built out of symlinks, as pnpm's is. Only valid
32
+ * with `packagePath`.
33
+ */
34
+ followSymlinks?: boolean;
28
35
  /**
29
36
  * Mark this package as a pre-release. Only valid with `packagePath`.
30
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"publish-options.d.ts","sourceRoot":"","sources":["../src/publish-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IAExD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B"}
1
+ {"version":3,"file":"publish-options.d.ts","sourceRoot":"","sources":["../src/publish-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,WAAW,oBAAqB,SAAQ,eAAe,EAAE,wBAAwB;IACnF;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IAExD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B"}