{ "name": "@growi/app", "version": "7.4.4-RC.0", "license": "MIT", "private": "true", "scripts": { "//// for production": "", "build": "run-p build:*", "start": "next start", "build:client": "next build", "build:server": "cross-env NODE_ENV=production tspc -p tsconfig.build.server.json", "postbuild:server": "shx echo \"Listing files under transpiled\" && shx ls transpiled && shx rm -rf dist && shx mv transpiled/src dist && shx rm -rf transpiled", "clean": "shx rm -rf dist transpiled", "server": "cross-env NODE_ENV=production node -r dotenv-flow/config dist/server/app.js", "server:ci": "pnpm run server --ci", "preserver": "cross-env NODE_ENV=production pnpm run migrate", "pre:styles": "vite build -c vite.styles-prebuilt.config.ts", "migrate": "node -r dotenv-flow/config node_modules/migrate-mongo/bin/migrate-mongo up -f config/migrate-mongo-config.js", "//// for development": "", "dev": "cross-env NODE_ENV=development nodemon --exec pnpm run ts-node --inspect src/server/app.ts", "dev:pre:styles": "pnpm run pre:styles --mode dev", "dev:migrate-mongo": "cross-env NODE_ENV=development pnpm run ts-node node_modules/migrate-mongo/bin/migrate-mongo", "dev:migrate": "pnpm run dev:migrate:status > tmp/cache/migration-status.out && pnpm run dev:migrate:up", "dev:migrate:status": "pnpm run dev:migrate-mongo status -f config/migrate-mongo-config.js", "dev:migrate:up": "pnpm run dev:migrate-mongo up -f config/migrate-mongo-config.js", "dev:migrate:down": "pnpm run dev:migrate-mongo down -f config/migrate-mongo-config.js", "//// for CI": "", "launch-dev:ci": "cross-env NODE_ENV=development pnpm run dev:migrate && pnpm run ts-node src/server/app.ts --ci", "lint:typecheck": "tsgo --noEmit", "lint:biome": "biome check --diagnostic-level=error", "lint:styles": "stylelint \"src/**/*.scss\"", "lint:openapi:apiv3": "node node_modules/swagger2openapi/oas-validate tmp/openapi-spec-apiv3.json", "lint:openapi:apiv1": "node node_modules/swagger2openapi/oas-validate tmp/openapi-spec-apiv1.json", "lint": "run-p lint:**", "prelint:openapi:apiv3": "pnpm run openapi:generate-spec:apiv3", "prelint:openapi:apiv1": "pnpm run openapi:generate-spec:apiv1", "test": "pnpm run test:vitest:coverage", "test:vitest": "vitest run", "test:vitest:coverage": "COLUMNS=200 vitest run --coverage", "reg:run": "reg-suit run", "//// misc": "", "console": "npm run repl", "repl": "cross-env NODE_ENV=development npm run ts-node src/server/repl.ts", "openapi:build:generate-operation-ids": "vite build -c bin/openapi/generate-operation-ids/vite.config.ts", "openapi:generate-spec:apiv3": "sh bin/openapi/generate-spec-apiv3.sh", "openapi:generate-spec:apiv1": "sh bin/openapi/generate-spec-apiv1.sh", "ts-node": "node -r ts-node/register/transpile-only -r tsconfig-paths/register -r dotenv-flow/config", "version:patch": "pnpm version patch", "version:prerelease": "pnpm version prerelease --preid=RC", "version:prepatch": "pnpm version prepatch --preid=RC", "version:preminor": "pnpm version preminor --preid=RC", "version:premajor": "pnpm version premajor --preid=RC" }, "// comments for dependencies": { "@aws-skd/*": "fix version above 3.186.0 that is required by mongodb@4.16.0", "@keycloak/keycloak-admin-client": "19.0.0 or above exports only ESM.", "escape-string-regexp": "5.0.0 or above exports only ESM", "next-themes": "0.3.0 causes a type error: https://github.com/pacocoursey/next-themes/issues/122", "string-width": "5.0.0 or above exports only ESM." }, "dependencies": { "@akebifiky/remark-simple-plantuml": "^1.0.2", "@aws-sdk/client-s3": "3.454.0", "@aws-sdk/s3-request-presigner": "3.454.0", "@azure/identity": "^4.4.1", "@azure/openai": "^2.0.0", "@azure/storage-blob": "^12.16.0", "@browser-bunyan/console-formatted-stream": "^1.8.0", "@cspell/dynamic-import": "^8.15.4", "@elastic/elasticsearch7": "npm:@elastic/elasticsearch@^7.17.4", "@elastic/elasticsearch8": "npm:@elastic/elasticsearch@^8.18.2", "@elastic/elasticsearch9": "npm:@elastic/elasticsearch@^9.0.3", "@godaddy/terminus": "^4.9.0", "@google-cloud/storage": "^5.8.5", "@growi/core": "workspace:^", "@growi/pdf-converter-client": "workspace:^", "@growi/pluginkit": "workspace:^", "@growi/presentation": "workspace:^", "@growi/preset-templates": "workspace:^", "@growi/preset-themes": "workspace:^", "@growi/remark-attachment-refs": "workspace:^", "@growi/remark-drawio": "workspace:^", "@growi/remark-growi-directive": "workspace:^", "@growi/remark-lsx": "workspace:^", "@growi/slack": "workspace:^", "@keycloak/keycloak-admin-client": "^18.0.0", "@opentelemetry/api": "^1.9.0", "@opentelemetry/auto-instrumentations-node": "^0.60.1", "@opentelemetry/exporter-metrics-otlp-grpc": "^0.202.0", "@opentelemetry/exporter-trace-otlp-grpc": "^0.202.0", "@opentelemetry/resources": "^2.0.1", "@opentelemetry/sdk-metrics": "^2.0.1", "@opentelemetry/sdk-node": "^0.202.0", "@opentelemetry/sdk-trace-node": "^2.0.1", "@opentelemetry/semantic-conventions": "^1.34.0", "@slack/web-api": "^6.2.4", "@slack/webhook": "^6.0.0", "@types/async": "^3.2.24", "@types/multer": "^1.4.12", "JSONStream": "^1.3.5", "archiver": "^5.3.0", "array.prototype.flatmap": "^1.2.2", "async-canvas-to-blob": "^1.0.3", "axios": "^1.11.0", "axios-retry": "^3.2.4", "babel-plugin-superjson-next": "^0.4.2", "body-parser": "^1.20.3", "browser-bunyan": "^1.8.0", "bson-objectid": "^2.0.4", "bunyan": "^1.8.15", "check-node-version": "^4.2.1", "compression": "^1.7.4", "connect-flash": "~0.1.1", "connect-mongo": "^4.6.0", "connect-redis": "^4.0.4", "cookie-parser": "^1.4.5", "cross-env": "^7.0.0", "csurf": "^1.11.0", "csv-to-markdown-table": "^1.4.1", "date-fns": "^3.6.0", "dayjs": "^1.11.7", "detect-indent": "^7.0.0", "diff": "^5.0.0", "diff_match_patch": "^0.1.1", "dotenv-flow": "^3.2.0", "ejs": "^3.1.10", "escape-string-regexp": "^4.0.0", "expose-gc": "^1.0.0", "express": "^4.20.0", "express-bunyan-logger": "^1.3.3", "express-mongo-sanitize": "^2.1.0", "express-session": "^1.16.1", "express-validator": "^6.14.0", "extensible-custom-error": "^0.0.7", "form-data": "^4.0.4", "graceful-fs": "^4.1.11", "hast-util-sanitize": "^5.0.1", "hast-util-select": "^6.0.2", "hastscript": "^8.0.0", "helmet": "^4.6.0", "http-errors": "^2.0.0", "i18next": "^23.16.5", "i18next-resources-to-backend": "^1.2.1", "is-absolute-url": "^4.0.1", "is-iso-date": "^0.0.1", "jotai": "^2.12.3", "js-cookie": "^3.0.5", "js-tiktoken": "^1.0.15", "js-yaml": "^4.1.1", "jsonrepair": "^3.12.0", "katex": "^0.16.21", "ldapjs": "^3.0.2", "lucene-query-parser": "^1.2.0", "markdown-table": "^3.0.3", "md5": "^2.2.1", "mdast-util-from-markdown": "^2.0.1", "mdast-util-gfm-table": "^2.0.0", "mdast-util-wiki-link": "^0.1.2", "mermaid": "^11.10.0", "method-override": "^3.0.0", "micromark-extension-gfm-table": "^2.1.0", "micromark-extension-wiki-link": "^0.0.4", "migrate-mongo": "^11.0.0", "mkdirp": "^1.0.3", "mongodb": "^4.17.2", "mongoose": "^6.13.6", "mongoose-gridfs": "^1.3.0", "mongoose-paginate-v2": "^1.3.9", "mongoose-unique-validator": "^2.0.3", "multer": "~1.4.0", "multer-autoreap": "^1.0.3", "mustache": "^4.2.0", "next": "^14.2.35", "next-dynamic-loading-props": "^0.1.1", "next-i18next": "^15.3.1", "next-superjson": "^1.0.7", "next-themes": "^0.2.1", "nocache": "^4.0.0", "node-cron": "^3.0.2", "nodemailer": "^6.9.15", "nodemailer-ses-transport": "~1.5.0", "openai": "^4.96.2", "openid-client": "^5.4.0", "p-retry": "^4.0.0", "passport": "^0.6.0", "passport-github": "^1.1.0", "passport-google-oauth20": "^2.0.0", "passport-ldapauth": "^3.0.1", "passport-local": "^1.0.0", "passport-saml": "^3.2.0", "pathe": "^2.0.3", "prop-types": "^15.8.1", "qs": "^6.14.1", "rate-limiter-flexible": "^2.3.7", "react": "^18.2.0", "react-bootstrap-typeahead": "^6.3.2", "react-card-flip": "^1.0.10", "react-datepicker": "^4.7.0", "react-disable": "^0.1.1", "react-dom": "^18.2.0", "react-error-boundary": "^3.1.4", "react-i18next": "^15.1.1", "react-image-crop": "^8.3.0", "react-markdown": "^9.0.1", "react-multiline-clamp": "^2.0.0", "react-scroll": "^1.8.7", "react-stickynode": "^4.1.1", "react-syntax-highlighter": "^15.5.0", "react-use-ripple": "^1.5.2", "reactstrap": "^9.2.2", "reconnecting-websocket": "^4.4.0", "redis": "^3.0.2", "rehype-katex": "^7.0.1", "rehype-meta": "^4.0.1", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "rehype-slug": "^6.0.0", "rehype-stringify": "^10.0.1", "rehype-toc": "^3.0.2", "remark-breaks": "^4.0.0", "remark-directive": "^3.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.0", "remark-html": "^16.0.1", "remark-math": "^6.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.1", "remark-stringify": "^11.0.0", "sanitize-filename": "^1.6.3", "socket.io": "^4.7.5", "string-width": "=4.2.2", "superjson": "^2.2.2", "swagger-jsdoc": "^6.2.8", "swr": "^2.3.2", "throttle-debounce": "^5.0.0", "ts-deepmerge": "^6.2.0", "tslib": "^2.8.0", "uglifycss": "^0.0.29", "uid-safe": "^2.1.5", "unified": "^11.0.0", "unist-util-visit": "^5.0.0", "universal-bunyan": "^0.9.2", "unstated": "^2.1.1", "unzip-stream": "^0.3.2", "url-join": "^4.0.0", "usehooks-ts": "^2.6.0", "uuid": "^11.0.3", "validator": "^13.15.22", "ws": "^8.17.1", "xss": "^1.0.15", "y-mongodb-provider": "^0.2.0", "y-socket.io": "^1.1.3", "yjs": "^13.6.18", "zod": "^3.24.2" }, "// comments for defDependencies": { "bootstrap": "v5.3.3 has a bug. refs: https://github.com/twbs/bootstrap/issues/39798", "@handsontable/react": "v3 requires handsontable >= 7.0.0.", "handsontable": "v7.0.0 or above is no loger MIT lisence.", "mongodb": "mongoose which is used requires mongo@4.16.0." }, "devDependencies": { "@apidevtools/swagger-parser": "^10.1.1", "@codemirror/state": "^6.5.2", "@emoji-mart/data": "^1.2.1", "@growi/core-styles": "workspace:^", "@growi/custom-icons": "workspace:^", "@growi/editor": "workspace:^", "@growi/ui": "workspace:^", "@handsontable/react": "=2.1.0", "@headless-tree/core": "^1.5.3", "@headless-tree/react": "^1.5.3", "@next/bundle-analyzer": "^14.1.3", "@popperjs/core": "^2.11.8", "@tanstack/react-virtual": "^3.13.12", "@testing-library/jest-dom": "^6.5.0", "@testing-library/user-event": "^14.5.2", "@types/archiver": "^6.0.2", "@types/bunyan": "^1.8.11", "@types/express": "^4.17.21", "@types/hast": "^3.0.4", "@types/js-cookie": "^3.0.6", "@types/ldapjs": "^2.2.5", "@types/mdast": "^4.0.4", "@types/node-cron": "^3.0.11", "@types/react": "^18.2.14", "@types/react-dom": "^18.2.6", "@types/react-input-autosize": "^2.2.4", "@types/react-scroll": "^1.8.4", "@types/react-stickynode": "^4.0.3", "@types/supertest": "^6.0.3", "@types/testing-library__dom": "^7.5.0", "@types/throttle-debounce": "^5.0.1", "@types/unist": "^3.0.3", "@types/unzip-stream": "^0.3.4", "@types/url-join": "^4.0.2", "@types/uuid": "^10.0.0", "@types/ws": "^8.18.1", "babel-loader": "^8.2.5", "bootstrap": "=5.3.2", "commander": "^14.0.0", "connect-browser-sync": "^2.1.0", "diff2html": "^3.4.47", "downshift": "^8.2.3", "eazy-logger": "^3.1.0", "fastest-levenshtein": "^1.0.16", "fslightbox-react": "^1.7.6", "handsontable": "=6.2.2", "happy-dom": "^15.7.4", "i18next-chained-backend": "^4.6.2", "i18next-hmr": "^3.1.3", "i18next-http-backend": "^2.6.2", "i18next-localstorage-backend": "^4.2.0", "jotai-devtools": "^0.11.0", "load-css-file": "^1.0.0", "material-icons": "^1.11.3", "mdast-util-directive": "^3.0.0", "mdast-util-find-and-replace": "^3.0.1", "mongodb-connection-string-url": "^7.0.0", "mongodb-memory-server-core": "^9.1.1", "morgan": "^1.10.0", "null-loader": "^4.0.1", "openapi-typescript": "^7.8.0", "pretty-bytes": "^6.1.1", "react-copy-to-clipboard": "^5.0.1", "react-dnd": "^14.0.5", "react-dnd-html5-backend": "^14.1.0", "react-dropzone": "^14.2.3", "react-hook-form": "^7.45.4", "react-hotkeys": "^2.0.0", "react-input-autosize": "^3.0.0", "react-toastify": "^9.1.3", "rehype-rewrite": "^4.0.2", "remark-github-admonitions-to-directives": "^2.0.0", "sass": "^1.53.0", "simplebar-react": "^2.3.6", "socket.io-client": "^4.7.5", "source-map-loader": "^4.0.1", "supertest": "^7.1.4", "swagger2openapi": "^7.0.8", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }