mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-21 06:58:47 -05:00
The API package was previously Node.js-only due to its dependency on better-sqlite3 and Node.js fs/path modules. This adds a browser build that uses loot-core's existing browser platform implementations (sql.js/WASM, IndexedDB, absurd-sql) instead. Changes: - Add index.web.ts: browser entry point (no Node.js version check or node-fetch polyfill) - Add vite.browser.config.ts: browser-targeted Vite build that resolves to browser platform files (index.ts) instead of Node.js ones (index.api.ts -> index.electron.ts) - Update package.json: conditional exports (browser vs default/node), module field, build:browser script - Update tsconfig.json: exclude new config file from type checking The browser build outputs dist/browser.js (ESM) alongside the existing dist/index.js (CJS/Node). Bundlers that support the "browser" condition in package.json exports will automatically use the browser build. https://claude.ai/code/session_01MnxRXLNjqXrVb5CdsC85Fb
68 lines
1.6 KiB
JSON
68 lines
1.6 KiB
JSON
{
|
|
"name": "@actual-app/api",
|
|
"version": "26.3.0",
|
|
"description": "An API for Actual",
|
|
"license": "MIT",
|
|
"files": [
|
|
"@types",
|
|
"dist"
|
|
],
|
|
"main": "dist/index.js",
|
|
"module": "dist/browser.js",
|
|
"types": "@types/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"development": "./index.ts",
|
|
"browser": {
|
|
"types": "./@types/index.d.ts",
|
|
"default": "./dist/browser.js"
|
|
},
|
|
"default": {
|
|
"types": "./@types/index.d.ts",
|
|
"default": "./dist/index.js"
|
|
}
|
|
}
|
|
},
|
|
"publishConfig": {
|
|
"exports": {
|
|
".": {
|
|
"browser": {
|
|
"types": "./@types/index.d.ts",
|
|
"default": "./dist/browser.js"
|
|
},
|
|
"default": {
|
|
"types": "./@types/index.d.ts",
|
|
"default": "./dist/index.js"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"scripts": {
|
|
"build": "vite build && vite build --config vite.browser.config.ts",
|
|
"build:node": "vite build",
|
|
"build:browser": "vite build --config vite.browser.config.ts",
|
|
"test": "vitest --run",
|
|
"typecheck": "tsgo -b && tsc-strict"
|
|
},
|
|
"dependencies": {
|
|
"@actual-app/core": "workspace:*",
|
|
"@actual-app/crdt": "workspace:*",
|
|
"better-sqlite3": "^12.6.2",
|
|
"compare-versions": "^6.1.1",
|
|
"node-fetch": "^3.3.2",
|
|
"uuid": "^13.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@typescript/native-preview": "^7.0.0-dev.20260309.1",
|
|
"rollup-plugin-visualizer": "^6.0.11",
|
|
"typescript-strict-plugin": "^2.4.4",
|
|
"vite": "^8.0.0",
|
|
"vite-plugin-dts": "^4.5.4",
|
|
"vite-plugin-peggy-loader": "^2.0.1",
|
|
"vitest": "^4.1.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=20"
|
|
}
|
|
}
|