From c90772138df14492a0417d5090a2d0bd81e0e7f9 Mon Sep 17 00:00:00 2001 From: Patrick Griffin <58729+firien@users.noreply.github.com> Date: Mon, 4 Aug 2025 22:26:37 -0400 Subject: [PATCH 1/4] general flag little endian --- src/zip.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/zip.js b/src/zip.js index 07ff84b..7b9c5bf 100644 --- a/src/zip.js +++ b/src/zip.js @@ -49,7 +49,7 @@ class Entry { const dv = new DataView(buffer) dv.setUint32(0, 0x04034b50, true) // Local file header signature dv.setUint16(4, 0x1400) // Version needed to extract (minimum) - dv.setUint16(6, 0) // General purpose bit flag + dv.setUint16(6, 0b100000000000, true) // General purpose bit flag this.commonHeaders(dv, 8) dv.setUint16(28, 0, true) // Extra field length return new Blob([buffer, this.encodedName]) @@ -65,7 +65,7 @@ class Entry { dv.setUint32(0, 0x02014b50, true) // Central directory file header signature dv.setUint16(4, 0x1404) // Version made by dv.setUint16(6, 0x1400) // Version needed to extract (minimum) - dv.setUint16(8, 0b0000100000000000) // General purpose bit flag + dv.setUint16(8, 0b100000000000, true) // General purpose bit flag this.commonHeaders(dv, 10) dv.setUint16(30, 0, true) // Extra field length dv.setUint16(32, 0, true) // File comment length From 3ea00dce112ac1e4ccb9e3fc65b053e2e3776d17 Mon Sep 17 00:00:00 2001 From: Patrick Griffin <58729+firien@users.noreply.github.com> Date: Wed, 6 Aug 2025 18:41:06 -0400 Subject: [PATCH 2/4] update workflows --- .github/workflows/node.js.yml | 12 +++++------- .github/workflows/playwright.yml | 8 ++++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index c593aad..3b4c304 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -16,13 +16,11 @@ jobs: strategy: matrix: - node-version: [18.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - + node: [18, 20, 22] steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node }} + uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node-version }} + node-version: ${{ matrix.node }} - run: npm run test \ No newline at end of file diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 070756a..f71dd1f 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -9,17 +9,17 @@ jobs: timeout-minutes: 60 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Install dependencies run: npm ci - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run Playwright tests run: npx playwright test - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report From 7b9ec2d96501009f8562e73cd09f1c884ef2397b Mon Sep 17 00:00:00 2001 From: Patrick Griffin <58729+firien@users.noreply.github.com> Date: Wed, 6 Aug 2025 18:51:35 -0400 Subject: [PATCH 3/4] update playwright --- package-lock.json | 84 +++++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 50 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index b79a08e..16aa965 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.2", "license": "ISC", "devDependencies": { - "@playwright/test": "^1.37.1", + "@playwright/test": "^1.54.2", "esbuild": "^0.19.2", "eslint": "^8.48.0", "eslint-config-standard": "^17.1.0" @@ -504,22 +504,19 @@ } }, "node_modules/@playwright/test": { - "version": "1.37.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.37.1.tgz", - "integrity": "sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==", + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.2.tgz", + "integrity": "sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@types/node": "*", - "playwright-core": "1.37.1" + "playwright": "1.54.2" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "fsevents": "2.3.2" + "node": ">=18" } }, "node_modules/@types/json5": { @@ -529,12 +526,6 @@ "dev": true, "peer": true }, - "node_modules/@types/node": { - "version": "20.5.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", - "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==", - "dev": true - }, "node_modules/acorn": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", @@ -1492,6 +1483,7 @@ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2376,16 +2368,36 @@ "dev": true, "peer": true }, + "node_modules/playwright": { + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.2.tgz", + "integrity": "sha512-Hu/BMoA1NAdRUuulyvQC0pEqZ4vQbGfn8f7wPXcnqQmM+zct9UliKxsIkLNmz/ku7LElUNqmaiv1TG/aL5ACsw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.54.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, "node_modules/playwright-core": { - "version": "1.37.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.37.1.tgz", - "integrity": "sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==", + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.2.tgz", + "integrity": "sha512-n5r4HFbMmWsB4twG7tJLDN9gmBUeSPcsBZiWSE4DnYz9mJMAFqr2ID7+eGC9kpEnxExJ1epttwR59LEWCk8mtA==", "dev": true, + "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/prelude-ls": { @@ -3170,14 +3182,12 @@ } }, "@playwright/test": { - "version": "1.37.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.37.1.tgz", - "integrity": "sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==", + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.2.tgz", + "integrity": "sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==", "dev": true, "requires": { - "@types/node": "*", - "fsevents": "2.3.2", - "playwright-core": "1.37.1" + "playwright": "1.54.2" } }, "@types/json5": { @@ -3187,12 +3197,6 @@ "dev": true, "peer": true }, - "@types/node": { - "version": "20.5.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", - "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==", - "dev": true - }, "acorn": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", @@ -4549,10 +4553,20 @@ "dev": true, "peer": true }, + "playwright": { + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.2.tgz", + "integrity": "sha512-Hu/BMoA1NAdRUuulyvQC0pEqZ4vQbGfn8f7wPXcnqQmM+zct9UliKxsIkLNmz/ku7LElUNqmaiv1TG/aL5ACsw==", + "dev": true, + "requires": { + "fsevents": "2.3.2", + "playwright-core": "1.54.2" + } + }, "playwright-core": { - "version": "1.37.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.37.1.tgz", - "integrity": "sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==", + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.2.tgz", + "integrity": "sha512-n5r4HFbMmWsB4twG7tJLDN9gmBUeSPcsBZiWSE4DnYz9mJMAFqr2ID7+eGC9kpEnxExJ1epttwR59LEWCk8mtA==", "dev": true }, "prelude-ls": { diff --git a/package.json b/package.json index 5c36b4d..68d7f25 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "author": "", "license": "ISC", "devDependencies": { - "@playwright/test": "^1.37.1", + "@playwright/test": "^1.54.2", "esbuild": "^0.19.2", "eslint": "^8.48.0", "eslint-config-standard": "^17.1.0" From 785cf1aaeee51e6ddc7f99c6117cddb4a911bcb5 Mon Sep 17 00:00:00 2001 From: Patrick Griffin <58729+firien@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:15:49 -0400 Subject: [PATCH 4/4] set little endian even though its 0x0 --- src/zip.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/zip.js b/src/zip.js index 7b9c5bf..e3f5663 100644 --- a/src/zip.js +++ b/src/zip.js @@ -147,8 +147,8 @@ export default class { const buffer = new ArrayBuffer(this.constructor.#endOfCentralDirectoryRecordLength) const dv = new DataView(buffer) dv.setUint32(0, 0x06054b50, true) // End of central directory signature - dv.setUint16(4, 0) // Number of this disk - dv.setUint16(6, 0) // Disk where central directory starts + dv.setUint16(4, 0, true) // Number of this disk + dv.setUint16(6, 0, true) // Disk where central directory starts dv.setUint16(8, this.entries.length, true) // Number of central directory records on this disk dv.setUint16(10, this.entries.length, true) // Total number of central directory records dv.setUint32(12, this.centralDirectorySize, true) // Size of central directory