{
  "name": "@balena/pinejs",
  "version": "24.0.4",
  "main": "out/server-glue/module.js",
  "type": "module",
  "repository": "git@github.com:balena-io/pinejs.git",
  "license": "Apache-2.0",
  "bin": {
    "abstract-sql-compiler": "./bin/abstract-sql-compiler.js",
    "odata-compiler": "./bin/odata-compiler.js",
    "sbvr-compiler": "./bin/sbvr-compiler.js"
  },
  "scripts": {
    "prepublish": "require-npm4-to-publish",
    "prepare": "node -e \"try { (await import('husky')).default() } catch (e) { if (e.code !== 'ERR_MODULE_NOT_FOUND') throw e }\" --input-type module && npm run build",
    "build": "grunt --preload @swc-node/register --gruntfile Gruntfile.cts build",
    "webpack-browser": "grunt  --preload @swc-node/register --gruntfile Gruntfile.cts browser",
    "webpack-module": "grunt  --preload @swc-node/register --gruntfile Gruntfile.cts module",
    "webpack-server": "grunt  --preload @swc-node/register --gruntfile Gruntfile.cts server",
    "webpack-build": "npm run webpack-browser && npm run webpack-module && npm run webpack-server",
    "lint": "balena-lint -t tsconfig.dev.json -e js -e ts src test build typings Gruntfile.cts && npx tsc --project tsconfig.dev.json --noEmit",
    "test": "npm run build && npm run lint && npm run webpack-build && npm run test:compose && npm run test:generated-types",
    "test:start": "DATABASE_URL=postgres://docker:docker@localhost:5431/postgres PINEJS_WEBRESOURCE_MAXFILESIZE=31457280 S3_ENDPOINT=http://localhost:43680 S3_ACCESS_KEY=USERNAME S3_SECRET_KEY=PASSWORD S3_STORAGE_ADAPTER_BUCKET=balena-pine-web-resources S3_REGION=us-east-1 PINEJS_QUEUE_CONCURRENCY=1 TZ=UTC PINEJS_WEBRESOURCE_MULTIPART_ENABLED=true npx mocha",
    "fasttest-build": "docker compose -f docker-compose.npm-test.yml up -d",
    "fasttest": "npm run build && npm run test:start",
    "fasttest-cleanup": "docker compose -f docker-compose.npm-test.yml down",
    "test:compose": "trap 'npm run fasttest-cleanup ; echo Stopped ; exit 0' INT; npm run fasttest-build && sleep 2 && npm run test:start",
    "test:generated-types": "npm run generate-types && git diff --exit-code ./src/sbvr-api/user.ts ./src/migrator/migrations.ts ./src/sbvr-api/dev.ts",
    "lint-fix": "balena-lint -t tsconfig.dev.json -e js -e ts --fix src test build typings Gruntfile.cts",
    "generate-types": "node ./bin/sbvr-compiler.js generate-types ./src/sbvr-api/user.sbvr ./src/sbvr-api/user.ts && node ./bin/sbvr-compiler.js generate-types ./src/migrator/migrations.sbvr ./src/migrator/migrations.ts && node ./bin/sbvr-compiler.js generate-types ./src/sbvr-api/dev.sbvr ./src/sbvr-api/dev.ts && node ./bin/sbvr-compiler.js generate-types ./src/tasks/tasks.sbvr ./src/tasks/tasks.ts && node ./bin/sbvr-compiler.js generate-types ./src/webresource-handler/webresource.sbvr ./src/webresource-handler/webresource.ts && balena-lint -t tsconfig.dev.json --fix ./src/sbvr-api/user.ts ./src/migrator/migrations.ts ./src/sbvr-api/dev.ts"
  },
  "dependencies": {
    "@balena/abstract-sql-compiler": "^11.3.18",
    "@balena/abstract-sql-to-typescript": "^6.1.19",
    "@balena/env-parsing": "^1.2.6",
    "@balena/lf-to-abstract-sql": "^6.0.0",
    "@balena/odata-parser": "^4.2.8",
    "@balena/odata-to-abstract-sql": "^10.0.4",
    "@balena/sbvr-parser": "^1.4.13",
    "@balena/sbvr-types": "^11.1.4",
    "@sindresorhus/fnv1a": "^3.1.0",
    "@types/compression": "^1.8.1",
    "@types/cookie-parser": "^1.4.9",
    "@types/deep-freeze": "^0.1.5",
    "@types/express": "^4.17.23",
    "@types/express-session": "^1.18.2",
    "@types/lodash": "^4.17.20",
    "@types/memoizee": "^0.4.12",
    "@types/method-override": "^3.0.0",
    "@types/mysql": "^2.15.27",
    "@types/node": "^22.2.0",
    "@types/passport": "^1.0.17",
    "@types/passport-local": "^1.0.38",
    "@types/passport-strategy": "^0.2.38",
    "@types/pg": "^8.15.5",
    "@types/randomstring": "^1.3.0",
    "@types/websql": "^0.0.30",
    "ajv": "^8.17.1",
    "busboy": "^1.6.0",
    "commander": "^14.0.1",
    "cron-parser": "^5.4.0",
    "deep-freeze": "^0.0.1",
    "eventemitter3": "^5.0.1",
    "express-session": "^1.18.2",
    "json-schema-to-ts": "^3.1.1",
    "lodash": "^4.17.21",
    "memoizee": "^0.4.17",
    "pinejs-client-core": "^8.4.1",
    "randomstring": "^1.3.1",
    "typed-error": "^3.2.2"
  },
  "devDependencies": {
    "@balena/lint": "^9.3.8",
    "@balena/pinejs": "file:./",
    "@balena/pinejs-webresource-s3": "^2.1.27",
    "@faker-js/faker": "^10.0.0",
    "@swc-node/register": "^1.11.1",
    "@swc/core": "^1.13.5",
    "@types/busboy": "^1.5.4",
    "@types/chai": "^5.2.2",
    "@types/grunt": "^0.4.32",
    "@types/mocha": "^10.0.10",
    "@types/on-finished": "^2.3.5",
    "@types/request": "^2.48.13",
    "@types/supertest": "^7.0.0",
    "@types/terser-webpack-plugin": "^5.2.0",
    "@types/webpack": "^5.28.5",
    "chai": "^6.2.0",
    "grunt": "^1.6.1",
    "grunt-check-dependencies": "^1.0.0",
    "grunt-cli": "^1.5.0",
    "grunt-contrib-clean": "^2.0.1",
    "grunt-contrib-concat": "^2.1.0",
    "grunt-contrib-copy": "^1.0.0",
    "grunt-contrib-rename": "^0.2.0",
    "grunt-gitinfo": "^0.1.9",
    "grunt-text-replace": "^0.4.0",
    "grunt-ts": "^6.0.0-beta.22",
    "grunt-webpack": "^7.0.0",
    "husky": "^9.1.7",
    "lint-staged": "^17.0.0",
    "load-grunt-tasks": "^5.1.0",
    "mocha": "^11.7.4",
    "on-finished": "^2.4.1",
    "pinejs-client-supertest": "^3.1.1",
    "raw-loader": "^4.0.2",
    "request": "^2.88.2",
    "require-npm4-to-publish": "^1.0.0",
    "supertest": "^7.1.4",
    "terser-webpack-plugin": "^5.3.14",
    "ts-loader": "^9.5.4",
    "typescript": "^5.9.3",
    "webpack": "^5.102.1",
    "webpack-dev-server": "^5.2.2"
  },
  "optionalDependencies": {
    "@aws-sdk/client-s3": "^3.908.0",
    "@aws-sdk/lib-storage": "^3.908.0",
    "@aws-sdk/s3-request-presigner": "^3.908.0",
    "bcrypt": "^6.0.0",
    "body-parser": "^2.2.1",
    "compression": "^1.8.1",
    "cookie-parser": "^1.4.7",
    "express": "^4.21.2",
    "method-override": "^3.0.0",
    "mysql": "^2.18.1",
    "passport": "^0.7.0",
    "passport-local": "^1.0.0",
    "pg": "^8.16.3",
    "pg-connection-string": "^2.9.1",
    "serve-static": "^1.16.2"
  },
  "engines": {
    "node": "^22.2.0 || ^24.5.0",
    "npm": ">=10.7.0"
  },
  "lint-staged": {
    "*.js": [
      "balena-lint -t tsconfig.dev.json --fix"
    ],
    "*.ts": [
      "balena-lint -t tsconfig.dev.json --fix"
    ]
  },
  "mocha": {
    "extension": [
      ".test.ts"
    ],
    "loader": "@swc-node/register/esm-register",
    "exit": true,
    "timeout": 60000,
    "recursive": true
  },
  "versionist": {
    "publishedAt": "2026-05-28T14:21:29.484Z"
  }
}
