From a0647c2bf4b1591681edc4b8292e5b5387657e7f Mon Sep 17 00:00:00 2001 From: Jeremy Nguyen Date: Sun, 25 Oct 2026 19:29:34 -0700 Subject: [PATCH] feat: switch to monorepo setup - Move emscripten generated code to @libexif-wasm/wasm package - Move JS glue code/bindings to libexif-wasm package - Update libexif-wasm to build with tsdown --- .changeset/strict-tools-jam.md | 5 + .changeset/wacky-wasps-clap.md | 5 + .github/workflows/ci.yml | 7 +- .github/workflows/release.yml | 3 - package.json | 86 +-- .../libexif-wasm/CHANGELOG.md | 0 README.md => packages/libexif-wasm/README.md | 18 +- .../libexif-wasm/docs}/usage/byte-order.md | 0 .../libexif-wasm/docs}/usage/compatibility.md | 0 .../libexif-wasm/docs}/usage/data.md | 0 .../docs}/usage/get-all-entries.md | 0 .../docs}/usage/resource-management.md | 0 .../libexif-wasm/docs}/usage/tags.md | 0 packages/libexif-wasm/package.json | 82 +++ .../libexif-wasm/src}/__fixtures__/README.md | 0 .../__fixtures__/Sumo_Museum/Sumo_Museum.jpg | Bin .../__fixtures__/Sumo_Museum/Sumo_Museum.json | 0 .../T-45A_Goshawk_03/T-45A_Goshawk_03.jpg | Bin .../T-45A_Goshawk_03/T-45A_Goshawk_03.json | 0 .../T-45A_Goshawk_03_thumbnail.jpg | Bin .../src}/__utils__/DisposablePtr.ts | 0 .../src}/__utils__/getTestFixture.ts | 0 .../src}/__utils__/mapTypedArrayToDataView.ts | 0 .../src}/__utils__/serializeExifData.ts | 0 .../src}/__utils__/withDisposable.ts | 0 .../libexif-wasm/src}/constants.ts | 0 .../libexif-wasm/src}/enums/ExifByteOrder.ts | 0 .../libexif-wasm/src}/enums/ExifDataOption.ts | 0 .../libexif-wasm/src}/enums/ExifDataType.ts | 0 .../libexif-wasm/src}/enums/ExifFormat.ts | 0 .../libexif-wasm/src}/enums/ExifIfd.ts | 0 .../libexif-wasm/src}/enums/ExifLogCode.ts | 0 .../src}/enums/ExifSupportLevel.ts | 0 .../libexif-wasm/src}/enums/ExifTag.ts | 0 .../libexif-wasm/src}/enums/ExifTagGps.ts | 0 .../src}/enums/ExifTagUnified.test.ts | 0 .../libexif-wasm/src}/enums/ExifTagUnified.ts | 0 .../libexif-wasm/src}/enums/index.ts | 0 {src => packages/libexif-wasm/src}/index.ts | 0 .../src}/interfaces/dataSegment.ts | 0 .../src}/interfaces/emscripten.ts | 0 .../libexif-wasm/src}/interfaces/index.ts | 0 .../libexif-wasm/src}/interfaces/libexif.ts | 0 .../libexif-wasm/src}/interfaces/utils.ts | 0 .../libexif-wasm/src}/internal/emscripten.ts | 0 .../libexif-wasm/src}/internal/index.ts | 0 .../src}/internal/libexif/exifByteOrder.ts | 0 .../src}/internal/libexif/exifContent.ts | 0 .../src}/internal/libexif/exifData.ts | 0 .../src}/internal/libexif/exifDataType.ts | 0 .../src}/internal/libexif/exifEntry.ts | 0 .../src}/internal/libexif/exifFormat.ts | 0 .../src}/internal/libexif/exifGpsIfd.ts | 0 .../src}/internal/libexif/exifIfd.ts | 0 .../src}/internal/libexif/exifLoader.ts | 0 .../src}/internal/libexif/exifLog.ts | 0 .../src}/internal/libexif/exifMem.ts | 0 .../src}/internal/libexif/exifMnoteData.ts | 0 .../internal/libexif/exifMnoteDataPriv.ts | 0 .../src}/internal/libexif/exifTag.ts | 0 .../src}/internal/libexif/exifUtils.ts | 0 .../src}/internal/libexif/index.ts | 0 .../libexif-wasm/src}/internal/main.ts | 0 .../libexif-wasm/src}/internal/module.ts | 2 +- .../libexif-wasm/src}/internal/stdlib.ts | 0 .../src}/libexif/ExifContent.test.ts | 0 .../libexif-wasm/src}/libexif/ExifContent.ts | 0 .../src}/libexif/ExifData.test.ts | 0 .../libexif-wasm/src}/libexif/ExifData.ts | 0 .../src}/libexif/ExifEntry.test.ts | 0 .../libexif-wasm/src}/libexif/ExifEntry.ts | 0 .../src}/libexif/ExifLoader.test.ts | 0 .../libexif-wasm/src}/libexif/ExifLoader.ts | 0 .../libexif-wasm/src}/libexif/ExifLog.test.ts | 0 .../libexif-wasm/src}/libexif/ExifLog.ts | 0 .../libexif-wasm/src}/libexif/ExifMem.test.ts | 0 .../libexif-wasm/src}/libexif/ExifMem.ts | 0 .../src}/libexif/ExifMnoteData.test.ts | 0 .../src}/libexif/ExifMnoteData.ts | 0 .../libexif-wasm/src}/libexif/ExifTag.test.ts | 0 .../libexif-wasm/src}/libexif/ExifTag.ts | 0 .../src}/libexif/exifByteOrder.test.ts | 0 .../src}/libexif/exifByteOrder.ts | 0 .../src}/libexif/exifFormat.test.ts | 0 .../libexif-wasm/src}/libexif/exifFormat.ts | 0 .../libexif-wasm/src}/libexif/exifIfd.test.ts | 0 .../libexif-wasm/src}/libexif/exifIfd.ts | 0 .../src}/libexif/exifSupportLevel.ts | 0 .../src}/libexif/exifUtils.test.ts | 0 .../libexif-wasm/src}/libexif/exifUtils.ts | 0 .../libexif-wasm/src}/libexif/index.ts | 0 .../libexif/utils/getDataAsTypedArray.test.ts | 0 .../src}/libexif/utils/getDataAsTypedArray.ts | 0 .../getExifDataFromReadableStream.test.ts | 0 .../utils/getExifDataFromReadableStream.ts | 0 .../libexif/utils/getExifTagTable.test.ts | 0 .../src}/libexif/utils/getExifTagTable.ts | 0 .../utils/mapRationalFromObject.test.ts | 0 .../libexif/utils/mapRationalFromObject.ts | 0 .../libexif/utils/mapRationalToObject.test.ts | 0 .../src}/libexif/utils/mapRationalToObject.ts | 0 .../utils/setDataFromTypedArray.test.ts | 0 .../libexif/utils/setDataFromTypedArray.ts | 0 .../src}/structs/ExifContentStruct.ts | 0 .../src}/structs/ExifDataStruct.ts | 0 .../src}/structs/ExifEntryStruct.ts | 0 .../src}/structs/ExifRationalStruct.ts | 0 .../src}/structs/ExifSRationalStruct.ts | 0 .../libexif-wasm/src}/structs/index.ts | 0 .../libexif-wasm/src}/utils/BiMap.test.ts | 0 .../libexif-wasm/src}/utils/BiMap.ts | 0 .../src}/utils/UTF8ToStringOrNull.test.ts | 0 .../src}/utils/UTF8ToStringOrNull.ts | 0 .../src}/utils/assertEnumObjectKey.test.ts | 0 .../src}/utils/assertEnumObjectKey.ts | 0 .../src}/utils/getEnumKeyFromValue.test.ts | 0 .../src}/utils/getEnumKeyFromValue.ts | 0 .../src}/utils/getPtrArray.test.ts | 0 .../libexif-wasm/src}/utils/getPtrArray.ts | 0 .../libexif-wasm/src}/utils/index.ts | 0 .../libexif-wasm/src}/utils/isPropertyKey.ts | 0 .../src}/utils/isTypedArray.test.ts | 0 .../libexif-wasm/src}/utils/isTypedArray.ts | 0 .../src}/utils/mapEmbindEnumToBiMap.test.ts | 0 .../src}/utils/mapEmbindEnumToBiMap.ts | 0 .../src}/utils/mapEmbindEnumToObject.test.ts | 0 .../src}/utils/mapEmbindEnumToObject.ts | 0 .../libexif-wasm/tsconfig.json | 9 +- packages/libexif-wasm/tsdown.config.ts | 23 + .clang-format => packages/wasm/.clang-format | 0 packages/wasm/package.json | 26 + {ports => packages/wasm/ports}/libexif.py | 0 .../wasm/scripts/build.sh | 8 +- .../wasm/scripts}/exports/functions.txt | 0 .../wasm/scripts}/exports/runtime_methods.txt | 0 {module => packages/wasm/src}/enum.cpp | 0 {module => packages/wasm/src}/main.cpp | 0 pnpm-lock.yaml | 626 +++++++++++++++++- pnpm-workspace.yaml | 4 +- scripts/publish.sh | 2 +- tsconfig.json | 7 - tsconfig.spec.json | 15 - vitest.config.ts | 5 +- 143 files changed, 793 insertions(+), 140 deletions(-) create mode 100644 .changeset/strict-tools-jam.md create mode 100644 .changeset/wacky-wasps-clap.md rename CHANGELOG.md => packages/libexif-wasm/CHANGELOG.md (100%) rename README.md => packages/libexif-wasm/README.md (86%) rename {docs => packages/libexif-wasm/docs}/usage/byte-order.md (100%) rename {docs => packages/libexif-wasm/docs}/usage/compatibility.md (100%) rename {docs => packages/libexif-wasm/docs}/usage/data.md (100%) rename {docs => packages/libexif-wasm/docs}/usage/get-all-entries.md (100%) rename {docs => packages/libexif-wasm/docs}/usage/resource-management.md (100%) rename {docs => packages/libexif-wasm/docs}/usage/tags.md (100%) create mode 100644 packages/libexif-wasm/package.json rename {src => packages/libexif-wasm/src}/__fixtures__/README.md (100%) rename {src => packages/libexif-wasm/src}/__fixtures__/Sumo_Museum/Sumo_Museum.jpg (100%) rename {src => packages/libexif-wasm/src}/__fixtures__/Sumo_Museum/Sumo_Museum.json (100%) rename {src => packages/libexif-wasm/src}/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.jpg (100%) rename {src => packages/libexif-wasm/src}/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.json (100%) rename {src => packages/libexif-wasm/src}/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03_thumbnail.jpg (100%) rename {src => packages/libexif-wasm/src}/__utils__/DisposablePtr.ts (100%) rename {src => packages/libexif-wasm/src}/__utils__/getTestFixture.ts (100%) rename {src => packages/libexif-wasm/src}/__utils__/mapTypedArrayToDataView.ts (100%) rename {src => packages/libexif-wasm/src}/__utils__/serializeExifData.ts (100%) rename {src => packages/libexif-wasm/src}/__utils__/withDisposable.ts (100%) rename {src => packages/libexif-wasm/src}/constants.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifByteOrder.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifDataOption.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifDataType.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifFormat.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifIfd.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifLogCode.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifSupportLevel.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifTag.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifTagGps.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifTagUnified.test.ts (100%) rename {src => packages/libexif-wasm/src}/enums/ExifTagUnified.ts (100%) rename {src => packages/libexif-wasm/src}/enums/index.ts (100%) rename {src => packages/libexif-wasm/src}/index.ts (100%) rename {src => packages/libexif-wasm/src}/interfaces/dataSegment.ts (100%) rename {src => packages/libexif-wasm/src}/interfaces/emscripten.ts (100%) rename {src => packages/libexif-wasm/src}/interfaces/index.ts (100%) rename {src => packages/libexif-wasm/src}/interfaces/libexif.ts (100%) rename {src => packages/libexif-wasm/src}/interfaces/utils.ts (100%) rename {src => packages/libexif-wasm/src}/internal/emscripten.ts (100%) rename {src => packages/libexif-wasm/src}/internal/index.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifByteOrder.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifContent.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifData.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifDataType.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifEntry.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifFormat.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifGpsIfd.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifIfd.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifLoader.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifLog.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifMem.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifMnoteData.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifMnoteDataPriv.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifTag.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/exifUtils.ts (100%) rename {src => packages/libexif-wasm/src}/internal/libexif/index.ts (100%) rename {src => packages/libexif-wasm/src}/internal/main.ts (100%) rename {src => packages/libexif-wasm/src}/internal/module.ts (56%) rename {src => packages/libexif-wasm/src}/internal/stdlib.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifContent.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifContent.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifData.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifData.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifEntry.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifEntry.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifLoader.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifLoader.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifLog.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifLog.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifMem.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifMem.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifMnoteData.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifMnoteData.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifTag.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/ExifTag.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifByteOrder.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifByteOrder.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifFormat.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifFormat.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifIfd.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifIfd.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifSupportLevel.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifUtils.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/exifUtils.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/index.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/getDataAsTypedArray.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/getDataAsTypedArray.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/getExifDataFromReadableStream.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/getExifDataFromReadableStream.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/getExifTagTable.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/getExifTagTable.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/mapRationalFromObject.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/mapRationalFromObject.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/mapRationalToObject.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/mapRationalToObject.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/setDataFromTypedArray.test.ts (100%) rename {src => packages/libexif-wasm/src}/libexif/utils/setDataFromTypedArray.ts (100%) rename {src => packages/libexif-wasm/src}/structs/ExifContentStruct.ts (100%) rename {src => packages/libexif-wasm/src}/structs/ExifDataStruct.ts (100%) rename {src => packages/libexif-wasm/src}/structs/ExifEntryStruct.ts (100%) rename {src => packages/libexif-wasm/src}/structs/ExifRationalStruct.ts (100%) rename {src => packages/libexif-wasm/src}/structs/ExifSRationalStruct.ts (100%) rename {src => packages/libexif-wasm/src}/structs/index.ts (100%) rename {src => packages/libexif-wasm/src}/utils/BiMap.test.ts (100%) rename {src => packages/libexif-wasm/src}/utils/BiMap.ts (100%) rename {src => packages/libexif-wasm/src}/utils/UTF8ToStringOrNull.test.ts (100%) rename {src => packages/libexif-wasm/src}/utils/UTF8ToStringOrNull.ts (100%) rename {src => packages/libexif-wasm/src}/utils/assertEnumObjectKey.test.ts (100%) rename {src => packages/libexif-wasm/src}/utils/assertEnumObjectKey.ts (100%) rename {src => packages/libexif-wasm/src}/utils/getEnumKeyFromValue.test.ts (100%) rename {src => packages/libexif-wasm/src}/utils/getEnumKeyFromValue.ts (100%) rename {src => packages/libexif-wasm/src}/utils/getPtrArray.test.ts (100%) rename {src => packages/libexif-wasm/src}/utils/getPtrArray.ts (100%) rename {src => packages/libexif-wasm/src}/utils/index.ts (100%) rename {src => packages/libexif-wasm/src}/utils/isPropertyKey.ts (100%) rename {src => packages/libexif-wasm/src}/utils/isTypedArray.test.ts (100%) rename {src => packages/libexif-wasm/src}/utils/isTypedArray.ts (100%) rename {src => packages/libexif-wasm/src}/utils/mapEmbindEnumToBiMap.test.ts (100%) rename {src => packages/libexif-wasm/src}/utils/mapEmbindEnumToBiMap.ts (100%) rename {src => packages/libexif-wasm/src}/utils/mapEmbindEnumToObject.test.ts (100%) rename {src => packages/libexif-wasm/src}/utils/mapEmbindEnumToObject.ts (100%) rename tsconfig.app.json => packages/libexif-wasm/tsconfig.json (83%) create mode 100644 packages/libexif-wasm/tsdown.config.ts rename .clang-format => packages/wasm/.clang-format (100%) create mode 100644 packages/wasm/package.json rename {ports => packages/wasm/ports}/libexif.py (100%) rename scripts/compile.sh => packages/wasm/scripts/build.sh (89%) rename {scripts => packages/wasm/scripts}/exports/functions.txt (100%) rename {scripts => packages/wasm/scripts}/exports/runtime_methods.txt (100%) rename {module => packages/wasm/src}/enum.cpp (100%) rename {module => packages/wasm/src}/main.cpp (100%) delete mode 100644 tsconfig.json delete mode 100644 tsconfig.spec.json diff --git a/.changeset/strict-tools-jam.md b/.changeset/strict-tools-jam.md new file mode 100644 index 0000000..b9ccbbe --- /dev/null +++ b/.changeset/strict-tools-jam.md @@ -0,0 +1,5 @@ +--- +"@libexif-wasm/wasm": minor +--- + +chore: build with tsdown instead of tsc --build diff --git a/.changeset/wacky-wasps-clap.md b/.changeset/wacky-wasps-clap.md new file mode 100644 index 0000000..c31d68e --- /dev/null +++ b/.changeset/wacky-wasps-clap.md @@ -0,0 +1,5 @@ +--- +"@libexif-wasm/wasm": minor +--- + +feat: move emscripten-generated code to @libexif-wasm/wasm package diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 254982e..61f30eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,8 +30,8 @@ jobs: - name: Install dependencies run: pnpm install - - name: Compile code - run: pnpm run compile + - name: Build + run: pnpm run build - name: Check code formatting with Oxfmt run: pnpm run format:check @@ -39,8 +39,5 @@ jobs: - name: Lint code with Oxlint run: pnpm run lint - - name: Build - run: pnpm run build - - name: Run tests run: pnpm run test diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 64ce434..7905328 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,9 +38,6 @@ jobs: - name: Install dependencies run: pnpm install - - name: Compile code - run: pnpm run compile - - name: Build run: pnpm run build diff --git a/package.json b/package.json index 43e6028..95642ae 100644 --- a/package.json +++ b/package.json @@ -1,85 +1,11 @@ { "name": "libexif-wasm", - "version": "0.5.6", - "description": "JavaScript bindings for libexif compiled to WebAssembly", - "keywords": [ - "C", - "emscripten", - "exif", - "libexif", - "libexif-wasm", - "metadata", - "wasm", - "webassembly" - ], - "homepage": "https://github.com/jeremy-code/libexif-wasm#readme", - "bugs": "https://github.com/jeremy-code/libexif-wasm/issues", - "license": "LGPL-2.1-or-later", - "author": "Jeremy Nguyen (https://jeremy.ng)", - "repository": "github:jeremy-code/libexif-wasm", - "files": [ - "dist" - ], + "private": true, "type": "module", - "sideEffects": [ - "./dist/output/libexif.wasm" - ], - "exports": { - ".": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "./enums": { - "types": "./dist/enums/index.d.ts", - "default": "./dist/enums/index.js" - }, - "./interfaces": { - "types": "./dist/interfaces/index.d.ts", - "default": "./dist/interfaces/index.js" - }, - "./internal": { - "types": "./dist/internal/index.d.ts", - "default": "./dist/internal/index.js" - }, - "./internal/libexif": { - "types": "./dist/internal/libexif/index.d.ts", - "default": "./dist/internal/libexif/index.js" - }, - "./libexif": { - "types": "./dist/libexif/index.d.ts", - "default": "./dist/libexif/index.js" - }, - "./structs": { - "types": "./dist/structs/index.d.ts", - "default": "./dist/structs/index.js" - }, - "./utils": { - "types": "./dist/utils/index.d.ts", - "default": "./dist/utils/index.js" - }, - "./*": { - "types": "./dist/*.d.ts", - "default": "./dist/*.js" - }, - "./*.js": { - "types": "./dist/*.d.ts", - "default": "./dist/*.js" - }, - "./output/libexif.js": { - "node": "./dist/output/libexif.node.js", - "worker": "./dist/output/libexif.worker.js", - "web": "./dist/output/libexif.web.js", - "types": "./dist/output/libexif.d.ts", - "default": "./dist/output/libexif.web.js" - }, - "./output/libexif.wasm": "./dist/output/libexif.wasm", - "./package.json": "./package.json" - }, "scripts": { "prepare": "husky", - "build": "tsc --build", - "compile": "./scripts/compile.sh", - "typecheck": "tsc --noEmit", + "build": "pnpm -r run build", + "typecheck": "pnpm -r run typecheck", "test": "vitest --run", "test:watch": "vitest", "lint": "oxlint", @@ -89,12 +15,13 @@ "ci:publish": "./scripts/publish.sh" }, "devDependencies": { + "@arethetypeswrong/core": "^0.18.5", "@changesets/cli": "^3.0.3", - "@types/node": "^24.13.3", "husky": "^9.1.7", "lint-staged": "^17.6.0", "oxfmt": "^0.74.0", "oxlint": "^1.89.0", + "publint": "^0.3.25", "typescript": "^5.9.3", "vitest": "^5.0.5" }, @@ -109,8 +36,5 @@ "version": "v26.12.1", "onFail": "download" } - }, - "engines": { - "node": ">=16.0.0" } } diff --git a/CHANGELOG.md b/packages/libexif-wasm/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to packages/libexif-wasm/CHANGELOG.md diff --git a/README.md b/packages/libexif-wasm/README.md similarity index 86% rename from README.md rename to packages/libexif-wasm/README.md index 83361a2..6e5ef8a 100644 --- a/README.md +++ b/packages/libexif-wasm/README.md @@ -8,7 +8,7 @@ [npm-package]: https://www.npmjs.com/package/libexif-wasm [npm-version-badge]: https://img.shields.io/npm/v/libexif-wasm -[![GitHub Actions][github-actions-badge]][github-actions] [![License][license-badge]](LICENSE) [![NPM version][npm-version-badge]][npm-package] +[![GitHub Actions][github-actions-badge]][github-actions] [![License][license-badge]](../../LICENSE) [![NPM version][npm-version-badge]][npm-package] This library is a WebAssembly port of the [libexif](https://libexif.github.io/) C library, which is used for parsing, editing, and saving EXIF metadata in images. It intends to be a faithful port of the original library and provide all of its functions and features. @@ -54,17 +54,17 @@ const exifIfdGps = exifData.ifd[ExifIfd.GPS]; // Get the GPS IFD exifData.free(); // Free the memory used by the ExifData instance ``` -For more examples, see [docs/usage](docs/usage): +For more examples, see [docs/usage](./docs/usage): -1. [Get all Exif entries](docs/usage/get-all-entries.md) -2. [Byte order](docs/usage/byte-order.md) -3. [Compatibility](docs/usage/compatibility.md) -4. [Data](docs/usage/data.md) -5. [Resource Management](docs/usage/resource-management.md) -6. [Tags](docs/usage/tags.md) +1. [Get all Exif entries](./docs/usage/get-all-entries.md) +2. [Byte order](./docs/usage/byte-order.md) +3. [Compatibility](./docs/usage/compatibility.md) +4. [Data](./docs/usage/data.md) +5. [Resource Management](./docs/usage/resource-management.md) +6. [Tags](./docs/usage/tags.md) ## License -This project is licensed under the [GNU Lesser General Public License v2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) - see the [LICENSE](LICENSE) file for details. +This project is licensed under the [GNU Lesser General Public License v2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) - see the [LICENSE](../../LICENSE) file for details. This project makes heavy use of the C library [libexif](https://libexif.github.io/), which is licensed under the GNU Lesser General Public License v2.1. For more information, see [libexif/libexif/COPYING](https://github.com/libexif/libexif/blob/master/COPYING) in their GitHub repository. diff --git a/docs/usage/byte-order.md b/packages/libexif-wasm/docs/usage/byte-order.md similarity index 100% rename from docs/usage/byte-order.md rename to packages/libexif-wasm/docs/usage/byte-order.md diff --git a/docs/usage/compatibility.md b/packages/libexif-wasm/docs/usage/compatibility.md similarity index 100% rename from docs/usage/compatibility.md rename to packages/libexif-wasm/docs/usage/compatibility.md diff --git a/docs/usage/data.md b/packages/libexif-wasm/docs/usage/data.md similarity index 100% rename from docs/usage/data.md rename to packages/libexif-wasm/docs/usage/data.md diff --git a/docs/usage/get-all-entries.md b/packages/libexif-wasm/docs/usage/get-all-entries.md similarity index 100% rename from docs/usage/get-all-entries.md rename to packages/libexif-wasm/docs/usage/get-all-entries.md diff --git a/docs/usage/resource-management.md b/packages/libexif-wasm/docs/usage/resource-management.md similarity index 100% rename from docs/usage/resource-management.md rename to packages/libexif-wasm/docs/usage/resource-management.md diff --git a/docs/usage/tags.md b/packages/libexif-wasm/docs/usage/tags.md similarity index 100% rename from docs/usage/tags.md rename to packages/libexif-wasm/docs/usage/tags.md diff --git a/packages/libexif-wasm/package.json b/packages/libexif-wasm/package.json new file mode 100644 index 0000000..061f88a --- /dev/null +++ b/packages/libexif-wasm/package.json @@ -0,0 +1,82 @@ +{ + "name": "libexif-wasm", + "version": "0.5.6", + "description": "JavaScript bindings for libexif compiled to WebAssembly", + "keywords": [ + "C", + "emscripten", + "exif", + "libexif", + "libexif-wasm", + "metadata", + "wasm", + "webassembly" + ], + "homepage": "https://github.com/jeremy-code/libexif-wasm#readme", + "bugs": "https://github.com/jeremy-code/libexif-wasm/issues", + "license": "LGPL-2.1-or-later", + "author": "Jeremy Nguyen (https://jeremy.ng)", + "repository": "git+https://github.com/jeremy-code/libexif-wasm.git", + "files": [ + "dist" + ], + "type": "module", + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./enums": { + "types": "./dist/enums/index.d.ts", + "default": "./dist/enums/index.js" + }, + "./interfaces": { + "types": "./dist/interfaces/index.d.ts", + "default": "./dist/interfaces/index.js" + }, + "./internal": { + "types": "./dist/internal/index.d.ts", + "default": "./dist/internal/index.js" + }, + "./internal/libexif": { + "types": "./dist/internal/libexif/index.d.ts", + "default": "./dist/internal/libexif/index.js" + }, + "./libexif": { + "types": "./dist/libexif/index.d.ts", + "default": "./dist/libexif/index.js" + }, + "./structs": { + "types": "./dist/structs/index.d.ts", + "default": "./dist/structs/index.js" + }, + "./utils": { + "types": "./dist/utils/index.d.ts", + "default": "./dist/utils/index.js" + }, + "./*": { + "types": "./dist/*.d.ts", + "default": "./dist/*.js" + }, + "./*.js": { + "types": "./dist/*.d.ts", + "default": "./dist/*.js" + }, + "./package.json": "./package.json" + }, + "scripts": { + "build": "tsdown", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@libexif-wasm/wasm": "workspace:*" + }, + "devDependencies": { + "@types/node": "^24.13.3", + "tsdown": "^0.23.2" + }, + "engines": { + "node": ">=16.0.0" + } +} diff --git a/src/__fixtures__/README.md b/packages/libexif-wasm/src/__fixtures__/README.md similarity index 100% rename from src/__fixtures__/README.md rename to packages/libexif-wasm/src/__fixtures__/README.md diff --git a/src/__fixtures__/Sumo_Museum/Sumo_Museum.jpg b/packages/libexif-wasm/src/__fixtures__/Sumo_Museum/Sumo_Museum.jpg similarity index 100% rename from src/__fixtures__/Sumo_Museum/Sumo_Museum.jpg rename to packages/libexif-wasm/src/__fixtures__/Sumo_Museum/Sumo_Museum.jpg diff --git a/src/__fixtures__/Sumo_Museum/Sumo_Museum.json b/packages/libexif-wasm/src/__fixtures__/Sumo_Museum/Sumo_Museum.json similarity index 100% rename from src/__fixtures__/Sumo_Museum/Sumo_Museum.json rename to packages/libexif-wasm/src/__fixtures__/Sumo_Museum/Sumo_Museum.json diff --git a/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.jpg b/packages/libexif-wasm/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.jpg similarity index 100% rename from src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.jpg rename to packages/libexif-wasm/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.jpg diff --git a/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.json b/packages/libexif-wasm/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.json similarity index 100% rename from src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.json rename to packages/libexif-wasm/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03.json diff --git a/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03_thumbnail.jpg b/packages/libexif-wasm/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03_thumbnail.jpg similarity index 100% rename from src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03_thumbnail.jpg rename to packages/libexif-wasm/src/__fixtures__/T-45A_Goshawk_03/T-45A_Goshawk_03_thumbnail.jpg diff --git a/src/__utils__/DisposablePtr.ts b/packages/libexif-wasm/src/__utils__/DisposablePtr.ts similarity index 100% rename from src/__utils__/DisposablePtr.ts rename to packages/libexif-wasm/src/__utils__/DisposablePtr.ts diff --git a/src/__utils__/getTestFixture.ts b/packages/libexif-wasm/src/__utils__/getTestFixture.ts similarity index 100% rename from src/__utils__/getTestFixture.ts rename to packages/libexif-wasm/src/__utils__/getTestFixture.ts diff --git a/src/__utils__/mapTypedArrayToDataView.ts b/packages/libexif-wasm/src/__utils__/mapTypedArrayToDataView.ts similarity index 100% rename from src/__utils__/mapTypedArrayToDataView.ts rename to packages/libexif-wasm/src/__utils__/mapTypedArrayToDataView.ts diff --git a/src/__utils__/serializeExifData.ts b/packages/libexif-wasm/src/__utils__/serializeExifData.ts similarity index 100% rename from src/__utils__/serializeExifData.ts rename to packages/libexif-wasm/src/__utils__/serializeExifData.ts diff --git a/src/__utils__/withDisposable.ts b/packages/libexif-wasm/src/__utils__/withDisposable.ts similarity index 100% rename from src/__utils__/withDisposable.ts rename to packages/libexif-wasm/src/__utils__/withDisposable.ts diff --git a/src/constants.ts b/packages/libexif-wasm/src/constants.ts similarity index 100% rename from src/constants.ts rename to packages/libexif-wasm/src/constants.ts diff --git a/src/enums/ExifByteOrder.ts b/packages/libexif-wasm/src/enums/ExifByteOrder.ts similarity index 100% rename from src/enums/ExifByteOrder.ts rename to packages/libexif-wasm/src/enums/ExifByteOrder.ts diff --git a/src/enums/ExifDataOption.ts b/packages/libexif-wasm/src/enums/ExifDataOption.ts similarity index 100% rename from src/enums/ExifDataOption.ts rename to packages/libexif-wasm/src/enums/ExifDataOption.ts diff --git a/src/enums/ExifDataType.ts b/packages/libexif-wasm/src/enums/ExifDataType.ts similarity index 100% rename from src/enums/ExifDataType.ts rename to packages/libexif-wasm/src/enums/ExifDataType.ts diff --git a/src/enums/ExifFormat.ts b/packages/libexif-wasm/src/enums/ExifFormat.ts similarity index 100% rename from src/enums/ExifFormat.ts rename to packages/libexif-wasm/src/enums/ExifFormat.ts diff --git a/src/enums/ExifIfd.ts b/packages/libexif-wasm/src/enums/ExifIfd.ts similarity index 100% rename from src/enums/ExifIfd.ts rename to packages/libexif-wasm/src/enums/ExifIfd.ts diff --git a/src/enums/ExifLogCode.ts b/packages/libexif-wasm/src/enums/ExifLogCode.ts similarity index 100% rename from src/enums/ExifLogCode.ts rename to packages/libexif-wasm/src/enums/ExifLogCode.ts diff --git a/src/enums/ExifSupportLevel.ts b/packages/libexif-wasm/src/enums/ExifSupportLevel.ts similarity index 100% rename from src/enums/ExifSupportLevel.ts rename to packages/libexif-wasm/src/enums/ExifSupportLevel.ts diff --git a/src/enums/ExifTag.ts b/packages/libexif-wasm/src/enums/ExifTag.ts similarity index 100% rename from src/enums/ExifTag.ts rename to packages/libexif-wasm/src/enums/ExifTag.ts diff --git a/src/enums/ExifTagGps.ts b/packages/libexif-wasm/src/enums/ExifTagGps.ts similarity index 100% rename from src/enums/ExifTagGps.ts rename to packages/libexif-wasm/src/enums/ExifTagGps.ts diff --git a/src/enums/ExifTagUnified.test.ts b/packages/libexif-wasm/src/enums/ExifTagUnified.test.ts similarity index 100% rename from src/enums/ExifTagUnified.test.ts rename to packages/libexif-wasm/src/enums/ExifTagUnified.test.ts diff --git a/src/enums/ExifTagUnified.ts b/packages/libexif-wasm/src/enums/ExifTagUnified.ts similarity index 100% rename from src/enums/ExifTagUnified.ts rename to packages/libexif-wasm/src/enums/ExifTagUnified.ts diff --git a/src/enums/index.ts b/packages/libexif-wasm/src/enums/index.ts similarity index 100% rename from src/enums/index.ts rename to packages/libexif-wasm/src/enums/index.ts diff --git a/src/index.ts b/packages/libexif-wasm/src/index.ts similarity index 100% rename from src/index.ts rename to packages/libexif-wasm/src/index.ts diff --git a/src/interfaces/dataSegment.ts b/packages/libexif-wasm/src/interfaces/dataSegment.ts similarity index 100% rename from src/interfaces/dataSegment.ts rename to packages/libexif-wasm/src/interfaces/dataSegment.ts diff --git a/src/interfaces/emscripten.ts b/packages/libexif-wasm/src/interfaces/emscripten.ts similarity index 100% rename from src/interfaces/emscripten.ts rename to packages/libexif-wasm/src/interfaces/emscripten.ts diff --git a/src/interfaces/index.ts b/packages/libexif-wasm/src/interfaces/index.ts similarity index 100% rename from src/interfaces/index.ts rename to packages/libexif-wasm/src/interfaces/index.ts diff --git a/src/interfaces/libexif.ts b/packages/libexif-wasm/src/interfaces/libexif.ts similarity index 100% rename from src/interfaces/libexif.ts rename to packages/libexif-wasm/src/interfaces/libexif.ts diff --git a/src/interfaces/utils.ts b/packages/libexif-wasm/src/interfaces/utils.ts similarity index 100% rename from src/interfaces/utils.ts rename to packages/libexif-wasm/src/interfaces/utils.ts diff --git a/src/internal/emscripten.ts b/packages/libexif-wasm/src/internal/emscripten.ts similarity index 100% rename from src/internal/emscripten.ts rename to packages/libexif-wasm/src/internal/emscripten.ts diff --git a/src/internal/index.ts b/packages/libexif-wasm/src/internal/index.ts similarity index 100% rename from src/internal/index.ts rename to packages/libexif-wasm/src/internal/index.ts diff --git a/src/internal/libexif/exifByteOrder.ts b/packages/libexif-wasm/src/internal/libexif/exifByteOrder.ts similarity index 100% rename from src/internal/libexif/exifByteOrder.ts rename to packages/libexif-wasm/src/internal/libexif/exifByteOrder.ts diff --git a/src/internal/libexif/exifContent.ts b/packages/libexif-wasm/src/internal/libexif/exifContent.ts similarity index 100% rename from src/internal/libexif/exifContent.ts rename to packages/libexif-wasm/src/internal/libexif/exifContent.ts diff --git a/src/internal/libexif/exifData.ts b/packages/libexif-wasm/src/internal/libexif/exifData.ts similarity index 100% rename from src/internal/libexif/exifData.ts rename to packages/libexif-wasm/src/internal/libexif/exifData.ts diff --git a/src/internal/libexif/exifDataType.ts b/packages/libexif-wasm/src/internal/libexif/exifDataType.ts similarity index 100% rename from src/internal/libexif/exifDataType.ts rename to packages/libexif-wasm/src/internal/libexif/exifDataType.ts diff --git a/src/internal/libexif/exifEntry.ts b/packages/libexif-wasm/src/internal/libexif/exifEntry.ts similarity index 100% rename from src/internal/libexif/exifEntry.ts rename to packages/libexif-wasm/src/internal/libexif/exifEntry.ts diff --git a/src/internal/libexif/exifFormat.ts b/packages/libexif-wasm/src/internal/libexif/exifFormat.ts similarity index 100% rename from src/internal/libexif/exifFormat.ts rename to packages/libexif-wasm/src/internal/libexif/exifFormat.ts diff --git a/src/internal/libexif/exifGpsIfd.ts b/packages/libexif-wasm/src/internal/libexif/exifGpsIfd.ts similarity index 100% rename from src/internal/libexif/exifGpsIfd.ts rename to packages/libexif-wasm/src/internal/libexif/exifGpsIfd.ts diff --git a/src/internal/libexif/exifIfd.ts b/packages/libexif-wasm/src/internal/libexif/exifIfd.ts similarity index 100% rename from src/internal/libexif/exifIfd.ts rename to packages/libexif-wasm/src/internal/libexif/exifIfd.ts diff --git a/src/internal/libexif/exifLoader.ts b/packages/libexif-wasm/src/internal/libexif/exifLoader.ts similarity index 100% rename from src/internal/libexif/exifLoader.ts rename to packages/libexif-wasm/src/internal/libexif/exifLoader.ts diff --git a/src/internal/libexif/exifLog.ts b/packages/libexif-wasm/src/internal/libexif/exifLog.ts similarity index 100% rename from src/internal/libexif/exifLog.ts rename to packages/libexif-wasm/src/internal/libexif/exifLog.ts diff --git a/src/internal/libexif/exifMem.ts b/packages/libexif-wasm/src/internal/libexif/exifMem.ts similarity index 100% rename from src/internal/libexif/exifMem.ts rename to packages/libexif-wasm/src/internal/libexif/exifMem.ts diff --git a/src/internal/libexif/exifMnoteData.ts b/packages/libexif-wasm/src/internal/libexif/exifMnoteData.ts similarity index 100% rename from src/internal/libexif/exifMnoteData.ts rename to packages/libexif-wasm/src/internal/libexif/exifMnoteData.ts diff --git a/src/internal/libexif/exifMnoteDataPriv.ts b/packages/libexif-wasm/src/internal/libexif/exifMnoteDataPriv.ts similarity index 100% rename from src/internal/libexif/exifMnoteDataPriv.ts rename to packages/libexif-wasm/src/internal/libexif/exifMnoteDataPriv.ts diff --git a/src/internal/libexif/exifTag.ts b/packages/libexif-wasm/src/internal/libexif/exifTag.ts similarity index 100% rename from src/internal/libexif/exifTag.ts rename to packages/libexif-wasm/src/internal/libexif/exifTag.ts diff --git a/src/internal/libexif/exifUtils.ts b/packages/libexif-wasm/src/internal/libexif/exifUtils.ts similarity index 100% rename from src/internal/libexif/exifUtils.ts rename to packages/libexif-wasm/src/internal/libexif/exifUtils.ts diff --git a/src/internal/libexif/index.ts b/packages/libexif-wasm/src/internal/libexif/index.ts similarity index 100% rename from src/internal/libexif/index.ts rename to packages/libexif-wasm/src/internal/libexif/index.ts diff --git a/src/internal/main.ts b/packages/libexif-wasm/src/internal/main.ts similarity index 100% rename from src/internal/main.ts rename to packages/libexif-wasm/src/internal/main.ts diff --git a/src/internal/module.ts b/packages/libexif-wasm/src/internal/module.ts similarity index 56% rename from src/internal/module.ts rename to packages/libexif-wasm/src/internal/module.ts index c1c53f8..8e927e5 100644 --- a/src/internal/module.ts +++ b/packages/libexif-wasm/src/internal/module.ts @@ -1,4 +1,4 @@ -import libexifFactory from "libexif-wasm/output/libexif.js"; +import libexifFactory from "@libexif-wasm/wasm/libexif.js"; const libexif = await libexifFactory(); diff --git a/src/internal/stdlib.ts b/packages/libexif-wasm/src/internal/stdlib.ts similarity index 100% rename from src/internal/stdlib.ts rename to packages/libexif-wasm/src/internal/stdlib.ts diff --git a/src/libexif/ExifContent.test.ts b/packages/libexif-wasm/src/libexif/ExifContent.test.ts similarity index 100% rename from src/libexif/ExifContent.test.ts rename to packages/libexif-wasm/src/libexif/ExifContent.test.ts diff --git a/src/libexif/ExifContent.ts b/packages/libexif-wasm/src/libexif/ExifContent.ts similarity index 100% rename from src/libexif/ExifContent.ts rename to packages/libexif-wasm/src/libexif/ExifContent.ts diff --git a/src/libexif/ExifData.test.ts b/packages/libexif-wasm/src/libexif/ExifData.test.ts similarity index 100% rename from src/libexif/ExifData.test.ts rename to packages/libexif-wasm/src/libexif/ExifData.test.ts diff --git a/src/libexif/ExifData.ts b/packages/libexif-wasm/src/libexif/ExifData.ts similarity index 100% rename from src/libexif/ExifData.ts rename to packages/libexif-wasm/src/libexif/ExifData.ts diff --git a/src/libexif/ExifEntry.test.ts b/packages/libexif-wasm/src/libexif/ExifEntry.test.ts similarity index 100% rename from src/libexif/ExifEntry.test.ts rename to packages/libexif-wasm/src/libexif/ExifEntry.test.ts diff --git a/src/libexif/ExifEntry.ts b/packages/libexif-wasm/src/libexif/ExifEntry.ts similarity index 100% rename from src/libexif/ExifEntry.ts rename to packages/libexif-wasm/src/libexif/ExifEntry.ts diff --git a/src/libexif/ExifLoader.test.ts b/packages/libexif-wasm/src/libexif/ExifLoader.test.ts similarity index 100% rename from src/libexif/ExifLoader.test.ts rename to packages/libexif-wasm/src/libexif/ExifLoader.test.ts diff --git a/src/libexif/ExifLoader.ts b/packages/libexif-wasm/src/libexif/ExifLoader.ts similarity index 100% rename from src/libexif/ExifLoader.ts rename to packages/libexif-wasm/src/libexif/ExifLoader.ts diff --git a/src/libexif/ExifLog.test.ts b/packages/libexif-wasm/src/libexif/ExifLog.test.ts similarity index 100% rename from src/libexif/ExifLog.test.ts rename to packages/libexif-wasm/src/libexif/ExifLog.test.ts diff --git a/src/libexif/ExifLog.ts b/packages/libexif-wasm/src/libexif/ExifLog.ts similarity index 100% rename from src/libexif/ExifLog.ts rename to packages/libexif-wasm/src/libexif/ExifLog.ts diff --git a/src/libexif/ExifMem.test.ts b/packages/libexif-wasm/src/libexif/ExifMem.test.ts similarity index 100% rename from src/libexif/ExifMem.test.ts rename to packages/libexif-wasm/src/libexif/ExifMem.test.ts diff --git a/src/libexif/ExifMem.ts b/packages/libexif-wasm/src/libexif/ExifMem.ts similarity index 100% rename from src/libexif/ExifMem.ts rename to packages/libexif-wasm/src/libexif/ExifMem.ts diff --git a/src/libexif/ExifMnoteData.test.ts b/packages/libexif-wasm/src/libexif/ExifMnoteData.test.ts similarity index 100% rename from src/libexif/ExifMnoteData.test.ts rename to packages/libexif-wasm/src/libexif/ExifMnoteData.test.ts diff --git a/src/libexif/ExifMnoteData.ts b/packages/libexif-wasm/src/libexif/ExifMnoteData.ts similarity index 100% rename from src/libexif/ExifMnoteData.ts rename to packages/libexif-wasm/src/libexif/ExifMnoteData.ts diff --git a/src/libexif/ExifTag.test.ts b/packages/libexif-wasm/src/libexif/ExifTag.test.ts similarity index 100% rename from src/libexif/ExifTag.test.ts rename to packages/libexif-wasm/src/libexif/ExifTag.test.ts diff --git a/src/libexif/ExifTag.ts b/packages/libexif-wasm/src/libexif/ExifTag.ts similarity index 100% rename from src/libexif/ExifTag.ts rename to packages/libexif-wasm/src/libexif/ExifTag.ts diff --git a/src/libexif/exifByteOrder.test.ts b/packages/libexif-wasm/src/libexif/exifByteOrder.test.ts similarity index 100% rename from src/libexif/exifByteOrder.test.ts rename to packages/libexif-wasm/src/libexif/exifByteOrder.test.ts diff --git a/src/libexif/exifByteOrder.ts b/packages/libexif-wasm/src/libexif/exifByteOrder.ts similarity index 100% rename from src/libexif/exifByteOrder.ts rename to packages/libexif-wasm/src/libexif/exifByteOrder.ts diff --git a/src/libexif/exifFormat.test.ts b/packages/libexif-wasm/src/libexif/exifFormat.test.ts similarity index 100% rename from src/libexif/exifFormat.test.ts rename to packages/libexif-wasm/src/libexif/exifFormat.test.ts diff --git a/src/libexif/exifFormat.ts b/packages/libexif-wasm/src/libexif/exifFormat.ts similarity index 100% rename from src/libexif/exifFormat.ts rename to packages/libexif-wasm/src/libexif/exifFormat.ts diff --git a/src/libexif/exifIfd.test.ts b/packages/libexif-wasm/src/libexif/exifIfd.test.ts similarity index 100% rename from src/libexif/exifIfd.test.ts rename to packages/libexif-wasm/src/libexif/exifIfd.test.ts diff --git a/src/libexif/exifIfd.ts b/packages/libexif-wasm/src/libexif/exifIfd.ts similarity index 100% rename from src/libexif/exifIfd.ts rename to packages/libexif-wasm/src/libexif/exifIfd.ts diff --git a/src/libexif/exifSupportLevel.ts b/packages/libexif-wasm/src/libexif/exifSupportLevel.ts similarity index 100% rename from src/libexif/exifSupportLevel.ts rename to packages/libexif-wasm/src/libexif/exifSupportLevel.ts diff --git a/src/libexif/exifUtils.test.ts b/packages/libexif-wasm/src/libexif/exifUtils.test.ts similarity index 100% rename from src/libexif/exifUtils.test.ts rename to packages/libexif-wasm/src/libexif/exifUtils.test.ts diff --git a/src/libexif/exifUtils.ts b/packages/libexif-wasm/src/libexif/exifUtils.ts similarity index 100% rename from src/libexif/exifUtils.ts rename to packages/libexif-wasm/src/libexif/exifUtils.ts diff --git a/src/libexif/index.ts b/packages/libexif-wasm/src/libexif/index.ts similarity index 100% rename from src/libexif/index.ts rename to packages/libexif-wasm/src/libexif/index.ts diff --git a/src/libexif/utils/getDataAsTypedArray.test.ts b/packages/libexif-wasm/src/libexif/utils/getDataAsTypedArray.test.ts similarity index 100% rename from src/libexif/utils/getDataAsTypedArray.test.ts rename to packages/libexif-wasm/src/libexif/utils/getDataAsTypedArray.test.ts diff --git a/src/libexif/utils/getDataAsTypedArray.ts b/packages/libexif-wasm/src/libexif/utils/getDataAsTypedArray.ts similarity index 100% rename from src/libexif/utils/getDataAsTypedArray.ts rename to packages/libexif-wasm/src/libexif/utils/getDataAsTypedArray.ts diff --git a/src/libexif/utils/getExifDataFromReadableStream.test.ts b/packages/libexif-wasm/src/libexif/utils/getExifDataFromReadableStream.test.ts similarity index 100% rename from src/libexif/utils/getExifDataFromReadableStream.test.ts rename to packages/libexif-wasm/src/libexif/utils/getExifDataFromReadableStream.test.ts diff --git a/src/libexif/utils/getExifDataFromReadableStream.ts b/packages/libexif-wasm/src/libexif/utils/getExifDataFromReadableStream.ts similarity index 100% rename from src/libexif/utils/getExifDataFromReadableStream.ts rename to packages/libexif-wasm/src/libexif/utils/getExifDataFromReadableStream.ts diff --git a/src/libexif/utils/getExifTagTable.test.ts b/packages/libexif-wasm/src/libexif/utils/getExifTagTable.test.ts similarity index 100% rename from src/libexif/utils/getExifTagTable.test.ts rename to packages/libexif-wasm/src/libexif/utils/getExifTagTable.test.ts diff --git a/src/libexif/utils/getExifTagTable.ts b/packages/libexif-wasm/src/libexif/utils/getExifTagTable.ts similarity index 100% rename from src/libexif/utils/getExifTagTable.ts rename to packages/libexif-wasm/src/libexif/utils/getExifTagTable.ts diff --git a/src/libexif/utils/mapRationalFromObject.test.ts b/packages/libexif-wasm/src/libexif/utils/mapRationalFromObject.test.ts similarity index 100% rename from src/libexif/utils/mapRationalFromObject.test.ts rename to packages/libexif-wasm/src/libexif/utils/mapRationalFromObject.test.ts diff --git a/src/libexif/utils/mapRationalFromObject.ts b/packages/libexif-wasm/src/libexif/utils/mapRationalFromObject.ts similarity index 100% rename from src/libexif/utils/mapRationalFromObject.ts rename to packages/libexif-wasm/src/libexif/utils/mapRationalFromObject.ts diff --git a/src/libexif/utils/mapRationalToObject.test.ts b/packages/libexif-wasm/src/libexif/utils/mapRationalToObject.test.ts similarity index 100% rename from src/libexif/utils/mapRationalToObject.test.ts rename to packages/libexif-wasm/src/libexif/utils/mapRationalToObject.test.ts diff --git a/src/libexif/utils/mapRationalToObject.ts b/packages/libexif-wasm/src/libexif/utils/mapRationalToObject.ts similarity index 100% rename from src/libexif/utils/mapRationalToObject.ts rename to packages/libexif-wasm/src/libexif/utils/mapRationalToObject.ts diff --git a/src/libexif/utils/setDataFromTypedArray.test.ts b/packages/libexif-wasm/src/libexif/utils/setDataFromTypedArray.test.ts similarity index 100% rename from src/libexif/utils/setDataFromTypedArray.test.ts rename to packages/libexif-wasm/src/libexif/utils/setDataFromTypedArray.test.ts diff --git a/src/libexif/utils/setDataFromTypedArray.ts b/packages/libexif-wasm/src/libexif/utils/setDataFromTypedArray.ts similarity index 100% rename from src/libexif/utils/setDataFromTypedArray.ts rename to packages/libexif-wasm/src/libexif/utils/setDataFromTypedArray.ts diff --git a/src/structs/ExifContentStruct.ts b/packages/libexif-wasm/src/structs/ExifContentStruct.ts similarity index 100% rename from src/structs/ExifContentStruct.ts rename to packages/libexif-wasm/src/structs/ExifContentStruct.ts diff --git a/src/structs/ExifDataStruct.ts b/packages/libexif-wasm/src/structs/ExifDataStruct.ts similarity index 100% rename from src/structs/ExifDataStruct.ts rename to packages/libexif-wasm/src/structs/ExifDataStruct.ts diff --git a/src/structs/ExifEntryStruct.ts b/packages/libexif-wasm/src/structs/ExifEntryStruct.ts similarity index 100% rename from src/structs/ExifEntryStruct.ts rename to packages/libexif-wasm/src/structs/ExifEntryStruct.ts diff --git a/src/structs/ExifRationalStruct.ts b/packages/libexif-wasm/src/structs/ExifRationalStruct.ts similarity index 100% rename from src/structs/ExifRationalStruct.ts rename to packages/libexif-wasm/src/structs/ExifRationalStruct.ts diff --git a/src/structs/ExifSRationalStruct.ts b/packages/libexif-wasm/src/structs/ExifSRationalStruct.ts similarity index 100% rename from src/structs/ExifSRationalStruct.ts rename to packages/libexif-wasm/src/structs/ExifSRationalStruct.ts diff --git a/src/structs/index.ts b/packages/libexif-wasm/src/structs/index.ts similarity index 100% rename from src/structs/index.ts rename to packages/libexif-wasm/src/structs/index.ts diff --git a/src/utils/BiMap.test.ts b/packages/libexif-wasm/src/utils/BiMap.test.ts similarity index 100% rename from src/utils/BiMap.test.ts rename to packages/libexif-wasm/src/utils/BiMap.test.ts diff --git a/src/utils/BiMap.ts b/packages/libexif-wasm/src/utils/BiMap.ts similarity index 100% rename from src/utils/BiMap.ts rename to packages/libexif-wasm/src/utils/BiMap.ts diff --git a/src/utils/UTF8ToStringOrNull.test.ts b/packages/libexif-wasm/src/utils/UTF8ToStringOrNull.test.ts similarity index 100% rename from src/utils/UTF8ToStringOrNull.test.ts rename to packages/libexif-wasm/src/utils/UTF8ToStringOrNull.test.ts diff --git a/src/utils/UTF8ToStringOrNull.ts b/packages/libexif-wasm/src/utils/UTF8ToStringOrNull.ts similarity index 100% rename from src/utils/UTF8ToStringOrNull.ts rename to packages/libexif-wasm/src/utils/UTF8ToStringOrNull.ts diff --git a/src/utils/assertEnumObjectKey.test.ts b/packages/libexif-wasm/src/utils/assertEnumObjectKey.test.ts similarity index 100% rename from src/utils/assertEnumObjectKey.test.ts rename to packages/libexif-wasm/src/utils/assertEnumObjectKey.test.ts diff --git a/src/utils/assertEnumObjectKey.ts b/packages/libexif-wasm/src/utils/assertEnumObjectKey.ts similarity index 100% rename from src/utils/assertEnumObjectKey.ts rename to packages/libexif-wasm/src/utils/assertEnumObjectKey.ts diff --git a/src/utils/getEnumKeyFromValue.test.ts b/packages/libexif-wasm/src/utils/getEnumKeyFromValue.test.ts similarity index 100% rename from src/utils/getEnumKeyFromValue.test.ts rename to packages/libexif-wasm/src/utils/getEnumKeyFromValue.test.ts diff --git a/src/utils/getEnumKeyFromValue.ts b/packages/libexif-wasm/src/utils/getEnumKeyFromValue.ts similarity index 100% rename from src/utils/getEnumKeyFromValue.ts rename to packages/libexif-wasm/src/utils/getEnumKeyFromValue.ts diff --git a/src/utils/getPtrArray.test.ts b/packages/libexif-wasm/src/utils/getPtrArray.test.ts similarity index 100% rename from src/utils/getPtrArray.test.ts rename to packages/libexif-wasm/src/utils/getPtrArray.test.ts diff --git a/src/utils/getPtrArray.ts b/packages/libexif-wasm/src/utils/getPtrArray.ts similarity index 100% rename from src/utils/getPtrArray.ts rename to packages/libexif-wasm/src/utils/getPtrArray.ts diff --git a/src/utils/index.ts b/packages/libexif-wasm/src/utils/index.ts similarity index 100% rename from src/utils/index.ts rename to packages/libexif-wasm/src/utils/index.ts diff --git a/src/utils/isPropertyKey.ts b/packages/libexif-wasm/src/utils/isPropertyKey.ts similarity index 100% rename from src/utils/isPropertyKey.ts rename to packages/libexif-wasm/src/utils/isPropertyKey.ts diff --git a/src/utils/isTypedArray.test.ts b/packages/libexif-wasm/src/utils/isTypedArray.test.ts similarity index 100% rename from src/utils/isTypedArray.test.ts rename to packages/libexif-wasm/src/utils/isTypedArray.test.ts diff --git a/src/utils/isTypedArray.ts b/packages/libexif-wasm/src/utils/isTypedArray.ts similarity index 100% rename from src/utils/isTypedArray.ts rename to packages/libexif-wasm/src/utils/isTypedArray.ts diff --git a/src/utils/mapEmbindEnumToBiMap.test.ts b/packages/libexif-wasm/src/utils/mapEmbindEnumToBiMap.test.ts similarity index 100% rename from src/utils/mapEmbindEnumToBiMap.test.ts rename to packages/libexif-wasm/src/utils/mapEmbindEnumToBiMap.test.ts diff --git a/src/utils/mapEmbindEnumToBiMap.ts b/packages/libexif-wasm/src/utils/mapEmbindEnumToBiMap.ts similarity index 100% rename from src/utils/mapEmbindEnumToBiMap.ts rename to packages/libexif-wasm/src/utils/mapEmbindEnumToBiMap.ts diff --git a/src/utils/mapEmbindEnumToObject.test.ts b/packages/libexif-wasm/src/utils/mapEmbindEnumToObject.test.ts similarity index 100% rename from src/utils/mapEmbindEnumToObject.test.ts rename to packages/libexif-wasm/src/utils/mapEmbindEnumToObject.test.ts diff --git a/src/utils/mapEmbindEnumToObject.ts b/packages/libexif-wasm/src/utils/mapEmbindEnumToObject.ts similarity index 100% rename from src/utils/mapEmbindEnumToObject.ts rename to packages/libexif-wasm/src/utils/mapEmbindEnumToObject.ts diff --git a/tsconfig.app.json b/packages/libexif-wasm/tsconfig.json similarity index 83% rename from tsconfig.app.json rename to packages/libexif-wasm/tsconfig.json index 4c263f9..ab78384 100644 --- a/tsconfig.app.json +++ b/packages/libexif-wasm/tsconfig.json @@ -9,7 +9,6 @@ /* Modules */ "module": "NodeNext", - "rootDir": "src/", "types": ["node"], "allowImportingTsExtensions": true, "rewriteRelativeImportExtensions": true, @@ -33,11 +32,5 @@ /* Completeness */ "skipLibCheck": true - }, - "include": ["src/**/*.ts"], - "exclude": [ - "src/**/__fixtures__/**/*.ts", - "src/**/__utils__/**/*.ts", - "src/**/*.test.ts" - ] + } } diff --git a/packages/libexif-wasm/tsdown.config.ts b/packages/libexif-wasm/tsdown.config.ts new file mode 100644 index 0000000..5181680 --- /dev/null +++ b/packages/libexif-wasm/tsdown.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from "tsdown"; + +const tsdownConfig = defineConfig({ + entry: [ + "./src/index.ts", + "./src/enums/index.ts", + "./src/interfaces/index.ts", + "./src/internal/index.ts", + "./src/internal/libexif/index.ts", + "./src/libexif/index.ts", + "./src/structs/index.ts", + "./src/utils/index.ts", + ], + platform: "neutral", + target: "es2024", + treeshake: true, + minify: "dce-only", + unbundle: true, + publint: true, + attw: { profile: "esm-only" }, +}); + +export default tsdownConfig; diff --git a/.clang-format b/packages/wasm/.clang-format similarity index 100% rename from .clang-format rename to packages/wasm/.clang-format diff --git a/packages/wasm/package.json b/packages/wasm/package.json new file mode 100644 index 0000000..47926cd --- /dev/null +++ b/packages/wasm/package.json @@ -0,0 +1,26 @@ +{ + "name": "@libexif-wasm/wasm", + "version": "0.0.0", + "license": "LGPL-2.1-or-later", + "author": "Jeremy Nguyen (https://jeremy.ng)", + "repository": "git+https://github.com/jeremy-code/libexif-wasm.git", + "files": [ + "dist" + ], + "type": "module", + "sideEffects": false, + "exports": { + "./libexif.js": { + "types": "./dist/libexif.d.ts", + "node": "./dist/libexif.node.js", + "browser": "./dist/libexif.web.js", + "default": "./dist/libexif.web.js" + }, + "./libexif.wasm": "./dist/libexif.wasm", + "./package.json": "./package.json" + }, + "scripts": { + "build": "./scripts/build.sh", + "format": "find -E src -regex '.*\\.(cpp|h)' | xargs clang-format -i" + } +} diff --git a/ports/libexif.py b/packages/wasm/ports/libexif.py similarity index 100% rename from ports/libexif.py rename to packages/wasm/ports/libexif.py diff --git a/scripts/compile.sh b/packages/wasm/scripts/build.sh similarity index 89% rename from scripts/compile.sh rename to packages/wasm/scripts/build.sh index f08f504..c448982 100755 --- a/scripts/compile.sh +++ b/packages/wasm/scripts/build.sh @@ -2,10 +2,8 @@ set -o errexit -o nounset -o pipefail -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -SOURCE_DIR="$(dirname "$SCRIPT_DIR")" -OUTPUT_DIR="${SOURCE_DIR}/dist/output" -EXPORTS_DIR="${SCRIPT_DIR}/exports" +OUTPUT_DIR="${PWD}/dist" +EXPORTS_DIR="${PWD}/scripts/exports" if [ ! -d "${OUTPUT_DIR}" ]; then mkdir -p "${OUTPUT_DIR}" @@ -42,7 +40,7 @@ for environment in "${ENVIRONMENTS[@]}"; do emcc \ "${COMPILE_FLAGS[@]}" \ -sENVIRONMENT="$environment" \ - "${SOURCE_DIR}/module/"* + "${PWD}/src/"* # Instead of determining environment at runtime, use conditional exports to # resolve glue code diff --git a/scripts/exports/functions.txt b/packages/wasm/scripts/exports/functions.txt similarity index 100% rename from scripts/exports/functions.txt rename to packages/wasm/scripts/exports/functions.txt diff --git a/scripts/exports/runtime_methods.txt b/packages/wasm/scripts/exports/runtime_methods.txt similarity index 100% rename from scripts/exports/runtime_methods.txt rename to packages/wasm/scripts/exports/runtime_methods.txt diff --git a/module/enum.cpp b/packages/wasm/src/enum.cpp similarity index 100% rename from module/enum.cpp rename to packages/wasm/src/enum.cpp diff --git a/module/main.cpp b/packages/wasm/src/main.cpp similarity index 100% rename from module/main.cpp rename to packages/wasm/src/main.cpp diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da30f4a..d032838 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -208,12 +208,12 @@ importers: .: devDependencies: + '@arethetypeswrong/core': + specifier: ^0.18.5 + version: 0.18.5 '@changesets/cli': specifier: ^3.0.3 version: 3.0.3 - '@types/node': - specifier: ^24.13.3 - version: 24.13.3 husky: specifier: ^9.1.7 version: 9.1.7 @@ -229,6 +229,9 @@ importers: oxlint: specifier: ^1.89.0 version: 1.89.0 + publint: + specifier: ^0.3.25 + version: 0.3.25 typescript: specifier: ^5.9.3 version: 5.9.3 @@ -236,8 +239,33 @@ importers: specifier: ^5.0.5 version: 5.0.5(@types/node@24.13.3)(vite@8.0.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.13.3)(yaml@2.9.0)) + packages/libexif-wasm: + dependencies: + '@libexif-wasm/wasm': + specifier: workspace:* + version: link:../wasm + devDependencies: + '@types/node': + specifier: ^24.13.3 + version: 24.13.3 + tsdown: + specifier: ^0.23.2 + version: 0.23.2(@arethetypeswrong/core@0.18.5)(publint@0.3.25)(typescript@5.9.3) + + packages/wasm: {} + packages: + '@andrewbranch/untar.js@1.0.4': + resolution: {integrity: sha512-pVXSwPsLuw8IGLo2Di0EaOfsk+ntVvpkk942J/sHYIkwvtKUakEcPh7HBgZ6tuimgzKSEHgCvO4XgQ05DEbwDw==} + + '@arethetypeswrong/core@0.18.5': + resolution: {integrity: sha512-9ytjzGwxjm9Uz7I9avfbt5vlQt6uk9uRRESzJjqrznl6WKvI6dwYTo+vJ3U02Wrq/mR3iql/PzhvHhKdJIAjDQ==} + engines: {node: '>=20'} + + '@braidai/lang@1.1.2': + resolution: {integrity: sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA==} + '@changesets/apply-release-plan@8.1.1': resolution: {integrity: sha512-nk2Hbq3M9NeHMdaIRBDvawKrQJzXB9sGyBUE5yWnIKtvdcNCPj75zBekJYr0gTT2ecJH3eFeTrc8eisPImcv0Q==} engines: {node: ^22.11 || ^24 || >=26} @@ -326,6 +354,9 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@loaderkit/resolve@1.0.6': + resolution: {integrity: sha512-G8FdIoF5CypfwmD9rl8BXod5HDn8JqB0CCNBXDTaRZ+yRYhARrrSToX1zg1zy9jX3zLqigsELwhT4gNtkdQAUg==} + '@manypkg/find-root@3.1.0': resolution: {integrity: sha512-BcSqCyKhBVZ5YkSzOiheMCV41kqAFptW6xGqYSTjkVTl9XQpr+pqHhwgGCOHQtjDCv7Is6EFyA14Sm5GVbVABA==} engines: {node: '>=20.0.0'} @@ -348,6 +379,9 @@ packages: '@oxc-project/types@0.122.0': resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} + '@oxc-project/types@0.155.0': + resolution: {integrity: sha512-SeE8JPwW1xs1tHeNycjUtUBdhorRa8o4jlvjwk49R7/Z291i+4DQa7JJIgOm/TaYQZx+QrPQbVJ/9c8dMIZN8Q==} + '@oxfmt/binding-android-arm-eabi@0.74.0': resolution: {integrity: sha512-xxQwrf5EPI5zxvuCTW8r6tzCTjPQ+h6+HqJ0iRKRy2zS1yBllt/xLVjoIyUc+FnR7g0a5g1SZv2yyDYhTItLbA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -596,36 +630,79 @@ packages: resolution: {integrity: sha512-pOr5+q1fLYKwFN3LAJuGZEnfXDcQ73zqgDHMtGy+K+uIoUqyY+6MeDCWFwfu+4EFuq76I5EPFofoNAI+Bmmq4A==} engines: {node: '>=22.13'} + '@publint/pack@0.1.7': + resolution: {integrity: sha512-4EDEmvxWtgsCnnVeBvtFIFZtUhPPt1+bA9JrSwU4Sa//6oKtzCSlGGXYJr44OD9aGISymbieJ4mCKHUygUDU+g==} + engines: {node: '>=18'} + + '@quansync/fs@1.1.0': + resolution: {integrity: sha512-qAPG/t3HqML1TlN7sY/pTbEjzFVAKsMjNNMGheyDosro+kT4iw2KCUoHcVdmliwWjorm4elZbgNQyU2eD97eDg==} + + '@rolldown/binding-android-arm-eabi@1.2.15': + resolution: {integrity: sha512-aLcgK9gIJ3YRvrrtfSBbRa27F5WrpiTaPulnFpsHPxpUHgFlSgnU4854MHwoRGEBhfRJDWCS2WQ7lIjskE9Olw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + '@rolldown/binding-android-arm64@1.0.0-rc.12': resolution: {integrity: sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.2.15': + resolution: {integrity: sha512-xD7DdZCrbThKuxNg7ooQmvp07ys4J/pnSEMTG3/OdOWl6daC67m/Q4fL78sRHMxTH/N4fGUbYhcPM0MF5WFHkg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': resolution: {integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.2.15': + resolution: {integrity: sha512-m2WuQ6r0B4OTYxyPpNLtXaMRbRDUbG8YQV2Q3KTdSSK8Th6KHCnC8jVCJt8bvYeSB5WivkkNbc85mKadaSdOxA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.12': resolution: {integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.2.15': + resolution: {integrity: sha512-5RtnsHM36nodM9WbMy+zip0LGS/G+y5wro5RHrpOlr4ac24+1zSi9kiV2MP1myZeZ/ifEHfulQcWjnAXzc2C2A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': resolution: {integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.2.15': + resolution: {integrity: sha512-g3l09pyFqhu+135JKkbkwiKGQmwU5hUMUPJ4VdBADvuqR8d33L6H578rh8m7rtxbdp+VmX/+nzI7nvhSZlzpUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': resolution: {integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.2.15': + resolution: {integrity: sha512-nIe3VugI97nGQtspPxDqA4sXMUpeiocKIP/CqpY/u/vgbT+alX+cVxu1C/oVBPKg4feNTmYovE91v4DgXvXNwQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -633,6 +710,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.2.15': + resolution: {integrity: sha512-iTBjXx+B5QSvgI89lJfmqh4wTh8NabR1YZIIN3hNx4zSG0EVfVqkOvLulNpG4251pbd6/IAmZ/LefVk1Y4rPhw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': resolution: {integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -640,6 +724,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.2.15': + resolution: {integrity: sha512-uN26XOnVR7rqQupG3V9oAG2EGGatWjcJHOeDOHUFCh4TBWmP2tHTFoVN13aYbwfm0aHqJAEmcwhAu6sooIjfqQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -647,6 +738,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-ppc64-gnu@1.2.15': + resolution: {integrity: sha512-9nWkcdd+H+XhaA3fQIwpHnKIrfx/PQ6rO0pivr78Og07tXlUlctBBJoEYLPfhTmCR/QxEVdn6uPjHV5SymPhdw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': resolution: {integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==} engines: {node: ^20.19.0 || >=22.12.0} @@ -654,6 +752,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.2.15': + resolution: {integrity: sha512-Ggh0ciFjLwIusLSLz7LZYEaGdxOAUJXI+Qu5JCbhPJJHEt8vP+IjRATTJheiJsdzzTYgUiHUiw3X1Ea3ZpMBdA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -661,6 +766,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.2.15': + resolution: {integrity: sha512-FHg60rS6DBePAYZ9X9F67x+JObFdmgn6tupA1C/a3B+CufFmTD4mX+e8M75tCiAO3foR/6xwVBI0KQiI7sn/rw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': resolution: {integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==} engines: {node: ^20.19.0 || >=22.12.0} @@ -668,12 +780,25 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-x64-musl@1.2.15': + resolution: {integrity: sha512-/cvV/7v5VGz/moiz0XKRj2dE8DzsKyhIu1KpOvJGPjRywg3yscON889UGvAe8zfiJLHup7VLjBduoGWi3HusWQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': resolution: {integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.2.15': + resolution: {integrity: sha512-MyzC5Hrv/sm+Z7TSGKP/j8001RO2xQm1zOpCNVL4j0cY/VhBZviludA2YFQ7i4lH6ZAXxQm0lcMdBzM+99mE7w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': resolution: {integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==} engines: {node: '>=14.0.0'} @@ -685,15 +810,30 @@ packages: cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.2.15': + resolution: {integrity: sha512-+PgYiS+AH5omy6L45ZLxybasauJaj3M8buoT83D+nzPmCayXlxUV9hydhciCKVyIg0B/v0BtXPDE1uGqNwCPpg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': resolution: {integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.2.15': + resolution: {integrity: sha512-HFZd2QNQYn1JbIi+Hpd7H+r/lkWxcfIu28nirZ6eCn2LafuvmExMlb/P96Sfx5tf7pPArw39IdhmCF8vmV+NhQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-rc.12': resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==} + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -723,6 +863,75 @@ packages: '@vitest/spy@5.0.5': resolution: {integrity: sha512-lwJRExuH417257Q5wv9QYugN9IMJkoxcrKrYxGPQkBzl7wlNpTUxD/5yNX4ESKVUIShKPgkGchYPFMWOOk0wzw==} + '@yuku-core/binding-android-arm64@0.19.0': + resolution: {integrity: sha512-wdL2XmTiZixAOaHk9Z0JJZ8u9Qm8d333Zjpc6gaxXFX+UR5BlsfxZ7a2+2Rm71pamppsPYGUGFq2oVLbh6DISw==} + cpu: [arm64] + os: [android] + + '@yuku-core/binding-darwin-arm64@0.19.0': + resolution: {integrity: sha512-7sNJa6XJhyetnTy64jw3NEi4YgUcezHk1G5GH9FSvXAuC8wIlbaOwT9lgq5qo5sspjrZJQlBR1TWflP49uRpMw==} + cpu: [arm64] + os: [darwin] + + '@yuku-core/binding-darwin-x64@0.19.0': + resolution: {integrity: sha512-pTC7dYEc59isdyizc3nsuyFNBu2LU5wMYZ1be6UMr59PY/AJNtO1aBLWV0MgL/z7C1nv/2sX4TNjGgKLoeevJw==} + cpu: [x64] + os: [darwin] + + '@yuku-core/binding-freebsd-x64@0.19.0': + resolution: {integrity: sha512-xrZjF6XOEwyLOiDIfrwDdRCS6ghxcJeirNC1KivQhVcUwlRonaU79S3/Uiyx3lBylPnT8qKJ3/aMT+H52nGTJQ==} + cpu: [x64] + os: [freebsd] + + '@yuku-core/binding-linux-arm-gnu@0.19.0': + resolution: {integrity: sha512-0OyIH53C0I1CbADHn9FSdCfX5qbpeLwJhmOVhonFJNYheybOnkSJ50qGMfTJIb8y5zrwqvLs7FVBvz6Fk8maZg==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@yuku-core/binding-linux-arm-musl@0.19.0': + resolution: {integrity: sha512-z/iPfkCOCSXE34VXNt0uP1ORSW+4mEa9b5CiJcWZeqZH08g49bFU/jRM2T04f+Wpw5mJ6HIzNBiojxeAbrHjeg==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@yuku-core/binding-linux-arm64-gnu@0.19.0': + resolution: {integrity: sha512-jLNTi+gzaRwBJ+gwhCJ+rDb5dmx/8hEBx93UWd7hjMSqPTL1D1wvVSvXVAldV5kALvju7b0/m51EHEhs4+I1fA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@yuku-core/binding-linux-arm64-musl@0.19.0': + resolution: {integrity: sha512-YwyPIdW/rN2Fmv0MTFWi47FaB3F9g+2b+sJISyAw83Yd60RWH4T3Nx6XkAHHVN+uKJNBAd6So7/BVihSiFYvuQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@yuku-core/binding-linux-x64-gnu@0.19.0': + resolution: {integrity: sha512-/vskaAXVX3ESR43FiTdfiYS7z1b9uoQJwVQ/0RgUHgN2sWoAyCZs+aX4CgU7eKGIHTVfp9VFwv+c+2XchYiEtQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@yuku-core/binding-linux-x64-musl@0.19.0': + resolution: {integrity: sha512-FuXL5igeSKib9Rye02TdH+D6SQezTyGxIATMu1Qsn/QywrzwpGl35OLpS2C1x5vpGLeVE2XgiLd5mVPFHmIglQ==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@yuku-core/binding-win32-arm64@0.19.0': + resolution: {integrity: sha512-YuJAe7zEKT1Xa7LuHlhGJpPnYQeVtvo0rZvNjJRqkH0hQGOw4C8QeP30Tg5VKGzZfo2x8CjhjEhKt4TmLwfmdg==} + cpu: [arm64] + os: [win32] + + '@yuku-core/binding-win32-x64@0.19.0': + resolution: {integrity: sha512-o8iY/mXwlRkedp0LNTr4+TEfXTPQwoNZmv6k+1WIAd1ZXEn8xJJTBCtB0osaVvdZo/x/cNmV16UrWrrGpM5Mvw==} + cpu: [x64] + os: [win32] + + '@yuku-toolchain/types@0.19.0': + resolution: {integrity: sha512-tFkNbsP4WXX9UMUC5syJGdK9dPMLK0PPaIuXCcCYH75sZ8MrebfBZ2XvCILRTw8AgLivSSCfDa4R67iYBDa4Kg==} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -731,14 +940,37 @@ packages: resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} engines: {node: '>=20.19.0'} + cac@7.1.0: + resolution: {integrity: sha512-LMDU/U2yA4IPIY8KT0NsNPWEYZvAMkbgyspxJ6btJaYV+WMDOHAZCmB0lsTObiHaRS1V/ztKAl7+TSkTqXyeoA==} + engines: {node: '>=20.19.0'} + chai@6.3.0: resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==} engines: {node: '>=18'} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + dts-resolver@3.0.0: + resolution: {integrity: sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==} + engines: {node: ^22.18.0 || >=24.0.0} + peerDependencies: + oxc-resolver: '>=11.0.0' + peerDependenciesMeta: + oxc-resolver: + optional: true + + empathic@2.1.0: + resolution: {integrity: sha512-AnfC1ATldl49/cvZdLPDjBfrRNwbDO05aibiOtzQu3qtlbJtomNLhF30HEtn/7iBz50dlMECqATo3fG0LrdEgw==} + engines: {node: '>=14'} + es-module-lexer@2.3.2: resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} @@ -767,11 +999,21 @@ packages: picomatch: optional: true + fflate@0.8.3: + resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + get-tsconfig@5.0.0-beta.6: + resolution: {integrity: sha512-X6fBC0pmImC70gvX2zm56go9hx0MyoGVdG0tUCkg/D+Xnh5TJsOZ7iDbOdI3PvmtrDxnu1YdDufpK2QJX1Meqw==} + engines: {node: '>=20.20.0'} + + hookable@6.1.2: + resolution: {integrity: sha512-+abwxtiEA52GCVIsQqut3S/uKTbUwYIp4Pe/vv+6py5XiXBCqMZHg6pA6Y5qhgLSEys0/cYuPbO0z1QFj5ZCmg==} + human-id@4.2.1: resolution: {integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw==} hasBin: true @@ -784,6 +1026,10 @@ packages: import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + import-without-cache@0.4.1: + resolution: {integrity: sha512-vXoV9PjKHEednCUu01e98TkImxy67e3BJXbTIOmIq4Hyzw3IAwYRcuPkfeTzJzwyyts4kjuA73x+pWJLc4f86A==} + engines: {node: ^22.18.0 || >=24.0.0} + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -872,9 +1118,17 @@ packages: engines: {node: '>=22.22.1'} hasBin: true + lru-cache@11.5.3: + resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} + engines: {node: 20 || >=22} + magic-string@1.4.3: resolution: {integrity: sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + nanoid@3.3.18: resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -1059,11 +1313,50 @@ packages: resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} engines: {node: ^10 || ^12 || >=14} + publint@0.3.25: + resolution: {integrity: sha512-WMMbn/d7JqRlfXQL/JUI4n5skC8cJ5WVr8/wT5mmiYWkUdENkZr1I5rgs2+dQPVRgoJd+JRYtB46MTsuDylw9g==} + engines: {node: '>=18'} + hasBin: true + + quansync@1.0.0: + resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + rolldown-plugin-dts@0.29.0-beta.2: + resolution: {integrity: sha512-0NT4q7HMRIpQv47+SfZB5IhEWJh0gp2rDEZPu2ry+LeJFb9tlMB08Sy+sl1+cqcCXnHpkd9dvBy3rZDCBF1JIg==} + engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} + peerDependencies: + '@volar/typescript': ~2.4.0 + '@vue/language-core': ~3.2.0 || ~3.3.0 + rolldown: ^1.2.0 + typescript: ^5.0.0 || ^6.0.0 || ~7.0.0 || ~7.1.0-0 + vue-tsc: ~3.2.0 || ~3.3.0 + peerDependenciesMeta: + '@volar/typescript': + optional: true + '@vue/language-core': + optional: true + typescript: + optional: true + vue-tsc: + optional: true + rolldown@1.0.0-rc.12: resolution: {integrity: sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.2.15: + resolution: {integrity: sha512-6odND+fel5zVw3I4Yc2e69gvguDnX0CAAGiNDZSq4ik5WUcaLrkD2GLuog0XcODbor31hZ5ayEMgVDno+KPV5g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + semver@7.8.5: resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} @@ -1103,17 +1396,71 @@ packages: resolution: {integrity: sha512-jBrmx4lYmaC9k/mgPbylxs7kBUxHtD8256up+HjLaDFfXScKJQyil+SWXSvhAtT7XHo+yTVlpB81PGmHP8oLSQ==} engines: {node: ^20.0.0 || >=22.0.0} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + tsdown@0.23.2: + resolution: {integrity: sha512-om1OoDykFlv07uM98WAX3ZNmu02FBmHqZYLW1hm+IMktb92r7VMNKgQ/G8dknECI1Q2huPrFJ+sggdYk8efsQg==} + engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} + hasBin: true + peerDependencies: + '@arethetypeswrong/core': ^0.18.1 + '@tsdown/css': 0.23.2 + '@tsdown/exe': 0.23.2 + '@vitejs/devtools': '*' + publint: ^0.3.8 + tsx: '*' + typescript: ^5.0.0 || ^6.0.0 || ^7.0.0 + unplugin-unused: '>=0.5.0' + unrun: '*' + peerDependenciesMeta: + '@arethetypeswrong/core': + optional: true + '@tsdown/css': + optional: true + '@tsdown/exe': + optional: true + '@vitejs/devtools': + optional: true + publint: + optional: true + tsx: + optional: true + typescript: + optional: true + unplugin-unused: + optional: true + unrun: + optional: true + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + typescript@5.6.1-rc: + resolution: {integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true + unconfig-core@7.5.0: + resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} + undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + verkit@0.5.0: + resolution: {integrity: sha512-u4J1hr6Y+C/hit34GwL3eIcUf3wngT8TlYUjK7tk0jxydKLAq3sYvifjdTDA6U3KCKRcQCQDGf/srjxfZF3l7g==} + engines: {node: '>=18.12.0'} + vite@8.0.3: resolution: {integrity: sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1213,8 +1560,39 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yuku-ast@0.19.0: + resolution: {integrity: sha512-PyCsiScaelhxBGzL8dyeJkLqvRZycoh78R31Vrt/WqYrm0hMFoKwIw/X7Dx5mBKLWAMlV9I9HEyBOHnj2gZVyw==} + engines: {node: '>=14.18.0'} + + yuku-codegen@0.19.0: + resolution: {integrity: sha512-uymAKHjDuaP4BEpkXC/BSLz4DUEF5oArZ5AuD3888nb2miChjWSgpPdojEJxm3pjpXkgUaCRJQyNAbnMN33wHg==} + engines: {node: '>=14.18.0'} + + yuku-core@0.19.0: + resolution: {integrity: sha512-kYK9e1XdfirNhkipzW0wmMcSWcVF/CWnuugodfVYRCUwvoBefweL9HzB96OiKEhsx78V5WbUxbJqlizMX869Qg==} + engines: {node: '>=14.18.0'} + + yuku-parser@0.19.0: + resolution: {integrity: sha512-XrBh9ZiQK5mJVRxZBAvD6LwRyAYrK3MFtH3+onyuxFL5hFD44EC3QOmIC1FjTj6H2MMwq46/NAI+NZxLZPZgxg==} + engines: {node: '>=14.18.0'} + snapshots: + '@andrewbranch/untar.js@1.0.4': {} + + '@arethetypeswrong/core@0.18.5': + dependencies: + '@andrewbranch/untar.js': 1.0.4 + '@loaderkit/resolve': 1.0.6 + cjs-module-lexer: 1.4.3 + fflate: 0.8.3 + lru-cache: 11.5.3 + semver: 7.8.5 + typescript: 5.6.1-rc + validate-npm-package-name: 5.0.1 + + '@braidai/lang@1.1.2': {} + '@changesets/apply-release-plan@8.1.1': dependencies: '@changesets/config': 4.0.1 @@ -1356,6 +1734,10 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.6.0 + '@loaderkit/resolve@1.0.6': + dependencies: + '@braidai/lang': 1.1.2 + '@manypkg/find-root@3.1.0': dependencies: '@manypkg/tools': 2.1.2 @@ -1380,6 +1762,8 @@ snapshots: '@oxc-project/types@0.122.0': {} + '@oxc-project/types@0.155.0': {} + '@oxfmt/binding-android-arm-eabi@0.74.0': optional: true @@ -1496,42 +1880,89 @@ snapshots: '@pnpm/deps.graph-sequencer@1100.0.1': {} + '@publint/pack@0.1.7': + dependencies: + tinyexec: 1.3.1 + + '@quansync/fs@1.1.0': + dependencies: + quansync: 1.0.0 + + '@rolldown/binding-android-arm-eabi@1.2.15': + optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.12': optional: true + '@rolldown/binding-android-arm64@1.2.15': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': optional: true + '@rolldown/binding-darwin-arm64@1.2.15': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.12': optional: true + '@rolldown/binding-darwin-x64@1.2.15': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': optional: true + '@rolldown/binding-freebsd-x64@1.2.15': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.2.15': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-arm64-gnu@1.2.15': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-arm64-musl@1.2.15': + optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-ppc64-gnu@1.2.15': + optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-s390x-gnu@1.2.15': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-x64-gnu@1.2.15': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-x64-musl@1.2.15': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': optional: true + '@rolldown/binding-openharmony-arm64@1.2.15': + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) @@ -1543,11 +1974,19 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': optional: true + '@rolldown/binding-win32-arm64-msvc@1.2.15': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': optional: true + '@rolldown/binding-win32-x64-msvc@1.2.15': + optional: true + '@rolldown/pluginutils@1.0.0-rc.12': {} + '@rolldown/pluginutils@1.0.1': {} + '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 @@ -1577,14 +2016,62 @@ snapshots: '@vitest/spy@5.0.5': {} + '@yuku-core/binding-android-arm64@0.19.0': + optional: true + + '@yuku-core/binding-darwin-arm64@0.19.0': + optional: true + + '@yuku-core/binding-darwin-x64@0.19.0': + optional: true + + '@yuku-core/binding-freebsd-x64@0.19.0': + optional: true + + '@yuku-core/binding-linux-arm-gnu@0.19.0': + optional: true + + '@yuku-core/binding-linux-arm-musl@0.19.0': + optional: true + + '@yuku-core/binding-linux-arm64-gnu@0.19.0': + optional: true + + '@yuku-core/binding-linux-arm64-musl@0.19.0': + optional: true + + '@yuku-core/binding-linux-x64-gnu@0.19.0': + optional: true + + '@yuku-core/binding-linux-x64-musl@0.19.0': + optional: true + + '@yuku-core/binding-win32-arm64@0.19.0': + optional: true + + '@yuku-core/binding-win32-x64@0.19.0': + optional: true + + '@yuku-toolchain/types@0.19.0': {} + assertion-error@2.0.1: {} cac@7.0.0: {} + cac@7.1.0: {} + chai@6.3.0: {} + cjs-module-lexer@1.4.3: {} + + defu@6.1.7: {} + detect-libc@2.1.2: {} + dts-resolver@3.0.0: {} + + empathic@2.1.0: {} + es-module-lexer@2.3.2: {} estree-walker@3.0.3: @@ -1607,15 +2094,25 @@ snapshots: optionalDependencies: picomatch: 4.0.7 + fflate@0.8.3: {} + fsevents@2.3.3: optional: true + get-tsconfig@5.0.0-beta.6: + dependencies: + resolve-pkg-maps: 1.0.0 + + hookable@6.1.2: {} + human-id@4.2.1: {} husky@9.1.7: {} import-meta-resolve@4.2.0: {} + import-without-cache@0.4.1: {} + jju@1.4.0: {} jsonc-parser@3.3.1: {} @@ -1682,10 +2179,14 @@ snapshots: optionalDependencies: yaml: 2.9.1 + lru-cache@11.5.3: {} + magic-string@1.4.3: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 + mri@1.2.0: {} + nanoid@3.3.18: {} node@runtime:26.12.1: {} @@ -1750,6 +2251,31 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + publint@0.3.25: + dependencies: + '@publint/pack': 0.1.7 + package-manager-detector: 1.8.0 + picocolors: 1.1.1 + sade: 1.8.1 + + quansync@1.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + rolldown-plugin-dts@0.29.0-beta.2(rolldown@1.2.15)(typescript@5.9.3): + dependencies: + dts-resolver: 3.0.0 + get-tsconfig: 5.0.0-beta.6 + obug: 3.0.0 + rolldown: 1.2.15 + yuku-ast: 0.19.0 + yuku-codegen: 0.19.0 + yuku-parser: 0.19.0 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - oxc-resolver + rolldown@1.0.0-rc.12(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): dependencies: '@oxc-project/types': 0.122.0 @@ -1774,6 +2300,31 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' + rolldown@1.2.15: + dependencies: + '@oxc-project/types': 0.155.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm-eabi': 1.2.15 + '@rolldown/binding-android-arm64': 1.2.15 + '@rolldown/binding-darwin-arm64': 1.2.15 + '@rolldown/binding-darwin-x64': 1.2.15 + '@rolldown/binding-freebsd-x64': 1.2.15 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.15 + '@rolldown/binding-linux-arm64-gnu': 1.2.15 + '@rolldown/binding-linux-arm64-musl': 1.2.15 + '@rolldown/binding-linux-ppc64-gnu': 1.2.15 + '@rolldown/binding-linux-s390x-gnu': 1.2.15 + '@rolldown/binding-linux-x64-gnu': 1.2.15 + '@rolldown/binding-linux-x64-musl': 1.2.15 + '@rolldown/binding-openharmony-arm64': 1.2.15 + '@rolldown/binding-win32-arm64-msvc': 1.2.15 + '@rolldown/binding-win32-x64-msvc': 1.2.15 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + semver@7.8.5: {} shell-quote@1.10.0: {} @@ -1797,13 +2348,52 @@ snapshots: tinypool@2.2.0: {} + tree-kill@1.2.2: {} + + tsdown@0.23.2(@arethetypeswrong/core@0.18.5)(publint@0.3.25)(typescript@5.9.3): + dependencies: + cac: 7.1.0 + defu: 6.1.7 + empathic: 2.1.0 + hookable: 6.1.2 + import-without-cache: 0.4.1 + obug: 3.0.0 + picomatch: 4.0.7 + rolldown: 1.2.15 + rolldown-plugin-dts: 0.29.0-beta.2(rolldown@1.2.15)(typescript@5.9.3) + tinyexec: 1.3.1 + tinyglobby: 0.2.17 + tree-kill: 1.2.2 + unconfig-core: 7.5.0 + verkit: 0.5.0 + optionalDependencies: + '@arethetypeswrong/core': 0.18.5 + publint: 0.3.25 + typescript: 5.9.3 + transitivePeerDependencies: + - '@volar/typescript' + - '@vue/language-core' + - oxc-resolver + - vue-tsc + tslib@2.8.1: optional: true + typescript@5.6.1-rc: {} + typescript@5.9.3: {} + unconfig-core@7.5.0: + dependencies: + '@quansync/fs': 1.1.0 + quansync: 1.0.0 + undici-types@7.18.2: {} + validate-npm-package-name@5.0.1: {} + + verkit@0.5.0: {} + vite@8.0.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.13.3)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 @@ -1846,3 +2436,33 @@ snapshots: yaml@2.9.1: optional: true + + yuku-ast@0.19.0: + dependencies: + '@yuku-toolchain/types': 0.19.0 + + yuku-codegen@0.19.0: + dependencies: + '@yuku-toolchain/types': 0.19.0 + + yuku-core@0.19.0: + dependencies: + '@yuku-toolchain/types': 0.19.0 + optionalDependencies: + '@yuku-core/binding-android-arm64': 0.19.0 + '@yuku-core/binding-darwin-arm64': 0.19.0 + '@yuku-core/binding-darwin-x64': 0.19.0 + '@yuku-core/binding-freebsd-x64': 0.19.0 + '@yuku-core/binding-linux-arm-gnu': 0.19.0 + '@yuku-core/binding-linux-arm-musl': 0.19.0 + '@yuku-core/binding-linux-arm64-gnu': 0.19.0 + '@yuku-core/binding-linux-arm64-musl': 0.19.0 + '@yuku-core/binding-linux-x64-gnu': 0.19.0 + '@yuku-core/binding-linux-x64-musl': 0.19.0 + '@yuku-core/binding-win32-arm64': 0.19.0 + '@yuku-core/binding-win32-x64': 0.19.0 + + yuku-parser@0.19.0: + dependencies: + '@yuku-toolchain/types': 0.19.0 + yuku-core: 0.19.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index aaebd5f..a94f9d7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,6 @@ -gitChecks: false +# Packages (https://pnpm.io/settings#packages) +packages: + - "packages/*" # Dependency Resolution (https://pnpm.io/settings#dependency-resolution) update: diff --git a/scripts/publish.sh b/scripts/publish.sh index a3a9558..d6d48bb 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -15,7 +15,7 @@ fi # https://github.com/changesets/action/blob/615034bb14e5d240e559f941ce9769beb5e14fb0/src/run.ts#L99 jq \ --compact-output \ - '.publishedPackages[] | {type: "git-tag", tag: "v\(.version)", packageName: .name}' \ + '.publishedPackages[] | {type: "git-tag", tag: .id, packageName: .name}' \ pnpm-publish-summary.json \ > $CHANGESETS_OUTPUT diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index c22491a..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.spec.json" } - ] -} diff --git a/tsconfig.spec.json b/tsconfig.spec.json deleted file mode 100644 index 73c3f28..0000000 --- a/tsconfig.spec.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "./tsconfig.app.json", - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Emit */ - "noEmit": true - }, - "include": [ - "src/**/__fixtures__/**/*.ts", - "src/**/__utils__/**/*.ts", - "src/**/*.test.ts" - ], - "exclude": [] -} diff --git a/vitest.config.ts b/vitest.config.ts index c6ea462..eab69a9 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,7 +1,10 @@ import { defineConfig, configDefaults } from "vitest/config"; const vitestConfig = defineConfig({ - test: { exclude: [...configDefaults.exclude, "**/.emsdk-cache/**"] }, + test: { + exclude: [...configDefaults.exclude, "**/.emsdk-cache/**"], + projects: ["packages/*"], + }, }); export default vitestConfig;