package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "openbooks",
"version": "0.1.0-alpha.37.10",
"private": true,
"license": "AGPL-3.0-or-later",
"workspaces": [
"schema",
"engine",
"web",
"packages/*"
],
"devDependencies": {
"@axe-core/playwright": "4.12.1",
"@playwright/test": "^1.62.0",
"esbuild": "0.25.12",
"eslint": "9.39.4",
"eslint-config-next": "16.3.0",
"next": "16.4.3",
"prettier": "3.9.5",
"typescript": "6.0.3"
},
"overrides": {
"@modelcontextprotocol/sdk": "1.32.1",
"@ai-sdk/gateway": "3.0.150",
"@ai-sdk/provider-utils": "4.0.39",
"exceljs": {
"uuid": "11.1.1"
},
"minimatch@3.1.5": {
"brace-expansion": "1.1.21"
},
"minimatch@5.1.9": {
"brace-expansion": "2.1.7"
},
"next": {
".": "16.4.3",
"postcss": "8.5.26",
"sharp": "0.35.5",
"nanoid": "3.3.18"
},
"hono": "4.13.11",
"fast-uri": "3.1.9",
"body-parser": "2.4.0",
"ip-address": "10.7.5",
"qs": "6.16.2",
"dompurify": "3.4.17",
"undici": "8.12.3",
"@tailwindcss/typography": {
"postcss-selector-parser": "7.1.6"
}
},
"engines": {
"node": "24.x"
},
"scripts": {
"icons:generate": "node scripts/generate-pwa-icons.mjs",
"worker": "tsx --conditions=react-server --tsconfig web/tsconfig.json scripts/worker-entry.mts",
"lint": "node scripts/lint.mjs --max-warnings=0",
"typecheck:e2e": "tsc --project e2e/tsconfig.json",
"typecheck:scripts": "tsc --project scripts/tsconfig.json",
"check:dependencies": "npm audit --omit=dev --audit-level=moderate",
"check:history-hygiene": "node scripts/check-history-hygiene.mjs",
"check:internal-ids": "node scripts/check-internal-ids.mjs",
"check:journal-status-filter": "node scripts/check-journal-status-filter.mjs",
"check:repository-artifacts": "node scripts/check-repository-artifacts.mjs",
"check:product-neutrality": "node scripts/check-product-neutrality.mjs",
"check:country-neutrality": "node scripts/check-country-neutrality.mjs",
"check:credential-fetch-redirects": "node scripts/check-credential-fetch-redirects.mjs",
"check:container-security": "node scripts/check-container-security.mjs",
"check:explicit-any": "node scripts/check-explicit-any.mjs",
"check:payroll-treatment-bases": "node scripts/check-payroll-treatment-bases.mjs",
"check:fetch-response-parse": "node scripts/check-fetch-response-parse.mjs",
"check:viewer-locale": "node scripts/check-viewer-locale.mjs",
"check:money-number-conversion": "node scripts/check-money-number-conversion.mjs",
"check:money-brand": "node scripts/check-money-brand.mjs",
"check:security-jsx-copy": "node scripts/check-security-jsx-copy.mjs",
"check:civil-date-arithmetic": "node scripts/check-civil-date-arithmetic.mjs",
"check:migration-headers": "node scripts/check-migration-headers.mjs",
"check:test-source-pins": "node scripts/check-test-source-pins.mjs",
"check:tx-concurrency": "node scripts/check-tx-concurrency.mjs",
"check:session-advisory-locks": "node scripts/check-session-advisory-locks.mjs",
"check:org-wide-config-scope": "node scripts/check-org-wide-config-scope.mjs",
"check:api-error-sanitization": "node scripts/check-api-error-sanitization.mjs",
"check:uuid-shapes": "node scripts/check-uuid-shapes.mjs",
"check:sql-raw-interpolation": "node scripts/check-sql-raw-interpolation.mjs",
"check:migration-preflights": "node scripts/check-migration-preflights.mjs",
"check:rls-bypass-predicate": "node scripts/check-rls-bypass-predicate.mjs",
"check:bypass-justification": "node scripts/check-bypass-justification.mjs",
"check:route-permission-coverage": "node scripts/check-route-permission-coverage.mjs",
"check:report-catalog-strings": "node --import tsx scripts/check-report-catalog-strings.mjs",
"upgrade:check": "node --import tsx scripts/bootstrap.ts --check",
"test:load-harness": "node --test scripts/load-smoke.test.mjs",
"test:load": "node scripts/load-smoke.mjs",
"check:on-conflict-justification": "node scripts/check-on-conflict-justification.mjs",
"check:static": "npm run check:container-security && npm run check:engine-boundaries && npm run check:source-path-references && npm run check:product-neutrality && npm run check:country-neutrality && npm run check:credential-fetch-redirects && npm run check:repository-artifacts && npm run check:internal-ids && npm run check:payroll-treatment-bases && npm run check:fetch-response-parse && npm run check:viewer-locale && npm run check:money-number-conversion && npm run check:money-brand && npm run check:civil-date-arithmetic && npm run check:civil-date-validation && npm run check:migration-headers && npm run check:migration-preflights && npm run check:rls-bypass-predicate && npm run check:bypass-justification && npm run check:on-conflict-justification && npm run check:test-source-pins && npm run check:tenant-table-policies && npm run check:client-server-imports && npm run check:test-mock-surface && npm run check:session-advisory-locks && npm run check:uuid-shapes && npm run check:sql-raw-interpolation && npm run check:org-wide-config-scope && npm run check:journal-status-filter && npm run check:keyboard-table-rows && npm run check:ledger-journal-writes && npm run check:route-permission-coverage && npm run check:report-catalog-strings && npm run check:ui-reuse && npm run check:tx-concurrency && npm run check:api-error-sanitization && npm run check:test-bypass-scope && npm run check:scratch-org-lease-shape && npm run check:format",
"test": "npm run check:static && NODE_ENV=test OPENBOOKS_DB_URL= OPENBOOKS_DATA_KEY=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f OPENBOOKS_TRUSTED_TEST_BYPASS=1 node scripts/test-suite.mjs unit && NODE_ENV=test OPENBOOKS_DATA_KEY=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f OPENBOOKS_TRUSTED_TEST_BYPASS=1 node scripts/test-suite.mjs integration && npm run check:security-jsx-copy",
"test:unit": "npm run check:static && NODE_ENV=test OPENBOOKS_DB_URL= OPENBOOKS_DATA_KEY=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f OPENBOOKS_TRUSTED_TEST_BYPASS=1 node scripts/test-suite.mjs unit && npm run check:security-jsx-copy",
"test:integration": "NODE_ENV=test OPENBOOKS_DATA_KEY=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f OPENBOOKS_TRUSTED_TEST_BYPASS=1 node scripts/test-suite.mjs integration",
"test:mutation": "NODE_ENV=test OPENBOOKS_DATA_KEY=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f OPENBOOKS_TRUSTED_TEST_BYPASS=1 node --import tsx engine/src/harness/mutation/cli.ts --sample 25 --timeout-secs 240",
"verify:release": "npm run check:repository-artifacts && npm run check:engine-boundaries && npm run check:source-path-references && npm run check:dependencies && npm run check:container-security && npm run check:explicit-any && npm run lint && npm run typecheck:e2e && npm run typecheck --workspaces --if-present && npm run typecheck:scripts && npm test && npm -w web run build",
"verify:release:quick": "npm run check:repository-artifacts && npm run check:engine-boundaries && npm run check:source-path-references && npm run check:dependencies && npm run check:container-security && npm run check:explicit-any && npm run lint && npm run typecheck:e2e && npm run typecheck --workspaces --if-present && npm run typecheck:scripts && npm -w web run build",
"verify:release:full": "npm run check:repository-artifacts && npm run check:engine-boundaries && npm run check:source-path-references && npm run check:dependencies && npm run check:container-security && npm run check:explicit-any && npm run lint && npm run typecheck:e2e && npm run typecheck --workspaces --if-present && npm run typecheck:scripts && npm test && npm -w web run build",
"verify:release:checks": "npm run check:repository-artifacts && npm run check:engine-boundaries && npm run check:source-path-references && npm run check:dependencies && npm run check:container-security && npm run check:explicit-any && npm run lint && npm run typecheck:e2e && npm run typecheck:scripts",
"check:engine-boundaries": "node scripts/check-engine-boundaries.mjs && npm run check:engine-public-api",
"check:source-path-references": "node scripts/check-source-path-references.mjs",
"check:civil-date-validation": "node scripts/check-civil-date-validation.mjs",
"check:keyboard-table-rows": "node scripts/check-keyboard-table-rows.mjs",
"check:tenant-table-policies": "node scripts/check-tenant-table-policies.mjs",
"check:client-server-imports": "node scripts/check-client-server-imports.mjs",
"check:test-mock-surface": "node scripts/check-test-mock-surface.mjs",
"check:scratch-org-lease-shape": "node scripts/check-scratch-org-lease-shape.mjs",
"check:test-bypass-scope": "node scripts/check-test-bypass-scope.mjs",
"check:ledger-journal-writes": "node scripts/check-ledger-journal-writes.mjs",
"check:ui-reuse": "node scripts/check-ui-reuse.mjs",
"check:engine-public-api": "node scripts/check-engine-public-api.mjs",
"format": "prettier --write",
"format:check": "prettier --check",
"check:format": "prettier --check --cache \"**/*.{ts,tsx,mts,cts,js,mjs,cjs,jsx,css}\""
},
"allowScripts": {
"@parcel/watcher@2.5.6": true,
"cpu-features@0.0.10": true,
"esbuild@0.25.12": true,
"esbuild@0.28.1": true,
"fsevents@2.3.3": true,
"fsevents@2.3.2": true,
"msgpackr-extract@3.0.4": true,
"@swc/core@1.15.43": true,
"ssh2@1.17.0": true,
"unrs-resolver@1.12.2": true
}
}