@anytio/pspm 0.5.1 → 0.6.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ All notable changes to the PSPM CLI will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.6.0] - 2026-02-17
9
+
10
+ ### Changed
11
+
12
+ - **Auth-free read operations**: API key is no longer required for non-write operations (`add`, `install`, `update`, `list`, `link`). Only `publish`, `unpublish`, `deprecate`, `access`, and `whoami` now require authentication.
13
+ - Made `apiKey` parameter optional in SDK configuration, eliminating `apiKey ?? ""` workaround patterns
14
+
15
+ ### Fixed
16
+
17
+ - `update` command no longer blocks users without a PSPM API key when they only have GitHub or public packages installed
18
+
8
19
  ## [0.5.1] - 2026-02-10
9
20
 
10
21
  ### Changed
package/dist/index.js CHANGED
@@ -772,7 +772,7 @@ async function resolveRecursive(rootDeps, config2) {
772
772
  };
773
773
  configure2({
774
774
  registryUrl: config2.registryUrl,
775
- apiKey: config2.apiKey ?? ""
775
+ apiKey: config2.apiKey
776
776
  });
777
777
  const rangesByPackage = /* @__PURE__ */ new Map();
778
778
  const queue = [];
@@ -2047,7 +2047,7 @@ async function validateRegistryPackage(specifier) {
2047
2047
  );
2048
2048
  }
2049
2049
  const { username, name, versionRange } = parsed;
2050
- configure2({ registryUrl, apiKey: apiKey ?? "" });
2050
+ configure2({ registryUrl, apiKey });
2051
2051
  console.log(`Resolving ${specifier}...`);
2052
2052
  const versionsResponse = await listSkillVersions(username, name);
2053
2053
  if (versionsResponse.status !== 200) {
@@ -2843,7 +2843,7 @@ async function installFromLockfile(options) {
2843
2843
  }
2844
2844
  console.log(`Resolving ${missingDeps.length} new dependency(ies)...
2845
2845
  `);
2846
- configure2({ registryUrl, apiKey: apiKey ?? "" });
2846
+ configure2({ registryUrl, apiKey });
2847
2847
  for (const { fullName, versionRange } of missingDeps) {
2848
2848
  const parsed = parseSkillSpecifier(fullName);
2849
2849
  if (!parsed) {
@@ -4144,8 +4144,9 @@ init_lockfile2();
4144
4144
  init_add();
4145
4145
  async function update(options) {
4146
4146
  try {
4147
- const apiKey = await requireApiKey();
4148
- const registryUrl = await getRegistryUrl();
4147
+ const config2 = await resolveConfig();
4148
+ const registryUrl = config2.registryUrl;
4149
+ const apiKey = getTokenForRegistry(config2, registryUrl);
4149
4150
  const skills = await listLockfileSkills();
4150
4151
  if (skills.length === 0) {
4151
4152
  console.log("No skills installed.");