@pnpm/crypto.shasums-file 1000.0.0 → 1001.0.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/lib/index.d.ts CHANGED
@@ -1,3 +1,8 @@
1
1
  import { type FetchFromRegistry } from '@pnpm/fetching-types';
2
- export declare function fetchShasumsFile(fetch: FetchFromRegistry, shasumsUrl: string, expectedVersionIntegrity?: string): Promise<string>;
2
+ export interface ShasumsFileItem {
3
+ integrity: string;
4
+ fileName: string;
5
+ }
6
+ export declare function fetchShasumsFile(fetch: FetchFromRegistry, shasumsUrl: string): Promise<ShasumsFileItem[]>;
7
+ export declare function fetchShasumsFileRaw(fetch: FetchFromRegistry, shasumsUrl: string): Promise<string>;
3
8
  export declare function pickFileChecksumFromShasumsFile(body: string, fileName: string): string;
package/lib/index.js CHANGED
@@ -1,21 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchShasumsFile = fetchShasumsFile;
4
+ exports.fetchShasumsFileRaw = fetchShasumsFileRaw;
4
5
  exports.pickFileChecksumFromShasumsFile = pickFileChecksumFromShasumsFile;
5
- const crypto_hash_1 = require("@pnpm/crypto.hash");
6
6
  const error_1 = require("@pnpm/error");
7
- async function fetchShasumsFile(fetch, shasumsUrl, expectedVersionIntegrity) {
7
+ async function fetchShasumsFile(fetch, shasumsUrl) {
8
+ const shasumsFileContent = await fetchShasumsFileRaw(fetch, shasumsUrl);
9
+ const lines = shasumsFileContent.split('\n');
10
+ const items = [];
11
+ for (const line of lines) {
12
+ if (!line)
13
+ continue;
14
+ const [sha256, fileName] = line.trim().split(/\s+/);
15
+ items.push({
16
+ integrity: `sha256-${Buffer.from(sha256, 'hex').toString('base64')}`,
17
+ fileName,
18
+ });
19
+ }
20
+ return items;
21
+ }
22
+ async function fetchShasumsFileRaw(fetch, shasumsUrl) {
8
23
  const res = await fetch(shasumsUrl);
9
24
  if (!res.ok) {
10
- throw new error_1.PnpmError('NODE_FETCH_INTEGRITY_FAILED', `Failed to fetch integrity file: ${shasumsUrl} (status: ${res.status})`);
25
+ throw new error_1.PnpmError('FAILED_DOWNLOAD_SHASUM_FILE', `Failed to fetch integrity file: ${shasumsUrl} (status: ${res.status})`);
11
26
  }
12
27
  const body = await res.text();
13
- if (expectedVersionIntegrity) {
14
- const actualVersionIntegrity = (0, crypto_hash_1.createHash)(body);
15
- if (expectedVersionIntegrity !== actualVersionIntegrity) {
16
- throw new error_1.PnpmError('NODE_VERSION_INTEGRITY_MISMATCH', `The integrity of ${shasumsUrl} failed. Expected: ${expectedVersionIntegrity}. Actual: ${actualVersionIntegrity}`);
17
- }
18
- }
19
28
  return body;
20
29
  }
21
30
  const SHA256_REGEX = /^[a-f0-9]{64}$/;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAMA,4CAqBC;AAID,0EAqBC;AApDD,mDAA8C;AAC9C,uCAAuC;AAKhC,KAAK,UAAU,gBAAgB,CACpC,KAAwB,EACxB,UAAkB,EAClB,wBAAiC;IAEjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAS,CACjB,6BAA6B,EAC7B,mCAAmC,UAAU,aAAa,GAAG,CAAC,MAAM,GAAG,CACxE,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,IAAI,wBAAwB,EAAE,CAAC;QAC7B,MAAM,sBAAsB,GAAG,IAAA,wBAAU,EAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,wBAAwB,KAAK,sBAAsB,EAAE,CAAC;YACxD,MAAM,IAAI,iBAAS,CAAC,iCAAiC,EAAE,oBAAoB,UAAU,sBAAsB,wBAAwB,aAAa,sBAAsB,EAAE,CAAC,CAAA;QAC3K,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,YAAY,GAAG,gBAAgB,CAAA;AAErC,SAAgB,+BAA+B,CAAE,IAAY,EAAE,QAAgB;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAA;IAEjF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,iBAAS,CACjB,+BAA+B,EAC/B,iDAAiD,QAAQ,EAAE,CAC5D,CAAA;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAS,CACjB,+BAA+B,EAC/B,yBAAyB,QAAQ,KAAK,MAAM,EAAE,CAC/C,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,OAAO,UAAU,MAAM,EAAE,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAUA,4CAgBC;AAED,kDAaC;AAID,0EAqBC;AAlED,uCAAuC;AAUhC,KAAK,UAAU,gBAAgB,CACpC,KAAwB,EACxB,UAAkB;IAElB,MAAM,kBAAkB,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IACvE,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAsB,EAAE,CAAA;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACnD,KAAK,CAAC,IAAI,CAAC;YACT,SAAS,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACpE,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,KAAwB,EACxB,UAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAS,CACjB,6BAA6B,EAC7B,mCAAmC,UAAU,aAAa,GAAG,CAAC,MAAM,GAAG,CACxE,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,YAAY,GAAG,gBAAgB,CAAA;AAErC,SAAgB,+BAA+B,CAAE,IAAY,EAAE,QAAgB;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAA;IAEjF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,iBAAS,CACjB,+BAA+B,EAC/B,iDAAiD,QAAQ,EAAE,CAC5D,CAAA;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAS,CACjB,+BAA+B,EAC/B,yBAAyB,QAAQ,KAAK,MAAM,EAAE,CAC/C,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,OAAO,UAAU,MAAM,EAAE,CAAA;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/crypto.shasums-file",
3
- "version": "1000.0.0",
3
+ "version": "1001.0.0",
4
4
  "description": "Utils for working with shasums files",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -27,11 +27,11 @@
27
27
  ],
28
28
  "dependencies": {
29
29
  "@pnpm/crypto.hash": "1000.2.0",
30
- "@pnpm/error": "1000.0.3",
30
+ "@pnpm/error": "1000.0.4",
31
31
  "@pnpm/fetching-types": "1000.2.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@pnpm/crypto.shasums-file": "1000.0.0"
34
+ "@pnpm/crypto.shasums-file": "1001.0.0"
35
35
  },
36
36
  "engines": {
37
37
  "node": ">=18.12"