diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..2d29bccaa --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,34 @@ +name: Group 36 CI Pipeline + +on: + push: + pull_request: + +jobs: + build-test-validate: + runs-on: ubuntu-latest + env: + DATABASE_URL: postgresql://postgres://postgres@localhost:5432/conduit + JWT_SECRET: ci-secret + NODE_ENV: test + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Setup Node.js 18 + uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: npm + + - name: Install Dependencies + run: npm ci + + - name: Generate Prisma Client + run: npx prisma generate + + - name: Run test with coverage + run: npx nx test api --coverage + + - name: Build Application + run: npx nx build api \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..3c79f30ec --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +18.16.0 \ No newline at end of file diff --git a/Dockerfile.compose b/Dockerfile.compose new file mode 100644 index 000000000..15c51db06 --- /dev/null +++ b/Dockerfile.compose @@ -0,0 +1,16 @@ +FROM node:18-bullseye-slim + +WORKDIR /app + +COPY package*.json ./ +RUN npm ci + +COPY . . + +RUN npx prisma generate --schema src/prisma/schema.prisma +RUN npx nx reset +RUN npx nx build api + +EXPOSE 3000 + +CMD ["sh", "-c", "npx prisma migrate deploy --schema src/prisma/schema.prisma && node dist/api/main.js"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..3bb8e1adb --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,45 @@ +services: + postgres: + image: postgres:15-alpine + container_name: group36-postgres + restart: unless-stopped + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: conduit + ports: + - "5432:5432" + volumes: + - postgres-data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres -d conduit"] + interval: 5s + timeout: 5s + retries: 10 + + realworld-api: + image: node:18-alpine + container_name: group36-realworld-api + working_dir: /app + restart: unless-stopped + depends_on: + postgres: + condition: service_healthy + ports: + - "3000:3000" + environment: + DATABASE_URL: postgresql://postgres:postgres@postgres:5432/conduit + JWT_SECRET: group36-dev-secret + NODE_ENV: production + PORT: 3000 + volumes: + - .:/app + command: > + sh -c "npm ci && + npx prisma generate --schema src/prisma/schema.prisma && + npx prisma migrate deploy --schema src/prisma/schema.prisma && + npx nx build api && + node dist/api/main.js" + +volumes: + postgres-data: \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 95e7c45e6..1c651c9d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,6 +43,7 @@ "eslint-config-prettier": "^9.0.0", "jest": "^29.4.1", "jest-environment-node": "^29.4.1", + "jest-html-reporter": "^4.4.0", "jest-mock-extended": "^3.0.5", "nx": "17.2.6", "prettier": "^2.6.2", @@ -61,119 +62,48 @@ "node": ">=0.10.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", - "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, + "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.6", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.6", - "@babel/types": "^7.23.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -198,15 +128,17 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" @@ -237,14 +169,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -357,6 +290,16 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", @@ -382,28 +325,29 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -504,28 +448,31 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -545,100 +492,28 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", - "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.6", - "@babel/types": "^7.23.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.29.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1993,49 +1868,48 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", - "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2565,6 +2439,109 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2748,6 +2725,30 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern/node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/reporters": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", @@ -2891,17 +2892,25 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, "node_modules/@jridgewell/resolve-uri": { @@ -2913,26 +2922,19 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3456,6 +3458,17 @@ "typescript": "^3 || ^4 || ^5" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@prisma/client": { "version": "4.16.2", "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.16.2.tgz", @@ -4029,10 +4042,11 @@ "dev": true }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -4331,6 +4345,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -4650,23 +4671,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", @@ -4789,6 +4793,19 @@ } ] }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.20.tgz", + "integrity": "sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", @@ -4864,9 +4881,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "dev": true, "funding": [ { @@ -4882,11 +4899,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -5000,9 +5019,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001570", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", - "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", + "version": "1.0.30001788", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", + "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", "dev": true, "funding": [ { @@ -5017,7 +5036,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", @@ -5251,24 +5271,6 @@ "node": ">= 0.10" } }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -5297,10 +5299,11 @@ "dev": true }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5310,6 +5313,16 @@ "node": ">= 8" } }, + "node_modules/dateformat": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.2.tgz", + "integrity": "sha512-EelsCzH0gMC2YmXuMeaZ3c6md1sUJQxyb1XXc4xaisi/K6qKukqZhKPrEQyRkdNIncgYyLoDTReq0nNyuKerTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -5507,6 +5520,13 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -5536,10 +5556,11 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.615", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", - "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==", - "dev": true + "version": "1.5.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.340.tgz", + "integrity": "sha512-908qahOGocRMinT2nM3ajCEM99H4iPdv84eagPP3FfZy/1ZGeOy2CZYzjhms81ckOPCXPlW7LkY4XpxD8r1DrA==", + "dev": true, + "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", @@ -5636,10 +5657,11 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -5973,6 +5995,16 @@ "node": ">= 0.8.0" } }, + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/expect": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", @@ -6310,6 +6342,36 @@ } } }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -6941,14 +7003,15 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" }, @@ -7030,6 +7093,22 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jake": { "version": "10.8.7", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", @@ -7303,6 +7382,444 @@ "fsevents": "^2.3.2" } }, + "node_modules/jest-html-reporter": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/jest-html-reporter/-/jest-html-reporter-4.4.0.tgz", + "integrity": "sha512-8aC5pzPOgsbiPwlvE686Gt3ZkUGHpafHtS0ffhCmKqTYdNwnrNX1WpmF7lbb3+3/TvZ9+UlACM811abivu5SWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/reporters": "^30.0.2", + "@jest/test-result": "^30.0.2", + "@jest/types": "^30.0.1", + "dateformat": "3.0.2", + "mkdirp": "^1.0.3", + "strip-ansi": "6.0.1", + "xmlbuilder": "15.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "jest": "19.x - 30.x" + } + }, + "node_modules/jest-html-reporter/node_modules/@jest/console": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.3.0.tgz", + "integrity": "sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/@jest/reporters": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.3.0.tgz", + "integrity": "sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "@jridgewell/trace-mapping": "^0.3.25", + "@types/node": "*", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^5.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", + "slash": "^3.0.0", + "string-length": "^4.0.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-html-reporter/node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/@jest/test-result": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.3.0.tgz", + "integrity": "sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.3.0", + "@jest/types": "30.3.0", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/@jest/transform": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.3.0.tgz", + "integrity": "sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/types": "30.3.0", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.1", + "chalk": "^4.1.2", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.3.0", + "pirates": "^4.0.7", + "slash": "^3.0.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/@jest/types": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz", + "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/@sinclair/typebox": { + "version": "0.34.49", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", + "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-html-reporter/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-html-reporter/node_modules/babel-plugin-istanbul": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", + "dev": true, + "license": "BSD-3-Clause", + "workspaces": [ + "test/babel-8" + ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-html-reporter/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-html-reporter/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-html-reporter/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-html-reporter/node_modules/jest-haste-map": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", + "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", + "picomatch": "^4.0.3", + "walker": "^1.0.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.3" + } + }, + "node_modules/jest-html-reporter/node_modules/jest-message-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.3.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3", + "pretty-format": "30.3.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/jest-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz", + "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/jest-worker": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz", + "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.3.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.1.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-html-reporter/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-html-reporter/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-html-reporter/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-html-reporter/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-html-reporter/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/jest-leak-detector": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", @@ -7666,15 +8183,16 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -8097,6 +8615,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -8129,10 +8670,11 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "dev": true, + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -8416,6 +8958,13 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -8493,6 +9042,30 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -8508,10 +9081,11 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -8526,10 +9100,11 @@ } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -8734,10 +9309,11 @@ } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/readable-stream": { "version": "3.6.2", @@ -9230,6 +9806,22 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -9242,6 +9834,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -9373,15 +9979,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -9653,9 +10250,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -9671,9 +10268,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -9803,6 +10401,25 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -9822,6 +10439,16 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/xmlbuilder": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.0.0.tgz", + "integrity": "sha512-KLu/G0DoWhkncQ9eHSI6s0/w+T4TM7rQaLhtCaL6tORv8jFlJPlnGumsgTcGfYeS1qZ/IHqrvDG7zJZ4d7e+nw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 2e3b26cb0..8a20c4708 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,12 @@ "scripts": { "start": "nx serve", "build": "nx build", - "test": "nx test" + "build:prod": "nx build --configuration=production", + "build:clean": "nx reset && npm install && npm run build", + "test": "nx test", + "test:coverage": "nx test api --coverage", + "ci": "npm ci && npx nx test api --coverage && npx nx build api", + "deploy:docker" : "docker compose up --build -d" }, "private": true, "prisma": { @@ -47,6 +52,7 @@ "eslint-config-prettier": "^9.0.0", "jest": "^29.4.1", "jest-environment-node": "^29.4.1", + "jest-html-reporter": "^4.4.0", "jest-mock-extended": "^3.0.5", "nx": "17.2.6", "prettier": "^2.6.2", diff --git a/src/app/routes/article/article.model.ts b/src/app/routes/article/article.model.ts index 2971d061b..ac53c9ac3 100644 --- a/src/app/routes/article/article.model.ts +++ b/src/app/routes/article/article.model.ts @@ -8,3 +8,9 @@ export interface Article { comments: Comment[]; favorited: boolean; } + +//Helper to calculate reading time +export function calculateReadingTime(bodyText: string): number { + if(!bodyText) return 0; + return Math.ceil(bodyText.split(' ').length / 200); +} \ No newline at end of file diff --git a/src/app/routes/article/article.service.ts b/src/app/routes/article/article.service.ts index c8fdc0c7b..84c2ceb93 100644 --- a/src/app/routes/article/article.service.ts +++ b/src/app/routes/article/article.service.ts @@ -5,6 +5,29 @@ import profileMapper from '../profile/profile.utils'; import articleMapper from './article.mapper'; import { Tag } from '../tag/tag.model'; +type SortField = 'createdAt' | 'updatedAt' | 'title'; +type SortOrder = 'asc' | 'desc'; + +const allowedSortFields: SortField[] = ['createdAt', 'updatedAt', 'title']; +const allowedSortOrders: SortOrder[] = ['asc', 'desc']; + +const buildArticleOrderBy = (query: any = {}) => { + const sort = typeof query?.sort === 'string' ? query.sort : 'createdAt'; + const order = typeof query?.order === 'string' ? query.order : 'desc'; + + const safeSort: SortField = allowedSortFields.includes(sort as SortField) + ? (sort as SortField) + : 'createdAt'; + + const safeOrder: SortOrder = allowedSortOrders.includes(order as SortOrder) + ? (order as SortOrder) + : 'desc'; + + return { + [safeSort]: safeOrder, + }; +}; + const buildFindAllQuery = (query: any, id: number | undefined) => { const queries: any = []; const orAuthorQuery = []; @@ -76,9 +99,7 @@ export const getArticles = async (query: any, id?: number) => { const articles = await prisma.article.findMany({ where: { AND: andQueries }, - orderBy: { - createdAt: 'desc', - }, + orderBy: buildArticleOrderBy(query), skip: Number(query.offset) || 0, take: Number(query.limit) || 10, include: { diff --git a/src/app/routes/routes.ts b/src/app/routes/routes.ts index 28b1b608d..de30a0951 100644 --- a/src/app/routes/routes.ts +++ b/src/app/routes/routes.ts @@ -10,4 +10,13 @@ const api = Router() .use(profileController) .use(authController); -export default Router().use('/api', api); +export default Router() + .get('/health', (req, res) => { + res.status(200).json({ + status: 'UP', + team: 'Group 36', + uptime: process.uptime(), + timestamp: new Date() + }); +}) +.use('/api', api); diff --git a/src/main.ts b/src/main.ts index 0c2752fcc..4667fd62d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -55,3 +55,9 @@ const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.info(`server up on port ${PORT}`); }); + +app.use((req, res, next) => { + const timestamp = new Date().toISOString(); + console.log(`[${timestamp}] ${req.method} request to ${req.url} - Client IP: ${req.ip}`); + next(); +}); diff --git a/src/prisma/schema.prisma b/src/prisma/schema.prisma index 3d767b7cb..0ad50eaaa 100644 --- a/src/prisma/schema.prisma +++ b/src/prisma/schema.prisma @@ -1,6 +1,7 @@ datasource db { provider = "postgresql" url = env("DATABASE_URL") + directUrl = env("DIRECT_URL") } generator client { diff --git a/src/tests/services/article.service.test.ts b/src/tests/services/article.service.test.ts index 4f39562a7..6436b2dd2 100644 --- a/src/tests/services/article.service.test.ts +++ b/src/tests/services/article.service.test.ts @@ -2,10 +2,55 @@ import prismaMock from '../prisma-mock'; import { deleteComment, favoriteArticle, + getArticles, unfavoriteArticle, } from '../../app/routes/article/article.service'; describe('ArticleService', () => { + + describe('getArticles sorting', () => { + test('should use default sorting when query is empty', async () => { + // @ts-ignore Prisma deep mock type is too complex for ts-jest here + prismaMock.article.count.mockResolvedValue(0); + prismaMock.article.findMany.mockResolvedValue([]); + await getArticles({}, 1); + + expect(prismaMock.article.findMany).toHaveBeenCalledWith( + expect.objectContaining({ + orderBy: { createdAt: 'desc' }, + }), + ); + }); + + test('should fallback to default sorting for invalid sort inputs', async () => { + // @ts-ignore Prisma deep mock type is too complex for ts-jest here + prismaMock.article.count.mockResolvedValue(0); + prismaMock.article.findMany.mockResolvedValue([]); + + await getArticles({ sort: 'notAField', order: 'wrongOrder' }, 1); + + expect(prismaMock.article.findMany).toHaveBeenCalledWith( + expect.objectContaining({ + orderBy: { createdAt: 'desc' }, + }), + ); + }); + + test('should apply valid sorting inputs', async () => { + // @ts-ignore Prisma deep mock type is too complex for ts-jest here + prismaMock.article.count.mockResolvedValue(0); + prismaMock.article.findMany.mockResolvedValue([]); + + await getArticles({ sort: 'updatedAt', order: 'asc' }, 1); + + expect(prismaMock.article.findMany).toHaveBeenCalledWith( + expect.objectContaining({ + orderBy: { updatedAt: 'asc' }, + }), + ); + }); + }); + describe('deleteComment', () => { test('should throw an error ', () => { // Given diff --git a/src/tests/services/auth.service.test.ts b/src/tests/services/auth.service.test.ts index 35c4d64b2..d3eef4589 100644 --- a/src/tests/services/auth.service.test.ts +++ b/src/tests/services/auth.service.test.ts @@ -1,6 +1,6 @@ +import prismaMock from '../prisma-mock'; import * as bcrypt from 'bcryptjs'; import { createUser, getCurrentUser, login, updateUser } from '../../app/routes/auth/auth.service'; -import prismaMock from '../prisma-mock'; describe('AuthService', () => { describe('createUser', () => { diff --git a/static/3rdpartylicenses.txt b/static/3rdpartylicenses.txt new file mode 100644 index 000000000..f20a6d496 --- /dev/null +++ b/static/3rdpartylicenses.txt @@ -0,0 +1,715 @@ +@floating-ui/react +MIT +MIT License + +Copyright (c) 2021 Floating UI contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +@floating-ui/react-dom +MIT +MIT License + +Copyright (c) 2021 Floating UI contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +@headlessui/react +MIT + +@heroicons/react +MIT + +@nx/nx-source +MIT +(The MIT License) + +Copyright (c) 2017-2023 Narwhal Technologies Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +@popperjs/core +MIT +The MIT License (MIT) + +Copyright (c) 2019 Federico Zivolo + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +@remix-run/router +MIT +MIT License + +Copyright (c) React Training LLC 2015-2019 +Copyright (c) Remix Software Inc. 2020-2021 +Copyright (c) Shopify Inc. 2022-2023 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +@xstate/immer +MIT +The MIT License (MIT) + +Copyright (c) 2015 David Khourshid + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +@xstate/inspect +MIT + +@xstate/react +MIT +The MIT License (MIT) + +Copyright (c) 2015 David Khourshid + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +aria-hidden +MIT +MIT License + +Copyright (c) 2017 Anton Korzunov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +classnames +MIT +The MIT License (MIT) + +Copyright (c) 2018 Jed Watson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +core-js +MIT +Copyright (c) 2014-2022 Denis Pushkarev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +cytoscape +MIT +Copyright (c) 2016-2022, The Cytoscape Consortium. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +cytoscape-dagre +MIT + + +Copyright (c) 2016-2018, 2020, The Cytoscape Consortium. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +cytoscape-popper +MIT + + +Copyright (c) 2018-2021, The Cytoscape Consortium. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +dagre +MIT +Copyright (c) 2012-2014 Chris Pettitt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +fast-safe-stringify +MIT +The MIT License (MIT) + +Copyright (c) 2016 David Mark Clements +Copyright (c) 2017 David Mark Clements & Matteo Collina +Copyright (c) 2018 David Mark Clements, Matteo Collina & Ruben Bridgewater + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +graphlib +MIT +Copyright (c) 2012-2014 Chris Pettitt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +heap +MIT +The MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +immer +MIT +MIT License + +Copyright (c) 2017 Michel Weststrate + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +jsx-runtime +MIT + +lodash +MIT +Copyright OpenJS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. + + +preact +MIT +The MIT License (MIT) + +Copyright (c) 2015-present Jason Miller + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +preact-compat +MIT + +preact-hooks +MIT + +react-router +MIT +MIT License + +Copyright (c) React Training LLC 2015-2019 +Copyright (c) Remix Software Inc. 2020-2021 +Copyright (c) Shopify Inc. 2022-2023 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +react-router-dom +MIT +MIT License + +Copyright (c) React Training LLC 2015-2019 +Copyright (c) Remix Software Inc. 2020-2021 +Copyright (c) Shopify Inc. 2022-2023 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +regenerator-runtime +MIT +MIT License + +Copyright (c) 2014-present, Facebook, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +tabbable +MIT +The MIT License (MIT) + +Copyright (c) 2015 David Clark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +use-isomorphic-layout-effect +MIT +MIT License + +Copyright (c) Mateusz Burzyński + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +use-sync-external-store +MIT +MIT License + +Copyright (c) Facebook, Inc. and its affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +xstate +MIT +The MIT License (MIT) + +Copyright (c) 2015 David Khourshid + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/static/environment.js b/static/environment.js new file mode 100644 index 000000000..ca0a61465 --- /dev/null +++ b/static/environment.js @@ -0,0 +1,23 @@ +window.exclude = []; + window.watch = false; + window.environment = 'release'; + window.localMode = 'build'; + + window.appConfig = { + showDebugger: false, + showExperimentalFeatures: false, + workspaces: [ + { + id: 'local', + label: 'local', + projectGraphUrl: 'project-graph.json', + taskGraphUrl: 'task-graph.json', + taskInputsUrl: 'task-inputs.json', + sourceMapsUrl: 'source-maps.json' + } + ], + defaultWorkspaceId: 'local', + }; + window.projectGraphResponse = {"hash":"24b5aa560e9f46d84be44b302c5465fae88ba4abaa2bf21216f38b344af41cf7","projects":[{"name":"e2e","type":"e2e","data":{"root":"e2e","name":"e2e","$schema":"../node_modules/nx/schemas/project-schema.json","implicitDependencies":["api"],"projectType":"application","targets":{"e2e":{"cache":true,"inputs":["default","^production","{workspaceRoot}/jest.preset.js"],"executor":"@nx/jest:jest","outputs":["{workspaceRoot}/coverage/{e2eProjectRoot}"],"options":{"passWithNoTests":true,"jestConfig":"e2e/jest.config.ts"},"configurations":{"ci":{"ci":true,"codeCoverage":true}}},"lint":{"cache":true,"inputs":["default","{workspaceRoot}/.eslintrc.json","{workspaceRoot}/.eslintignore","{workspaceRoot}/eslint.config.js"],"executor":"@nx/eslint:lint","outputs":["{options.outputFile}"],"options":{},"configurations":{}}},"tags":[]}},{"name":"api","type":"app","data":{"root":".","name":"api","targets":{"start":{"executor":"nx:run-script","options":{"script":"start"},"configurations":{}},"build":{"cache":true,"dependsOn":["^build"],"inputs":["production","^production"],"executor":"@nx/esbuild:esbuild","outputs":["{options.outputPath}"],"defaultConfiguration":"production","options":{"platform":"node","outputPath":"dist/api","format":["cjs"],"bundle":false,"main":"src/main.ts","tsConfig":"tsconfig.app.json","assets":["src/assets/**/**"],"generatePackageJson":true,"esbuildOptions":{"sourcemap":true,"outExtension":{".js":".js"}}},"configurations":{"development":{},"production":{"generateLockfile":true,"esbuildOptions":{"sourcemap":false,"outExtension":{".js":".js"}}}}},"build:prod":{"executor":"nx:run-script","options":{"script":"build:prod"},"configurations":{}},"build:clean":{"executor":"nx:run-script","options":{"script":"build:clean"},"configurations":{}},"test":{"cache":true,"inputs":["default","^production","{workspaceRoot}/jest.preset.js"],"executor":"@nx/jest:jest","outputs":["{workspaceRoot}/coverage/{projectName}"],"options":{"passWithNoTests":true,"jestConfig":"jest.config.ts"},"configurations":{"ci":{"ci":true,"codeCoverage":true}}},"build:report":{"executor":"nx:run-script","options":{"script":"build:report"},"configurations":{}},"nx-release-publish":{"dependsOn":["^nx-release-publish"],"executor":"@nx/js:release-publish","options":{},"configurations":{}},"serve":{"executor":"@nx/js:node","defaultConfiguration":"development","options":{"buildTarget":"api:build"},"configurations":{"development":{"buildTarget":"api:build:development"},"production":{"buildTarget":"api:build:production"}}},"lint":{"cache":true,"inputs":["default","{workspaceRoot}/.eslintrc.json","{workspaceRoot}/.eslintignore","{workspaceRoot}/eslint.config.js"],"executor":"@nx/eslint:lint","outputs":["{options.outputFile}"],"options":{"lintFilePatterns":["./src"]},"configurations":{}},"docker-build":{"dependsOn":["build"],"executor":"nx:run-commands","options":{"command":"docker build -f Dockerfile . -t api"},"configurations":{}}},"$schema":"node_modules/nx/schemas/project-schema.json","sourceRoot":"src","projectType":"application","tags":[],"implicitDependencies":[]}}],"dependencies":{"e2e":[{"source":"e2e","target":"api","type":"implicit"}],"api":[]},"fileMap":{"api":[{"file":".eslintignore","hash":"13404745306227114823"},{"file":".eslintrc.json","hash":"16901897318773055308"},{"file":".gitignore","hash":"482260170198261808"},{"file":".nvmrc","hash":"17701892327414988387"},{"file":".prettierignore","hash":"2687824826588932174"},{"file":".prettierrc","hash":"6820402234827505055"},{"file":".vscode/extensions.json","hash":"13391140343975966684"},{"file":"Dockerfile","hash":"667126258234133006"},{"file":"README.md","hash":"7202991028097114903"},{"file":"jest.config.ts","hash":"2023118395648768778"},{"file":"jest.preset.js","hash":"7473220183190921152","deps":["npm:@nx/jest"]},{"file":"nx.json","hash":"5600228054616306725"},{"file":"package-lock.json","hash":"4324000702558098765"},{"file":"package.json","hash":"2067097408447392627","deps":["npm:@ngneat/falso","npm:@prisma/client","npm:axios","npm:bcryptjs","npm:body-parser","npm:cors","npm:express","npm:express-jwt","npm:jsonwebtoken","npm:slugify","npm:tslib","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/node","npm:@nx/workspace","npm:@swc-node/register","npm:@swc/core","npm:@types/bcryptjs","npm:@types/cors","npm:@types/express","npm:@types/jest","npm:@types/node","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:esbuild","npm:eslint","npm:eslint-config-prettier","npm:jest","npm:jest-environment-node","npm:jest-html-reporter","npm:jest-mock-extended","npm:nx","npm:prettier","npm:prisma","npm:ts-jest","npm:ts-node","npm:typescript"]},{"file":"project-logo.png","hash":"12414049080988332627"},{"file":"project.json","hash":"4249248830969799223"},{"file":"src/app/models/http-exception.model.ts","hash":"11118567117136834945"},{"file":"src/app/routes/article/article.controller.ts","hash":"28612858392149950","deps":["npm:express"]},{"file":"src/app/routes/article/article.mapper.ts","hash":"5762573674578637604"},{"file":"src/app/routes/article/article.model.ts","hash":"578571204670992870"},{"file":"src/app/routes/article/article.service.ts","hash":"626593450105531501","deps":["npm:slugify"]},{"file":"src/app/routes/article/author.mapper.ts","hash":"7831107430796588920"},{"file":"src/app/routes/article/comment.model.ts","hash":"15541870917017736547"},{"file":"src/app/routes/auth/auth.controller.ts","hash":"4083896726352869246","deps":["npm:express"]},{"file":"src/app/routes/auth/auth.service.ts","hash":"12383772177323555146","deps":["npm:bcryptjs"]},{"file":"src/app/routes/auth/auth.ts","hash":"9547974164574688195","deps":["npm:express-jwt","npm:express"]},{"file":"src/app/routes/auth/register-input.model.ts","hash":"38890617285716670"},{"file":"src/app/routes/auth/registered-user.model.ts","hash":"17234304908645068366"},{"file":"src/app/routes/auth/token.utils.ts","hash":"1345957085101567146","deps":["npm:jsonwebtoken"]},{"file":"src/app/routes/auth/user-request.d.ts","hash":"8361650079226281056"},{"file":"src/app/routes/auth/user.model.ts","hash":"16498157568461056873"},{"file":"src/app/routes/profile/profile.controller.ts","hash":"5948935325535734952","deps":["npm:express"]},{"file":"src/app/routes/profile/profile.model.ts","hash":"10291357492036953525"},{"file":"src/app/routes/profile/profile.service.ts","hash":"2906092364714772846"},{"file":"src/app/routes/profile/profile.utils.ts","hash":"12336430932893879311"},{"file":"src/app/routes/routes.ts","hash":"16810681332548121651","deps":["npm:express"]},{"file":"src/app/routes/tag/tag.controller.ts","hash":"17305269309262308022","deps":["npm:express"]},{"file":"src/app/routes/tag/tag.model.ts","hash":"7067413164228698434"},{"file":"src/app/routes/tag/tag.service.ts","hash":"2163275705217166729"},{"file":"src/assets/images/demo-avatar.png","hash":"10635547064654873089"},{"file":"src/assets/images/smiley-cyrus.jpeg","hash":"1144521799396656283"},{"file":"src/main.ts","hash":"6743140376432638619","deps":["npm:express","npm:cors","npm:body-parser"]},{"file":"src/prisma/migrations/20210924225358_initial/migration.sql","hash":"10714672251683580274"},{"file":"src/prisma/migrations/20211001143221_implicit_tags/migration.sql","hash":"16682500619564529209"},{"file":"src/prisma/migrations/20211105153605_api_url/migration.sql","hash":"15837459520492022337"},{"file":"src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","hash":"9415338258527948437"},{"file":"src/prisma/migrations/migration_lock.toml","hash":"5278839983338653787"},{"file":"src/prisma/prisma-client.ts","hash":"2616993957953687027","deps":["npm:@prisma/client"]},{"file":"src/prisma/schema.prisma","hash":"7905957508031160459"},{"file":"src/prisma/seed.ts","hash":"7226973811739970328","deps":["npm:@ngneat/falso","npm:@prisma/client"]},{"file":"src/tests/prisma-mock.ts","hash":"4994774544302813326","deps":["npm:jest-mock-extended","npm:@prisma/client"]},{"file":"src/tests/services/article.service.test.ts","hash":"11074275487712976364"},{"file":"src/tests/services/auth.service.test.ts","hash":"11278536666859673593","deps":["npm:bcryptjs"]},{"file":"src/tests/services/profile.service.test.ts","hash":"10925425524413667165"},{"file":"src/tests/services/tag.service.test.ts","hash":"9483847779981186927"},{"file":"src/tests/utils/profile.utils.test.ts","hash":"14619201955601212282"},{"file":"tsconfig.app.json","hash":"3424608520383813861"},{"file":"tsconfig.json","hash":"8721949915093677919"},{"file":"tsconfig.spec.json","hash":"3170436939515323801"}],"e2e":[{"file":"e2e/.eslintrc.json","hash":"2666771139683478850"},{"file":"e2e/jest.config.ts","hash":"1456555062157936470"},{"file":"e2e/project.json","hash":"172393831053734807"},{"file":"e2e/src/server/server.spec.ts","hash":"3026045886657059088","deps":["npm:axios"]},{"file":"e2e/src/support/global-setup.ts","hash":"18221119270488052961"},{"file":"e2e/src/support/global-teardown.ts","hash":"17927034305001160425"},{"file":"e2e/src/support/test-setup.ts","hash":"4165311015569872896","deps":["npm:axios"]},{"file":"e2e/tsconfig.json","hash":"3552952790334018146"},{"file":"e2e/tsconfig.spec.json","hash":"9794114284475474533"}]},"layout":{"appsDir":"apps","libsDir":"libs"},"affected":[],"focus":null,"groupByFolder":false,"exclude":[]}; + window.taskGraphResponse = {"taskGraphs":{"e2e:e2e":{"roots":["e2e:e2e"],"tasks":{"e2e:e2e":{"id":"e2e:e2e","target":{"project":"e2e","target":"e2e"},"projectRoot":"e2e","overrides":{},"outputs":["coverage/{e2eProjectRoot}"],"cache":true}},"dependencies":{"e2e:e2e":[]}},"e2e:e2e:ci":{"roots":["e2e:e2e:ci"],"tasks":{"e2e:e2e:ci":{"id":"e2e:e2e:ci","target":{"project":"e2e","target":"e2e","configuration":"ci"},"projectRoot":"e2e","overrides":{},"outputs":["coverage/{e2eProjectRoot}"],"cache":true}},"dependencies":{"e2e:e2e:ci":[]}},"e2e:lint":{"roots":["e2e:lint"],"tasks":{"e2e:lint":{"id":"e2e:lint","target":{"project":"e2e","target":"lint"},"projectRoot":"e2e","overrides":{},"outputs":[],"cache":true}},"dependencies":{"e2e:lint":[]}},"api:start":{"roots":["api:start"],"tasks":{"api:start":{"id":"api:start","target":{"project":"api","target":"start"},"projectRoot":".","overrides":{},"outputs":[]}},"dependencies":{"api:start":[]}},"api:build":{"roots":["api:build:production"],"tasks":{"api:build:production":{"id":"api:build:production","target":{"project":"api","target":"build","configuration":"production"},"projectRoot":".","overrides":{},"outputs":["dist/api"],"cache":true}},"dependencies":{"api:build:production":[]}},"api:build:development":{"roots":["api:build:development"],"tasks":{"api:build:development":{"id":"api:build:development","target":{"project":"api","target":"build","configuration":"development"},"projectRoot":".","overrides":{},"outputs":["dist/api"],"cache":true}},"dependencies":{"api:build:development":[]}},"api:build:production":{"roots":["api:build:production"],"tasks":{"api:build:production":{"id":"api:build:production","target":{"project":"api","target":"build","configuration":"production"},"projectRoot":".","overrides":{},"outputs":["dist/api"],"cache":true}},"dependencies":{"api:build:production":[]}},"api:build:prod":{"roots":["api:build:prod"],"tasks":{"api:build:prod":{"id":"api:build:prod","target":{"project":"api","target":"build:prod"},"projectRoot":".","overrides":{},"outputs":[]}},"dependencies":{"api:build:prod":[]}},"api:build:clean":{"roots":["api:build:clean"],"tasks":{"api:build:clean":{"id":"api:build:clean","target":{"project":"api","target":"build:clean"},"projectRoot":".","overrides":{},"outputs":[]}},"dependencies":{"api:build:clean":[]}},"api:test":{"roots":["api:test"],"tasks":{"api:test":{"id":"api:test","target":{"project":"api","target":"test"},"projectRoot":".","overrides":{},"outputs":["coverage/api"],"cache":true}},"dependencies":{"api:test":[]}},"api:test:ci":{"roots":["api:test:ci"],"tasks":{"api:test:ci":{"id":"api:test:ci","target":{"project":"api","target":"test","configuration":"ci"},"projectRoot":".","overrides":{},"outputs":["coverage/api"],"cache":true}},"dependencies":{"api:test:ci":[]}},"api:build:report":{"roots":["api:build:report"],"tasks":{"api:build:report":{"id":"api:build:report","target":{"project":"api","target":"build:report"},"projectRoot":".","overrides":{},"outputs":[]}},"dependencies":{"api:build:report":[]}},"api:nx-release-publish":{"roots":["api:nx-release-publish"],"tasks":{"api:nx-release-publish":{"id":"api:nx-release-publish","target":{"project":"api","target":"nx-release-publish"},"projectRoot":".","overrides":{},"outputs":[]}},"dependencies":{"api:nx-release-publish":[]}},"api:serve":{"roots":["api:serve:development"],"tasks":{"api:serve:development":{"id":"api:serve:development","target":{"project":"api","target":"serve","configuration":"development"},"projectRoot":".","overrides":{},"outputs":[]}},"dependencies":{"api:serve:development":[]}},"api:serve:development":{"roots":["api:serve:development"],"tasks":{"api:serve:development":{"id":"api:serve:development","target":{"project":"api","target":"serve","configuration":"development"},"projectRoot":".","overrides":{},"outputs":[]}},"dependencies":{"api:serve:development":[]}},"api:serve:production":{"roots":["api:serve:production"],"tasks":{"api:serve:production":{"id":"api:serve:production","target":{"project":"api","target":"serve","configuration":"production"},"projectRoot":".","overrides":{},"outputs":[]}},"dependencies":{"api:serve:production":[]}},"api:lint":{"roots":["api:lint"],"tasks":{"api:lint":{"id":"api:lint","target":{"project":"api","target":"lint"},"projectRoot":".","overrides":{},"outputs":[],"cache":true}},"dependencies":{"api:lint":[]}},"api:docker-build":{"roots":["api:build:production"],"tasks":{"api:docker-build":{"id":"api:docker-build","target":{"project":"api","target":"docker-build"},"projectRoot":".","overrides":{},"outputs":[]},"api:build:production":{"id":"api:build:production","target":{"project":"api","target":"build","configuration":"production"},"projectRoot":".","overrides":{"__overrides_unparsed__":[]},"outputs":["dist/api"],"cache":true}},"dependencies":{"api:docker-build":["api:build:production"],"api:build:production":[]}}},"errors":{},"plans":{"e2e:e2e":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/jest.preset.js","{workspaceRoot}/nx.json","api:{projectRoot}/**/*,!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap),!{projectRoot}/tsconfig.spec.json,!{projectRoot}/jest.config.[jt]s,!{projectRoot}/src/test-setup.[jt]s,!{projectRoot}/test-setup.[jt]s,!{projectRoot}/.eslintrc.json,!{projectRoot}/eslint.config.js","e2e:{projectRoot}/**/*","api:ProjectConfiguration","e2e:ProjectConfiguration","api:TsConfig","e2e:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"e2e:e2e:ci":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/jest.preset.js","{workspaceRoot}/nx.json","api:{projectRoot}/**/*,!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap),!{projectRoot}/tsconfig.spec.json,!{projectRoot}/jest.config.[jt]s,!{projectRoot}/src/test-setup.[jt]s,!{projectRoot}/test-setup.[jt]s,!{projectRoot}/.eslintrc.json,!{projectRoot}/eslint.config.js","e2e:{projectRoot}/**/*","api:ProjectConfiguration","e2e:ProjectConfiguration","api:TsConfig","e2e:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"e2e:lint":["{workspaceRoot}/.eslintignore","{workspaceRoot}/.eslintrc.json","{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/eslint.config.js","{workspaceRoot}/nx.json","e2e:{projectRoot}/**/*","e2e:ProjectConfiguration","e2e:TsConfig","npm:@nx/eslint"],"api:start":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue","AllExternalDependencies"],"api:build:production":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*,!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap),!{projectRoot}/tsconfig.spec.json,!{projectRoot}/jest.config.[jt]s,!{projectRoot}/src/test-setup.[jt]s,!{projectRoot}/test-setup.[jt]s,!{projectRoot}/.eslintrc.json,!{projectRoot}/eslint.config.js","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"api:build:development":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*,!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap),!{projectRoot}/tsconfig.spec.json,!{projectRoot}/jest.config.[jt]s,!{projectRoot}/src/test-setup.[jt]s,!{projectRoot}/test-setup.[jt]s,!{projectRoot}/.eslintrc.json,!{projectRoot}/eslint.config.js","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"api:build:prod":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue","AllExternalDependencies"],"api:build:clean":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue","AllExternalDependencies"],"api:test":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/jest.preset.js","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"api:test:ci":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/jest.preset.js","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"api:build:report":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue","AllExternalDependencies"],"api:nx-release-publish":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"api:serve:development":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"api:serve:production":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"],"api:lint":["{workspaceRoot}/.eslintignore","{workspaceRoot}/.eslintrc.json","{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/eslint.config.js","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@nx/eslint"],"api:docker-build":["{workspaceRoot}/.gitignore","{workspaceRoot}/.nxignore","{workspaceRoot}/nx.json","api:{projectRoot}/**/*","api:ProjectConfiguration","api:TsConfig","npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue","AllExternalDependencies"]}}; + window.expandedTaskInputsResponse = {"e2e:e2e":{"general":[".gitignore","jest.preset.js","nx.json"],"e2e":["e2e/.eslintrc.json","e2e/jest.config.ts","e2e/project.json","e2e/src/server/server.spec.ts","e2e/src/support/global-setup.ts","e2e/src/support/global-teardown.ts","e2e/src/support/test-setup.ts","e2e/tsconfig.json","e2e/tsconfig.spec.json"],"api":["Dockerfile","README.md","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","tsconfig.app.json","tsconfig.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"e2e:e2e:ci":{"general":[".gitignore","jest.preset.js","nx.json"],"e2e":["e2e/.eslintrc.json","e2e/jest.config.ts","e2e/project.json","e2e/src/server/server.spec.ts","e2e/src/support/global-setup.ts","e2e/src/support/global-teardown.ts","e2e/src/support/test-setup.ts","e2e/tsconfig.json","e2e/tsconfig.spec.json"],"api":["Dockerfile","README.md","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","tsconfig.app.json","tsconfig.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"e2e:lint":{"general":[".eslintignore",".eslintrc.json",".gitignore","nx.json"],"e2e":["e2e/.eslintrc.json","e2e/jest.config.ts","e2e/project.json","e2e/src/server/server.spec.ts","e2e/src/support/global-setup.ts","e2e/src/support/global-teardown.ts","e2e/src/support/test-setup.ts","e2e/tsconfig.json","e2e/tsconfig.spec.json"],"external":["npm:@nx/eslint"]},"api:start":{"general":[".gitignore","nx.json","AllExternalDependencies"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:build:production":{"general":[".gitignore","nx.json"],"api":["Dockerfile","README.md","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","tsconfig.app.json","tsconfig.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:build:development":{"general":[".gitignore","nx.json"],"api":["Dockerfile","README.md","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","tsconfig.app.json","tsconfig.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:build:prod":{"general":[".gitignore","nx.json","AllExternalDependencies"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:build:clean":{"general":[".gitignore","nx.json","AllExternalDependencies"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:test":{"general":[".gitignore","jest.preset.js","nx.json"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:test:ci":{"general":[".gitignore","jest.preset.js","nx.json"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:build:report":{"general":[".gitignore","nx.json","AllExternalDependencies"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:nx-release-publish":{"general":[".gitignore","nx.json"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:serve:development":{"general":[".gitignore","nx.json"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:serve:production":{"general":[".gitignore","nx.json"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]},"api:lint":{"general":[".eslintignore",".eslintrc.json",".gitignore","nx.json"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@nx/eslint"]},"api:docker-build":{"general":[".gitignore","nx.json","AllExternalDependencies"],"api":["Dockerfile","README.md","jest.config.ts","jest.preset.js","nx.json","package-lock.json","package.json","project-logo.png","project.json","src/app/models/http-exception.model.ts","src/app/routes/article/article.controller.ts","src/app/routes/article/article.mapper.ts","src/app/routes/article/article.model.ts","src/app/routes/article/article.service.ts","src/app/routes/article/author.mapper.ts","src/app/routes/article/comment.model.ts","src/app/routes/auth/auth.controller.ts","src/app/routes/auth/auth.service.ts","src/app/routes/auth/auth.ts","src/app/routes/auth/register-input.model.ts","src/app/routes/auth/registered-user.model.ts","src/app/routes/auth/token.utils.ts","src/app/routes/auth/user-request.d.ts","src/app/routes/auth/user.model.ts","src/app/routes/profile/profile.controller.ts","src/app/routes/profile/profile.model.ts","src/app/routes/profile/profile.service.ts","src/app/routes/profile/profile.utils.ts","src/app/routes/routes.ts","src/app/routes/tag/tag.controller.ts","src/app/routes/tag/tag.model.ts","src/app/routes/tag/tag.service.ts","src/assets/images/demo-avatar.png","src/assets/images/smiley-cyrus.jpeg","src/main.ts","src/prisma/migrations/20210924225358_initial/migration.sql","src/prisma/migrations/20211001143221_implicit_tags/migration.sql","src/prisma/migrations/20211105153605_api_url/migration.sql","src/prisma/migrations/20211221184529_deprecated_preview/migration.sql","src/prisma/migrations/migration_lock.toml","src/prisma/prisma-client.ts","src/prisma/schema.prisma","src/prisma/seed.ts","src/tests/prisma-mock.ts","src/tests/services/article.service.test.ts","src/tests/services/auth.service.test.ts","src/tests/services/profile.service.test.ts","src/tests/services/tag.service.test.ts","src/tests/utils/profile.utils.test.ts","tsconfig.app.json","tsconfig.json","tsconfig.spec.json"],"external":["npm:@aashutoshrathi/word-wrap","npm:@babel/code-frame","npm:@babel/compat-data","npm:@babel/core","npm:@babel/generator","npm:@babel/helper-annotate-as-pure","npm:@babel/helper-builder-binary-assignment-operator-visitor","npm:@babel/helper-compilation-targets","npm:@babel/helper-create-class-features-plugin","npm:@babel/helper-create-regexp-features-plugin","npm:@babel/helper-define-polyfill-provider","npm:@babel/helper-environment-visitor","npm:@babel/helper-function-name","npm:@babel/helper-globals","npm:@babel/helper-hoist-variables","npm:@babel/helper-member-expression-to-functions","npm:@babel/helper-module-imports","npm:@babel/helper-module-transforms","npm:@babel/helper-optimise-call-expression","npm:@babel/helper-plugin-utils","npm:@babel/helper-remap-async-to-generator","npm:@babel/helper-replace-supers","npm:@babel/helper-simple-access","npm:@babel/helper-skip-transparent-expression-wrappers","npm:@babel/helper-split-export-declaration","npm:@babel/helper-string-parser","npm:@babel/helper-validator-identifier","npm:@babel/helper-validator-option","npm:@babel/helper-wrap-function","npm:@babel/helpers","npm:@babel/parser","npm:@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression","npm:@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining","npm:@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly","npm:@babel/plugin-proposal-decorators","npm:@babel/plugin-proposal-private-property-in-object","npm:@babel/plugin-syntax-async-generators","npm:@babel/plugin-syntax-bigint","npm:@babel/plugin-syntax-class-properties","npm:@babel/plugin-syntax-class-static-block","npm:@babel/plugin-syntax-decorators","npm:@babel/plugin-syntax-dynamic-import","npm:@babel/plugin-syntax-export-namespace-from","npm:@babel/plugin-syntax-import-assertions","npm:@babel/plugin-syntax-import-attributes","npm:@babel/plugin-syntax-import-meta","npm:@babel/plugin-syntax-json-strings","npm:@babel/plugin-syntax-jsx","npm:@babel/plugin-syntax-logical-assignment-operators","npm:@babel/plugin-syntax-nullish-coalescing-operator","npm:@babel/plugin-syntax-numeric-separator","npm:@babel/plugin-syntax-object-rest-spread","npm:@babel/plugin-syntax-optional-catch-binding","npm:@babel/plugin-syntax-optional-chaining","npm:@babel/plugin-syntax-private-property-in-object","npm:@babel/plugin-syntax-top-level-await","npm:@babel/plugin-syntax-typescript","npm:@babel/plugin-syntax-unicode-sets-regex","npm:@babel/plugin-transform-arrow-functions","npm:@babel/plugin-transform-async-generator-functions","npm:@babel/plugin-transform-async-to-generator","npm:@babel/plugin-transform-block-scoped-functions","npm:@babel/plugin-transform-block-scoping","npm:@babel/plugin-transform-class-properties","npm:@babel/plugin-transform-class-static-block","npm:@babel/plugin-transform-classes","npm:@babel/plugin-transform-computed-properties","npm:@babel/plugin-transform-destructuring","npm:@babel/plugin-transform-dotall-regex","npm:@babel/plugin-transform-duplicate-keys","npm:@babel/plugin-transform-dynamic-import","npm:@babel/plugin-transform-exponentiation-operator","npm:@babel/plugin-transform-export-namespace-from","npm:@babel/plugin-transform-for-of","npm:@babel/plugin-transform-function-name","npm:@babel/plugin-transform-json-strings","npm:@babel/plugin-transform-literals","npm:@babel/plugin-transform-logical-assignment-operators","npm:@babel/plugin-transform-member-expression-literals","npm:@babel/plugin-transform-modules-amd","npm:@babel/plugin-transform-modules-commonjs","npm:@babel/plugin-transform-modules-systemjs","npm:@babel/plugin-transform-modules-umd","npm:@babel/plugin-transform-named-capturing-groups-regex","npm:@babel/plugin-transform-new-target","npm:@babel/plugin-transform-nullish-coalescing-operator","npm:@babel/plugin-transform-numeric-separator","npm:@babel/plugin-transform-object-rest-spread","npm:@babel/plugin-transform-object-super","npm:@babel/plugin-transform-optional-catch-binding","npm:@babel/plugin-transform-optional-chaining","npm:@babel/plugin-transform-parameters","npm:@babel/plugin-transform-private-methods","npm:@babel/plugin-transform-private-property-in-object","npm:@babel/plugin-transform-property-literals","npm:@babel/plugin-transform-regenerator","npm:@babel/plugin-transform-reserved-words","npm:@babel/plugin-transform-runtime","npm:@babel/plugin-transform-shorthand-properties","npm:@babel/plugin-transform-spread","npm:@babel/plugin-transform-sticky-regex","npm:@babel/plugin-transform-template-literals","npm:@babel/plugin-transform-typeof-symbol","npm:@babel/plugin-transform-typescript","npm:@babel/plugin-transform-unicode-escapes","npm:@babel/plugin-transform-unicode-property-regex","npm:@babel/plugin-transform-unicode-regex","npm:@babel/plugin-transform-unicode-sets-regex","npm:@babel/preset-env","npm:@babel/preset-modules","npm:@babel/preset-typescript","npm:@babel/regjsgen","npm:@babel/runtime","npm:@babel/template","npm:@babel/traverse","npm:@babel/types","npm:@bcoe/v8-coverage","npm:@cspotcode/source-map-support","npm:@esbuild/aix-ppc64","npm:@esbuild/android-arm","npm:@esbuild/android-arm64","npm:@esbuild/android-x64","npm:@esbuild/darwin-arm64","npm:@esbuild/darwin-x64","npm:@esbuild/freebsd-arm64","npm:@esbuild/freebsd-x64","npm:@esbuild/linux-arm","npm:@esbuild/linux-arm64","npm:@esbuild/linux-ia32","npm:@esbuild/linux-loong64","npm:@esbuild/linux-mips64el","npm:@esbuild/linux-ppc64","npm:@esbuild/linux-riscv64","npm:@esbuild/linux-s390x","npm:@esbuild/linux-x64","npm:@esbuild/netbsd-x64","npm:@esbuild/openbsd-x64","npm:@esbuild/sunos-x64","npm:@esbuild/win32-arm64","npm:@esbuild/win32-ia32","npm:@esbuild/win32-x64","npm:@eslint-community/eslint-utils","npm:@eslint-community/regexpp","npm:@eslint/eslintrc","npm:@eslint/js","npm:@humanwhocodes/config-array","npm:@humanwhocodes/module-importer","npm:@humanwhocodes/object-schema","npm:@isaacs/cliui","npm:@istanbuljs/load-nyc-config","npm:@istanbuljs/schema","npm:@jest/console","npm:@jest/console@30.3.0","npm:@jest/core","npm:@jest/environment","npm:@jest/expect","npm:@jest/expect-utils","npm:@jest/fake-timers","npm:@jest/globals","npm:@jest/pattern","npm:@jest/reporters","npm:@jest/reporters@30.3.0","npm:@jest/schemas","npm:@jest/schemas@30.0.5","npm:@jest/source-map","npm:@jest/test-result","npm:@jest/test-result@30.3.0","npm:@jest/test-sequencer","npm:@jest/transform","npm:@jest/transform@30.3.0","npm:@jest/types","npm:@jest/types@30.3.0","npm:@jridgewell/gen-mapping","npm:@jridgewell/remapping","npm:@jridgewell/resolve-uri","npm:@jridgewell/sourcemap-codec","npm:@jridgewell/trace-mapping","npm:@jridgewell/trace-mapping@0.3.9","npm:@ngneat/falso","npm:@nodelib/fs.scandir","npm:@nodelib/fs.stat","npm:@nodelib/fs.walk","npm:@nrwl/devkit","npm:@nrwl/esbuild","npm:@nrwl/eslint-plugin-nx","npm:@nrwl/jest","npm:@nrwl/js","npm:@nrwl/node","npm:@nrwl/tao","npm:@nrwl/workspace","npm:@nx/devkit","npm:@nx/esbuild","npm:@nx/eslint","npm:@nx/eslint-plugin","npm:@nx/jest","npm:@nx/js","npm:@nx/linter","npm:@nx/node","npm:@nx/nx-darwin-arm64","npm:@nx/nx-darwin-x64","npm:@nx/nx-freebsd-x64","npm:@nx/nx-linux-arm-gnueabihf","npm:@nx/nx-linux-arm64-gnu","npm:@nx/nx-linux-arm64-musl","npm:@nx/nx-linux-x64-gnu","npm:@nx/nx-linux-x64-musl","npm:@nx/nx-win32-arm64-msvc","npm:@nx/nx-win32-x64-msvc","npm:@nx/workspace","npm:@phenomnomnominal/tsquery","npm:@pkgjs/parseargs","npm:@prisma/client","npm:@prisma/engines","npm:@prisma/engines-version","npm:@sinclair/typebox","npm:@sinclair/typebox@0.34.49","npm:@sinonjs/commons","npm:@sinonjs/fake-timers","npm:@swc-node/core","npm:@swc-node/register","npm:@swc-node/sourcemap-support","npm:@swc/core","npm:@swc/core-darwin-arm64","npm:@swc/core-darwin-x64","npm:@swc/core-linux-arm-gnueabihf","npm:@swc/core-linux-arm64-gnu","npm:@swc/core-linux-arm64-musl","npm:@swc/core-linux-x64-gnu","npm:@swc/core-linux-x64-musl","npm:@swc/core-win32-arm64-msvc","npm:@swc/core-win32-ia32-msvc","npm:@swc/core-win32-x64-msvc","npm:@swc/counter","npm:@swc/types","npm:@tsconfig/node10","npm:@tsconfig/node12","npm:@tsconfig/node14","npm:@tsconfig/node16","npm:@types/babel__core","npm:@types/babel__generator","npm:@types/babel__template","npm:@types/babel__traverse","npm:@types/bcryptjs","npm:@types/body-parser","npm:@types/connect","npm:@types/cors","npm:@types/express","npm:@types/express-serve-static-core","npm:@types/graceful-fs","npm:@types/http-errors","npm:@types/istanbul-lib-coverage","npm:@types/istanbul-lib-report","npm:@types/istanbul-reports","npm:@types/jest","npm:@types/json-schema","npm:@types/jsonwebtoken","npm:@types/mime","npm:@types/node","npm:@types/parse-json","npm:@types/qs","npm:@types/range-parser","npm:@types/semver","npm:@types/send","npm:@types/serve-static","npm:@types/stack-utils","npm:@types/yargs","npm:@types/yargs-parser","npm:@typescript-eslint/eslint-plugin","npm:@typescript-eslint/parser","npm:@typescript-eslint/scope-manager","npm:@typescript-eslint/type-utils","npm:@typescript-eslint/types","npm:@typescript-eslint/typescript-estree","npm:@typescript-eslint/utils","npm:@typescript-eslint/visitor-keys","npm:@ungap/structured-clone","npm:@yarnpkg/lockfile","npm:@yarnpkg/parsers","npm:@zkochan/js-yaml","npm:accepts","npm:acorn","npm:acorn-jsx","npm:acorn-walk","npm:address","npm:ajv","npm:ansi-colors","npm:ansi-escapes","npm:ansi-regex","npm:ansi-regex@6.2.2","npm:ansi-styles","npm:ansi-styles@5.2.0","npm:ansi-styles@6.2.3","npm:anymatch","npm:arg","npm:argparse","npm:argparse@1.0.10","npm:array-flatten","npm:array-union","npm:async","npm:asynckit","npm:axios","npm:babel-jest","npm:babel-plugin-const-enum","npm:babel-plugin-istanbul","npm:babel-plugin-istanbul@7.0.1","npm:babel-plugin-jest-hoist","npm:babel-plugin-macros@2.8.0","npm:babel-plugin-polyfill-corejs2","npm:babel-plugin-polyfill-corejs3","npm:babel-plugin-polyfill-regenerator","npm:babel-plugin-transform-typescript-metadata","npm:babel-preset-current-node-syntax","npm:babel-preset-jest","npm:balanced-match","npm:base64-js","npm:baseline-browser-mapping","npm:bcryptjs","npm:bl","npm:body-parser","npm:body-parser@1.20.1","npm:brace-expansion","npm:brace-expansion@2.0.1","npm:brace-expansion@2.1.0","npm:braces","npm:browserslist","npm:bs-logger","npm:bser","npm:buffer","npm:buffer-equal-constant-time","npm:buffer-from","npm:builtins","npm:bytes","npm:call-bind","npm:callsites","npm:camelcase","npm:camelcase@6.3.0","npm:caniuse-lite","npm:chalk","npm:char-regex","npm:ci-info","npm:ci-info@4.4.0","npm:cjs-module-lexer","npm:cli-cursor","npm:cli-spinners","npm:cliui","npm:clone","npm:co","npm:collect-v8-coverage","npm:color-convert","npm:color-name","npm:colorette","npm:columnify","npm:combined-stream","npm:concat-map","npm:confusing-browser-globals","npm:content-disposition","npm:content-type","npm:convert-source-map","npm:cookie","npm:cookie-signature","npm:core-js-compat","npm:cors","npm:cosmiconfig@6.0.0","npm:create-jest","npm:create-require","npm:cross-spawn","npm:dateformat","npm:debug","npm:debug@2.6.9","npm:dedent","npm:deep-is","npm:deepmerge","npm:defaults","npm:define-data-property","npm:define-lazy-prop","npm:delayed-stream","npm:depd","npm:destroy","npm:detect-newline","npm:detect-port","npm:diff","npm:diff-sequences","npm:dir-glob","npm:doctrine","npm:dotenv","npm:dotenv-expand","npm:duplexer","npm:eastasianwidth","npm:ecdsa-sig-formatter","npm:ee-first","npm:ejs","npm:electron-to-chromium","npm:emittery","npm:emoji-regex","npm:emoji-regex@9.2.2","npm:encodeurl","npm:end-of-stream","npm:enquirer","npm:error-ex","npm:esbuild","npm:escalade","npm:escape-html","npm:escape-string-regexp","npm:escape-string-regexp@2.0.0","npm:escape-string-regexp@4.0.0","npm:eslint","npm:eslint-config-prettier","npm:eslint-scope","npm:eslint-visitor-keys","npm:espree","npm:esprima","npm:esquery","npm:esrecurse","npm:estraverse","npm:esutils","npm:etag","npm:execa","npm:exit","npm:exit-x","npm:expect","npm:express","npm:express-jwt","npm:express-unless","npm:fast-deep-equal","npm:fast-glob","npm:fast-glob@3.3.2","npm:fast-json-stable-stringify","npm:fast-levenshtein","npm:fastq","npm:fb-watchman","npm:figures","npm:file-entry-cache","npm:filelist","npm:fill-range","npm:finalhandler","npm:find-up","npm:find-up@5.0.0","npm:flat","npm:flat-cache","npm:flatted","npm:follow-redirects","npm:foreground-child","npm:form-data","npm:forwarded","npm:fresh","npm:fs-constants","npm:fs-extra","npm:fs.realpath","npm:fsevents","npm:function-bind","npm:gensync","npm:get-caller-file","npm:get-intrinsic","npm:get-package-type","npm:get-stream","npm:glob","npm:glob-parent","npm:glob-parent@6.0.2","npm:glob@10.5.0","npm:glob@7.1.4","npm:globals","npm:globals@13.24.0","npm:globby","npm:gopd","npm:graceful-fs","npm:graphemer","npm:harmony-reflect","npm:has-flag","npm:has-property-descriptors","npm:has-proto","npm:has-symbols","npm:hasown","npm:hosted-git-info","npm:html-escaper","npm:http-errors","npm:human-signals","npm:iconv-lite","npm:identity-obj-proxy","npm:ieee754","npm:ignore","npm:import-fresh","npm:import-local","npm:imurmurhash","npm:inflight","npm:inherits","npm:ipaddr.js","npm:is-arrayish","npm:is-core-module","npm:is-docker","npm:is-extglob","npm:is-fullwidth-code-point","npm:is-generator-fn","npm:is-glob","npm:is-interactive","npm:is-number","npm:is-path-inside","npm:is-stream","npm:is-unicode-supported","npm:is-wsl","npm:isexe","npm:istanbul-lib-coverage","npm:istanbul-lib-instrument","npm:istanbul-lib-instrument@5.2.1","npm:istanbul-lib-report","npm:istanbul-lib-source-maps","npm:istanbul-lib-source-maps@5.0.6","npm:istanbul-reports","npm:jackspeak","npm:jake","npm:jest","npm:jest-changed-files","npm:jest-circus","npm:jest-cli","npm:jest-config","npm:jest-diff","npm:jest-docblock","npm:jest-each","npm:jest-environment-node","npm:jest-get-type","npm:jest-haste-map","npm:jest-haste-map@30.3.0","npm:jest-html-reporter","npm:jest-leak-detector","npm:jest-matcher-utils","npm:jest-message-util","npm:jest-message-util@30.3.0","npm:jest-mock","npm:jest-mock-extended","npm:jest-pnp-resolver","npm:jest-regex-util","npm:jest-regex-util@30.0.1","npm:jest-resolve","npm:jest-resolve-dependencies","npm:jest-runner","npm:jest-runtime","npm:jest-snapshot","npm:jest-util","npm:jest-util@30.3.0","npm:jest-validate","npm:jest-watcher","npm:jest-worker","npm:jest-worker@30.3.0","npm:js-tokens","npm:js-yaml","npm:js-yaml@3.14.1","npm:jsesc","npm:jsesc@0.5.0","npm:json-buffer","npm:json-parse-even-better-errors","npm:json-schema-traverse","npm:json-stable-stringify-without-jsonify","npm:json5","npm:jsonc-eslint-parser","npm:jsonc-parser","npm:jsonfile","npm:jsonwebtoken","npm:jwa","npm:jws","npm:keyv","npm:kleur","npm:leven","npm:levn","npm:lines-and-columns","npm:lines-and-columns@1.2.4","npm:locate-path","npm:locate-path@6.0.0","npm:lodash.debounce","npm:lodash.includes","npm:lodash.isboolean","npm:lodash.isinteger","npm:lodash.isnumber","npm:lodash.isplainobject","npm:lodash.isstring","npm:lodash.memoize","npm:lodash.merge","npm:lodash.once","npm:log-symbols","npm:lru-cache","npm:lru-cache@10.1.0","npm:lru-cache@10.4.3","npm:lru-cache@6.0.0","npm:make-dir","npm:make-error","npm:makeerror","npm:media-typer","npm:merge-descriptors","npm:merge-stream","npm:merge2","npm:methods","npm:micromatch","npm:mime","npm:mime-db","npm:mime-types","npm:mimic-fn","npm:minimatch","npm:minimatch@3.1.2","npm:minimatch@5.1.6","npm:minimatch@9.0.9","npm:minimist","npm:minipass","npm:mkdirp","npm:ms","npm:ms@2.0.0","npm:ms@2.1.3","npm:natural-compare","npm:negotiator","npm:node-int64","npm:node-machine-id","npm:node-releases","npm:normalize-path","npm:npm-package-arg","npm:npm-run-path","npm:nx","npm:object-assign","npm:object-inspect","npm:on-finished","npm:once","npm:onetime","npm:open","npm:optionator","npm:ora","npm:p-limit","npm:p-limit@2.3.0","npm:p-locate","npm:p-locate@5.0.0","npm:p-try","npm:package-json-from-dist","npm:parent-module","npm:parse-json","npm:parseurl","npm:path-exists","npm:path-is-absolute","npm:path-key","npm:path-parse","npm:path-scurry","npm:path-to-regexp","npm:path-type","npm:picocolors","npm:picomatch","npm:picomatch@4.0.4","npm:pirates","npm:pkg-dir","npm:prelude-ls","npm:prettier","npm:pretty-format","npm:pretty-format@30.3.0","npm:prisma","npm:proc-log","npm:prompts","npm:proxy-addr","npm:proxy-from-env","npm:punycode","npm:pure-rand","npm:qs","npm:queue-microtask","npm:range-parser","npm:raw-body","npm:raw-body@2.5.1","npm:react-is","npm:readable-stream","npm:regenerate","npm:regenerate-unicode-properties","npm:regenerator-runtime","npm:regenerator-transform","npm:regexpu-core","npm:regjsparser","npm:require-directory","npm:resolve","npm:resolve-cwd","npm:resolve-from","npm:resolve-from@4.0.0","npm:resolve.exports","npm:resolve.exports@2.0.2","npm:restore-cursor","npm:reusify","npm:rimraf","npm:run-parallel","npm:safe-buffer","npm:safer-buffer","npm:seedrandom","npm:semver","npm:semver@6.3.1","npm:semver@7.5.4","npm:send","npm:serve-static","npm:set-function-length","npm:setprototypeof","npm:shebang-command","npm:shebang-regex","npm:side-channel","npm:signal-exit","npm:signal-exit@4.1.0","npm:sisteransi","npm:slash","npm:slugify","npm:source-map","npm:source-map-support","npm:source-map-support@0.5.13","npm:source-map-support@0.5.21","npm:sprintf-js","npm:stack-utils","npm:statuses","npm:string-length","npm:string-width","npm:string-width@5.1.2","npm:string_decoder","npm:strip-ansi","npm:strip-ansi@7.2.0","npm:strip-bom","npm:strip-bom@3.0.0","npm:strip-final-newline","npm:strip-json-comments","npm:strong-log-transformer","npm:supports-color","npm:supports-color@8.1.1","npm:supports-preserve-symlinks-flag","npm:tar-stream","npm:test-exclude","npm:text-table","npm:through","npm:tmp","npm:tmpl","npm:to-regex-range","npm:toidentifier","npm:ts-api-utils","npm:ts-essentials","npm:ts-jest","npm:ts-node","npm:tsconfig-paths","npm:tslib","npm:type-check","npm:type-detect","npm:type-fest","npm:type-fest@0.20.2","npm:type-is","npm:typescript","npm:unicode-canonical-property-names-ecmascript","npm:unicode-match-property-ecmascript","npm:unicode-match-property-value-ecmascript","npm:unicode-property-aliases-ecmascript","npm:universalify","npm:unpipe","npm:update-browserslist-db","npm:uri-js","npm:util-deprecate","npm:utils-merge","npm:uuid","npm:v8-compile-cache-lib","npm:v8-to-istanbul","npm:validate-npm-package-name","npm:vary","npm:walker","npm:wcwidth","npm:which","npm:wrap-ansi","npm:wrap-ansi@8.1.0","npm:wrappy","npm:write-file-atomic","npm:write-file-atomic@5.0.1","npm:xmlbuilder","npm:y18n","npm:yallist","npm:yallist@4.0.0","npm:yaml","npm:yargs","npm:yargs-parser","npm:yn","npm:yocto-queue"]}};window.sourceMapsResponse = {".":{"root":["project.json","nx-core-build-project-json-nodes"],"name":["project.json","nx-core-build-project-json-nodes"],"targets":["project.json","nx-core-build-project-json-nodes"],"targets.start":["project.json","nx-core-build-package-json-nodes-next-to-project-json-nodes"],"targets.start.executor":["project.json","nx-core-build-package-json-nodes-next-to-project-json-nodes"],"targets.start.options":["project.json","nx-core-build-package-json-nodes-next-to-project-json-nodes"],"targets.start.options.script":["project.json","nx-core-build-package-json-nodes-next-to-project-json-nodes"],"targets.nx-release-publish":["project.json","nx-core-build-package-json-nodes-next-to-project-json-nodes"],"targets.nx-release-publish.dependsOn":["project.json","nx-core-build-package-json-nodes-next-to-project-json-nodes"],"targets.nx-release-publish.executor":["project.json","nx-core-build-package-json-nodes-next-to-project-json-nodes"],"targets.nx-release-publish.options":["project.json","nx-core-build-package-json-nodes-next-to-project-json-nodes"],"$schema":["project.json","nx-core-build-project-json-nodes"],"sourceRoot":["project.json","nx-core-build-project-json-nodes"],"projectType":["project.json","nx-core-build-project-json-nodes"],"tags":["project.json","nx-core-build-project-json-nodes"],"targets.build":["project.json","nx-core-build-project-json-nodes"],"targets.build.executor":["project.json","nx-core-build-project-json-nodes"],"targets.build.outputs":["project.json","nx-core-build-project-json-nodes"],"targets.build.defaultConfiguration":["project.json","nx-core-build-project-json-nodes"],"targets.build.options":["project.json","nx-core-build-project-json-nodes"],"targets.build.configurations":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.platform":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.outputPath":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.format":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.bundle":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.main":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.tsConfig":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.assets":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.generatePackageJson":["project.json","nx-core-build-project-json-nodes"],"targets.build.options.esbuildOptions":["project.json","nx-core-build-project-json-nodes"],"targets.build.configurations.development":["project.json","nx-core-build-project-json-nodes"],"targets.build.configurations.production":["project.json","nx-core-build-project-json-nodes"],"targets.build.configurations.production.generateLockfile":["project.json","nx-core-build-project-json-nodes"],"targets.build.configurations.production.esbuildOptions":["project.json","nx-core-build-project-json-nodes"],"targets.serve":["project.json","nx-core-build-project-json-nodes"],"targets.serve.executor":["project.json","nx-core-build-project-json-nodes"],"targets.serve.defaultConfiguration":["project.json","nx-core-build-project-json-nodes"],"targets.serve.options":["project.json","nx-core-build-project-json-nodes"],"targets.serve.configurations":["project.json","nx-core-build-project-json-nodes"],"targets.serve.options.buildTarget":["project.json","nx-core-build-project-json-nodes"],"targets.serve.configurations.development":["project.json","nx-core-build-project-json-nodes"],"targets.serve.configurations.development.buildTarget":["project.json","nx-core-build-project-json-nodes"],"targets.serve.configurations.production":["project.json","nx-core-build-project-json-nodes"],"targets.serve.configurations.production.buildTarget":["project.json","nx-core-build-project-json-nodes"],"targets.lint":["project.json","nx-core-build-project-json-nodes"],"targets.lint.executor":["project.json","nx-core-build-project-json-nodes"],"targets.lint.outputs":["project.json","nx-core-build-project-json-nodes"],"targets.lint.options":["project.json","nx-core-build-project-json-nodes"],"targets.lint.options.lintFilePatterns":["project.json","nx-core-build-project-json-nodes"],"targets.test":["project.json","nx-core-build-project-json-nodes"],"targets.test.executor":["project.json","nx-core-build-project-json-nodes"],"targets.test.outputs":["project.json","nx-core-build-project-json-nodes"],"targets.test.options":["project.json","nx-core-build-project-json-nodes"],"targets.test.options.jestConfig":["project.json","nx-core-build-project-json-nodes"],"targets.docker-build":["project.json","nx-core-build-project-json-nodes"],"targets.docker-build.dependsOn":["project.json","nx-core-build-project-json-nodes"],"targets.docker-build.command":["project.json","nx-core-build-project-json-nodes"]},"e2e":{"root":["e2e/project.json","nx-core-build-project-json-nodes"],"name":["e2e/project.json","nx-core-build-project-json-nodes"],"$schema":["e2e/project.json","nx-core-build-project-json-nodes"],"implicitDependencies":["e2e/project.json","nx-core-build-project-json-nodes"],"projectType":["e2e/project.json","nx-core-build-project-json-nodes"],"targets":["e2e/project.json","nx-core-build-project-json-nodes"],"implicitDependencies.api":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.e2e":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.e2e.executor":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.e2e.outputs":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.e2e.options":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.e2e.options.jestConfig":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.e2e.options.passWithNoTests":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.lint":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.lint.executor":["e2e/project.json","nx-core-build-project-json-nodes"],"targets.lint.outputs":["e2e/project.json","nx-core-build-project-json-nodes"]}}; \ No newline at end of file diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 000000000..317ebcb23 Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/main.js b/static/main.js new file mode 100644 index 000000000..592dbac71 --- /dev/null +++ b/static/main.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[0],{72486:(e,t,n)=>{"use strict";n.r(t);var r=n(33286),i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),l=s.next();!l.done;l=s.next()){var u=l.value;a[u]=e[u]}}catch(d){r={error:d}}finally{try{l&&!l.done&&(o=s.return)&&o.call(s)}finally{if(r)throw r.error}}var c=JSON.parse(f(a,n));return f(i(i({},e),c))}function p(e,t){e.machine,e.configuration,e.history;var n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=o.filter(Boolean),l=await(null==a.isRTL?void 0:a.isRTL(t));let u=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:d}=N(u,r,l),f=r,h={},p=0;for(let v=0;v({name:"arrow",options:e,async fn(t){const{element:n,padding:r=0}=e||{},{x:i,y:o,placement:a,rects:s,platform:l}=t;if(null==n)return{};const u=S(r),c={x:i,y:o},d=E(a),f=w(d),h=await l.getDimensions(n),p="y"===d?"top":"left",v="y"===d?"bottom":"right",m=s.reference[f]+s.reference[d]-c[d]-s.floating[f],g=c[d]-s.reference[d],y=await(null==l.getOffsetParent?void 0:l.getOffsetParent(n));let b=y?"y"===d?y.clientHeight||0:y.clientWidth||0:0;0===b&&(b=s.floating[f]);const _=m/2-g/2,N=u[p],k=b-h[f]-u[v],P=b/2-h[f]/2+_,C=D(N,P,k),T=null!=x(a)&&P!=C&&s.reference[f]/2-(Pe.concat(t,t+"-start",t+"-end")),[]),{left:"right",right:"left",bottom:"top",top:"bottom"});function R(e){return e.replace(/left|right|bottom|top/g,(e=>M[e]))}function I(e,t,n){void 0===n&&(n=!1);const r=x(e),i=E(e),o=w(i);let a="x"===i?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=R(a)),{main:a,cross:R(a)}}const L={start:"end",end:"start"};function B(e){return e.replace(/start|end/g,(e=>L[e]))}const F=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n;const{placement:r,middlewareData:i,rects:o,initialPlacement:a,platform:s,elements:l}=t,{mainAxis:u=!0,crossAxis:c=!0,fallbackPlacements:d,fallbackStrategy:f="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:p=!0,...v}=e,m=_(r),g=_(a)===a,y=await(null==s.isRTL?void 0:s.isRTL(l.floating)),b=d||(g||!p?[R(a)]:function(e){const t=R(e);return[B(e),t,B(t)]}(a));d||"none"===h||b.push(...function(e,t,n,r){const i=x(e);let o=function(e,t,n){const r=["left","right"],i=["right","left"],o=["top","bottom"],a=["bottom","top"];switch(e){case"top":case"bottom":return n?t?i:r:t?r:i;case"left":case"right":return t?o:a;default:return[]}}(_(e),"start"===n,r);return i&&(o=o.map((e=>e+"-"+i)),t&&(o=o.concat(o.map(B)))),o}(a,p,h,y));const w=[a,...b],E=await C(t,v),N=[];let k=(null==(n=i.flip)?void 0:n.overflows)||[];if(u&&N.push(E[m]),c){const{main:e,cross:t}=I(r,o,y);N.push(E[e],E[t])}if(k=[...k,{placement:r,overflows:N}],!N.every((e=>e<=0))){var S,P;const e=((null==(S=i.flip)?void 0:S.index)||0)+1,t=w[e];if(t)return{data:{index:e,overflows:k},reset:{placement:t}};let n=null==(P=k.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:P.placement;if(!n)switch(f){case"bestFit":{var T;const e=null==(T=k.map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:T[0];e&&(n=e);break}case"initialPlacement":n=a}if(r!==n)return{reset:{placement:n}}}return{}}}};const z=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){const{x:n,y:r}=t,i=await async function(e,t){const{placement:n,platform:r,elements:i}=e,o=await(null==r.isRTL?void 0:r.isRTL(i.floating)),a=_(n),s=x(n),l="x"===E(n),u=["left","top"].includes(a)?-1:1,c=o&&l?-1:1,d="function"==typeof t?t(e):t;let{mainAxis:f,crossAxis:h,alignmentAxis:p}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return s&&"number"==typeof p&&(h="end"===s?-1*p:p),l?{x:h*c,y:f*u}:{x:f*u,y:h*c}}(t,e);return{x:n+i.x,y:r+i.y,data:i}}}};function V(e){return"x"===e?"y":"x"}const G=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=e,u={x:n,y:r},c=await C(t,l),d=E(_(i)),f=V(d);let h=u[d],p=u[f];if(o){const e="y"===d?"bottom":"right";h=D(h+c["y"===d?"top":"left"],h,h-c[e])}if(a){const e="y"===f?"bottom":"right";p=D(p+c["y"===f?"top":"left"],p,p-c[e])}const v=s.fn({...t,[d]:h,[f]:p});return{...v,data:{x:v.x-n,y:v.y-r}}}}};function U(e){var t;return(null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function W(e){return U(e).getComputedStyle(e)}const q=Math.min,H=Math.max,Y=Math.round;function X(e){const t=W(e);let n=parseFloat(t.width),r=parseFloat(t.height);const i=e.offsetWidth,o=e.offsetHeight,a=Y(n)!==i||Y(r)!==o;return a&&(n=i,r=o),{width:n,height:r,fallback:a}}function $(e){return ee(e)?(e.nodeName||"").toLowerCase():""}let K;function Z(){if(K)return K;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(K=e.brands.map((e=>e.brand+"/"+e.version)).join(" "),K):navigator.userAgent}function Q(e){return e instanceof U(e).HTMLElement}function J(e){return e instanceof U(e).Element}function ee(e){return e instanceof U(e).Node}function te(e){return"undefined"!=typeof ShadowRoot&&(e instanceof U(e).ShadowRoot||e instanceof ShadowRoot)}function ne(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=W(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(i)}function re(e){return["table","td","th"].includes($(e))}function ie(e){const t=/firefox/i.test(Z()),n=W(e),r=n.backdropFilter||n.WebkitBackdropFilter;return"none"!==n.transform||"none"!==n.perspective||!!r&&"none"!==r||t&&"filter"===n.willChange||t&&!!n.filter&&"none"!==n.filter||["transform","perspective"].some((e=>n.willChange.includes(e)))||["paint","layout","strict","content"].some((e=>{const t=n.contain;return null!=t&&t.includes(e)}))}function oe(){return/^((?!chrome|android).)*safari/i.test(Z())}function ae(e){return["html","body","#document"].includes($(e))}function se(e){return J(e)?e:e.contextElement}const le={x:1,y:1};function ue(e){const t=se(e);if(!Q(t))return le;const n=t.getBoundingClientRect(),{width:r,height:i,fallback:o}=X(t);let a=(o?Y(n.width):n.width)/r,s=(o?Y(n.height):n.height)/i;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}function ce(e,t,n,r){var i,o;void 0===t&&(t=!1),void 0===n&&(n=!1);const a=e.getBoundingClientRect(),s=se(e);let l=le;t&&(r?J(r)&&(l=ue(r)):l=ue(e));const u=s?U(s):window,c=oe()&&n;let d=(a.left+(c&&(null==(i=u.visualViewport)?void 0:i.offsetLeft)||0))/l.x,f=(a.top+(c&&(null==(o=u.visualViewport)?void 0:o.offsetTop)||0))/l.y,h=a.width/l.x,p=a.height/l.y;if(s){const e=U(s),t=r&&J(r)?U(r):r;let n=e.frameElement;for(;n&&r&&t!==e;){const e=ue(n),t=n.getBoundingClientRect(),r=getComputedStyle(n);t.x+=(n.clientLeft+parseFloat(r.paddingLeft))*e.x,t.y+=(n.clientTop+parseFloat(r.paddingTop))*e.y,d*=e.x,f*=e.y,h*=e.x,p*=e.y,d+=t.x,f+=t.y,n=U(n).frameElement}}return{width:h,height:p,top:f,right:d+h,bottom:f+p,left:d,x:d,y:f}}function de(e){return((ee(e)?e.ownerDocument:e.document)||window.document).documentElement}function fe(e){return J(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function he(e){return ce(de(e)).left+fe(e).scrollLeft}function pe(e){if("html"===$(e))return e;const t=e.assignedSlot||e.parentNode||te(e)&&e.host||de(e);return te(t)?t.host:t}function ve(e){const t=pe(e);return ae(t)?t.ownerDocument.body:Q(t)&&ne(t)?t:ve(t)}function me(e,t){var n;void 0===t&&(t=[]);const r=ve(e),i=r===(null==(n=e.ownerDocument)?void 0:n.body),o=U(r);return i?t.concat(o,o.visualViewport||[],ne(r)?r:[]):t.concat(r,me(r))}function ge(e,t,n){let r;if("viewport"===t)r=function(e,t){const n=U(e),r=de(e),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;const e=oe();(!e||e&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s,y:l}}(e,n);else if("document"===t)r=function(e){const t=de(e),n=fe(e),r=e.ownerDocument.body,i=H(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=H(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+he(e);const s=-n.scrollTop;return"rtl"===W(r).direction&&(a+=H(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:s}}(de(e));else if(J(t))r=function(e,t){const n=ce(e,!0,"fixed"===t),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=Q(e)?ue(e):{x:1,y:1};return{width:e.clientWidth*o.x,height:e.clientHeight*o.y,x:i*o.x,y:r*o.y}}(t,n);else{const n={...t};if(oe()){var i,o;const t=U(e);n.x-=(null==(i=t.visualViewport)?void 0:i.offsetLeft)||0,n.y-=(null==(o=t.visualViewport)?void 0:o.offsetTop)||0}r=n}return P(r)}function ye(e,t){return Q(e)&&"fixed"!==W(e).position?t?t(e):e.offsetParent:null}function be(e,t){const n=U(e);let r=ye(e,t);for(;r&&re(r)&&"static"===W(r).position;)r=ye(r,t);return r&&("html"===$(r)||"body"===$(r)&&"static"===W(r).position&&!ie(r))?n:r||function(e){let t=pe(e);for(;Q(t)&&!ae(t);){if(ie(t))return t;t=pe(t)}return null}(e)||n}function xe(e,t,n){const r=Q(t),i=de(t),o=ce(e,!0,"fixed"===n,t);let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&"fixed"!==n)if(("body"!==$(t)||ne(i))&&(a=fe(t)),Q(t)){const e=ce(t,!0);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else i&&(s.x=he(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}const we={getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o="clippingAncestors"===n?function(e,t){const n=t.get(e);if(n)return n;let r=me(e).filter((e=>J(e)&&"body"!==$(e))),i=null;const o="fixed"===W(e).position;let a=o?pe(e):e;for(;J(a)&&!ae(a);){const e=W(a),t=ie(a);"fixed"===e.position?i=null:(o?t||i:t||"static"!==e.position||!i||!["absolute","fixed"].includes(i.position))?i=e:r=r.filter((e=>e!==a)),a=pe(a)}return t.set(e,r),r}(t,this._c):[].concat(n),a=[...o,r],s=a[0],l=a.reduce(((e,n)=>{const r=ge(t,n,i);return e.top=H(r.top,e.top),e.right=q(r.right,e.right),e.bottom=q(r.bottom,e.bottom),e.left=H(r.left,e.left),e}),ge(t,s,i));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:r}=e;const i=Q(n),o=de(n);if(n===o)return t;let a={scrollLeft:0,scrollTop:0},s={x:1,y:1};const l={x:0,y:0};if((i||!i&&"fixed"!==r)&&(("body"!==$(n)||ne(o))&&(a=fe(n)),Q(n))){const e=ce(n);s=ue(n),l.x=e.x+n.clientLeft,l.y=e.y+n.clientTop}return{width:t.width*s.x,height:t.height*s.y,x:t.x*s.x-a.scrollLeft*s.x+l.x,y:t.y*s.y-a.scrollTop*s.y+l.y}},isElement:J,getDimensions:function(e){return Q(e)?X(e):e.getBoundingClientRect()},getOffsetParent:be,getDocumentElement:de,getScale:ue,async getElementRects(e){let{reference:t,floating:n,strategy:r}=e;const i=this.getOffsetParent||be,o=this.getDimensions;return{reference:xe(t,await i(n),r),floating:{x:0,y:0,...await o(n)}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>"rtl"===W(e).direction};function _e(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=!0,animationFrame:s=!1}=r,l=i&&!s,u=l||o?[...J(e)?me(e):e.contextElement?me(e.contextElement):[],...me(t)]:[];u.forEach((e=>{l&&e.addEventListener("scroll",n,{passive:!0}),o&&e.addEventListener("resize",n)}));let c,d=null;if(a){let r=!0;d=new ResizeObserver((()=>{r||n(),r=!1})),J(e)&&!s&&d.observe(e),J(e)||!e.contextElement||s||d.observe(e.contextElement),d.observe(t)}let f=s?ce(e):null;return s&&function t(){const r=ce(e);!f||r.x===f.x&&r.y===f.y&&r.width===f.width&&r.height===f.height||n(),f=r,c=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{l&&e.removeEventListener("scroll",n),o&&e.removeEventListener("resize",n)})),null==(e=d)||e.disconnect(),d=null,s&&cancelAnimationFrame(c)}}const Ee=(e,t,n)=>{const r=new Map,i={platform:we,...n},o={...i.platform,_c:r};return k(e,t,{...i,platform:o})},Ne=e=>{const{element:t,padding:n}=e;return{name:"arrow",options:e,fn(e){return r=t,Object.prototype.hasOwnProperty.call(r,"current")?null!=t.current?O({element:t.current,padding:n}).fn(e):{}:t?O({element:t,padding:n}).fn(e):{};var r}}};var ke="undefined"!=typeof document?r.useLayoutEffect:r.useEffect;function Se(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;0!=r--;)if(!Se(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;for(r=n;0!=r--;){const n=i[r];if(("_owner"!==n||!e.$$typeof)&&!Se(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function Pe(e){const t=r.useRef(e);return ke((()=>{t.current=e})),t}var Ce="undefined"!=typeof document?r.useLayoutEffect:r.useEffect;let Te=!1,je=0;const De=()=>"floating-ui-"+je++;const Oe=r["useId".toString()]||function(){const[e,t]=r.useState((()=>Te?De():void 0));return Ce((()=>{null==e&&t(De())}),[]),r.useEffect((()=>{Te||(Te=!0)}),[]),e};function Ae(){const e=new Map;return{emit(t,n){var r;null==(r=e.get(t))||r.forEach((e=>e(n)))},on(t,n){e.set(t,[...e.get(t)||[],n])},off(t,n){e.set(t,(e.get(t)||[]).filter((e=>e!==n)))}}}const Me=r.createContext(null),Re=r.createContext(null),Ie=()=>{var e;return(null==(e=r.useContext(Me))?void 0:e.id)||null},Le=()=>r.useContext(Re);function Be(e){return(null==e?void 0:e.ownerDocument)||document}function Fe(){const e=navigator.userAgentData;return null!=e&&e.platform?e.platform:navigator.platform}function ze(){const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map((e=>{let{brand:t,version:n}=e;return t+"/"+n})).join(" "):navigator.userAgent}function Ve(e){return Be(e).defaultView||window}function Ge(e){return!!e&&e instanceof Ve(e).Element}function Ue(e){return!!e&&e instanceof Ve(e).HTMLElement}function We(e){if(0===e.mozInputSource&&e.isTrusted)return!0;const t=/Android/i;return(t.test(Fe())||t.test(ze()))&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType}function qe(e){return 0===e.width&&0===e.height||1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&"mouse"!==e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail}function He(e,t){const n=["mouse","pen"];return t||n.push("",void 0),n.includes(e)}function Ye(e){const t=(0,r.useRef)(e);return Ce((()=>{t.current=e})),t}const Xe="data-floating-ui-safe-polygon";function $e(e,t,n){return n&&!He(n)?0:"number"==typeof e?e:null==e?void 0:e[t]}const Ke=function(e,t){let{enabled:n=!0,delay:i=0,handleClose:o=null,mouseOnly:a=!1,restMs:s=0,move:l=!0}=void 0===t?{}:t;const{open:u,onOpenChange:c,dataRef:d,events:f,elements:{domReference:h,floating:p},refs:v}=e,m=Le(),g=Ie(),y=Ye(o),b=Ye(i),x=r.useRef(),w=r.useRef(),_=r.useRef(),E=r.useRef(),N=r.useRef(!0),k=r.useRef(!1),S=r.useRef((()=>{})),P=r.useCallback((()=>{var e;const t=null==(e=d.current.openEvent)?void 0:e.type;return(null==t?void 0:t.includes("mouse"))&&"mousedown"!==t}),[d]);r.useEffect((()=>{if(n)return f.on("dismiss",e),()=>{f.off("dismiss",e)};function e(){clearTimeout(w.current),clearTimeout(E.current),N.current=!0}}),[n,f]),r.useEffect((()=>{if(!n||!y.current||!u)return;function e(){P()&&c(!1)}const t=Be(p).documentElement;return t.addEventListener("mouseleave",e),()=>{t.removeEventListener("mouseleave",e)}}),[p,u,c,n,y,d,P]);const C=r.useCallback((function(e){void 0===e&&(e=!0);const t=$e(b.current,"close",x.current);t&&!_.current?(clearTimeout(w.current),w.current=setTimeout((()=>c(!1)),t)):e&&(clearTimeout(w.current),c(!1))}),[b,c]),T=r.useCallback((()=>{S.current(),_.current=void 0}),[]),j=r.useCallback((()=>{if(k.current){const e=Be(v.floating.current).body;e.style.pointerEvents="",e.removeAttribute(Xe),k.current=!1}}),[v]);return r.useEffect((()=>{if(n&&Ge(h)){const e=h;return u&&e.addEventListener("mouseleave",o),null==p||p.addEventListener("mouseleave",o),l&&e.addEventListener("mousemove",r,{once:!0}),e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",i),()=>{u&&e.removeEventListener("mouseleave",o),null==p||p.removeEventListener("mouseleave",o),l&&e.removeEventListener("mousemove",r),e.removeEventListener("mouseenter",r),e.removeEventListener("mouseleave",i)}}function t(){return!!d.current.openEvent&&["click","mousedown"].includes(d.current.openEvent.type)}function r(e){if(clearTimeout(w.current),N.current=!1,a&&!He(x.current)||s>0&&0===$e(b.current,"open"))return;d.current.openEvent=e;const t=$e(b.current,"open",x.current);t?w.current=setTimeout((()=>{c(!0)}),t):c(!0)}function i(n){if(t())return;S.current();const r=Be(p);if(clearTimeout(E.current),y.current){u||clearTimeout(w.current),_.current=y.current({...e,tree:m,x:n.clientX,y:n.clientY,onClose(){j(),T(),C()}});const t=_.current;return r.addEventListener("mousemove",t),void(S.current=()=>{r.removeEventListener("mousemove",t)})}C()}function o(n){t()||null==y.current||y.current({...e,tree:m,x:n.clientX,y:n.clientY,onClose(){j(),T(),C()}})(n)}}),[h,p,n,e,a,s,l,C,T,j,c,u,m,b,y,d]),Ce((()=>{var e;if(n&&u&&null!=(e=y.current)&&e.__options.blockPointerEvents&&P()){const e=Be(p).body;if(e.setAttribute(Xe,""),e.style.pointerEvents="none",k.current=!0,Ge(h)&&p){var t,r;const e=h,n=null==m||null==(t=m.nodesRef.current.find((e=>e.id===g)))||null==(r=t.context)?void 0:r.elements.floating;return n&&(n.style.pointerEvents=""),e.style.pointerEvents="auto",p.style.pointerEvents="auto",()=>{e.style.pointerEvents="",p.style.pointerEvents=""}}}}),[n,u,g,p,h,m,y,d,P]),Ce((()=>{u||(x.current=void 0,T(),j())}),[u,T,j]),r.useEffect((()=>()=>{T(),clearTimeout(w.current),clearTimeout(E.current),j()}),[n,T,j]),r.useMemo((()=>{if(!n)return{};function e(e){x.current=e.pointerType}return{reference:{onPointerDown:e,onPointerEnter:e,onMouseMove(){u||0===s||(clearTimeout(E.current),E.current=setTimeout((()=>{N.current||c(!0)}),s))}},floating:{onMouseEnter(){clearTimeout(w.current)},onMouseLeave(){f.emit("dismiss",{type:"mouseLeave",data:{returnFocus:!1}}),C(!1)}}}}),[f,n,s,u,c,C])};function Ze(e,t){let n=e.filter((e=>{var n;return e.parentId===t&&(null==(n=e.context)?void 0:n.open)}))||[],r=n;for(;r.length;)r=e.filter((e=>{var t;return null==(t=r)?void 0:t.some((t=>{var n;return e.parentId===t.id&&(null==(n=e.context)?void 0:n.open)}))}))||[],n=n.concat(r);return n}function Qe(e){return"composedPath"in e?e.composedPath()[0]:e.target}const Je="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function et(e){return Ue(e)&&e.matches(Je)}const tt=r["useInsertionEffect".toString()]||(e=>e());function nt(e){const t=r.useRef((()=>{throw new Error("Cannot call an event handler while rendering.")}));return tt((()=>{t.current=e})),r.useCallback((function(){for(var e=arguments.length,n=new Array(e),r=0;rs?{reference:{onPointerDown(e){f.current=e.pointerType},onMouseDown(e){0===e.button&&(He(f.current,!0)&&c||"click"!==l&&(n?!u||o.current.openEvent&&"mousedown"!==o.current.openEvent.type||i(!1):(e.preventDefault(),i(!0)),o.current.openEvent=e.nativeEvent))},onClick(e){o.current.__syncReturnFocus||("mousedown"===l&&f.current?f.current=void 0:He(f.current,!0)&&c||(n?!u||o.current.openEvent&&"click"!==o.current.openEvent.type||i(!1):i(!0),o.current.openEvent=e.nativeEvent))},onKeyDown(e){f.current=void 0,d&&(rt(e)||(" "!==e.key||it(a)||e.preventDefault(),"Enter"===e.key&&(n?u&&i(!1):i(!0))))},onKeyUp(e){d&&(rt(e)||it(a)||" "===e.key&&(n?u&&i(!1):i(!0)))}}}:{}),[s,o,l,c,d,a,u,n,i])};function at(e,t){if(null==t)return!1;if("composedPath"in e)return e.composedPath().includes(t);const n=e;return null!=n.target&&t.contains(n.target)}const st={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},lt={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},ut=function(e,t){let{open:n,onOpenChange:i,events:o,nodeId:a,elements:{reference:s,domReference:l,floating:u},dataRef:c}=e,{enabled:d=!0,escapeKey:f=!0,outsidePress:h=!0,outsidePressEvent:p="pointerdown",referencePress:v=!1,referencePressEvent:m="pointerdown",ancestorScroll:g=!1,bubbles:y=!0}=void 0===t?{}:t;const b=Le(),x=null!=Ie(),w=nt("function"==typeof h?h:()=>!1),_="function"==typeof h?w:h,E=r.useRef(!1),{escapeKeyBubbles:N,outsidePressBubbles:k}=function(e){var t,n;return void 0===e&&(e=!0),{escapeKeyBubbles:"boolean"==typeof e?e:null==(t=e.escapeKey)||t,outsidePressBubbles:"boolean"==typeof e?e:null==(n=e.outsidePress)||n}}(y);return r.useEffect((()=>{if(!n||!d)return;function e(e){if("Escape"===e.key){const e=b?Ze(b.nodesRef.current,a):[];if(e.length>0){let t=!0;if(e.forEach((e=>{var n;null==(n=e.context)||!n.open||e.context.dataRef.current.__escapeKeyBubbles||(t=!1)})),!t)return}o.emit("dismiss",{type:"escapeKey",data:{returnFocus:{preventScroll:!1}}}),i(!1)}}function t(e){const t=E.current;if(E.current=!1,t)return;if("function"==typeof _&&!_(e))return;const n=Qe(e);if(Ue(n)&&u){const t=u.ownerDocument.defaultView||window,r=n.scrollWidth>n.clientWidth,i=n.scrollHeight>n.clientHeight;let o=i&&e.offsetX>n.clientWidth;if(i){"rtl"===t.getComputedStyle(n).direction&&(o=e.offsetX<=n.offsetWidth-n.clientWidth)}if(o||r&&e.offsetY>n.clientHeight)return}const r=b&&Ze(b.nodesRef.current,a).some((t=>{var n;return at(e,null==(n=t.context)?void 0:n.elements.floating)}));if(at(e,u)||at(e,l)||r)return;const s=b?Ze(b.nodesRef.current,a):[];if(s.length>0){let e=!0;if(s.forEach((t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__outsidePressBubbles||(e=!1)})),!e)return}o.emit("dismiss",{type:"outsidePress",data:{returnFocus:x?{preventScroll:!0}:We(e)||qe(e)}}),i(!1)}function r(){i(!1)}c.current.__escapeKeyBubbles=N,c.current.__outsidePressBubbles=k;const h=Be(u);f&&h.addEventListener("keydown",e),_&&h.addEventListener(p,t);let v=[];return g&&(Ge(l)&&(v=me(l)),Ge(u)&&(v=v.concat(me(u))),!Ge(s)&&s&&s.contextElement&&(v=v.concat(me(s.contextElement)))),v=v.filter((e=>{var t;return e!==(null==(t=h.defaultView)?void 0:t.visualViewport)})),v.forEach((e=>{e.addEventListener("scroll",r,{passive:!0})})),()=>{f&&h.removeEventListener("keydown",e),_&&h.removeEventListener(p,t),v.forEach((e=>{e.removeEventListener("scroll",r)}))}}),[c,u,l,s,f,_,p,o,b,a,n,i,g,d,N,k,x]),r.useEffect((()=>{E.current=!1}),[_,p]),r.useMemo((()=>d?{reference:{[st[m]]:()=>{v&&(o.emit("dismiss",{type:"referencePress",data:{returnFocus:!1}}),i(!1))}},floating:{[lt[p]]:()=>{E.current=!0}}}:{}),[d,o,v,p,m,i])};const ct=function(e,t){let{open:n}=e,{enabled:i=!0,role:o="dialog"}=void 0===t?{}:t;const a=Oe(),s=Oe();return r.useMemo((()=>{const e={id:a,role:o};return i?"tooltip"===o?{reference:{"aria-describedby":n?a:void 0},floating:e}:{reference:{"aria-expanded":n?"true":"false","aria-haspopup":"alertdialog"===o?"dialog":o,"aria-controls":n?a:void 0,..."listbox"===o&&{role:"combobox"},..."menu"===o&&{id:s}},floating:{...e,..."menu"===o&&{"aria-labelledby":s}}}:{}}),[i,o,n,a,s])};function dt(e){void 0===e&&(e={});const{open:t=!1,onOpenChange:n,nodeId:i}=e,o=function(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:i=[],platform:o,whileElementsMounted:a,open:s}=e,[l,u]=r.useState({x:null,y:null,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[c,d]=r.useState(i);Se(c,i)||d(i);const f=r.useRef(null),h=r.useRef(null),p=r.useRef(l),v=Pe(a),m=Pe(o),[g,y]=r.useState(null),[b,x]=r.useState(null),w=r.useCallback((e=>{f.current!==e&&(f.current=e,y(e))}),[]),_=r.useCallback((e=>{h.current!==e&&(h.current=e,x(e))}),[]),E=r.useCallback((()=>{if(!f.current||!h.current)return;const e={placement:t,strategy:n,middleware:c};m.current&&(e.platform=m.current),Ee(f.current,h.current,e).then((e=>{const t={...e,isPositioned:!0};N.current&&!Se(p.current,t)&&(p.current=t,r.flushSync((()=>{u(t)})))}))}),[c,t,n,m]);ke((()=>{!1===s&&p.current.isPositioned&&(p.current.isPositioned=!1,u((e=>({...e,isPositioned:!1}))))}),[s]);const N=r.useRef(!1);ke((()=>(N.current=!0,()=>{N.current=!1})),[]),ke((()=>{if(g&&b){if(v.current)return v.current(g,b,E);E()}}),[g,b,E,v]);const k=r.useMemo((()=>({reference:f,floating:h,setReference:w,setFloating:_})),[w,_]),S=r.useMemo((()=>({reference:g,floating:b})),[g,b]);return r.useMemo((()=>({...l,update:E,refs:k,elements:S,reference:w,floating:_})),[l,E,k,S,w,_])}(e),a=Le(),s=r.useRef(null),l=r.useRef({}),u=r.useState((()=>Ae()))[0],[c,d]=r.useState(null),f=r.useCallback((e=>{const t=Ge(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),contextElement:e}:e;o.refs.setReference(t)}),[o.refs]),h=r.useCallback((e=>{(Ge(e)||null===e)&&(s.current=e,d(e)),(Ge(o.refs.reference.current)||null===o.refs.reference.current||null!==e&&!Ge(e))&&o.refs.setReference(e)}),[o.refs]),p=r.useMemo((()=>({...o.refs,setReference:h,setPositionReference:f,domReference:s})),[o.refs,h,f]),v=r.useMemo((()=>({...o.elements,domReference:c})),[o.elements,c]),m=nt(n),g=r.useMemo((()=>({...o,refs:p,elements:v,dataRef:l,nodeId:i,events:u,open:t,onOpenChange:m})),[o,i,u,t,m,p,v]);return Ce((()=>{const e=null==a?void 0:a.nodesRef.current.find((e=>e.id===i));e&&(e.context=g)})),r.useMemo((()=>({...o,context:g,refs:p,reference:h,positionReference:f})),[o,p,g,h,f])}function ft(e,t,n){const r=new Map;return{..."floating"===n&&{tabIndex:-1},...e,...t.map((e=>e?e[n]:null)).concat(e).reduce(((e,t)=>t?(Object.entries(t).forEach((t=>{let[n,i]=t;var o;0===n.indexOf("on")?(r.has(n)||r.set(n,[]),"function"==typeof i&&(null==(o=r.get(n))||o.push(i),e[n]=function(){for(var e,t=arguments.length,i=new Array(t),o=0;oe(...i)))})):e[n]=i})),e):e),{})}}const ht=function(e){void 0===e&&(e=[]);const t=e,n=r.useCallback((t=>ft(t,e,"reference")),t),i=r.useCallback((t=>ft(t,e,"floating")),t),o=r.useCallback((t=>ft(t,e,"item")),e.map((e=>null==e?void 0:e.item)));return r.useMemo((()=>({getReferenceProps:n,getFloatingProps:i,getItemProps:o})),[n,i,o])};var pt=n(75644),vt=0;function mt(e,t,n,r,i){var o,a,s={};for(a in t)"ref"==a?o=t[a]:s[a]=t[a];var l={type:e,props:s,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--vt,__source:r,__self:i};if("function"==typeof e&&(o=e.defaultProps))for(a in o)void 0===s[a]&&(s[a]=o[a]);return pt.options.vnode&&pt.options.vnode(l),l}var gt="/Users/distiller/repo/graph/ui-tooltips/src/lib/tooltip.tsx";function yt({children:e,open:t=!1,content:n,placement:i="top",reference:o,openAction:a="click",strategy:s="absolute"}){const[l,u]=(0,r.useState)(t),c=(0,r.useRef)(null),{x:d,y:f,refs:h,strategy:p,placement:v,middlewareData:{arrow:{x:m,y:g}={}},context:y}=dt({placement:i,whileElementsMounted:"fixed"===s?_e:void 0,open:l,onOpenChange:u,strategy:s,middleware:[z(6),F(),G({padding:6}),Ne({element:c})]}),b={top:"bottom",right:"left",bottom:"top",left:"right"}[v.split("-")[0]]||"bottom";(0,r.useLayoutEffect)((()=>{o&&h.setReference(o)}),[h,o]);const x=ot(y,{enabled:"click"===a}),w=ut(y,{enabled:"click"===a,referencePress:!1,outsidePress:!0,outsidePressEvent:"mousedown"}),_=Ke(y,{enabled:"hover"===a}),E=ct(y,{role:"tooltip"}),{getReferenceProps:N,getFloatingProps:k}=ht([x,_,w,E]),S={ref:h.setReference,...N()};return mt(pt.Fragment,{children:[!o&&e?(0,r.cloneElement)(e,S):e,l?mt("div",{ref:h.setFloating,style:{position:p,top:f??0,left:d??0,width:"max-content"},className:"z-10 min-w-[250px] rounded-md border border-slate-500",...k(),children:[mt("div",{style:{left:null!=m?`${m}px`:"",top:null!=g?`${g}px`:"",right:"",bottom:"",[b]:"-4px"},className:"absolute -z-10 h-4 w-4 rotate-45 bg-slate-500",ref:c},void 0,!1,{fileName:gt,lineNumber:127,columnNumber:11}),mt("div",{className:"select-text rounded-md bg-white p-3 dark:bg-slate-900 dark:text-slate-400",children:n},void 0,!1,{fileName:gt,lineNumber:138,columnNumber:11})]},void 0,!0,{fileName:gt,lineNumber:116,columnNumber:9}):null]},void 0,!0)}const bt=r.forwardRef((function({title:e,titleId:t,...n},i){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true",ref:i,"aria-labelledby":t},n),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 01-.659 1.591l-5.432 5.432a2.25 2.25 0 00-.659 1.591v2.927a2.25 2.25 0 01-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 00-.659-1.591L3.659 7.409A2.25 2.25 0 013 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0112 3z"}))}));const xt=r.forwardRef((function({title:e,titleId:t,...n},i){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true",ref:i,"aria-labelledby":t},n),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9.75L14.25 12m0 0l2.25 2.25M14.25 12l2.25-2.25M14.25 12L12 14.25m-2.58 4.92l-6.375-6.375a1.125 1.125 0 010-1.59L9.42 4.83c.211-.211.498-.33.796-.33H19.5a2.25 2.25 0 012.25 2.25v10.5a2.25 2.25 0 01-2.25 2.25h-9.284c-.298 0-.585-.119-.796-.33z"}))}));var wt="/Users/distiller/repo/graph/ui-components/src/lib/debounced-text-input.tsx";function _t({initialText:e,placeholderText:t,resetTextFilter:n,updateTextFilter:i}){const[o,a]=(0,r.useState)(e??""),[s,l]=function(e,t){const[n,i]=(0,r.useState)(e);return(0,r.useEffect)((()=>{const n=setTimeout((()=>{i(e)}),t);return()=>{clearTimeout(n)}}),[e,t]),[n,i]}(o,500);function u(e){""===e?(a(""),l(""),n()):a(e)}return(0,r.useEffect)((()=>{""!==s&&i(s)}),[s,i]),mt("form",{className:"group relative flex rounded-md shadow-sm",onSubmit:e=>e.preventDefault(),children:[mt("span",{className:"inline-flex items-center rounded-l-md border border-r-0 border-slate-300 bg-slate-50 p-2 dark:border-slate-900 dark:bg-slate-800",children:mt(bt,{className:"h-4 w-4"},void 0,!1,{fileName:wt,lineNumber:61,columnNumber:9})},void 0,!1,{fileName:wt,lineNumber:60,columnNumber:7}),mt("input",{type:"text",className:"block w-full flex-1 rounded-none rounded-r-md border border-slate-300 bg-white p-1.5 font-light text-slate-400 placeholder:font-light placeholder:text-slate-400 dark:border-slate-900 dark:bg-slate-800 dark:text-white dark:hover:bg-slate-700",placeholder:t,"data-cy":"textFilterInput",name:"filter",value:o,onKeyUp:function(e){"Enter"===e.key&&u(e.currentTarget.value)},onChange:e=>u(e.currentTarget.value)},void 0,!1,{fileName:wt,lineNumber:63,columnNumber:7}),o.length>0?mt("button",{"data-cy":"textFilterReset",type:"reset",onClick:function(){a(""),l(""),n()},className:"absolute top-1 right-1 inline-block rounded-md bg-slate-50 p-1 text-slate-400 dark:bg-slate-800",children:mt(xt,{className:"h-5 w-5"},void 0,!1,{fileName:wt,lineNumber:80,columnNumber:11})},void 0,!1,{fileName:wt,lineNumber:74,columnNumber:9}):null]},void 0,!0,{fileName:wt,lineNumber:56,columnNumber:5})}var Et="/Users/distiller/repo/graph/ui-components/src/lib/tag.tsx";function Nt({className:e,children:t,...n}){return mt("span",{className:`${e} inline-block rounded-md bg-slate-300 p-2 font-sans text-xs font-semibold uppercase leading-4 tracking-wide text-slate-700`,...n,children:t},void 0,!1,{fileName:Et,lineNumber:12,columnNumber:5})}var kt="/Users/distiller/repo/graph/ui-components/src/lib/dropdown.tsx";function St(e){const{className:t,children:n,...r}=e;return mt("select",{className:`form-select flex items-center rounded-md rounded-md border border-slate-300 bg-white pl-4 pr-8 py-2 text-sm font-medium text-slate-700 shadow-sm hover:bg-slate-50 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-300 hover:dark:bg-slate-700 ${t}`,...r,children:n},void 0,!1,{fileName:kt,lineNumber:11,columnNumber:5})}var Pt="/Users/distiller/repo/graph/ui-tooltips/src/lib/project-edge-tooltip.tsx";function Ct({type:e,source:t,target:n,fileDependencies:r,description:i,fileClickCallback:o}){return mt("div",{className:"text-sm text-slate-700 dark:text-slate-400",children:[mt("h4",{className:"implicit"!==e?"mb-3":"",children:[mt(Nt,{className:"mr-3",children:e??"unknown"},void 0,!1,{fileName:Pt,lineNumber:23,columnNumber:9}),mt("span",{className:"font-mono",children:[t," \u2192 ",n]},void 0,!0,{fileName:Pt,lineNumber:24,columnNumber:9})]},void 0,!0,{fileName:Pt,lineNumber:22,columnNumber:7}),i?mt("p",{children:i},void 0,!1,{fileName:Pt,lineNumber:28,columnNumber:22}):null,"implicit"!==e&&r?.length>0?mt("div",{className:"overflow-hidden rounded-md border border-slate-200 dark:border-slate-800",children:[mt("div",{className:"bg-slate-50 px-4 py-2 text-xs font-medium uppercase text-slate-500 dark:bg-slate-800 dark:text-slate-400",children:mt("span",{children:"Files"},void 0,!1,{fileName:Pt,lineNumber:32,columnNumber:13})},void 0,!1,{fileName:Pt,lineNumber:31,columnNumber:11}),mt("ul",{className:"max-h-[300px] divide-y divide-slate-200 overflow-auto dark:divide-slate-800",children:r.map((e=>mt("li",{className:"whitespace-nowrap px-4 py-2 text-sm font-medium text-slate-800 dark:text-slate-300 "+(void 0!==o?"hover:underline hover:cursor-pointer":""),onClick:void 0!==o?()=>o(e.fileName):()=>{},children:mt("span",{className:"block truncate font-normal",children:e.fileName},void 0,!1,{fileName:Pt,lineNumber:49,columnNumber:17})},e.fileName,!1,{fileName:Pt,lineNumber:36,columnNumber:15})))},void 0,!1,{fileName:Pt,lineNumber:34,columnNumber:11})]},void 0,!0,{fileName:Pt,lineNumber:30,columnNumber:9}):null]},void 0,!0,{fileName:Pt,lineNumber:21,columnNumber:5})}const Tt=r.forwardRef((function({title:e,titleId:t,...n},i){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true",ref:i,"aria-labelledby":t},n),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"}))}));var jt="/Users/distiller/repo/graph/ui-tooltips/src/lib/project-node-tooltip.tsx";function Dt({type:e,id:t,tags:n,children:r,description:i,openConfigCallback:o}){return mt("div",{className:"text-sm text-slate-700 dark:text-slate-400",children:[mt("h4",{className:"flex justify-between items-center gap-4",children:[mt("div",{className:"flex items-center",children:[mt(Nt,{className:"mr-3",children:e},void 0,!1,{fileName:jt,lineNumber:27,columnNumber:11}),mt("span",{className:"font-mono",children:t},void 0,!1,{fileName:jt,lineNumber:28,columnNumber:11})]},void 0,!0,{fileName:jt,lineNumber:26,columnNumber:9}),o?mt("button",{className:" flex items-center rounded-md border-slate-300 bg-white p-1 font-medium text-slate-500 shadow-sm ring-1 transition hover:bg-slate-50 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-400 dark:ring-slate-600 hover:dark:bg-slate-700",title:"Edit project.json in editor",onClick:o,children:mt(Tt,{className:"h-5 w-5"},void 0,!1,{fileName:jt,lineNumber:36,columnNumber:13})},void 0,!1,{fileName:jt,lineNumber:31,columnNumber:11}):void 0]},void 0,!0,{fileName:jt,lineNumber:25,columnNumber:7}),n.length>0?mt("p",{className:"my-2",children:[mt("strong",{children:"tags"},void 0,!1,{fileName:jt,lineNumber:42,columnNumber:11}),mt("br",{},void 0,!1,{fileName:jt,lineNumber:43,columnNumber:11}),n.join(", ")]},void 0,!0,{fileName:jt,lineNumber:41,columnNumber:9}):null,i?mt("p",{className:"mt-4",children:i},void 0,!1,{fileName:jt,lineNumber:47,columnNumber:22}):null,r]},void 0,!0,{fileName:jt,lineNumber:24,columnNumber:5})}const Ot=r.forwardRef((function({title:e,titleId:t,...n},i){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true",ref:i,"aria-labelledby":t},n),e?r.createElement("title",{id:t},e):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z"}))}));var At,Mt="/Users/distiller/repo/graph/ui-tooltips/src/lib/task-node-tooltip.tsx";function Rt({id:e,executor:t,description:n,runTaskCallback:r,children:i}){return mt("div",{className:"text-sm text-slate-700 dark:text-slate-400",children:[mt("h4",{className:"flex justify-between items-center gap-4 mb-3",children:[mt("div",{className:"flex items-center",children:[mt(Nt,{className:"mr-3",children:t},void 0,!1,{fileName:Mt,lineNumber:26,columnNumber:11}),mt("span",{className:"font-mono",children:e},void 0,!1,{fileName:Mt,lineNumber:27,columnNumber:11})]},void 0,!0,{fileName:Mt,lineNumber:25,columnNumber:9}),r?mt("button",{className:" flex items-center rounded-md border-slate-300 bg-white p-1 font-medium text-slate-500 shadow-sm ring-1 transition hover:bg-slate-50 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-400 dark:ring-slate-600 hover:dark:bg-slate-700",title:"Run Task",onClick:r,children:mt(Ot,{className:"h-5 w-5"},void 0,!1,{fileName:Mt,lineNumber:35,columnNumber:13})},void 0,!1,{fileName:Mt,lineNumber:30,columnNumber:11}):void 0]},void 0,!0,{fileName:Mt,lineNumber:24,columnNumber:7}),n?mt("p",{className:"mt-4",children:n},void 0,!1,{fileName:Mt,lineNumber:39,columnNumber:22}):null,i]},void 0,!0,{fileName:Mt,lineNumber:23,columnNumber:5})}function It(){return It=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Ht(e,t,n,r){void 0===r&&(r={});let{window:i=document.defaultView,v5Compat:o=!1}=r,a=i.history,s=At.Pop,l=null,u=c();function c(){return(a.state||{idx:null}).idx}function d(){s=At.Pop;let e=c(),t=null==e?null:e-u;u=e,l&&l({action:s,location:h.location,delta:t})}function f(e){let t="null"!==i.location.origin?i.location.origin:i.location.href,n="string"==typeof e?e:Wt(e);return zt(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==u&&(u=0,a.replaceState(It({},a.state,{idx:u}),""));let h={get action(){return s},get location(){return e(i,a)},listen(e){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(Lt,d),l=e,()=>{i.removeEventListener(Lt,d),l=null}},createHref:e=>t(i,e),createURL:f,encodeLocation(e){let t=f(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s=At.Push;let r=Ut(h.location,e,t);n&&n(r,e),u=c()+1;let d=Gt(r,u),f=h.createHref(r);try{a.pushState(d,"",f)}catch(p){i.location.assign(f)}o&&l&&l({action:s,location:h.location,delta:1})},replace:function(e,t){s=At.Replace;let r=Ut(h.location,e,t);n&&n(r,e),u=c();let i=Gt(r,u),d=h.createHref(r);a.replaceState(i,"",d),o&&l&&l({action:s,location:h.location,delta:0})},go:e=>a.go(e)};return h}var Yt;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(Yt||(Yt={}));const Xt=new Set(["lazy","caseSensitive","path","id","index","children"]);function $t(e,t,n,r){return void 0===n&&(n=[]),void 0===r&&(r={}),e.map(((e,i)=>{let o=[...n,i],a="string"==typeof e.id?e.id:o.join("-");if(zt(!0!==e.index||!e.children,"Cannot specify children on an index route"),zt(!r[a],'Found a route id collision on id "'+a+"\". Route id's must be globally unique within Data Router usages"),function(e){return!0===e.index}(e)){let n=It({},e,t(e),{id:a});return r[a]=n,n}{let n=It({},e,t(e),{id:a,children:void 0});return r[a]=n,e.children&&(n.children=$t(e.children,t,o,r)),n}}))}function Kt(e,t,n){void 0===n&&(n="/");let r=dn(("string"==typeof t?qt(t):t).pathname||"/",n);if(null==r)return null;let i=Zt(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(i);let o=null;for(let a=0;null==o&&a{let a={relativePath:void 0===o?e.path||"":o,caseSensitive:!0===e.caseSensitive,childrenIndex:i,route:e};a.relativePath.startsWith("/")&&(zt(a.relativePath.startsWith(r),'Absolute route path "'+a.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),a.relativePath=a.relativePath.slice(r.length));let s=vn([r,a.relativePath]),l=n.concat(a);e.children&&e.children.length>0&&(zt(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+s+'".'),Zt(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:sn(s,e.index),routesMeta:l})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let r of Qt(e.path))i(e,t,r);else i(e,t)})),t}function Qt(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,i=n.endsWith("?"),o=n.replace(/\?$/,"");if(0===r.length)return i?[o,""]:[o];let a=Qt(r.join("/")),s=[];return s.push(...a.map((e=>""===e?o:[o,e].join("/")))),i&&s.push(...a),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const Jt=/^:\w+$/,en=3,tn=2,nn=1,rn=10,on=-2,an=e=>"*"===e;function sn(e,t){let n=e.split("/"),r=n.length;return n.some(an)&&(r+=on),t&&(r+=tn),n.filter((e=>!an(e))).reduce(((e,t)=>e+(Jt.test(t)?en:""===t?nn:rn)),r)}function ln(e,t){let{routesMeta:n}=e,r={},i="/",o=[];for(let a=0;a(r.push(t),"/([^\\/]+)")));e.endsWith("*")?(r.push("*"),i+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":""!==e&&"/"!==e&&(i+="(?:(?=\\/|$))");let o=new RegExp(i,t?void 0:"i");return[o,r]}(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let o=i[0],a=o.replace(/(.)\/+$/,"$1"),s=i.slice(1),l=r.reduce(((e,t,n)=>{if("*"===t){let e=s[n]||"";a=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}return e[t]=function(e,t){try{return decodeURIComponent(e)}catch(n){return Vt(!1,'The value for the URL param "'+t+'" will not be decoded because the string "'+e+'" is a malformed URL segment. This is probably due to a bad percent encoding ('+n+")."),e}}(s[n]||"",t),e}),{});return{params:l,pathname:o,pathnameBase:a,pattern:e}}function cn(e){try{return decodeURI(e)}catch(t){return Vt(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function dn(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function fn(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.'}function hn(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function pn(e,t,n,r){let i;void 0===r&&(r=!1),"string"==typeof e?i=qt(e):(i=It({},e),zt(!i.pathname||!i.pathname.includes("?"),fn("?","pathname","search",i)),zt(!i.pathname||!i.pathname.includes("#"),fn("#","pathname","hash",i)),zt(!i.search||!i.search.includes("#"),fn("#","search","hash",i)));let o,a=""===e||""===i.pathname,s=a?"/":i.pathname;if(r||null==s)o=n;else{let e=t.length-1;if(s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;i.pathname=t.join("/")}o=e>=0?t[e]:"/"}let l=function(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:i=""}="string"==typeof e?qt(e):e,o=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:o,search:gn(r),hash:yn(i)}}(i,o),u=s&&"/"!==s&&s.endsWith("/"),c=(a||"."===s)&&n.endsWith("/");return l.pathname.endsWith("/")||!u&&!c||(l.pathname+="/"),l}const vn=e=>e.join("/").replace(/\/\/+/g,"/"),mn=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),gn=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",yn=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";Error;const bn=function(e,t){void 0===t&&(t=302);let n=t;"number"==typeof n?n={status:n}:void 0===n.status&&(n.status=302);let r=new Headers(n.headers);return r.set("Location",e),new Response(null,It({},n,{headers:r}))};class ErrorResponse{constructor(e,t,n,r){void 0===r&&(r=!1),this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function xn(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}const wn=["post","put","patch","delete"],_n=new Set(wn),En=["get",...wn],Nn=new Set(En),kn=new Set([301,302,303,307,308]),Sn=new Set([307,308]),Pn={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},Cn={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},Tn={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},jn=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Dn="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,On=!Dn,An=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)});function Mn(e){let t;if(zt(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)t=e.mapRouteProperties;else if(e.detectErrorBoundary){let n=e.detectErrorBoundary;t=e=>({hasErrorBoundary:n(e)})}else t=An;let n,r={},i=$t(e.routes,t,void 0,r),o=e.basename||"/",a=It({v7_normalizeFormMethod:!1,v7_prependBasename:!1},e.future),s=null,l=new Set,u=null,c=null,d=null,f=null!=e.hydrationData,h=Kt(i,e.history.location,o),p=null;if(null==h){let t=Kn(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=$n(i);h=n,p={[r.id]:t}}let v,m,g=!(h.some((e=>e.route.lazy))||h.some((e=>e.route.loader))&&null==e.hydrationData),y={historyAction:e.history.action,location:e.history.location,matches:h,initialized:g,navigation:Pn,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||p,fetchers:new Map,blockers:new Map},b=At.Pop,x=!1,w=!1,_=!1,E=[],N=[],k=new Map,S=0,P=-1,C=new Map,T=new Set,j=new Map,D=new Map,O=new Map,A=!1;function M(e){y=It({},y,e),l.forEach((e=>e(y)))}function R(t,r){var o,a;let s,l=null!=y.actionData&&null!=y.navigation.formMethod&&ir(y.navigation.formMethod)&&"loading"===y.navigation.state&&!0!==(null==(o=t.state)?void 0:o._isRedirect);s=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:l?y.actionData:null;let u=r.loaderData?Yn(y.loaderData,r.loaderData,r.matches||[],r.errors):y.loaderData;for(let[e]of O)Y(e);let c=!0===x||null!=y.navigation.formMethod&&ir(y.navigation.formMethod)&&!0!==(null==(a=t.state)?void 0:a._isRedirect);n&&(i=n,n=void 0),M(It({},r,{actionData:s,loaderData:u,historyAction:b,location:t,initialized:!0,navigation:Pn,revalidation:"idle",restoreScrollPosition:Z(t,r.matches||y.matches),preventScrollReset:c,blockers:new Map(y.blockers)})),w||b===At.Pop||(b===At.Push?e.history.push(t,t.state):b===At.Replace&&e.history.replace(t,t.state)),b=At.Pop,x=!1,w=!1,_=!1,E=[],N=[]}async function I(a,s,l){m&&m.abort(),m=null,b=a,w=!0===(l&&l.startUninterruptedRevalidation),function(e,t){if(u&&c&&d){let n=t.map((e=>lr(e,y.loaderData))),r=c(e,n)||e.key;u[r]=d()}}(y.location,y.matches),x=!0===(l&&l.preventScrollReset);let f=n||i,h=l&&l.overrideNavigation,p=Kt(f,s,o);if(!p){let e=Kn(404,{pathname:s.pathname}),{matches:t,route:n}=$n(f);return K(),void R(s,{matches:t,loaderData:{},errors:{[n.id]:e}})}if(y.initialized&&function(e,t){if(e.pathname!==t.pathname||e.search!==t.search)return!1;if(""===e.hash)return""!==t.hash;if(e.hash===t.hash)return!0;if(""!==t.hash)return!0;return!1}(y.location,s)&&!(l&&l.submission&&ir(l.submission.formMethod)))return void R(s,{matches:p});m=new AbortController;let v,g,C=Un(e.history,s,m.signal,l&&l.submission);if(l&&l.pendingError)g={[Xn(p).route.id]:l.pendingError};else if(l&&l.submission&&ir(l.submission.formMethod)){let e=await async function(e,n,i,a,s){z();let l,u=It({state:"submitting",location:n},i);M({navigation:u});let c=ur(a,n);if(c.route.action||c.route.lazy){if(l=await Gn("action",e,c,a,r,t,o),e.signal.aborted)return{shortCircuited:!0}}else l={type:Yt.error,error:Kn(405,{method:e.method,pathname:n.pathname,routeId:c.route.id})};if(tr(l)){let e;return e=s&&null!=s.replace?s.replace:l.location===y.location.pathname+y.location.search,await B(y,l,{submission:i,replace:e}),{shortCircuited:!0}}if(er(l)){let e=Xn(a,c.route.id);return!0!==(s&&s.replace)&&(b=At.Push),{pendingActionData:{},pendingActionError:{[e.route.id]:l.error}}}if(Jn(l))throw Kn(400,{type:"defer-action"});return{pendingActionData:{[c.route.id]:l.data}}}(C,s,l.submission,p,{replace:l.replace});if(e.shortCircuited)return;v=e.pendingActionData,g=e.pendingActionError,h=It({state:"loading",location:s},l.submission),C=new Request(C.url,{signal:C.signal})}let{shortCircuited:T,loaderData:O,errors:A}=await async function(t,r,a,s,l,u,c,d,f){let h=s;if(!h){h=It({state:"loading",location:r,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},l)}let p=l||u?l||u:h.formMethod&&h.formAction&&h.formData&&h.formEncType?{formMethod:h.formMethod,formAction:h.formAction,formData:h.formData,formEncType:h.formEncType}:void 0,v=n||i,[g,b]=Bn(e.history,y,a,p,r,_,E,N,j,v,o,d,f);if(K((e=>!(a&&a.some((t=>t.route.id===e)))||g&&g.some((t=>t.route.id===e)))),0===g.length&&0===b.length){let e=q();return R(r,It({matches:a,loaderData:{},errors:f||null},d?{actionData:d}:{},e?{fetchers:new Map(y.fetchers)}:{})),{shortCircuited:!0}}if(!w){b.forEach((e=>{let t=y.fetchers.get(e.key),n={state:"loading",data:t&&t.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};y.fetchers.set(e.key,n)}));let e=d||y.actionData;M(It({navigation:h},e?0===Object.keys(e).length?{actionData:null}:{actionData:e}:{},b.length>0?{fetchers:new Map(y.fetchers)}:{}))}P=++S,b.forEach((e=>{e.controller&&k.set(e.key,e.controller)}));let x=()=>b.forEach((e=>U(e.key)));m&&m.signal.addEventListener("abort",x);let{results:C,loaderResults:T,fetcherResults:O}=await F(y.matches,a,g,b,t);if(t.signal.aborted)return{shortCircuited:!0};m&&m.signal.removeEventListener("abort",x);b.forEach((e=>k.delete(e.key)));let A=Zn(C);if(A)return await B(y,A,{replace:c}),{shortCircuited:!0};let{loaderData:I,errors:L}=Hn(y,a,g,T,f,b,O,D);D.forEach(((e,t)=>{e.subscribe((n=>{(n||e.done)&&D.delete(t)}))}));let z=q(),V=H(P),G=z||V||b.length>0;return It({loaderData:I,errors:L},G?{fetchers:new Map(y.fetchers)}:{})}(C,s,p,h,l&&l.submission,l&&l.fetcherSubmission,l&&l.replace,v,g);T||(m=null,R(s,It({matches:p},v?{actionData:v}:{},{loaderData:O,errors:A})))}function L(e){return y.fetchers.get(e)||Cn}async function B(t,n,r){var i;let{submission:a,replace:s,isFetchActionRedirect:l}=void 0===r?{}:r;n.revalidate&&(_=!0);let u=Ut(t.location,n.location,It({_isRedirect:!0},l?{_isFetchActionRedirect:!0}:{}));if(zt(u,"Expected a location on the redirect navigation"),jn.test(n.location)&&Dn&&void 0!==(null==(i=window)?void 0:i.location)){let t=e.history.createURL(n.location),r=null==dn(t.pathname,o);if(window.location.origin!==t.origin||r)return void(s?window.location.replace(n.location):window.location.assign(n.location))}m=null;let c=!0===s?At.Replace:At.Push,{formMethod:d,formAction:f,formEncType:h,formData:p}=t.navigation;!a&&d&&f&&p&&h&&(a={formMethod:d,formAction:f,formEncType:h,formData:p}),Sn.has(n.status)&&a&&ir(a.formMethod)?await I(c,u,{submission:It({},a,{formAction:n.location}),preventScrollReset:x}):l?await I(c,u,{overrideNavigation:{state:"loading",location:u,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},fetcherSubmission:a,preventScrollReset:x}):await I(c,u,{overrideNavigation:{state:"loading",location:u,formMethod:a?a.formMethod:void 0,formAction:a?a.formAction:void 0,formEncType:a?a.formEncType:void 0,formData:a?a.formData:void 0},preventScrollReset:x})}async function F(n,i,a,s,l){let u=await Promise.all([...a.map((e=>Gn("loader",l,e,i,r,t,o))),...s.map((n=>{if(n.matches&&n.match&&n.controller)return Gn("loader",Un(e.history,n.path,n.controller.signal),n.match,n.matches,r,t,o);return{type:Yt.error,error:Kn(404,{pathname:n.path})}}))]),c=u.slice(0,a.length),d=u.slice(a.length);return await Promise.all([or(n,a,c,c.map((()=>l.signal)),!1,y.loaderData),or(n,s.map((e=>e.match)),d,s.map((e=>e.controller?e.controller.signal:null)),!0)]),{results:u,loaderResults:c,fetcherResults:d}}function z(){_=!0,E.push(...K()),j.forEach(((e,t)=>{k.has(t)&&(N.push(t),U(t))}))}function V(e,t,n){let r=Xn(y.matches,t);G(e),M({errors:{[r.route.id]:n},fetchers:new Map(y.fetchers)})}function G(e){k.has(e)&&U(e),j.delete(e),C.delete(e),T.delete(e),y.fetchers.delete(e)}function U(e){let t=k.get(e);zt(t,"Expected fetch controller: "+e),t.abort(),k.delete(e)}function W(e){for(let t of e){let e={state:"idle",data:L(t).data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};y.fetchers.set(t,e)}}function q(){let e=[],t=!1;for(let n of T){let r=y.fetchers.get(n);zt(r,"Expected fetcher: "+n),"loading"===r.state&&(T.delete(n),e.push(n),t=!0)}return W(e),t}function H(e){let t=[];for(let[n,r]of C)if(r0}function Y(e){y.blockers.delete(e),O.delete(e)}function X(e,t){let n=y.blockers.get(e)||Tn;zt("unblocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"proceeding"===t.state||"blocked"===n.state&&"unblocked"===t.state||"proceeding"===n.state&&"unblocked"===t.state,"Invalid blocker state transition: "+n.state+" -> "+t.state),y.blockers.set(e,t),M({blockers:new Map(y.blockers)})}function $(e){let{currentLocation:t,nextLocation:n,historyAction:r}=e;if(0===O.size)return;O.size>1&&Vt(!1,"A router only supports one blocker at a time");let i=Array.from(O.entries()),[o,a]=i[i.length-1],s=y.blockers.get(o);return s&&"proceeding"===s.state?void 0:a({currentLocation:t,nextLocation:n,historyAction:r})?o:void 0}function K(e){let t=[];return D.forEach(((n,r)=>{e&&!e(r)||(n.cancel(),t.push(r),D.delete(r))})),t}function Z(e,t){if(u&&c&&d){let n=t.map((e=>lr(e,y.loaderData))),r=c(e,n)||e.key,i=u[r];if("number"==typeof i)return i}return null}return v={get basename(){return o},get state(){return y},get routes(){return i},initialize:function(){return s=e.history.listen((t=>{let{action:n,location:r,delta:i}=t;if(A)return void(A=!1);Vt(0===O.size||null!=i,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let o=$({currentLocation:y.location,nextLocation:r,historyAction:n});return o&&null!=i?(A=!0,e.history.go(-1*i),void X(o,{state:"blocked",location:r,proceed(){X(o,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),e.history.go(i)},reset(){Y(o),M({blockers:new Map(v.state.blockers)})}})):I(n,r)})),y.initialized||I(At.Pop,y.location),v},subscribe:function(e){return l.add(e),()=>l.delete(e)},enableScrollRestoration:function(e,t,n){if(u=e,d=t,c=n||(e=>e.key),!f&&y.navigation===Pn){f=!0;let e=Z(y.location,y.matches);null!=e&&M({restoreScrollPosition:e})}return()=>{u=null,d=null,c=null}},navigate:async function t(n,r){if("number"==typeof n)return void e.history.go(n);let i=Rn(y.location,y.matches,o,a.v7_prependBasename,n,null==r?void 0:r.fromRouteId,null==r?void 0:r.relative),{path:s,submission:l,error:u}=In(a.v7_normalizeFormMethod,!1,i,r),c=y.location,d=Ut(y.location,s,r&&r.state);d=It({},d,e.history.encodeLocation(d));let f=r&&null!=r.replace?r.replace:void 0,h=At.Push;!0===f?h=At.Replace:!1===f||null!=l&&ir(l.formMethod)&&l.formAction===y.location.pathname+y.location.search&&(h=At.Replace);let p=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,v=$({currentLocation:c,nextLocation:d,historyAction:h});if(!v)return await I(h,d,{submission:l,pendingError:u,preventScrollReset:p,replace:r&&r.replace});X(v,{state:"blocked",location:d,proceed(){X(v,{state:"proceeding",proceed:void 0,reset:void 0,location:d}),t(n,r)},reset(){Y(v),M({blockers:new Map(y.blockers)})}})},fetch:function(s,l,u,c){if(On)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");k.has(s)&&U(s);let d=n||i,f=Rn(y.location,y.matches,o,a.v7_prependBasename,u,l,null==c?void 0:c.relative),h=Kt(d,f,o);if(!h)return void V(s,l,Kn(404,{pathname:f}));let{path:p,submission:v}=In(a.v7_normalizeFormMethod,!0,f,c),g=ur(h,p);x=!0===(c&&c.preventScrollReset),v&&ir(v.formMethod)?async function(a,s,l,u,c,d){if(z(),j.delete(a),!u.route.action&&!u.route.lazy){let e=Kn(405,{method:d.formMethod,pathname:l,routeId:s});return void V(a,s,e)}let f=y.fetchers.get(a),h=It({state:"submitting"},d,{data:f&&f.data," _hasFetcherDoneAnything ":!0});y.fetchers.set(a,h),M({fetchers:new Map(y.fetchers)});let p=new AbortController,v=Un(e.history,l,p.signal,d);k.set(a,p);let g=await Gn("action",v,u,c,r,t,o);if(v.signal.aborted)return void(k.get(a)===p&&k.delete(a));if(tr(g)){k.delete(a),T.add(a);let e=It({state:"loading"},d,{data:void 0," _hasFetcherDoneAnything ":!0});return y.fetchers.set(a,e),M({fetchers:new Map(y.fetchers)}),B(y,g,{submission:d,isFetchActionRedirect:!0})}if(er(g))return void V(a,s,g.error);if(Jn(g))throw Kn(400,{type:"defer-action"});let x=y.navigation.location||y.location,w=Un(e.history,x,p.signal),O=n||i,A="idle"!==y.navigation.state?Kt(O,y.navigation.location,o):y.matches;zt(A,"Didn't find any matches after fetcher action");let I=++S;C.set(a,I);let L=It({state:"loading",data:g.data},d,{" _hasFetcherDoneAnything ":!0});y.fetchers.set(a,L);let[G,W]=Bn(e.history,y,A,d,x,_,E,N,j,O,o,{[u.route.id]:g.data},void 0);W.filter((e=>e.key!==a)).forEach((e=>{let t=e.key,n=y.fetchers.get(t),r={state:"loading",data:n&&n.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};y.fetchers.set(t,r),e.controller&&k.set(t,e.controller)})),M({fetchers:new Map(y.fetchers)});let q=()=>W.forEach((e=>U(e.key)));p.signal.addEventListener("abort",q);let{results:Y,loaderResults:X,fetcherResults:$}=await F(y.matches,A,G,W,w);if(p.signal.aborted)return;p.signal.removeEventListener("abort",q),C.delete(a),k.delete(a),W.forEach((e=>k.delete(e.key)));let K=Zn(Y);if(K)return B(y,K);let{loaderData:Z,errors:Q}=Hn(y,y.matches,G,X,void 0,W,$,D),J={state:"idle",data:g.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};y.fetchers.set(a,J);let ee=H(I);"loading"===y.navigation.state&&I>P?(zt(b,"Expected pending action"),m&&m.abort(),R(y.navigation.location,{matches:A,loaderData:Z,errors:Q,fetchers:new Map(y.fetchers)})):(M(It({errors:Q,loaderData:Yn(y.loaderData,Z,A,Q)},ee?{fetchers:new Map(y.fetchers)}:{})),_=!1)}(s,l,p,g,h,v):(j.set(s,{routeId:l,path:p}),async function(n,i,a,s,l,u){let c=y.fetchers.get(n),d=It({state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},u,{data:c&&c.data," _hasFetcherDoneAnything ":!0});y.fetchers.set(n,d),M({fetchers:new Map(y.fetchers)});let f=new AbortController,h=Un(e.history,a,f.signal);k.set(n,f);let p=await Gn("loader",h,s,l,r,t,o);Jn(p)&&(p=await ar(p,h.signal,!0)||p);k.get(n)===f&&k.delete(n);if(h.signal.aborted)return;if(tr(p))return T.add(n),void(await B(y,p));if(er(p)){let e=Xn(y.matches,i);return y.fetchers.delete(n),void M({fetchers:new Map(y.fetchers),errors:{[e.route.id]:p.error}})}zt(!Jn(p),"Unhandled fetcher deferred data");let v={state:"idle",data:p.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};y.fetchers.set(n,v),M({fetchers:new Map(y.fetchers)})}(s,l,p,g,h,v))},revalidate:function(){z(),M({revalidation:"loading"}),"submitting"!==y.navigation.state&&("idle"!==y.navigation.state?I(b||y.historyAction,y.navigation.location,{overrideNavigation:y.navigation}):I(y.historyAction,y.location,{startUninterruptedRevalidation:!0}))},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:L,deleteFetcher:G,dispose:function(){s&&s(),l.clear(),m&&m.abort(),y.fetchers.forEach(((e,t)=>G(t))),y.blockers.forEach(((e,t)=>Y(t)))},getBlocker:function(e,t){let n=y.blockers.get(e)||Tn;return O.get(e)!==t&&O.set(e,t),n},deleteBlocker:Y,_internalFetchControllers:k,_internalActiveDeferreds:D,_internalSetRoutes:function(e){r={},n=$t(e,t,void 0,r)}},v}Symbol("deferred");function Rn(e,t,n,r,i,o,a){let s,l;if(null!=o&&"path"!==a){s=[];for(let e of t)if(s.push(e),e.route.id===o){l=e;break}}else s=t,l=t[t.length-1];let u=pn(i||".",hn(s).map((e=>e.pathnameBase)),dn(e.pathname,n)||e.pathname,"path"===a);return null==i&&(u.search=e.search,u.hash=e.hash),null!=i&&""!==i&&"."!==i||!l||!l.route.index||sr(u.search)||(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),r&&"/"!==n&&(u.pathname="/"===u.pathname?n:vn([n,u.pathname])),Wt(u)}function In(e,t,n,r){if(!r||!function(e){return null!=e&&"formData"in e}(r))return{path:n};if(r.formMethod&&!rr(r.formMethod))return{path:n,error:Kn(405,{method:r.formMethod})};let i;if(r.formData){let t=r.formMethod||"get";if(i={formMethod:e?t.toUpperCase():t.toLowerCase(),formAction:Qn(n),formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:r.formData},ir(i.formMethod))return{path:n,submission:i}}let o=qt(n),a=Wn(r.formData);return t&&o.search&&sr(o.search)&&a.append("index",""),o.search="?"+a,{path:Wt(o),submission:i}}function Ln(e,t){let n=e;if(t){let r=e.findIndex((e=>e.route.id===t));r>=0&&(n=e.slice(0,r))}return n}function Bn(e,t,n,r,i,o,a,s,l,u,c,d,f){let h=f?Object.values(f)[0]:d?Object.values(d)[0]:void 0,p=e.createURL(t.location),v=e.createURL(i),m=f?Object.keys(f)[0]:void 0,g=Ln(n,m).filter(((e,n)=>{if(e.route.lazy)return!0;if(null==e.route.loader)return!1;if(function(e,t,n){let r=!t||n.route.id!==t.route.id,i=void 0===e[n.route.id];return r||i}(t.loaderData,t.matches[n],e)||a.some((t=>t===e.route.id)))return!0;let i=t.matches[n],s=e;return zn(e,It({currentUrl:p,currentParams:i.params,nextUrl:v,nextParams:s.params},r,{actionResult:h,defaultShouldRevalidate:o||p.pathname+p.search===v.pathname+v.search||p.search!==v.search||Fn(i,s)}))})),y=[];return l.forEach(((e,i)=>{if(!n.some((t=>t.route.id===e.routeId)))return;let a=Kt(u,e.path,c);if(!a)return void y.push({key:i,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let l=ur(a,e.path);(s.includes(i)||zn(l,It({currentUrl:p,currentParams:t.matches[t.matches.length-1].params,nextUrl:v,nextParams:n[n.length-1].params},r,{actionResult:h,defaultShouldRevalidate:o})))&&y.push({key:i,routeId:e.routeId,path:e.path,matches:a,match:l,controller:new AbortController})})),[g,y]}function Fn(e,t){let n=e.route.path;return e.pathname!==t.pathname||null!=n&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function zn(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if("boolean"==typeof n)return n}return t.defaultShouldRevalidate}async function Vn(e,t,n){if(!e.lazy)return;let r=await e.lazy();if(!e.lazy)return;let i=n[e.id];zt(i,"No route found in manifest");let o={};for(let a in r){let e=void 0!==i[a]&&"hasErrorBoundary"!==a;Vt(!e,'Route "'+i.id+'" has a static property "'+a+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+a+'" will be ignored.'),e||Xt.has(a)||(o[a]=r[a])}Object.assign(i,o),Object.assign(i,It({},t(i),{lazy:void 0}))}async function Gn(e,t,n,r,i,o,a,s,l,u){let c,d,f;void 0===s&&(s=!1),void 0===l&&(l=!1);let h=e=>{let r,i=new Promise(((e,t)=>r=t));return f=()=>r(),t.signal.addEventListener("abort",f),Promise.race([e({request:t,params:n.params,context:u}),i])};try{let r=n.route[e];if(n.route.lazy)if(r){d=(await Promise.all([h(r),Vn(n.route,o,i)]))[0]}else{if(await Vn(n.route,o,i),r=n.route[e],!r){if("action"===e){let e=new URL(t.url),r=e.pathname+e.search;throw Kn(405,{method:t.method,pathname:r,routeId:n.route.id})}return{type:Yt.data,data:void 0}}d=await h(r)}else{if(!r){let e=new URL(t.url);throw Kn(404,{pathname:e.pathname+e.search})}d=await h(r)}zt(void 0!==d,"You defined "+("action"===e?"an action":"a loader")+' for route "'+n.route.id+"\" but didn't return anything from your `"+e+"` function. Please return a value or `null`.")}catch(w){c=Yt.error,d=w}finally{f&&t.signal.removeEventListener("abort",f)}if(nr(d)){let e,i=d.status;if(kn.has(i)){let e=d.headers.get("Location");if(zt(e,"Redirects returned/thrown from loaders/actions must have a Location header"),jn.test(e)){if(!s){let n=new URL(t.url),r=e.startsWith("//")?new URL(n.protocol+e):new URL(e),i=null!=dn(r.pathname,a);r.origin===n.origin&&i&&(e=r.pathname+r.search+r.hash)}}else e=Rn(new URL(t.url),r.slice(0,r.indexOf(n)+1),a,!0,e);if(s)throw d.headers.set("Location",e),d;return{type:Yt.redirect,status:i,location:e,revalidate:null!==d.headers.get("X-Remix-Revalidate")}}if(l)throw{type:c||Yt.data,response:d};let o=d.headers.get("Content-Type");return e=o&&/\bapplication\/json\b/.test(o)?await d.json():await d.text(),c===Yt.error?{type:c,error:new ErrorResponse(i,d.statusText,e),headers:d.headers}:{type:Yt.data,data:e,statusCode:d.status,headers:d.headers}}return c===Yt.error?{type:c,error:d}:function(e){let t=e;return t&&"object"==typeof t&&"object"==typeof t.data&&"function"==typeof t.subscribe&&"function"==typeof t.cancel&&"function"==typeof t.resolveData}(d)?{type:Yt.deferred,deferredData:d,statusCode:null==(p=d.init)?void 0:p.status,headers:(null==(v=d.init)?void 0:v.headers)&&new Headers(d.init.headers)}:{type:Yt.data,data:d};var p,v}function Un(e,t,n,r){let i=e.createURL(Qn(t)).toString(),o={signal:n};if(r&&ir(r.formMethod)){let{formMethod:e,formEncType:t,formData:n}=r;o.method=e.toUpperCase(),o.body="application/x-www-form-urlencoded"===t?Wn(n):n}return new Request(i,o)}function Wn(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,r instanceof File?r.name:r);return t}function qn(e,t,n,r,i){let o,a={},s=null,l=!1,u={};return n.forEach(((n,c)=>{let d=t[c].route.id;if(zt(!tr(n),"Cannot handle redirect results in processLoaderData"),er(n)){let t=Xn(e,d),i=n.error;r&&(i=Object.values(r)[0],r=void 0),s=s||{},null==s[t.route.id]&&(s[t.route.id]=i),a[d]=void 0,l||(l=!0,o=xn(n.error)?n.error.status:500),n.headers&&(u[d]=n.headers)}else Jn(n)?(i.set(d,n.deferredData),a[d]=n.deferredData.data):a[d]=n.data,null==n.statusCode||200===n.statusCode||l||(o=n.statusCode),n.headers&&(u[d]=n.headers)})),r&&(s=r,a[Object.keys(r)[0]]=void 0),{loaderData:a,errors:s,statusCode:o||200,loaderHeaders:u}}function Hn(e,t,n,r,i,o,a,s){let{loaderData:l,errors:u}=qn(t,n,r,i,s);for(let c=0;ce.route.id===t))+1):[...e];return n.reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function $n(e){let t=e.find((e=>e.index||!e.path||"/"===e.path))||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Kn(e,t){let{pathname:n,routeId:r,method:i,type:o}=void 0===t?{}:t,a="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(a="Bad Request",i&&n&&r?s="You made a "+i+' request to "'+n+'" but did not provide a `loader` for route "'+r+'", so there is no way to handle the request.':"defer-action"===o&&(s="defer() is not supported in actions")):403===e?(a="Forbidden",s='Route "'+r+'" does not match URL "'+n+'"'):404===e?(a="Not Found",s='No route matches URL "'+n+'"'):405===e&&(a="Method Not Allowed",i&&n&&r?s="You made a "+i.toUpperCase()+' request to "'+n+'" but did not provide an `action` for route "'+r+'", so there is no way to handle the request.':i&&(s='Invalid request method "'+i.toUpperCase()+'"')),new ErrorResponse(e||500,a,new Error(s),!0)}function Zn(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(tr(n))return n}}function Qn(e){return Wt(It({},"string"==typeof e?qt(e):e,{hash:""}))}function Jn(e){return e.type===Yt.deferred}function er(e){return e.type===Yt.error}function tr(e){return(e&&e.type)===Yt.redirect}function nr(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function rr(e){return Nn.has(e.toLowerCase())}function ir(e){return _n.has(e.toLowerCase())}async function or(e,t,n,r,i,o){for(let a=0;ae.route.id===l.route.id)),c=null!=u&&!Fn(u,l)&&void 0!==(o&&o[l.route.id]);if(Jn(s)&&(i||c)){let e=r[a];zt(e,"Expected an AbortSignal for revalidating fetcher deferred result"),await ar(s,e,i).then((e=>{e&&(n[a]=e||n[a])}))}}}async function ar(e,t,n){if(void 0===n&&(n=!1),!(await e.deferredData.resolveData(t))){if(n)try{return{type:Yt.data,data:e.deferredData.unwrappedData}}catch(w){return{type:Yt.error,error:w}}return{type:Yt.data,data:e.deferredData.data}}}function sr(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function lr(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],handle:n.handle}}function ur(e,t){let n="string"==typeof t?qt(t).search:t.search;if(e[e.length-1].route.index&&sr(n||""))return e[e.length-1];let r=hn(e);return r[r.length-1]}function cr(){return cr=Object.assign?Object.assign.bind():function(e){for(var t=1;t component."),r.useContext(vr).location}gr.displayName="RouteError";const xr="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function wr(e){r.useContext(pr).static||r.useLayoutEffect(e)}function _r(){let{isDataRoute:e}=r.useContext(mr);return e?function(){let{router:e}=Mr(Dr.UseNavigateStable),t=Ir(Or.UseNavigateStable),n=r.useRef(!1);wr((()=>{n.current=!0}));let i=r.useCallback((function(r,i){void 0===i&&(i={}),Vt(n.current,xr),n.current&&("number"==typeof r?e.navigate(r):e.navigate(r,cr({fromRouteId:t},i)))}),[e,t]);return i}():function(){yr()||zt(!1,"useNavigate() may be used only in the context of a component.");let e=r.useContext(dr),{basename:t,navigator:n}=r.useContext(pr),{matches:i}=r.useContext(mr),{pathname:o}=br(),a=JSON.stringify(hn(i).map((e=>e.pathnameBase))),s=r.useRef(!1);return wr((()=>{s.current=!0})),r.useCallback((function(r,i){if(void 0===i&&(i={}),Vt(s.current,xr),!s.current)return;if("number"==typeof r)return void n.go(r);let l=pn(r,JSON.parse(a),o,"path"===i.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:vn([t,l.pathname])),(i.replace?n.replace:n.push)(l,i.state,i)}),[t,n,a,o,e])}()}const Er=r.createContext(null);function Nr(){let{matches:e}=r.useContext(mr),t=e[e.length-1];return t?t.params:{}}function kr(e,t){let{relative:n}=void 0===t?{}:t,{matches:i}=r.useContext(mr),{pathname:o}=br(),a=JSON.stringify(hn(i).map((e=>e.pathnameBase)));return r.useMemo((()=>pn(e,JSON.parse(a),o,"path"===n)),[e,a,o,n])}function Sr(e,t,n){yr()||zt(!1,"useRoutes() may be used only in the context of a component.");let{navigator:i}=r.useContext(pr),{matches:o}=r.useContext(mr),a=o[o.length-1],s=a?a.params:{},l=a?a.pathname:"/",u=a?a.pathnameBase:"/",c=a&&a.route;{let e=c&&c.path||"";d=l,f=!c||e.endsWith("*"),h='You rendered descendant (or called `useRoutes()`) at "'+l+'" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won\'t match anymore and therefore the child routes will never render.\n\nPlease change the parent to .',f||Fr[d]||(Fr[d]=!0,Vt(!1,h))}var d,f,h;let p,v=br();if(t){var m;let e="string"==typeof t?qt(t):t;"/"===u||(null==(m=e.pathname)?void 0:m.startsWith(u))||zt(!1,'When overriding the location using `` or `useRoutes(routes, location)`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "'+u+'" but pathname "'+e.pathname+'" was given in the `location` prop.'),p=e}else p=v;let g=p.pathname||"/",y=Kt(e,{pathname:"/"===u?g:g.slice(u.length)||"/"});Vt(c||null!=y,'No routes matched location "'+p.pathname+p.search+p.hash+'" '),Vt(null==y||void 0!==y[y.length-1].route.element||void 0!==y[y.length-1].route.Component,'Matched leaf route at location "'+p.pathname+p.search+p.hash+'" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.');let b=jr(y&&y.map((e=>Object.assign({},e,{params:Object.assign({},s,e.params),pathname:vn([u,i.encodeLocation?i.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?u:vn([u,i.encodeLocation?i.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),o,n);return t&&b?r.createElement(vr.Provider,{value:{location:cr({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:At.Pop}},b):b}function Pr(){let e=Br(),t=xn(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:i},a={padding:"2px 4px",backgroundColor:i},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=r.createElement(r.Fragment,null,r.createElement("p",null,"\ud83d\udcbf Hey developer \ud83d\udc4b"),r.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",r.createElement("code",{style:a},"ErrorBoundary")," or"," ",r.createElement("code",{style:a},"errorElement")," prop on your route.")),r.createElement(r.Fragment,null,r.createElement("h2",null,"Unexpected Application Error!"),r.createElement("h3",{style:{fontStyle:"italic"}},t),n?r.createElement("pre",{style:o},n):null,s)}const Cr=r.createElement(Pr,null);class RenderErrorBoundary extends r.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error||t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error?r.createElement(mr.Provider,{value:this.props.routeContext},r.createElement(gr.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Tr(e){let{routeContext:t,match:n,children:i}=e,o=r.useContext(dr);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),r.createElement(mr.Provider,{value:t},i)}function jr(e,t,n){var i;if(void 0===t&&(t=[]),void 0===n&&(n=null),null==e){var o;if(null==(o=n)||!o.errors)return null;e=n.matches}let a=e,s=null==(i=n)?void 0:i.errors;if(null!=s){let e=a.findIndex((e=>e.route.id&&(null==s?void 0:s[e.route.id])));e>=0||zt(!1,"Could not find a matching route for errors on route IDs: "+Object.keys(s).join(",")),a=a.slice(0,Math.min(a.length,e+1))}return a.reduceRight(((e,i,o)=>{let l=i.route.id?null==s?void 0:s[i.route.id]:null,u=null;n&&(u=i.route.errorElement||Cr);let c=t.concat(a.slice(0,o+1)),d=()=>{let t;return t=l?u:i.route.Component?r.createElement(i.route.Component,null):i.route.element?i.route.element:e,r.createElement(Tr,{match:i,routeContext:{outlet:e,matches:c,isDataRoute:null!=n},children:t})};return n&&(i.route.ErrorBoundary||i.route.errorElement||0===o)?r.createElement(RenderErrorBoundary,{location:n.location,revalidation:n.revalidation,component:u,error:l,children:d(),routeContext:{outlet:null,matches:c,isDataRoute:!0}}):d()}),null)}var Dr,Or;function Ar(e){return e+" must be used within a data router. See https://reactrouter.com/routers/picking-a-router."}function Mr(e){let t=r.useContext(dr);return t||zt(!1,Ar(e)),t}function Rr(e){let t=r.useContext(fr);return t||zt(!1,Ar(e)),t}function Ir(e){let t=function(e){let t=r.useContext(mr);return t||zt(!1,Ar(e)),t}(e),n=t.matches[t.matches.length-1];return n.route.id||zt(!1,e+' can only be used on routes that contain a unique "id"'),n.route.id}function Lr(e){return Rr(Or.UseRouteLoaderData).loaderData[e]}function Br(){var e;let t=r.useContext(gr),n=Rr(Or.UseRouteError),i=Ir(Or.UseRouteError);return t||(null==(e=n.errors)?void 0:e[i])}!function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate"}(Dr||(Dr={})),function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId"}(Or||(Or={}));const Fr={};function zr(e){let{fallbackElement:t,router:n}=e,[i,o]=r.useState(n.state);r.useLayoutEffect((()=>n.subscribe(o)),[n,o]);let a=r.useMemo((()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:e=>n.navigate(e),push:(e,t,r)=>n.navigate(e,{state:t,preventScrollReset:null==r?void 0:r.preventScrollReset}),replace:(e,t,r)=>n.navigate(e,{replace:!0,state:t,preventScrollReset:null==r?void 0:r.preventScrollReset})})),[n]),s=n.basename||"/",l=r.useMemo((()=>({router:n,navigator:a,static:!1,basename:s})),[n,a,s]);return r.createElement(r.Fragment,null,r.createElement(dr.Provider,{value:l},r.createElement(fr.Provider,{value:i},r.createElement(Ur,{basename:n.basename,location:n.state.location,navigationType:n.state.historyAction,navigator:a},n.state.initialized?r.createElement(Vr,{routes:n.routes,state:i}):t))),null)}function Vr(e){let{routes:t,state:n}=e;return Sr(t,void 0,n)}function Gr(e){return function(e){let t=r.useContext(mr).outlet;return t?r.createElement(Er.Provider,{value:e},t):t}(e.context)}function Ur(e){let{basename:t="/",children:n=null,location:i,navigationType:o=At.Pop,navigator:a,static:s=!1}=e;yr()&&zt(!1,"You cannot render a inside another . You should never have more than one in your app.");let l=t.replace(/^\/*/,"/"),u=r.useMemo((()=>({basename:l,navigator:a,static:s})),[l,a,s]);"string"==typeof i&&(i=qt(i));let{pathname:c="/",search:d="",hash:f="",state:h=null,key:p="default"}=i,v=r.useMemo((()=>{let e=dn(c,l);return null==e?null:{location:{pathname:e,search:d,hash:f,state:h,key:p},navigationType:o}}),[l,c,d,f,h,p,o]);return Vt(null!=v,' is not able to match the URL "'+c+d+f+"\" because it does not start with the basename, so the won't render anything."),null==v?null:r.createElement(pr.Provider,{value:u},r.createElement(vr.Provider,{children:n,value:v}))}var Wr;!function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(Wr||(Wr={}));new Promise((()=>{}));r.Component;function qr(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element&&Vt(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:r.createElement(e.Component),Component:void 0})),e.ErrorBoundary&&(e.errorElement&&Vt(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:r.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}function Hr(){return Hr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}const Xr="get",$r="application/x-www-form-urlencoded";function Kr(e){return null!=e&&"string"==typeof e.tagName}function Zr(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}function Qr(e,t,n){let r,i,o,a=null;if(Kr(s=e)&&"form"===s.tagName.toLowerCase()){let s=t.submissionTrigger;if(t.action)a=t.action;else{let t=e.getAttribute("action");a=t?dn(t,n):null}r=t.method||e.getAttribute("method")||Xr,i=t.encType||e.getAttribute("enctype")||$r,o=new FormData(e),s&&s.name&&o.append(s.name,s.value)}else if(function(e){return Kr(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Kr(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let s=e.form;if(null==s)throw new Error('Cannot submit a