{ "name": "livecodes", "version": "0.0.0", "appVersion": "46", "description": "Code Playground That Just Works!", "author": "Hatem Hosny", "license": "MIT", "keywords": [], "private": true, "repository": { "url": "https://github.com/live-codes/livecodes" }, "scripts": { "start": "run-p copy:assets watch serve", "docs": "cd docs && npm run start", "storybook": "cd storybook && npm run storybook", "serve": "live-server build --watch=build/tmp/ --cors --quiet", "watch": "nodemon --watch src -e \"*\" --ignore src/livecodes/i18n/locale-paths.ts ./scripts/build.js --dev", "prebuild": "npm run i18n-exclude pre", "postbuild": "npm run i18n-exclude post", "build": "run-s build:*", "build:app": "run-s clean copy:* && node ./scripts/build.js", "build:ts": "tsc --emitDeclarationOnly --outFile build/livecodes/types.d.ts", "build:ts-sdk": "tsc --emitDeclarationOnly -p tsconfig.sdk.json && node ./scripts/bundle-types.js", "build:ts-docs": "cd docs && npm run typecheck", "build:ts-storybook": "cd storybook && npm run typecheck", "build:docs": "cd docs && npm run build", "build:storybook": "cd storybook && npm run build", "copy:assets": "recursive-delete build/livecodes/assets && mkdirp build/livecodes/assets && recursive-copy src/livecodes/assets build/livecodes/assets", "typedocs": "run-s typedocs:*", "typedocs:livecodes": "typedoc src/livecodes/main.ts src/livecodes/app.ts src/livecodes/embed.ts src/livecodes/_modules.ts --out build/typedocs/livecodes --exclude **/*.spec.ts --excludeExternals", "typedocs:sdk": "typedoc src/sdk/livecodes.ts --out build/typedocs/sdk --exclude **/*.spec.ts --excludeExternals", "predeploy": "cross-env DOCS_BASE_URL=\"/livecodes/docs/\" npm run build", "predeploy:no-docs": "cross-env DOCS_BASE_URL=null npm run build:app", "deploy": "gh-pages -m \"[ci skip] Updates\" -d build --nojekyll", "fix": "run-s fix:*", "fix:i18n-export": "npm run i18n-export", "fix:prettier": "prettier src --write", "fix:eslint": "eslint --fix", "fix:stylelint": "stylelint --fix \"src/livecodes/styles/*\"", "fix:stylelint-docs": "stylelint --fix \"docs/**/*.{css,scss}\"", "test": "run-s test:*", "test:i18n-export": "node ./scripts/test-i18n-export.js", "test:i18n-exclude": "node ./scripts/test-i18n-exclude.js", "test:lint": "run-s lint:*", "test:unit": "jest src", "test:bundlewatch": "bundlewatch --config .bundlewatch.config.js", "test:broken-links": "node ./scripts/test-filenames.js", "lint:prettier": "prettier src --list-different", "lint:eslint": "eslint", "lint:stylelint": "stylelint \"src/livecodes/styles/*\"", "lint:stylelint-docs": "stylelint \"docs/**/*.{css,scss}\"", "e2e": "playwright test", "ci:e2e": "playwright install && playwright test --shard=$CI_SHARD_INDEX/$CI_SHARD_TOTAL", "cov": "run-s \"test:unit -- --coverage\"", "cov:send": "run-s cov && codecov", "reset": "git clean -dfx && git reset --hard && npm i", "clean": "recursive-delete build", "postinstall": "patch-package && run-p install:*", "install:docs": "cd docs && npm ci", "install:storybook": "cd storybook && npm ci", "prepush:skip-e2e": "run-s fix build test:lint test:unit", "prepush": "run-s fix build test", "start-release": "node ./scripts/start-release.mjs", "vscode-intellisense": "node ./scripts/vscode-intellisense.js", "i18n-export": "node ./scripts/i18n-export.js", "i18n-update-push": "node ./scripts/i18n-upload.mjs", "i18n-update-pull": "node ./scripts/i18n-import.mjs", "i18n-exclude": "node ./scripts/i18n-exclude.js", "i18n-lokalise-json": "node ./scripts/i18n-lokalise-json.mjs", "check-types": "tsc -p tsconfig.full.json --noEmit" }, "dependencies": { "@eslint/compat": "1.2.6", "@snackbar/core": "1.7.0", "@types/deep-diff": "1.0.1", "codejar": "4.1.1", "deep-diff": "1.0.2", "eslint-plugin-no-only-tests": "3.3.0", "firebase": "9.6.6", "i18next": "23.15.1", "i18next-http-backend": "2.6.1", "js-base64": "3.7.5", "luna-console": "1.3.6", "luna-data-grid": "1.4.1", "luna-dom-viewer": "1.8.2", "luna-object-viewer": "0.3.2", "lz-string": "1.4.4", "monaco-editor": "0.48.0", "patch-package": "7.0.2", "prismjs": "1.29.0", "split.js": "1.6.5", "yjs": "13.5.40" }, "devDependencies": { "@bitjson/typedoc": "0.15.0-0", "@cloudflare/workers-types": "3.4.0", "@eslint/js": "9.20.0", "@inquirer/prompts": "1.0.3", "@istanbuljs/nyc-config-typescript": "1.0.1", "@lokalise/node-api": "14.4.0", "@playwright/test": "1.32.3", "@types/jest": "25.2.3", "@types/live-server": "1.2.0", "@types/localforage": "0.0.34", "@types/lz-string": "1.3.34", "@types/node": "18.11.9", "@types/prettier": "2.1.6", "@types/prismjs": "1.16.3", "@types/react": "19.0.10", "@typescript-eslint/eslint-plugin": "8.24.1", "@typescript-eslint/parser": "8.24.1", "@typescript/vfs": "1.5.3", "@vue/runtime-core": "3.2.45", "autoprefixer": "10.4.2", "brotli-size": "4.0.0", "bundlewatch": "0.3.3", "codecov": "3.8.3", "comlink": "4.4.1", "conventional-changelog": "3.1.25", "cross-env": "7.0.3", "dts-bundle": "0.7.3", "esbuild": "0.20.2", "esbuild-plugin-minify-html": "0.1.2", "esbuild-plugin-replace": "1.4.0", "eslint": "9.20.1", "eslint-config-prettier": "10.0.1", "eslint-plugin-import": "2.31.0", "eslint-plugin-jest": "28.11.0", "eslint-plugin-jsdoc": "50.6.3", "eslint-plugin-prefer-arrow": "1.2.3", "gh-pages": "6.1.0", "globals": "15.15.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "live-server": "1.2.1", "mkdirp": "1.0.4", "nodemon": "2.0.20", "npm-run-all": "4.1.5", "postcss": "8.4.6", "postcss-cli": "9.1.0", "prettier": "3.2.5", "prettier-plugin-organize-imports": "4.1.0", "recursive-fs": "2.1.0", "sass": "1.49.7", "stylelint": "14.5.0", "stylelint-config-sass-guidelines": "9.0.1", "ts-jest": "29.1.0", "tslib": "2.6.2", "typedoc": "0.25.13", "typedoc-plugin-missing-exports": "2.2.0", "typescript": "5.4.5" }, "prettier": { "semi": true, "singleQuote": true, "trailingComma": "all", "printWidth": 100, "plugins": ["prettier-plugin-organize-imports"] }, "jest": { "preset": "ts-jest", "testEnvironment": "jsdom", "setupFiles": ["/.jest/setup.ts"], "testPathIgnorePatterns": ["/node_modules/", "/build/", "/src/modules/"], "collectCoverageFrom": ["src/**/*.ts", "!**/build/**", "!**/vendor/**", "!src/modules/**"], "coverageReporters": ["json", "html", "lcov"], "resolveJsonModule": true } }