{
    "name": "@upfrontjs/framework",
    "version": "0.19.0",
    "description": "Data handling framework complementary to backend model systems.",
    "main": "index.min.cjs",
    "type": "module",
    "module": "index.es.min.js",
    "exports": {
        ".": {
            "import": "./index.es.min.js",
            "types": "./types/index.d.ts",
            "require": "./index.min.cjs",
            "default": "./index.min.js"
        },
        "./string": {
            "import": "./string.es.min.js",
            "types": "./types/string.d.ts/",
            "require": "./string.es.min.cjs"
        },
        "./array": {
            "import": "./array.es.min.js",
            "types": "./types/array.d.ts/",
            "require": "./array.es.min.cjs"
        }
    },
    "types": "./types/index.d.ts",
    "files": [
        "Support",
        "string*.js",
        "array*.js",
        "index*.js",
        "*.js.map",
        "src",
        "types"
    ],
    "author": "Nandor Kraszlan",
    "license": "MIT",
    "repository": {
        "type": "git",
        "url": "git+https://github.com/upfrontjs/framework.git"
    },
    "bugs": {
        "url": "https://github.com/upfrontjs/framework/issues"
    },
    "homepage": "https://upfrontjs.com/",
    "directories": {
        "lib": "./src",
        "doc": "./docs",
        "test": "./tests"
    },
    "keywords": [
        "model",
        "data handling",
        "object oriented",
        "active record",
        "orm",
        "front end",
        "browser",
        "api",
        "rest",
        "json",
        "framework",
        "factory",
        "collection",
        "ancestry tree",
        "helpers",
        "string",
        "array",
        "typescript",
        "tested",
        "relations",
        "attributes",
        "query",
        "casting",
        "guarding",
        "timestamps",
        "soft deletes",
        "esm",
        "pagination",
        "config",
        "in memory store",
        "events",
        "event bus",
        "event emitter",
        "eloquent",
        "upfront"
    ],
    "scripts": {
        "test": "vitest run -c ./tests/vitest.config.ts",
        "test:coverage": "npm run test -- --coverage",
        "test:types": "tsc --noEmit",
        "lint": "eslint . --cache --fix --ext .ts",
        "emit-declarations": "tsc --project ./build.tsconfig.json --declaration --declarationMap --declarationDir ./types --emitDeclarationOnly",
        "build": "rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript && npm run emit-declarations",
        "docs:api": "[ ! -d './types' ] && npm run emit-declarations || echo './types folder exists' && npx typedoc",
        "prepare": "husky install",
        "commit": "commit"
    },
    "dependencies": {
        "lodash.clonedeep": "^4.5.0",
        "lodash.isequal": "^4.5.0",
        "lodash.merge": "^4.6.2",
        "lodash.orderby": "^4.6.0",
        "lodash.snakecase": "^4.1.1",
        "lodash.uniq": "^4.5.0",
        "pluralize": "^8.0.0",
        "qs": "^6.9.4",
        "uuid": "^13.0.0"
    },
    "devDependencies": {
        "@commitlint/config-conventional": "^19.1.0",
        "@commitlint/prompt-cli": "^19.2.0",
        "@commitlint/types": "^19.0.3",
        "@edge-runtime/vm": "^5.0.0",
        "@eslint/js": "^9.27.0",
        "@rollup/plugin-terser": "^0.4.0",
        "@rollup/plugin-typescript": "^12.1.1",
        "@semantic-release/git": "^10.0.0",
        "@stylistic/eslint-plugin": "^5.4.0",
        "@tsconfig/strictest": "^2.0.5",
        "@types/lodash.clonedeep": "^4.5.7",
        "@types/lodash.isequal": "^4.5.6",
        "@types/lodash.merge": "^4.6.7",
        "@types/lodash.orderby": "^4.6.7",
        "@types/lodash.snakecase": "^4.1.7",
        "@types/lodash.uniq": "^4.5.7",
        "@types/pluralize": "^0.0.33",
        "@types/qs": "^6.9.5",
        "@types/semantic-release": "^20.0.1",
        "@typescript-eslint/eslint-plugin": "^8.14.0",
        "@typescript-eslint/parser": "^8.14.0",
        "@vitest/coverage-v8": "^3.1.1",
        "@vitest/eslint-plugin": "^1.1.10",
        "commitlint": "^19.2.1",
        "conventional-changelog-conventionalcommits": "^9.1.0",
        "eslint": "^9.27.0",
        "eslint-plugin-import": "^2.22.1",
        "glob": "^11.0.0",
        "globals": "^16.2.0",
        "husky": "^9.0.11",
        "jsdom": "^27.0.0",
        "lint-staged": "^16.2.0",
        "rollup": "^4.14.1",
        "rollup-plugin-output-size": "^2.0.0",
        "semantic-release": "^24.2.0",
        "ts-node": "^10.9.2",
        "tslib": "^2.2.0",
        "typedoc": "^0.28.2",
        "typescript": "^5.7.2",
        "typescript-eslint": "^8.32.1",
        "vitest": "^3.1.1"
    },
    "peerDependencies": {
        "@types/lodash.clonedeep": "^4.5.7",
        "@types/lodash.isequal": "^4.5.6",
        "@types/lodash.merge": "^4.6.7",
        "@types/lodash.orderby": "^4.6.7",
        "@types/lodash.snakecase": "^4.1.7",
        "@types/lodash.uniq": "^4.5.7",
        "@types/pluralize": "^0.0.33",
        "@types/qs": "^6.9.5"
    },
    "peerDependenciesMeta": {
        "@types/qs": {
            "optional": true
        },
        "@types/lodash.clonedeep": {
            "optional": true
        },
        "@types/lodash.isequal": {
            "optional": true
        },
        "@types/lodash.merge": {
            "optional": true
        },
        "@types/lodash.orderby": {
            "optional": true
        },
        "@types/lodash.snakecase": {
            "optional": true
        },
        "@types/lodash.uniq": {
            "optional": true
        },
        "@types/pluralize": {
            "optional": true
        }
    },
    "lint-staged": {
        "*.ts": "eslint --cache --fix"
    },
    "funding": [
        {
            "type": "github",
            "url": "https://github.com/sponsors/nandi95"
        }
    ],
    "engines": {
        "node": ">=18.20.0"
    }
}
