From fb7a119262f2c87c04c35bd18352253936661e7a Mon Sep 17 00:00:00 2001 From: Andreas Pfau Date: Wed, 30 Jul 2025 13:07:42 +0200 Subject: [PATCH 1/9] chore(core): restructure files and finalize the setup --- .github/workflows/ci-checks.yaml | 115 +- .gitignore | 20 +- package.json | 71 +- pnpm-lock.yaml | 1523 +++++++++++++++++++- prettier.config.cjs | 3 + src/demo/assets/Logo_JV1.png | Bin 0 -> 74693 bytes src/demo/assets/android-chrome-192x192.png | Bin 0 -> 4117 bytes src/demo/assets/android-chrome-512x512.png | Bin 0 -> 12942 bytes src/demo/assets/apple-touch-icon.png | Bin 0 -> 3824 bytes src/demo/assets/favicon-16x16.png | Bin 0 -> 750 bytes src/demo/assets/favicon-32x32.png | Bin 0 -> 1090 bytes src/demo/assets/favicon.ico | Bin 0 -> 15086 bytes src/demo/assets/mstile-150x150.png | Bin 0 -> 2587 bytes src/demo/index.html | 78 + src/demo/index.ts | 1 + src/package/components/json-viewer.ts | 307 ++++ src/package/components/toolbar.ts | 50 + src/package/index.ts | 3 + src/package/styles.css | 39 + src/package/utils/data-parser.ts | 95 ++ tsconfig.json | 24 + tsconfig.types.json | 11 + vite.config.ts | 42 + 23 files changed, 2261 insertions(+), 121 deletions(-) create mode 100644 prettier.config.cjs create mode 100644 src/demo/assets/Logo_JV1.png create mode 100644 src/demo/assets/android-chrome-192x192.png create mode 100644 src/demo/assets/android-chrome-512x512.png create mode 100644 src/demo/assets/apple-touch-icon.png create mode 100644 src/demo/assets/favicon-16x16.png create mode 100644 src/demo/assets/favicon-32x32.png create mode 100644 src/demo/assets/favicon.ico create mode 100644 src/demo/assets/mstile-150x150.png create mode 100644 src/demo/index.html create mode 100644 src/demo/index.ts create mode 100644 src/package/components/json-viewer.ts create mode 100644 src/package/components/toolbar.ts create mode 100644 src/package/index.ts create mode 100644 src/package/styles.css create mode 100644 src/package/utils/data-parser.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.types.json create mode 100644 vite.config.ts diff --git a/.github/workflows/ci-checks.yaml b/.github/workflows/ci-checks.yaml index 8009e97..59d017f 100644 --- a/.github/workflows/ci-checks.yaml +++ b/.github/workflows/ci-checks.yaml @@ -21,28 +21,21 @@ jobs: node-version: "20" # Specify the node version you need - name: Setup pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 with: - version: 8 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - + version: 10 + - name: Cache pnpm store uses: actions/cache@v4 with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.OS }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + path: ~/.pnpm-store + key: ${{ runner.OS }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.OS }}-pnpm-store- + ${{ runner.OS }}-pnpm- - name: Install Dependencies run: pnpm install --frozen-lockfile - lint: needs: install-dependencies runs-on: [ubuntu-latest] @@ -51,32 +44,25 @@ jobs: - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: "20" # Specify the node version you need + node-version: "20" - name: Setup pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 with: - version: 8 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - + version: 10 + - name: Cache pnpm store uses: actions/cache@v4 with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.OS }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + path: ~/.pnpm-store + key: ${{ runner.OS }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.OS }}-pnpm-store- + ${{ runner.OS }}-pnpm- - name: Install Dependencies run: pnpm install --frozen-lockfile - - name: Run Linter - run: packagenpm run lint + run: pnpm run lint:check format: needs: install-dependencies @@ -86,33 +72,53 @@ jobs: - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: "20" # Specify the node version you need + node-version: "20" - name: Setup pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 with: - version: 8 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - + version: 10 + - name: Cache pnpm store uses: actions/cache@v4 with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.OS }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + path: ~/.pnpm-store + key: ${{ runner.OS }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.OS }}-pnpm-store- - + ${{ runner.OS }}-pnpm- - name: Install Dependencies run: pnpm install --frozen-lockfile + - name: Run Prettier + run: pnpm run format:check + + types: + needs: install-dependencies + runs-on: [ubuntu-latest] + steps: + - uses: actions/checkout@v4 + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + - name: Cache pnpm store + uses: actions/cache@v4 + with: + path: ~/.pnpm-store + key: ${{ runner.OS }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.OS }}-pnpm- + + - name: Install Dependencies + run: pnpm install --frozen-lockfile - name: Run Prettier - run: npm run check-format + run: pnpm run type:check test: needs: install-dependencies @@ -122,29 +128,22 @@ jobs: - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: "20" # Specify the node version you need + node-version: "20" - name: Setup pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 with: - version: 8 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - + version: 10 + - name: Cache pnpm store uses: actions/cache@v4 with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.OS }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + path: ~/.pnpm-store + key: ${{ runner.OS }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.OS }}-pnpm-store- + ${{ runner.OS }}-pnpm- - name: Install Dependencies - run: pnpm install --frozen-lockfile - && npm run build + run: pnpm install --frozen-lockfile && pnpm run build - name: Run Tests run: pnpm run test diff --git a/.gitignore b/.gitignore index b512c09..81c6473 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,19 @@ -node_modules \ No newline at end of file +# Logs +logs +*.log +npm-debug.log* +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/package.json b/package.json index 6db775a..0e8c6c5 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,8 @@ { "name": "@andypf/json-viewer", - "version": "2.2.0", - "description": "A javascript library to visualize json nicely", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", + "private": false, + "version": "3.0.0", + "type": "module", "keywords": [ "react-json", "react-json-tree", @@ -24,44 +23,34 @@ "small", "32KB" ], + "files": [ + "dist", + "demo", + "README.md", + "LICENSE" + ], + "main": "./dist/es/index.js", + "module": "./dist/es/index.js", + "types": "./dist/types/index.d.ts", "scripts": { - "test": "jest", - "build": "NODE_ENV=production node esbuild.config.mjs", - "start": "NODE_ENV=development node esbuild.config.mjs --watch", - "check-format": "prettier --check {src,tests,doc}**/*.{js,json,css,md,html}", - "format": "prettier --write {src,tests,doc}**/*.{js,json,css,md,html}", - "lint": "eslint" + "dev": "vite", + "build:lib": "vite build --mode=lib", + "build:demo": "vite build --mode=demo", + "build:types": "tsc --project tsconfig.types.json", + "build": "npm run build:lib && npm run build:demo && npm run build:types", + "test": "vitest", + "test:watch": "vitest --watch", + "lint:check": "eslint --ext .ts,.js,.vue src", + "lint:fix": "eslint --ext .ts,.js,.vue src --fix", + "format": "prettier --write .", + "format:check": "prettier --check .", + "type:check": "tsc --noEmit" }, - "author": "Andreas Pfau", - "license": "MIT", - "packedSize": 32.3, "devDependencies": { - "@babel/core": "^7.23.2", - "@babel/preset-env": "^7.23.2", - "@eslint/js": "^9.9.1", - "babel-jest": "^29.7.0", - "esbuild": "^0.25.0", - "eslint": "^9.9.1", - "eslint-plugin-jest": "^28.8.0", - "eslint-plugin-react": "^7.35.0", - "globals": "^15.9.0", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "postcss": "^8.4.31", - "postcss-minify": "^1.1.0", - "prettier": "^3.3.3", - "react": "^18.2.0" - }, - "directories": { - "doc": "doc", - "test": "tests" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/andypf/json-viewer.git" - }, - "bugs": { - "url": "https://github.com/andypf/json-viewer/issues" - }, - "homepage": "https://github.com/andypf/json-viewer#readme" + "@types/node": "^22.14.1", + "jsdom": "^26.1.0", + "typescript": "~5.7.2", + "vite": "^6.3.1", + "vitest": "^3.1.1" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8310c11..ca37935 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,7 @@ importers: .: devDependencies: +<<<<<<< HEAD '@babel/core': specifier: ^7.23.2 version: 7.26.10 @@ -138,6 +139,31 @@ packages: '@babel/helper-skip-transparent-expression-wrappers@7.25.9': resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} +======= + '@types/node': + specifier: ^22.14.1 + version: 22.14.1 + jsdom: + specifier: ^26.1.0 + version: 26.1.0 + typescript: + specifier: ~5.7.2 + version: 5.7.3 + vite: + specifier: ^6.3.1 + version: 6.3.2(@types/node@22.14.1) + vite-plugin-dts: + specifier: ^4.5.3 + version: 4.5.3(@types/node@22.14.1)(rollup@4.40.0)(typescript@5.7.3)(vite@6.3.2(@types/node@22.14.1)) + vitest: + specifier: ^3.1.1 + version: 3.1.1(@types/node@22.14.1)(jsdom@26.1.0) + +packages: + + '@asamuzakjp/css-color@3.1.4': + resolution: {integrity: sha512-SeuBV4rnjpFNjI8HSgKUwteuFdkHwkboq31HWzznuqgySQir+jSTczoWVVL4jvOjKjuH80fMDG0Fvg1Sb+OJsA==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@babel/helper-string-parser@7.25.9': resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} @@ -147,6 +173,7 @@ packages: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} +<<<<<<< HEAD '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} @@ -159,11 +186,14 @@ packages: resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} engines: {node: '>=6.9.0'} +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@babel/parser@7.27.0': resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} engines: {node: '>=6.0.0'} hasBin: true +<<<<<<< HEAD '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -626,12 +656,44 @@ packages: resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} engines: {node: '>=6.9.0'} +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@babel/types@7.27.0': resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} +<<<<<<< HEAD '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} +======= + '@csstools/color-helpers@5.0.2': + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + engines: {node: '>=18'} + + '@csstools/css-calc@2.1.3': + resolution: {integrity: sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 + + '@csstools/css-color-parser@3.0.9': + resolution: {integrity: sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 + + '@csstools/css-parser-algorithms@3.0.4': + resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.3 + + '@csstools/css-tokenizer@3.0.3': + resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + engines: {node: '>=18'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@esbuild/aix-ppc64@0.25.2': resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} @@ -783,6 +845,7 @@ packages: cpu: [x64] os: [win32] +<<<<<<< HEAD '@eslint-community/eslint-utils@4.6.1': resolution: {integrity: sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -973,10 +1036,162 @@ packages: '@types/babel__traverse@7.20.7': resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} +======= + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@microsoft/api-extractor-model@7.30.5': + resolution: {integrity: sha512-0ic4rcbcDZHz833RaTZWTGu+NpNgrxVNjVaor0ZDUymfDFzjA/Uuk8hYziIUIOEOSTfmIQqyzVwlzxZxPe7tOA==} + + '@microsoft/api-extractor@7.52.5': + resolution: {integrity: sha512-6WWgjjg6FkoDWpF/O3sjB05OkszpI5wtKJqd8fUIR/JJUv8IqNCGr1lJUZJnc1HegcT9gAvyf98KfH0wFncU0w==} + hasBin: true + + '@microsoft/tsdoc-config@0.17.1': + resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} + + '@microsoft/tsdoc@0.15.1': + resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.40.0': + resolution: {integrity: sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.40.0': + resolution: {integrity: sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.40.0': + resolution: {integrity: sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.40.0': + resolution: {integrity: sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.40.0': + resolution: {integrity: sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.40.0': + resolution: {integrity: sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.40.0': + resolution: {integrity: sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.40.0': + resolution: {integrity: sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.40.0': + resolution: {integrity: sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.40.0': + resolution: {integrity: sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.40.0': + resolution: {integrity: sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': + resolution: {integrity: sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.40.0': + resolution: {integrity: sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.40.0': + resolution: {integrity: sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.40.0': + resolution: {integrity: sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.40.0': + resolution: {integrity: sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.40.0': + resolution: {integrity: sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.40.0': + resolution: {integrity: sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.40.0': + resolution: {integrity: sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.40.0': + resolution: {integrity: sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==} + cpu: [x64] + os: [win32] + + '@rushstack/node-core-library@5.13.0': + resolution: {integrity: sha512-IGVhy+JgUacAdCGXKUrRhwHMTzqhWwZUI+qEPcdzsb80heOw0QPbhhoVsoiMF7Klp8eYsp7hzpScMXmOa3Uhfg==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/rig-package@0.5.3': + resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} + + '@rushstack/terminal@0.15.2': + resolution: {integrity: sha512-7Hmc0ysK5077R/IkLS9hYu0QuNafm+TbZbtYVzCMbeOdMjaRboLKrhryjwZSRJGJzu+TV1ON7qZHeqf58XfLpA==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/ts-command-line@5.0.0': + resolution: {integrity: sha512-SW6nqZVxH26Rxz25+lJQRlnXI/YCrNH7NfDEWPPm9i0rwkSE6Rgtmzw96cuZgQjacOh0sw77d6V4SvgarAfr8g==} + + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} +<<<<<<< HEAD '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -1050,12 +1265,75 @@ packages: acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} +======= + '@types/node@22.14.1': + resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} + + '@vitest/expect@3.1.1': + resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==} + + '@vitest/mocker@3.1.1': + resolution: {integrity: sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.1.1': + resolution: {integrity: sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==} + + '@vitest/runner@3.1.1': + resolution: {integrity: sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==} + + '@vitest/snapshot@3.1.1': + resolution: {integrity: sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==} + + '@vitest/spy@3.1.1': + resolution: {integrity: sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==} + + '@vitest/utils@3.1.1': + resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==} + + '@volar/language-core@2.4.12': + resolution: {integrity: sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==} + + '@volar/source-map@2.4.12': + resolution: {integrity: sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==} + + '@volar/typescript@2.4.12': + resolution: {integrity: sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==} + + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + + '@vue/language-core@2.2.0': + resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) acorn@8.14.1: resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} engines: {node: '>=0.4.0'} hasBin: true +<<<<<<< HEAD agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -1082,10 +1360,41 @@ packages: anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} +======= + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} + + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + + alien-signals@0.4.14: + resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} +<<<<<<< HEAD argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -1167,6 +1476,11 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 +======= + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1177,6 +1491,7 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} +<<<<<<< HEAD braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1255,10 +1570,27 @@ packages: combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} +======= + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + chai@5.2.0: + resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} + engines: {node: '>=12'} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} +<<<<<<< HEAD convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1304,6 +1636,24 @@ packages: data-view-byte-offset@1.0.1: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} +======= + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + + cssstyle@4.3.1: + resolution: {integrity: sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==} + engines: {node: '>=18'} + + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} @@ -1317,6 +1667,7 @@ packages: decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} +<<<<<<< HEAD dedent@1.5.3: resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: @@ -1374,11 +1725,17 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} +======= + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} +<<<<<<< HEAD error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -1413,12 +1770,17 @@ packages: es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} +======= + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) esbuild@0.25.2: resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} hasBin: true +<<<<<<< HEAD escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1513,10 +1875,25 @@ packages: expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} +======= + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + expect-type@1.2.1: + resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} + engines: {node: '>=12.0.0'} + + exsolve@1.0.5: + resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} +<<<<<<< HEAD fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -1566,6 +1943,19 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} +======= + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -1575,6 +1965,7 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} +<<<<<<< HEAD function.prototype.name@1.1.8: resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} @@ -1649,10 +2040,16 @@ packages: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} +======= + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} +<<<<<<< HEAD has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -1668,10 +2065,13 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} +<<<<<<< HEAD html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -1690,11 +2090,29 @@ packages: human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} +======= + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} +<<<<<<< HEAD ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1745,11 +2163,17 @@ packages: is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} +======= + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} +<<<<<<< HEAD is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} @@ -1918,10 +2342,24 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: canvas: ^2.5.0 +======= + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^3.0.0 +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) peerDependenciesMeta: canvas: optional: true +<<<<<<< HEAD jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2135,19 +2573,65 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} +======= + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + local-pkg@1.1.1: + resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} + engines: {node: '>=14'} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loupe@3.1.3: + resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} +<<<<<<< HEAD + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + +======= + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true +<<<<<<< HEAD natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2253,10 +2737,21 @@ packages: path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} +======= + nwsapi@2.2.20: + resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} +<<<<<<< HEAD picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -2287,11 +2782,33 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} +======= + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.1.0: + resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) postcss@8.5.3: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} +<<<<<<< HEAD prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -2315,10 +2832,13 @@ packages: psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} +<<<<<<< HEAD pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} @@ -2393,11 +2913,21 @@ packages: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} +======= + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) resolve@1.22.10: resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} engines: {node: '>= 0.4'} hasBin: true +<<<<<<< HEAD resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true @@ -2420,6 +2950,15 @@ packages: safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} +======= + rollup@4.40.0: + resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -2428,6 +2967,7 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} +<<<<<<< HEAD semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -2482,14 +3022,26 @@ packages: slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} +======= + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} +<<<<<<< HEAD source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -2497,6 +3049,7 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} +<<<<<<< HEAD stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -2539,15 +3092,29 @@ packages: strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} +======= + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} +<<<<<<< HEAD supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} @@ -2559,6 +3126,7 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} +<<<<<<< HEAD test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -2620,10 +3188,62 @@ packages: unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} +======= + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.12: + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + engines: {node: '>=12.0.0'} + + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + + tldts-core@6.1.86: + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + + tldts@6.1.86: + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + hasBin: true + + tough-cookie@5.1.2: + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + engines: {node: '>=16'} + + tr46@5.1.1: + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + engines: {node: '>=18'} + + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} +<<<<<<< HEAD unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -2649,10 +3269,16 @@ packages: hasBin: true peerDependencies: browserslist: '>= 4.21.0' +======= + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} +<<<<<<< HEAD url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -2669,29 +3295,120 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} +======= + vite-node@3.1.1: + resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} + vite-plugin-dts@4.5.3: + resolution: {integrity: sha512-P64VnD00dR+e8S26ESoFELqc17+w7pKkwlBpgXteOljFyT0zDwD8hH4zXp49M/kciy//7ZbVXIwQCekBJjfWzA==} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + vite@6.3.2: + resolution: {integrity: sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@3.1.1: + resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.1.1 + '@vitest/ui': 3.1.1 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + +<<<<<<< HEAD + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} engines: {node: '>= 0.4'} which-collection@1.0.2: @@ -2722,6 +3439,25 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} +======= + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@14.2.0: + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + engines: {node: '>=18'} + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) ws@8.18.1: resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} engines: {node: '>=10.0.0'} @@ -2734,13 +3470,20 @@ packages: utf-8-validate: optional: true +<<<<<<< HEAD xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} +======= + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} +<<<<<<< HEAD y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -2899,11 +3642,26 @@ snapshots: '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color +======= + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + +snapshots: + + '@asamuzakjp/css-color@3.1.4': + dependencies: + '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + lru-cache: 10.4.3 +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@babel/helper-string-parser@7.25.9': {} '@babel/helper-validator-identifier@7.25.9': {} +<<<<<<< HEAD '@babel/helper-validator-option@7.25.9': {} '@babel/helper-wrap-function@7.25.9': @@ -2919,10 +3677,13 @@ snapshots: '@babel/template': 7.27.0 '@babel/types': 7.27.0 +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@babel/parser@7.27.0': dependencies: '@babel/types': 7.27.0 +<<<<<<< HEAD '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -3481,12 +4242,36 @@ snapshots: transitivePeerDependencies: - supports-color +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@babel/types@7.27.0': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 +<<<<<<< HEAD '@bcoe/v8-coverage@0.2.3': {} +======= + '@csstools/color-helpers@5.0.2': {} + + '@csstools/css-calc@2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-color-parser@3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/color-helpers': 5.0.2 + '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-tokenizer@3.0.3': {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@esbuild/aix-ppc64@0.25.2': optional: true @@ -3563,6 +4348,7 @@ snapshots: '@esbuild/win32-x64@0.25.2': optional: true +<<<<<<< HEAD '@eslint-community/eslint-utils@4.6.1(eslint@9.24.0)': dependencies: eslint: 9.24.0 @@ -3882,10 +4668,156 @@ snapshots: '@types/json-schema@7.0.15': {} +======= + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@microsoft/api-extractor-model@7.30.5(@types/node@22.14.1)': + dependencies: + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.13.0(@types/node@22.14.1) + transitivePeerDependencies: + - '@types/node' + + '@microsoft/api-extractor@7.52.5(@types/node@22.14.1)': + dependencies: + '@microsoft/api-extractor-model': 7.30.5(@types/node@22.14.1) + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.13.0(@types/node@22.14.1) + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.15.2(@types/node@22.14.1) + '@rushstack/ts-command-line': 5.0.0(@types/node@22.14.1) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.10 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.8.2 + transitivePeerDependencies: + - '@types/node' + + '@microsoft/tsdoc-config@0.17.1': + dependencies: + '@microsoft/tsdoc': 0.15.1 + ajv: 8.12.0 + jju: 1.4.0 + resolve: 1.22.10 + + '@microsoft/tsdoc@0.15.1': {} + + '@rollup/pluginutils@5.1.4(rollup@4.40.0)': + dependencies: + '@types/estree': 1.0.7 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.40.0 + + '@rollup/rollup-android-arm-eabi@4.40.0': + optional: true + + '@rollup/rollup-android-arm64@4.40.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.40.0': + optional: true + + '@rollup/rollup-darwin-x64@4.40.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.40.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.40.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.40.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.40.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.40.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.40.0': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.40.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.40.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.40.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.40.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.40.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.40.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.40.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.40.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.40.0': + optional: true + + '@rushstack/node-core-library@5.13.0(@types/node@22.14.1)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 11.3.0 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.10 + semver: 7.5.4 + optionalDependencies: + '@types/node': 22.14.1 + + '@rushstack/rig-package@0.5.3': + dependencies: + resolve: 1.22.10 + strip-json-comments: 3.1.1 + + '@rushstack/terminal@0.15.2(@types/node@22.14.1)': + dependencies: + '@rushstack/node-core-library': 5.13.0(@types/node@22.14.1) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 22.14.1 + + '@rushstack/ts-command-line@5.0.0(@types/node@22.14.1)': + dependencies: + '@rushstack/terminal': 0.15.2(@types/node@22.14.1) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + + '@types/argparse@1.0.38': {} + + '@types/estree@1.0.7': {} + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@types/node@22.14.1': dependencies: undici-types: 6.21.0 +<<<<<<< HEAD '@types/stack-utils@2.0.3': {} '@types/tough-cookie@4.0.5': {} @@ -3979,11 +4911,126 @@ snapshots: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 +======= + '@vitest/expect@3.1.1': + dependencies: + '@vitest/spy': 3.1.1 + '@vitest/utils': 3.1.1 + chai: 5.2.0 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.1.1(vite@6.3.2(@types/node@22.14.1))': + dependencies: + '@vitest/spy': 3.1.1 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 6.3.2(@types/node@22.14.1) + + '@vitest/pretty-format@3.1.1': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.1.1': + dependencies: + '@vitest/utils': 3.1.1 + pathe: 2.0.3 + + '@vitest/snapshot@3.1.1': + dependencies: + '@vitest/pretty-format': 3.1.1 + magic-string: 0.30.17 + pathe: 2.0.3 + + '@vitest/spy@3.1.1': + dependencies: + tinyspy: 3.0.2 + + '@vitest/utils@3.1.1': + dependencies: + '@vitest/pretty-format': 3.1.1 + loupe: 3.1.3 + tinyrainbow: 2.0.0 + + '@volar/language-core@2.4.12': + dependencies: + '@volar/source-map': 2.4.12 + + '@volar/source-map@2.4.12': {} + + '@volar/typescript@2.4.12': + dependencies: + '@volar/language-core': 2.4.12 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.27.0 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + '@vue/language-core@2.2.0(typescript@5.7.3)': + dependencies: + '@volar/language-core': 2.4.12 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.13 + alien-signals: 0.4.14 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.7.3 + + '@vue/shared@3.5.13': {} + + acorn@8.14.1: {} + + agent-base@7.1.3: {} + + ajv-draft-04@1.0.0(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + + ajv-formats@3.0.1(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + + ajv@8.12.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + ajv@8.13.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + alien-signals@0.4.14: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) argparse@1.0.10: dependencies: sprintf-js: 1.0.3 +<<<<<<< HEAD argparse@2.0.1: {} array-buffer-byte-length@1.0.2: @@ -4127,6 +5174,9 @@ snapshots: '@babel/core': 7.26.10 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) +======= + assertion-error@2.0.1: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) balanced-match@1.0.2: {} @@ -4139,6 +5189,7 @@ snapshots: dependencies: balanced-match: 1.0.2 +<<<<<<< HEAD braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -4274,6 +5325,39 @@ snapshots: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 +======= + cac@6.7.14: {} + + chai@5.2.0: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.3 + pathval: 2.0.0 + + check-error@2.1.1: {} + + compare-versions@6.1.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + confbox@0.2.2: {} + + cssstyle@4.3.1: + dependencies: + '@asamuzakjp/css-color': 3.1.4 + rrweb-cssom: 0.8.0 + + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + + de-indent@1.0.2: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) debug@4.4.0: dependencies: @@ -4281,6 +5365,7 @@ snapshots: decimal.js@10.5.0: {} +<<<<<<< HEAD dedent@1.5.3: {} deep-is@0.1.4: {} @@ -4428,6 +5513,13 @@ snapshots: is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 +======= + deep-eql@5.0.2: {} + + entities@4.5.0: {} + + es-module-lexer@1.6.0: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) esbuild@0.25.2: optionalDependencies: @@ -4457,6 +5549,7 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 +<<<<<<< HEAD escalade@3.2.0: {} escape-string-regexp@2.0.0: {} @@ -4653,12 +5746,36 @@ snapshots: mime-types: 2.1.35 fs.realpath@1.0.0: {} +======= + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.7 + + expect-type@1.2.1: {} + + exsolve@1.0.5: {} + + fast-deep-equal@3.1.3: {} + + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) fsevents@2.3.3: optional: true function-bind@1.1.2: {} +<<<<<<< HEAD function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 @@ -4752,10 +5869,17 @@ snapshots: dependencies: has-symbols: 1.1.0 +======= + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) hasown@2.0.2: dependencies: function-bind: 1.1.2 +<<<<<<< HEAD html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 @@ -4766,23 +5890,44 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 +======= + he@1.2.0: {} + + html-encoding-sniffer@4.0.0: + dependencies: + whatwg-encoding: 3.1.1 + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.3 +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) debug: 4.4.0 transitivePeerDependencies: - supports-color +<<<<<<< HEAD https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 +======= + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.3 +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) debug: 4.4.0 transitivePeerDependencies: - supports-color +<<<<<<< HEAD human-signals@2.1.0: {} +======= +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 +<<<<<<< HEAD ignore@5.3.2: {} import-fresh@3.3.1: @@ -4836,11 +5981,15 @@ snapshots: has-tostringtag: 1.0.2 is-callable@1.2.7: {} +======= + import-lazy@4.0.0: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) is-core-module@2.16.1: dependencies: hasown: 2.0.2 +<<<<<<< HEAD is-data-view@1.0.2: dependencies: call-bound: 1.0.4 @@ -5341,11 +6490,40 @@ snapshots: whatwg-url: 11.0.0 ws: 8.18.1 xml-name-validator: 4.0.0 +======= + is-potential-custom-element-name@1.0.1: {} + + jju@1.4.0: {} + + jsdom@26.1.0: + dependencies: + cssstyle: 4.3.1 + data-urls: 5.0.0 + decimal.js: 10.5.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.20 + parse5: 7.2.1 + rrweb-cssom: 0.8.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.1.2 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + ws: 8.18.1 + xml-name-validator: 5.0.0 +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate +<<<<<<< HEAD jsesc@3.0.2: {} jsesc@3.1.0: {} @@ -5430,6 +6608,39 @@ snapshots: mimic-fn@2.1.0: {} minimatch@3.1.2: +======= + json-schema-traverse@1.0.0: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + kolorist@1.8.0: {} + + local-pkg@1.1.1: + dependencies: + mlly: 1.7.4 + pkg-types: 2.1.0 + quansync: 0.2.10 + + lodash@4.17.21: {} + + loupe@3.1.3: {} + + lru-cache@10.4.3: {} + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + minimatch@3.0.8: +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) dependencies: brace-expansion: 1.1.11 @@ -5437,6 +6648,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 +<<<<<<< HEAD ms@2.1.3: {} nanoid@3.3.11: {} @@ -5543,10 +6755,28 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 +======= + mlly@1.7.4: + dependencies: + acorn: 8.14.1 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + nanoid@3.3.11: {} + + nwsapi@2.2.20: {} + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) parse5@7.2.1: dependencies: entities: 4.5.0 +<<<<<<< HEAD path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -5579,6 +6809,31 @@ snapshots: util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} +======= + path-browserify@1.0.1: {} + + path-parse@1.0.7: {} + + pathe@2.0.3: {} + + pathval@2.0.0: {} + + picocolors@1.1.1: {} + + picomatch@4.0.2: {} + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 + + pkg-types@2.1.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.5 + pathe: 2.0.3 +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) postcss@8.5.3: dependencies: @@ -5586,6 +6841,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 +<<<<<<< HEAD prelude-ls@1.2.1: {} prettier@3.5.3: {} @@ -5687,6 +6943,13 @@ snapshots: resolve-from@5.0.0: {} resolve.exports@2.0.3: {} +======= + punycode@2.3.1: {} + + quansync@0.2.10: {} + + require-from-string@2.0.2: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) resolve@1.22.10: dependencies: @@ -5694,6 +6957,7 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 +<<<<<<< HEAD resolve@2.0.0-next.5: dependencies: is-core-module: 2.16.1 @@ -5724,6 +6988,35 @@ snapshots: call-bound: 1.0.4 es-errors: 1.3.0 is-regex: 1.2.1 +======= + rollup@4.40.0: + dependencies: + '@types/estree': 1.0.7 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.40.0 + '@rollup/rollup-android-arm64': 4.40.0 + '@rollup/rollup-darwin-arm64': 4.40.0 + '@rollup/rollup-darwin-x64': 4.40.0 + '@rollup/rollup-freebsd-arm64': 4.40.0 + '@rollup/rollup-freebsd-x64': 4.40.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.40.0 + '@rollup/rollup-linux-arm-musleabihf': 4.40.0 + '@rollup/rollup-linux-arm64-gnu': 4.40.0 + '@rollup/rollup-linux-arm64-musl': 4.40.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.40.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.40.0 + '@rollup/rollup-linux-riscv64-gnu': 4.40.0 + '@rollup/rollup-linux-riscv64-musl': 4.40.0 + '@rollup/rollup-linux-s390x-gnu': 4.40.0 + '@rollup/rollup-linux-x64-gnu': 4.40.0 + '@rollup/rollup-linux-x64-musl': 4.40.0 + '@rollup/rollup-win32-arm64-msvc': 4.40.0 + '@rollup/rollup-win32-ia32-msvc': 4.40.0 + '@rollup/rollup-win32-x64-msvc': 4.40.0 + fsevents: 2.3.3 + + rrweb-cssom@0.8.0: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) safer-buffer@2.1.2: {} @@ -5731,6 +7024,7 @@ snapshots: dependencies: xmlchars: 2.2.0 +<<<<<<< HEAD semver@6.3.1: {} semver@7.7.1: {} @@ -5804,10 +7098,21 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 +======= + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + siginfo@2.0.0: {} + + source-map-js@1.2.1: {} + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) source-map@0.6.1: {} sprintf-js@1.0.3: {} +<<<<<<< HEAD stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -5881,6 +7186,16 @@ snapshots: dependencies: has-flag: 4.0.0 +======= + stackback@0.0.2: {} + + std-env@3.9.0: {} + + string-argv@0.3.2: {} + + strip-json-comments@3.1.1: {} + +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) supports-color@8.1.1: dependencies: has-flag: 4.0.0 @@ -5889,6 +7204,7 @@ snapshots: symbol-tree@3.2.4: {} +<<<<<<< HEAD test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -5986,11 +7302,52 @@ snapshots: browserslist: 4.24.4 escalade: 3.2.0 picocolors: 1.1.1 +======= + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.12: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + + tinypool@1.0.2: {} + + tinyrainbow@2.0.0: {} + + tinyspy@3.0.2: {} + + tldts-core@6.1.86: {} + + tldts@6.1.86: + dependencies: + tldts-core: 6.1.86 + + tough-cookie@5.1.2: + dependencies: + tldts: 6.1.86 + + tr46@5.1.1: + dependencies: + punycode: 2.3.1 + + typescript@5.7.3: {} + + typescript@5.8.2: {} + + ufo@1.6.1: {} + + undici-types@6.21.0: {} + + universalify@2.0.1: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) uri-js@4.4.1: dependencies: punycode: 2.3.1 +<<<<<<< HEAD url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -6108,3 +7465,127 @@ snapshots: yargs-parser: 21.1.1 yocto-queue@0.1.0: {} +======= + vite-node@3.1.1(@types/node@22.14.1): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.6.0 + pathe: 2.0.3 + vite: 6.3.2(@types/node@22.14.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-plugin-dts@4.5.3(@types/node@22.14.1)(rollup@4.40.0)(typescript@5.7.3)(vite@6.3.2(@types/node@22.14.1)): + dependencies: + '@microsoft/api-extractor': 7.52.5(@types/node@22.14.1) + '@rollup/pluginutils': 5.1.4(rollup@4.40.0) + '@volar/typescript': 2.4.12 + '@vue/language-core': 2.2.0(typescript@5.7.3) + compare-versions: 6.1.1 + debug: 4.4.0 + kolorist: 1.8.0 + local-pkg: 1.1.1 + magic-string: 0.30.17 + typescript: 5.7.3 + optionalDependencies: + vite: 6.3.2(@types/node@22.14.1) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vite@6.3.2(@types/node@22.14.1): + dependencies: + esbuild: 0.25.2 + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.40.0 + tinyglobby: 0.2.12 + optionalDependencies: + '@types/node': 22.14.1 + fsevents: 2.3.3 + + vitest@3.1.1(@types/node@22.14.1)(jsdom@26.1.0): + dependencies: + '@vitest/expect': 3.1.1 + '@vitest/mocker': 3.1.1(vite@6.3.2(@types/node@22.14.1)) + '@vitest/pretty-format': 3.1.1 + '@vitest/runner': 3.1.1 + '@vitest/snapshot': 3.1.1 + '@vitest/spy': 3.1.1 + '@vitest/utils': 3.1.1 + chai: 5.2.0 + debug: 4.4.0 + expect-type: 1.2.1 + magic-string: 0.30.17 + pathe: 2.0.3 + std-env: 3.9.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.3.2(@types/node@22.14.1) + vite-node: 3.1.1(@types/node@22.14.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.14.1 + jsdom: 26.1.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vscode-uri@3.1.0: {} + + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + + webidl-conversions@7.0.0: {} + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + whatwg-url@14.2.0: + dependencies: + tr46: 5.1.1 + webidl-conversions: 7.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + ws@8.18.1: {} + + xml-name-validator@5.0.0: {} + + xmlchars@2.2.0: {} + + yallist@4.0.0: {} +>>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) diff --git a/prettier.config.cjs b/prettier.config.cjs new file mode 100644 index 0000000..5ca7b41 --- /dev/null +++ b/prettier.config.cjs @@ -0,0 +1,3 @@ +module.exports = { + semi: false, +} \ No newline at end of file diff --git a/src/demo/assets/Logo_JV1.png b/src/demo/assets/Logo_JV1.png new file mode 100644 index 0000000000000000000000000000000000000000..862c996d7aa1ae13dec696d44e5115e802dd28f3 GIT binary patch literal 74693 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 literal 0 HcmV?d00001 diff --git a/src/demo/assets/android-chrome-192x192.png b/src/demo/assets/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..88e73a5484d1a3806f65c00faca28adf8db9cf2c GIT binary patch literal 4117 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 KYhG=JzxQ9bnVhl! literal 0 HcmV?d00001 diff --git a/src/demo/assets/android-chrome-512x512.png b/src/demo/assets/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..a9644c935aa209f1527aa4d4e7e033632fea8a3c GIT binary patch literal 12942 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 literal 0 HcmV?d00001 diff --git a/src/demo/assets/apple-touch-icon.png b/src/demo/assets/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..edbf499a3092cda1a2ae24ce113fbcd1cad4be0b GIT binary patch literal 3824 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 literal 0 HcmV?d00001 diff --git a/src/demo/assets/favicon-16x16.png b/src/demo/assets/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..615ba71a36df9ec0ed1a98508eb8619d5f7968a1 GIT binary patch literal 750 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>wS7kTt{t z&Zz$^Id>Xzx7?O@uy8-Dd8uGuO#U(fsdxR$Z`SO!U#5`K<61Md)2F_cvHK0@#d(L^ zJ%A2UEpd$~Nl7e8wMs5Z1yT$~21drZh6cJurXdEVR;FfFMi$xz237_J@4RMfqG-s? zPsvQH#I0ezxbjq>hVZJ8h?1bha)pAT{ItxRRE3htf>edff|6tghKf0lKk;xBhG}S= z@;`mX^Jx$Rvog0{GPkg@u=ivUW?==F29v`n%*vZX6i(l`a^lFDBQi(WPd9ih@X}*= WB`#R<$;lLC1%s!npUXO@geCy_Od*B< literal 0 HcmV?d00001 diff --git a/src/demo/assets/favicon-32x32.png b/src/demo/assets/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..3cfbd95119085931c4fff414e254b32a39a52e26 GIT binary patch literal 1090 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081EYI@Plzi}!HaUe*QL78 z%XA*(%D*Vn269IcNg?q6|NqRV_W8h|%q|J?3kK3az*E$n&g$OPsnS#?cI_~S^T%T% zj6MG*aIvlUouK{jhB~+FA)$`CH9w;@?%z@M_`Hw5nRES*@OwUAcJbD?Z~hjfbW6*B zYt{DL%a3)%gTKG~)93Pu@2UQ;lu1l~C+>Y_)Zk>bD3N)ha*8z2F2*EpcbA+qj0V;~ z4tt5GuPgg=E=g7knWc$~3xU#do-U3d7N?(13J*UNAkboLCg2jt=-SKcvW7#+BcSWp zJ?^rj_n!UVKRd~Q)AAp~+~w8f`;61e-;1`?YiML`5c7F1HhuTi$GM*?d$n#^*VGAL zxOw!QgTaw`ak36O`u{SUImpO7`p_ZQc#&gqvYA5LM}fz}S`EiMi?~W15@s21&SDWN z_F49d@yzm_6B;koPdjsnG2%?%DecG0CdGKo_#@Tul&M>FfzLVegz-%-4q=k}BJQki8R7S$%|D_D>N#?(opMOp4 zt^D$?`+xQ?*OyhY<0)X~y#@?C)e_f;l9a@fRIB8oR3OD*WME{hYiOWrWEx^%YGrC> zWn`gkU|?ln@Xl+tCW?mK{FKbJO57Ueiz`nBY6!0ii6{w5ELSKf%1_J8NmVGREJ#(z zEGS84V5pe$_!AFDVVH)-DgV=FJf8+JFe`KGC36ca3wuu%VHQ?!X)rmQ!mPYGMB(&} nD<_VeIU;j}{d9xJ0xvy=SK@*tpPWoVRxo(F`njxgN@xNAPu|Kk literal 0 HcmV?d00001 diff --git a/src/demo/assets/favicon.ico b/src/demo/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..39be63b3894e9724f4c3846c1ff55ee5176e2775 GIT binary patch literal 15086 zcmeI23y2j}7{_N@b$#!qWtrtJp=3oRk+LYZ_OP^k^kQGEP zD|#ZmGqm?Zx7rTJ_+&SCXac1t^ySrdH1HXG7-|NhG@0>aJ z%s5VwQ|t^M?od`ZtA;wxNXKz1D*Set<7}s|j8gLXT^wf_3d7LB#F-1~_l_aiBK=G= zkY*swK$?Lx18D}*3>?WBICIhN32;e)T!`JN(7io5#J(F$hvhH{Sj8nf(A^Jz!GS!H zO%v>fmtiy%C5zft3%fb+JGihHCbiXwZlQb7x07vq$Y4J)I#Rd`uiQPhdev-J-LAMM( zwCs%^m8+pwE??;MhCT%#yMgcm*m0l871PMEn+>{#Yy?||Vp#3WC9-TFI`NjYIK+M-^CmH`t^fdRGd^b>k3jVbEG$)Ne+{VwC^m~2F z8mG=dzxNa2qd@;lwA*!mi93IM=be9Srh=Vk)i3kE&nv0h^HC%1adBg4j||^=jUWA9 zum;TUMy0-sKK}UoQ~x+1Uq!p5J>!hB#c#gjpNx&>cQbxn12b*^wC906FYDSk&(`Uv zI(`$6AKjjy>)VW7rRJbgdpxv{g-^lOdyaNDTdyPP_{?YgS|^%yj>e`n*PO6%(0?u1 z^Xad&&kfUUPai%LjUT-p@Cw*DT}S)qu=w;J2O9(WnqRwy=@;6Ezog^82;JYT@o0{@ zDlRVa>%m^1{Y-mwoK3zm{N)@!I^7|-&d|E6e_TA|TAzFY_ILI;?VR_=IKQ?GUrEM) z0eYH4%s4c+Tx0u*s-t%kXkBP*_fW5l($BXaU$NsyuK!lggNd*5GZ>I07J7r=OR()9 zrCprFK9>%Da*cm1I{Hs#;%iR1E|*_hj{YrRe+NI&9%1VgTE|c1_>pymr@@R}<>zpG zKJm~W3}1om=Rw--{toaFH~ulmf3f0fF1azEu^V0N7Fm9D9zVb+BQLbXhwd}_Zq2<$ zYxXWanky8`$Tm?QR7foBDqt%Zf6B$Ph4`{<@NqKC@R>$N>LI zkIHqX=v2ef1S~}7d`R@n2tEDZ)*j8(5V@a%O#k=w-#-ca(7PYJXDU(WhP)Ks2l@OF z&W_R5GbTN2&4tCIsFskIjqx?fIzUw8*h zY?ay*Ix8v%N&2zZzWp~Kf9s)Vm>vDoVLwPu&n8UX?xkMP9*g2&I{>zU{MNxC&+zHf zv-dYaI(nY60JivTy~lAz*qD>_VVflW6!i3aQv5Zb=TeLPw)*adf^vXeY<%Rs;0;h5 zjbWOfH|>Lc>-X=ZJT1xj26eE@6@MZ+x;_`&i-sJxSX!G1rf#|F8<k->=Lfm=itho%*WUVlar(9l zUCnK}2WSq_-h5ZkKK5O3r|PzTR2{t`aJz4_FiJ1&Pcx8a;Qyb2?0!V_=hCVc*C}bP zhAKDHB+A`Pqgdf)GNRti)QdVdvm%qFywS~+H@N$&4n%v-N^~REwnPQA?o)KwTL?Hk zOb+H--K&Cx{x9g-`t;n^M)$zA(E2VW^{JqB z#AZ0b_7SWjzZJHE_r3|G)}ZqDHSC53K^wb`d@*bT@4iVn8TP<5cnCH@R*qC33A-Tjod#sazKr?=Q0y5RBc+~oKM5OQpgnF=r(gCu|C3-fXzkb6l8>gX zF)T8Dc1izicmzhki!eDL*YD*HSZVj0I{n2U9gVdF4*8Gi%M$%(H+~PtGP`H0ebX$( ZdzmkGInKd)*aDBi+b{-}{Htg5{{f^Wu;c&$ literal 0 HcmV?d00001 diff --git a/src/demo/assets/mstile-150x150.png b/src/demo/assets/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..87a1be707eb83206e0b76a6923bec23ec9423b03 GIT binary patch literal 2587 zcmd5+c~H|y7XASW2s$H(Tmk}FIfcY3JN$}qmo1gVE{P{M2K<2p}`3Vk$^CvYHO;tYSvn+_K)rAuGjDT-h2J}b=S-B z@pj!KqbdUcz#exuCtm;%`)+GVONbBzZWmc3c0}5H*#p3XLfQ4Oog!Tm?dIzR0I50v zknuAB2t`oFEC3`y0AT(U09cg*fKoi=*W)$-Ab!io6X`56m`^gEBO1?=wl`-;M%!>9 zZpV0=nQSAC|Le&AD$&e0YV|kNUxoc^v%Pox-&Suszv915cyn`8SsU&z`l-_dU+)uu zn7GR=s&n9NpTjq@u`$O!(e{ZKt))oT2vOkoFAvy1krT`R8ZEVY@?F1*6Tjp8oDH1x zJ;4w9(}Qk{ZF@2kcQvl)uwJWsd~TNgk=W$Erhx|jlE2CDeN7$Y9eJrb2CcIuk= zE4Ja&S<~3y(%;|i?Vh*52MmALo|J~HI5@_$B~?F6@RGUjzEoHLe1GlH2V!w(@z&xh zGk;217c6MUFDI-|SJF931{cr617svrMRyfD?cwUgMoACc5-CyycQ0qD85xzGFg0pe zH68$Vg4~_#k;zQn#3~AjQDE@PFX#uJIwGG{bn&Kl(28Y9-|!Me z1$iAz6eh6DBf6@%zVsHRo!1g|c3r>o>9oym6M^0PNlTMXyH8VGo8G=vD7bS1Ch9fc z9{gEp$H+?5naakA&%<$Z@t+a!4gaBx{-;F}SKAGL!jjxA;fi}kMT{D2kXPF85Pcn) zr54lr0zcQJ13|V^Yw1P!4kR@DO>BZgNu5f17185({<9b6T^hRi_uqgbYwDh>Q(4Ea zah@O0qplB{pRLI&+OJztwFSj{+j>Q#8G#>Xo z=PjSo*_4pOw46gXg088e3KAc#@wEz?+z zBTofu4s)Xg@6c+TxS}6Z9u@gbrIz6?}+{ul)ZH9 z7+nJ^(@b=4_EcWIOw>(h3^pO@8lj_SqdtJ3H4o`fzFJe@LgaL zUQQZ#&o>4f?s8r%*u!>6#Y=nf;#MblLNukD0C#&J{)fI zAYZ%9a=?m^=GfT|`|b}RciKWC5Xau)OD)0@$2Lxkce)xhScJ(JI;(Mwgmg)Uei|ZF zNiY_t$;Fp`A8!iAQ^e@Q_Mga67JJuVeT=g!>6iJH9n9vSwI#!zFuV2r0n3Bflx4m# zZ=g{wd-cq8D5n%n_vRHg$}@DiKULEYT~-f8NFJgfsFq}@@K=mWnSw<0uE++0An<+Q z+R!r^f7O$RI2d~n^Xxn6XT_VXHjWd}2+95!-tU=g1kyEw!Zv*UrthPZI>T-4m0E z=^FxOh)|WWk-uU{HCfq?FKuPGuBoFhd&AE2^6Q`>!4NGPwV?X+vX z*=A*Z8=SkrSoCYDx4x`*JMP=P=x^A)gHt0<>bkIWl{^u9h~OMR2oED*tk4MiN|P0#S_o~kWAq$?v}>;>FK>h^!B;`(-)8c$r__&_ks3#Tvd?Rr|Fbo v`Yc=m)Qr^Z9e@42r>{q?N2)i&?Izq9m{*b`EIOEN9RavIdpk8aoVxHQ7v;>z literal 0 HcmV?d00001 diff --git a/src/demo/index.html b/src/demo/index.html new file mode 100644 index 0000000..0636456 --- /dev/null +++ b/src/demo/index.html @@ -0,0 +1,78 @@ + + + + + + + JSON Viewer Demo + + + + + + + + +

JSON Viewer Web Component Demo

+ + +
+

Interactive Example

+
+ + + +
+ {"key":"value"} + +
+ + + \ No newline at end of file diff --git a/src/demo/index.ts b/src/demo/index.ts new file mode 100644 index 0000000..ee8ceb5 --- /dev/null +++ b/src/demo/index.ts @@ -0,0 +1 @@ +import "../package" diff --git a/src/package/components/json-viewer.ts b/src/package/components/json-viewer.ts new file mode 100644 index 0000000..038d293 --- /dev/null +++ b/src/package/components/json-viewer.ts @@ -0,0 +1,307 @@ +import { DataParser } from "../utils/data-parser" +import { Toolbar } from "./toolbar" + +export class JsonViewer extends HTMLElement { + static get observedAttributes() { + return [ + "indent", + "expanded", + "theme", + "show-data-types", + "show-toolbar", + "expand-icon-type", + "show-copy", + "show-size", + "show-loading-status", + "show-errors", + "data", + ] + } + + private dataParser: DataParser | null = null + private toolbar: Toolbar | null = null + + constructor() { + super() + this.attachShadow({ mode: "open" }) + } + + // Number attributes + get indent(): number { + return parseInt(this.getAttribute("indent") ?? "2") + } + set indent(value: number) { + this.setAttribute("indent", value.toString()) + } + + // Boolean attributes + get expanded(): boolean { + return ( + this.hasAttribute("expanded") && this.getAttribute("expanded") !== "false" + ) + } + set expanded(value: boolean) { + if (value) { + this.setAttribute("expanded", "") + } else { + this.removeAttribute("expanded") + } + } + + get showDataTypes(): boolean { + return ( + this.hasAttribute("show-data-types") && + this.getAttribute("show-data-types") !== "false" + ) + } + set showDataTypes(value: boolean) { + this.setAttribute("show-data-types", value.toString()) + } + + get showLoadingStatus(): boolean { + return ( + this.hasAttribute("show-loading-status") && + this.getAttribute("show-loading-status") !== "false" + ) + } + set showLoadingStatus(value: boolean) { + this.setAttribute("show-loading-status", value.toString()) + } + get showErrors(): boolean { + return ( + this.hasAttribute("show-errors") && + this.getAttribute("show-errors") !== "false" + ) + } + set showErrors(value: boolean) { + this.setAttribute("show-errors", value.toString()) + } + + get showToolbar(): boolean { + return ( + this.hasAttribute("show-toolbar") && + this.getAttribute("show-toolbar") !== "false" + ) + } + set showToolbar(value: boolean) { + this.setAttribute("show-toolbar", value.toString()) + } + + get showCopy(): boolean { + return ( + this.hasAttribute("show-copy") && + this.getAttribute("show-copy") !== "false" + ) + } + set showCopy(value: boolean) { + this.setAttribute("show-copy", value.toString()) + } + + get showSize(): boolean { + return ( + this.hasAttribute("show-size") && + this.getAttribute("show-size") !== "false" + ) + } + set showSize(value: boolean) { + this.setAttribute("show-size", value.toString()) + } + + // String attributes + get theme(): string { + return this.getAttribute("theme") ?? "default-light" + } + set theme(value: string) { + this.setAttribute("theme", value) + } + + get expandIconType(): string { + return this.getAttribute("expand-icon-type") ?? "arrow" + } + set expandIconType(value: string) { + this.setAttribute("expand-icon-type", value) + } + + // Data attribute - with fallback to content + get data(): string { + // Priority: attribute > textContent > default + const attrData = this.getAttribute("data") + if (attrData) { + return attrData + } + + const contentData = this.getContentData() + return contentData || "{}" + } + + set data(value: string | object) { + if (typeof value === "string") { + this.setAttribute("data", value) + } else { + this.setAttribute("data", JSON.stringify(value)) + } + // Clear content when setting via property/attribute + this.textContent = "" + } + + // Get JSON from element content + private getContentData(): string { + const content = this.textContent?.trim() + return content || "" + } + + attributeChangedCallback( + _name: string, + oldValue: string | null, + newValue: string | null + ) { + if (oldValue !== newValue) { + this.render() + } + } + + connectedCallback() { + this.render() + + // Watch for content changes + this.observer = new MutationObserver(() => { + // Only react to content changes if no data attribute is set + if (!this.hasAttribute("data")) { + this.render() + } + }) + + this.observer.observe(this, { + childList: true, + characterData: true, + subtree: true, + }) + } + + disconnectedCallback() { + if (this.observer) { + this.observer.disconnect() + } + } + + private observer?: MutationObserver + + private async render() { + if (!this.shadowRoot) return + + // Create or update parser + if (!this.dataParser) { + this.dataParser = new DataParser(this.data) + } else { + this.dataParser.updateData(this.data) + } + + if (this.dataParser.isUrlData && this.showLoadingStatus) { + this.shadowRoot.innerHTML = ` +
+ Loading data from URL... +
+ ` + } + const result = await this.dataParser.getParsedData() + + if (this.showErrors && (result.error || !result.data)) { + this.shadowRoot.innerHTML = ` +
+ Invalid JSON data +
+ Raw data: +
${
+              this.data
+            }
+

Error: ${result.error || "Unknown error"}

+
+
+ ` + return + } + + const parsedData = result.data + + if (this.showToolbar) { + if (!this.toolbar) { + this.toolbar = new Toolbar() + this.toolbar.onChange(({ key, value }) => { + if (key === "indent") { + this.indent = value as number + } else if (key === "expanded") { + this.expanded = value as boolean + } else if (key === "showDataTypes") { + this.showDataTypes = value as boolean + } else if (key === "expandIconType") { + this.expandIconType = value as string + } else if (key === "showCopy") { + this.showCopy = value as boolean + } else if (key === "showSize") { + this.showSize = value as boolean + } + }) + } + this.toolbar.updateProps({ + indent: this.indent, + expanded: this.expanded, + showDataTypes: this.showDataTypes, + expandIconType: this.expandIconType, + showCopy: this.showCopy, + showSize: this.showSize, + }) + } + + this.shadowRoot.innerHTML = ` + + +
+ ${this.showToolbar ? this.toolbar?.render() : ""} + ${this.renderJson(parsedData)} +
+ ` + } + + private renderJson(data: any): string { + return `
${JSON.stringify(data, null, this.indent)}
` + } +} diff --git a/src/package/components/toolbar.ts b/src/package/components/toolbar.ts new file mode 100644 index 0000000..67057fe --- /dev/null +++ b/src/package/components/toolbar.ts @@ -0,0 +1,50 @@ +interface ToolbarProps { + indent: number + expanded: boolean + showDataTypes: boolean + expandIconType: string + showCopy: boolean + showSize: boolean +} + +type OnChangeCallback = ({ + key, + value, +}: { + key: keyof ToolbarProps + value: number | boolean | string +}) => void + +export class Toolbar { + private props: ToolbarProps | null = null + private onChangeCallback: OnChangeCallback | null = null + + constructor() {} + + public updateProps(props: ToolbarProps): void { + this.props = props + this.render() + } + + public onChange(callback: OnChangeCallback): void { + this.onChangeCallback = callback + } + + public render(): string | null { + if (!this.props) return null + + // Render the toolbar based on the current props + return ` +
+ Indent + + Data Types: ${this.props.showDataTypes ? "On" : "Off"} + Icon Type: ${this.props.expandIconType} + + Size: ${this.props.showSize ? "Visible" : "Hidden"} +
+ ` + } +} diff --git a/src/package/index.ts b/src/package/index.ts new file mode 100644 index 0000000..74385c8 --- /dev/null +++ b/src/package/index.ts @@ -0,0 +1,3 @@ +import { JsonViewer } from "./components/json-viewer" +// Register the custom element +customElements.define("andypf-json-viewer", JsonViewer) diff --git a/src/package/styles.css b/src/package/styles.css new file mode 100644 index 0000000..af22cd6 --- /dev/null +++ b/src/package/styles.css @@ -0,0 +1,39 @@ +/* Keep your existing CSS but add these improvements */ +:host { + display: block; + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; +} + +.container { + background-color: var(--base00); + color: var(--base05); + padding: 10px; + letter-spacing: 0.5px; + border-radius: 3px; + font-size: 14px; + line-height: 1.4; +} + +/* Add smooth transitions */ +.data-row { + transition: all 0.2s ease; +} + +.icon-wrapper:hover { + background-color: var(--base02); + border-radius: 3px; + transition: background-color 0.2s ease; +} + +/* Improve accessibility */ +.clickable { + cursor: pointer; + outline: none; +} + +.clickable:focus { + outline: 2px solid var(--base0D); + outline-offset: 2px; +} + +/* Rest of your existing styles... */ \ No newline at end of file diff --git a/src/package/utils/data-parser.ts b/src/package/utils/data-parser.ts new file mode 100644 index 0000000..f0d76d3 --- /dev/null +++ b/src/package/utils/data-parser.ts @@ -0,0 +1,95 @@ +export class DataParser { + private isUrl = false + private cachedData: any = null + private lastUrl: string | null = null + private data: string | null = null + + constructor(data: string) { + this.updateData(data) + } + + private async fetchJson(url: string): Promise { + const response = await fetch(url) + if (!response.ok) { + throw new Error(`HTTP ${response.status}`) + } + return response.json() + } + + public updateData(newData: string): void { + if (this.data !== newData) { + this.data = newData + this.isUrl = this.isValidUrl(newData) + // Clear cache if URL changed + if (this.lastUrl !== newData) { + this.cachedData = null + this.lastUrl = null + } + } + } + + private isValidUrl(str: string): boolean { + try { + const url = new URL(str) + return url.protocol === "http:" || url.protocol === "https:" + } catch { + return false + } + } + + public async getParsedData(): Promise<{ + data: any + source: string + error?: string + }> { + if (!this.data) { + return { data: null, source: "none", error: "No data provided" } + } + + // Handle URL + if (this.isUrl) { + // Use cache if available + if (this.cachedData && this.lastUrl === this.data) { + return { data: this.cachedData, source: "url" } + } + + try { + const data = await this.fetchJson(this.data) + this.cachedData = data + this.lastUrl = this.data + return { data, source: "url" } + } catch (error) { + return { + data: null, + source: "url", + error: error instanceof Error ? error.message : "Fetch failed", + } + } + } + + // Handle JSON string + try { + const data = JSON.parse(this.data) + return { data, source: "json" } + } catch (error) { + return { + data: null, + source: "json", + error: "Invalid JSON", + } + } + } + + public clearCache(): void { + this.cachedData = null + this.lastUrl = null + } + + public get size(): number { + return JSON.stringify(this.cachedData || {}).length + } + + public get isUrlData(): boolean { + return this.isUrl + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a4883f2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/tsconfig.types.json b/tsconfig.types.json new file mode 100644 index 0000000..9d7e435 --- /dev/null +++ b/tsconfig.types.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outFile": "dist/types/index", + "rootDir": "src/package" + }, + "include": ["src/package/**/*.ts", "src/package/**/*.tsx"], + "exclude": ["src/package/**/*.test.ts", "src/package/**/*.spec.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..9ca9481 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,42 @@ +import { defineConfig } from "vite" +import { resolve } from "path" + +export default defineConfig(({ mode }) => { + // Detect which build mode we're in + const isLibBuild = mode === "lib" + const isDemoBuild = mode === "demo" + + if (isLibBuild) { + console.log("Building library...") + return { + build: { + lib: { + entry: resolve(__dirname, "src/package/index.ts"), + name: "AndypfJsonViewer", + fileName: (format) => `${format}/index.js`, + formats: ["es", "iife"], // ESM and IIFE formats + }, + outDir: "dist", + emptyOutDir: true, + }, + } + } else if (isDemoBuild) { + console.log("Building demo...") + return { + root: resolve(__dirname, "src/demo"), + build: { + outDir: "../../dist/demo", + emptyOutDir: true, + }, + } + } else { + console.log("Starting development server for demo...") + return { + root: resolve(__dirname, "src/demo"), + server: { + open: true, + host: "0.0.0.0", + }, + } + } +}) From 4f2a79cc859704e0f2985696230e4cf916c5dbd6 Mon Sep 17 00:00:00 2001 From: Andreas Pfau Date: Wed, 30 Jul 2025 15:47:43 +0200 Subject: [PATCH 2/9] chore(core): resolve merge conflicts --- pnpm-lock.yaml | 7269 +++--------------------------------------------- 1 file changed, 460 insertions(+), 6809 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca37935..73b27c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,138 +8,6 @@ importers: .: devDependencies: -<<<<<<< HEAD - '@babel/core': - specifier: ^7.23.2 - version: 7.26.10 - '@babel/preset-env': - specifier: ^7.23.2 - version: 7.26.9(@babel/core@7.26.10) - '@eslint/js': - specifier: ^9.9.1 - version: 9.24.0 - babel-jest: - specifier: ^29.7.0 - version: 29.7.0(@babel/core@7.26.10) - esbuild: - specifier: ^0.25.0 - version: 0.25.2 - eslint: - specifier: ^9.9.1 - version: 9.24.0 - eslint-plugin-jest: - specifier: ^28.8.0 - version: 28.11.0(eslint@9.24.0)(jest@29.7.0(@types/node@22.14.1))(typescript@5.8.3) - eslint-plugin-react: - specifier: ^7.35.0 - version: 7.37.5(eslint@9.24.0) - globals: - specifier: ^15.9.0 - version: 15.15.0 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@22.14.1) - jest-environment-jsdom: - specifier: ^29.7.0 - version: 29.7.0 - postcss: - specifier: ^8.4.31 - version: 8.5.3 - postcss-minify: - specifier: ^1.1.0 - version: 1.1.0(postcss@8.5.3) - prettier: - specifier: ^3.3.3 - version: 3.5.3 - react: - specifier: ^18.2.0 - version: 18.3.1 - -packages: - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.26.10': - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.27.0': - resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.0': - resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.27.0': - resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.27.0': - resolution: {integrity: sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.4': - resolution: {integrity: sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.26.5': - resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} - engines: {node: '>=6.9.0'} -======= '@types/node': specifier: ^22.14.1 version: 22.14.1 @@ -152,9 +20,6 @@ packages: vite: specifier: ^6.3.1 version: 6.3.2(@types/node@22.14.1) - vite-plugin-dts: - specifier: ^4.5.3 - version: 4.5.3(@types/node@22.14.1)(rollup@4.40.0)(typescript@5.7.3)(vite@6.3.2(@types/node@22.14.1)) vitest: specifier: ^3.1.1 version: 3.1.1(@types/node@22.14.1)(jsdom@26.1.0) @@ -163,509 +28,7 @@ packages: '@asamuzakjp/css-color@3.1.4': resolution: {integrity: sha512-SeuBV4rnjpFNjI8HSgKUwteuFdkHwkboq31HWzznuqgySQir+jSTczoWVVL4jvOjKjuH80fMDG0Fvg1Sb+OJsA==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - -<<<<<<< HEAD - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.27.0': - resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} - engines: {node: '>=6.9.0'} - -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - '@babel/parser@7.27.0': - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} - engines: {node: '>=6.0.0'} - hasBin: true - -<<<<<<< HEAD - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.26.8': - resolution: {integrity: sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.26.5': - resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.27.0': - resolution: {integrity: sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.25.9': - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.25.9': - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.26.9': - resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.25.9': - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.26.3': - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.25.9': - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6': - resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.25.9': - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.25.9': - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.25.9': - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.25.9': - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.25.9': - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.27.0': - resolution: {integrity: sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.25.9': - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.26.8': - resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.27.0': - resolution: {integrity: sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.26.9': - resolution: {integrity: sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/runtime@7.27.0': - resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.27.0': - resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.27.0': - resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} - engines: {node: '>=6.9.0'} - -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - '@babel/types@7.27.0': - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} - engines: {node: '>=6.9.0'} - -<<<<<<< HEAD - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} -======= '@csstools/color-helpers@5.0.2': resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} @@ -693,7 +56,6 @@ packages: '@csstools/css-tokenizer@3.0.3': resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} engines: {node: '>=18'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) '@esbuild/aix-ppc64@0.25.2': resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} @@ -845,223 +207,9 @@ packages: cpu: [x64] os: [win32] -<<<<<<< HEAD - '@eslint-community/eslint-utils@4.6.1': - resolution: {integrity: sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.20.0': - resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.2.1': - resolution: {integrity: sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.12.0': - resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.13.0': - resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.24.0': - resolution: {integrity: sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.2.8': - resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} - engines: {node: '>=18.18'} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} -======= '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@microsoft/api-extractor-model@7.30.5': - resolution: {integrity: sha512-0ic4rcbcDZHz833RaTZWTGu+NpNgrxVNjVaor0ZDUymfDFzjA/Uuk8hYziIUIOEOSTfmIQqyzVwlzxZxPe7tOA==} - - '@microsoft/api-extractor@7.52.5': - resolution: {integrity: sha512-6WWgjjg6FkoDWpF/O3sjB05OkszpI5wtKJqd8fUIR/JJUv8IqNCGr1lJUZJnc1HegcT9gAvyf98KfH0wFncU0w==} - hasBin: true - - '@microsoft/tsdoc-config@0.17.1': - resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} - - '@microsoft/tsdoc@0.15.1': - resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/rollup-android-arm-eabi@4.40.0': resolution: {integrity: sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==} cpu: [arm] @@ -1162,112 +310,11 @@ packages: cpu: [x64] os: [win32] - '@rushstack/node-core-library@5.13.0': - resolution: {integrity: sha512-IGVhy+JgUacAdCGXKUrRhwHMTzqhWwZUI+qEPcdzsb80heOw0QPbhhoVsoiMF7Klp8eYsp7hzpScMXmOa3Uhfg==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - '@rushstack/rig-package@0.5.3': - resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - - '@rushstack/terminal@0.15.2': - resolution: {integrity: sha512-7Hmc0ysK5077R/IkLS9hYu0QuNafm+TbZbtYVzCMbeOdMjaRboLKrhryjwZSRJGJzu+TV1ON7qZHeqf58XfLpA==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/ts-command-line@5.0.0': - resolution: {integrity: sha512-SW6nqZVxH26Rxz25+lJQRlnXI/YCrNH7NfDEWPPm9i0rwkSE6Rgtmzw96cuZgQjacOh0sw77d6V4SvgarAfr8g==} - - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - -<<<<<<< HEAD - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jsdom@20.0.1': - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/node@22.14.1': - resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - - '@typescript-eslint/scope-manager@8.30.1': - resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.30.1': - resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.30.1': - resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@8.30.1': - resolution: {integrity: sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/visitor-keys@8.30.1': - resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - - acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} -======= - '@types/node@22.14.1': - resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} + '@types/node@22.14.1': + resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} '@vitest/expect@3.1.1': resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==} @@ -1298,279 +345,14 @@ packages: '@vitest/utils@3.1.1': resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==} - '@volar/language-core@2.4.12': - resolution: {integrity: sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==} - - '@volar/source-map@2.4.12': - resolution: {integrity: sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==} - - '@volar/typescript@2.4.12': - resolution: {integrity: sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==} - - '@vue/compiler-core@3.5.13': - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - - '@vue/compiler-dom@3.5.13': - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - - '@vue/compiler-vue2@2.7.16': - resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - - '@vue/language-core@2.2.0': - resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/shared@3.5.13': - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - -<<<<<<< HEAD - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} -======= agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - - alien-signals@0.4.14: - resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - -<<<<<<< HEAD - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-plugin-polyfill-corejs2@0.4.13: - resolution: {integrity: sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.11.1: - resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.4: - resolution: {integrity: sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 -======= assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - -<<<<<<< HEAD - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - caniuse-lite@1.0.30001714: - resolution: {integrity: sha512-mtgapdwDLSSBnCI3JokHM7oEQBLxiJKVRtg10AxM1AyeiKcM96f0Mkbqeq+1AbiCtvMcHRulAAEMu693JrSWqg==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} -======= cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1583,66 +365,6 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} - compare-versions@6.1.1: - resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - -<<<<<<< HEAD - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - core-js-compat@3.41.0: - resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} - - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - - data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} -======= - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - - confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - cssstyle@4.3.1: resolution: {integrity: sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==} engines: {node: '>=18'} @@ -1651,10 +373,6 @@ packages: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -1667,218 +385,22 @@ packages: decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} -<<<<<<< HEAD - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - electron-to-chromium@1.5.138: - resolution: {integrity: sha512-FWlQc52z1dXqm+9cCJ2uyFgJkESd+16j6dBEjsgDNuHjBpuIzL8/lRc0uvh1k8RNI6waGo6tcy2DvwkTBJOLDg==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} -======= deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} -<<<<<<< HEAD - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} -======= es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) esbuild@0.25.2: resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} hasBin: true -<<<<<<< HEAD - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - - eslint-plugin-jest@28.11.0: - resolution: {integrity: sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig==} - engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 || ^8.0.0 - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.24.0: - resolution: {integrity: sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} -======= - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -1886,64 +408,6 @@ packages: resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} engines: {node: '>=12.0.0'} - exsolve@1.0.5: - resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - -<<<<<<< HEAD - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} - engines: {node: '>= 6'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} -======= fdir@6.4.3: resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} peerDependencies: @@ -1952,5043 +416,654 @@ packages: picomatch: optional: true - fs-extra@11.3.0: - resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} - engines: {node: '>=14.14'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} -<<<<<<< HEAD - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} + loupe@3.1.3: + resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - - globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - -======= - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true -<<<<<<< HEAD - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + nwsapi@2.2.20: + resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} -<<<<<<< HEAD - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} -======= - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} - - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - -<<<<<<< HEAD - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} + rollup@4.40.0: + resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} -======= - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - -<<<<<<< HEAD - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + tinyglobby@0.2.12: + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + engines: {node: '>=12.0.0'} - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} - istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} + tldts-core@6.1.86: + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + tldts@6.1.86: + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + hasBin: true - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} + tough-cookie@5.1.2: + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + engines: {node: '>=16'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} + tr46@5.1.1: + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + engines: {node: '>=18'} - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + engines: {node: '>=14.17'} + hasBin: true - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + vite-node@3.1.1: + resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + vite@6.3.2: + resolution: {integrity: sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: - node-notifier: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: optional: true - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + vitest@3.1.1: + resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.1.1 + '@vitest/ui': 3.1.1 + happy-dom: '*' + jsdom: '*' peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true '@types/node': optional: true - ts-node: + '@vitest/browser': optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 -======= - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - - jsdom@26.1.0: - resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} - engines: {node: '>=18'} - peerDependencies: - canvas: ^3.0.0 ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - peerDependenciesMeta: - canvas: + '@vitest/ui': optional: true - -<<<<<<< HEAD - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: + happy-dom: + optional: true + jsdom: optional: true - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + whatwg-url@14.2.0: + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + engines: {node: '>=18'} - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} -======= - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - - local-pkg@1.1.1: - resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} - engines: {node: '>=14'} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - -<<<<<<< HEAD - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - -======= - mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - -<<<<<<< HEAD - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} -======= - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} - - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - -<<<<<<< HEAD - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - postcss-minify@1.1.0: - resolution: {integrity: sha512-9D64ueIW0DL2FdLajQTlXrnTN8Ox9NjuXqigKMmB819RhdClNPYx5Zp3i5x0ghjjy3vGrLBBYEYvJjY/1eMNbw==} - peerDependencies: - postcss: ^8.0 - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} -======= - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - - pkg-types@2.1.0: - resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} - -<<<<<<< HEAD - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - -<<<<<<< HEAD - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} - engines: {node: '>=4'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} - -======= - quansync@0.2.10: - resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - -<<<<<<< HEAD - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} -======= - rollup@4.40.0: - resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rrweb-cssom@0.8.0: - resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - -<<<<<<< HEAD - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} -======= - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - -<<<<<<< HEAD - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - -<<<<<<< HEAD - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} -======= - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - -<<<<<<< HEAD - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - -<<<<<<< HEAD - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} - - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} - engines: {node: '>=14.17'} - hasBin: true - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} -======= - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} - engines: {node: '>=12.0.0'} - - tinypool@1.0.2: - resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} - engines: {node: ^18.0.0 || >=20.0.0} - - tinyrainbow@2.0.0: - resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} - engines: {node: '>=14.0.0'} - - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} - engines: {node: '>=14.0.0'} - - tldts-core@6.1.86: - resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} - - tldts@6.1.86: - resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} - hasBin: true - - tough-cookie@5.1.2: - resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} - engines: {node: '>=16'} - - tr46@5.1.1: - resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} - engines: {node: '>=18'} - - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - -<<<<<<< HEAD - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' -======= - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - -<<<<<<< HEAD - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - - w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} -======= - vite-node@3.1.1: - resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - - vite-plugin-dts@4.5.3: - resolution: {integrity: sha512-P64VnD00dR+e8S26ESoFELqc17+w7pKkwlBpgXteOljFyT0zDwD8hH4zXp49M/kciy//7ZbVXIwQCekBJjfWzA==} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - - vite@6.3.2: - resolution: {integrity: sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vitest@3.1.1: - resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.1.1 - '@vitest/ui': 3.1.1 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/debug': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - -<<<<<<< HEAD - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - -======= - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} - engines: {node: '>=18'} - - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - ws@8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - -<<<<<<< HEAD - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} -======= - xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - -<<<<<<< HEAD - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.26.8': {} - - '@babel/core@7.26.10': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - convert-source-map: 2.0.0 - debug: 4.4.0 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.27.0': - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.27.0 - - '@babel/helper-compilation-targets@7.27.0': - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.27.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.27.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - debug: 4.4.0 - lodash.debounce: 4.0.8 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - - '@babel/helper-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.25.9': - dependencies: - '@babel/types': 7.27.0 - - '@babel/helper-plugin-utils@7.26.5': {} - - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color -======= - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - -snapshots: - - '@asamuzakjp/css-color@3.1.4': - dependencies: - '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - lru-cache: 10.4.3 ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-validator-identifier@7.25.9': {} - -<<<<<<< HEAD - '@babel/helper-validator-option@7.25.9': {} - - '@babel/helper-wrap-function@7.25.9': - dependencies: - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.27.0': - dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - '@babel/parser@7.27.0': - dependencies: - '@babel/types': 7.27.0 - -<<<<<<< HEAD - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-block-scoping@7.27.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) - '@babel/traverse': 7.27.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.27.0 - - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) - - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-regenerator@7.27.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - regenerator-transform: 0.15.2 - - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-typeof-symbol@7.27.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.27.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/preset-env@7.26.9(@babel/core@7.26.10)': - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.10) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.10) - '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.10) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.10) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.10) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.10) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.26.10) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-typeof-symbol': 7.27.0(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.10) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.10) - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.10) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.10) - core-js-compat: 3.41.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.27.0 - esutils: 2.0.3 - - '@babel/runtime@7.27.0': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/template@7.27.0': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - - '@babel/traverse@7.27.0': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - debug: 4.4.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - '@babel/types@7.27.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - -<<<<<<< HEAD - '@bcoe/v8-coverage@0.2.3': {} -======= - '@csstools/color-helpers@5.0.2': {} - - '@csstools/css-calc@2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - - '@csstools/css-color-parser@3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': - dependencies: - '@csstools/color-helpers': 5.0.2 - '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - - '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': - dependencies: - '@csstools/css-tokenizer': 3.0.3 - - '@csstools/css-tokenizer@3.0.3': {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - '@esbuild/aix-ppc64@0.25.2': - optional: true - - '@esbuild/android-arm64@0.25.2': - optional: true - - '@esbuild/android-arm@0.25.2': - optional: true - - '@esbuild/android-x64@0.25.2': - optional: true - - '@esbuild/darwin-arm64@0.25.2': - optional: true - - '@esbuild/darwin-x64@0.25.2': - optional: true - - '@esbuild/freebsd-arm64@0.25.2': - optional: true - - '@esbuild/freebsd-x64@0.25.2': - optional: true - - '@esbuild/linux-arm64@0.25.2': - optional: true - - '@esbuild/linux-arm@0.25.2': - optional: true - - '@esbuild/linux-ia32@0.25.2': - optional: true - - '@esbuild/linux-loong64@0.25.2': - optional: true - - '@esbuild/linux-mips64el@0.25.2': - optional: true - - '@esbuild/linux-ppc64@0.25.2': - optional: true - - '@esbuild/linux-riscv64@0.25.2': - optional: true - - '@esbuild/linux-s390x@0.25.2': - optional: true - - '@esbuild/linux-x64@0.25.2': - optional: true - - '@esbuild/netbsd-arm64@0.25.2': - optional: true - - '@esbuild/netbsd-x64@0.25.2': - optional: true - - '@esbuild/openbsd-arm64@0.25.2': - optional: true - - '@esbuild/openbsd-x64@0.25.2': - optional: true - - '@esbuild/sunos-x64@0.25.2': - optional: true - - '@esbuild/win32-arm64@0.25.2': - optional: true - - '@esbuild/win32-ia32@0.25.2': - optional: true - - '@esbuild/win32-x64@0.25.2': - optional: true - -<<<<<<< HEAD - '@eslint-community/eslint-utils@4.6.1(eslint@9.24.0)': - dependencies: - eslint: 9.24.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/config-array@0.20.0': - dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.0 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.2.1': {} - - '@eslint/core@0.12.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@0.13.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.3.1': - dependencies: - ajv: 6.12.6 - debug: 4.4.0 - espree: 10.3.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.24.0': {} - - '@eslint/object-schema@2.1.6': {} - - '@eslint/plugin-kit@0.2.8': - dependencies: - '@eslint/core': 0.13.0 - levn: 0.4.1 - - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.2': {} - - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - '@istanbuljs/schema@0.1.3': {} - - '@jest/console@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - - '@jest/core@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.14.1) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - jest-mock: 29.7.0 - - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.14.1 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - '@jest/globals@29.7.0': - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/reporters@29.7.0': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.14.1 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/source-map@29.6.3': - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - '@jest/test-result@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - - '@jest/test-sequencer@29.7.0': - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.26.10 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.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: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 - pirates: 4.0.7 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 22.14.1 - '@types/yargs': 17.0.33 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - '@sinclair/typebox@0.27.8': {} - - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@10.3.0': - dependencies: - '@sinonjs/commons': 3.0.1 - - '@tootallnate/once@2.0.0': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@types/babel__generator': 7.27.0 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 - - '@types/babel__generator@7.27.0': - dependencies: - '@babel/types': 7.27.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - - '@types/babel__traverse@7.20.7': - dependencies: - '@babel/types': 7.27.0 - - '@types/estree@1.0.7': {} - - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 22.14.1 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/jsdom@20.0.1': - dependencies: - '@types/node': 22.14.1 - '@types/tough-cookie': 4.0.5 - parse5: 7.2.1 - - '@types/json-schema@7.0.15': {} - -======= - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@microsoft/api-extractor-model@7.30.5(@types/node@22.14.1)': - dependencies: - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.13.0(@types/node@22.14.1) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.52.5(@types/node@22.14.1)': - dependencies: - '@microsoft/api-extractor-model': 7.30.5(@types/node@22.14.1) - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.13.0(@types/node@22.14.1) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.2(@types/node@22.14.1) - '@rushstack/ts-command-line': 5.0.0(@types/node@22.14.1) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.10 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.8.2 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/tsdoc-config@0.17.1': - dependencies: - '@microsoft/tsdoc': 0.15.1 - ajv: 8.12.0 - jju: 1.4.0 - resolve: 1.22.10 - - '@microsoft/tsdoc@0.15.1': {} - - '@rollup/pluginutils@5.1.4(rollup@4.40.0)': - dependencies: - '@types/estree': 1.0.7 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.40.0 - - '@rollup/rollup-android-arm-eabi@4.40.0': - optional: true - - '@rollup/rollup-android-arm64@4.40.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.40.0': - optional: true - - '@rollup/rollup-darwin-x64@4.40.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.40.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.40.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.40.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.40.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.40.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.40.0': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.40.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.40.0': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.40.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.40.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.40.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.40.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.40.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.40.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.40.0': - optional: true - - '@rushstack/node-core-library@5.13.0(@types/node@22.14.1)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 11.3.0 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.10 - semver: 7.5.4 - optionalDependencies: - '@types/node': 22.14.1 - - '@rushstack/rig-package@0.5.3': - dependencies: - resolve: 1.22.10 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.15.2(@types/node@22.14.1)': - dependencies: - '@rushstack/node-core-library': 5.13.0(@types/node@22.14.1) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 22.14.1 - - '@rushstack/ts-command-line@5.0.0(@types/node@22.14.1)': - dependencies: - '@rushstack/terminal': 0.15.2(@types/node@22.14.1) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - - '@types/argparse@1.0.38': {} - - '@types/estree@1.0.7': {} - ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - '@types/node@22.14.1': - dependencies: - undici-types: 6.21.0 - -<<<<<<< HEAD - '@types/stack-utils@2.0.3': {} - - '@types/tough-cookie@4.0.5': {} - - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.33': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@typescript-eslint/scope-manager@8.30.1': - dependencies: - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/visitor-keys': 8.30.1 - - '@typescript-eslint/types@8.30.1': {} - - '@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/visitor-keys': 8.30.1 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.6.1(eslint@9.24.0) - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - eslint: 9.24.0 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.30.1': - dependencies: - '@typescript-eslint/types': 8.30.1 - eslint-visitor-keys: 4.2.0 - - abab@2.0.6: {} - - acorn-globals@7.0.1: - dependencies: - acorn: 8.14.1 - acorn-walk: 8.3.4 - - acorn-jsx@5.3.2(acorn@8.14.1): - dependencies: - acorn: 8.14.1 - - acorn-walk@8.3.4: - dependencies: - acorn: 8.14.1 - - acorn@8.14.1: {} - - agent-base@6.0.2: - dependencies: - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@5.2.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 -======= - '@vitest/expect@3.1.1': - dependencies: - '@vitest/spy': 3.1.1 - '@vitest/utils': 3.1.1 - chai: 5.2.0 - tinyrainbow: 2.0.0 - - '@vitest/mocker@3.1.1(vite@6.3.2(@types/node@22.14.1))': - dependencies: - '@vitest/spy': 3.1.1 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - vite: 6.3.2(@types/node@22.14.1) - - '@vitest/pretty-format@3.1.1': - dependencies: - tinyrainbow: 2.0.0 - - '@vitest/runner@3.1.1': - dependencies: - '@vitest/utils': 3.1.1 - pathe: 2.0.3 - - '@vitest/snapshot@3.1.1': - dependencies: - '@vitest/pretty-format': 3.1.1 - magic-string: 0.30.17 - pathe: 2.0.3 - - '@vitest/spy@3.1.1': - dependencies: - tinyspy: 3.0.2 - - '@vitest/utils@3.1.1': - dependencies: - '@vitest/pretty-format': 3.1.1 - loupe: 3.1.3 - tinyrainbow: 2.0.0 - - '@volar/language-core@2.4.12': - dependencies: - '@volar/source-map': 2.4.12 - - '@volar/source-map@2.4.12': {} - - '@volar/typescript@2.4.12': - dependencies: - '@volar/language-core': 2.4.12 - path-browserify: 1.0.1 - vscode-uri: 3.1.0 - - '@vue/compiler-core@3.5.13': - dependencies: - '@babel/parser': 7.27.0 - '@vue/shared': 3.5.13 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.13': - dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 - - '@vue/compiler-vue2@2.7.16': - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - '@vue/language-core@2.2.0(typescript@5.7.3)': - dependencies: - '@volar/language-core': 2.4.12 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 - alien-signals: 0.4.14 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.7.3 - - '@vue/shared@3.5.13': {} - - acorn@8.14.1: {} - - agent-base@7.1.3: {} - - ajv-draft-04@1.0.0(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv-formats@3.0.1(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - alien-signals@0.4.14: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - -<<<<<<< HEAD - argparse@2.0.1: {} - - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.1.0 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - - async-function@1.0.0: {} - - asynckit@0.4.0: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - babel-jest@29.7.0(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.10) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.26.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-jest-hoist@29.6.3: - dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.7 - - babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.26.10): - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) - core-js-compat: 3.41.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.10) - transitivePeerDependencies: - - supports-color - - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10) - - babel-preset-jest@29.6.3(@babel/core@7.26.10): - dependencies: - '@babel/core': 7.26.10 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) -======= - assertion-error@2.0.1: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - balanced-match@1.0.2: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - -<<<<<<< HEAD - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.24.4: - dependencies: - caniuse-lite: 1.0.30001714 - electron-to-chromium: 1.5.138 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.4) - - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - - buffer-from@1.1.2: {} - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - callsites@3.1.0: {} - - camelcase@5.3.1: {} - - camelcase@6.3.0: {} - - caniuse-lite@1.0.30001714: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - char-regex@1.0.2: {} - - ci-info@3.9.0: {} - - cjs-module-lexer@1.4.3: {} - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - co@4.6.0: {} - - collect-v8-coverage@1.0.2: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - concat-map@0.0.1: {} - - convert-source-map@2.0.0: {} - - core-js-compat@3.41.0: - dependencies: - browserslist: 4.24.4 - - create-jest@29.7.0(@types/node@22.14.1): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.14.1) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - cssesc@3.0.0: {} - - cssom@0.3.8: {} - - cssom@0.5.0: {} - - cssstyle@2.3.0: - dependencies: - cssom: 0.3.8 - - data-urls@3.0.2: - dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 -======= - cac@6.7.14: {} - - chai@5.2.0: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.1 - deep-eql: 5.0.2 - loupe: 3.1.3 - pathval: 2.0.0 - - check-error@2.1.1: {} - - compare-versions@6.1.1: {} - - concat-map@0.0.1: {} - - confbox@0.1.8: {} - - confbox@0.2.2: {} - - cssstyle@4.3.1: - dependencies: - '@asamuzakjp/css-color': 3.1.4 - rrweb-cssom: 0.8.0 - - data-urls@5.0.0: - dependencies: - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 - - de-indent@1.0.2: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - debug@4.4.0: - dependencies: - ms: 2.1.3 - - decimal.js@10.5.0: {} - -<<<<<<< HEAD - dedent@1.5.3: {} - - deep-is@0.1.4: {} - - deepmerge@4.3.1: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - delayed-stream@1.0.0: {} - - detect-newline@3.1.0: {} - - diff-sequences@29.6.3: {} - - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - domexception@4.0.0: - dependencies: - webidl-conversions: 7.0.0 - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - electron-to-chromium@1.5.138: {} - - emittery@0.13.1: {} - - emoji-regex@8.0.0: {} - - entities@4.5.0: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - es-abstract@1.23.9: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-iterator-helpers@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 -======= - deep-eql@5.0.2: {} - - entities@4.5.0: {} - - es-module-lexer@1.6.0: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - esbuild@0.25.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.2 - '@esbuild/android-arm': 0.25.2 - '@esbuild/android-arm64': 0.25.2 - '@esbuild/android-x64': 0.25.2 - '@esbuild/darwin-arm64': 0.25.2 - '@esbuild/darwin-x64': 0.25.2 - '@esbuild/freebsd-arm64': 0.25.2 - '@esbuild/freebsd-x64': 0.25.2 - '@esbuild/linux-arm': 0.25.2 - '@esbuild/linux-arm64': 0.25.2 - '@esbuild/linux-ia32': 0.25.2 - '@esbuild/linux-loong64': 0.25.2 - '@esbuild/linux-mips64el': 0.25.2 - '@esbuild/linux-ppc64': 0.25.2 - '@esbuild/linux-riscv64': 0.25.2 - '@esbuild/linux-s390x': 0.25.2 - '@esbuild/linux-x64': 0.25.2 - '@esbuild/netbsd-arm64': 0.25.2 - '@esbuild/netbsd-x64': 0.25.2 - '@esbuild/openbsd-arm64': 0.25.2 - '@esbuild/openbsd-x64': 0.25.2 - '@esbuild/sunos-x64': 0.25.2 - '@esbuild/win32-arm64': 0.25.2 - '@esbuild/win32-ia32': 0.25.2 - '@esbuild/win32-x64': 0.25.2 - -<<<<<<< HEAD - escalade@3.2.0: {} - - escape-string-regexp@2.0.0: {} - - escape-string-regexp@4.0.0: {} - - escodegen@2.1.0: - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - - eslint-plugin-jest@28.11.0(eslint@9.24.0)(jest@29.7.0(@types/node@22.14.1))(typescript@5.8.3): - dependencies: - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - eslint: 9.24.0 - optionalDependencies: - jest: 29.7.0(@types/node@22.14.1) - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-react@7.37.5(eslint@9.24.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 9.24.0 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - - eslint-scope@8.3.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.0: {} - - eslint@9.24.0: - dependencies: - '@eslint-community/eslint-utils': 4.6.1(eslint@9.24.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.0 - '@eslint/config-helpers': 0.2.1 - '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.24.0 - '@eslint/plugin-kit': 0.2.8 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.7 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0 - escape-string-regexp: 4.0.0 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - transitivePeerDependencies: - - supports-color - - espree@10.3.0: - dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 4.2.0 - - esprima@4.0.1: {} - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - esutils@2.0.3: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - exit@0.1.2: {} - - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@4.0.1: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - - flatted@3.3.3: {} - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - form-data@4.0.2: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - mime-types: 2.1.35 - - fs.realpath@1.0.0: {} -======= - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.7 - - expect-type@1.2.1: {} - - exsolve@1.0.5: {} - - fast-deep-equal@3.1.3: {} - - fdir@6.4.3(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - - fs-extra@11.3.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - -<<<<<<< HEAD - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - - gensync@1.0.0-beta.2: {} - - get-caller-file@2.0.5: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-package-type@0.1.0: {} - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-stream@6.0.1: {} - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - globals@11.12.0: {} - - globals@14.0.0: {} - - globals@15.15.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - gopd@1.2.0: {} - - graceful-fs@4.2.11: {} - - has-bigints@1.1.0: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - -======= - graceful-fs@4.2.11: {} - - has-flag@4.0.0: {} - ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - -<<<<<<< HEAD - html-encoding-sniffer@3.0.0: - dependencies: - whatwg-encoding: 2.0.0 - - html-escaper@2.0.2: {} - - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 -======= - he@1.2.0: {} - - html-encoding-sniffer@4.0.0: - dependencies: - whatwg-encoding: 3.1.1 - - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.3 ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - -<<<<<<< HEAD - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 -======= - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.3 ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - -<<<<<<< HEAD - human-signals@2.1.0: {} - -======= ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - -<<<<<<< HEAD - ignore@5.3.2: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-local@3.2.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - - imurmurhash@0.1.4: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-arrayish@0.2.1: {} - - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} -======= - import-lazy@4.0.0: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - -<<<<<<< HEAD - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-extglob@2.1.1: {} - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-fullwidth-code-point@3.0.0: {} - - is-generator-fn@2.1.0: {} - - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-map@2.0.3: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-potential-custom-element-name@1.0.1: {} - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - - is-stream@2.0.1: {} - - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-instrument@6.0.3: - dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@4.0.1: - dependencies: - debug: 4.4.0 - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.1.7: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - - jest-changed-files@29.7.0: - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - - jest-circus@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.3 - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-cli@29.7.0(@types/node@22.14.1): - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.14.1) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.14.1) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest-config@29.7.0(@types/node@22.14.1): - dependencies: - '@babel/core': 7.26.10 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.10) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.14.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-docblock@29.7.0: - dependencies: - detect-newline: 3.1.0 - - jest-each@29.7.0: - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - - jest-environment-jsdom@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/jsdom': 20.0.1 - '@types/node': 22.14.1 - jest-mock: 29.7.0 - jest-util: 29.7.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - jest-environment-node@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 22.14.1 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-leak-detector@29.7.0: - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-message-util@29.7.0: - dependencies: - '@babel/code-frame': 7.26.2 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - - jest-mock@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - jest-util: 29.7.0 - - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 - - jest-regex-util@29.6.3: {} - - jest-resolve-dependencies@29.7.0: - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - jest-resolve@29.7.0: - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.3 - slash: 3.0.0 - - jest-runner@29.7.0: - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - - jest-runtime@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - chalk: 4.1.2 - cjs-module-lexer: 1.4.3 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - - jest-snapshot@29.7.0: - dependencies: - '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-validate@29.7.0: - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - jest-watcher@29.7.0: - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.14.1 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - - jest-worker@29.7.0: - dependencies: - '@types/node': 22.14.1 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest@29.7.0(@types/node@22.14.1): - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.14.1) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - js-tokens@4.0.0: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsdom@20.0.3: - dependencies: - abab: 2.0.6 - acorn: 8.14.1 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.5.0 - domexception: 4.0.0 - escodegen: 2.1.0 - form-data: 4.0.2 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.2.1 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.18.1 - xml-name-validator: 4.0.0 -======= - is-potential-custom-element-name@1.0.1: {} - - jju@1.4.0: {} - - jsdom@26.1.0: - dependencies: - cssstyle: 4.3.1 - data-urls: 5.0.0 - decimal.js: 10.5.0 - html-encoding-sniffer: 4.0.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.2.1 - rrweb-cssom: 0.8.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 5.1.2 - w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 - ws: 8.18.1 - xml-name-validator: 5.0.0 ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true -<<<<<<< HEAD - jsesc@3.0.2: {} + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - jsesc@3.1.0: {} + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} - json-buffer@3.0.1: {} + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - json-parse-even-better-errors@2.3.1: {} +snapshots: - json-schema-traverse@0.4.1: {} + '@asamuzakjp/css-color@3.1.4': + dependencies: + '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + lru-cache: 10.4.3 - json-stable-stringify-without-jsonify@1.0.1: {} + '@csstools/color-helpers@5.0.2': {} - json5@2.2.3: {} + '@csstools/css-calc@2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - jsx-ast-utils@3.3.5: + '@csstools/css-color-parser@3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 + '@csstools/color-helpers': 5.0.2 + '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - keyv@4.5.4: + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': dependencies: - json-buffer: 3.0.1 + '@csstools/css-tokenizer': 3.0.3 - kleur@3.0.3: {} + '@csstools/css-tokenizer@3.0.3': {} - leven@3.1.0: {} + '@esbuild/aix-ppc64@0.25.2': + optional: true - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + '@esbuild/android-arm64@0.25.2': + optional: true - lines-and-columns@1.2.4: {} + '@esbuild/android-arm@0.25.2': + optional: true - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 + '@esbuild/android-x64@0.25.2': + optional: true - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 + '@esbuild/darwin-arm64@0.25.2': + optional: true - lodash.debounce@4.0.8: {} + '@esbuild/darwin-x64@0.25.2': + optional: true - lodash.merge@4.6.2: {} + '@esbuild/freebsd-arm64@0.25.2': + optional: true - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 + '@esbuild/freebsd-x64@0.25.2': + optional: true - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 + '@esbuild/linux-arm64@0.25.2': + optional: true - make-dir@4.0.0: - dependencies: - semver: 7.7.1 + '@esbuild/linux-arm@0.25.2': + optional: true - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 + '@esbuild/linux-ia32@0.25.2': + optional: true - math-intrinsics@1.1.0: {} + '@esbuild/linux-loong64@0.25.2': + optional: true - merge-stream@2.0.0: {} + '@esbuild/linux-mips64el@0.25.2': + optional: true - merge2@1.4.1: {} + '@esbuild/linux-ppc64@0.25.2': + optional: true - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 + '@esbuild/linux-riscv64@0.25.2': + optional: true - mime-db@1.52.0: {} + '@esbuild/linux-s390x@0.25.2': + optional: true - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 + '@esbuild/linux-x64@0.25.2': + optional: true - mimic-fn@2.1.0: {} + '@esbuild/netbsd-arm64@0.25.2': + optional: true - minimatch@3.1.2: -======= - json-schema-traverse@1.0.0: {} + '@esbuild/netbsd-x64@0.25.2': + optional: true - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 + '@esbuild/openbsd-arm64@0.25.2': + optional: true - kolorist@1.8.0: {} + '@esbuild/openbsd-x64@0.25.2': + optional: true - local-pkg@1.1.1: - dependencies: - mlly: 1.7.4 - pkg-types: 2.1.0 - quansync: 0.2.10 + '@esbuild/sunos-x64@0.25.2': + optional: true - lodash@4.17.21: {} + '@esbuild/win32-arm64@0.25.2': + optional: true - loupe@3.1.3: {} + '@esbuild/win32-ia32@0.25.2': + optional: true - lru-cache@10.4.3: {} + '@esbuild/win32-x64@0.25.2': + optional: true - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 + '@jridgewell/sourcemap-codec@1.5.0': {} - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@rollup/rollup-android-arm-eabi@4.40.0': + optional: true - minimatch@3.0.8: ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - dependencies: - brace-expansion: 1.1.11 + '@rollup/rollup-android-arm64@4.40.0': + optional: true - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 + '@rollup/rollup-darwin-arm64@4.40.0': + optional: true -<<<<<<< HEAD - ms@2.1.3: {} + '@rollup/rollup-darwin-x64@4.40.0': + optional: true - nanoid@3.3.11: {} + '@rollup/rollup-freebsd-arm64@4.40.0': + optional: true - natural-compare@1.4.0: {} + '@rollup/rollup-freebsd-x64@4.40.0': + optional: true - node-int64@0.4.0: {} + '@rollup/rollup-linux-arm-gnueabihf@4.40.0': + optional: true - node-releases@2.0.19: {} + '@rollup/rollup-linux-arm-musleabihf@4.40.0': + optional: true - normalize-path@3.0.0: {} + '@rollup/rollup-linux-arm64-gnu@4.40.0': + optional: true - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 + '@rollup/rollup-linux-arm64-musl@4.40.0': + optional: true - nwsapi@2.2.20: {} + '@rollup/rollup-linux-loongarch64-gnu@4.40.0': + optional: true - object-assign@4.1.1: {} + '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': + optional: true - object-inspect@1.13.4: {} + '@rollup/rollup-linux-riscv64-gnu@4.40.0': + optional: true - object-keys@1.1.1: {} + '@rollup/rollup-linux-riscv64-musl@4.40.0': + optional: true - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 + '@rollup/rollup-linux-s390x-gnu@4.40.0': + optional: true - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 + '@rollup/rollup-linux-x64-gnu@4.40.0': + optional: true - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 + '@rollup/rollup-linux-x64-musl@4.40.0': + optional: true - once@1.4.0: - dependencies: - wrappy: 1.0.2 + '@rollup/rollup-win32-arm64-msvc@4.40.0': + optional: true - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 + '@rollup/rollup-win32-ia32-msvc@4.40.0': + optional: true - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 + '@rollup/rollup-win32-x64-msvc@4.40.0': + optional: true - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 + '@types/estree@1.0.7': {} - p-limit@3.1.0: + '@types/node@22.14.1': dependencies: - yocto-queue: 0.1.0 + undici-types: 6.21.0 - p-locate@4.1.0: + '@vitest/expect@3.1.1': dependencies: - p-limit: 2.3.0 + '@vitest/spy': 3.1.1 + '@vitest/utils': 3.1.1 + chai: 5.2.0 + tinyrainbow: 2.0.0 - p-locate@5.0.0: + '@vitest/mocker@3.1.1(vite@6.3.2(@types/node@22.14.1))': dependencies: - p-limit: 3.1.0 - - p-try@2.2.0: {} + '@vitest/spy': 3.1.1 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 6.3.2(@types/node@22.14.1) - parent-module@1.0.1: + '@vitest/pretty-format@3.1.1': dependencies: - callsites: 3.1.0 + tinyrainbow: 2.0.0 - parse-json@5.2.0: + '@vitest/runner@3.1.1': dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 + '@vitest/utils': 3.1.1 + pathe: 2.0.3 -======= - mlly@1.7.4: + '@vitest/snapshot@3.1.1': dependencies: - acorn: 8.14.1 + '@vitest/pretty-format': 3.1.1 + magic-string: 0.30.17 pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - - ms@2.1.3: {} - - muggle-string@0.4.1: {} - - nanoid@3.3.11: {} - - nwsapi@2.2.20: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - parse5@7.2.1: + '@vitest/spy@3.1.1': dependencies: - entities: 4.5.0 - -<<<<<<< HEAD - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} + tinyspy: 3.0.2 - path-parse@1.0.7: {} + '@vitest/utils@3.1.1': + dependencies: + '@vitest/pretty-format': 3.1.1 + loupe: 3.1.3 + tinyrainbow: 2.0.0 - picocolors@1.1.1: {} + agent-base@7.1.3: {} - picomatch@2.3.1: {} + assertion-error@2.0.1: {} - pirates@4.0.7: {} + cac@6.7.14: {} - pkg-dir@4.2.0: + chai@5.2.0: dependencies: - find-up: 4.1.0 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.3 + pathval: 2.0.0 - possible-typed-array-names@1.1.0: {} + check-error@2.1.1: {} - postcss-minify@1.1.0(postcss@8.5.3): + cssstyle@4.3.1: dependencies: - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 + '@asamuzakjp/css-color': 3.1.4 + rrweb-cssom: 0.8.0 - postcss-selector-parser@6.1.2: + data-urls@5.0.0: dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-value-parser@4.2.0: {} -======= - path-browserify@1.0.1: {} + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 - path-parse@1.0.7: {} + debug@4.4.0: + dependencies: + ms: 2.1.3 - pathe@2.0.3: {} + decimal.js@10.5.0: {} - pathval@2.0.0: {} + deep-eql@5.0.2: {} - picocolors@1.1.1: {} + entities@4.5.0: {} - picomatch@4.0.2: {} + es-module-lexer@1.6.0: {} - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.3 + esbuild@0.25.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.2 + '@esbuild/android-arm': 0.25.2 + '@esbuild/android-arm64': 0.25.2 + '@esbuild/android-x64': 0.25.2 + '@esbuild/darwin-arm64': 0.25.2 + '@esbuild/darwin-x64': 0.25.2 + '@esbuild/freebsd-arm64': 0.25.2 + '@esbuild/freebsd-x64': 0.25.2 + '@esbuild/linux-arm': 0.25.2 + '@esbuild/linux-arm64': 0.25.2 + '@esbuild/linux-ia32': 0.25.2 + '@esbuild/linux-loong64': 0.25.2 + '@esbuild/linux-mips64el': 0.25.2 + '@esbuild/linux-ppc64': 0.25.2 + '@esbuild/linux-riscv64': 0.25.2 + '@esbuild/linux-s390x': 0.25.2 + '@esbuild/linux-x64': 0.25.2 + '@esbuild/netbsd-arm64': 0.25.2 + '@esbuild/netbsd-x64': 0.25.2 + '@esbuild/openbsd-arm64': 0.25.2 + '@esbuild/openbsd-x64': 0.25.2 + '@esbuild/sunos-x64': 0.25.2 + '@esbuild/win32-arm64': 0.25.2 + '@esbuild/win32-ia32': 0.25.2 + '@esbuild/win32-x64': 0.25.2 - pkg-types@2.1.0: + estree-walker@3.0.3: dependencies: - confbox: 0.2.2 - exsolve: 1.0.5 - pathe: 2.0.3 ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) + '@types/estree': 1.0.7 - postcss@8.5.3: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 + expect-type@1.2.1: {} -<<<<<<< HEAD - prelude-ls@1.2.1: {} + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 - prettier@3.5.3: {} + fsevents@2.3.3: + optional: true - pretty-format@29.7.0: + html-encoding-sniffer@4.0.0: dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 + whatwg-encoding: 3.1.1 - prompts@2.4.2: + http-proxy-agent@7.0.2: dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color - prop-types@15.8.1: + https-proxy-agent@7.0.6: dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color - psl@1.15.0: + iconv-lite@0.6.3: dependencies: - punycode: 2.3.1 - - punycode@2.3.1: {} - - pure-rand@6.1.0: {} - - querystringify@2.2.0: {} - - queue-microtask@1.2.3: {} - - react-is@16.13.1: {} - - react-is@18.3.1: {} + safer-buffer: 2.1.2 - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + is-potential-custom-element-name@1.0.1: {} - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regenerate-unicode-properties@10.2.0: + jsdom@26.1.0: dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} + cssstyle: 4.3.1 + data-urls: 5.0.0 + decimal.js: 10.5.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.20 + parse5: 7.2.1 + rrweb-cssom: 0.8.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.1.2 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + ws: 8.18.1 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate - regenerator-runtime@0.14.1: {} + loupe@3.1.3: {} - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.27.0 + lru-cache@10.4.3: {} - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - regexpu-core@6.2.0: + magic-string@0.30.17: dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.12.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 - - regjsgen@0.8.0: {} + '@jridgewell/sourcemap-codec': 1.5.0 - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 + ms@2.1.3: {} - require-directory@2.1.1: {} + nanoid@3.3.11: {} - requires-port@1.0.0: {} + nwsapi@2.2.20: {} - resolve-cwd@3.0.0: + parse5@7.2.1: dependencies: - resolve-from: 5.0.0 - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve.exports@2.0.3: {} -======= - punycode@2.3.1: {} - - quansync@0.2.10: {} - - require-from-string@2.0.2: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) + entities: 4.5.0 - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 + pathe@2.0.3: {} -<<<<<<< HEAD - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 + pathval@2.0.0: {} - reusify@1.1.0: {} + picocolors@1.1.1: {} - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 + picomatch@4.0.2: {} - safe-array-concat@1.1.3: + postcss@8.5.3: dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 + punycode@2.3.1: {} - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 -======= rollup@4.40.0: dependencies: '@types/estree': 1.0.7 @@ -7016,7 +1091,6 @@ snapshots: fsevents: 2.3.3 rrweb-cssom@0.8.0: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) safer-buffer@2.1.2: {} @@ -7024,285 +1098,16 @@ snapshots: dependencies: xmlchars: 2.2.0 -<<<<<<< HEAD - semver@6.3.1: {} - - semver@7.7.1: {} - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - signal-exit@3.0.7: {} - - sisteransi@1.0.5: {} - - slash@3.0.0: {} - - source-map-js@1.2.1: {} - - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - -======= - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - siginfo@2.0.0: {} source-map-js@1.2.1: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - source-map@0.6.1: {} - - sprintf-js@1.0.3: {} - -<<<<<<< HEAD - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.9 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-bom@4.0.0: {} - - strip-final-newline@2.0.0: {} - - strip-json-comments@3.1.1: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - -======= stackback@0.0.2: {} std-env@3.9.0: {} - string-argv@0.3.2: {} - - strip-json-comments@3.1.1: {} - ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - symbol-tree@3.2.4: {} -<<<<<<< HEAD - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - tmpl@1.0.5: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - tough-cookie@4.1.4: - dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - - tr46@3.0.0: - dependencies: - punycode: 2.3.1 - - ts-api-utils@2.1.0(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-detect@4.0.8: {} - - type-fest@0.21.3: {} - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typescript@5.8.3: {} - - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - undici-types@6.21.0: {} - - unicode-canonical-property-names-ecmascript@2.0.1: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 - - unicode-match-property-value-ecmascript@2.2.0: {} - - unicode-property-aliases-ecmascript@2.1.0: {} - - universalify@0.2.0: {} - - update-browserslist-db@1.1.3(browserslist@4.24.4): - dependencies: - browserslist: 4.24.4 - escalade: 3.2.0 - picocolors: 1.1.1 -======= tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -7334,138 +1139,8 @@ snapshots: typescript@5.7.3: {} - typescript@5.8.2: {} - - ufo@1.6.1: {} - undici-types@6.21.0: {} - universalify@2.0.1: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - -<<<<<<< HEAD - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - - util-deprecate@1.0.2: {} - - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - - w3c-xmlserializer@4.0.0: - dependencies: - xml-name-validator: 4.0.0 - - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - - webidl-conversions@7.0.0: {} - - whatwg-encoding@2.0.0: - dependencies: - iconv-lite: 0.6.3 - - whatwg-mimetype@3.0.0: {} - - whatwg-url@11.0.0: - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrappy@1.0.2: {} - - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - ws@8.18.1: {} - - xml-name-validator@4.0.0: {} - - xmlchars@2.2.0: {} - - y18n@5.0.8: {} - - yallist@3.1.1: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yocto-queue@0.1.0: {} -======= vite-node@3.1.1(@types/node@22.14.1): dependencies: cac: 6.7.14 @@ -7487,25 +1162,6 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.3(@types/node@22.14.1)(rollup@4.40.0)(typescript@5.7.3)(vite@6.3.2(@types/node@22.14.1)): - dependencies: - '@microsoft/api-extractor': 7.52.5(@types/node@22.14.1) - '@rollup/pluginutils': 5.1.4(rollup@4.40.0) - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.2.0(typescript@5.7.3) - compare-versions: 6.1.1 - debug: 4.4.0 - kolorist: 1.8.0 - local-pkg: 1.1.1 - magic-string: 0.30.17 - typescript: 5.7.3 - optionalDependencies: - vite: 6.3.2(@types/node@22.14.1) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite@6.3.2(@types/node@22.14.1): dependencies: esbuild: 0.25.2 @@ -7557,8 +1213,6 @@ snapshots: - tsx - yaml - vscode-uri@3.1.0: {} - w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 @@ -7586,6 +1240,3 @@ snapshots: xml-name-validator@5.0.0: {} xmlchars@2.2.0: {} - - yallist@4.0.0: {} ->>>>>>> dc2d1fe (chore(core): restructure files and finalize the setup) From eacba560e10a7f1e3423ddcb4390219befc07d2f Mon Sep 17 00:00:00 2001 From: Andreas Pfau Date: Wed, 30 Jul 2025 16:39:48 +0200 Subject: [PATCH 3/9] chore(core): remove old asstes --- .npmignore | 9 +- babel.config.js | 3 - coverage/clover.xml | 431 -- coverage/coverage-final.json | 2572 ---------- coverage/lcov-report/base.css | 224 - coverage/lcov-report/block-navigation.js | 75 - coverage/lcov-report/favicon.png | Bin 445 -> 0 bytes coverage/lcov-report/index.html | 131 - coverage/lcov-report/prettify.css | 1 - coverage/lcov-report/prettify.js | 896 ---- coverage/lcov-report/sort-arrow-sprite.png | Bin 138 -> 0 bytes coverage/lcov-report/sorter.js | 189 - coverage/lcov-report/src/component.js.html | 742 --- coverage/lcov-report/src/data-helpers.js.html | 292 -- coverage/lcov-report/src/index.html | 161 - .../src/renderer/container.js.html | 448 -- .../lcov-report/src/renderer/data-row.js.html | 754 --- coverage/lcov-report/src/renderer/index.html | 146 - .../lcov-report/src/renderer/toolbar.js.html | 460 -- coverage/lcov-report/src/themes.js.html | 4429 ----------------- coverage/lcov-report/src/validator.js.html | 235 - coverage/lcov.info | 823 --- demo/assets/Logo_JV1.png | Bin 74693 -> 0 bytes demo/assets/android-chrome-192x192.png | Bin 4117 -> 0 bytes demo/assets/android-chrome-512x512.png | Bin 12942 -> 0 bytes demo/assets/apple-touch-icon.png | Bin 3824 -> 0 bytes demo/assets/favicon-16x16.png | Bin 750 -> 0 bytes demo/assets/favicon-32x32.png | Bin 1090 -> 0 bytes demo/assets/favicon.ico | Bin 15086 -> 0 bytes demo/assets/mstile-150x150.png | Bin 2587 -> 0 bytes demo/build/index.js | 28 - demo/build/themes.js | 27 - demo/index.html | 140 - demo/index.js | 177 - demo/site.webmanifest | 19 - demo/styles.css | 142 - docker/Dockerfile.dev | 1 - esbuild.config.mjs | 142 - jest.config.js | 14 - package.json | 3 + pnpm-lock.yaml | 634 +++ src/component.js | 207 - src/data-helpers.js | 71 - src/index.js | 1 - src/react/JsonViewer.jsx | 16 - src/renderer/container.js | 115 - src/renderer/data-row.js | 212 - src/renderer/toolbar.js | 127 - src/styles.css | 480 -- src/themes.js | 1448 ------ src/validator.js | 52 - tests/__mocks__/fileMock.js | 1 - tests/__mocks__/styleMock.js | 6 - tests/component.test.js | 161 - tests/data-helpers.test.js | 140 - tests/renderer/container.test.js | 189 - tests/renderer/data-row.test.js | 178 - tests/renderer/toolbar.test.js | 88 - tests/themes.test.js | 42 - tests/validator.test.js | 93 - 60 files changed, 640 insertions(+), 17335 deletions(-) delete mode 100644 babel.config.js delete mode 100644 coverage/clover.xml delete mode 100644 coverage/coverage-final.json delete mode 100644 coverage/lcov-report/base.css delete mode 100644 coverage/lcov-report/block-navigation.js delete mode 100644 coverage/lcov-report/favicon.png delete mode 100644 coverage/lcov-report/index.html delete mode 100644 coverage/lcov-report/prettify.css delete mode 100644 coverage/lcov-report/prettify.js delete mode 100644 coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 coverage/lcov-report/sorter.js delete mode 100644 coverage/lcov-report/src/component.js.html delete mode 100644 coverage/lcov-report/src/data-helpers.js.html delete mode 100644 coverage/lcov-report/src/index.html delete mode 100644 coverage/lcov-report/src/renderer/container.js.html delete mode 100644 coverage/lcov-report/src/renderer/data-row.js.html delete mode 100644 coverage/lcov-report/src/renderer/index.html delete mode 100644 coverage/lcov-report/src/renderer/toolbar.js.html delete mode 100644 coverage/lcov-report/src/themes.js.html delete mode 100644 coverage/lcov-report/src/validator.js.html delete mode 100644 coverage/lcov.info delete mode 100644 demo/assets/Logo_JV1.png delete mode 100644 demo/assets/android-chrome-192x192.png delete mode 100644 demo/assets/android-chrome-512x512.png delete mode 100644 demo/assets/apple-touch-icon.png delete mode 100644 demo/assets/favicon-16x16.png delete mode 100644 demo/assets/favicon-32x32.png delete mode 100644 demo/assets/favicon.ico delete mode 100644 demo/assets/mstile-150x150.png delete mode 100644 demo/build/index.js delete mode 100644 demo/build/themes.js delete mode 100644 demo/index.html delete mode 100644 demo/index.js delete mode 100644 demo/site.webmanifest delete mode 100644 demo/styles.css delete mode 100644 docker/Dockerfile.dev delete mode 100644 esbuild.config.mjs delete mode 100644 jest.config.js delete mode 100644 src/component.js delete mode 100644 src/data-helpers.js delete mode 100644 src/index.js delete mode 100644 src/react/JsonViewer.jsx delete mode 100644 src/renderer/container.js delete mode 100644 src/renderer/data-row.js delete mode 100644 src/renderer/toolbar.js delete mode 100644 src/styles.css delete mode 100644 src/themes.js delete mode 100644 src/validator.js delete mode 100644 tests/__mocks__/fileMock.js delete mode 100644 tests/__mocks__/styleMock.js delete mode 100644 tests/component.test.js delete mode 100644 tests/data-helpers.test.js delete mode 100644 tests/renderer/container.test.js delete mode 100644 tests/renderer/data-row.test.js delete mode 100644 tests/renderer/toolbar.test.js delete mode 100644 tests/themes.test.js delete mode 100644 tests/validator.test.js diff --git a/.npmignore b/.npmignore index 122ed5d..7625068 100644 --- a/.npmignore +++ b/.npmignore @@ -1,7 +1,4 @@ src -demo -docker -tests -babel.config.js -esbuild.config.mjs -jest.config.js \ No newline at end of file +tsconfig.js +tsconfig.types.mjs +vite.config.js \ No newline at end of file diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index c99d1e1..0000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [["@babel/preset-env", { targets: { node: "current" } }]], -} diff --git a/coverage/clover.xml b/coverage/clover.xml deleted file mode 100644 index 10ce8c9..0000000 --- a/coverage/clover.xml +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json deleted file mode 100644 index 6ef97eb..0000000 --- a/coverage/coverage-final.json +++ /dev/null @@ -1,2572 +0,0 @@ -{ - "/workspace/json-viewer/src/component.js": { - "path": "/workspace/json-viewer/src/component.js", - "statementMap": { - "0": { "start": { "line": 25, "column": 23 }, "end": { "line": 35, "column": 1 } }, - "1": { "start": { "line": 44, "column": 4 }, "end": { "line": 44, "column": 11 } }, - "2": { "start": { "line": 46, "column": 4 }, "end": { "line": 46, "column": 41 } }, - "3": { "start": { "line": 48, "column": 4 }, "end": { "line": 48, "column": 64 } }, - "4": { "start": { "line": 51, "column": 23 }, "end": { "line": 51, "column": 58 } }, - "5": { "start": { "line": 52, "column": 24 }, "end": { "line": 52, "column": 55 } }, - "6": { "start": { "line": 53, "column": 4 }, "end": { "line": 53, "column": 41 } }, - "7": { "start": { "line": 55, "column": 4 }, "end": { "line": 55, "column": 39 } }, - "8": { "start": { "line": 56, "column": 4 }, "end": { "line": 56, "column": 54 } }, - "9": { "start": { "line": 59, "column": 4 }, "end": { "line": 59, "column": 36 } }, - "10": { "start": { "line": 61, "column": 4 }, "end": { "line": 61, "column": 60 } }, - "11": { "start": { "line": 67, "column": 4 }, "end": { "line": 69, "column": 5 } }, - "12": { "start": { "line": 68, "column": 6 }, "end": { "line": 68, "column": 60 } }, - "13": { "start": { "line": 72, "column": 29 }, "end": { "line": 72, "column": 73 } }, - "14": { "start": { "line": 74, "column": 10 }, "end": { "line": 76, "column": 3 } }, - "15": { "start": { "line": 75, "column": 4 }, "end": { "line": 75, "column": 73 } }, - "16": { "start": { "line": 78, "column": 23 }, "end": { "line": 91, "column": 3 } }, - "17": { "start": { "line": 79, "column": 4 }, "end": { "line": 90, "column": 5 } }, - "18": { "start": { "line": 80, "column": 6 }, "end": { "line": 80, "column": 34 } }, - "19": { "start": { "line": 81, "column": 6 }, "end": { "line": 83, "column": 7 } }, - "20": { "start": { "line": 82, "column": 8 }, "end": { "line": 82, "column": 71 } }, - "21": { "start": { "line": 84, "column": 6 }, "end": { "line": 84, "column": 51 } }, - "22": { "start": { "line": 84, "column": 45 }, "end": { "line": 84, "column": 51 } }, - "23": { "start": { "line": 86, "column": 6 }, "end": { "line": 86, "column": 37 } }, - "24": { "start": { "line": 87, "column": 6 }, "end": { "line": 87, "column": 20 } }, - "25": { "start": { "line": 89, "column": 6 }, "end": { "line": 89, "column": 55 } }, - "26": { "start": { "line": 94, "column": 4 }, "end": { "line": 94, "column": 68 } }, - "27": { "start": { "line": 98, "column": 4 }, "end": { "line": 98, "column": 66 } }, - "28": { "start": { "line": 102, "column": 4 }, "end": { "line": 102, "column": 72 } }, - "29": { "start": { "line": 106, "column": 4 }, "end": { "line": 110, "column": 6 } }, - "30": { "start": { "line": 114, "column": 4 }, "end": { "line": 118, "column": 5 } }, - "31": { "start": { "line": 122, "column": 4 }, "end": { "line": 122, "column": 69 } }, - "32": { "start": { "line": 126, "column": 4 }, "end": { "line": 126, "column": 66 } }, - "33": { "start": { "line": 133, "column": 4 }, "end": { "line": 146, "column": 5 } }, - "34": { "start": { "line": 134, "column": 6 }, "end": { "line": 134, "column": 47 } }, - "35": { "start": { "line": 136, "column": 6 }, "end": { "line": 140, "column": 14 } }, - "36": { "start": { "line": 140, "column": 8 }, "end": { "line": 140, "column": 14 } }, - "37": { "start": { "line": 142, "column": 6 }, "end": { "line": 142, "column": 68 } }, - "38": { "start": { "line": 143, "column": 6 }, "end": { "line": 143, "column": 36 } }, - "39": { "start": { "line": 145, "column": 6 }, "end": { "line": 145, "column": 49 } }, - "40": { "start": { "line": 153, "column": 4 }, "end": { "line": 174, "column": 5 } }, - "41": { "start": { "line": 154, "column": 6 }, "end": { "line": 154, "column": 45 } }, - "42": { "start": { "line": 156, "column": 28 }, "end": { "line": 156, "column": 51 } }, - "43": { "start": { "line": 158, "column": 6 }, "end": { "line": 158, "column": 54 } }, - "44": { "start": { "line": 158, "column": 48 }, "end": { "line": 158, "column": 54 } }, - "45": { "start": { "line": 159, "column": 6 }, "end": { "line": 159, "column": 40 } }, - "46": { "start": { "line": 161, "column": 6 }, "end": { "line": 171, "column": 7 } }, - "47": { "start": { "line": 162, "column": 8 }, "end": { "line": 167, "column": 12 } }, - "48": { "start": { "line": 163, "column": 23 }, "end": { "line": 163, "column": 31 } }, - "49": { "start": { "line": 165, "column": 12 }, "end": { "line": 165, "column": 36 } }, - "50": { "start": { "line": 166, "column": 12 }, "end": { "line": 166, "column": 26 } }, - "51": { "start": { "line": 169, "column": 8 }, "end": { "line": 169, "column": 35 } }, - "52": { "start": { "line": 170, "column": 8 }, "end": { "line": 170, "column": 22 } }, - "53": { "start": { "line": 173, "column": 6 }, "end": { "line": 173, "column": 48 } }, - "54": { "start": { "line": 178, "column": 4 }, "end": { "line": 178, "column": 24 } }, - "55": { "start": { "line": 182, "column": 4 }, "end": { "line": 186, "column": 6 } }, - "56": { "start": { "line": 183, "column": 19 }, "end": { "line": 183, "column": 35 } }, - "57": { "start": { "line": 184, "column": 6 }, "end": { "line": 184, "column": 27 } }, - "58": { "start": { "line": 185, "column": 6 }, "end": { "line": 185, "column": 32 } }, - "59": { "start": { "line": 185, "column": 16 }, "end": { "line": 185, "column": 32 } }, - "60": { "start": { "line": 193, "column": 4 }, "end": { "line": 200, "column": 5 } }, - "61": { "start": { "line": 195, "column": 23 }, "end": { "line": 195, "column": 75 } }, - "62": { "start": { "line": 195, "column": 56 }, "end": { "line": 195, "column": 74 } }, - "63": { "start": { "line": 196, "column": 6 }, "end": { "line": 196, "column": 31 } }, - "64": { "start": { "line": 198, "column": 6 }, "end": { "line": 198, "column": 75 } }, - "65": { "start": { "line": 199, "column": 6 }, "end": { "line": 199, "column": 32 } }, - "66": { "start": { "line": 203, "column": 12 }, "end": { "line": 216, "column": 3 } }, - "67": { "start": { "line": 206, "column": 4 }, "end": { "line": 215, "column": 6 } }, - "68": { "start": { "line": 219, "column": 0 }, "end": { "line": 219, "column": 48 } } - }, - "fnMap": { - "0": { - "name": "(anonymous_0)", - "decl": { "start": { "line": 43, "column": 2 }, "end": { "line": 43, "column": 3 } }, - "loc": { "start": { "line": 43, "column": 16 }, "end": { "line": 62, "column": 3 } }, - "line": 43 - }, - "1": { - "name": "(anonymous_1)", - "decl": { "start": { "line": 65, "column": 2 }, "end": { "line": 65, "column": 3 } }, - "loc": { "start": { "line": 65, "column": 34 }, "end": { "line": 70, "column": 3 } }, - "line": 65 - }, - "2": { - "name": "(anonymous_2)", - "decl": { "start": { "line": 67, "column": 43 }, "end": { "line": 67, "column": 44 } }, - "loc": { "start": { "line": 68, "column": 6 }, "end": { "line": 68, "column": 60 } }, - "line": 68 - }, - "3": { - "name": "(anonymous_3)", - "decl": { "start": { "line": 74, "column": 10 }, "end": { "line": 74, "column": 11 } }, - "loc": { "start": { "line": 74, "column": 23 }, "end": { "line": 76, "column": 3 } }, - "line": 74 - }, - "4": { - "name": "(anonymous_4)", - "decl": { "start": { "line": 78, "column": 23 }, "end": { "line": 78, "column": 24 } }, - "loc": { "start": { "line": 78, "column": 74 }, "end": { "line": 91, "column": 3 } }, - "line": 78 - }, - "5": { - "name": "(anonymous_5)", - "decl": { "start": { "line": 93, "column": 2 }, "end": { "line": 93, "column": 3 } }, - "loc": { "start": { "line": 93, "column": 27 }, "end": { "line": 95, "column": 3 } }, - "line": 93 - }, - "6": { - "name": "(anonymous_6)", - "decl": { "start": { "line": 97, "column": 2 }, "end": { "line": 97, "column": 3 } }, - "loc": { "start": { "line": 97, "column": 25 }, "end": { "line": 99, "column": 3 } }, - "line": 97 - }, - "7": { - "name": "(anonymous_7)", - "decl": { "start": { "line": 101, "column": 2 }, "end": { "line": 101, "column": 3 } }, - "loc": { "start": { "line": 101, "column": 24 }, "end": { "line": 103, "column": 3 } }, - "line": 101 - }, - "8": { - "name": "(anonymous_8)", - "decl": { "start": { "line": 105, "column": 2 }, "end": { "line": 105, "column": 3 } }, - "loc": { "start": { "line": 105, "column": 27 }, "end": { "line": 111, "column": 3 } }, - "line": 105 - }, - "9": { - "name": "(anonymous_9)", - "decl": { "start": { "line": 113, "column": 2 }, "end": { "line": 113, "column": 3 } }, - "loc": { "start": { "line": 113, "column": 28 }, "end": { "line": 119, "column": 3 } }, - "line": 113 - }, - "10": { - "name": "(anonymous_10)", - "decl": { "start": { "line": 121, "column": 2 }, "end": { "line": 121, "column": 3 } }, - "loc": { "start": { "line": 121, "column": 28 }, "end": { "line": 123, "column": 3 } }, - "line": 121 - }, - "11": { - "name": "(anonymous_11)", - "decl": { "start": { "line": 125, "column": 2 }, "end": { "line": 125, "column": 3 } }, - "loc": { "start": { "line": 125, "column": 25 }, "end": { "line": 127, "column": 3 } }, - "line": 125 - }, - "12": { - "name": "(anonymous_12)", - "decl": { "start": { "line": 132, "column": 2 }, "end": { "line": 132, "column": 3 } }, - "loc": { "start": { "line": 132, "column": 22 }, "end": { "line": 147, "column": 3 } }, - "line": 132 - }, - "13": { - "name": "(anonymous_13)", - "decl": { "start": { "line": 152, "column": 2 }, "end": { "line": 152, "column": 3 } }, - "loc": { "start": { "line": 152, "column": 20 }, "end": { "line": 175, "column": 3 } }, - "line": 152 - }, - "14": { - "name": "(anonymous_14)", - "decl": { "start": { "line": 163, "column": 16 }, "end": { "line": 163, "column": 17 } }, - "loc": { "start": { "line": 163, "column": 23 }, "end": { "line": 163, "column": 31 } }, - "line": 163 - }, - "15": { - "name": "(anonymous_15)", - "decl": { "start": { "line": 164, "column": 16 }, "end": { "line": 164, "column": 17 } }, - "loc": { "start": { "line": 164, "column": 26 }, "end": { "line": 167, "column": 11 } }, - "line": 164 - }, - "16": { - "name": "(anonymous_16)", - "decl": { "start": { "line": 177, "column": 2 }, "end": { "line": 177, "column": 3 } }, - "loc": { "start": { "line": 177, "column": 16 }, "end": { "line": 179, "column": 3 } }, - "line": 177 - }, - "17": { - "name": "(anonymous_17)", - "decl": { "start": { "line": 181, "column": 2 }, "end": { "line": 181, "column": 3 } }, - "loc": { "start": { "line": 181, "column": 22 }, "end": { "line": 187, "column": 3 } }, - "line": 181 - }, - "18": { - "name": "(anonymous_18)", - "decl": { "start": { "line": 182, "column": 48 }, "end": { "line": 182, "column": 49 } }, - "loc": { "start": { "line": 182, "column": 54 }, "end": { "line": 186, "column": 5 } }, - "line": 182 - }, - "19": { - "name": "(anonymous_19)", - "decl": { "start": { "line": 189, "column": 2 }, "end": { "line": 189, "column": 3 } }, - "loc": { "start": { "line": 189, "column": 53 }, "end": { "line": 201, "column": 3 } }, - "line": 189 - }, - "20": { - "name": "(anonymous_20)", - "decl": { "start": { "line": 195, "column": 49 }, "end": { "line": 195, "column": 50 } }, - "loc": { "start": { "line": 195, "column": 56 }, "end": { "line": 195, "column": 74 } }, - "line": 195 - }, - "21": { - "name": "(anonymous_21)", - "decl": { "start": { "line": 203, "column": 12 }, "end": { "line": 203, "column": 13 } }, - "loc": { "start": { "line": 203, "column": 18 }, "end": { "line": 216, "column": 3 } }, - "line": 203 - } - }, - "branchMap": { - "0": { - "loc": { "start": { "line": 75, "column": 30 }, "end": { "line": 75, "column": 60 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 75, "column": 40 }, "end": { "line": 75, "column": 55 } }, - { "start": { "line": 75, "column": 58 }, "end": { "line": 75, "column": 60 } } - ], - "line": 75 - }, - "1": { - "loc": { "start": { "line": 81, "column": 6 }, "end": { "line": 83, "column": 7 } }, - "type": "if", - "locations": [ - { "start": { "line": 81, "column": 6 }, "end": { "line": 83, "column": 7 } }, - { "start": {}, "end": {} } - ], - "line": 81 - }, - "2": { - "loc": { "start": { "line": 81, "column": 10 }, "end": { "line": 81, "column": 57 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 81, "column": 10 }, "end": { "line": 81, "column": 23 } }, - { "start": { "line": 81, "column": 27 }, "end": { "line": 81, "column": 57 } } - ], - "line": 81 - }, - "3": { - "loc": { "start": { "line": 84, "column": 6 }, "end": { "line": 84, "column": 51 } }, - "type": "if", - "locations": [ - { "start": { "line": 84, "column": 6 }, "end": { "line": 84, "column": 51 } }, - { "start": {}, "end": {} } - ], - "line": 84 - }, - "4": { - "loc": { "start": { "line": 136, "column": 6 }, "end": { "line": 140, "column": 14 } }, - "type": "if", - "locations": [ - { "start": { "line": 136, "column": 6 }, "end": { "line": 140, "column": 14 } }, - { "start": {}, "end": {} } - ], - "line": 136 - }, - "5": { - "loc": { "start": { "line": 137, "column": 8 }, "end": { "line": 138, "column": 53 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 137, "column": 8 }, "end": { "line": 137, "column": 40 } }, - { "start": { "line": 138, "column": 8 }, "end": { "line": 138, "column": 53 } } - ], - "line": 137 - }, - "6": { - "loc": { "start": { "line": 158, "column": 6 }, "end": { "line": 158, "column": 54 } }, - "type": "if", - "locations": [ - { "start": { "line": 158, "column": 6 }, "end": { "line": 158, "column": 54 } }, - { "start": {}, "end": {} } - ], - "line": 158 - }, - "7": { - "loc": { "start": { "line": 161, "column": 6 }, "end": { "line": 171, "column": 7 } }, - "type": "if", - "locations": [ - { "start": { "line": 161, "column": 6 }, "end": { "line": 171, "column": 7 } }, - { "start": { "line": 168, "column": 13 }, "end": { "line": 171, "column": 7 } } - ], - "line": 161 - }, - "8": { - "loc": { "start": { "line": 185, "column": 6 }, "end": { "line": 185, "column": 32 } }, - "type": "if", - "locations": [ - { "start": { "line": 185, "column": 6 }, "end": { "line": 185, "column": 32 } }, - { "start": {}, "end": {} } - ], - "line": 185 - }, - "9": { - "loc": { "start": { "line": 193, "column": 4 }, "end": { "line": 200, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 193, "column": 4 }, "end": { "line": 200, "column": 5 } }, - { "start": { "line": 197, "column": 11 }, "end": { "line": 200, "column": 5 } } - ], - "line": 193 - } - }, - "s": { - "0": 1, - "1": 21, - "2": 21, - "3": 21, - "4": 21, - "5": 21, - "6": 21, - "7": 21, - "8": 21, - "9": 21, - "10": 21, - "11": 2, - "12": 18, - "13": 1, - "14": 21, - "15": 6, - "16": 21, - "17": 16, - "18": 16, - "19": 12, - "20": 1, - "21": 11, - "22": 1, - "23": 10, - "24": 10, - "25": 5, - "26": 3, - "27": 0, - "28": 3, - "29": 2, - "30": 5, - "31": 0, - "32": 3, - "33": 23, - "34": 23, - "35": 23, - "36": 1, - "37": 22, - "38": 21, - "39": 1, - "40": 0, - "41": 0, - "42": 0, - "43": 0, - "44": 0, - "45": 0, - "46": 0, - "47": 0, - "48": 0, - "49": 0, - "50": 0, - "51": 0, - "52": 0, - "53": 0, - "54": 18, - "55": 0, - "56": 0, - "57": 0, - "58": 0, - "59": 0, - "60": 0, - "61": 0, - "62": 0, - "63": 0, - "64": 0, - "65": 0, - "66": 21, - "67": 10, - "68": 1 - }, - "f": { - "0": 21, - "1": 2, - "2": 18, - "3": 6, - "4": 16, - "5": 3, - "6": 0, - "7": 3, - "8": 2, - "9": 5, - "10": 0, - "11": 3, - "12": 23, - "13": 0, - "14": 0, - "15": 0, - "16": 18, - "17": 0, - "18": 0, - "19": 0, - "20": 0, - "21": 10 - }, - "b": { - "0": [0, 6], - "1": [1, 11], - "2": [12, 2], - "3": [1, 10], - "4": [1, 22], - "5": [23, 22], - "6": [0, 0], - "7": [0, 0], - "8": [0, 0], - "9": [0, 0] - }, - "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", - "hash": "d039e5fc9d5b6b10fa6e77a933af38d7c13d83fa" - }, - "/workspace/json-viewer/src/data-helpers.js": { - "path": "/workspace/json-viewer/src/data-helpers.js", - "statementMap": { - "0": { "start": { "line": 2, "column": 21 }, "end": { "line": 10, "column": 1 } }, - "1": { "start": { "line": 3, "column": 2 }, "end": { "line": 9, "column": 3 } }, - "2": { "start": { "line": 5, "column": 4 }, "end": { "line": 5, "column": 35 } }, - "3": { "start": { "line": 8, "column": 4 }, "end": { "line": 8, "column": 16 } }, - "4": { "start": { "line": 13, "column": 24 }, "end": { "line": 30, "column": 1 } }, - "5": { "start": { "line": 14, "column": 2 }, "end": { "line": 14, "column": 41 } }, - "6": { "start": { "line": 14, "column": 27 }, "end": { "line": 14, "column": 41 } }, - "7": { "start": { "line": 15, "column": 2 }, "end": { "line": 15, "column": 34 } }, - "8": { "start": { "line": 15, "column": 21 }, "end": { "line": 15, "column": 34 } }, - "9": { "start": { "line": 16, "column": 2 }, "end": { "line": 16, "column": 45 } }, - "10": { "start": { "line": 16, "column": 30 }, "end": { "line": 16, "column": 45 } }, - "11": { "start": { "line": 18, "column": 15 }, "end": { "line": 18, "column": 26 } }, - "12": { "start": { "line": 19, "column": 2 }, "end": { "line": 23, "column": 3 } }, - "13": { "start": { "line": 20, "column": 4 }, "end": { "line": 20, "column": 33 } }, - "14": { "start": { "line": 20, "column": 21 }, "end": { "line": 20, "column": 33 } }, - "15": { "start": { "line": 21, "column": 4 }, "end": { "line": 21, "column": 42 } }, - "16": { "start": { "line": 21, "column": 25 }, "end": { "line": 21, "column": 42 } }, - "17": { "start": { "line": 22, "column": 4 }, "end": { "line": 22, "column": 51 } }, - "18": { "start": { "line": 24, "column": 2 }, "end": { "line": 24, "column": 39 } }, - "19": { "start": { "line": 24, "column": 26 }, "end": { "line": 24, "column": 39 } }, - "20": { "start": { "line": 26, "column": 2 }, "end": { "line": 28, "column": 3 } }, - "21": { "start": { "line": 27, "column": 4 }, "end": { "line": 27, "column": 17 } }, - "22": { "start": { "line": 29, "column": 2 }, "end": { "line": 29, "column": 13 } }, - "23": { "start": { "line": 33, "column": 25 }, "end": { "line": 69, "column": 1 } }, - "24": { "start": { "line": 35, "column": 26 }, "end": { "line": 45, "column": 60 } }, - "25": { "start": { "line": 48, "column": 24 }, "end": { "line": 65, "column": 3 } }, - "26": { "start": { "line": 49, "column": 4 }, "end": { "line": 62, "column": 5 } }, - "27": { "start": { "line": 50, "column": 6 }, "end": { "line": 50, "column": 16 } }, - "28": { "start": { "line": 51, "column": 11 }, "end": { "line": 62, "column": 5 } }, - "29": { "start": { "line": 52, "column": 6 }, "end": { "line": 59, "column": 8 } }, - "30": { "start": { "line": 53, "column": 8 }, "end": { "line": 57, "column": 9 } }, - "31": { "start": { "line": 54, "column": 10 }, "end": { "line": 54, "column": 20 } }, - "32": { "start": { "line": 55, "column": 15 }, "end": { "line": 57, "column": 9 } }, - "33": { "start": { "line": 56, "column": 10 }, "end": { "line": 56, "column": 26 } }, - "34": { "start": { "line": 58, "column": 8 }, "end": { "line": 58, "column": 16 } }, - "35": { "start": { "line": 60, "column": 11 }, "end": { "line": 62, "column": 5 } }, - "36": { "start": { "line": 61, "column": 6 }, "end": { "line": 61, "column": 22 } }, - "37": { "start": { "line": 64, "column": 4 }, "end": { "line": 64, "column": 16 } }, - "38": { "start": { "line": 68, "column": 2 }, "end": { "line": 68, "column": 51 } } - }, - "fnMap": { - "0": { - "name": "(anonymous_0)", - "decl": { "start": { "line": 2, "column": 21 }, "end": { "line": 2, "column": 22 } }, - "loc": { "start": { "line": 2, "column": 33 }, "end": { "line": 10, "column": 1 } }, - "line": 2 - }, - "1": { - "name": "(anonymous_1)", - "decl": { "start": { "line": 13, "column": 24 }, "end": { "line": 13, "column": 25 } }, - "loc": { "start": { "line": 13, "column": 34 }, "end": { "line": 30, "column": 1 } }, - "line": 13 - }, - "2": { - "name": "(anonymous_2)", - "decl": { "start": { "line": 33, "column": 25 }, "end": { "line": 33, "column": 26 } }, - "loc": { "start": { "line": 33, "column": 41 }, "end": { "line": 69, "column": 1 } }, - "line": 33 - }, - "3": { - "name": "(anonymous_3)", - "decl": { "start": { "line": 48, "column": 24 }, "end": { "line": 48, "column": 25 } }, - "loc": { "start": { "line": 48, "column": 40 }, "end": { "line": 65, "column": 3 } }, - "line": 48 - }, - "4": { - "name": "(anonymous_4)", - "decl": { "start": { "line": 52, "column": 23 }, "end": { "line": 52, "column": 24 } }, - "loc": { "start": { "line": 52, "column": 30 }, "end": { "line": 59, "column": 7 } }, - "line": 52 - } - }, - "branchMap": { - "0": { - "loc": { "start": { "line": 14, "column": 2 }, "end": { "line": 14, "column": 41 } }, - "type": "if", - "locations": [ - { "start": { "line": 14, "column": 2 }, "end": { "line": 14, "column": 41 } }, - { "start": {}, "end": {} } - ], - "line": 14 - }, - "1": { - "loc": { "start": { "line": 15, "column": 2 }, "end": { "line": 15, "column": 34 } }, - "type": "if", - "locations": [ - { "start": { "line": 15, "column": 2 }, "end": { "line": 15, "column": 34 } }, - { "start": {}, "end": {} } - ], - "line": 15 - }, - "2": { - "loc": { "start": { "line": 16, "column": 2 }, "end": { "line": 16, "column": 45 } }, - "type": "if", - "locations": [ - { "start": { "line": 16, "column": 2 }, "end": { "line": 16, "column": 45 } }, - { "start": {}, "end": {} } - ], - "line": 16 - }, - "3": { - "loc": { "start": { "line": 19, "column": 2 }, "end": { "line": 23, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 19, "column": 2 }, "end": { "line": 23, "column": 3 } }, - { "start": {}, "end": {} } - ], - "line": 19 - }, - "4": { - "loc": { "start": { "line": 20, "column": 4 }, "end": { "line": 20, "column": 33 } }, - "type": "if", - "locations": [ - { "start": { "line": 20, "column": 4 }, "end": { "line": 20, "column": 33 } }, - { "start": {}, "end": {} } - ], - "line": 20 - }, - "5": { - "loc": { "start": { "line": 21, "column": 4 }, "end": { "line": 21, "column": 42 } }, - "type": "if", - "locations": [ - { "start": { "line": 21, "column": 4 }, "end": { "line": 21, "column": 42 } }, - { "start": {}, "end": {} } - ], - "line": 21 - }, - "6": { - "loc": { "start": { "line": 22, "column": 11 }, "end": { "line": 22, "column": 51 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 22, "column": 36 }, "end": { "line": 22, "column": 41 } }, - { "start": { "line": 22, "column": 44 }, "end": { "line": 22, "column": 51 } } - ], - "line": 22 - }, - "7": { - "loc": { "start": { "line": 24, "column": 2 }, "end": { "line": 24, "column": 39 } }, - "type": "if", - "locations": [ - { "start": { "line": 24, "column": 2 }, "end": { "line": 24, "column": 39 } }, - { "start": {}, "end": {} } - ], - "line": 24 - }, - "8": { - "loc": { "start": { "line": 26, "column": 2 }, "end": { "line": 28, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 26, "column": 2 }, "end": { "line": 28, "column": 3 } }, - { "start": {}, "end": {} } - ], - "line": 26 - }, - "9": { - "loc": { "start": { "line": 26, "column": 6 }, "end": { "line": 26, "column": 47 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 26, "column": 6 }, "end": { "line": 26, "column": 23 } }, - { "start": { "line": 26, "column": 27 }, "end": { "line": 26, "column": 47 } } - ], - "line": 26 - }, - "10": { - "loc": { "start": { "line": 49, "column": 4 }, "end": { "line": 62, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 49, "column": 4 }, "end": { "line": 62, "column": 5 } }, - { "start": { "line": 51, "column": 11 }, "end": { "line": 62, "column": 5 } } - ], - "line": 49 - }, - "11": { - "loc": { "start": { "line": 51, "column": 11 }, "end": { "line": 62, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 51, "column": 11 }, "end": { "line": 62, "column": 5 } }, - { "start": { "line": 60, "column": 11 }, "end": { "line": 62, "column": 5 } } - ], - "line": 51 - }, - "12": { - "loc": { "start": { "line": 53, "column": 8 }, "end": { "line": 57, "column": 9 } }, - "type": "if", - "locations": [ - { "start": { "line": 53, "column": 8 }, "end": { "line": 57, "column": 9 } }, - { "start": { "line": 55, "column": 15 }, "end": { "line": 57, "column": 9 } } - ], - "line": 53 - }, - "13": { - "loc": { "start": { "line": 55, "column": 15 }, "end": { "line": 57, "column": 9 } }, - "type": "if", - "locations": [ - { "start": { "line": 55, "column": 15 }, "end": { "line": 57, "column": 9 } }, - { "start": {}, "end": {} } - ], - "line": 55 - }, - "14": { - "loc": { "start": { "line": 60, "column": 11 }, "end": { "line": 62, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 60, "column": 11 }, "end": { "line": 62, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 60 - } - }, - "s": { - "0": 4, - "1": 11, - "2": 11, - "3": 9, - "4": 4, - "5": 79, - "6": 2, - "7": 77, - "8": 1, - "9": 76, - "10": 0, - "11": 76, - "12": 76, - "13": 4, - "14": 1, - "15": 3, - "16": 1, - "17": 2, - "18": 72, - "19": 1, - "20": 71, - "21": 0, - "22": 71, - "23": 4, - "24": 9, - "25": 9, - "26": 45, - "27": 5, - "28": 40, - "29": 3, - "30": 15, - "31": 0, - "32": 15, - "33": 0, - "34": 15, - "35": 37, - "36": 4, - "37": 33, - "38": 9 - }, - "f": { "0": 11, "1": 79, "2": 9, "3": 45, "4": 15 }, - "b": { - "0": [2, 77], - "1": [1, 76], - "2": [0, 76], - "3": [4, 72], - "4": [1, 3], - "5": [1, 2], - "6": [1, 1], - "7": [1, 71], - "8": [0, 71], - "9": [71, 33], - "10": [5, 40], - "11": [3, 37], - "12": [0, 15], - "13": [0, 15], - "14": [4, 33] - }, - "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", - "hash": "656e6c675abdbe44107ca960705a00c714125dea" - }, - "/workspace/json-viewer/src/themes.js": { - "path": "/workspace/json-viewer/src/themes.js", - "statementMap": { - "0": { "start": { "line": 21, "column": 15 }, "end": { "line": 1426, "column": 1 } }, - "1": { "start": { "line": 1428, "column": 31 }, "end": { "line": 1428, "column": 50 } }, - "2": { "start": { "line": 1430, "column": 27 }, "end": { "line": 1448, "column": 1 } }, - "3": { "start": { "line": 1432, "column": 2 }, "end": { "line": 1443, "column": 3 } }, - "4": { "start": { "line": 1433, "column": 4 }, "end": { "line": 1435, "column": 5 } }, - "5": { "start": { "line": 1434, "column": 6 }, "end": { "line": 1434, "column": 50 } }, - "6": { "start": { "line": 1436, "column": 4 }, "end": { "line": 1440, "column": 10 } }, - "7": { "start": { "line": 1437, "column": 18 }, "end": { "line": 1437, "column": 56 } }, - "8": { "start": { "line": 1438, "column": 6 }, "end": { "line": 1438, "column": 18 } }, - "9": { "start": { "line": 1439, "column": 6 }, "end": { "line": 1439, "column": 16 } }, - "10": { "start": { "line": 1442, "column": 4 }, "end": { "line": 1442, "column": 24 } }, - "11": { "start": { "line": 1445, "column": 2 }, "end": { "line": 1447, "column": 16 } }, - "12": { "start": { "line": 1446, "column": 18 }, "end": { "line": 1446, "column": 44 } } - }, - "fnMap": { - "0": { - "name": "(anonymous_0)", - "decl": { "start": { "line": 1430, "column": 27 }, "end": { "line": 1430, "column": 28 } }, - "loc": { "start": { "line": 1430, "column": 45 }, "end": { "line": 1448, "column": 1 } }, - "line": 1430 - }, - "1": { - "name": "(anonymous_1)", - "decl": { "start": { "line": 1436, "column": 40 }, "end": { "line": 1436, "column": 41 } }, - "loc": { "start": { "line": 1436, "column": 55 }, "end": { "line": 1440, "column": 5 } }, - "line": 1436 - }, - "2": { - "name": "(anonymous_2)", - "decl": { "start": { "line": 1446, "column": 9 }, "end": { "line": 1446, "column": 10 } }, - "loc": { "start": { "line": 1446, "column": 18 }, "end": { "line": 1446, "column": 44 } }, - "line": 1446 - } - }, - "branchMap": { - "0": { - "loc": { "start": { "line": 1432, "column": 2 }, "end": { "line": 1443, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 1432, "column": 2 }, "end": { "line": 1443, "column": 3 } }, - { "start": { "line": 1441, "column": 9 }, "end": { "line": 1443, "column": 3 } } - ], - "line": 1432 - }, - "1": { - "loc": { "start": { "line": 1433, "column": 4 }, "end": { "line": 1435, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 1433, "column": 4 }, "end": { "line": 1435, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 1433 - } - }, - "s": { - "0": 2, - "1": 2, - "2": 2, - "3": 26, - "4": 25, - "5": 1, - "6": 24, - "7": 384, - "8": 384, - "9": 384, - "10": 1, - "11": 25, - "12": 400 - }, - "f": { "0": 26, "1": 384, "2": 400 }, - "b": { "0": [25, 1], "1": [1, 24] }, - "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", - "hash": "0f6f7f4dc2aa8077f1b4a3847da610db0a82b9f8" - }, - "/workspace/json-viewer/src/validator.js": { - "path": "/workspace/json-viewer/src/validator.js", - "statementMap": { - "0": { "start": { "line": 1, "column": 31 }, "end": { "line": 7, "column": 1 } }, - "1": { "start": { "line": 2, "column": 2 }, "end": { "line": 2, "column": 46 } }, - "2": { "start": { "line": 2, "column": 34 }, "end": { "line": 2, "column": 46 } }, - "3": { "start": { "line": 3, "column": 2 }, "end": { "line": 4, "column": 42 } }, - "4": { "start": { "line": 3, "column": 24 }, "end": { "line": 3, "column": 35 } }, - "5": { "start": { "line": 4, "column": 7 }, "end": { "line": 4, "column": 42 } }, - "6": { "start": { "line": 4, "column": 30 }, "end": { "line": 4, "column": 42 } }, - "7": { "start": { "line": 6, "column": 2 }, "end": { "line": 6, "column": 41 } }, - "8": { "start": { "line": 9, "column": 30 }, "end": { "line": 13, "column": 1 } }, - "9": { "start": { "line": 10, "column": 2 }, "end": { "line": 10, "column": 45 } }, - "10": { "start": { "line": 10, "column": 33 }, "end": { "line": 10, "column": 45 } }, - "11": { "start": { "line": 12, "column": 2 }, "end": { "line": 12, "column": 40 } }, - "12": { "start": { "line": 15, "column": 38 }, "end": { "line": 24, "column": 1 } }, - "13": { "start": { "line": 16, "column": 2 }, "end": { "line": 16, "column": 59 } }, - "14": { "start": { "line": 16, "column": 47 }, "end": { "line": 16, "column": 59 } }, - "15": { "start": { "line": 17, "column": 2 }, "end": { "line": 19, "column": 3 } }, - "16": { "start": { "line": 18, "column": 4 }, "end": { "line": 18, "column": 29 } }, - "17": { "start": { "line": 20, "column": 2 }, "end": { "line": 22, "column": 3 } }, - "18": { "start": { "line": 21, "column": 4 }, "end": { "line": 21, "column": 51 } }, - "19": { "start": { "line": 23, "column": 2 }, "end": { "line": 23, "column": 14 } }, - "20": { "start": { "line": 26, "column": 47 }, "end": { "line": 37, "column": 1 } }, - "21": { "start": { "line": 27, "column": 2 }, "end": { "line": 27, "column": 46 } }, - "22": { "start": { "line": 27, "column": 34 }, "end": { "line": 27, "column": 46 } }, - "23": { "start": { "line": 28, "column": 2 }, "end": { "line": 28, "column": 45 } }, - "24": { "start": { "line": 28, "column": 33 }, "end": { "line": 28, "column": 45 } }, - "25": { "start": { "line": 29, "column": 2 }, "end": { "line": 34, "column": 3 } }, - "26": { "start": { "line": 29, "column": 24 }, "end": { "line": 29, "column": 35 } }, - "27": { "start": { "line": 30, "column": 7 }, "end": { "line": 34, "column": 3 } }, - "28": { "start": { "line": 30, "column": 30 }, "end": { "line": 30, "column": 42 } }, - "29": { "start": { "line": 31, "column": 7 }, "end": { "line": 34, "column": 3 } }, - "30": { "start": { "line": 32, "column": 4 }, "end": { "line": 32, "column": 29 } }, - "31": { "start": { "line": 33, "column": 4 }, "end": { "line": 33, "column": 49 } }, - "32": { "start": { "line": 33, "column": 37 }, "end": { "line": 33, "column": 49 } }, - "33": { "start": { "line": 36, "column": 2 }, "end": { "line": 36, "column": 62 } }, - "34": { "start": { "line": 39, "column": 36 }, "end": { "line": 50, "column": 1 } }, - "35": { "start": { "line": 40, "column": 2 }, "end": { "line": 40, "column": 45 } }, - "36": { "start": { "line": 40, "column": 33 }, "end": { "line": 40, "column": 45 } }, - "37": { "start": { "line": 41, "column": 2 }, "end": { "line": 47, "column": 3 } }, - "38": { "start": { "line": 42, "column": 4 }, "end": { "line": 46, "column": 5 } }, - "39": { "start": { "line": 43, "column": 6 }, "end": { "line": 43, "column": 30 } }, - "40": { "start": { "line": 45, "column": 6 }, "end": { "line": 45, "column": 18 } }, - "41": { "start": { "line": 49, "column": 2 }, "end": { "line": 49, "column": 48 } } - }, - "fnMap": { - "0": { - "name": "(anonymous_0)", - "decl": { "start": { "line": 1, "column": 31 }, "end": { "line": 1, "column": 32 } }, - "loc": { "start": { "line": 1, "column": 42 }, "end": { "line": 7, "column": 1 } }, - "line": 1 - }, - "1": { - "name": "(anonymous_1)", - "decl": { "start": { "line": 9, "column": 30 }, "end": { "line": 9, "column": 31 } }, - "loc": { "start": { "line": 9, "column": 41 }, "end": { "line": 13, "column": 1 } }, - "line": 9 - }, - "2": { - "name": "(anonymous_2)", - "decl": { "start": { "line": 15, "column": 38 }, "end": { "line": 15, "column": 39 } }, - "loc": { "start": { "line": 15, "column": 49 }, "end": { "line": 24, "column": 1 } }, - "line": 15 - }, - "3": { - "name": "(anonymous_3)", - "decl": { "start": { "line": 26, "column": 47 }, "end": { "line": 26, "column": 48 } }, - "loc": { "start": { "line": 26, "column": 58 }, "end": { "line": 37, "column": 1 } }, - "line": 26 - }, - "4": { - "name": "(anonymous_4)", - "decl": { "start": { "line": 39, "column": 36 }, "end": { "line": 39, "column": 37 } }, - "loc": { "start": { "line": 39, "column": 47 }, "end": { "line": 50, "column": 1 } }, - "line": 39 - } - }, - "branchMap": { - "0": { - "loc": { "start": { "line": 2, "column": 2 }, "end": { "line": 2, "column": 46 } }, - "type": "if", - "locations": [ - { "start": { "line": 2, "column": 2 }, "end": { "line": 2, "column": 46 } }, - { "start": {}, "end": {} } - ], - "line": 2 - }, - "1": { - "loc": { "start": { "line": 3, "column": 2 }, "end": { "line": 4, "column": 42 } }, - "type": "if", - "locations": [ - { "start": { "line": 3, "column": 2 }, "end": { "line": 4, "column": 42 } }, - { "start": { "line": 4, "column": 7 }, "end": { "line": 4, "column": 42 } } - ], - "line": 3 - }, - "2": { - "loc": { "start": { "line": 4, "column": 7 }, "end": { "line": 4, "column": 42 } }, - "type": "if", - "locations": [ - { "start": { "line": 4, "column": 7 }, "end": { "line": 4, "column": 42 } }, - { "start": {}, "end": {} } - ], - "line": 4 - }, - "3": { - "loc": { "start": { "line": 10, "column": 2 }, "end": { "line": 10, "column": 45 } }, - "type": "if", - "locations": [ - { "start": { "line": 10, "column": 2 }, "end": { "line": 10, "column": 45 } }, - { "start": {}, "end": {} } - ], - "line": 10 - }, - "4": { - "loc": { "start": { "line": 16, "column": 2 }, "end": { "line": 16, "column": 59 } }, - "type": "if", - "locations": [ - { "start": { "line": 16, "column": 2 }, "end": { "line": 16, "column": 59 } }, - { "start": {}, "end": {} } - ], - "line": 16 - }, - "5": { - "loc": { "start": { "line": 16, "column": 6 }, "end": { "line": 16, "column": 45 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 16, "column": 6 }, "end": { "line": 16, "column": 31 } }, - { "start": { "line": 16, "column": 35 }, "end": { "line": 16, "column": 45 } } - ], - "line": 16 - }, - "6": { - "loc": { "start": { "line": 17, "column": 2 }, "end": { "line": 19, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 17, "column": 2 }, "end": { "line": 19, "column": 3 } }, - { "start": {}, "end": {} } - ], - "line": 17 - }, - "7": { - "loc": { "start": { "line": 20, "column": 2 }, "end": { "line": 22, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 20, "column": 2 }, "end": { "line": 22, "column": 3 } }, - { "start": {}, "end": {} } - ], - "line": 20 - }, - "8": { - "loc": { "start": { "line": 20, "column": 6 }, "end": { "line": 20, "column": 31 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 20, "column": 6 }, "end": { "line": 20, "column": 18 } }, - { "start": { "line": 20, "column": 22 }, "end": { "line": 20, "column": 31 } } - ], - "line": 20 - }, - "9": { - "loc": { "start": { "line": 27, "column": 2 }, "end": { "line": 27, "column": 46 } }, - "type": "if", - "locations": [ - { "start": { "line": 27, "column": 2 }, "end": { "line": 27, "column": 46 } }, - { "start": {}, "end": {} } - ], - "line": 27 - }, - "10": { - "loc": { "start": { "line": 28, "column": 2 }, "end": { "line": 28, "column": 45 } }, - "type": "if", - "locations": [ - { "start": { "line": 28, "column": 2 }, "end": { "line": 28, "column": 45 } }, - { "start": {}, "end": {} } - ], - "line": 28 - }, - "11": { - "loc": { "start": { "line": 29, "column": 2 }, "end": { "line": 34, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 29, "column": 2 }, "end": { "line": 34, "column": 3 } }, - { "start": { "line": 30, "column": 7 }, "end": { "line": 34, "column": 3 } } - ], - "line": 29 - }, - "12": { - "loc": { "start": { "line": 30, "column": 7 }, "end": { "line": 34, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 30, "column": 7 }, "end": { "line": 34, "column": 3 } }, - { "start": { "line": 31, "column": 7 }, "end": { "line": 34, "column": 3 } } - ], - "line": 30 - }, - "13": { - "loc": { "start": { "line": 31, "column": 7 }, "end": { "line": 34, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 31, "column": 7 }, "end": { "line": 34, "column": 3 } }, - { "start": {}, "end": {} } - ], - "line": 31 - }, - "14": { - "loc": { "start": { "line": 33, "column": 4 }, "end": { "line": 33, "column": 49 } }, - "type": "if", - "locations": [ - { "start": { "line": 33, "column": 4 }, "end": { "line": 33, "column": 49 } }, - { "start": {}, "end": {} } - ], - "line": 33 - }, - "15": { - "loc": { "start": { "line": 33, "column": 8 }, "end": { "line": 33, "column": 35 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 33, "column": 8 }, "end": { "line": 33, "column": 21 } }, - { "start": { "line": 33, "column": 25 }, "end": { "line": 33, "column": 35 } } - ], - "line": 33 - }, - "16": { - "loc": { "start": { "line": 40, "column": 2 }, "end": { "line": 40, "column": 45 } }, - "type": "if", - "locations": [ - { "start": { "line": 40, "column": 2 }, "end": { "line": 40, "column": 45 } }, - { "start": {}, "end": {} } - ], - "line": 40 - }, - "17": { - "loc": { "start": { "line": 41, "column": 2 }, "end": { "line": 47, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 41, "column": 2 }, "end": { "line": 47, "column": 3 } }, - { "start": {}, "end": {} } - ], - "line": 41 - } - }, - "s": { - "0": 2, - "1": 11, - "2": 4, - "3": 7, - "4": 1, - "5": 6, - "6": 3, - "7": 3, - "8": 2, - "9": 4, - "10": 3, - "11": 1, - "12": 2, - "13": 7, - "14": 2, - "15": 5, - "16": 4, - "17": 5, - "18": 3, - "19": 2, - "20": 2, - "21": 12, - "22": 3, - "23": 9, - "24": 2, - "25": 7, - "26": 2, - "27": 5, - "28": 1, - "29": 4, - "30": 4, - "31": 4, - "32": 2, - "33": 2, - "34": 2, - "35": 28, - "36": 1, - "37": 27, - "38": 26, - "39": 26, - "40": 25, - "41": 1 - }, - "f": { "0": 11, "1": 4, "2": 7, "3": 12, "4": 28 }, - "b": { - "0": [4, 7], - "1": [1, 6], - "2": [3, 3], - "3": [3, 1], - "4": [2, 5], - "5": [7, 3], - "6": [4, 1], - "7": [3, 2], - "8": [5, 3], - "9": [3, 9], - "10": [2, 7], - "11": [2, 5], - "12": [1, 4], - "13": [4, 0], - "14": [2, 2], - "15": [4, 2], - "16": [1, 27], - "17": [26, 1] - }, - "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", - "hash": "3dc5d5fe81c515595f98aaf5b68b6cf8d97ac7cc" - }, - "/workspace/json-viewer/src/renderer/container.js": { - "path": "/workspace/json-viewer/src/renderer/container.js", - "statementMap": { - "0": { "start": { "line": 5, "column": 24 }, "end": { "line": 5, "column": 53 } }, - "1": { "start": { "line": 6, "column": 2 }, "end": { "line": 6, "column": 39 } }, - "2": { "start": { "line": 7, "column": 2 }, "end": { "line": 7, "column": 33 } }, - "3": { "start": { "line": 8, "column": 16 }, "end": { "line": 8, "column": 20 } }, - "4": { "start": { "line": 9, "column": 16 }, "end": { "line": 9, "column": 20 } }, - "5": { "start": { "line": 11, "column": 16 }, "end": { "line": 11, "column": 18 } }, - "6": { "start": { "line": 13, "column": 2 }, "end": { "line": 116, "column": 3 } }, - "7": { "start": { "line": 24, "column": 4 }, "end": { "line": 47, "column": 5 } }, - "8": { "start": { "line": 25, "column": 35 }, "end": { "line": 25, "column": 55 } }, - "9": { "start": { "line": 27, "column": 6 }, "end": { "line": 46, "column": 7 } }, - "10": { "start": { "line": 28, "column": 8 }, "end": { "line": 28, "column": 54 } }, - "11": { "start": { "line": 30, "column": 8 }, "end": { "line": 39, "column": 10 } }, - "12": { "start": { "line": 36, "column": 12 }, "end": { "line": 36, "column": 49 } }, - "13": { "start": { "line": 36, "column": 25 }, "end": { "line": 36, "column": 49 } }, - "14": { "start": { "line": 37, "column": 12 }, "end": { "line": 37, "column": 34 } }, - "15": { "start": { "line": 40, "column": 8 }, "end": { "line": 40, "column": 54 } }, - "16": { "start": { "line": 41, "column": 8 }, "end": { "line": 45, "column": 9 } }, - "17": { "start": { "line": 42, "column": 10 }, "end": { "line": 42, "column": 48 } }, - "18": { "start": { "line": 43, "column": 10 }, "end": { "line": 43, "column": 51 } }, - "19": { "start": { "line": 44, "column": 10 }, "end": { "line": 44, "column": 27 } }, - "20": { "start": { "line": 48, "column": 4 }, "end": { "line": 75, "column": 5 } }, - "21": { "start": { "line": 49, "column": 6 }, "end": { "line": 49, "column": 37 } }, - "22": { "start": { "line": 50, "column": 6 }, "end": { "line": 74, "column": 7 } }, - "23": { "start": { "line": 51, "column": 8 }, "end": { "line": 68, "column": 12 } }, - "24": { "start": { "line": 52, "column": 10 }, "end": { "line": 68, "column": 12 } }, - "25": { "start": { "line": 56, "column": 30 }, "end": { "line": 56, "column": 50 } }, - "26": { "start": { "line": 57, "column": 14 }, "end": { "line": 61, "column": 15 } }, - "27": { "start": { "line": 58, "column": 16 }, "end": { "line": 58, "column": 46 } }, - "28": { "start": { "line": 59, "column": 16 }, "end": { "line": 59, "column": 46 } }, - "29": { "start": { "line": 60, "column": 16 }, "end": { "line": 60, "column": 51 } }, - "30": { "start": { "line": 63, "column": 14 }, "end": { "line": 63, "column": 34 } }, - "31": { "start": { "line": 66, "column": 14 }, "end": { "line": 66, "column": 57 } }, - "32": { "start": { "line": 66, "column": 27 }, "end": { "line": 66, "column": 57 } }, - "33": { "start": { "line": 69, "column": 8 }, "end": { "line": 69, "column": 62 } }, - "34": { "start": { "line": 69, "column": 21 }, "end": { "line": 69, "column": 62 } }, - "35": { "start": { "line": 70, "column": 8 }, "end": { "line": 70, "column": 46 } }, - "36": { "start": { "line": 72, "column": 24 }, "end": { "line": 72, "column": 63 } }, - "37": { "start": { "line": 73, "column": 8 }, "end": { "line": 73, "column": 37 } }, - "38": { "start": { "line": 73, "column": 21 }, "end": { "line": 73, "column": 37 } }, - "39": { "start": { "line": 77, "column": 29 }, "end": { "line": 77, "column": 31 } }, - "40": { "start": { "line": 79, "column": 4 }, "end": { "line": 82, "column": 5 } }, - "41": { "start": { "line": 80, "column": 6 }, "end": { "line": 80, "column": 31 } }, - "42": { "start": { "line": 81, "column": 6 }, "end": { "line": 81, "column": 42 } }, - "43": { "start": { "line": 84, "column": 4 }, "end": { "line": 87, "column": 5 } }, - "44": { "start": { "line": 85, "column": 6 }, "end": { "line": 85, "column": 27 } }, - "45": { "start": { "line": 86, "column": 6 }, "end": { "line": 86, "column": 38 } }, - "46": { "start": { "line": 88, "column": 4 }, "end": { "line": 90, "column": 5 } }, - "47": { "start": { "line": 89, "column": 6 }, "end": { "line": 89, "column": 38 } }, - "48": { "start": { "line": 93, "column": 4 }, "end": { "line": 96, "column": 5 } }, - "49": { "start": { "line": 94, "column": 6 }, "end": { "line": 94, "column": 31 } }, - "50": { "start": { "line": 95, "column": 6 }, "end": { "line": 95, "column": 59 } }, - "51": { "start": { "line": 98, "column": 4 }, "end": { "line": 101, "column": 5 } }, - "52": { "start": { "line": 99, "column": 6 }, "end": { "line": 99, "column": 31 } }, - "53": { "start": { "line": 100, "column": 6 }, "end": { "line": 100, "column": 59 } }, - "54": { "start": { "line": 103, "column": 4 }, "end": { "line": 106, "column": 5 } }, - "55": { "start": { "line": 104, "column": 6 }, "end": { "line": 104, "column": 41 } }, - "56": { "start": { "line": 105, "column": 6 }, "end": { "line": 105, "column": 70 } }, - "57": { "start": { "line": 108, "column": 4 }, "end": { "line": 115, "column": 5 } }, - "58": { "start": { "line": 112, "column": 6 }, "end": { "line": 112, "column": 66 } }, - "59": { "start": { "line": 113, "column": 6 }, "end": { "line": 113, "column": 75 } }, - "60": { "start": { "line": 114, "column": 6 }, "end": { "line": 114, "column": 43 } }, - "61": { "start": { "line": 118, "column": 2 }, "end": { "line": 118, "column": 22 } } - }, - "fnMap": { - "0": { - "name": "Container", - "decl": { "start": { "line": 4, "column": 9 }, "end": { "line": 4, "column": 18 } }, - "loc": { "start": { "line": 4, "column": 39 }, "end": { "line": 119, "column": 1 } }, - "line": 4 - }, - "1": { - "name": "(anonymous_1)", - "decl": { "start": { "line": 13, "column": 16 }, "end": { "line": 13, "column": 17 } }, - "loc": { "start": { "line": 22, "column": 8 }, "end": { "line": 116, "column": 3 } }, - "line": 22 - }, - "2": { - "name": "(anonymous_2)", - "decl": { "start": { "line": 35, "column": 26 }, "end": { "line": 35, "column": 27 } }, - "loc": { "start": { "line": 35, "column": 37 }, "end": { "line": 38, "column": 11 } }, - "line": 35 - }, - "3": { - "name": "(anonymous_3)", - "decl": { "start": { "line": 55, "column": 22 }, "end": { "line": 55, "column": 23 } }, - "loc": { "start": { "line": 55, "column": 61 }, "end": { "line": 64, "column": 13 } }, - "line": 55 - }, - "4": { - "name": "(anonymous_4)", - "decl": { "start": { "line": 65, "column": 22 }, "end": { "line": 65, "column": 23 } }, - "loc": { "start": { "line": 65, "column": 38 }, "end": { "line": 67, "column": 13 } }, - "line": 65 - } - }, - "branchMap": { - "0": { - "loc": { "start": { "line": 4, "column": 25 }, "end": { "line": 4, "column": 37 } }, - "type": "default-arg", - "locations": [{ "start": { "line": 4, "column": 35 }, "end": { "line": 4, "column": 37 } }], - "line": 4 - }, - "1": { - "loc": { "start": { "line": 24, "column": 4 }, "end": { "line": 47, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 24, "column": 4 }, "end": { "line": 47, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 24 - }, - "2": { - "loc": { "start": { "line": 27, "column": 6 }, "end": { "line": 46, "column": 7 } }, - "type": "if", - "locations": [ - { "start": { "line": 27, "column": 6 }, "end": { "line": 46, "column": 7 } }, - { "start": {}, "end": {} } - ], - "line": 27 - }, - "3": { - "loc": { "start": { "line": 36, "column": 12 }, "end": { "line": 36, "column": 49 } }, - "type": "if", - "locations": [ - { "start": { "line": 36, "column": 12 }, "end": { "line": 36, "column": 49 } }, - { "start": {}, "end": {} } - ], - "line": 36 - }, - "4": { - "loc": { "start": { "line": 41, "column": 8 }, "end": { "line": 45, "column": 9 } }, - "type": "if", - "locations": [ - { "start": { "line": 41, "column": 8 }, "end": { "line": 45, "column": 9 } }, - { "start": {}, "end": {} } - ], - "line": 41 - }, - "5": { - "loc": { "start": { "line": 41, "column": 12 }, "end": { "line": 41, "column": 40 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 41, "column": 12 }, "end": { "line": 41, "column": 29 } }, - { "start": { "line": 41, "column": 33 }, "end": { "line": 41, "column": 40 } } - ], - "line": 41 - }, - "6": { - "loc": { "start": { "line": 48, "column": 4 }, "end": { "line": 75, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 48, "column": 4 }, "end": { "line": 75, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 48 - }, - "7": { - "loc": { "start": { "line": 48, "column": 8 }, "end": { "line": 48, "column": 70 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 48, "column": 8 }, "end": { "line": 48, "column": 33 } }, - { "start": { "line": 48, "column": 37 }, "end": { "line": 48, "column": 70 } } - ], - "line": 48 - }, - "8": { - "loc": { "start": { "line": 50, "column": 6 }, "end": { "line": 74, "column": 7 } }, - "type": "if", - "locations": [ - { "start": { "line": 50, "column": 6 }, "end": { "line": 74, "column": 7 } }, - { "start": { "line": 71, "column": 13 }, "end": { "line": 74, "column": 7 } } - ], - "line": 50 - }, - "9": { - "loc": { "start": { "line": 51, "column": 8 }, "end": { "line": 68, "column": 12 } }, - "type": "if", - "locations": [ - { "start": { "line": 51, "column": 8 }, "end": { "line": 68, "column": 12 } }, - { "start": {}, "end": {} } - ], - "line": 51 - }, - "10": { - "loc": { "start": { "line": 57, "column": 14 }, "end": { "line": 61, "column": 15 } }, - "type": "if", - "locations": [ - { "start": { "line": 57, "column": 14 }, "end": { "line": 61, "column": 15 } }, - { "start": {}, "end": {} } - ], - "line": 57 - }, - "11": { - "loc": { "start": { "line": 66, "column": 14 }, "end": { "line": 66, "column": 57 } }, - "type": "if", - "locations": [ - { "start": { "line": 66, "column": 14 }, "end": { "line": 66, "column": 57 } }, - { "start": {}, "end": {} } - ], - "line": 66 - }, - "12": { - "loc": { "start": { "line": 69, "column": 8 }, "end": { "line": 69, "column": 62 } }, - "type": "if", - "locations": [ - { "start": { "line": 69, "column": 8 }, "end": { "line": 69, "column": 62 } }, - { "start": {}, "end": {} } - ], - "line": 69 - }, - "13": { - "loc": { "start": { "line": 73, "column": 8 }, "end": { "line": 73, "column": 37 } }, - "type": "if", - "locations": [ - { "start": { "line": 73, "column": 8 }, "end": { "line": 73, "column": 37 } }, - { "start": {}, "end": {} } - ], - "line": 73 - }, - "14": { - "loc": { "start": { "line": 79, "column": 4 }, "end": { "line": 82, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 79, "column": 4 }, "end": { "line": 82, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 79 - }, - "15": { - "loc": { "start": { "line": 79, "column": 8 }, "end": { "line": 79, "column": 61 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 79, "column": 8 }, "end": { "line": 79, "column": 30 } }, - { "start": { "line": 79, "column": 34 }, "end": { "line": 79, "column": 61 } } - ], - "line": 79 - }, - "16": { - "loc": { "start": { "line": 84, "column": 4 }, "end": { "line": 87, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 84, "column": 4 }, "end": { "line": 87, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 84 - }, - "17": { - "loc": { "start": { "line": 84, "column": 8 }, "end": { "line": 84, "column": 55 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 84, "column": 8 }, "end": { "line": 84, "column": 28 } }, - { "start": { "line": 84, "column": 32 }, "end": { "line": 84, "column": 55 } } - ], - "line": 84 - }, - "18": { - "loc": { "start": { "line": 88, "column": 4 }, "end": { "line": 90, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 88, "column": 4 }, "end": { "line": 90, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 88 - }, - "19": { - "loc": { "start": { "line": 88, "column": 8 }, "end": { "line": 88, "column": 59 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 88, "column": 8 }, "end": { "line": 88, "column": 48 } }, - { "start": { "line": 88, "column": 52 }, "end": { "line": 88, "column": 59 } } - ], - "line": 88 - }, - "20": { - "loc": { "start": { "line": 93, "column": 4 }, "end": { "line": 96, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 93, "column": 4 }, "end": { "line": 96, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 93 - }, - "21": { - "loc": { "start": { "line": 93, "column": 8 }, "end": { "line": 93, "column": 61 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 93, "column": 8 }, "end": { "line": 93, "column": 30 } }, - { "start": { "line": 93, "column": 34 }, "end": { "line": 93, "column": 61 } } - ], - "line": 93 - }, - "22": { - "loc": { "start": { "line": 98, "column": 4 }, "end": { "line": 101, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 98, "column": 4 }, "end": { "line": 101, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 98 - }, - "23": { - "loc": { "start": { "line": 98, "column": 8 }, "end": { "line": 98, "column": 61 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 98, "column": 8 }, "end": { "line": 98, "column": 30 } }, - { "start": { "line": 98, "column": 34 }, "end": { "line": 98, "column": 61 } } - ], - "line": 98 - }, - "24": { - "loc": { "start": { "line": 103, "column": 4 }, "end": { "line": 106, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 103, "column": 4 }, "end": { "line": 106, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 103 - }, - "25": { - "loc": { "start": { "line": 103, "column": 8 }, "end": { "line": 103, "column": 76 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 103, "column": 8 }, "end": { "line": 103, "column": 35 } }, - { "start": { "line": 103, "column": 39 }, "end": { "line": 103, "column": 76 } } - ], - "line": 103 - }, - "26": { - "loc": { "start": { "line": 108, "column": 4 }, "end": { "line": 115, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 108, "column": 4 }, "end": { "line": 115, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 108 - }, - "27": { - "loc": { "start": { "line": 109, "column": 6 }, "end": { "line": 110, "column": 45 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 109, "column": 6 }, "end": { "line": 109, "column": 34 } }, - { "start": { "line": 110, "column": 6 }, "end": { "line": 110, "column": 45 } } - ], - "line": 109 - } - }, - "s": { - "0": 42, - "1": 42, - "2": 42, - "3": 42, - "4": 42, - "5": 42, - "6": 42, - "7": 81, - "8": 9, - "9": 9, - "10": 8, - "11": 8, - "12": 0, - "13": 0, - "14": 0, - "15": 8, - "16": 8, - "17": 0, - "18": 0, - "19": 0, - "20": 81, - "21": 25, - "22": 25, - "23": 3, - "24": 3, - "25": 2, - "26": 2, - "27": 2, - "28": 2, - "29": 2, - "30": 2, - "31": 0, - "32": 0, - "33": 3, - "34": 0, - "35": 3, - "36": 22, - "37": 22, - "38": 1, - "39": 81, - "40": 81, - "41": 26, - "42": 26, - "43": 81, - "44": 24, - "45": 24, - "46": 81, - "47": 2, - "48": 81, - "49": 28, - "50": 28, - "51": 81, - "52": 26, - "53": 26, - "54": 81, - "55": 28, - "56": 28, - "57": 81, - "58": 24, - "59": 24, - "60": 24, - "61": 42 - }, - "f": { "0": 42, "1": 81, "2": 0, "3": 2, "4": 0 }, - "b": { - "0": [21], - "1": [9, 72], - "2": [8, 1], - "3": [0, 0], - "4": [0, 8], - "5": [8, 0], - "6": [25, 56], - "7": [81, 35], - "8": [3, 22], - "9": [3, 0], - "10": [2, 0], - "11": [0, 0], - "12": [0, 3], - "13": [1, 21], - "14": [26, 55], - "15": [81, 32], - "16": [24, 57], - "17": [81, 32], - "18": [2, 79], - "19": [81, 29], - "20": [28, 53], - "21": [81, 36], - "22": [26, 55], - "23": [81, 36], - "24": [28, 53], - "25": [81, 36], - "26": [24, 57], - "27": [81, 34] - }, - "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", - "hash": "43dcbf1636b1c47e746e9752b6cd8198f2ac2de3" - }, - "/workspace/json-viewer/src/renderer/data-row.js": { - "path": "/workspace/json-viewer/src/renderer/data-row.js", - "statementMap": { - "0": { "start": { "line": 3, "column": 16 }, "end": { "line": 221, "column": 1 } }, - "1": { "start": { "line": 12, "column": 14 }, "end": { "line": 12, "column": 43 } }, - "2": { "start": { "line": 13, "column": 2 }, "end": { "line": 13, "column": 23 } }, - "3": { "start": { "line": 15, "column": 23 }, "end": { "line": 15, "column": 38 } }, - "4": { "start": { "line": 16, "column": 22 }, "end": { "line": 16, "column": 75 } }, - "5": { "start": { "line": 17, "column": 19 }, "end": { "line": 17, "column": 56 } }, - "6": { "start": { "line": 21, "column": 2 }, "end": { "line": 21, "column": 60 } }, - "7": { "start": { "line": 22, "column": 2 }, "end": { "line": 22, "column": 23 } }, - "8": { "start": { "line": 23, "column": 2 }, "end": { "line": 23, "column": 27 } }, - "9": { "start": { "line": 24, "column": 2 }, "end": { "line": 24, "column": 58 } }, - "10": { "start": { "line": 24, "column": 17 }, "end": { "line": 24, "column": 58 } }, - "11": { "start": { "line": 26, "column": 26 }, "end": { "line": 26, "column": 56 } }, - "12": { "start": { "line": 27, "column": 2 }, "end": { "line": 27, "column": 49 } }, - "13": { "start": { "line": 28, "column": 2 }, "end": { "line": 28, "column": 34 } }, - "14": { "start": { "line": 30, "column": 23 }, "end": { "line": 39, "column": 3 } }, - "15": { "start": { "line": 31, "column": 4 }, "end": { "line": 31, "column": 36 } }, - "16": { "start": { "line": 32, "column": 4 }, "end": { "line": 38, "column": 5 } }, - "17": { "start": { "line": 33, "column": 6 }, "end": { "line": 37, "column": 7 } }, - "18": { "start": { "line": 34, "column": 8 }, "end": { "line": 34, "column": 33 } }, - "19": { "start": { "line": 36, "column": 8 }, "end": { "line": 36, "column": 29 } }, - "20": { "start": { "line": 42, "column": 2 }, "end": { "line": 54, "column": 3 } }, - "21": { "start": { "line": 43, "column": 30 }, "end": { "line": 43, "column": 60 } }, - "22": { "start": { "line": 44, "column": 4 }, "end": { "line": 44, "column": 48 } }, - "23": { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 50 } }, - "24": { "start": { "line": 48, "column": 4 }, "end": { "line": 48, "column": 47 } }, - "25": { "start": { "line": 49, "column": 4 }, "end": { "line": 49, "column": 50 } }, - "26": { "start": { "line": 50, "column": 4 }, "end": { "line": 50, "column": 72 } }, - "27": { "start": { "line": 51, "column": 4 }, "end": { "line": 51, "column": 45 } }, - "28": { "start": { "line": 53, "column": 4 }, "end": { "line": 53, "column": 62 } }, - "29": { "start": { "line": 53, "column": 47 }, "end": { "line": 53, "column": 61 } }, - "30": { "start": { "line": 57, "column": 2 }, "end": { "line": 73, "column": 3 } }, - "31": { "start": { "line": 59, "column": 24 }, "end": { "line": 59, "column": 34 } }, - "32": { "start": { "line": 60, "column": 4 }, "end": { "line": 60, "column": 42 } }, - "33": { "start": { "line": 61, "column": 4 }, "end": { "line": 63, "column": 6 } }, - "34": { "start": { "line": 64, "column": 4 }, "end": { "line": 64, "column": 67 } }, - "35": { "start": { "line": 65, "column": 4 }, "end": { "line": 65, "column": 57 } }, - "36": { "start": { "line": 65, "column": 42 }, "end": { "line": 65, "column": 56 } }, - "37": { "start": { "line": 66, "column": 4 }, "end": { "line": 66, "column": 38 } }, - "38": { "start": { "line": 69, "column": 20 }, "end": { "line": 69, "column": 50 } }, - "39": { "start": { "line": 70, "column": 4 }, "end": { "line": 70, "column": 34 } }, - "40": { "start": { "line": 71, "column": 4 }, "end": { "line": 71, "column": 29 } }, - "41": { "start": { "line": 72, "column": 4 }, "end": { "line": 72, "column": 40 } }, - "42": { "start": { "line": 75, "column": 2 }, "end": { "line": 144, "column": 3 } }, - "43": { "start": { "line": 77, "column": 31 }, "end": { "line": 77, "column": 61 } }, - "44": { "start": { "line": 78, "column": 4 }, "end": { "line": 78, "column": 56 } }, - "45": { "start": { "line": 79, "column": 4 }, "end": { "line": 79, "column": 73 } }, - "46": { "start": { "line": 80, "column": 4 }, "end": { "line": 80, "column": 51 } }, - "47": { "start": { "line": 83, "column": 21 }, "end": { "line": 83, "column": 51 } }, - "48": { "start": { "line": 84, "column": 4 }, "end": { "line": 84, "column": 45 } }, - "49": { "start": { "line": 85, "column": 4 }, "end": { "line": 85, "column": 32 } }, - "50": { "start": { "line": 86, "column": 4 }, "end": { "line": 86, "column": 60 } }, - "51": { "start": { "line": 86, "column": 45 }, "end": { "line": 86, "column": 59 } }, - "52": { "start": { "line": 87, "column": 4 }, "end": { "line": 87, "column": 41 } }, - "53": { "start": { "line": 90, "column": 31 }, "end": { "line": 90, "column": 61 } }, - "54": { "start": { "line": 91, "column": 4 }, "end": { "line": 91, "column": 56 } }, - "55": { "start": { "line": 92, "column": 4 }, "end": { "line": 92, "column": 73 } }, - "56": { "start": { "line": 93, "column": 4 }, "end": { "line": 93, "column": 51 } }, - "57": { "start": { "line": 96, "column": 22 }, "end": { "line": 96, "column": 52 } }, - "58": { "start": { "line": 98, "column": 6 }, "end": { "line": 98, "column": 73 } }, - "59": { "start": { "line": 99, "column": 4 }, "end": { "line": 99, "column": 38 } }, - "60": { "start": { "line": 100, "column": 4 }, "end": { "line": 100, "column": 70 } }, - "61": { "start": { "line": 101, "column": 4 }, "end": { "line": 101, "column": 42 } }, - "62": { "start": { "line": 104, "column": 4 }, "end": { "line": 104, "column": 21 } }, - "63": { "start": { "line": 107, "column": 6 }, "end": { "line": 107, "column": 76 } }, - "64": { "start": { "line": 107, "column": 53 }, "end": { "line": 107, "column": 54 } }, - "65": { "start": { "line": 108, "column": 4 }, "end": { "line": 120, "column": 6 } }, - "66": { "start": { "line": 109, "column": 21 }, "end": { "line": 116, "column": 8 } }, - "67": { "start": { "line": 117, "column": 6 }, "end": { "line": 117, "column": 31 } }, - "68": { "start": { "line": 118, "column": 6 }, "end": { "line": 118, "column": 37 } }, - "69": { "start": { "line": 119, "column": 6 }, "end": { "line": 119, "column": 62 } }, - "70": { "start": { "line": 123, "column": 39 }, "end": { "line": 123, "column": 69 } }, - "71": { "start": { "line": 124, "column": 4 }, "end": { "line": 124, "column": 64 } }, - "72": { "start": { "line": 125, "column": 4 }, "end": { "line": 126, "column": 42 } }, - "73": { "start": { "line": 127, "column": 4 }, "end": { "line": 127, "column": 47 } }, - "74": { "start": { "line": 130, "column": 20 }, "end": { "line": 130, "column": 24 } }, - "75": { "start": { "line": 131, "column": 4 }, "end": { "line": 135, "column": 5 } }, - "76": { "start": { "line": 132, "column": 6 }, "end": { "line": 132, "column": 48 } }, - "77": { "start": { "line": 133, "column": 6 }, "end": { "line": 133, "column": 34 } }, - "78": { "start": { "line": 134, "column": 6 }, "end": { "line": 134, "column": 56 } }, - "79": { "start": { "line": 137, "column": 25 }, "end": { "line": 137, "column": 55 } }, - "80": { "start": { "line": 138, "column": 4 }, "end": { "line": 138, "column": 66 } }, - "81": { "start": { "line": 139, "column": 4 }, "end": { "line": 139, "column": 44 } }, - "82": { "start": { "line": 140, "column": 4 }, "end": { "line": 140, "column": 74 } }, - "83": { "start": { "line": 141, "column": 4 }, "end": { "line": 141, "column": 54 } }, - "84": { "start": { "line": 141, "column": 19 }, "end": { "line": 141, "column": 54 } }, - "85": { "start": { "line": 142, "column": 4 }, "end": { "line": 142, "column": 37 } }, - "86": { "start": { "line": 143, "column": 4 }, "end": { "line": 143, "column": 45 } }, - "87": { "start": { "line": 147, "column": 19 }, "end": { "line": 147, "column": 49 } }, - "88": { "start": { "line": 148, "column": 2 }, "end": { "line": 148, "column": 34 } }, - "89": { "start": { "line": 149, "column": 2 }, "end": { "line": 149, "column": 53 } }, - "90": { "start": { "line": 150, "column": 2 }, "end": { "line": 152, "column": 4 } }, - "91": { "start": { "line": 151, "column": 4 }, "end": { "line": 151, "column": 70 } }, - "92": { "start": { "line": 154, "column": 26 }, "end": { "line": 154, "column": 56 } }, - "93": { "start": { "line": 155, "column": 2 }, "end": { "line": 155, "column": 44 } }, - "94": { "start": { "line": 156, "column": 2 }, "end": { "line": 156, "column": 39 } }, - "95": { "start": { "line": 157, "column": 2 }, "end": { "line": 157, "column": 46 } }, - "96": { "start": { "line": 160, "column": 17 }, "end": { "line": 199, "column": 3 } }, - "97": { "start": { "line": 161, "column": 4 }, "end": { "line": 179, "column": 5 } }, - "98": { "start": { "line": 162, "column": 24 }, "end": { "line": 162, "column": 41 } }, - "99": { "start": { "line": 164, "column": 6 }, "end": { "line": 164, "column": 33 } }, - "100": { "start": { "line": 167, "column": 8 }, "end": { "line": 169, "column": 41 } }, - "101": { "start": { "line": 171, "column": 6 }, "end": { "line": 178, "column": 7 } }, - "102": { "start": { "line": 172, "column": 8 }, "end": { "line": 177, "column": 68 } }, - "103": { "start": { "line": 180, "column": 4 }, "end": { "line": 198, "column": 5 } }, - "104": { "start": { "line": 181, "column": 26 }, "end": { "line": 181, "column": 45 } }, - "105": { "start": { "line": 183, "column": 6 }, "end": { "line": 183, "column": 37 } }, - "106": { "start": { "line": 186, "column": 8 }, "end": { "line": 188, "column": 43 } }, - "107": { "start": { "line": 190, "column": 6 }, "end": { "line": 197, "column": 7 } }, - "108": { "start": { "line": 191, "column": 8 }, "end": { "line": 196, "column": 72 } }, - "109": { "start": { "line": 202, "column": 2 }, "end": { "line": 218, "column": 3 } }, - "110": { "start": { "line": 203, "column": 4 }, "end": { "line": 205, "column": 5 } }, - "111": { "start": { "line": 204, "column": 6 }, "end": { "line": 204, "column": 47 } }, - "112": { "start": { "line": 207, "column": 4 }, "end": { "line": 211, "column": 5 } }, - "113": { "start": { "line": 208, "column": 6 }, "end": { "line": 208, "column": 56 } }, - "114": { "start": { "line": 209, "column": 6 }, "end": { "line": 209, "column": 50 } }, - "115": { "start": { "line": 210, "column": 6 }, "end": { "line": 210, "column": 75 } }, - "116": { "start": { "line": 210, "column": 22 }, "end": { "line": 210, "column": 75 } }, - "117": { "start": { "line": 212, "column": 4 }, "end": { "line": 214, "column": 5 } }, - "118": { "start": { "line": 213, "column": 6 }, "end": { "line": 213, "column": 24 } }, - "119": { "start": { "line": 216, "column": 4 }, "end": { "line": 217, "column": 77 } }, - "120": { "start": { "line": 217, "column": 6 }, "end": { "line": 217, "column": 77 } }, - "121": { "start": { "line": 217, "column": 34 }, "end": { "line": 217, "column": 76 } }, - "122": { "start": { "line": 220, "column": 2 }, "end": { "line": 220, "column": 20 } } - }, - "fnMap": { - "0": { - "name": "(anonymous_0)", - "decl": { "start": { "line": 3, "column": 16 }, "end": { "line": 3, "column": 17 } }, - "loc": { "start": { "line": 11, "column": 3 }, "end": { "line": 221, "column": 1 } }, - "line": 11 - }, - "1": { - "name": "(anonymous_1)", - "decl": { "start": { "line": 30, "column": 23 }, "end": { "line": 30, "column": 24 } }, - "loc": { "start": { "line": 30, "column": 29 }, "end": { "line": 39, "column": 3 } }, - "line": 30 - }, - "2": { - "name": "(anonymous_2)", - "decl": { "start": { "line": 53, "column": 41 }, "end": { "line": 53, "column": 42 } }, - "loc": { "start": { "line": 53, "column": 47 }, "end": { "line": 53, "column": 61 } }, - "line": 53 - }, - "3": { - "name": "(anonymous_3)", - "decl": { "start": { "line": 65, "column": 36 }, "end": { "line": 65, "column": 37 } }, - "loc": { "start": { "line": 65, "column": 42 }, "end": { "line": 65, "column": 56 } }, - "line": 65 - }, - "4": { - "name": "(anonymous_4)", - "decl": { "start": { "line": 86, "column": 39 }, "end": { "line": 86, "column": 40 } }, - "loc": { "start": { "line": 86, "column": 45 }, "end": { "line": 86, "column": 59 } }, - "line": 86 - }, - "5": { - "name": "(anonymous_5)", - "decl": { "start": { "line": 107, "column": 43 }, "end": { "line": 107, "column": 44 } }, - "loc": { "start": { "line": 107, "column": 53 }, "end": { "line": 107, "column": 54 } }, - "line": 107 - }, - "6": { - "name": "(anonymous_6)", - "decl": { "start": { "line": 108, "column": 18 }, "end": { "line": 108, "column": 19 } }, - "loc": { "start": { "line": 108, "column": 27 }, "end": { "line": 120, "column": 5 } }, - "line": 108 - }, - "7": { - "name": "(anonymous_7)", - "decl": { "start": { "line": 150, "column": 37 }, "end": { "line": 150, "column": 38 } }, - "loc": { "start": { "line": 150, "column": 43 }, "end": { "line": 152, "column": 3 } }, - "line": 150 - }, - "8": { - "name": "(anonymous_8)", - "decl": { "start": { "line": 160, "column": 17 }, "end": { "line": 160, "column": 18 } }, - "loc": { "start": { "line": 160, "column": 33 }, "end": { "line": 199, "column": 3 } }, - "line": 160 - }, - "9": { - "name": "(anonymous_9)", - "decl": { "start": { "line": 202, "column": 16 }, "end": { "line": 202, "column": 17 } }, - "loc": { "start": { "line": 202, "column": 54 }, "end": { "line": 218, "column": 3 } }, - "line": 202 - }, - "10": { - "name": "(anonymous_10)", - "decl": { "start": { "line": 217, "column": 27 }, "end": { "line": 217, "column": 28 } }, - "loc": { "start": { "line": 217, "column": 34 }, "end": { "line": 217, "column": 76 } }, - "line": 217 - } - }, - "branchMap": { - "0": { - "loc": { "start": { "line": 10, "column": 2 }, "end": { "line": 10, "column": 11 } }, - "type": "default-arg", - "locations": [{ "start": { "line": 10, "column": 10 }, "end": { "line": 10, "column": 11 } }], - "line": 10 - }, - "1": { - "loc": { "start": { "line": 16, "column": 22 }, "end": { "line": 16, "column": 75 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 16, "column": 22 }, "end": { "line": 16, "column": 46 } }, - { "start": { "line": 16, "column": 50 }, "end": { "line": 16, "column": 75 } } - ], - "line": 16 - }, - "2": { - "loc": { "start": { "line": 17, "column": 19 }, "end": { "line": 17, "column": 56 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 17, "column": 19 }, "end": { "line": 17, "column": 36 } }, - { "start": { "line": 17, "column": 40 }, "end": { "line": 17, "column": 56 } } - ], - "line": 17 - }, - "3": { - "loc": { "start": { "line": 21, "column": 30 }, "end": { "line": 21, "column": 58 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 21, "column": 43 }, "end": { "line": 21, "column": 53 } }, - { "start": { "line": 21, "column": 56 }, "end": { "line": 21, "column": 58 } } - ], - "line": 21 - }, - "4": { - "loc": { "start": { "line": 24, "column": 2 }, "end": { "line": 24, "column": 58 } }, - "type": "if", - "locations": [ - { "start": { "line": 24, "column": 2 }, "end": { "line": 24, "column": 58 } }, - { "start": {}, "end": {} } - ], - "line": 24 - }, - "5": { - "loc": { "start": { "line": 32, "column": 4 }, "end": { "line": 38, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 32, "column": 4 }, "end": { "line": 38, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 32 - }, - "6": { - "loc": { "start": { "line": 33, "column": 6 }, "end": { "line": 37, "column": 7 } }, - "type": "if", - "locations": [ - { "start": { "line": 33, "column": 6 }, "end": { "line": 37, "column": 7 } }, - { "start": { "line": 35, "column": 13 }, "end": { "line": 37, "column": 7 } } - ], - "line": 33 - }, - "7": { - "loc": { "start": { "line": 42, "column": 2 }, "end": { "line": 54, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 42, "column": 2 }, "end": { "line": 54, "column": 3 } }, - { "start": {}, "end": {} } - ], - "line": 42 - }, - "8": { - "loc": { "start": { "line": 50, "column": 37 }, "end": { "line": 50, "column": 71 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 50, "column": 50 }, "end": { "line": 50, "column": 60 } }, - { "start": { "line": 50, "column": 63 }, "end": { "line": 50, "column": 71 } } - ], - "line": 50 - }, - "9": { - "loc": { "start": { "line": 57, "column": 2 }, "end": { "line": 73, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 57, "column": 2 }, "end": { "line": 73, "column": 3 } }, - { "start": {}, "end": {} } - ], - "line": 57 - }, - "10": { - "loc": { "start": { "line": 57, "column": 6 }, "end": { "line": 57, "column": 32 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 57, "column": 6 }, "end": { "line": 57, "column": 18 } }, - { "start": { "line": 57, "column": 22 }, "end": { "line": 57, "column": 32 } } - ], - "line": 57 - }, - "11": { - "loc": { "start": { "line": 62, "column": 6 }, "end": { "line": 62, "column": 46 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 62, "column": 33 }, "end": { "line": 62, "column": 41 } }, - { "start": { "line": 62, "column": 44 }, "end": { "line": 62, "column": 46 } } - ], - "line": 62 - }, - "12": { - "loc": { "start": { "line": 64, "column": 24 }, "end": { "line": 64, "column": 67 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 64, "column": 51 }, "end": { "line": 64, "column": 54 } }, - { "start": { "line": 64, "column": 57 }, "end": { "line": 64, "column": 67 } } - ], - "line": 64 - }, - "13": { - "loc": { "start": { "line": 75, "column": 2 }, "end": { "line": 144, "column": 3 } }, - "type": "if", - "locations": [ - { "start": { "line": 75, "column": 2 }, "end": { "line": 144, "column": 3 } }, - { "start": { "line": 128, "column": 9 }, "end": { "line": 144, "column": 3 } } - ], - "line": 75 - }, - "14": { - "loc": { "start": { "line": 79, "column": 37 }, "end": { "line": 79, "column": 73 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 79, "column": 64 }, "end": { "line": 79, "column": 67 } }, - { "start": { "line": 79, "column": 70 }, "end": { "line": 79, "column": 73 } } - ], - "line": 79 - }, - "15": { - "loc": { "start": { "line": 92, "column": 37 }, "end": { "line": 92, "column": 73 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 92, "column": 64 }, "end": { "line": 92, "column": 67 } }, - { "start": { "line": 92, "column": 70 }, "end": { "line": 92, "column": 73 } } - ], - "line": 92 - }, - "16": { - "loc": { "start": { "line": 98, "column": 6 }, "end": { "line": 98, "column": 73 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 98, "column": 33 }, "end": { "line": 98, "column": 45 } }, - { "start": { "line": 98, "column": 48 }, "end": { "line": 98, "column": 73 } } - ], - "line": 98 - }, - "17": { - "loc": { "start": { "line": 100, "column": 45 }, "end": { "line": 100, "column": 68 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 100, "column": 60 }, "end": { "line": 100, "column": 62 } }, - { "start": { "line": 100, "column": 65 }, "end": { "line": 100, "column": 68 } } - ], - "line": 100 - }, - "18": { - "loc": { "start": { "line": 107, "column": 6 }, "end": { "line": 107, "column": 76 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 107, "column": 33 }, "end": { "line": 107, "column": 55 } }, - { "start": { "line": 107, "column": 58 }, "end": { "line": 107, "column": 76 } } - ], - "line": 107 - }, - "19": { - "loc": { "start": { "line": 126, "column": 6 }, "end": { "line": 126, "column": 42 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 126, "column": 33 }, "end": { "line": 126, "column": 36 } }, - { "start": { "line": 126, "column": 39 }, "end": { "line": 126, "column": 42 } } - ], - "line": 126 - }, - "20": { - "loc": { "start": { "line": 131, "column": 4 }, "end": { "line": 135, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 131, "column": 4 }, "end": { "line": 135, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 131 - }, - "21": { - "loc": { "start": { "line": 140, "column": 26 }, "end": { "line": 140, "column": 74 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 140, "column": 54 }, "end": { "line": 140, "column": 66 } }, - { "start": { "line": 140, "column": 69 }, "end": { "line": 140, "column": 74 } } - ], - "line": 140 - }, - "22": { - "loc": { "start": { "line": 141, "column": 4 }, "end": { "line": 141, "column": 54 } }, - "type": "if", - "locations": [ - { "start": { "line": 141, "column": 4 }, "end": { "line": 141, "column": 54 } }, - { "start": {}, "end": {} } - ], - "line": 141 - }, - "23": { - "loc": { "start": { "line": 161, "column": 4 }, "end": { "line": 179, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 161, "column": 4 }, "end": { "line": 179, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 161 - }, - "24": { - "loc": { "start": { "line": 167, "column": 8 }, "end": { "line": 169, "column": 41 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 168, "column": 12 }, "end": { "line": 168, "column": 14 } }, - { "start": { "line": 169, "column": 12 }, "end": { "line": 169, "column": 41 } } - ], - "line": 167 - }, - "25": { - "loc": { "start": { "line": 167, "column": 8 }, "end": { "line": 167, "column": 76 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 167, "column": 8 }, "end": { "line": 167, "column": 27 } }, - { "start": { "line": 167, "column": 31 }, "end": { "line": 167, "column": 55 } }, - { "start": { "line": 167, "column": 59 }, "end": { "line": 167, "column": 76 } } - ], - "line": 167 - }, - "26": { - "loc": { "start": { "line": 171, "column": 6 }, "end": { "line": 178, "column": 7 } }, - "type": "if", - "locations": [ - { "start": { "line": 171, "column": 6 }, "end": { "line": 178, "column": 7 } }, - { "start": {}, "end": {} } - ], - "line": 171 - }, - "27": { - "loc": { "start": { "line": 180, "column": 4 }, "end": { "line": 198, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 180, "column": 4 }, "end": { "line": 198, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 180 - }, - "28": { - "loc": { "start": { "line": 186, "column": 8 }, "end": { "line": 188, "column": 43 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 187, "column": 12 }, "end": { "line": 187, "column": 14 } }, - { "start": { "line": 188, "column": 12 }, "end": { "line": 188, "column": 43 } } - ], - "line": 186 - }, - "29": { - "loc": { "start": { "line": 186, "column": 8 }, "end": { "line": 186, "column": 76 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 186, "column": 8 }, "end": { "line": 186, "column": 27 } }, - { "start": { "line": 186, "column": 31 }, "end": { "line": 186, "column": 55 } }, - { "start": { "line": 186, "column": 59 }, "end": { "line": 186, "column": 76 } } - ], - "line": 186 - }, - "30": { - "loc": { "start": { "line": 190, "column": 6 }, "end": { "line": 197, "column": 7 } }, - "type": "if", - "locations": [ - { "start": { "line": 190, "column": 6 }, "end": { "line": 197, "column": 7 } }, - { "start": {}, "end": {} } - ], - "line": 190 - }, - "31": { - "loc": { "start": { "line": 203, "column": 4 }, "end": { "line": 205, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 203, "column": 4 }, "end": { "line": 205, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 203 - }, - "32": { - "loc": { "start": { "line": 203, "column": 8 }, "end": { "line": 203, "column": 41 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 203, "column": 8 }, "end": { "line": 203, "column": 28 } }, - { "start": { "line": 203, "column": 32 }, "end": { "line": 203, "column": 41 } } - ], - "line": 203 - }, - "33": { - "loc": { "start": { "line": 207, "column": 4 }, "end": { "line": 211, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 207, "column": 4 }, "end": { "line": 211, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 207 - }, - "34": { - "loc": { "start": { "line": 208, "column": 19 }, "end": { "line": 208, "column": 56 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 208, "column": 19 }, "end": { "line": 208, "column": 36 } }, - { "start": { "line": 208, "column": 40 }, "end": { "line": 208, "column": 56 } } - ], - "line": 208 - }, - "35": { - "loc": { "start": { "line": 210, "column": 6 }, "end": { "line": 210, "column": 75 } }, - "type": "if", - "locations": [ - { "start": { "line": 210, "column": 6 }, "end": { "line": 210, "column": 75 } }, - { "start": {}, "end": {} } - ], - "line": 210 - }, - "36": { - "loc": { "start": { "line": 210, "column": 41 }, "end": { "line": 210, "column": 75 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 210, "column": 54 }, "end": { "line": 210, "column": 64 } }, - { "start": { "line": 210, "column": 67 }, "end": { "line": 210, "column": 75 } } - ], - "line": 210 - }, - "37": { - "loc": { "start": { "line": 212, "column": 4 }, "end": { "line": 214, "column": 5 } }, - "type": "if", - "locations": [ - { "start": { "line": 212, "column": 4 }, "end": { "line": 214, "column": 5 } }, - { "start": {}, "end": {} } - ], - "line": 212 - }, - "38": { - "loc": { "start": { "line": 212, "column": 8 }, "end": { "line": 212, "column": 55 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 212, "column": 8 }, "end": { "line": 212, "column": 32 } }, - { "start": { "line": 212, "column": 36 }, "end": { "line": 212, "column": 55 } } - ], - "line": 212 - }, - "39": { - "loc": { "start": { "line": 216, "column": 4 }, "end": { "line": 217, "column": 77 } }, - "type": "if", - "locations": [ - { "start": { "line": 216, "column": 4 }, "end": { "line": 217, "column": 77 } }, - { "start": {}, "end": {} } - ], - "line": 216 - } - }, - "s": { - "0": 3, - "1": 68, - "2": 68, - "3": 68, - "4": 68, - "5": 68, - "6": 68, - "7": 68, - "8": 68, - "9": 68, - "10": 36, - "11": 68, - "12": 68, - "13": 68, - "14": 68, - "15": 0, - "16": 0, - "17": 0, - "18": 0, - "19": 0, - "20": 68, - "21": 33, - "22": 33, - "23": 33, - "24": 33, - "25": 33, - "26": 33, - "27": 33, - "28": 33, - "29": 0, - "30": 68, - "31": 59, - "32": 59, - "33": 59, - "34": 59, - "35": 59, - "36": 0, - "37": 59, - "38": 59, - "39": 59, - "40": 59, - "41": 59, - "42": 68, - "43": 33, - "44": 33, - "45": 33, - "46": 33, - "47": 33, - "48": 33, - "49": 33, - "50": 33, - "51": 0, - "52": 33, - "53": 33, - "54": 33, - "55": 33, - "56": 33, - "57": 33, - "58": 33, - "59": 33, - "60": 33, - "61": 33, - "62": 33, - "63": 33, - "64": 2, - "65": 33, - "66": 36, - "67": 36, - "68": 36, - "69": 36, - "70": 33, - "71": 33, - "72": 33, - "73": 33, - "74": 35, - "75": 35, - "76": 28, - "77": 28, - "78": 28, - "79": 35, - "80": 35, - "81": 35, - "82": 35, - "83": 35, - "84": 28, - "85": 35, - "86": 35, - "87": 68, - "88": 68, - "89": 68, - "90": 68, - "91": 0, - "92": 68, - "93": 68, - "94": 68, - "95": 68, - "96": 68, - "97": 6, - "98": 6, - "99": 6, - "100": 6, - "101": 6, - "102": 1, - "103": 6, - "104": 3, - "105": 3, - "106": 3, - "107": 3, - "108": 1, - "109": 68, - "110": 10, - "111": 1, - "112": 10, - "113": 2, - "114": 2, - "115": 2, - "116": 1, - "117": 10, - "118": 6, - "119": 10, - "120": 5, - "121": 5, - "122": 68 - }, - "f": { "0": 68, "1": 0, "2": 0, "3": 0, "4": 0, "5": 2, "6": 36, "7": 0, "8": 6, "9": 10, "10": 5 }, - "b": { - "0": [32], - "1": [68, 67], - "2": [68, 48], - "3": [24, 44], - "4": [36, 32], - "5": [0, 0], - "6": [0, 0], - "7": [33, 35], - "8": [12, 21], - "9": [59, 9], - "10": [68, 68], - "11": [2, 57], - "12": [2, 57], - "13": [33, 35], - "14": [1, 32], - "15": [1, 32], - "16": [1, 32], - "17": [30, 3], - "18": [1, 32], - "19": [1, 32], - "20": [28, 7], - "21": [28, 7], - "22": [28, 7], - "23": [6, 0], - "24": [2, 4], - "25": [6, 6, 6], - "26": [1, 5], - "27": [3, 3], - "28": [1, 2], - "29": [3, 3, 3], - "30": [1, 2], - "31": [1, 9], - "32": [10, 2], - "33": [2, 8], - "34": [2, 0], - "35": [1, 1], - "36": [1, 0], - "37": [6, 4], - "38": [10, 6], - "39": [5, 5] - }, - "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", - "hash": "2c2a43e613bbe1891b3499dc7d7acf6a58b3d456" - }, - "/workspace/json-viewer/src/renderer/toolbar.js": { - "path": "/workspace/json-viewer/src/renderer/toolbar.js", - "statementMap": { - "0": { "start": { "line": 1, "column": 16 }, "end": { "line": 123, "column": 1 } }, - "1": { "start": { "line": 8, "column": 2 }, "end": { "line": 8, "column": 27 } }, - "2": { "start": { "line": 9, "column": 2 }, "end": { "line": 9, "column": 61 } }, - "3": { "start": { "line": 10, "column": 2 }, "end": { "line": 10, "column": 40 } }, - "4": { "start": { "line": 11, "column": 2 }, "end": { "line": 11, "column": 25 } }, - "5": { "start": { "line": 15, "column": 18 }, "end": { "line": 15, "column": 47 } }, - "6": { "start": { "line": 16, "column": 2 }, "end": { "line": 16, "column": 31 } }, - "7": { "start": { "line": 19, "column": 18 }, "end": { "line": 19, "column": 47 } }, - "8": { "start": { "line": 20, "column": 2 }, "end": { "line": 20, "column": 31 } }, - "9": { "start": { "line": 21, "column": 2 }, "end": { "line": 21, "column": 30 } }, - "10": { "start": { "line": 24, "column": 24 }, "end": { "line": 24, "column": 53 } }, - "11": { "start": { "line": 25, "column": 2 }, "end": { "line": 25, "column": 44 } }, - "12": { "start": { "line": 26, "column": 2 }, "end": { "line": 26, "column": 36 } }, - "13": { "start": { "line": 29, "column": 29 }, "end": { "line": 29, "column": 58 } }, - "14": { "start": { "line": 30, "column": 2 }, "end": { "line": 30, "column": 57 } }, - "15": { "start": { "line": 31, "column": 2 }, "end": { "line": 31, "column": 41 } }, - "16": { "start": { "line": 32, "column": 22 }, "end": { "line": 32, "column": 52 } }, - "17": { "start": { "line": 33, "column": 2 }, "end": { "line": 33, "column": 40 } }, - "18": { "start": { "line": 34, "column": 2 }, "end": { "line": 34, "column": 51 } }, - "19": { "start": { "line": 34, "column": 37 }, "end": { "line": 34, "column": 51 } }, - "20": { "start": { "line": 35, "column": 2 }, "end": { "line": 35, "column": 45 } }, - "21": { "start": { "line": 38, "column": 28 }, "end": { "line": 38, "column": 57 } }, - "22": { "start": { "line": 39, "column": 2 }, "end": { "line": 39, "column": 56 } }, - "23": { "start": { "line": 40, "column": 2 }, "end": { "line": 40, "column": 40 } }, - "24": { "start": { "line": 41, "column": 21 }, "end": { "line": 41, "column": 51 } }, - "25": { "start": { "line": 42, "column": 2 }, "end": { "line": 42, "column": 36 } }, - "26": { "start": { "line": 43, "column": 2 }, "end": { "line": 43, "column": 43 } }, - "27": { "start": { "line": 44, "column": 2 }, "end": { "line": 47, "column": 3 } }, - "28": { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 63 } }, - "29": { "start": { "line": 45, "column": 45 }, "end": { "line": 45, "column": 63 } }, - "30": { "start": { "line": 46, "column": 4 }, "end": { "line": 46, "column": 41 } }, - "31": { "start": { "line": 50, "column": 30 }, "end": { "line": 50, "column": 59 } }, - "32": { "start": { "line": 51, "column": 2 }, "end": { "line": 51, "column": 58 } }, - "33": { "start": { "line": 52, "column": 2 }, "end": { "line": 52, "column": 42 } }, - "34": { "start": { "line": 54, "column": 23 }, "end": { "line": 54, "column": 53 } }, - "35": { "start": { "line": 55, "column": 2 }, "end": { "line": 55, "column": 39 } }, - "36": { "start": { "line": 56, "column": 2 }, "end": { "line": 56, "column": 47 } }, - "37": { "start": { "line": 57, "column": 2 }, "end": { "line": 61, "column": 3 } }, - "38": { "start": { "line": 58, "column": 4 }, "end": { "line": 58, "column": 80 } }, - "39": { "start": { "line": 58, "column": 45 }, "end": { "line": 58, "column": 80 } }, - "40": { "start": { "line": 59, "column": 4 }, "end": { "line": 59, "column": 45 } }, - "41": { "start": { "line": 59, "column": 27 }, "end": { "line": 59, "column": 45 } }, - "42": { "start": { "line": 60, "column": 4 }, "end": { "line": 60, "column": 41 } }, - "43": { "start": { "line": 64, "column": 28 }, "end": { "line": 64, "column": 57 } }, - "44": { "start": { "line": 65, "column": 2 }, "end": { "line": 65, "column": 56 } }, - "45": { "start": { "line": 66, "column": 2 }, "end": { "line": 66, "column": 40 } }, - "46": { "start": { "line": 67, "column": 21 }, "end": { "line": 67, "column": 51 } }, - "47": { "start": { "line": 68, "column": 2 }, "end": { "line": 68, "column": 38 } }, - "48": { "start": { "line": 69, "column": 2 }, "end": { "line": 72, "column": 3 } }, - "49": { "start": { "line": 70, "column": 4 }, "end": { "line": 70, "column": 20 } }, - "50": { "start": { "line": 71, "column": 4 }, "end": { "line": 71, "column": 37 } }, - "51": { "start": { "line": 73, "column": 2 }, "end": { "line": 73, "column": 43 } }, - "52": { "start": { "line": 76, "column": 29 }, "end": { "line": 76, "column": 58 } }, - "53": { "start": { "line": 77, "column": 2 }, "end": { "line": 77, "column": 57 } }, - "54": { "start": { "line": 78, "column": 2 }, "end": { "line": 78, "column": 41 } }, - "55": { "start": { "line": 79, "column": 22 }, "end": { "line": 79, "column": 52 } }, - "56": { "start": { "line": 80, "column": 2 }, "end": { "line": 80, "column": 40 } }, - "57": { "start": { "line": 81, "column": 2 }, "end": { "line": 84, "column": 3 } }, - "58": { "start": { "line": 82, "column": 4 }, "end": { "line": 82, "column": 20 } }, - "59": { "start": { "line": 83, "column": 4 }, "end": { "line": 83, "column": 37 } }, - "60": { "start": { "line": 85, "column": 2 }, "end": { "line": 85, "column": 45 } }, - "61": { "start": { "line": 88, "column": 26 }, "end": { "line": 88, "column": 55 } }, - "62": { "start": { "line": 89, "column": 2 }, "end": { "line": 89, "column": 54 } }, - "63": { "start": { "line": 90, "column": 2 }, "end": { "line": 90, "column": 38 } }, - "64": { "start": { "line": 91, "column": 19 }, "end": { "line": 91, "column": 49 } }, - "65": { "start": { "line": 92, "column": 2 }, "end": { "line": 92, "column": 70 } }, - "66": { "start": { "line": 93, "column": 2 }, "end": { "line": 99, "column": 3 } }, - "67": { "start": { "line": 94, "column": 4 }, "end": { "line": 94, "column": 39 } }, - "68": { "start": { "line": 95, "column": 4 }, "end": { "line": 95, "column": 40 } }, - "69": { "start": { "line": 96, "column": 4 }, "end": { "line": 98, "column": 6 } }, - "70": { "start": { "line": 100, "column": 2 }, "end": { "line": 100, "column": 39 } }, - "71": { "start": { "line": 103, "column": 21 }, "end": { "line": 103, "column": 51 } }, - "72": { "start": { "line": 104, "column": 2 }, "end": { "line": 104, "column": 38 } }, - "73": { "start": { "line": 105, "column": 2 }, "end": { "line": 105, "column": 39 } }, - "74": { "start": { "line": 106, "column": 2 }, "end": { "line": 106, "column": 47 } }, - "75": { "start": { "line": 107, "column": 2 }, "end": { "line": 107, "column": 40 } }, - "76": { "start": { "line": 108, "column": 2 }, "end": { "line": 108, "column": 36 } }, - "77": { "start": { "line": 109, "column": 2 }, "end": { "line": 111, "column": 3 } }, - "78": { "start": { "line": 110, "column": 4 }, "end": { "line": 110, "column": 28 } }, - "79": { "start": { "line": 112, "column": 2 }, "end": { "line": 112, "column": 40 } }, - "80": { "start": { "line": 114, "column": 2 }, "end": { "line": 120, "column": 3 } }, - "81": { "start": { "line": 115, "column": 4 }, "end": { "line": 115, "column": 21 } }, - "82": { "start": { "line": 116, "column": 4 }, "end": { "line": 116, "column": 19 } }, - "83": { "start": { "line": 117, "column": 4 }, "end": { "line": 117, "column": 43 } }, - "84": { "start": { "line": 117, "column": 21 }, "end": { "line": 117, "column": 43 } }, - "85": { "start": { "line": 118, "column": 4 }, "end": { "line": 118, "column": 40 } }, - "86": { "start": { "line": 119, "column": 4 }, "end": { "line": 119, "column": 16 } }, - "87": { "start": { "line": 122, "column": 2 }, "end": { "line": 122, "column": 24 } } - }, - "fnMap": { - "0": { - "name": "(anonymous_0)", - "decl": { "start": { "line": 1, "column": 16 }, "end": { "line": 1, "column": 17 } }, - "loc": { "start": { "line": 7, "column": 3 }, "end": { "line": 123, "column": 1 } }, - "line": 7 - }, - "1": { - "name": "(anonymous_1)", - "decl": { "start": { "line": 34, "column": 31 }, "end": { "line": 34, "column": 32 } }, - "loc": { "start": { "line": 34, "column": 37 }, "end": { "line": 34, "column": 51 } }, - "line": 34 - }, - "2": { - "name": "(anonymous_2)", - "decl": { "start": { "line": 44, "column": 30 }, "end": { "line": 44, "column": 31 } }, - "loc": { "start": { "line": 44, "column": 36 }, "end": { "line": 47, "column": 3 } }, - "line": 44 - }, - "3": { - "name": "(anonymous_3)", - "decl": { "start": { "line": 57, "column": 32 }, "end": { "line": 57, "column": 33 } }, - "loc": { "start": { "line": 57, "column": 38 }, "end": { "line": 61, "column": 3 } }, - "line": 57 - }, - "4": { - "name": "(anonymous_4)", - "decl": { "start": { "line": 69, "column": 30 }, "end": { "line": 69, "column": 31 } }, - "loc": { "start": { "line": 69, "column": 36 }, "end": { "line": 72, "column": 3 } }, - "line": 69 - }, - "5": { - "name": "(anonymous_5)", - "decl": { "start": { "line": 81, "column": 31 }, "end": { "line": 81, "column": 32 } }, - "loc": { "start": { "line": 81, "column": 37 }, "end": { "line": 84, "column": 3 } }, - "line": 81 - }, - "6": { - "name": "(anonymous_6)", - "decl": { "start": { "line": 93, "column": 28 }, "end": { "line": 93, "column": 29 } }, - "loc": { "start": { "line": 93, "column": 34 }, "end": { "line": 99, "column": 3 } }, - "line": 93 - }, - "7": { - "name": "(anonymous_7)", - "decl": { "start": { "line": 109, "column": 24 }, "end": { "line": 109, "column": 25 } }, - "loc": { "start": { "line": 109, "column": 31 }, "end": { "line": 111, "column": 3 } }, - "line": 109 - }, - "8": { - "name": "(anonymous_8)", - "decl": { "start": { "line": 114, "column": 17 }, "end": { "line": 114, "column": 18 } }, - "loc": { "start": { "line": 114, "column": 23 }, "end": { "line": 120, "column": 3 } }, - "line": 114 - } - }, - "branchMap": { - "0": { - "loc": { "start": { "line": 8, "column": 16 }, "end": { "line": 8, "column": 27 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 8, "column": 16 }, "end": { "line": 8, "column": 22 } }, - { "start": { "line": 8, "column": 26 }, "end": { "line": 8, "column": 27 } } - ], - "line": 8 - }, - "1": { - "loc": { "start": { "line": 9, "column": 18 }, "end": { "line": 9, "column": 61 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 9, "column": 49 }, "end": { "line": 9, "column": 57 } }, - { "start": { "line": 9, "column": 60 }, "end": { "line": 9, "column": 61 } } - ], - "line": 9 - }, - "2": { - "loc": { "start": { "line": 10, "column": 21 }, "end": { "line": 10, "column": 40 } }, - "type": "binary-expr", - "locations": [ - { "start": { "line": 10, "column": 21 }, "end": { "line": 10, "column": 32 } }, - { "start": { "line": 10, "column": 36 }, "end": { "line": 10, "column": 40 } } - ], - "line": 10 - }, - "3": { - "loc": { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 63 } }, - "type": "if", - "locations": [ - { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 63 } }, - { "start": {}, "end": {} } - ], - "line": 45 - }, - "4": { - "loc": { "start": { "line": 58, "column": 4 }, "end": { "line": 58, "column": 80 } }, - "type": "if", - "locations": [ - { "start": { "line": 58, "column": 4 }, "end": { "line": 58, "column": 80 } }, - { "start": {}, "end": {} } - ], - "line": 58 - }, - "5": { - "loc": { "start": { "line": 59, "column": 4 }, "end": { "line": 59, "column": 45 } }, - "type": "if", - "locations": [ - { "start": { "line": 59, "column": 4 }, "end": { "line": 59, "column": 45 } }, - { "start": {}, "end": {} } - ], - "line": 59 - }, - "6": { - "loc": { "start": { "line": 92, "column": 36 }, "end": { "line": 92, "column": 68 } }, - "type": "cond-expr", - "locations": [ - { "start": { "line": 92, "column": 55 }, "end": { "line": 92, "column": 63 } }, - { "start": { "line": 92, "column": 66 }, "end": { "line": 92, "column": 68 } } - ], - "line": 92 - }, - "7": { - "loc": { "start": { "line": 117, "column": 4 }, "end": { "line": 117, "column": 43 } }, - "type": "if", - "locations": [ - { "start": { "line": 117, "column": 4 }, "end": { "line": 117, "column": 43 } }, - { "start": {}, "end": {} } - ], - "line": 117 - } - }, - "s": { - "0": 3, - "1": 18, - "2": 18, - "3": 18, - "4": 18, - "5": 18, - "6": 18, - "7": 18, - "8": 18, - "9": 18, - "10": 18, - "11": 18, - "12": 18, - "13": 18, - "14": 18, - "15": 18, - "16": 18, - "17": 18, - "18": 18, - "19": 1, - "20": 18, - "21": 18, - "22": 18, - "23": 18, - "24": 18, - "25": 18, - "26": 18, - "27": 18, - "28": 1, - "29": 1, - "30": 1, - "31": 18, - "32": 18, - "33": 18, - "34": 18, - "35": 18, - "36": 18, - "37": 18, - "38": 1, - "39": 0, - "40": 1, - "41": 1, - "42": 1, - "43": 18, - "44": 18, - "45": 18, - "46": 18, - "47": 18, - "48": 18, - "49": 1, - "50": 1, - "51": 18, - "52": 18, - "53": 18, - "54": 18, - "55": 18, - "56": 18, - "57": 18, - "58": 1, - "59": 1, - "60": 18, - "61": 18, - "62": 18, - "63": 18, - "64": 18, - "65": 18, - "66": 18, - "67": 3, - "68": 3, - "69": 3, - "70": 18, - "71": 18, - "72": 18, - "73": 18, - "74": 18, - "75": 18, - "76": 18, - "77": 18, - "78": 1, - "79": 18, - "80": 18, - "81": 1, - "82": 1, - "83": 1, - "84": 1, - "85": 1, - "86": 1, - "87": 18 - }, - "f": { "0": 18, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 3, "7": 1, "8": 1 }, - "b": { - "0": [18, 16], - "1": [2, 16], - "2": [18, 17], - "3": [1, 0], - "4": [0, 1], - "5": [1, 0], - "6": [18, 0], - "7": [1, 0] - }, - "_coverageSchema": "1a1c01bbd47fc00a2c39e90264f33305004495a9", - "hash": "ad33794d826a644f8b50393052207b9f722ec113" - } -} diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css deleted file mode 100644 index f418035..0000000 --- a/coverage/lcov-report/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js deleted file mode 100644 index b221675..0000000 --- a/coverage/lcov-report/block-navigation.js +++ /dev/null @@ -1,75 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = [".cbranch-no", ".cstat-no", ".fstat-no"] - - // Elements to highlight in the file listing view - var fileListingElements = ["td.pct.low"] - - // We don't want to select elements that are direct descendants of another match - var notSelector = ":not(" + missingCoverageClasses.join("):not(") + ") > " // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = fileListingElements.join(", ") + ", " + notSelector + missingCoverageClasses.join(", " + notSelector) // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector) - - var currentIndex - - function toggleClass(index) { - missingCoverageElements.item(currentIndex).classList.remove("highlighted") - missingCoverageElements.item(index).classList.add("highlighted") - } - - function makeCurrent(index) { - toggleClass(index) - currentIndex = index - missingCoverageElements.item(index).scrollIntoView({ - behavior: "smooth", - block: "center", - inline: "center", - }) - } - - function goToPrevious() { - var nextIndex = 0 - if (typeof currentIndex !== "number" || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1 - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1 - } - - makeCurrent(nextIndex) - } - - function goToNext() { - var nextIndex = 0 - - if (typeof currentIndex === "number" && currentIndex < missingCoverageElements.length - 1) { - nextIndex = currentIndex + 1 - } - - makeCurrent(nextIndex) - } - - return function jump(event) { - if (document.getElementById("fileSearch") === document.activeElement && document.activeElement != null) { - // if we're currently focused on the search input, we don't want to navigate - return - } - - switch (event.which) { - case 78: // n - case 74: // j - goToNext() - break - case 66: // b - case 75: // k - case 80: // p - goToPrevious() - break - } - } -})() -window.addEventListener("keydown", jumpToCode) diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png deleted file mode 100644 index c1525b811a167671e9de1fa78aab9f5c0b61cef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> - - - - Code coverage report for All files - - - - - - - - - -
-
-

All files

-
- -
- 88.53% - Statements - 386/436 -
- - -
- 85.53% - Branches - 207/242 -
- - -
- 73.33% - Functions - 44/60 -
- - -
- 90.2% - Lines - 359/398 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
src -
-
80.98%132/16384.44%76/9074.28%26/3580.98%115/142
src/renderer -
-
93.04%254/27386.18%131/15272%18/2595.31%244/256
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js deleted file mode 100644 index a928be1..0000000 --- a/coverage/lcov-report/prettify.js +++ /dev/null @@ -1,896 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION = true -;(function () { - var h = ["break,continue,do,else,for,if,return,while"] - var u = [ - h, - "auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile", - ] - var p = [u, "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"] - var l = [ - p, - "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where", - ] - var x = [ - p, - "abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient", - ] - var R = [ - x, - "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var", - ] - var r = - "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes" - var w = [p, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"] - var s = - "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END" - var I = [ - h, - "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None", - ] - var f = [ - h, - "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END", - ] - var H = [h, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"] - var A = [l, R, w, s + I, f, H] - var e = - /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/ - var C = "str" - var z = "kwd" - var j = "com" - var O = "typ" - var G = "lit" - var L = "pun" - var F = "pln" - var m = "tag" - var E = "dec" - var J = "src" - var P = "atn" - var n = "atv" - var N = "nocode" - var M = - "(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*" - function k(Z) { - var ad = 0 - var S = false - var ac = false - for (var V = 0, U = Z.length; V < U; ++V) { - var ae = Z[V] - if (ae.ignoreCase) { - ac = true - } else { - if (/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ""))) { - S = true - ac = false - break - } - } - } - var Y = { b: 8, t: 9, n: 10, v: 11, f: 12, r: 13 } - function ab(ah) { - var ag = ah.charCodeAt(0) - if (ag !== 92) { - return ag - } - var af = ah.charAt(1) - ag = Y[af] - if (ag) { - return ag - } else { - if ("0" <= af && af <= "7") { - return parseInt(ah.substring(1), 8) - } else { - if (af === "u" || af === "x") { - return parseInt(ah.substring(2), 16) - } else { - return ah.charCodeAt(1) - } - } - } - } - function T(af) { - if (af < 32) { - return (af < 16 ? "\\x0" : "\\x") + af.toString(16) - } - var ag = String.fromCharCode(af) - if (ag === "\\" || ag === "-" || ag === "[" || ag === "]") { - ag = "\\" + ag - } - return ag - } - function X(am) { - var aq = am - .substring(1, am.length - 1) - .match( - new RegExp( - "\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]", - "g" - ) - ) - var ak = [] - var af = [] - var ao = aq[0] === "^" - for (var ar = ao ? 1 : 0, aj = aq.length; ar < aj; ++ar) { - var ah = aq[ar] - if (/\\[bdsw]/i.test(ah)) { - ak.push(ah) - } else { - var ag = ab(ah) - var al - if (ar + 2 < aj && "-" === aq[ar + 1]) { - al = ab(aq[ar + 2]) - ar += 2 - } else { - al = ag - } - af.push([ag, al]) - if (!(al < 65 || ag > 122)) { - if (!(al < 65 || ag > 90)) { - af.push([Math.max(65, ag) | 32, Math.min(al, 90) | 32]) - } - if (!(al < 97 || ag > 122)) { - af.push([Math.max(97, ag) & ~32, Math.min(al, 122) & ~32]) - } - } - } - } - af.sort(function (av, au) { - return av[0] - au[0] || au[1] - av[1] - }) - var ai = [] - var ap = [NaN, NaN] - for (var ar = 0; ar < af.length; ++ar) { - var at = af[ar] - if (at[0] <= ap[1] + 1) { - ap[1] = Math.max(ap[1], at[1]) - } else { - ai.push((ap = at)) - } - } - var an = ["["] - if (ao) { - an.push("^") - } - an.push.apply(an, ak) - for (var ar = 0; ar < ai.length; ++ar) { - var at = ai[ar] - an.push(T(at[0])) - if (at[1] > at[0]) { - if (at[1] + 1 > at[0]) { - an.push("-") - } - an.push(T(at[1])) - } - } - an.push("]") - return an.join("") - } - function W(al) { - var aj = al.source.match( - new RegExp( - "(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)", - "g" - ) - ) - var ah = aj.length - var an = [] - for (var ak = 0, am = 0; ak < ah; ++ak) { - var ag = aj[ak] - if (ag === "(") { - ++am - } else { - if ("\\" === ag.charAt(0)) { - var af = +ag.substring(1) - if (af && af <= am) { - an[af] = -1 - } - } - } - } - for (var ak = 1; ak < an.length; ++ak) { - if (-1 === an[ak]) { - an[ak] = ++ad - } - } - for (var ak = 0, am = 0; ak < ah; ++ak) { - var ag = aj[ak] - if (ag === "(") { - ++am - if (an[am] === undefined) { - aj[ak] = "(?:" - } - } else { - if ("\\" === ag.charAt(0)) { - var af = +ag.substring(1) - if (af && af <= am) { - aj[ak] = "\\" + an[am] - } - } - } - } - for (var ak = 0, am = 0; ak < ah; ++ak) { - if ("^" === aj[ak] && "^" !== aj[ak + 1]) { - aj[ak] = "" - } - } - if (al.ignoreCase && S) { - for (var ak = 0; ak < ah; ++ak) { - var ag = aj[ak] - var ai = ag.charAt(0) - if (ag.length >= 2 && ai === "[") { - aj[ak] = X(ag) - } else { - if (ai !== "\\") { - aj[ak] = ag.replace(/[a-zA-Z]/g, function (ao) { - var ap = ao.charCodeAt(0) - return "[" + String.fromCharCode(ap & ~32, ap | 32) + "]" - }) - } - } - } - } - return aj.join("") - } - var aa = [] - for (var V = 0, U = Z.length; V < U; ++V) { - var ae = Z[V] - if (ae.global || ae.multiline) { - throw new Error("" + ae) - } - aa.push("(?:" + W(ae) + ")") - } - return new RegExp(aa.join("|"), ac ? "gi" : "g") - } - function a(V) { - var U = /(?:^|\s)nocode(?:\s|$)/ - var X = [] - var T = 0 - var Z = [] - var W = 0 - var S - if (V.currentStyle) { - S = V.currentStyle.whiteSpace - } else { - if (window.getComputedStyle) { - S = document.defaultView.getComputedStyle(V, null).getPropertyValue("white-space") - } - } - var Y = S && "pre" === S.substring(0, 3) - function aa(ab) { - switch (ab.nodeType) { - case 1: - if (U.test(ab.className)) { - return - } - for (var ae = ab.firstChild; ae; ae = ae.nextSibling) { - aa(ae) - } - var ad = ab.nodeName - if ("BR" === ad || "LI" === ad) { - X[W] = "\n" - Z[W << 1] = T++ - Z[(W++ << 1) | 1] = ab - } - break - case 3: - case 4: - var ac = ab.nodeValue - if (ac.length) { - if (!Y) { - ac = ac.replace(/[ \t\r\n]+/g, " ") - } else { - ac = ac.replace(/\r\n?/g, "\n") - } - X[W] = ac - Z[W << 1] = T - T += ac.length - Z[(W++ << 1) | 1] = ab - } - break - } - } - aa(V) - return { sourceCode: X.join("").replace(/\n$/, ""), spans: Z } - } - function B(S, U, W, T) { - if (!U) { - return - } - var V = { sourceCode: U, basePos: S } - W(V) - T.push.apply(T, V.decorations) - } - var v = /\S/ - function o(S) { - var V = undefined - for (var U = S.firstChild; U; U = U.nextSibling) { - var T = U.nodeType - V = T === 1 ? (V ? S : U) : T === 3 ? (v.test(U.nodeValue) ? S : V) : V - } - return V === S ? undefined : V - } - function g(U, T) { - var S = {} - var V - ;(function () { - var ad = U.concat(T) - var ah = [] - var ag = {} - for (var ab = 0, Z = ad.length; ab < Z; ++ab) { - var Y = ad[ab] - var ac = Y[3] - if (ac) { - for (var ae = ac.length; --ae >= 0; ) { - S[ac.charAt(ae)] = Y - } - } - var af = Y[1] - var aa = "" + af - if (!ag.hasOwnProperty(aa)) { - ah.push(af) - ag[aa] = null - } - } - ah.push(/[\0-\uffff]/) - V = k(ah) - })() - var X = T.length - var W = function (ah) { - var Z = ah.sourceCode, - Y = ah.basePos - var ad = [Y, F] - var af = 0 - var an = Z.match(V) || [] - var aj = {} - for (var ae = 0, aq = an.length; ae < aq; ++ae) { - var ag = an[ae] - var ap = aj[ag] - var ai = void 0 - var am - if (typeof ap === "string") { - am = false - } else { - var aa = S[ag.charAt(0)] - if (aa) { - ai = ag.match(aa[1]) - ap = aa[0] - } else { - for (var ao = 0; ao < X; ++ao) { - aa = T[ao] - ai = ag.match(aa[1]) - if (ai) { - ap = aa[0] - break - } - } - if (!ai) { - ap = F - } - } - am = ap.length >= 5 && "lang-" === ap.substring(0, 5) - if (am && !(ai && typeof ai[1] === "string")) { - am = false - ap = J - } - if (!am) { - aj[ag] = ap - } - } - var ab = af - af += ag.length - if (!am) { - ad.push(Y + ab, ap) - } else { - var al = ai[1] - var ak = ag.indexOf(al) - var ac = ak + al.length - if (ai[2]) { - ac = ag.length - ai[2].length - ak = ac - al.length - } - var ar = ap.substring(5) - B(Y + ab, ag.substring(0, ak), W, ad) - B(Y + ab + ak, al, q(ar, al), ad) - B(Y + ab + ac, ag.substring(ac), W, ad) - } - } - ah.decorations = ad - } - return W - } - function i(T) { - var W = [], - S = [] - if (T.tripleQuotedStrings) { - W.push([ - C, - /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, - null, - "'\"", - ]) - } else { - if (T.multiLineStrings) { - W.push([ - C, - /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, - null, - "'\"`", - ]) - } else { - W.push([C, /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, null, "\"'"]) - } - } - if (T.verbatimStrings) { - S.push([C, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]) - } - var Y = T.hashComments - if (Y) { - if (T.cStyleComments) { - if (Y > 1) { - W.push([j, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, "#"]) - } else { - W.push([ - j, - /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, - null, - "#", - ]) - } - S.push([C, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, null]) - } else { - W.push([j, /^#[^\r\n]*/, null, "#"]) - } - } - if (T.cStyleComments) { - S.push([j, /^\/\/[^\r\n]*/, null]) - S.push([j, /^\/\*[\s\S]*?(?:\*\/|$)/, null]) - } - if (T.regexLiterals) { - var X = "/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/" - S.push(["lang-regex", new RegExp("^" + M + "(" + X + ")")]) - } - var V = T.types - if (V) { - S.push([O, V]) - } - var U = ("" + T.keywords).replace(/^ | $/g, "") - if (U.length) { - S.push([z, new RegExp("^(?:" + U.replace(/[\s,]+/g, "|") + ")\\b"), null]) - } - W.push([F, /^\s+/, null, " \r\n\t\xA0"]) - S.push( - [G, /^@[a-z_$][a-z_$@0-9]*/i, null], - [O, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], - [F, /^[a-z_$][a-z_$@0-9]*/i, null], - [ - G, - new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*", "i"), - null, - "0123456789", - ], - [F, /^\\[\s\S]?/, null], - [L, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null] - ) - return g(W, S) - } - var K = i({ keywords: A, hashComments: true, cStyleComments: true, multiLineStrings: true, regexLiterals: true }) - function Q(V, ag) { - var U = /(?:^|\s)nocode(?:\s|$)/ - var ab = /\r\n?|\n/ - var ac = V.ownerDocument - var S - if (V.currentStyle) { - S = V.currentStyle.whiteSpace - } else { - if (window.getComputedStyle) { - S = ac.defaultView.getComputedStyle(V, null).getPropertyValue("white-space") - } - } - var Z = S && "pre" === S.substring(0, 3) - var af = ac.createElement("LI") - while (V.firstChild) { - af.appendChild(V.firstChild) - } - var W = [af] - function ae(al) { - switch (al.nodeType) { - case 1: - if (U.test(al.className)) { - break - } - if ("BR" === al.nodeName) { - ad(al) - if (al.parentNode) { - al.parentNode.removeChild(al) - } - } else { - for (var an = al.firstChild; an; an = an.nextSibling) { - ae(an) - } - } - break - case 3: - case 4: - if (Z) { - var am = al.nodeValue - var aj = am.match(ab) - if (aj) { - var ai = am.substring(0, aj.index) - al.nodeValue = ai - var ah = am.substring(aj.index + aj[0].length) - if (ah) { - var ak = al.parentNode - ak.insertBefore(ac.createTextNode(ah), al.nextSibling) - } - ad(al) - if (!ai) { - al.parentNode.removeChild(al) - } - } - } - break - } - } - function ad(ak) { - while (!ak.nextSibling) { - ak = ak.parentNode - if (!ak) { - return - } - } - function ai(al, ar) { - var aq = ar ? al.cloneNode(false) : al - var ao = al.parentNode - if (ao) { - var ap = ai(ao, 1) - var an = al.nextSibling - ap.appendChild(aq) - for (var am = an; am; am = an) { - an = am.nextSibling - ap.appendChild(am) - } - } - return aq - } - var ah = ai(ak.nextSibling, 0) - for (var aj; (aj = ah.parentNode) && aj.nodeType === 1; ) { - ah = aj - } - W.push(ah) - } - for (var Y = 0; Y < W.length; ++Y) { - ae(W[Y]) - } - if (ag === (ag | 0)) { - W[0].setAttribute("value", ag) - } - var aa = ac.createElement("OL") - aa.className = "linenums" - var X = Math.max(0, (ag - 1) | 0) || 0 - for (var Y = 0, T = W.length; Y < T; ++Y) { - af = W[Y] - af.className = "L" + ((Y + X) % 10) - if (!af.firstChild) { - af.appendChild(ac.createTextNode("\xA0")) - } - aa.appendChild(af) - } - V.appendChild(aa) - } - function D(ac) { - var aj = /\bMSIE\b/.test(navigator.userAgent) - var am = /\n/g - var al = ac.sourceCode - var an = al.length - var V = 0 - var aa = ac.spans - var T = aa.length - var ah = 0 - var X = ac.decorations - var Y = X.length - var Z = 0 - X[Y] = an - var ar, aq - for (aq = ar = 0; aq < Y; ) { - if (X[aq] !== X[aq + 2]) { - X[ar++] = X[aq++] - X[ar++] = X[aq++] - } else { - aq += 2 - } - } - Y = ar - for (aq = ar = 0; aq < Y; ) { - var at = X[aq] - var ab = X[aq + 1] - var W = aq + 2 - while (W + 2 <= Y && X[W + 1] === ab) { - W += 2 - } - X[ar++] = at - X[ar++] = ab - aq = W - } - Y = X.length = ar - var ae = null - while (ah < T) { - var af = aa[ah] - var S = aa[ah + 2] || an - var ag = X[Z] - var ap = X[Z + 2] || an - var W = Math.min(S, ap) - var ak = aa[ah + 1] - var U - if (ak.nodeType !== 1 && (U = al.substring(V, W))) { - if (aj) { - U = U.replace(am, "\r") - } - ak.nodeValue = U - var ai = ak.ownerDocument - var ao = ai.createElement("SPAN") - ao.className = X[Z + 1] - var ad = ak.parentNode - ad.replaceChild(ao, ak) - ao.appendChild(ak) - if (V < S) { - aa[ah + 1] = ak = ai.createTextNode(al.substring(W, S)) - ad.insertBefore(ak, ao.nextSibling) - } - } - V = W - if (V >= S) { - ah += 2 - } - if (V >= ap) { - Z += 2 - } - } - } - var t = {} - function c(U, V) { - for (var S = V.length; --S >= 0; ) { - var T = V[S] - if (!t.hasOwnProperty(T)) { - t[T] = U - } else { - if (window.console) { - console.warn("cannot override language handler %s", T) - } - } - } - } - function q(T, S) { - if (!(T && t.hasOwnProperty(T))) { - T = /^\s*]*(?:>|$)/], - [j, /^<\!--[\s\S]*?(?:-\->|$)/], - ["lang-", /^<\?([\s\S]+?)(?:\?>|$)/], - ["lang-", /^<%([\s\S]+?)(?:%>|$)/], - [L, /^(?:<[%?]|[%?]>)/], - ["lang-", /^]*>([\s\S]+?)<\/xmp\b[^>]*>/i], - ["lang-js", /^]*>([\s\S]*?)(<\/script\b[^>]*>)/i], - ["lang-css", /^]*>([\s\S]*?)(<\/style\b[^>]*>)/i], - ["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i], - ] - ), - ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"] - ) - c( - g( - [ - [F, /^[\s]+/, null, " \t\r\n"], - [n, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, "\"'"], - ], - [ - [m, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], - [P, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], - ["lang-uq.val", /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], - [L, /^[=<>\/]+/], - ["lang-js", /^on\w+\s*=\s*\"([^\"]+)\"/i], - ["lang-js", /^on\w+\s*=\s*\'([^\']+)\'/i], - ["lang-js", /^on\w+\s*=\s*([^\"\'>\s]+)/i], - ["lang-css", /^style\s*=\s*\"([^\"]+)\"/i], - ["lang-css", /^style\s*=\s*\'([^\']+)\'/i], - ["lang-css", /^style\s*=\s*([^\"\'>\s]+)/i], - ] - ), - ["in.tag"] - ) - c(g([], [[n, /^[\s\S]+/]]), ["uq.val"]) - c(i({ keywords: l, hashComments: true, cStyleComments: true, types: e }), ["c", "cc", "cpp", "cxx", "cyc", "m"]) - c(i({ keywords: "null,true,false" }), ["json"]) - c(i({ keywords: R, hashComments: true, cStyleComments: true, verbatimStrings: true, types: e }), ["cs"]) - c(i({ keywords: x, cStyleComments: true }), ["java"]) - c(i({ keywords: H, hashComments: true, multiLineStrings: true }), ["bsh", "csh", "sh"]) - c(i({ keywords: I, hashComments: true, multiLineStrings: true, tripleQuotedStrings: true }), ["cv", "py"]) - c(i({ keywords: s, hashComments: true, multiLineStrings: true, regexLiterals: true }), ["perl", "pl", "pm"]) - c(i({ keywords: f, hashComments: true, multiLineStrings: true, regexLiterals: true }), ["rb"]) - c(i({ keywords: w, cStyleComments: true, regexLiterals: true }), ["js"]) - c( - i({ - keywords: r, - hashComments: 3, - cStyleComments: true, - multilineStrings: true, - tripleQuotedStrings: true, - regexLiterals: true, - }), - ["coffee"] - ) - c(g([], [[C, /^[\s\S]+/]]), ["regex"]) - function d(V) { - var U = V.langExtension - try { - var S = a(V.sourceNode) - var T = S.sourceCode - V.sourceCode = T - V.spans = S.spans - V.basePos = 0 - q(U, T)(V) - D(V) - } catch (W) { - if ("console" in window) { - console.log(W && W.stack ? W.stack : W) - } - } - } - function y(W, V, U) { - var S = document.createElement("PRE") - S.innerHTML = W - if (U) { - Q(S, U) - } - var T = { langExtension: V, numberLines: U, sourceNode: S } - d(T) - return S.innerHTML - } - function b(ad) { - function Y(af) { - return document.getElementsByTagName(af) - } - var ac = [Y("pre"), Y("code"), Y("xmp")] - var T = [] - for (var aa = 0; aa < ac.length; ++aa) { - for (var Z = 0, V = ac[aa].length; Z < V; ++Z) { - T.push(ac[aa][Z]) - } - } - ac = null - var W = Date - if (!W.now) { - W = { - now: function () { - return +new Date() - }, - } - } - var X = 0 - var S - var ab = /\blang(?:uage)?-([\w.]+)(?!\S)/ - var ae = /\bprettyprint\b/ - function U() { - var ag = window.PR_SHOULD_USE_CONTINUATION ? W.now() + 250 : Infinity - for (; X < T.length && W.now() < ag; X++) { - var aj = T[X] - var ai = aj.className - if (ai.indexOf("prettyprint") >= 0) { - var ah = ai.match(ab) - var am - if (!ah && (am = o(aj)) && "CODE" === am.tagName) { - ah = am.className.match(ab) - } - if (ah) { - ah = ah[1] - } - var al = false - for (var ak = aj.parentNode; ak; ak = ak.parentNode) { - if ( - (ak.tagName === "pre" || ak.tagName === "code" || ak.tagName === "xmp") && - ak.className && - ak.className.indexOf("prettyprint") >= 0 - ) { - al = true - break - } - } - if (!al) { - var af = aj.className.match(/\blinenums\b(?::(\d+))?/) - af = af ? (af[1] && af[1].length ? +af[1] : true) : false - if (af) { - Q(aj, af) - } - S = { langExtension: ah, sourceNode: aj, numberLines: af } - d(S) - } - } - } - if (X < T.length) { - setTimeout(U, 250) - } else { - if (ad) { - ad() - } - } - } - U() - } - window.prettyPrintOne = y - window.prettyPrint = b - window.PR = { - createSimpleLexer: g, - registerLangHandler: c, - sourceDecorator: i, - PR_ATTRIB_NAME: P, - PR_ATTRIB_VALUE: n, - PR_COMMENT: j, - PR_DECLARATION: E, - PR_KEYWORD: z, - PR_LITERAL: G, - PR_NOCODE: N, - PR_PLAIN: F, - PR_PUNCTUATION: L, - PR_SOURCE: J, - PR_STRING: C, - PR_TAG: m, - PR_TYPE: O, - } -})() -PR.registerLangHandler( - PR.createSimpleLexer( - [], - [ - [PR.PR_DECLARATION, /^]*(?:>|$)/], - [PR.PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/], - [PR.PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/], - ["lang-", /^<\?([\s\S]+?)(?:\?>|$)/], - ["lang-", /^<%([\s\S]+?)(?:%>|$)/], - ["lang-", /^]*>([\s\S]+?)<\/xmp\b[^>]*>/i], - [ - "lang-handlebars", - /^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i, - ], - ["lang-js", /^]*>([\s\S]*?)(<\/script\b[^>]*>)/i], - ["lang-css", /^]*>([\s\S]*?)(<\/style\b[^>]*>)/i], - ["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i], - [PR.PR_DECLARATION, /^{{[#^>/]?\s*[\w.][^}]*}}/], - [PR.PR_DECLARATION, /^{{&?\s*[\w.][^}]*}}/], - [PR.PR_DECLARATION, /^{{{>?\s*[\w.][^}]*}}}/], - [PR.PR_COMMENT, /^{{![^}]*}}/], - ] - ), - ["handlebars", "hbs"] -) -PR.registerLangHandler( - PR.createSimpleLexer( - [[PR.PR_PLAIN, /^[ \t\r\n\f]+/, null, " \t\r\n\f"]], - [ - [PR.PR_STRING, /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null], - [PR.PR_STRING, /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null], - ["lang-css-str", /^url\(([^\)\"\']*)\)/i], - [PR.PR_KEYWORD, /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i, null], - ["lang-css-kw", /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i], - [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//], - [PR.PR_COMMENT, /^(?:)/], - [PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i], - [PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}/i], - [PR.PR_PLAIN, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i], - [PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/], - ] - ), - ["css"] -) -PR.registerLangHandler( - PR.createSimpleLexer([], [[PR.PR_KEYWORD, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]), - ["css-kw"] -) -PR.registerLangHandler(PR.createSimpleLexer([], [[PR.PR_STRING, /^[^\)\"\']+/]]), ["css-str"]) diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 6ed68316eb3f65dec9063332d2f69bf3093bbfab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js deleted file mode 100644 index fdf7d02..0000000 --- a/coverage/lcov-report/sorter.js +++ /dev/null @@ -1,189 +0,0 @@ -/* eslint-disable */ -var addSorting = (function () { - "use strict" - var cols, - currentSort = { - index: 0, - desc: false, - } - - // returns the summary table element - function getTable() { - return document.querySelector(".coverage-summary") - } - // returns the thead element of the summary table - function getTableHeader() { - return getTable().querySelector("thead tr") - } - // returns the tbody element of the summary table - function getTableBody() { - return getTable().querySelector("tbody") - } - // returns the th element for nth column - function getNthColumn(n) { - return getTableHeader().querySelectorAll("th")[n] - } - - function onFilterInput() { - const searchValue = document.getElementById("fileSearch").value - const rows = document.getElementsByTagName("tbody")[0].children - for (let i = 0; i < rows.length; i++) { - const row = rows[i] - if (row.textContent.toLowerCase().includes(searchValue.toLowerCase())) { - row.style.display = "" - } else { - row.style.display = "none" - } - } - } - - // loads the search box - function addSearchBox() { - var template = document.getElementById("filterTemplate") - var templateClone = template.content.cloneNode(true) - templateClone.getElementById("fileSearch").oninput = onFilterInput - template.parentElement.appendChild(templateClone) - } - - // loads all columns - function loadColumns() { - var colNodes = getTableHeader().querySelectorAll("th"), - colNode, - cols = [], - col, - i - - for (i = 0; i < colNodes.length; i += 1) { - colNode = colNodes[i] - col = { - key: colNode.getAttribute("data-col"), - sortable: !colNode.getAttribute("data-nosort"), - type: colNode.getAttribute("data-type") || "string", - } - cols.push(col) - if (col.sortable) { - col.defaultDescSort = col.type === "number" - colNode.innerHTML = colNode.innerHTML + '' - } - } - return cols - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll("td"), - colNode, - col, - data = {}, - i, - val - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i] - col = cols[i] - val = colNode.getAttribute("data-value") - if (col.type === "number") { - val = Number(val) - } - data[col.key] = val - } - return data - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll("tr"), - i - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]) - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key] - b = b.data[key] - return a < b ? -1 : a > b ? 1 : 0 - }, - finalSorter = sorter, - tableBody = document.querySelector(".coverage-summary tbody"), - rowNodes = tableBody.querySelectorAll("tr"), - rows = [], - i - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b) - } - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]) - tableBody.removeChild(rowNodes[i]) - } - - rows.sort(finalSorter) - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]) - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className - - cls = cls.replace(/ sorted$/, "").replace(/ sorted-desc$/, "") - col.className = cls - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? " sorted-desc" : " sorted" - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i] - - return function () { - var desc = col.defaultDescSort - - if (currentSort.index === i) { - desc = !currentSort.desc - } - sortByIndex(i, desc) - removeSortIndicators() - currentSort.index = i - currentSort.desc = desc - addSortIndicators() - } - } - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector(".sorter").parentElement - if (el.addEventListener) { - el.addEventListener("click", ithSorter(i)) - } else { - el.attachEvent("onclick", ithSorter(i)) - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return - } - cols = loadColumns() - loadData() - addSearchBox() - addSortIndicators() - enableUI() - } -})() - -window.addEventListener("load", addSorting) diff --git a/coverage/lcov-report/src/component.js.html b/coverage/lcov-report/src/component.js.html deleted file mode 100644 index 104c46d..0000000 --- a/coverage/lcov-report/src/component.js.html +++ /dev/null @@ -1,742 +0,0 @@ - - - - - - Code coverage report for src/component.js - - - - - - - - - -
-
-

All files / src component.js

-
- -
- 60.86% - Statements - 42/69 -
- - -
- 55% - Branches - 11/20 -
- - -
- 59.09% - Functions - 13/22 -
- - -
- 63.07% - Lines - 41/65 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -21x -  -21x -  -21x -  -  -21x -21x -21x -  -21x -21x -  -  -21x -  -21x -  -  -  -  -  -2x -18x -  -  -  -1x -  -21x -6x -  -  -21x -16x -16x -12x -1x -  -11x -  -10x -10x -  -5x -  -  -  -  -3x -  -  -  -  -  -  -  -3x -  -  -  -2x -  -  -  -  -  -  -  -5x -  -  -  -  -  -  -  -  -  -  -  -3x -  -  -  -  -  -  -23x -23x -  -23x -  -  -  -1x -  -22x -21x -  -1x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -18x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -21x -  -  -10x -  -  -  -  -  -  -  -  -  -  -  -  -1x - 
// /**
-//  * This component supports three ways to pass the source JSON:
-//  * 1. via the "json" attribute,
-//  *    <json-viewer json='{"name": "test"}'></json-viewer>
-//  * 2. via the "json" property,
-//  *    const jsonViewer = document.createElement("json-viewer");
-//  *    jsonViewer.json = {name: "test"}
-//  * 3. via content,
-//  *    <json-viewer>{"name": "test"}</json-viewer>
-//  **/
- 
-//#########################################NEW
-import styles from "./styles.css"
-import { themeStyles } from "./themes"
-import { isUrl } from "./data-helpers"
-import {
-  validateBoolean,
-  validateBooleanOrPositiveNumber,
-  validatePositiveNumber,
-  validateStringOrJson,
-  validateString,
-} from "./validator"
-import Renderer from "./renderer/container"
- 
-const DEFAULT_PARAMS = {
-  indent: 2,
-  expanded: 1,
-  theme: "default-light",
-  showDataTypes: true,
-  showToolbar: false,
-  expandIconType: "arrow",
-  showCopy: true,
-  showSize: true,
-  data: null,
-}
- 
-class JsonViewer extends HTMLElement {
-  #themeStylesContainer
-  #options
-  #contentData
-  #renderer
- 
-  constructor() {
-    super()
- 
-    this.#options = { ...DEFAULT_PARAMS }
- 
-    this.#themeStylesContainer = document.createElement("style")
- 
-    // Attach a shadow DOM to encapsulate the component
-    const shadowRoot = this.attachShadow({ mode: "open" })
-    const basicStyles = document.createElement("style")
-    basicStyles.textContent = `${styles}`
- 
-    shadowRoot.appendChild(basicStyles)
-    shadowRoot.appendChild(this.#themeStylesContainer)
- 
-    // set default theme
-    this.theme = this.#options.theme
-    // initialize renderer
-    this.#renderer = new Renderer(shadowRoot, this.#options)
-  }
- 
-  // component attributes
-  static get observedAttributes() {
-    // convert camelCase to kebab-case
-    return Object.keys(DEFAULT_PARAMS).map((k) =>
-      k.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase()
-    )
-  }
- 
-  static allowedAttributes = ["id"].concat(JsonViewer.observedAttributes)
- 
-  #warn = (...args) => {
-    console.warn(`JsonViewer${this.id ? ` (${this.id})` : ""}:`, ...args)
-  }
- 
-  #validateAndUpdate = (propName, value, validatorFunc, allowedValues) => {
-    try {
-      value = validatorFunc(value)
-      if (allowedValues && !allowedValues.includes(value)) {
-        throw new Error(`should be one of ${allowedValues.join(", ")}`)
-      }
-      if (this.#options[propName] === value) return
- 
-      this.#options[propName] = value
-      this.#render()
-    } catch (e) {
-      this.#warn(`Attribute ${propName}: ${e.message}`)
-    }
-  }
- 
-  set showDataTypes(value) {
-    this.#validateAndUpdate("showDataTypes", value, validateBoolean)
-  }
- 
-  set showToolbar(value) {
-    this.#validateAndUpdate("showToolbar", value, validateBoolean)
-  }
- 
-  set indent(newIndent) {
-    this.#validateAndUpdate("indent", newIndent, validatePositiveNumber)
-  }
- 
-  set expandIconType(name) {
-    this.#validateAndUpdate("expandIconType", name, validateString, [
-      "arrow",
-      "square",
-      "circle",
-    ])
-  }
- 
-  set expanded(newExpanded) {
-    this.#validateAndUpdate(
-      "expanded",
-      newExpanded,
-      validateBooleanOrPositiveNumber
-    )
-  }
- 
-  set showSize(newShowSize) {
-    this.#validateAndUpdate("showSize", newShowSize, validateBoolean)
-  }
- 
-  set showCopy(showCopy) {
-    this.#validateAndUpdate("showCopy", showCopy, validateBoolean)
-  }
- 
-  // validate and set theme
-  // theme can be a string or an object
-  // validationg theme is more complex than other attributes
-  set theme(newTheme) {
-    try {
-      newTheme = validateStringOrJson(newTheme)
-      // do nothing if the theme is the same or theme container is empty
-      if (
-        this.#options.theme === newTheme &&
-        this.#themeStylesContainer.textContent !== ""
-      )
-        return
- 
-      this.#themeStylesContainer.textContent = themeStyles(newTheme)
-      this.#options.theme = newTheme
-    } catch (e) {
-      this.#warn(`Attribute theme: ${e.message}`)
-    }
-  }
- 
-  // validate and set data
-  // data can be a string or an object
-  // validating data is more complex than other attributes
-  set data(newData) {
-    try {
-      newData = validateStringOrJson(newData)
-      // build a string from the value to compare with the current data
-      const newDataString = JSON.stringify(newData)
-      // do nothing if the data is the same
-      if (this.#options.data === newDataString) return
-      this.#options.data = newDataString
- 
-      if (isUrl(newData)) {
-        fetch(newData)
-          .then((r) => r.json())
-          .then((data) => {
-            this.#contentData = data
-            this.#render()
-          })
-      } else {
-        this.#contentData = newData
-        this.#render()
-      }
-    } catch (e) {
-      this.#warn(`Attribute data: ${e.message}`)
-    }
-  }
- 
-  get options() {
-    return this.#options
-  }
- 
-  connectedCallback() {
-    window.addEventListener("DOMContentLoaded", () => {
-      const data = this.textContent
-      this.textContent = ""
-      if (data) this.data = data
-    })
-  }
- 
-  attributeChangedCallback(name, oldValue, newValue) {
-    // console.log("=====Changed=====")
-    // console.log(name, oldValue, newValue)
-    // filter out not allowed attributes
-    if (JsonViewer.allowedAttributes.indexOf(name) > -1) {
-      // convert kebab-case to camelCase
-      const propName = name.replace(/-([a-z])/g, (g) => g[1].toUpperCase())
-      this[propName] = newValue
-    } else {
-      this.#warn(`Attribute ${name} is not supported and will be ignored!`)
-      this.removeAttribute(name)
-    }
-  }
- 
-  #render = () => {
-    // console.log("====================RENDER");
- 
-    this.#renderer.update({
-      data: this.#contentData,
-      expanded: this.#options.expanded,
-      expandIconType: this.#options.expandIconType,
-      indent: this.#options.indent,
-      showDataTypes: this.#options.showDataTypes,
-      showToolbar: this.#options.showToolbar,
-      showSize: this.#options.showSize,
-      showCopy: this.#options.showCopy,
-    })
-  }
-}
- 
-customElements.define("json-viewer", JsonViewer)
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/src/data-helpers.js.html b/coverage/lcov-report/src/data-helpers.js.html deleted file mode 100644 index 1ad1914..0000000 --- a/coverage/lcov-report/src/data-helpers.js.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - Code coverage report for src/data-helpers.js - - - - - - - - - -
-
-

All files / src data-helpers.js

-
- -
- 89.74% - Statements - 35/39 -
- - -
- 86.66% - Branches - 26/30 -
- - -
- 100% - Functions - 5/5 -
- - -
- 90.9% - Lines - 30/33 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70  -4x -11x -  -11x -  -  -9x -  -  -  -  -4x -79x -77x -76x -  -76x -76x -4x -3x -2x -  -72x -  -71x -  -  -71x -  -  -  -4x -  -9x -  -  -  -  -  -  -  -  -  -  -  -  -9x -45x -5x -40x -3x -15x -  -15x -  -  -15x -  -37x -4x -  -  -33x -  -  -  -9x -  - 
// This function checks if a string is a valid URL.
-export const isUrl = (string) => {
-  try {
-    // Attempt to create a URL object from the input string
-    return Boolean(new URL(string)) // Return true if successful
-  } catch (e) {
-    // If an error occurs (invalid URL), return false
-    return false
-  }
-}
- 
-// This function determines the type of data.
-export const dataType = (data) => {
-  if (Array.isArray(data)) return "array" // Check if data is an array
-  if (data === null) return "null" // Check if data is null
-  Iif (data instanceof RegExp) return "regexp" // Check if data is a regular expression
- 
-  const type = typeof data // Get the JavaScript type of data
-  if (type === "number") {
-    if (isNaN(data)) return "NaN" // Check if data is NaN
-    if (!isFinite(data)) return "Infinity" // Check if data is Infinity
-    return Number.isInteger(data) ? "int" : "float" // Check if data is integer or float
-  }
-  if (type === "boolean") return "bool" // Check if data is a boolean
- 
-  Iif (type === "object" && data instanceof Date) {
-    return "date"
-  }
-  return type // Return the type of data as a string (e.g., "string", "object")
-}
- 
-// This function parses a JSON string with custom handling for "NaN" and "undefined" strings.
-export const parseJson = (jsonString) => {
-  // Replace ": NaN" and ": undefined" with ": "NaN"" and ": "undefined"" for valid JSON syntax
-  const fixedJsonString = jsonString
-    // replace new lines
-    .replace(/\n/gi, " ")
-    // replace all NaN values with "NaN"
-    .replace(/:\s*NaN/gi, ': "NaN"')
-    // replace all undefined values with "undefined"
-    .replace(/:\s*undefined/gi, ': "undefined"')
-    // replace all NaN in arrays with "NaN"
-    .replace(/\[(.*)NaN(.*)\]/gi, '[$1"NaN"$2]')
-    // replace undefined in arrays with "undefined"
-    .replace(/\[(.*)undefined(.*)\]/gi, '[$1"undefined"$2]')
- 
-  // Define a custom reviver function for JSON parsing
-  const customReviver = (key, value) => {
-    if (value === "NaN") {
-      return NaN // Convert "NaN" to the actual NaN value
-    } else if (Array.isArray(value)) {
-      return value.map((v) => {
-        Iif (v === "NaN") {
-          return NaN // Convert "NaN" to the actual NaN value
-        } else Iif (v === "undefined") {
-          return undefined // Convert "undefined" to the undefined value
-        }
-        return v
-      })
-    } else if (value === "undefined") {
-      return undefined // Convert "undefined" to the undefined value
-    }
- 
-    return value
-  }
- 
-  // Parse the modified JSON string using the custom reviver function
-  return JSON.parse(fixedJsonString, customReviver)
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/src/index.html b/coverage/lcov-report/src/index.html deleted file mode 100644 index d7f1e67..0000000 --- a/coverage/lcov-report/src/index.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - Code coverage report for src - - - - - - - - - -
-
-

All files src

-
- -
- 80.98% - Statements - 132/163 -
- - -
- 84.44% - Branches - 76/90 -
- - -
- 74.28% - Functions - 26/35 -
- - -
- 80.98% - Lines - 115/142 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
component.js -
-
60.86%42/6955%11/2059.09%13/2263.07%41/65
data-helpers.js -
-
89.74%35/3986.66%26/30100%5/590.9%30/33
themes.js -
-
100%13/13100%4/4100%3/3100%13/13
validator.js -
-
100%42/4297.22%35/36100%5/5100%31/31
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/src/renderer/container.js.html b/coverage/lcov-report/src/renderer/container.js.html deleted file mode 100644 index 64b3b5c..0000000 --- a/coverage/lcov-report/src/renderer/container.js.html +++ /dev/null @@ -1,448 +0,0 @@ - - - - - - Code coverage report for src/renderer/container.js - - - - - - - - - -
-
-

All files / src/renderer container.js

-
- -
- 85.48% - Statements - 53/62 -
- - -
- 83.63% - Branches - 46/55 -
- - -
- 60% - Functions - 3/5 -
- - -
- 89.65% - Lines - 52/58 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122  -  -  -  -42x -42x -42x -42x -42x -  -42x -  -42x -  -  -  -  -  -  -  -  -  -  -81x -9x -  -9x -8x -  -8x -  -  -  -  -  -  -  -  -  -8x -8x -  -  -  -  -  -  -81x -25x -25x -3x -3x -  -  -  -2x -2x -2x -2x -2x -  -  -2x -  -  -  -  -  -3x -3x -  -22x -22x -  -  -  -81x -  -81x -26x -26x -  -  -81x -24x -24x -  -81x -2x -  -  -  -81x -28x -28x -  -  -81x -26x -26x -  -  -81x -28x -28x -  -  -81x -  -  -  -24x -24x -24x -  -  -  -42x -  -  -  - 
import DataRow from "./data-row"
-import Toolbar from "./toolbar"
- 
-function Container(root, options = {}) {
-  const containerElem = document.createElement("div")
-  containerElem.className = "container"
-  root.appendChild(containerElem)
-  let dataRow = null
-  let toolbar = null
- 
-  const cache = {}
- 
-  this.update = ({
-    data,
-    expanded,
-    indent,
-    expandIconType,
-    showDataTypes,
-    showToolbar,
-    showSize,
-    showCopy,
-  }) => {
-    // DATA
-    if (data) {
-      const newDataCompareString = JSON.stringify(data)
-      // if data has not changed, do nothing
-      if (cache.dataComapreString !== newDataCompareString) {
-        cache.dataComapreString = newDataCompareString
- 
-        dataRow = new DataRow({
-          key: "",
-          value: data,
-          expanded,
-          indent,
-          onToggleExpand: (level) => {
-            if (toolbar) toolbar.expanded = level
-            cache.expanded = level
-          },
-        })
-        containerElem.replaceChildren(dataRow.element)
-        Iif (cache.showToolbar && toolbar) {
-          containerElem.prepend(toolbar.element)
-          toolbar.maxExpandLevel = dataRow.maxLevel
-          toolbar.refresh()
-        }
-      }
-    }
-    if (showToolbar !== undefined && cache.showToolbar !== showToolbar) {
-      cache.showToolbar = showToolbar
-      if (showToolbar) {
-        Eif (!toolbar)
-          toolbar = new Toolbar({
-            expanded: cache.expanded,
-            indent: cache.indent,
-            onChange: ({ expanded, indent, showDetails }) => {
-              const options = { expanded, indent }
-              Eif (showDetails !== undefined) {
-                options.showCopy = showDetails
-                options.showSize = showDetails
-                options.showDataTypes = showDetails
-              }
- 
-              this.update(options)
-            },
-            onSearch: (searchTerm) => {
-              if (dataRow) dataRow.update({ searchTerm })
-            },
-          })
-        Iif (dataRow) toolbar.maxExpandLevel = dataRow.maxLevel
-        containerElem.prepend(toolbar.element)
-      } else {
-        const element = containerElem.querySelector(".toolbar")
-        if (element) element.remove()
-      }
-    }
- 
-    const propsToBeUpdated = {}
-    // EXPANDED
-    if (expanded !== undefined && cache.expanded !== expanded) {
-      cache.expanded = expanded
-      propsToBeUpdated.expanded = expanded
-    }
-    // INDENT
-    if (indent !== undefined && cache.indent !== indent) {
-      cache.indent = indent
-      propsToBeUpdated.indent = indent
-    }
-    if (Object.keys(propsToBeUpdated).length > 0 && dataRow) {
-      dataRow.update(propsToBeUpdated)
-    }
- 
-    // SHOW COPY
-    if (showCopy !== undefined && cache.showCopy !== showCopy) {
-      cache.showCopy = showCopy
-      containerElem.classList.toggle("show-copy", showCopy)
-    }
-    // SHOW SIZE
-    if (showSize !== undefined && cache.showSize !== showSize) {
-      cache.showSize = showSize
-      containerElem.classList.toggle("show-size", showSize)
-    }
-    // SHOW DATA TYPES
-    if (showDataTypes !== undefined && cache.showDataTypes !== showDataTypes) {
-      cache.showDataTypes = showDataTypes
-      containerElem.classList.toggle("show-data-types", showDataTypes)
-    }
-    // EXPAND ICON TYPE
-    if (
-      expandIconType !== undefined &&
-      cache.expandIconType !== expandIconType
-    ) {
-      containerElem.classList.add(`expand-icon-${expandIconType}`)
-      containerElem.classList.remove(`expand-icon-${cache.expandIconType}`)
-      cache.expandIconType = expandIconType
-    }
-  }
- 
-  this.update(options)
-}
- 
-export default Container
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/src/renderer/data-row.js.html b/coverage/lcov-report/src/renderer/data-row.js.html deleted file mode 100644 index 3bb2f7c..0000000 --- a/coverage/lcov-report/src/renderer/data-row.js.html +++ /dev/null @@ -1,754 +0,0 @@ - - - - - - Code coverage report for src/renderer/data-row.js - - - - - - - - - -
-
-

All files / src/renderer data-row.js

-
- -
- 92.68% - Statements - 114/123 -
- - -
- 91.35% - Branches - 74/81 -
- - -
- 54.54% - Functions - 6/11 -
- - -
- 94.78% - Lines - 109/115 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224  -  -3x -  -  -  -  -  -  -  -  -68x -68x -  -68x -68x -68x -  -  -  -68x -68x -68x -68x -  -68x -68x -68x -  -68x -  -  -  -  -  -  -  -  -  -  -  -68x -33x -33x -33x -  -  -33x -33x -33x -33x -  -33x -  -  -  -68x -  -59x -59x -59x -  -  -59x -59x -59x -  -  -59x -59x -59x -59x -  -  -68x -  -33x -33x -33x -33x -  -  -33x -33x -33x -33x -33x -  -  -33x -33x -33x -33x -  -  -33x -  -33x -33x -33x -33x -  -  -33x -  -  -33x -33x -36x -  -  -  -  -  -  -  -36x -36x -36x -  -  -  -33x -33x -33x -  -33x -  -  -35x -35x -28x -28x -28x -  -  -35x -35x -35x -35x -35x -35x -35x -  -  -  -68x -68x -68x -68x -  -  -  -68x -68x -68x -68x -  -  -68x -6x -6x -  -6x -  -  -6x -  -  -  -6x -1x -  -  -  -  -  -  -  -6x -3x -  -3x -  -  -3x -  -  -  -3x -1x -  -  -  -  -  -  -  -  -  -  -68x -10x -1x -  -  -10x -2x -2x -2x -  -10x -6x -  -  -10x -5x -  -  -68x -  -  -  - 
import { dataType } from "../data-helpers"
- 
-const DataRow = function ({
-  key,
-  value,
-  expanded,
-  indent,
-  searchTerm,
-  onToggleExpand,
-  level = 0,
-}) {
-  const row = document.createElement("div")
-  this.maxLevel = level
- 
-  const thisDataType = dataType(value)
-  const hasChildren = thisDataType === "array" || thisDataType === "object"
-  let isExpanded = expanded === true || expanded > level
-  let expandIcon, childrenRows, keyEl, valueEl
- 
-  // ROW CONTAINER
-  row.className = `data-row ${isExpanded ? "expanded" : ""}`
-  row.dataset.key = key
-  row.dataset.level = level
-  if (level > 0) row.style.paddingLeft = `${indent * 5}px`
- 
-  const keyValueWrapper = document.createElement("span")
-  keyValueWrapper.className = "key-value-wrapper"
-  row.appendChild(keyValueWrapper)
- 
-  const toggleExpand = () => {
-    row.classList.toggle("expanded")
-    if (onToggleExpand) {
-      if (row.classList.contains("expanded")) {
-        onToggleExpand(level + 1)
-      } else {
-        onToggleExpand(level)
-      }
-    }
-  }
- 
-  // EXPAND ICON
-  if (hasChildren) {
-    const expandIconWrapper = document.createElement("span")
-    expandIconWrapper.className = "icon-wrapper"
-    keyValueWrapper.appendChild(expandIconWrapper)
- 
-    // create the icon (i tag) using the DOM API
-    expandIcon = document.createElement("span")
-    expandIcon.className = `expand icon clickable`
-    expandIcon.setAttribute("title", isExpanded ? "Collapse" : "Expand")
-    expandIconWrapper.appendChild(expandIcon)
- 
-    expandIcon.addEventListener("click", () => toggleExpand())
-  }
- 
-  // KEY VALUE WRAPPER
-  if (key !== null && key !== "") {
-    // KEY
-    const keyDataType = typeof key
-    keyEl = document.createElement("span")
-    keyEl.className = `key clickable ${
-      keyDataType === "number" ? "number" : ""
-    }`
-    keyEl.textContent = keyDataType === "number" ? key : `"${key}"`
-    keyEl.addEventListener("click", () => toggleExpand())
-    keyValueWrapper.appendChild(keyEl)
- 
-    // COLON
-    const colonEl = document.createElement("span")
-    colonEl.classList.add("colon")
-    colonEl.textContent = ":"
-    keyValueWrapper.appendChild(colonEl)
-  }
- 
-  if (hasChildren) {
-    // OPENING PARENTHESIS
-    const openingParenthesis = document.createElement("span")
-    openingParenthesis.className = "opening-parenthesis"
-    openingParenthesis.textContent = thisDataType === "array" ? "[" : "{"
-    keyValueWrapper.appendChild(openingParenthesis)
- 
-    // ELLIPSIS
-    const ellipsis = document.createElement("span")
-    ellipsis.className = "ellipsis clickable"
-    ellipsis.textContent = "..."
-    ellipsis.addEventListener("click", () => toggleExpand())
-    keyValueWrapper.appendChild(ellipsis)
- 
-    // CLOSING PARENTHESIS
-    const closingParenthesis = document.createElement("span")
-    closingParenthesis.className = "closing-parenthesis"
-    closingParenthesis.textContent = thisDataType === "array" ? "]" : "}"
-    keyValueWrapper.appendChild(closingParenthesis)
- 
-    // ITEMS SIZE
-    const itemsSize = document.createElement("span")
-    const length =
-      thisDataType === "array" ? value.length : Object.keys(value).length
-    itemsSize.className = "items-size"
-    itemsSize.textContent = `${length} item${length === 1 ? "" : "s"}`
-    keyValueWrapper.appendChild(itemsSize)
- 
-    // CHILDREN ROWS
-    childrenRows = []
- 
-    const items =
-      thisDataType === "array" ? value.map((v, i) => i) : Object.keys(value)
-    items.forEach((key) => {
-      const subRow = new DataRow({
-        key,
-        value: value[key],
-        expanded,
-        indent,
-        onToggleExpand,
-        level: level + 1,
-      })
-      childrenRows.push(subRow)
-      row.appendChild(subRow.element)
-      this.maxLevel = Math.max(this.maxLevel, subRow.maxLevel)
-    })
- 
-    // EXPANDED CLOSING PARENTHESIS
-    const expandedClosingParenthesis = document.createElement("span")
-    expandedClosingParenthesis.className = "closing-parenthesis"
-    expandedClosingParenthesis.textContent =
-      thisDataType === "array" ? "]" : "}"
-    row.appendChild(expandedClosingParenthesis)
-  } else {
-    // VALUE
-    let valueType = null
-    if (!["nan", "NaN", "undefined", "null"].includes(thisDataType)) {
-      valueType = document.createElement("span")
-      valueType.className = `type`
-      valueType.textContent = thisDataType.toLowerCase()
-    }
- 
-    const valueWrapper = document.createElement("span")
-    valueWrapper.className = `value ${thisDataType.toLowerCase()}`
-    valueEl = document.createElement("span")
-    valueEl.textContent = thisDataType === "string" ? `"${value}"` : value
-    if (valueType) valueWrapper.appendChild(valueType)
-    valueWrapper.appendChild(valueEl)
-    keyValueWrapper.appendChild(valueWrapper)
-  }
- 
-  // COPY ICON
-  const copyIcon = document.createElement("span")
-  copyIcon.className = "copy icon"
-  copyIcon.setAttribute("title", "Copy to clipboard")
-  copyIcon.addEventListener("click", () => {
-    navigator.clipboard.writeText(JSON.stringify(value, null, indent))
-  })
- 
-  const copyIconWrapper = document.createElement("span")
-  copyIconWrapper.className = "icon-wrapper"
-  copyIconWrapper.appendChild(copyIcon)
-  keyValueWrapper.appendChild(copyIconWrapper)
- 
-  // this function highlights the search term
-  const search = (searchTerm) => {
-    Eif (keyEl) {
-      const keyString = keyEl.textContent
-      // remove any existing matches
-      keyEl.innerHTML = keyString
- 
-      const keyIndex =
-        searchTerm === null || searchTerm === undefined || searchTerm === ""
-          ? -1
-          : keyString.indexOf(searchTerm)
- 
-      if (keyIndex > -1) {
-        keyEl.innerHTML =
-          keyString.slice(0, keyIndex) +
-          `<span class="match">${keyString.slice(
-            keyIndex,
-            keyIndex + searchTerm.length
-          )}</span>${keyString.slice(keyIndex + searchTerm.length)}`
-      }
-    }
-    if (valueEl) {
-      const valueString = valueEl.textContent
-      // remove any existing matches
-      valueEl.innerHTML = valueString
- 
-      const valueIndex =
-        searchTerm === null || searchTerm === undefined || searchTerm === ""
-          ? -1
-          : valueString.indexOf(searchTerm)
- 
-      if (valueIndex > -1) {
-        valueEl.innerHTML =
-          valueString.slice(0, valueIndex) +
-          `<span class="match">${valueString.slice(
-            valueIndex,
-            valueIndex + searchTerm.length
-          )}</span>${valueString.slice(valueIndex + searchTerm.length)}`
-      }
-    }
-  }
- 
-  // this function updates the icon based on the expanded state
-  this.update = ({ expanded, indent, searchTerm }) => {
-    if (indent !== undefined && level > 0) {
-      row.style.paddingLeft = `${indent * 5}px`
-    }
- 
-    if (expanded !== undefined) {
-      isExpanded = expanded === true || expanded > level
-      row.classList.toggle("expanded", isExpanded)
-      if (expandIcon) expandIcon.title = isExpanded ? "Collapse" : "Expand"
-    }
-    if (searchTerm !== undefined && searchTerm !== null) {
-      search(searchTerm)
-    }
- 
-    if (childrenRows)
-      childrenRows.forEach((r) => r.update({ expanded, indent, searchTerm }))
-  }
- 
-  this.element = row
-}
- 
-export default DataRow
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/src/renderer/index.html b/coverage/lcov-report/src/renderer/index.html deleted file mode 100644 index e9c21a4..0000000 --- a/coverage/lcov-report/src/renderer/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - Code coverage report for src/renderer - - - - - - - - - -
-
-

All files src/renderer

-
- -
- 93.04% - Statements - 254/273 -
- - -
- 86.18% - Branches - 131/152 -
- - -
- 72% - Functions - 18/25 -
- - -
- 95.31% - Lines - 244/256 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
container.js -
-
85.48%53/6283.63%46/5560%3/589.65%52/58
data-row.js -
-
92.68%114/12391.35%74/8154.54%6/1194.78%109/115
toolbar.js -
-
98.86%87/8868.75%11/16100%9/9100%83/83
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/src/renderer/toolbar.js.html b/coverage/lcov-report/src/renderer/toolbar.js.html deleted file mode 100644 index e1886c6..0000000 --- a/coverage/lcov-report/src/renderer/toolbar.js.html +++ /dev/null @@ -1,460 +0,0 @@ - - - - - - Code coverage report for src/renderer/toolbar.js - - - - - - - - - -
-
-

All files / src/renderer toolbar.js

-
- -
- 98.86% - Statements - 87/88 -
- - -
- 68.75% - Branches - 11/16 -
- - -
- 100% - Functions - 9/9 -
- - -
- 100% - Lines - 83/83 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -1263x -  -  -  -  -  -  -18x -18x -18x -18x -  -  -  -18x -18x -  -  -18x -18x -18x -  -  -18x -18x -18x -  -  -18x -18x -18x -18x -18x -18x -18x -  -  -18x -18x -18x -18x -18x -18x -18x -1x -1x -  -  -  -18x -18x -18x -  -18x -18x -18x -18x -1x -1x -1x -  -  -  -18x -18x -18x -18x -18x -18x -1x -1x -  -18x -  -  -18x -18x -18x -18x -18x -18x -1x -1x -  -18x -  -  -18x -18x -18x -18x -18x -18x -3x -3x -3x -  -  -  -18x -  -  -18x -18x -18x -18x -18x -18x -18x -1x -  -18x -  -18x -1x -1x -1x -1x -1x -  -  -18x -  -  -  - 
const Toolbar = function ({
-  expanded,
-  indent,
-  onChange,
-  onSearch,
-  showDetails,
-}) {
-  this.indent = indent || 2
-  this.expanded = typeof expanded === "number" ? expanded : 2
-  this.showDetails = showDetails || true
-  this.maxExpandLevel = 0
- 
-  let searchInput
- 
-  const toolbar = document.createElement("div")
-  toolbar.className = "toolbar"
- 
-  // OPTIONS
-  const options = document.createElement("div")
-  options.className = "options"
-  toolbar.appendChild(options)
- 
-  // SEARCH WRAPPER
-  const searchWrapper = document.createElement("div")
-  searchWrapper.className = "search-wrapper"
-  toolbar.appendChild(searchWrapper)
- 
-  // REFRESH ICON
-  const refreshIconWrapper = document.createElement("div")
-  refreshIconWrapper.className = "icon-wrapper clickable"
-  options.appendChild(refreshIconWrapper)
-  const refreshIcon = document.createElement("span")
-  refreshIcon.className = "icon refresh"
-  refreshIconWrapper.onclick = () => this.refresh()
-  refreshIconWrapper.appendChild(refreshIcon)
- 
-  // EXPAND ICON
-  const expandIconWrapper = document.createElement("div")
-  expandIconWrapper.className = "icon-wrapper clickable"
-  options.appendChild(expandIconWrapper)
-  const expandIcon = document.createElement("span")
-  expandIcon.className = "icon plus"
-  expandIconWrapper.appendChild(expandIcon)
-  expandIconWrapper.onclick = () => {
-    Eif (this.expanded < this.maxExpandLevel) this.expanded += 1
-    onChange({ expanded: this.expanded })
-  }
- 
-  // COLLAPSE ICON
-  const collapseIconWrapper = document.createElement("div")
-  collapseIconWrapper.className = "icon-wrapper clickable"
-  options.appendChild(collapseIconWrapper)
- 
-  const collapseIcon = document.createElement("span")
-  collapseIcon.className = "icon minus"
-  collapseIconWrapper.appendChild(collapseIcon)
-  collapseIconWrapper.onclick = () => {
-    Iif (this.expanded > this.maxExpandLevel) this.expanded = this.maxExpandLevel
-    Eif (this.expanded > 0) this.expanded -= 1
-    onChange({ expanded: this.expanded })
-  }
- 
-  // INDENT ICON
-  const indentIconWrapper = document.createElement("div")
-  indentIconWrapper.className = "icon-wrapper clickable"
-  options.appendChild(indentIconWrapper)
-  const indentIcon = document.createElement("span")
-  indentIcon.className = "icon indent"
-  indentIconWrapper.onclick = () => {
-    this.indent += 1
-    onChange({ indent: this.indent })
-  }
-  indentIconWrapper.appendChild(indentIcon)
- 
-  // OUTDENT ICON
-  const outdentIconWrapper = document.createElement("div")
-  outdentIconWrapper.className = "icon-wrapper clickable"
-  options.appendChild(outdentIconWrapper)
-  const outdentIcon = document.createElement("span")
-  outdentIcon.className = "icon outdent"
-  outdentIconWrapper.onclick = () => {
-    this.indent -= 1
-    onChange({ indent: this.indent })
-  }
-  outdentIconWrapper.appendChild(outdentIcon)
- 
-  // INFO ICON
-  const infoIconWrapper = document.createElement("div")
-  infoIconWrapper.className = "icon-wrapper clickable"
-  options.appendChild(infoIconWrapper)
-  const infoIcon = document.createElement("span")
-  infoIcon.className = `icon info ${this.showDetails ? "active" : ""}`
-  infoIconWrapper.onclick = () => {
-    infoIcon.classList.toggle("active")
-    this.showDetails = !this.showDetails
-    onChange({
-      showDetails: this.showDetails,
-    })
-  }
-  infoIconWrapper.appendChild(infoIcon)
- 
-  // SEARCH INPUT
-  const searchIcon = document.createElement("span")
-  searchIcon.className = "icon search"
-  searchWrapper.appendChild(searchIcon)
-  searchInput = document.createElement("input")
-  searchInput.className = "search-input"
-  searchInput.placeholder = "Search"
-  searchInput.oninput = (e) => {
-    onSearch(e.target.value)
-  }
-  searchWrapper.appendChild(searchInput)
- 
-  this.refresh = () => {
-    this.expanded = 1
-    this.indent = 2
-    Eif (searchInput) searchInput.value = ""
-    onChange({ indent: 2, expanded: 1 })
-    onSearch("")
-  }
- 
-  this.element = toolbar
-}
- 
-export default Toolbar
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/src/themes.js.html b/coverage/lcov-report/src/themes.js.html deleted file mode 100644 index 2f02fe3..0000000 --- a/coverage/lcov-report/src/themes.js.html +++ /dev/null @@ -1,4429 +0,0 @@ - - - - - - Code coverage report for src/themes.js - - - - - - - - - -
-
-

All files / src themes.js

-
- -
- 100% - Statements - 13/13 -
- - -
- 100% - Branches - 4/4 -
- - -
- 100% - Functions - 3/3 -
- - -
- 100% - Lines - 13/13 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -565 -566 -567 -568 -569 -570 -571 -572 -573 -574 -575 -576 -577 -578 -579 -580 -581 -582 -583 -584 -585 -586 -587 -588 -589 -590 -591 -592 -593 -594 -595 -596 -597 -598 -599 -600 -601 -602 -603 -604 -605 -606 -607 -608 -609 -610 -611 -612 -613 -614 -615 -616 -617 -618 -619 -620 -621 -622 -623 -624 -625 -626 -627 -628 -629 -630 -631 -632 -633 -634 -635 -636 -637 -638 -639 -640 -641 -642 -643 -644 -645 -646 -647 -648 -649 -650 -651 -652 -653 -654 -655 -656 -657 -658 -659 -660 -661 -662 -663 -664 -665 -666 -667 -668 -669 -670 -671 -672 -673 -674 -675 -676 -677 -678 -679 -680 -681 -682 -683 -684 -685 -686 -687 -688 -689 -690 -691 -692 -693 -694 -695 -696 -697 -698 -699 -700 -701 -702 -703 -704 -705 -706 -707 -708 -709 -710 -711 -712 -713 -714 -715 -716 -717 -718 -719 -720 -721 -722 -723 -724 -725 -726 -727 -728 -729 -730 -731 -732 -733 -734 -735 -736 -737 -738 -739 -740 -741 -742 -743 -744 -745 -746 -747 -748 -749 -750 -751 -752 -753 -754 -755 -756 -757 -758 -759 -760 -761 -762 -763 -764 -765 -766 -767 -768 -769 -770 -771 -772 -773 -774 -775 -776 -777 -778 -779 -780 -781 -782 -783 -784 -785 -786 -787 -788 -789 -790 -791 -792 -793 -794 -795 -796 -797 -798 -799 -800 -801 -802 -803 -804 -805 -806 -807 -808 -809 -810 -811 -812 -813 -814 -815 -816 -817 -818 -819 -820 -821 -822 -823 -824 -825 -826 -827 -828 -829 -830 -831 -832 -833 -834 -835 -836 -837 -838 -839 -840 -841 -842 -843 -844 -845 -846 -847 -848 -849 -850 -851 -852 -853 -854 -855 -856 -857 -858 -859 -860 -861 -862 -863 -864 -865 -866 -867 -868 -869 -870 -871 -872 -873 -874 -875 -876 -877 -878 -879 -880 -881 -882 -883 -884 -885 -886 -887 -888 -889 -890 -891 -892 -893 -894 -895 -896 -897 -898 -899 -900 -901 -902 -903 -904 -905 -906 -907 -908 -909 -910 -911 -912 -913 -914 -915 -916 -917 -918 -919 -920 -921 -922 -923 -924 -925 -926 -927 -928 -929 -930 -931 -932 -933 -934 -935 -936 -937 -938 -939 -940 -941 -942 -943 -944 -945 -946 -947 -948 -949 -950 -951 -952 -953 -954 -955 -956 -957 -958 -959 -960 -961 -962 -963 -964 -965 -966 -967 -968 -969 -970 -971 -972 -973 -974 -975 -976 -977 -978 -979 -980 -981 -982 -983 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1008 -1009 -1010 -1011 -1012 -1013 -1014 -1015 -1016 -1017 -1018 -1019 -1020 -1021 -1022 -1023 -1024 -1025 -1026 -1027 -1028 -1029 -1030 -1031 -1032 -1033 -1034 -1035 -1036 -1037 -1038 -1039 -1040 -1041 -1042 -1043 -1044 -1045 -1046 -1047 -1048 -1049 -1050 -1051 -1052 -1053 -1054 -1055 -1056 -1057 -1058 -1059 -1060 -1061 -1062 -1063 -1064 -1065 -1066 -1067 -1068 -1069 -1070 -1071 -1072 -1073 -1074 -1075 -1076 -1077 -1078 -1079 -1080 -1081 -1082 -1083 -1084 -1085 -1086 -1087 -1088 -1089 -1090 -1091 -1092 -1093 -1094 -1095 -1096 -1097 -1098 -1099 -1100 -1101 -1102 -1103 -1104 -1105 -1106 -1107 -1108 -1109 -1110 -1111 -1112 -1113 -1114 -1115 -1116 -1117 -1118 -1119 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1154 -1155 -1156 -1157 -1158 -1159 -1160 -1161 -1162 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1217 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1231 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1328 -1329 -1330 -1331 -1332 -1333 -1334 -1335 -1336 -1337 -1338 -1339 -1340 -1341 -1342 -1343 -1344 -1345 -1346 -1347 -1348 -1349 -1350 -1351 -1352 -1353 -1354 -1355 -1356 -1357 -1358 -1359 -1360 -1361 -1362 -1363 -1364 -1365 -1366 -1367 -1368 -1369 -1370 -1371 -1372 -1373 -1374 -1375 -1376 -1377 -1378 -1379 -1380 -1381 -1382 -1383 -1384 -1385 -1386 -1387 -1388 -1389 -1390 -1391 -1392 -1393 -1394 -1395 -1396 -1397 -1398 -1399 -1400 -1401 -1402 -1403 -1404 -1405 -1406 -1407 -1408 -1409 -1410 -1411 -1412 -1413 -1414 -1415 -1416 -1417 -1418 -1419 -1420 -1421 -1422 -1423 -1424 -1425 -1426 -1427 -1428 -1429 -1430 -1431 -1432 -1433 -1434 -1435 -1436 -1437 -1438 -1439 -1440 -1441 -1442 -1443 -1444 -1445 -1446 -1447 -1448 -1449  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2x -  -2x -  -26x -25x -1x -  -24x -384x -384x -384x -  -  -1x -  -  -25x -400x -  -  - 
/* 
-  --base00: Default Background 
-  --base01: Lighter Background (Used for status bars, line number and folding marks)
-  --base02: Selection Background
-  --base03: Comments, Invisibles, Line Highlighting 
-  --base04: Dark Foreground (Used for status bars) 
-  --base05: Default Foreground, Caret, Delimiters, Operators 
-  --base06: Light Foreground (Not often used) 
-  --base07: Light Background (Not often used) 
-  --base08: Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted 
-  --base09: Integers, Boolean, Constants, XML Attributes, Markup Link Url 
-  --base0A: Classes, Markup Bold, Search Text Background 
-  --base0B: Strings, Inherited Class, Markup Code, Diff Inserted 
-  --base0C: Support, Regular Expressions, Escape Characters, Markup Quotes 
-  --base0D: Functions, Methods, Attribute IDs, Headings 
-  --base0E: Keywords, Storage, Selector, Markup Italic, Diff Changed 
-  --base0F: Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?> 
-*/
- 
-/* source: https://github.com/gammons/base16-obsidian */
-const themes = {
-  apathy: [
-    "#031a16",
-    "#0b342d",
-    "#184e45",
-    "#2b685e",
-    "#5f9c92",
-    "#81b5ac",
-    "#a7cec8",
-    "#d2e7e4",
-    "#3e9688",
-    "#3e7996",
-    "#3e4c96",
-    "#883e96",
-    "#963e4c",
-    "#96883e",
-    "#4c963e",
-    "#3e965b",
-  ],
-  ashes: [
-    "#1c2023",
-    "#393f45",
-    "#565e65",
-    "#747c84",
-    "#adb3ba",
-    "#c7ccd1",
-    "#dfe2e5",
-    "#f3f4f5",
-    "#c7ae95",
-    "#c7c795",
-    "#aec795",
-    "#95c7ae",
-    "#95aec7",
-    "#ae95c7",
-    "#c795ae",
-    "#c79595",
-  ],
-  "atelier-dune-light": [
-    "#fefbec",
-    "#e8e4cf",
-    "#a6a28c",
-    "#999580",
-    "#7d7a68",
-    "#6e6b5e",
-    "#292824",
-    "#20201d",
-    "#d73737",
-    "#b65611",
-    "#ae9513",
-    "#60ac39",
-    "#1fad83",
-    "#6684e1",
-    "#b854d4",
-    "#d43552",
-  ],
-  "atelier-dune": [
-    "#20201d",
-    "#292824",
-    "#6e6b5e",
-    "#7d7a68",
-    "#999580",
-    "#a6a28c",
-    "#e8e4cf",
-    "#fefbec",
-    "#d73737",
-    "#b65611",
-    "#ae9513",
-    "#60ac39",
-    "#1fad83",
-    "#6684e1",
-    "#b854d4",
-    "#d43552",
-  ],
-  atlas: [
-    "#002635",
-    "#00384d",
-    "#517f8d",
-    "#6c8b91",
-    "#869696",
-    "#a1a19a",
-    "#e6e6dc",
-    "#fafaf8",
-    "#ff5a67",
-    "#f08e48",
-    "#ffcc1b",
-    "#7fc06e",
-    "#14747e",
-    "#5dd7b9",
-    "#9a70a4",
-    "#c43060",
-  ],
-  bespin: [
-    "#28211c",
-    "#36312e",
-    "#5e5d5c",
-    "#666666",
-    "#797977",
-    "#8a8986",
-    "#9d9b97",
-    "#baae9e",
-    "#cf6a4c",
-    "#cf7d34",
-    "#f9ee98",
-    "#54be0d",
-    "#afc4db",
-    "#5ea6ea",
-    "#9b859d",
-    "#937121",
-  ],
-  "black-metal": [
-    "#000000",
-    "#121212",
-    "#222222",
-    "#333333",
-    "#999999",
-    "#c1c1c1",
-    "#999999",
-    "#c1c1c1",
-    "#5f8787",
-    "#aaaaaa",
-    "#a06666",
-    "#dd9999",
-    "#aaaaaa",
-    "#888888",
-    "#999999",
-    "#444444",
-  ],
-  brewer: [
-    "#0c0d0e",
-    "#2e2f30",
-    "#515253",
-    "#737475",
-    "#959697",
-    "#b7b8b9",
-    "#dadbdc",
-    "#fcfdfe",
-    "#e31a1c",
-    "#e6550d",
-    "#dca060",
-    "#31a354",
-    "#80b1d3",
-    "#3182bd",
-    "#756bb1",
-    "#b15928",
-  ],
-  bright: [
-    "#000000",
-    "#303030",
-    "#505050",
-    "#b0b0b0",
-    "#d0d0d0",
-    "#e0e0e0",
-    "#f5f5f5",
-    "#ffffff",
-    "#fb0120",
-    "#fc6d24",
-    "#fda331",
-    "#a1c659",
-    "#76c7b7",
-    "#6fb3d2",
-    "#d381c3",
-    "#be643c",
-  ],
-  brogrammer: [
-    "#1f1f1f",
-    "#f81118",
-    "#2dc55e",
-    "#ecba0f",
-    "#2a84d2",
-    "#4e5ab7",
-    "#1081d6",
-    "#d6dbe5",
-    "#d6dbe5",
-    "#de352e",
-    "#1dd361",
-    "#f3bd09",
-    "#1081d6",
-    "#5350b9",
-    "#0f7ddb",
-    "#ffffff",
-  ],
-  "brushtrees-dark": [
-    "#485867",
-    "#5a6d7a",
-    "#6d828e",
-    "#8299a1",
-    "#98afb5",
-    "#b0c5c8",
-    "#c9dbdc",
-    "#e3efef",
-    "#b38686",
-    "#d8bba2",
-    "#aab386",
-    "#87b386",
-    "#86b3b3",
-    "#868cb3",
-    "#b386b2",
-    "#b39f9f",
-  ],
-  brushtrees: [
-    "#e3efef",
-    "#c9dbdc",
-    "#b0c5c8",
-    "#98afb5",
-    "#8299a1",
-    "#6d828e",
-    "#5a6d7a",
-    "#485867",
-    "#b38686",
-    "#d8bba2",
-    "#aab386",
-    "#87b386",
-    "#86b3b3",
-    "#868cb3",
-    "#b386b2",
-    "#b39f9f",
-  ],
-  chalk: [
-    "#151515",
-    "#202020",
-    "#303030",
-    "#505050",
-    "#b0b0b0",
-    "#d0d0d0",
-    "#e0e0e0",
-    "#f5f5f5",
-    "#fb9fb1",
-    "#eda987",
-    "#ddb26f",
-    "#acc267",
-    "#12cfc0",
-    "#6fc2ef",
-    "#e1a3ee",
-    "#deaf8f",
-  ],
-  circus: [
-    "#191919",
-    "#202020",
-    "#303030",
-    "#5f5a60",
-    "#505050",
-    "#a7a7a7",
-    "#808080",
-    "#ffffff",
-    "#dc657d",
-    "#4bb1a7",
-    "#c3ba63",
-    "#84b97c",
-    "#4bb1a7",
-    "#639ee4",
-    "#b888e2",
-    "#b888e2",
-  ],
-  "classic-dark": [
-    "#151515",
-    "#202020",
-    "#303030",
-    "#505050",
-    "#b0b0b0",
-    "#d0d0d0",
-    "#e0e0e0",
-    "#f5f5f5",
-    "#ac4142",
-    "#d28445",
-    "#f4bf75",
-    "#90a959",
-    "#75b5aa",
-    "#6a9fb5",
-    "#aa759f",
-    "#8f5536",
-  ],
-  "classic-light": [
-    "#f5f5f5",
-    "#e0e0e0",
-    "#d0d0d0",
-    "#b0b0b0",
-    "#505050",
-    "#303030",
-    "#202020",
-    "#151515",
-    "#ac4142",
-    "#d28445",
-    "#f4bf75",
-    "#90a959",
-    "#75b5aa",
-    "#6a9fb5",
-    "#aa759f",
-    "#8f5536",
-  ],
-  codeschool: [
-    "#232c31",
-    "#1c3657",
-    "#2a343a",
-    "#3f4944",
-    "#84898c",
-    "#9ea7a6",
-    "#a7cfa3",
-    "#b5d8f6",
-    "#2a5491",
-    "#43820d",
-    "#a03b1e",
-    "#237986",
-    "#b02f30",
-    "#484d79",
-    "#c59820",
-    "#c98344",
-  ],
-  cupcake: [
-    "#fbf1f2",
-    "#f2f1f4",
-    "#d8d5dd",
-    "#bfb9c6",
-    "#a59daf",
-    "#8b8198",
-    "#72677e",
-    "#585062",
-    "#d57e85",
-    "#ebb790",
-    "#dcb16c",
-    "#a3b367",
-    "#69a9a7",
-    "#7297b9",
-    "#bb99b4",
-    "#baa58c",
-  ],
-  cupertino: [
-    "#ffffff",
-    "#c0c0c0",
-    "#c0c0c0",
-    "#808080",
-    "#808080",
-    "#404040",
-    "#404040",
-    "#5e5e5e",
-    "#c41a15",
-    "#eb8500",
-    "#826b28",
-    "#007400",
-    "#318495",
-    "#0000ff",
-    "#a90d91",
-    "#826b28",
-  ],
-  darcula: [
-    "#2b2b2b",
-    "#323232",
-    "#323232",
-    "#606366",
-    "#a4a3a3",
-    "#a9b7c6",
-    "#ffc66d",
-    "#ffffff",
-    "#4eade5",
-    "#689757",
-    "#bbb529",
-    "#6a8759",
-    "#629755",
-    "#9876aa",
-    "#cc7832",
-    "#808080",
-  ],
-  darktooth: [
-    "#1d2021",
-    "#32302f",
-    "#504945",
-    "#665c54",
-    "#928374",
-    "#a89984",
-    "#d5c4a1",
-    "#fdf4c1",
-    "#fb543f",
-    "#fe8625",
-    "#fac03b",
-    "#95c085",
-    "#8ba59b",
-    "#0d6678",
-    "#8f4673",
-    "#a87322",
-  ],
-  "default-dark": [
-    "#181818",
-    "#282828",
-    "#383838",
-    "#585858",
-    "#b8b8b8",
-    "#d8d8d8",
-    "#e8e8e8",
-    "#f8f8f8",
-    "#ab4642",
-    "#dc9656",
-    "#f7ca88",
-    "#a1b56c",
-    "#86c1b9",
-    "#7cafc2",
-    "#ba8baf",
-    "#a16946",
-  ],
-  "default-light": [
-    "#ffffff",
-    "#e8e8e8",
-    "#d8d8d8",
-    "#b8b8b8",
-    "#585858",
-    "#383838",
-    "#282828",
-    "#181818",
-    "#ab4642",
-    "#dc9656",
-    "#ab4642",
-    "#a1b56c",
-    "#86c1b9",
-    "#7cafc2",
-    "#ba8baf",
-    "#a16946",
-  ],
-  dracula: [
-    "#282936",
-    "#3a3c4e",
-    "#4d4f68",
-    "#626483",
-    "#62d6e8",
-    "#e9e9f4",
-    "#f1f2f8",
-    "#f7f7fb",
-    "#ea51b2",
-    "#b45bcf",
-    "#00f769",
-    "#ebff87",
-    "#a1efe4",
-    "#62d6e8",
-    "#b45bcf",
-    "#00f769",
-  ],
-  eighties: [
-    "#2d2d2d",
-    "#393939",
-    "#515151",
-    "#747369",
-    "#a09f93",
-    "#d3d0c8",
-    "#e8e6df",
-    "#f2f0ec",
-    "#f2777a",
-    "#f99157",
-    "#ffcc66",
-    "#99cc99",
-    "#66cccc",
-    "#6699cc",
-    "#cc99cc",
-    "#d27b53",
-  ],
-  embers: [
-    "#16130f",
-    "#2c2620",
-    "#433b32",
-    "#5a5047",
-    "#8a8075",
-    "#a39a90",
-    "#beb6ae",
-    "#dbd6d1",
-    "#826d57",
-    "#828257",
-    "#6d8257",
-    "#57826d",
-    "#576d82",
-    "#6d5782",
-    "#82576d",
-    "#825757",
-  ],
-  flat: [
-    "#2c3e50",
-    "#34495e",
-    "#7f8c8d",
-    "#95a5a6",
-    "#bdc3c7",
-    "#e0e0e0",
-    "#f5f5f5",
-    "#ecf0f1",
-    "#e74c3c",
-    "#e67e22",
-    "#f1c40f",
-    "#2ecc71",
-    "#1abc9c",
-    "#3498db",
-    "#9b59b6",
-    "#be643c",
-  ],
-  "fruit-soda": [
-    "#f1ecf1",
-    "#e0dee0",
-    "#d8d5d5",
-    "#b5b4b6",
-    "#979598",
-    "#515151",
-    "#474545",
-    "#2d2c2c",
-    "#fe3e31",
-    "#fe6d08",
-    "#f7e203",
-    "#47f74c",
-    "#0f9cfd",
-    "#2931df",
-    "#611fce",
-    "#b16f40",
-  ],
-  github: [
-    "#ffffff",
-    "#f5f5f5",
-    "#c8c8fa",
-    "#969896",
-    "#e8e8e8",
-    "#333333",
-    "#ffffff",
-    "#ffffff",
-    "#ed6a43",
-    "#0086b3",
-    "#795da3",
-    "#183691",
-    "#183691",
-    "#795da3",
-    "#a71d5d",
-    "#333333",
-  ],
-  "google-dark": [
-    "#1d1f21",
-    "#282a2e",
-    "#373b41",
-    "#969896",
-    "#b4b7b4",
-    "#c5c8c6",
-    "#e0e0e0",
-    "#ffffff",
-    "#cc342b",
-    "#f96a38",
-    "#fba922",
-    "#198844",
-    "#3971ed",
-    "#3971ed",
-    "#a36ac7",
-    "#3971ed",
-  ],
-  "google-light": [
-    "#ffffff",
-    "#e0e0e0",
-    "#c5c8c6",
-    "#b4b7b4",
-    "#969896",
-    "#373b41",
-    "#282a2e",
-    "#1d1f21",
-    "#cc342b",
-    "#f96a38",
-    "#fba922",
-    "#198844",
-    "#3971ed",
-    "#3971ed",
-    "#a36ac7",
-    "#3971ed",
-  ],
-  "grayscale-dark": [
-    "#101010",
-    "#252525",
-    "#464646",
-    "#525252",
-    "#ababab",
-    "#b9b9b9",
-    "#e3e3e3",
-    "#f7f7f7",
-    "#7c7c7c",
-    "#999999",
-    "#a0a0a0",
-    "#8e8e8e",
-    "#868686",
-    "#686868",
-    "#747474",
-    "#5e5e5e",
-  ],
-  "grayscale-light": [
-    "#f7f7f7",
-    "#e3e3e3",
-    "#b9b9b9",
-    "#ababab",
-    "#525252",
-    "#464646",
-    "#252525",
-    "#101010",
-    "#7c7c7c",
-    "#999999",
-    "#a0a0a0",
-    "#8e8e8e",
-    "#868686",
-    "#686868",
-    "#747474",
-    "#5e5e5e",
-  ],
-  greenscreen: [
-    "#001100",
-    "#003300",
-    "#005500",
-    "#007700",
-    "#009900",
-    "#00bb00",
-    "#00dd00",
-    "#00ff00",
-    "#007700",
-    "#009900",
-    "#007700",
-    "#00bb00",
-    "#005500",
-    "#009900",
-    "#00bb00",
-    "#005500",
-  ],
-  "gruvbox-dark-hard": [
-    "#1d2021",
-    "#3c3836",
-    "#504945",
-    "#665c54",
-    "#bdae93",
-    "#d5c4a1",
-    "#ebdbb2",
-    "#fbf1c7",
-    "#fb4934",
-    "#fe8019",
-    "#fabd2f",
-    "#b8bb26",
-    "#8ec07c",
-    "#83a598",
-    "#d3869b",
-    "#d65d0e",
-  ],
-  "gruvbox-light-hard": [
-    "#f9f5d7",
-    "#ebdbb2",
-    "#d5c4a1",
-    "#bdae93",
-    "#665c54",
-    "#504945",
-    "#3c3836",
-    "#282828",
-    "#9d0006",
-    "#af3a03",
-    "#b57614",
-    "#79740e",
-    "#427b58",
-    "#076678",
-    "#8f3f71",
-    "#d65d0e",
-  ],
-  "harmonic-dark": [
-    "#0b1c2c",
-    "#223b54",
-    "#405c79",
-    "#627e99",
-    "#aabcce",
-    "#cbd6e2",
-    "#e5ebf1",
-    "#f7f9fb",
-    "#bf8b56",
-    "#bfbf56",
-    "#8bbf56",
-    "#56bf8b",
-    "#568bbf",
-    "#8b56bf",
-    "#bf568b",
-    "#bf5656",
-  ],
-  "harmonic-light": [
-    "#f7f9fb",
-    "#e5ebf1",
-    "#cbd6e2",
-    "#aabcce",
-    "#627e99",
-    "#405c79",
-    "#223b54",
-    "#0b1c2c",
-    "#bf8b56",
-    "#bfbf56",
-    "#8bbf56",
-    "#56bf8b",
-    "#568bbf",
-    "#8b56bf",
-    "#bf568b",
-    "#bf5656",
-  ],
-  "heetch-light": [
-    "#feffff",
-    "#392551",
-    "#7b6d8b",
-    "#9c92a8",
-    "#ddd6e5",
-    "#5a496e",
-    "#470546",
-    "#190134",
-    "#27d9d5",
-    "#bdb6c5",
-    "#5ba2b6",
-    "#f80059",
-    "#c33678",
-    "#47f9f5",
-    "#bd0152",
-    "#dedae2",
-  ],
-  heetch: [
-    "#190134",
-    "#392551",
-    "#5a496e",
-    "#7b6d8b",
-    "#9c92a8",
-    "#bdb6c5",
-    "#dedae2",
-    "#feffff",
-    "#27d9d5",
-    "#5ba2b6",
-    "#8f6c97",
-    "#c33678",
-    "#f80059",
-    "#bd0152",
-    "#82034c",
-    "#470546",
-  ],
-  helios: [
-    "#1d2021",
-    "#383c3e",
-    "#53585b",
-    "#6f7579",
-    "#cdcdcd",
-    "#d5d5d5",
-    "#dddddd",
-    "#e5e5e5",
-    "#d72638",
-    "#eb8413",
-    "#f19d1a",
-    "#88b92d",
-    "#1ba595",
-    "#1e8bac",
-    "#be4264",
-    "#c85e0d",
-  ],
-  hopscotch: [
-    "#322931",
-    "#433b42",
-    "#5c545b",
-    "#797379",
-    "#989498",
-    "#b9b5b8",
-    "#d5d3d5",
-    "#ffffff",
-    "#dd464c",
-    "#fd8b19",
-    "#fdcc59",
-    "#8fc13e",
-    "#149b93",
-    "#1290bf",
-    "#c85e7c",
-    "#b33508",
-  ],
-  "horizon-dark": [
-    "#1c1e26",
-    "#232530",
-    "#2e303e",
-    "#676a8d",
-    "#ced1d0",
-    "#cbced0",
-    "#dcdfe4",
-    "#e3e6ee",
-    "#e93c58",
-    "#e58d7d",
-    "#efb993",
-    "#efaf8e",
-    "#24a8b4",
-    "#df5273",
-    "#b072d1",
-    "#e4a382",
-  ],
-  "ia-dark": [
-    "#1a1a1a",
-    "#222222",
-    "#1d414d",
-    "#767676",
-    "#b8b8b8",
-    "#cccccc",
-    "#e8e8e8",
-    "#f8f8f8",
-    "#d88568",
-    "#d86868",
-    "#b99353",
-    "#83a471",
-    "#7c9cae",
-    "#8eccdd",
-    "#b98eb2",
-    "#8b6c37",
-  ],
-  "ia-light": [
-    "#f6f6f6",
-    "#dedede",
-    "#bde5f2",
-    "#898989",
-    "#767676",
-    "#181818",
-    "#e8e8e8",
-    "#f8f8f8",
-    "#9c5a02",
-    "#c43e18",
-    "#c48218",
-    "#38781c",
-    "#2d6bb1",
-    "#48bac2",
-    "#a94598",
-    "#8b6c37",
-  ],
-  icy: [
-    "#021012",
-    "#031619",
-    "#041f23",
-    "#052e34",
-    "#064048",
-    "#095b67",
-    "#0c7c8c",
-    "#109cb0",
-    "#16c1d9",
-    "#b3ebf2",
-    "#80deea",
-    "#4dd0e1",
-    "#26c6da",
-    "#00bcd4",
-    "#00acc1",
-    "#0097a7",
-  ],
-  isotope: [
-    "#000000",
-    "#404040",
-    "#606060",
-    "#808080",
-    "#c0c0c0",
-    "#d0d0d0",
-    "#e0e0e0",
-    "#ffffff",
-    "#ff0000",
-    "#ff9900",
-    "#ff0099",
-    "#33ff00",
-    "#00ffff",
-    "#0066ff",
-    "#cc00ff",
-    "#3300ff",
-  ],
-  macintosh: [
-    "#000000",
-    "#404040",
-    "#404040",
-    "#808080",
-    "#808080",
-    "#c0c0c0",
-    "#c0c0c0",
-    "#ffffff",
-    "#dd0907",
-    "#ff6403",
-    "#fbf305",
-    "#1fb714",
-    "#02abea",
-    "#0000d3",
-    "#4700a5",
-    "#90713a",
-  ],
-  marrakesh: [
-    "#201602",
-    "#302e00",
-    "#5f5b17",
-    "#6c6823",
-    "#86813b",
-    "#948e48",
-    "#ccc37a",
-    "#faf0a5",
-    "#c35359",
-    "#b36144",
-    "#a88339",
-    "#18974e",
-    "#75a738",
-    "#477ca1",
-    "#8868b3",
-    "#b3588e",
-  ],
-  materia: [
-    "#263238",
-    "#2c393f",
-    "#37474f",
-    "#707880",
-    "#c9ccd3",
-    "#cdd3de",
-    "#d5dbe5",
-    "#ffffff",
-    "#ec5f67",
-    "#ea9560",
-    "#ffcc00",
-    "#8bd649",
-    "#80cbc4",
-    "#89ddff",
-    "#82aaff",
-    "#ec5f67",
-  ],
-  "material-lighter": [
-    "#fafafa",
-    "#e7eaec",
-    "#cceae7",
-    "#ccd7da",
-    "#8796b0",
-    "#80cbc4",
-    "#80cbc4",
-    "#666666",
-    "#ff5370",
-    "#f76d47",
-    "#ffb62c",
-    "#91b859",
-    "#39adb5",
-    "#6182b8",
-    "#7c4dff",
-    "#e53935",
-  ],
-  material: [
-    "#263238",
-    "#2e3c43",
-    "#314549",
-    "#546e7a",
-    "#b2ccd6",
-    "#eeffff",
-    "#eeffff",
-    "#ffffff",
-    "#f07178",
-    "#f78c6c",
-    "#ffcb6b",
-    "#c3e88d",
-    "#89ddff",
-    "#82aaff",
-    "#c792ea",
-    "#ff5370",
-  ],
-  "mellow-purple": [
-    "#1e0528",
-    "#1a092d",
-    "#331354",
-    "#320f55",
-    "#873582",
-    "#ffeeff",
-    "#ffeeff",
-    "#f8c0ff",
-    "#00d9e9",
-    "#aa00a3",
-    "#955ae7",
-    "#05cb0d",
-    "#b900b1",
-    "#550068",
-    "#8991bb",
-    "#4d6fff",
-  ],
-  "mexico-light": [
-    "#f8f8f8",
-    "#e8e8e8",
-    "#d8d8d8",
-    "#b8b8b8",
-    "#585858",
-    "#383838",
-    "#282828",
-    "#181818",
-    "#ab4642",
-    "#dc9656",
-    "#f79a0e",
-    "#538947",
-    "#4b8093",
-    "#7cafc2",
-    "#96609e",
-    "#a16946",
-  ],
-  mocha: [
-    "#3b3228",
-    "#534636",
-    "#645240",
-    "#7e705a",
-    "#b8afad",
-    "#d0c8c6",
-    "#e9e1dd",
-    "#f5eeeb",
-    "#cb6077",
-    "#d28b71",
-    "#f4bc87",
-    "#beb55b",
-    "#7bbda4",
-    "#8ab3b5",
-    "#a89bb9",
-    "#bb9584",
-  ],
-  monokai: [
-    "#272822",
-    "#383830",
-    "#49483e",
-    "#75715e",
-    "#a59f85",
-    "#f8f8f2",
-    "#f5f4f1",
-    "#f9f8f5",
-    "#f92672",
-    "#fd971f",
-    "#f4bf75",
-    "#a6e22e",
-    "#a1efe4",
-    "#66d9ef",
-    "#ae81ff",
-    "#cc6633",
-  ],
-  nord: [
-    "#2e3440",
-    "#3b4252",
-    "#434c5e",
-    "#4c566a",
-    "#d8dee9",
-    "#e5e9f0",
-    "#eceff4",
-    "#8fbcbb",
-    "#88c0d0",
-    "#81a1c1",
-    "#5e81ac",
-    "#bf616a",
-    "#d08770",
-    "#ebcb8b",
-    "#a3be8c",
-    "#b48ead",
-  ],
-  ocean: [
-    "#2b303b",
-    "#343d46",
-    "#4f5b66",
-    "#65737e",
-    "#a7adba",
-    "#c0c5ce",
-    "#dfe1e8",
-    "#eff1f5",
-    "#bf616a",
-    "#d08770",
-    "#ebcb8b",
-    "#a3be8c",
-    "#96b5b4",
-    "#8fa1b3",
-    "#b48ead",
-    "#ab7967",
-  ],
-  "one-light": [
-    "#fafafa",
-    "#f0f0f1",
-    "#e5e5e6",
-    "#a0a1a7",
-    "#696c77",
-    "#383a42",
-    "#202227",
-    "#090a0b",
-    "#ca1243",
-    "#d75f00",
-    "#c18401",
-    "#50a14f",
-    "#0184bc",
-    "#4078f2",
-    "#a626a4",
-    "#986801",
-  ],
-  onedark: [
-    "#282c34",
-    "#353b45",
-    "#3e4451",
-    "#545862",
-    "#565c64",
-    "#abb2bf",
-    "#b6bdca",
-    "#c8ccd4",
-    "#e06c75",
-    "#d19a66",
-    "#e5c07b",
-    "#98c379",
-    "#56b6c2",
-    "#61afef",
-    "#c678dd",
-    "#be5046",
-  ],
-  "papercolor-dark": [
-    "#1c1c1c",
-    "#af005f",
-    "#5faf00",
-    "#d7af5f",
-    "#5fafd7",
-    "#808080",
-    "#d7875f",
-    "#d0d0d0",
-    "#585858",
-    "#5faf5f",
-    "#afd700",
-    "#af87d7",
-    "#ffaf00",
-    "#ff5faf",
-    "#00afaf",
-    "#5f8787",
-  ],
-  "papercolor-light": [
-    "#eeeeee",
-    "#af0000",
-    "#008700",
-    "#5f8700",
-    "#0087af",
-    "#878787",
-    "#005f87",
-    "#444444",
-    "#bcbcbc",
-    "#d70000",
-    "#d70087",
-    "#8700af",
-    "#d75f00",
-    "#d75f00",
-    "#005faf",
-    "#005f87",
-  ],
-  paraiso: [
-    "#2f1e2e",
-    "#41323f",
-    "#4f424c",
-    "#776e71",
-    "#8d8687",
-    "#a39e9b",
-    "#b9b6b0",
-    "#e7e9db",
-    "#ef6155",
-    "#f99b15",
-    "#fec418",
-    "#48b685",
-    "#5bc4bf",
-    "#06b6ef",
-    "#815ba4",
-    "#e96ba8",
-  ],
-  pico: [
-    "#000000",
-    "#1d2b53",
-    "#7e2553",
-    "#008751",
-    "#ab5236",
-    "#5f574f",
-    "#c2c3c7",
-    "#fff1e8",
-    "#ff004d",
-    "#ffa300",
-    "#fff024",
-    "#00e756",
-    "#29adff",
-    "#83769c",
-    "#ff77a8",
-    "#ffccaa",
-  ],
-  pop: [
-    "#000000",
-    "#202020",
-    "#303030",
-    "#505050",
-    "#b0b0b0",
-    "#d0d0d0",
-    "#e0e0e0",
-    "#ffffff",
-    "#eb008a",
-    "#f29333",
-    "#f8ca12",
-    "#37b349",
-    "#00aabb",
-    "#0e5a94",
-    "#b31e8d",
-    "#7a2d00",
-  ],
-  railscasts: [
-    "#2b2b2b",
-    "#272935",
-    "#3a4055",
-    "#5a647e",
-    "#d4cfc9",
-    "#e6e1dc",
-    "#f4f1ed",
-    "#f9f7f3",
-    "#da4939",
-    "#cc7833",
-    "#ffc66d",
-    "#a5c261",
-    "#519f50",
-    "#6d9cbe",
-    "#b6b3eb",
-    "#bc9458",
-  ],
-  seti: [
-    "#151718",
-    "#282a2b",
-    "#3b758c",
-    "#41535b",
-    "#43a5d5",
-    "#d6d6d6",
-    "#eeeeee",
-    "#ffffff",
-    "#cd3f45",
-    "#db7b55",
-    "#e6cd69",
-    "#9fca56",
-    "#55dbbe",
-    "#55b5db",
-    "#a074c4",
-    "#8a553f",
-  ],
-  "solarized-dark": [
-    "#002b36",
-    "#073642",
-    "#586e75",
-    "#657b83",
-    "#839496",
-    "#93a1a1",
-    "#eee8d5",
-    "#fdf6e3",
-    "#dc322f",
-    "#cb4b16",
-    "#b58900",
-    "#859900",
-    "#2aa198",
-    "#268bd2",
-    "#6c71c4",
-    "#d33682",
-  ],
-  "solarized-light": [
-    "#fdf6e3",
-    "#eee8d5",
-    "#93a1a1",
-    "#839496",
-    "#657b83",
-    "#586e75",
-    "#073642",
-    "#002b36",
-    "#dc322f",
-    "#cb4b16",
-    "#b58900",
-    "#859900",
-    "#2aa198",
-    "#268bd2",
-    "#6c71c4",
-    "#d33682",
-  ],
-  spacemacs: [
-    "#1f2022",
-    "#282828",
-    "#444155",
-    "#585858",
-    "#b8b8b8",
-    "#a3a3a3",
-    "#e8e8e8",
-    "#f8f8f8",
-    "#f2241f",
-    "#ffa500",
-    "#b1951d",
-    "#67b11d",
-    "#2d9574",
-    "#4f97d7",
-    "#a31db1",
-    "#b03060",
-  ],
-  "summerfruit-dark": [
-    "#151515",
-    "#202020",
-    "#303030",
-    "#505050",
-    "#b0b0b0",
-    "#d0d0d0",
-    "#e0e0e0",
-    "#ffffff",
-    "#ff0086",
-    "#fd8900",
-    "#aba800",
-    "#00c918",
-    "#1faaaa",
-    "#3777e6",
-    "#ad00a1",
-    "#cc6633",
-  ],
-  "summerfruit-light": [
-    "#ffffff",
-    "#e0e0e0",
-    "#d0d0d0",
-    "#b0b0b0",
-    "#000000",
-    "#101010",
-    "#151515",
-    "#202020",
-    "#ff0086",
-    "#fd8900",
-    "#aba800",
-    "#00c918",
-    "#1faaaa",
-    "#3777e6",
-    "#ad00a1",
-    "#cc6633",
-  ],
-  "tomorrow-night": [
-    "#1d1f21",
-    "#282a2e",
-    "#373b41",
-    "#969896",
-    "#b4b7b4",
-    "#c5c8c6",
-    "#e0e0e0",
-    "#ffffff",
-    "#cc6666",
-    "#de935f",
-    "#f0c674",
-    "#b5bd68",
-    "#8abeb7",
-    "#81a2be",
-    "#b294bb",
-    "#a3685a",
-  ],
-  tomorrow: [
-    "#ffffff",
-    "#e0e0e0",
-    "#d6d6d6",
-    "#8e908c",
-    "#969896",
-    "#4d4d4c",
-    "#282a2e",
-    "#1d1f21",
-    "#c82829",
-    "#f5871f",
-    "#eab700",
-    "#718c00",
-    "#3e999f",
-    "#4271ae",
-    "#8959a8",
-    "#a3685a",
-  ],
-  tube: [
-    "#231f20",
-    "#1c3f95",
-    "#5a5758",
-    "#737171",
-    "#959ca1",
-    "#d9d8d8",
-    "#e7e7e8",
-    "#ffffff",
-    "#ee2e24",
-    "#f386a1",
-    "#ffd204",
-    "#00853e",
-    "#85cebc",
-    "#009ddc",
-    "#98005d",
-    "#b06110",
-  ],
-  twilight: [
-    "#1e1e1e",
-    "#323537",
-    "#464b50",
-    "#5f5a60",
-    "#838184",
-    "#a7a7a7",
-    "#c3c3c3",
-    "#ffffff",
-    "#cf6a4c",
-    "#cda869",
-    "#f9ee98",
-    "#8f9d6a",
-    "#afc4db",
-    "#7587a6",
-    "#9b859d",
-    "#9b703f",
-  ],
-  woodland: [
-    "#231e18",
-    "#302b25",
-    "#48413a",
-    "#9d8b70",
-    "#b4a490",
-    "#cabcb1",
-    "#d7c8bc",
-    "#e4d4c8",
-    "#d35c5c",
-    "#ca7f32",
-    "#e0ac16",
-    "#b7ba53",
-    "#6eb958",
-    "#88a4d3",
-    "#bb90e2",
-    "#b49368",
-  ],
-  zenburn: [
-    "#383838",
-    "#404040",
-    "#606060",
-    "#6f6f6f",
-    "#808080",
-    "#dcdccc",
-    "#c0c0c0",
-    "#ffffff",
-    "#dca3a3",
-    "#dfaf8f",
-    "#e0cf9f",
-    "#5f7f5f",
-    "#93e0e3",
-    "#7cb8bb",
-    "#dc8cc3",
-    "#000000",
-  ],
-}
- 
-export const availableThemes = Object.keys(themes)
- 
-export const themeStyles = (nameOrObject) => {
-  let theme
-  if (typeof nameOrObject === "string") {
-    if (themes[nameOrObject] === undefined) {
-      throw new Error(`${nameOrObject} not found`)
-    }
-    theme = themes[nameOrObject].reduce((map, v, i) => {
-      const key = `base0${i.toString(16).toUpperCase()}`
-      map[key] = v
-      return map
-    }, {})
-  } else {
-    theme = nameOrObject
-  }
- 
-  return `.container{${Object.keys(theme)
-    .map((key) => `--${key}: ${theme[key]};`)
-    .join("")}}`
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/src/validator.js.html b/coverage/lcov-report/src/validator.js.html deleted file mode 100644 index a659d6d..0000000 --- a/coverage/lcov-report/src/validator.js.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - Code coverage report for src/validator.js - - - - - - - - - -
-
-

All files / src validator.js

-
- -
- 100% - Statements - 42/42 -
- - -
- 97.22% - Branches - 35/36 -
- - -
- 100% - Functions - 5/5 -
- - -
- 100% - Lines - 31/31 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -512x -11x -7x -6x -  -3x -  -  -2x -4x -  -1x -  -  -2x -7x -5x -4x -  -5x -3x -  -2x -  -  -2x -12x -9x -7x -5x -4x -4x -4x -  -  -2x -  -  -2x -28x -27x -26x -26x -  -25x -  -  -  -1x -  - 
export const validateBoolean = (value) => {
-  if (typeof value === "boolean") return value
-  if (value === "true") return true
-  else if (value === "false") return false
- 
-  throw new Error(`should be a boolean!`)
-}
- 
-export const validateString = (value) => {
-  if (typeof value === "string") return value
- 
-  throw new Error(`should be a string!`)
-}
- 
-export const validatePositiveNumber = (value) => {
-  if (typeof value === "number" && value >= 0) return value
-  if (typeof value === "string") {
-    value = parseFloat(value)
-  }
-  if (isNaN(value) || value < 0) {
-    throw new Error(`should be a positive number!`)
-  }
-  return value
-}
- 
-export const validateBooleanOrPositiveNumber = (value) => {
-  if (typeof value === "boolean") return value
-  if (typeof value === "number") return value
-  if (value === "true") return true
-  else if (value === "false") return false
-  else Eif (typeof value === "string") {
-    value = parseFloat(value)
-    if (!isNaN(value) && value >= 0) return value
-  }
- 
-  throw new Error(`should be a boolean or a positive number!`)
-}
- 
-export const validateStringOrJson = (value) => {
-  if (typeof value === "object") return value
-  if (typeof value === "string") {
-    try {
-      return JSON.parse(value)
-    } catch (e) {
-      return value
-    }
-  }
- 
-  throw new Error(`should be a string or JSON!`)
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov.info b/coverage/lcov.info deleted file mode 100644 index 3a49888..0000000 --- a/coverage/lcov.info +++ /dev/null @@ -1,823 +0,0 @@ -TN: -SF:src/component.js -FN:43,(anonymous_0) -FN:65,(anonymous_1) -FN:67,(anonymous_2) -FN:74,(anonymous_3) -FN:78,(anonymous_4) -FN:93,(anonymous_5) -FN:97,(anonymous_6) -FN:101,(anonymous_7) -FN:105,(anonymous_8) -FN:113,(anonymous_9) -FN:121,(anonymous_10) -FN:125,(anonymous_11) -FN:132,(anonymous_12) -FN:152,(anonymous_13) -FN:163,(anonymous_14) -FN:164,(anonymous_15) -FN:177,(anonymous_16) -FN:181,(anonymous_17) -FN:182,(anonymous_18) -FN:189,(anonymous_19) -FN:195,(anonymous_20) -FN:203,(anonymous_21) -FNF:22 -FNH:13 -FNDA:21,(anonymous_0) -FNDA:2,(anonymous_1) -FNDA:18,(anonymous_2) -FNDA:6,(anonymous_3) -FNDA:16,(anonymous_4) -FNDA:3,(anonymous_5) -FNDA:0,(anonymous_6) -FNDA:3,(anonymous_7) -FNDA:2,(anonymous_8) -FNDA:5,(anonymous_9) -FNDA:0,(anonymous_10) -FNDA:3,(anonymous_11) -FNDA:23,(anonymous_12) -FNDA:0,(anonymous_13) -FNDA:0,(anonymous_14) -FNDA:0,(anonymous_15) -FNDA:18,(anonymous_16) -FNDA:0,(anonymous_17) -FNDA:0,(anonymous_18) -FNDA:0,(anonymous_19) -FNDA:0,(anonymous_20) -FNDA:10,(anonymous_21) -DA:25,1 -DA:44,21 -DA:46,21 -DA:48,21 -DA:51,21 -DA:52,21 -DA:53,21 -DA:55,21 -DA:56,21 -DA:59,21 -DA:61,21 -DA:67,2 -DA:68,18 -DA:72,1 -DA:74,21 -DA:75,6 -DA:78,21 -DA:79,16 -DA:80,16 -DA:81,12 -DA:82,1 -DA:84,11 -DA:86,10 -DA:87,10 -DA:89,5 -DA:94,3 -DA:98,0 -DA:102,3 -DA:106,2 -DA:114,5 -DA:122,0 -DA:126,3 -DA:133,23 -DA:134,23 -DA:136,23 -DA:140,1 -DA:142,22 -DA:143,21 -DA:145,1 -DA:153,0 -DA:154,0 -DA:156,0 -DA:158,0 -DA:159,0 -DA:161,0 -DA:162,0 -DA:163,0 -DA:165,0 -DA:166,0 -DA:169,0 -DA:170,0 -DA:173,0 -DA:178,18 -DA:182,0 -DA:183,0 -DA:184,0 -DA:185,0 -DA:193,0 -DA:195,0 -DA:196,0 -DA:198,0 -DA:199,0 -DA:203,21 -DA:206,10 -DA:219,1 -LF:65 -LH:41 -BRDA:75,0,0,0 -BRDA:75,0,1,6 -BRDA:81,1,0,1 -BRDA:81,1,1,11 -BRDA:81,2,0,12 -BRDA:81,2,1,2 -BRDA:84,3,0,1 -BRDA:84,3,1,10 -BRDA:136,4,0,1 -BRDA:136,4,1,22 -BRDA:137,5,0,23 -BRDA:137,5,1,22 -BRDA:158,6,0,0 -BRDA:158,6,1,0 -BRDA:161,7,0,0 -BRDA:161,7,1,0 -BRDA:185,8,0,0 -BRDA:185,8,1,0 -BRDA:193,9,0,0 -BRDA:193,9,1,0 -BRF:20 -BRH:11 -end_of_record -TN: -SF:src/data-helpers.js -FN:2,(anonymous_0) -FN:13,(anonymous_1) -FN:33,(anonymous_2) -FN:48,(anonymous_3) -FN:52,(anonymous_4) -FNF:5 -FNH:5 -FNDA:11,(anonymous_0) -FNDA:79,(anonymous_1) -FNDA:9,(anonymous_2) -FNDA:45,(anonymous_3) -FNDA:15,(anonymous_4) -DA:2,4 -DA:3,11 -DA:5,11 -DA:8,9 -DA:13,4 -DA:14,79 -DA:15,77 -DA:16,76 -DA:18,76 -DA:19,76 -DA:20,4 -DA:21,3 -DA:22,2 -DA:24,72 -DA:26,71 -DA:27,0 -DA:29,71 -DA:33,4 -DA:35,9 -DA:48,9 -DA:49,45 -DA:50,5 -DA:51,40 -DA:52,3 -DA:53,15 -DA:54,0 -DA:55,15 -DA:56,0 -DA:58,15 -DA:60,37 -DA:61,4 -DA:64,33 -DA:68,9 -LF:33 -LH:30 -BRDA:14,0,0,2 -BRDA:14,0,1,77 -BRDA:15,1,0,1 -BRDA:15,1,1,76 -BRDA:16,2,0,0 -BRDA:16,2,1,76 -BRDA:19,3,0,4 -BRDA:19,3,1,72 -BRDA:20,4,0,1 -BRDA:20,4,1,3 -BRDA:21,5,0,1 -BRDA:21,5,1,2 -BRDA:22,6,0,1 -BRDA:22,6,1,1 -BRDA:24,7,0,1 -BRDA:24,7,1,71 -BRDA:26,8,0,0 -BRDA:26,8,1,71 -BRDA:26,9,0,71 -BRDA:26,9,1,33 -BRDA:49,10,0,5 -BRDA:49,10,1,40 -BRDA:51,11,0,3 -BRDA:51,11,1,37 -BRDA:53,12,0,0 -BRDA:53,12,1,15 -BRDA:55,13,0,0 -BRDA:55,13,1,15 -BRDA:60,14,0,4 -BRDA:60,14,1,33 -BRF:30 -BRH:26 -end_of_record -TN: -SF:src/themes.js -FN:1430,(anonymous_0) -FN:1436,(anonymous_1) -FN:1446,(anonymous_2) -FNF:3 -FNH:3 -FNDA:26,(anonymous_0) -FNDA:384,(anonymous_1) -FNDA:400,(anonymous_2) -DA:21,2 -DA:1428,2 -DA:1430,2 -DA:1432,26 -DA:1433,25 -DA:1434,1 -DA:1436,24 -DA:1437,384 -DA:1438,384 -DA:1439,384 -DA:1442,1 -DA:1445,25 -DA:1446,400 -LF:13 -LH:13 -BRDA:1432,0,0,25 -BRDA:1432,0,1,1 -BRDA:1433,1,0,1 -BRDA:1433,1,1,24 -BRF:4 -BRH:4 -end_of_record -TN: -SF:src/validator.js -FN:1,(anonymous_0) -FN:9,(anonymous_1) -FN:15,(anonymous_2) -FN:26,(anonymous_3) -FN:39,(anonymous_4) -FNF:5 -FNH:5 -FNDA:11,(anonymous_0) -FNDA:4,(anonymous_1) -FNDA:7,(anonymous_2) -FNDA:12,(anonymous_3) -FNDA:28,(anonymous_4) -DA:1,2 -DA:2,11 -DA:3,7 -DA:4,6 -DA:6,3 -DA:9,2 -DA:10,4 -DA:12,1 -DA:15,2 -DA:16,7 -DA:17,5 -DA:18,4 -DA:20,5 -DA:21,3 -DA:23,2 -DA:26,2 -DA:27,12 -DA:28,9 -DA:29,7 -DA:30,5 -DA:31,4 -DA:32,4 -DA:33,4 -DA:36,2 -DA:39,2 -DA:40,28 -DA:41,27 -DA:42,26 -DA:43,26 -DA:45,25 -DA:49,1 -LF:31 -LH:31 -BRDA:2,0,0,4 -BRDA:2,0,1,7 -BRDA:3,1,0,1 -BRDA:3,1,1,6 -BRDA:4,2,0,3 -BRDA:4,2,1,3 -BRDA:10,3,0,3 -BRDA:10,3,1,1 -BRDA:16,4,0,2 -BRDA:16,4,1,5 -BRDA:16,5,0,7 -BRDA:16,5,1,3 -BRDA:17,6,0,4 -BRDA:17,6,1,1 -BRDA:20,7,0,3 -BRDA:20,7,1,2 -BRDA:20,8,0,5 -BRDA:20,8,1,3 -BRDA:27,9,0,3 -BRDA:27,9,1,9 -BRDA:28,10,0,2 -BRDA:28,10,1,7 -BRDA:29,11,0,2 -BRDA:29,11,1,5 -BRDA:30,12,0,1 -BRDA:30,12,1,4 -BRDA:31,13,0,4 -BRDA:31,13,1,0 -BRDA:33,14,0,2 -BRDA:33,14,1,2 -BRDA:33,15,0,4 -BRDA:33,15,1,2 -BRDA:40,16,0,1 -BRDA:40,16,1,27 -BRDA:41,17,0,26 -BRDA:41,17,1,1 -BRF:36 -BRH:35 -end_of_record -TN: -SF:src/renderer/container.js -FN:4,Container -FN:13,(anonymous_1) -FN:35,(anonymous_2) -FN:55,(anonymous_3) -FN:65,(anonymous_4) -FNF:5 -FNH:3 -FNDA:42,Container -FNDA:81,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:2,(anonymous_3) -FNDA:0,(anonymous_4) -DA:5,42 -DA:6,42 -DA:7,42 -DA:8,42 -DA:9,42 -DA:11,42 -DA:13,42 -DA:24,81 -DA:25,9 -DA:27,9 -DA:28,8 -DA:30,8 -DA:36,0 -DA:37,0 -DA:40,8 -DA:41,8 -DA:42,0 -DA:43,0 -DA:44,0 -DA:48,81 -DA:49,25 -DA:50,25 -DA:51,3 -DA:52,3 -DA:56,2 -DA:57,2 -DA:58,2 -DA:59,2 -DA:60,2 -DA:63,2 -DA:66,0 -DA:69,3 -DA:70,3 -DA:72,22 -DA:73,22 -DA:77,81 -DA:79,81 -DA:80,26 -DA:81,26 -DA:84,81 -DA:85,24 -DA:86,24 -DA:88,81 -DA:89,2 -DA:93,81 -DA:94,28 -DA:95,28 -DA:98,81 -DA:99,26 -DA:100,26 -DA:103,81 -DA:104,28 -DA:105,28 -DA:108,81 -DA:112,24 -DA:113,24 -DA:114,24 -DA:118,42 -LF:58 -LH:52 -BRDA:4,0,0,21 -BRDA:24,1,0,9 -BRDA:24,1,1,72 -BRDA:27,2,0,8 -BRDA:27,2,1,1 -BRDA:36,3,0,0 -BRDA:36,3,1,0 -BRDA:41,4,0,0 -BRDA:41,4,1,8 -BRDA:41,5,0,8 -BRDA:41,5,1,0 -BRDA:48,6,0,25 -BRDA:48,6,1,56 -BRDA:48,7,0,81 -BRDA:48,7,1,35 -BRDA:50,8,0,3 -BRDA:50,8,1,22 -BRDA:51,9,0,3 -BRDA:51,9,1,0 -BRDA:57,10,0,2 -BRDA:57,10,1,0 -BRDA:66,11,0,0 -BRDA:66,11,1,0 -BRDA:69,12,0,0 -BRDA:69,12,1,3 -BRDA:73,13,0,1 -BRDA:73,13,1,21 -BRDA:79,14,0,26 -BRDA:79,14,1,55 -BRDA:79,15,0,81 -BRDA:79,15,1,32 -BRDA:84,16,0,24 -BRDA:84,16,1,57 -BRDA:84,17,0,81 -BRDA:84,17,1,32 -BRDA:88,18,0,2 -BRDA:88,18,1,79 -BRDA:88,19,0,81 -BRDA:88,19,1,29 -BRDA:93,20,0,28 -BRDA:93,20,1,53 -BRDA:93,21,0,81 -BRDA:93,21,1,36 -BRDA:98,22,0,26 -BRDA:98,22,1,55 -BRDA:98,23,0,81 -BRDA:98,23,1,36 -BRDA:103,24,0,28 -BRDA:103,24,1,53 -BRDA:103,25,0,81 -BRDA:103,25,1,36 -BRDA:108,26,0,24 -BRDA:108,26,1,57 -BRDA:109,27,0,81 -BRDA:109,27,1,34 -BRF:55 -BRH:46 -end_of_record -TN: -SF:src/renderer/data-row.js -FN:3,(anonymous_0) -FN:30,(anonymous_1) -FN:53,(anonymous_2) -FN:65,(anonymous_3) -FN:86,(anonymous_4) -FN:107,(anonymous_5) -FN:108,(anonymous_6) -FN:150,(anonymous_7) -FN:160,(anonymous_8) -FN:202,(anonymous_9) -FN:217,(anonymous_10) -FNF:11 -FNH:6 -FNDA:68,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,(anonymous_2) -FNDA:0,(anonymous_3) -FNDA:0,(anonymous_4) -FNDA:2,(anonymous_5) -FNDA:36,(anonymous_6) -FNDA:0,(anonymous_7) -FNDA:6,(anonymous_8) -FNDA:10,(anonymous_9) -FNDA:5,(anonymous_10) -DA:3,3 -DA:12,68 -DA:13,68 -DA:15,68 -DA:16,68 -DA:17,68 -DA:21,68 -DA:22,68 -DA:23,68 -DA:24,68 -DA:26,68 -DA:27,68 -DA:28,68 -DA:30,68 -DA:31,0 -DA:32,0 -DA:33,0 -DA:34,0 -DA:36,0 -DA:42,68 -DA:43,33 -DA:44,33 -DA:45,33 -DA:48,33 -DA:49,33 -DA:50,33 -DA:51,33 -DA:53,33 -DA:57,68 -DA:59,59 -DA:60,59 -DA:61,59 -DA:64,59 -DA:65,59 -DA:66,59 -DA:69,59 -DA:70,59 -DA:71,59 -DA:72,59 -DA:75,68 -DA:77,33 -DA:78,33 -DA:79,33 -DA:80,33 -DA:83,33 -DA:84,33 -DA:85,33 -DA:86,33 -DA:87,33 -DA:90,33 -DA:91,33 -DA:92,33 -DA:93,33 -DA:96,33 -DA:98,33 -DA:99,33 -DA:100,33 -DA:101,33 -DA:104,33 -DA:107,33 -DA:108,33 -DA:109,36 -DA:117,36 -DA:118,36 -DA:119,36 -DA:123,33 -DA:124,33 -DA:125,33 -DA:127,33 -DA:130,35 -DA:131,35 -DA:132,28 -DA:133,28 -DA:134,28 -DA:137,35 -DA:138,35 -DA:139,35 -DA:140,35 -DA:141,35 -DA:142,35 -DA:143,35 -DA:147,68 -DA:148,68 -DA:149,68 -DA:150,68 -DA:151,0 -DA:154,68 -DA:155,68 -DA:156,68 -DA:157,68 -DA:160,68 -DA:161,6 -DA:162,6 -DA:164,6 -DA:167,6 -DA:171,6 -DA:172,1 -DA:180,6 -DA:181,3 -DA:183,3 -DA:186,3 -DA:190,3 -DA:191,1 -DA:202,68 -DA:203,10 -DA:204,1 -DA:207,10 -DA:208,2 -DA:209,2 -DA:210,2 -DA:212,10 -DA:213,6 -DA:216,10 -DA:217,5 -DA:220,68 -LF:115 -LH:109 -BRDA:10,0,0,32 -BRDA:16,1,0,68 -BRDA:16,1,1,67 -BRDA:17,2,0,68 -BRDA:17,2,1,48 -BRDA:21,3,0,24 -BRDA:21,3,1,44 -BRDA:24,4,0,36 -BRDA:24,4,1,32 -BRDA:32,5,0,0 -BRDA:32,5,1,0 -BRDA:33,6,0,0 -BRDA:33,6,1,0 -BRDA:42,7,0,33 -BRDA:42,7,1,35 -BRDA:50,8,0,12 -BRDA:50,8,1,21 -BRDA:57,9,0,59 -BRDA:57,9,1,9 -BRDA:57,10,0,68 -BRDA:57,10,1,68 -BRDA:62,11,0,2 -BRDA:62,11,1,57 -BRDA:64,12,0,2 -BRDA:64,12,1,57 -BRDA:75,13,0,33 -BRDA:75,13,1,35 -BRDA:79,14,0,1 -BRDA:79,14,1,32 -BRDA:92,15,0,1 -BRDA:92,15,1,32 -BRDA:98,16,0,1 -BRDA:98,16,1,32 -BRDA:100,17,0,30 -BRDA:100,17,1,3 -BRDA:107,18,0,1 -BRDA:107,18,1,32 -BRDA:126,19,0,1 -BRDA:126,19,1,32 -BRDA:131,20,0,28 -BRDA:131,20,1,7 -BRDA:140,21,0,28 -BRDA:140,21,1,7 -BRDA:141,22,0,28 -BRDA:141,22,1,7 -BRDA:161,23,0,6 -BRDA:161,23,1,0 -BRDA:167,24,0,2 -BRDA:167,24,1,4 -BRDA:167,25,0,6 -BRDA:167,25,1,6 -BRDA:167,25,2,6 -BRDA:171,26,0,1 -BRDA:171,26,1,5 -BRDA:180,27,0,3 -BRDA:180,27,1,3 -BRDA:186,28,0,1 -BRDA:186,28,1,2 -BRDA:186,29,0,3 -BRDA:186,29,1,3 -BRDA:186,29,2,3 -BRDA:190,30,0,1 -BRDA:190,30,1,2 -BRDA:203,31,0,1 -BRDA:203,31,1,9 -BRDA:203,32,0,10 -BRDA:203,32,1,2 -BRDA:207,33,0,2 -BRDA:207,33,1,8 -BRDA:208,34,0,2 -BRDA:208,34,1,0 -BRDA:210,35,0,1 -BRDA:210,35,1,1 -BRDA:210,36,0,1 -BRDA:210,36,1,0 -BRDA:212,37,0,6 -BRDA:212,37,1,4 -BRDA:212,38,0,10 -BRDA:212,38,1,6 -BRDA:216,39,0,5 -BRDA:216,39,1,5 -BRF:81 -BRH:74 -end_of_record -TN: -SF:src/renderer/toolbar.js -FN:1,(anonymous_0) -FN:34,(anonymous_1) -FN:44,(anonymous_2) -FN:57,(anonymous_3) -FN:69,(anonymous_4) -FN:81,(anonymous_5) -FN:93,(anonymous_6) -FN:109,(anonymous_7) -FN:114,(anonymous_8) -FNF:9 -FNH:9 -FNDA:18,(anonymous_0) -FNDA:1,(anonymous_1) -FNDA:1,(anonymous_2) -FNDA:1,(anonymous_3) -FNDA:1,(anonymous_4) -FNDA:1,(anonymous_5) -FNDA:3,(anonymous_6) -FNDA:1,(anonymous_7) -FNDA:1,(anonymous_8) -DA:1,3 -DA:8,18 -DA:9,18 -DA:10,18 -DA:11,18 -DA:15,18 -DA:16,18 -DA:19,18 -DA:20,18 -DA:21,18 -DA:24,18 -DA:25,18 -DA:26,18 -DA:29,18 -DA:30,18 -DA:31,18 -DA:32,18 -DA:33,18 -DA:34,18 -DA:35,18 -DA:38,18 -DA:39,18 -DA:40,18 -DA:41,18 -DA:42,18 -DA:43,18 -DA:44,18 -DA:45,1 -DA:46,1 -DA:50,18 -DA:51,18 -DA:52,18 -DA:54,18 -DA:55,18 -DA:56,18 -DA:57,18 -DA:58,1 -DA:59,1 -DA:60,1 -DA:64,18 -DA:65,18 -DA:66,18 -DA:67,18 -DA:68,18 -DA:69,18 -DA:70,1 -DA:71,1 -DA:73,18 -DA:76,18 -DA:77,18 -DA:78,18 -DA:79,18 -DA:80,18 -DA:81,18 -DA:82,1 -DA:83,1 -DA:85,18 -DA:88,18 -DA:89,18 -DA:90,18 -DA:91,18 -DA:92,18 -DA:93,18 -DA:94,3 -DA:95,3 -DA:96,3 -DA:100,18 -DA:103,18 -DA:104,18 -DA:105,18 -DA:106,18 -DA:107,18 -DA:108,18 -DA:109,18 -DA:110,1 -DA:112,18 -DA:114,18 -DA:115,1 -DA:116,1 -DA:117,1 -DA:118,1 -DA:119,1 -DA:122,18 -LF:83 -LH:83 -BRDA:8,0,0,18 -BRDA:8,0,1,16 -BRDA:9,1,0,2 -BRDA:9,1,1,16 -BRDA:10,2,0,18 -BRDA:10,2,1,17 -BRDA:45,3,0,1 -BRDA:45,3,1,0 -BRDA:58,4,0,0 -BRDA:58,4,1,1 -BRDA:59,5,0,1 -BRDA:59,5,1,0 -BRDA:92,6,0,18 -BRDA:92,6,1,0 -BRDA:117,7,0,1 -BRDA:117,7,1,0 -BRF:16 -BRH:11 -end_of_record diff --git a/demo/assets/Logo_JV1.png b/demo/assets/Logo_JV1.png deleted file mode 100644 index 862c996d7aa1ae13dec696d44e5115e802dd28f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74693 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 diff --git a/demo/assets/android-chrome-192x192.png b/demo/assets/android-chrome-192x192.png deleted file mode 100644 index 88e73a5484d1a3806f65c00faca28adf8db9cf2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4117 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 KYhG=JzxQ9bnVhl! diff --git a/demo/assets/android-chrome-512x512.png b/demo/assets/android-chrome-512x512.png deleted file mode 100644 index a9644c935aa209f1527aa4d4e7e033632fea8a3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12942 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 diff --git a/demo/assets/apple-touch-icon.png b/demo/assets/apple-touch-icon.png deleted file mode 100644 index edbf499a3092cda1a2ae24ce113fbcd1cad4be0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3824 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 diff --git a/demo/assets/favicon-16x16.png b/demo/assets/favicon-16x16.png deleted file mode 100644 index 615ba71a36df9ec0ed1a98508eb8619d5f7968a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>wS7kTt{t z&Zz$^Id>Xzx7?O@uy8-Dd8uGuO#U(fsdxR$Z`SO!U#5`K<61Md)2F_cvHK0@#d(L^ zJ%A2UEpd$~Nl7e8wMs5Z1yT$~21drZh6cJurXdEVR;FfFMi$xz237_J@4RMfqG-s? zPsvQH#I0ezxbjq>hVZJ8h?1bha)pAT{ItxRRE3htf>edff|6tghKf0lKk;xBhG}S= z@;`mX^Jx$Rvog0{GPkg@u=ivUW?==F29v`n%*vZX6i(l`a^lFDBQi(WPd9ih@X}*= WB`#R<$;lLC1%s!npUXO@geCy_Od*B< diff --git a/demo/assets/favicon-32x32.png b/demo/assets/favicon-32x32.png deleted file mode 100644 index 3cfbd95119085931c4fff414e254b32a39a52e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1090 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081EYI@Plzi}!HaUe*QL78 z%XA*(%D*Vn269IcNg?q6|NqRV_W8h|%q|J?3kK3az*E$n&g$OPsnS#?cI_~S^T%T% zj6MG*aIvlUouK{jhB~+FA)$`CH9w;@?%z@M_`Hw5nRES*@OwUAcJbD?Z~hjfbW6*B zYt{DL%a3)%gTKG~)93Pu@2UQ;lu1l~C+>Y_)Zk>bD3N)ha*8z2F2*EpcbA+qj0V;~ z4tt5GuPgg=E=g7knWc$~3xU#do-U3d7N?(13J*UNAkboLCg2jt=-SKcvW7#+BcSWp zJ?^rj_n!UVKRd~Q)AAp~+~w8f`;61e-;1`?YiML`5c7F1HhuTi$GM*?d$n#^*VGAL zxOw!QgTaw`ak36O`u{SUImpO7`p_ZQc#&gqvYA5LM}fz}S`EiMi?~W15@s21&SDWN z_F49d@yzm_6B;koPdjsnG2%?%DecG0CdGKo_#@Tul&M>FfzLVegz-%-4q=k}BJQki8R7S$%|D_D>N#?(opMOp4 zt^D$?`+xQ?*OyhY<0)X~y#@?C)e_f;l9a@fRIB8oR3OD*WME{hYiOWrWEx^%YGrC> zWn`gkU|?ln@Xl+tCW?mK{FKbJO57Ueiz`nBY6!0ii6{w5ELSKf%1_J8NmVGREJ#(z zEGS84V5pe$_!AFDVVH)-DgV=FJf8+JFe`KGC36ca3wuu%VHQ?!X)rmQ!mPYGMB(&} nD<_VeIU;j}{d9xJ0xvy=SK@*tpPWoVRxo(F`njxgN@xNAPu|Kk diff --git a/demo/assets/favicon.ico b/demo/assets/favicon.ico deleted file mode 100644 index 39be63b3894e9724f4c3846c1ff55ee5176e2775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 zcmeI23y2j}7{_N@b$#!qWtrtJp=3oRk+LYZ_OP^k^kQGEP zD|#ZmGqm?Zx7rTJ_+&SCXac1t^ySrdH1HXG7-|NhG@0>aJ z%s5VwQ|t^M?od`ZtA;wxNXKz1D*Set<7}s|j8gLXT^wf_3d7LB#F-1~_l_aiBK=G= zkY*swK$?Lx18D}*3>?WBICIhN32;e)T!`JN(7io5#J(F$hvhH{Sj8nf(A^Jz!GS!H zO%v>fmtiy%C5zft3%fb+JGihHCbiXwZlQb7x07vq$Y4J)I#Rd`uiQPhdev-J-LAMM( zwCs%^m8+pwE??;MhCT%#yMgcm*m0l871PMEn+>{#Yy?||Vp#3WC9-TFI`NjYIK+M-^CmH`t^fdRGd^b>k3jVbEG$)Ne+{VwC^m~2F z8mG=dzxNa2qd@;lwA*!mi93IM=be9Srh=Vk)i3kE&nv0h^HC%1adBg4j||^=jUWA9 zum;TUMy0-sKK}UoQ~x+1Uq!p5J>!hB#c#gjpNx&>cQbxn12b*^wC906FYDSk&(`Uv zI(`$6AKjjy>)VW7rRJbgdpxv{g-^lOdyaNDTdyPP_{?YgS|^%yj>e`n*PO6%(0?u1 z^Xad&&kfUUPai%LjUT-p@Cw*DT}S)qu=w;J2O9(WnqRwy=@;6Ezog^82;JYT@o0{@ zDlRVa>%m^1{Y-mwoK3zm{N)@!I^7|-&d|E6e_TA|TAzFY_ILI;?VR_=IKQ?GUrEM) z0eYH4%s4c+Tx0u*s-t%kXkBP*_fW5l($BXaU$NsyuK!lggNd*5GZ>I07J7r=OR()9 zrCprFK9>%Da*cm1I{Hs#;%iR1E|*_hj{YrRe+NI&9%1VgTE|c1_>pymr@@R}<>zpG zKJm~W3}1om=Rw--{toaFH~ulmf3f0fF1azEu^V0N7Fm9D9zVb+BQLbXhwd}_Zq2<$ zYxXWanky8`$Tm?QR7foBDqt%Zf6B$Ph4`{<@NqKC@R>$N>LI zkIHqX=v2ef1S~}7d`R@n2tEDZ)*j8(5V@a%O#k=w-#-ca(7PYJXDU(WhP)Ks2l@OF z&W_R5GbTN2&4tCIsFskIjqx?fIzUw8*h zY?ay*Ix8v%N&2zZzWp~Kf9s)Vm>vDoVLwPu&n8UX?xkMP9*g2&I{>zU{MNxC&+zHf zv-dYaI(nY60JivTy~lAz*qD>_VVflW6!i3aQv5Zb=TeLPw)*adf^vXeY<%Rs;0;h5 zjbWOfH|>Lc>-X=ZJT1xj26eE@6@MZ+x;_`&i-sJxSX!G1rf#|F8<k->=Lfm=itho%*WUVlar(9l zUCnK}2WSq_-h5ZkKK5O3r|PzTR2{t`aJz4_FiJ1&Pcx8a;Qyb2?0!V_=hCVc*C}bP zhAKDHB+A`Pqgdf)GNRti)QdVdvm%qFywS~+H@N$&4n%v-N^~REwnPQA?o)KwTL?Hk zOb+H--K&Cx{x9g-`t;n^M)$zA(E2VW^{JqB z#AZ0b_7SWjzZJHE_r3|G)}ZqDHSC53K^wb`d@*bT@4iVn8TP<5cnCH@R*qC33A-Tjod#sazKr?=Q0y5RBc+~oKM5OQpgnF=r(gCu|C3-fXzkb6l8>gX zF)T8Dc1izicmzhki!eDL*YD*HSZVj0I{n2U9gVdF4*8Gi%M$%(H+~PtGP`H0ebX$( ZdzmkGInKd)*aDBi+b{-}{Htg5{{f^Wu;c&$ diff --git a/demo/assets/mstile-150x150.png b/demo/assets/mstile-150x150.png deleted file mode 100644 index 87a1be707eb83206e0b76a6923bec23ec9423b03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2587 zcmd5+c~H|y7XASW2s$H(Tmk}FIfcY3JN$}qmo1gVE{P{M2K<2p}`3Vk$^CvYHO;tYSvn+_K)rAuGjDT-h2J}b=S-B z@pj!KqbdUcz#exuCtm;%`)+GVONbBzZWmc3c0}5H*#p3XLfQ4Oog!Tm?dIzR0I50v zknuAB2t`oFEC3`y0AT(U09cg*fKoi=*W)$-Ab!io6X`56m`^gEBO1?=wl`-;M%!>9 zZpV0=nQSAC|Le&AD$&e0YV|kNUxoc^v%Pox-&Suszv915cyn`8SsU&z`l-_dU+)uu zn7GR=s&n9NpTjq@u`$O!(e{ZKt))oT2vOkoFAvy1krT`R8ZEVY@?F1*6Tjp8oDH1x zJ;4w9(}Qk{ZF@2kcQvl)uwJWsd~TNgk=W$Erhx|jlE2CDeN7$Y9eJrb2CcIuk= zE4Ja&S<~3y(%;|i?Vh*52MmALo|J~HI5@_$B~?F6@RGUjzEoHLe1GlH2V!w(@z&xh zGk;217c6MUFDI-|SJF931{cr617svrMRyfD?cwUgMoACc5-CyycQ0qD85xzGFg0pe zH68$Vg4~_#k;zQn#3~AjQDE@PFX#uJIwGG{bn&Kl(28Y9-|!Me z1$iAz6eh6DBf6@%zVsHRo!1g|c3r>o>9oym6M^0PNlTMXyH8VGo8G=vD7bS1Ch9fc z9{gEp$H+?5naakA&%<$Z@t+a!4gaBx{-;F}SKAGL!jjxA;fi}kMT{D2kXPF85Pcn) zr54lr0zcQJ13|V^Yw1P!4kR@DO>BZgNu5f17185({<9b6T^hRi_uqgbYwDh>Q(4Ea zah@O0qplB{pRLI&+OJztwFSj{+j>Q#8G#>Xo z=PjSo*_4pOw46gXg088e3KAc#@wEz?+z zBTofu4s)Xg@6c+TxS}6Z9u@gbrIz6?}+{ul)ZH9 z7+nJ^(@b=4_EcWIOw>(h3^pO@8lj_SqdtJ3H4o`fzFJe@LgaL zUQQZ#&o>4f?s8r%*u!>6#Y=nf;#MblLNukD0C#&J{)fI zAYZ%9a=?m^=GfT|`|b}RciKWC5Xau)OD)0@$2Lxkce)xhScJ(JI;(Mwgmg)Uei|ZF zNiY_t$;Fp`A8!iAQ^e@Q_Mga67JJuVeT=g!>6iJH9n9vSwI#!zFuV2r0n3Bflx4m# zZ=g{wd-cq8D5n%n_vRHg$}@DiKULEYT~-f8NFJgfsFq}@@K=mWnSw<0uE++0An<+Q z+R!r^f7O$RI2d~n^Xxn6XT_VXHjWd}2+95!-tU=g1kyEw!Zv*UrthPZI>T-4m0E z=^FxOh)|WWk-uU{HCfq?FKuPGuBoFhd&AE2^6Q`>!4NGPwV?X+vX z*=A*Z8=SkrSoCYDx4x`*JMP=P=x^A)gHt0<>bkIWl{^u9h~OMR2oED*tk4MiN|P0#S_o~kWAq$?v}>;>FK>h^!B;`(-)8c$r__&_ks3#Tvd?Rr|Fbo v`Yc=m)Qr^Z9e@42r>{q?N2)i&?Izq9m{*b`EIOEN9RavIdpk8aoVxHQ7v;>z diff --git a/demo/build/index.js b/demo/build/index.js deleted file mode 100644 index e0d720e..0000000 --- a/demo/build/index.js +++ /dev/null @@ -1,28 +0,0 @@ - -/* -MIT License - -Copyright (c) 2025 Andreas Pfau - -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. - -*/ - -(()=>{var q=`.container{background-color:var(--base00);color:var(--base05);padding:10px;letter-spacing:0.5px;font-family:monospace;border-radius:3px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:5px;border-bottom:solid 1px var(--base02)}.toolbar .options,.toolbar .search-wrapper{display:flex;align-items:center}.toolbar .icon-wrapper{height:15px;display:flex;align-items:center;padding:2px 5px}.toolbar .icon-wrapper:hover{background-color:var(--base02);border-radius:3px}.toolbar .icon-wrapper:first-child{margin-left:0px}.toolbar .search.icon{margin-right:5px}.toolbar .search-input{border:none;background:transparent;outline:none;flex:1;font-size:16px;color:var(--base0D)}.match{background-color:yellow;font-weight:bold;color:red}.data-row{padding:3px 0}.data-row .data-row{border-left:solid 1px var(--base02);padding-left:20px;margin-left:5px;display:none}.data-row.expanded>.data-row{display:block}.data-row .key-value-wrapper{display:flex;align-items:center}.data-row .key{color:var(--base07)}.data-row .key.number{color:var(--base0C)}.data-row .colon{color:var(--base07);margin:0 5px 0 0}.clickable{cursor:pointer}.data-row .opening-parenthesis,.data-row .closing-parenthesis{color:var(--base07)}.data-row .ellipsis{color:var(--base09)}.data-row.expanded>.key-value-wrapper .closing-parenthesis,.data-row.expanded>.key-value-wrapper .ellipsis{display:none}.data-row>.closing-parenthesis{display:none}.data-row.expanded>.closing-parenthesis{display:inline-block}.data-row .items-size{margin-left:10px;color:var(--base04);font-style:italic;display:none}.show-size .data-row .items-size{display:inline-block}.data-row .value.bool,.data-row .value.boolean{color:var(--base0E)}.data-row .value.function{color:var(--base0D)}.data-row .value.int,.data-row .value.integer{color:var(--base0F)}.data-row .value.float{color:var(--base0B)}.data-row .value.string{color:var(--base09)}.data-row .value.string .content{overflow-wrap:break-word}.data-row .value.string .content::before{content:open-quote}.data-row .value.string .content::after{content:close-quote}.data-row .value.regexp{color:var(--base0A)}.data-row .value.nan{color:var(--base08)}.data-row .value.null{color:var(--base0A)}.data-row .value.undefined{color:var(--base05)}.data-row .value.date{color:var(--base0D)}.data-row .value.nan,.data-row .value.null,.data-row .value.undefined{border-radius:3px;background-color:var(--base02);padding:1px 2px}.data-row .value .type{font-size:smaller;margin-right:4px;opacity:0.8;display:none}.data-row .value .value-data{word-break:break-all}.show-data-types .data-row .value .type{display:inline-block}.icon-wrapper,.copy-icon-wrapper{display:inline-block;cursor:pointer}.icon{display:block;position:relative}.icon:before,.icon:after{content:"";position:absolute;display:block}.expand.icon{margin-right:5px}.expand-icon-arrow .expand.icon{margin-left:3px;width:0;height:0;border-left:solid 6px var(--base0E);border-top:solid 6px transparent;border-bottom:solid 6px transparent}.expand-icon-arrow .expanded>.key-value-wrapper .expand.icon,.expand-icon-arrow .expanded.icon.expand{transform:rotate(90deg);border-left-color:var(--base0D)}.expand-icon-square .expand.icon,.expand-icon-circle .expand.icon{display:block;width:9px;height:9px;border-radius:2px;border:solid 1px var(--base0E)}.expand-icon-circle .expand.icon{border-radius:50%}.expand-icon-square .expand.icon:before,.expand-icon-circle .expand.icon:before,.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{width:5px;height:1px;background-color:var(--base0E);left:2px;top:4px}.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{transform:rotate(90deg)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-square .expand.icon.expanded:after,.expand-icon-circle .expand.icon.expanded:after{display:none}.expand-icon-square .expanded>.key-value-wrapper .expand.icon,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon,.expand-icon-square .expand.icon.expanded,.expand-icon-circle .expanded.expand.icon{border-color:var(--base0D)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-square .expanded.expand.icon:before,.expand-icon-circle .expanded.expand.icon:before{background-color:var(--base0D)}.icon-wrapper{display:inline-block;cursor:pointer}.show-copy .key-value-wrapper:hover .icon.copy{display:block}.copy.icon{margin-left:10px;display:none;width:8px;height:10px;border:solid 1px var(--base0D);border-radius:1px;position:relative;top:4px;transition:0.2s all}.copy.icon:active{transform:scale(1.6);background-color:var(--base0B)}.copy.icon:before{content:"";display:block;left:-3px;top:-3px;width:8px;height:10px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);border-radius:1px 0 0 0}.plus.icon{width:11px;height:1px;background-color:var(--base0D)}.plus.icon:after{content:"";width:11px;height:1px;background-color:var(--base0D);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.minus.icon{width:11px;height:1px;background-color:var(--base0D)}.indent.icon{color:var(--base0D);width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:before{content:"";position:absolute;top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:after{content:"";position:absolute;top:1px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px var(--base0D);border-right:solid 3px transparent}.outdent.icon{color:var(--base0D);margin-left:2px;width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:before{content:"";top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:after{content:"";top:1px;left:-3px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px transparent;border-right:solid 3px var(--base0D)}.refresh.icon{color:var(--base0D);width:10px;height:10px;border-radius:50%;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D);border-left:solid 1px transparent;border-right:solid 1px var(--base0D)}.refresh.icon:before{content:"";left:1px;top:8px;width:3px;height:3px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);-webkit-transform:rotate(-22.5deg);transform:rotate(-22.5deg)}.info.icon{width:12px;height:11px;border:solid 1px var(--base0D);border-radius:2px}.info.icon::before{top:5px;left:5px;width:2px;height:5px;background-color:var(--base0D)}.info.icon::after{top:2px;left:5px;width:2px;height:2px;background-color:var(--base0D)}.info.icon.active{background-color:var(--base0D)}.info.icon.active::before,.info.icon.active::after{background-color:var(--base02)}.search.icon{color:var(--base0D);width:11px;height:11px;border:solid 1px var(--base0D);border-radius:100%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.search.icon:before{content:"";top:11px;left:5px;height:6px;width:1px;background-color:var(--base0D)} -`;var A={apathy:["#031a16","#0b342d","#184e45","#2b685e","#5f9c92","#81b5ac","#a7cec8","#d2e7e4","#3e9688","#3e7996","#3e4c96","#883e96","#963e4c","#96883e","#4c963e","#3e965b"],ashes:["#1c2023","#393f45","#565e65","#747c84","#adb3ba","#c7ccd1","#dfe2e5","#f3f4f5","#c7ae95","#c7c795","#aec795","#95c7ae","#95aec7","#ae95c7","#c795ae","#c79595"],"atelier-dune-light":["#fefbec","#e8e4cf","#a6a28c","#999580","#7d7a68","#6e6b5e","#292824","#20201d","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],"atelier-dune":["#20201d","#292824","#6e6b5e","#7d7a68","#999580","#a6a28c","#e8e4cf","#fefbec","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],atlas:["#002635","#00384d","#517f8d","#6c8b91","#869696","#a1a19a","#e6e6dc","#fafaf8","#ff5a67","#f08e48","#ffcc1b","#7fc06e","#14747e","#5dd7b9","#9a70a4","#c43060"],bespin:["#28211c","#36312e","#5e5d5c","#666666","#797977","#8a8986","#9d9b97","#baae9e","#cf6a4c","#cf7d34","#f9ee98","#54be0d","#afc4db","#5ea6ea","#9b859d","#937121"],"black-metal":["#000000","#121212","#222222","#333333","#999999","#c1c1c1","#999999","#c1c1c1","#5f8787","#aaaaaa","#a06666","#dd9999","#aaaaaa","#888888","#999999","#444444"],brewer:["#0c0d0e","#2e2f30","#515253","#737475","#959697","#b7b8b9","#dadbdc","#fcfdfe","#e31a1c","#e6550d","#dca060","#31a354","#80b1d3","#3182bd","#756bb1","#b15928"],bright:["#000000","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ffffff","#fb0120","#fc6d24","#fda331","#a1c659","#76c7b7","#6fb3d2","#d381c3","#be643c"],brogrammer:["#1f1f1f","#f81118","#2dc55e","#ecba0f","#2a84d2","#4e5ab7","#1081d6","#d6dbe5","#d6dbe5","#de352e","#1dd361","#f3bd09","#1081d6","#5350b9","#0f7ddb","#ffffff"],"brushtrees-dark":["#485867","#5a6d7a","#6d828e","#8299a1","#98afb5","#b0c5c8","#c9dbdc","#e3efef","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],brushtrees:["#e3efef","#c9dbdc","#b0c5c8","#98afb5","#8299a1","#6d828e","#5a6d7a","#485867","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],chalk:["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#fb9fb1","#eda987","#ddb26f","#acc267","#12cfc0","#6fc2ef","#e1a3ee","#deaf8f"],circus:["#191919","#202020","#303030","#5f5a60","#505050","#a7a7a7","#808080","#ffffff","#dc657d","#4bb1a7","#c3ba63","#84b97c","#4bb1a7","#639ee4","#b888e2","#b888e2"],"classic-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],"classic-light":["#f5f5f5","#e0e0e0","#d0d0d0","#b0b0b0","#505050","#303030","#202020","#151515","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],codeschool:["#232c31","#1c3657","#2a343a","#3f4944","#84898c","#9ea7a6","#a7cfa3","#b5d8f6","#2a5491","#43820d","#a03b1e","#237986","#b02f30","#484d79","#c59820","#c98344"],cupcake:["#fbf1f2","#f2f1f4","#d8d5dd","#bfb9c6","#a59daf","#8b8198","#72677e","#585062","#d57e85","#ebb790","#dcb16c","#a3b367","#69a9a7","#7297b9","#bb99b4","#baa58c"],cupertino:["#ffffff","#c0c0c0","#c0c0c0","#808080","#808080","#404040","#404040","#5e5e5e","#c41a15","#eb8500","#826b28","#007400","#318495","#0000ff","#a90d91","#826b28"],darcula:["#2b2b2b","#323232","#323232","#606366","#a4a3a3","#a9b7c6","#ffc66d","#ffffff","#4eade5","#689757","#bbb529","#6a8759","#629755","#9876aa","#cc7832","#808080"],darktooth:["#1d2021","#32302f","#504945","#665c54","#928374","#a89984","#d5c4a1","#fdf4c1","#fb543f","#fe8625","#fac03b","#95c085","#8ba59b","#0d6678","#8f4673","#a87322"],"default-dark":["#181818","#282828","#383838","#585858","#b8b8b8","#d8d8d8","#e8e8e8","#f8f8f8","#ab4642","#dc9656","#f7ca88","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],"default-light":["#ffffff","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#ab4642","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],dracula:["#282936","#3a3c4e","#4d4f68","#626483","#62d6e8","#e9e9f4","#f1f2f8","#f7f7fb","#ea51b2","#b45bcf","#00f769","#ebff87","#a1efe4","#62d6e8","#b45bcf","#00f769"],eighties:["#2d2d2d","#393939","#515151","#747369","#a09f93","#d3d0c8","#e8e6df","#f2f0ec","#f2777a","#f99157","#ffcc66","#99cc99","#66cccc","#6699cc","#cc99cc","#d27b53"],embers:["#16130f","#2c2620","#433b32","#5a5047","#8a8075","#a39a90","#beb6ae","#dbd6d1","#826d57","#828257","#6d8257","#57826d","#576d82","#6d5782","#82576d","#825757"],flat:["#2c3e50","#34495e","#7f8c8d","#95a5a6","#bdc3c7","#e0e0e0","#f5f5f5","#ecf0f1","#e74c3c","#e67e22","#f1c40f","#2ecc71","#1abc9c","#3498db","#9b59b6","#be643c"],"fruit-soda":["#f1ecf1","#e0dee0","#d8d5d5","#b5b4b6","#979598","#515151","#474545","#2d2c2c","#fe3e31","#fe6d08","#f7e203","#47f74c","#0f9cfd","#2931df","#611fce","#b16f40"],github:["#ffffff","#f5f5f5","#c8c8fa","#969896","#e8e8e8","#333333","#ffffff","#969896","#ed6a43","#0086b3","#795da3","#183691","#183691","#795da3","#a71d5d","#333333"],"google-dark":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"google-light":["#ffffff","#e0e0e0","#c5c8c6","#b4b7b4","#969896","#373b41","#282a2e","#1d1f21","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"grayscale-dark":["#101010","#252525","#464646","#525252","#ababab","#b9b9b9","#e3e3e3","#f7f7f7","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],"grayscale-light":["#f7f7f7","#e3e3e3","#b9b9b9","#ababab","#525252","#464646","#252525","#101010","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],greenscreen:["#001100","#003300","#005500","#007700","#009900","#00bb00","#00dd00","#00ff00","#007700","#009900","#007700","#00bb00","#005500","#009900","#00bb00","#005500"],"gruvbox-dark-hard":["#1d2021","#3c3836","#504945","#665c54","#bdae93","#d5c4a1","#ebdbb2","#fbf1c7","#fb4934","#fe8019","#fabd2f","#b8bb26","#8ec07c","#83a598","#d3869b","#d65d0e"],"gruvbox-light-hard":["#f9f5d7","#ebdbb2","#d5c4a1","#bdae93","#665c54","#504945","#3c3836","#282828","#9d0006","#af3a03","#b57614","#79740e","#427b58","#076678","#8f3f71","#d65d0e"],"harmonic-dark":["#0b1c2c","#223b54","#405c79","#627e99","#aabcce","#cbd6e2","#e5ebf1","#f7f9fb","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"harmonic-light":["#f7f9fb","#e5ebf1","#cbd6e2","#aabcce","#627e99","#405c79","#223b54","#0b1c2c","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"heetch-light":["#feffff","#392551","#7b6d8b","#9c92a8","#ddd6e5","#5a496e","#470546","#190134","#27d9d5","#bdb6c5","#5ba2b6","#f80059","#c33678","#47f9f5","#bd0152","#dedae2"],heetch:["#190134","#392551","#5a496e","#7b6d8b","#9c92a8","#bdb6c5","#dedae2","#feffff","#27d9d5","#5ba2b6","#8f6c97","#c33678","#f80059","#bd0152","#82034c","#470546"],helios:["#1d2021","#383c3e","#53585b","#6f7579","#cdcdcd","#d5d5d5","#dddddd","#e5e5e5","#d72638","#eb8413","#f19d1a","#88b92d","#1ba595","#1e8bac","#be4264","#c85e0d"],hopscotch:["#322931","#433b42","#5c545b","#797379","#989498","#b9b5b8","#d5d3d5","#ffffff","#dd464c","#fd8b19","#fdcc59","#8fc13e","#149b93","#1290bf","#c85e7c","#b33508"],"horizon-dark":["#1c1e26","#232530","#2e303e","#676a8d","#ced1d0","#cbced0","#dcdfe4","#e3e6ee","#e93c58","#e58d7d","#efb993","#efaf8e","#24a8b4","#df5273","#b072d1","#e4a382"],"ia-dark":["#1a1a1a","#222222","#1d414d","#767676","#b8b8b8","#cccccc","#e8e8e8","#f8f8f8","#d88568","#d86868","#b99353","#83a471","#7c9cae","#8eccdd","#b98eb2","#8b6c37"],"ia-light":["#f6f6f6","#dedede","#bde5f2","#898989","#767676","#181818","#e8e8e8","#898989","#9c5a02","#c43e18","#c48218","#38781c","#2d6bb1","#48bac2","#a94598","#8b6c37"],icy:["#021012","#031619","#041f23","#052e34","#064048","#095b67","#0c7c8c","#109cb0","#16c1d9","#b3ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7"],isotope:["#000000","#404040","#606060","#808080","#c0c0c0","#d0d0d0","#e0e0e0","#ffffff","#ff0000","#ff9900","#ff0099","#33ff00","#00ffff","#0066ff","#cc00ff","#3300ff"],macintosh:["#000000","#404040","#404040","#808080","#808080","#c0c0c0","#c0c0c0","#ffffff","#dd0907","#ff6403","#fbf305","#1fb714","#02abea","#0000d3","#4700a5","#90713a"],marrakesh:["#201602","#302e00","#5f5b17","#6c6823","#86813b","#948e48","#ccc37a","#faf0a5","#c35359","#b36144","#a88339","#18974e","#75a738","#477ca1","#8868b3","#b3588e"],materia:["#263238","#2c393f","#37474f","#707880","#c9ccd3","#cdd3de","#d5dbe5","#ffffff","#ec5f67","#ea9560","#ffcc00","#8bd649","#80cbc4","#89ddff","#82aaff","#ec5f67"],"material-lighter":["#fafafa","#e7eaec","#cceae7","#ccd7da","#8796b0","#80cbc4","#80cbc4","#666666","#ff5370","#f76d47","#ffb62c","#91b859","#39adb5","#6182b8","#7c4dff","#e53935"],material:["#263238","#2e3c43","#314549","#546e7a","#b2ccd6","#eeffff","#eeffff","#ffffff","#f07178","#f78c6c","#ffcb6b","#c3e88d","#89ddff","#82aaff","#c792ea","#ff5370"],"mellow-purple":["#1e0528","#1a092d","#331354","#320f55","#873582","#ffeeff","#ffeeff","#f8c0ff","#00d9e9","#aa00a3","#955ae7","#05cb0d","#b900b1","#550068","#8991bb","#4d6fff"],"mexico-light":["#f8f8f8","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#f79a0e","#538947","#4b8093","#7cafc2","#96609e","#a16946"],mocha:["#3b3228","#534636","#645240","#7e705a","#b8afad","#d0c8c6","#e9e1dd","#f5eeeb","#cb6077","#d28b71","#f4bc87","#beb55b","#7bbda4","#8ab3b5","#a89bb9","#bb9584"],monokai:["#272822","#383830","#49483e","#75715e","#a59f85","#f8f8f2","#f5f4f1","#f9f8f5","#f92672","#fd971f","#f4bf75","#a6e22e","#a1efe4","#66d9ef","#ae81ff","#cc6633"],nord:["#2e3440","#3b4252","#434c5e","#4c566a","#d8dee9","#e5e9f0","#eceff4","#8fbcbb","#88c0d0","#81a1c1","#5e81ac","#bf616a","#d08770","#ebcb8b","#a3be8c","#b48ead"],ocean:["#2b303b","#343d46","#4f5b66","#65737e","#a7adba","#c0c5ce","#dfe1e8","#eff1f5","#bf616a","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967"],"one-light":["#fafafa","#f0f0f1","#e5e5e6","#a0a1a7","#696c77","#383a42","#202227","#090a0b","#ca1243","#d75f00","#c18401","#50a14f","#0184bc","#4078f2","#a626a4","#986801"],onedark:["#282c34","#353b45","#3e4451","#545862","#565c64","#abb2bf","#b6bdca","#c8ccd4","#e06c75","#d19a66","#e5c07b","#98c379","#56b6c2","#61afef","#c678dd","#be5046"],"papercolor-dark":["#1c1c1c","#af005f","#5faf00","#d7af5f","#5fafd7","#808080","#d7875f","#d0d0d0","#585858","#5faf5f","#afd700","#af87d7","#ffaf00","#ff5faf","#00afaf","#5f8787"],"papercolor-light":["#eeeeee","#af0000","#008700","#5f8700","#0087af","#878787","#005f87","#444444","#bcbcbc","#d70000","#d70087","#8700af","#d75f00","#d75f00","#005faf","#005f87"],paraiso:["#2f1e2e","#41323f","#4f424c","#776e71","#8d8687","#a39e9b","#b9b6b0","#e7e9db","#ef6155","#f99b15","#fec418","#48b685","#5bc4bf","#06b6ef","#815ba4","#e96ba8"],pico:["#000000","#1d2b53","#7e2553","#008751","#ab5236","#5f574f","#c2c3c7","#fff1e8","#ff004d","#ffa300","#fff024","#00e756","#29adff","#83769c","#ff77a8","#ffccaa"],pop:["#000000","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#eb008a","#f29333","#f8ca12","#37b349","#00aabb","#0e5a94","#b31e8d","#7a2d00"],railscasts:["#2b2b2b","#272935","#3a4055","#5a647e","#d4cfc9","#e6e1dc","#f4f1ed","#f9f7f3","#da4939","#cc7833","#ffc66d","#a5c261","#519f50","#6d9cbe","#b6b3eb","#bc9458"],seti:["#151718","#282a2b","#3b758c","#41535b","#43a5d5","#d6d6d6","#eeeeee","#ffffff","#cd3f45","#db7b55","#e6cd69","#9fca56","#55dbbe","#55b5db","#a074c4","#8a553f"],"solarized-dark":["#002b36","#073642","#586e75","#657b83","#839496","#93a1a1","#eee8d5","#fdf6e3","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],"solarized-light":["#fdf6e3","#eee8d5","#93a1a1","#839496","#657b83","#586e75","#073642","#002b36","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],spacemacs:["#1f2022","#282828","#444155","#585858","#b8b8b8","#a3a3a3","#e8e8e8","#f8f8f8","#f2241f","#ffa500","#b1951d","#67b11d","#2d9574","#4f97d7","#a31db1","#b03060"],"summerfruit-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"summerfruit-light":["#ffffff","#e0e0e0","#d0d0d0","#b0b0b0","#000000","#101010","#151515","#202020","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"tomorrow-night":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc6666","#de935f","#f0c674","#b5bd68","#8abeb7","#81a2be","#b294bb","#a3685a"],tomorrow:["#ffffff","#e0e0e0","#d6d6d6","#8e908c","#969896","#4d4d4c","#282a2e","#1d1f21","#c82829","#f5871f","#eab700","#718c00","#3e999f","#4271ae","#8959a8","#a3685a"],tube:["#231f20","#1c3f95","#5a5758","#737171","#959ca1","#d9d8d8","#e7e7e8","#ffffff","#ee2e24","#f386a1","#ffd204","#00853e","#85cebc","#009ddc","#98005d","#b06110"],twilight:["#1e1e1e","#323537","#464b50","#5f5a60","#838184","#a7a7a7","#c3c3c3","#ffffff","#cf6a4c","#cda869","#f9ee98","#8f9d6a","#afc4db","#7587a6","#9b859d","#9b703f"],woodland:["#231e18","#302b25","#48413a","#9d8b70","#b4a490","#cabcb1","#d7c8bc","#e4d4c8","#d35c5c","#ca7f32","#e0ac16","#b7ba53","#6eb958","#88a4d3","#bb90e2","#b49368"],zenburn:["#383838","#404040","#606060","#6f6f6f","#808080","#dcdccc","#c0c0c0","#ffffff","#dca3a3","#dfaf8f","#e0cf9f","#5f7f5f","#93e0e3","#7cb8bb","#dc8cc3","#000000"]},V=Object.keys(A),R=a=>{let e;if(typeof a=="string"){if(A[a]===void 0)throw new Error(`${a} not found`);e=A[a].reduce((d,r,o)=>{let t=`base0${o.toString(16).toUpperCase()}`;return d[t]=r,d},{})}else e=a;return`.container{${Object.keys(e).map(d=>`--${d}: ${e[d]};`).join("")}}`};var j=a=>{try{return!!new URL(a)}catch{return!1}},W=a=>{if(Array.isArray(a))return"array";if(a===null)return"null";if(a instanceof RegExp)return"regexp";let e=typeof a;return e==="number"?isNaN(a)?"NaN":isFinite(a)?Number.isInteger(a)?"int":"float":"Infinity":e==="boolean"?"bool":e==="object"&&a instanceof Date?"date":e};var $=a=>{if(typeof a=="boolean")return a;if(a==="true")return!0;if(a==="false")return!1;throw new Error("should be a boolean!")},J=a=>{if(typeof a=="string")return a;throw new Error("should be a string!")},O=a=>{if(typeof a=="number"&&a>=0)return a;if(typeof a=="string"&&(a=parseFloat(a)),isNaN(a)||a<0)throw new Error("should be a positive number!");return a},B=a=>{if(typeof a=="boolean"||typeof a=="number")return a;if(a==="true")return!0;if(a==="false")return!1;if(typeof a=="string"&&(a=parseFloat(a),!isNaN(a)&&a>=0))return a;throw new Error("should be a boolean or a positive number!")},z=a=>{if(typeof a=="object")return a;if(typeof a=="string")try{return JSON.parse(a)}catch{return a}throw new Error("should be a string or JSON!")};var P=function({key:a,value:e,expanded:d,indent:r,onToggleExpand:o,level:t=0,parentRow:v}){let n=document.createElement("div");this.maxLevel=t;let i=W(e),m=i==="array"||i==="object",x=d===!0||d>t,p,g,b,h;n.className=`data-row ${x?"expanded":""}`,n.dataset.key=a,n.dataset.level=t,t>0&&(n.style.paddingLeft=`${r*5}px`);let f=document.createElement("span");f.className="key-value-wrapper",n.appendChild(f);let w=()=>{n.classList.toggle("expanded"),o&&(n.classList.contains("expanded")?o(t+1):o(t))};if(m){let c=document.createElement("span");c.className="icon-wrapper",f.appendChild(c),p=document.createElement("span"),p.className="expand icon clickable",p.setAttribute("title",x?"Collapse":"Expand"),c.appendChild(p),c.addEventListener("click",()=>w())}if(a!==null&&a!==""){let c=typeof a;b=document.createElement("span"),b.className=`key clickable ${c==="number"?"number":""}`,b.textContent=c==="number"?a:`${a}`,b.addEventListener("click",()=>w()),f.appendChild(b);let s=document.createElement("span");s.classList.add("colon"),s.textContent=":",f.appendChild(s)}if(m){let c=document.createElement("span");c.className="opening-parenthesis",c.textContent=i==="array"?"[":"{",f.appendChild(c);let s=document.createElement("span");s.className="ellipsis clickable",s.textContent="...",s.addEventListener("click",()=>w()),f.appendChild(s);let l=document.createElement("span");l.className="closing-parenthesis",l.textContent=i==="array"?"]":"}",f.appendChild(l);let E=document.createElement("span"),D=i==="array"?e.length:Object.keys(e).length;E.className="items-size",E.textContent=`${D} item${D===1?"":"s"}`,f.appendChild(E),g=[],(i==="array"?e.map((C,k)=>k):Object.keys(e)).forEach(C=>{let k=new P({key:C,value:e[C],expanded:d,indent:r,onToggleExpand:o,level:t+1,parentRow:n});g.push(k),n.appendChild(k.element),this.maxLevel=Math.max(this.maxLevel,k.maxLevel)});let S=document.createElement("span");S.className="closing-parenthesis",S.textContent=i==="array"?"]":"}",n.appendChild(S)}else{let c=null;["nan","NaN","undefined","null"].includes(i)||(c=document.createElement("span"),c.className="type",c.textContent=i.toLowerCase());let s=document.createElement("span");s.className=`value ${i.toLowerCase()}`,h=document.createElement("span"),h.className="value-data",h.textContent=i==="string"?`"${e}"`:e,c&&s.appendChild(c),s.appendChild(h),f.appendChild(s)}let u=document.createElement("span");u.className="copy icon",u.setAttribute("title","Copy to clipboard");let y=document.createElement("span");y.className="icon-wrapper",y.addEventListener("click",()=>{navigator.clipboard.writeText(JSON.stringify(e,null,r))}),y.appendChild(u),f.appendChild(y);let N=c=>{let s=new RegExp(c,"gi"),l=[];b&&l.push(b),h&&l.push(h);let E=!1;l.forEach(D=>{let L=D.textContent;if(D.innerHTML=L,!c||c==="")return;let S=[...L.matchAll(s)].map(I=>I.index),C=[],k=0;S.forEach(I=>{E=!0,C.push(L.slice(k,I)),C.push(`${c}`),k=I+c.length}),C.push(L.slice(k)),D.innerHTML=C.join("")}),E&&!n.classList.contains("expanded")&&(w(),v&&v.classList.add("expanded"))};this.update=({expanded:c,indent:s,searchTerm:l})=>{s!==void 0&&t>0&&(n.style.paddingLeft=`${s*5}px`),c!==void 0&&(x=c===!0||c>t,n.classList.toggle("expanded",x),p&&(p.title=x?"Collapse":"Expand")),l!=null&&N(l),g&&g.forEach(E=>E.update({expanded:c,indent:s,searchTerm:l}))},this.element=n},U=P;var G=function({expanded:a,indent:e,onChange:d,onSearch:r,showDetails:o}){this.indent=e||2,this.expanded=typeof a=="number"?a:2,this.showDetails=o!==!1,this.maxExpandLevel=0;let t,v=document.createElement("div");v.className="toolbar";let n=document.createElement("div");n.className="options",v.appendChild(n);let i=document.createElement("div");i.className="search-wrapper",v.appendChild(i);let m=document.createElement("div");m.className="icon-wrapper clickable",n.appendChild(m);let x=document.createElement("span");x.className="icon refresh",m.onclick=()=>this.refresh(),m.appendChild(x);let p=document.createElement("div");p.className="icon-wrapper clickable",n.appendChild(p);let g=document.createElement("span");g.className="icon plus",p.appendChild(g),p.onclick=()=>{this.expanded{this.expanded>this.maxExpandLevel&&(this.expanded=this.maxExpandLevel),this.expanded>0&&(this.expanded-=1),d({expanded:this.expanded})};let f=document.createElement("div");f.className="icon-wrapper clickable",n.appendChild(f);let w=document.createElement("span");w.className="icon indent",f.onclick=()=>{this.indent+=1,d({indent:this.indent})},f.appendChild(w);let u=document.createElement("div");u.className="icon-wrapper clickable",n.appendChild(u);let y=document.createElement("span");y.className="icon outdent",u.onclick=()=>{this.indent-=1,d({indent:this.indent})},u.appendChild(y);let N=document.createElement("div");N.className="icon-wrapper clickable",n.appendChild(N);let c=document.createElement("span");c.className=`icon info ${this.showDetails?"active":""}`,N.onclick=()=>{c.classList.toggle("active"),this.showDetails=!this.showDetails,d({showDetails:this.showDetails})},N.appendChild(c);let s=document.createElement("span");s.className="icon search",i.appendChild(s),t=document.createElement("input"),t.className="search-input",t.placeholder="Search",t.oninput=l=>{r(l.target.value)},i.appendChild(t),this.refresh=()=>{this.expanded=1,this.indent=2,t&&(t.value=""),d({indent:2,expanded:1}),r("")},this.updateShowDetails=l=>{this.showDetails=l,this.showDetails?c.classList.add("active"):c.classList.remove("active")},this.element=v},M=G;function K(a,e={}){let d=document.createElement("div");d.className="container",a.appendChild(d);let r=null,o=null,t={};this.update=({data:v,expanded:n,indent:i,expandIconType:m,showDataTypes:x,showToolbar:p,showSize:g,showCopy:b})=>{if(v){let f=JSON.stringify(v);t.dataComapreString!==f&&(t.dataComapreString=f,r=new U({key:"",value:v,expanded:n,indent:i,onToggleExpand:w=>{o&&(o.expanded=w),t.expanded=w}}),d.replaceChildren(r.element),t.showToolbar&&o&&(d.prepend(o.element),o.maxExpandLevel=r.maxLevel,o.refresh()))}if(p!==void 0&&t.showToolbar!==p)if(t.showToolbar=p,p)o||(o=new M({expanded:t.expanded,indent:t.indent,onChange:({expanded:f,indent:w,showDetails:u})=>{let y={expanded:f,indent:w};u!==void 0&&(y.showCopy=u,y.showSize=u,y.showDataTypes=u),this.update(y)},onSearch:f=>{r&&r.update({searchTerm:f})}})),r&&(o.maxExpandLevel=r.maxLevel),d.prepend(o.element);else{let f=d.querySelector(".toolbar");f&&f.remove()}let h={};n!==void 0&&t.expanded!==n&&(t.expanded=n,h.expanded=n),i!==void 0&&t.indent!==i&&(t.indent=i,h.indent=i),Object.keys(h).length>0&&r&&r.update(h),b!==void 0&&t.showCopy!==b&&(t.showCopy=b,d.classList.toggle("show-copy",b)),g!==void 0&&t.showSize!==g&&(t.showSize=g,d.classList.toggle("show-size",g),o&&o.updateShowDetails(t.showSize||t.showDataTypes)),x!==void 0&&t.showDataTypes!==x&&(t.showDataTypes=x,d.classList.toggle("show-data-types",x),o&&o.updateShowDetails(t.showSize||t.showDataTypes)),m!==void 0&&t.expandIconType!==m&&(d.classList.add(`expand-icon-${m}`),d.classList.remove(`expand-icon-${t.expandIconType}`),t.expandIconType=m)},this.update(e)}var F=K;var H={indent:2,expanded:1,theme:"default-light",showDataTypes:!0,showToolbar:!1,expandIconType:"arrow",showCopy:!0,showSize:!0,data:null},T=class a extends HTMLElement{#t;#e;#c;#n;constructor(){super(),this.#e={...H},this.#t=document.createElement("style");let e=this.attachShadow({mode:"open"}),d=document.createElement("style");d.textContent=`${q}`,e.appendChild(d),e.appendChild(this.#t),this.theme=this.#e.theme,this.#n=new F(e,this.#e)}static get observedAttributes(){return Object.keys(H).map(e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())}static allowedAttributes=["id"].concat(a.observedAttributes);#d=(...e)=>{console.warn(`JsonViewer${this.id?` (${this.id})`:""}:`,...e)};#a=(e,d,r,o)=>{try{if(d=r(d),o&&!o.includes(d))throw new Error(`should be one of ${o.join(", ")}`);if(this.#e[e]===d)return;this.#e[e]=d,this.#o()}catch(t){this.#d(`Attribute ${e}: ${t.message}`)}};set showDataTypes(e){this.#a("showDataTypes",e,$)}set showToolbar(e){this.#a("showToolbar",e,$)}set indent(e){this.#a("indent",e,O)}set expandIconType(e){this.#a("expandIconType",e,J,["arrow","square","circle"])}set expanded(e){this.#a("expanded",e,B)}set showSize(e){this.#a("showSize",e,$)}set showCopy(e){this.#a("showCopy",e,$)}set theme(e){try{if(e=z(e),this.#e.theme===e&&this.#t.textContent!=="")return;this.#t.textContent=R(e),this.#e.theme=e}catch(d){this.#d(`Attribute theme: ${d.message}`)}}set data(e){try{e=z(e);let d=JSON.stringify(e);if(this.#e.data===d)return;this.#e.data=d,j(e)?fetch(e).then(r=>r.json()).then(r=>{this.#c=r,this.#o()}):(this.#c=e,this.#o())}catch(d){this.#d(`Attribute data: ${d.message}`)}}get options(){return this.#e}connectedCallback(){window.addEventListener("DOMContentLoaded",()=>{let e=this.textContent;this.textContent="",e&&(this.data=e)})}attributeChangedCallback(e,d,r){if(a.allowedAttributes.indexOf(e)>-1){let o=e.replace(/-([a-z])/g,t=>t[1].toUpperCase());this[o]=r}else this.#d(`Attribute ${e} is not supported and will be ignored!`),this.removeAttribute(e)}#o=()=>{this.#n.update({data:this.#c,expanded:this.#e.expanded,expandIconType:this.#e.expandIconType,indent:this.#e.indent,showDataTypes:this.#e.showDataTypes,showToolbar:this.#e.showToolbar,showSize:this.#e.showSize,showCopy:this.#e.showCopy})}};customElements.get("andypf-json-viewer")||customElements.define("andypf-json-viewer",T);})(); diff --git a/demo/build/themes.js b/demo/build/themes.js deleted file mode 100644 index 4296ced..0000000 --- a/demo/build/themes.js +++ /dev/null @@ -1,27 +0,0 @@ - -/* -MIT License - -Copyright (c) 2025 Andreas Pfau - -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. - -*/ - -var a={apathy:["#031a16","#0b342d","#184e45","#2b685e","#5f9c92","#81b5ac","#a7cec8","#d2e7e4","#3e9688","#3e7996","#3e4c96","#883e96","#963e4c","#96883e","#4c963e","#3e965b"],ashes:["#1c2023","#393f45","#565e65","#747c84","#adb3ba","#c7ccd1","#dfe2e5","#f3f4f5","#c7ae95","#c7c795","#aec795","#95c7ae","#95aec7","#ae95c7","#c795ae","#c79595"],"atelier-dune-light":["#fefbec","#e8e4cf","#a6a28c","#999580","#7d7a68","#6e6b5e","#292824","#20201d","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],"atelier-dune":["#20201d","#292824","#6e6b5e","#7d7a68","#999580","#a6a28c","#e8e4cf","#fefbec","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],atlas:["#002635","#00384d","#517f8d","#6c8b91","#869696","#a1a19a","#e6e6dc","#fafaf8","#ff5a67","#f08e48","#ffcc1b","#7fc06e","#14747e","#5dd7b9","#9a70a4","#c43060"],bespin:["#28211c","#36312e","#5e5d5c","#666666","#797977","#8a8986","#9d9b97","#baae9e","#cf6a4c","#cf7d34","#f9ee98","#54be0d","#afc4db","#5ea6ea","#9b859d","#937121"],"black-metal":["#000000","#121212","#222222","#333333","#999999","#c1c1c1","#999999","#c1c1c1","#5f8787","#aaaaaa","#a06666","#dd9999","#aaaaaa","#888888","#999999","#444444"],brewer:["#0c0d0e","#2e2f30","#515253","#737475","#959697","#b7b8b9","#dadbdc","#fcfdfe","#e31a1c","#e6550d","#dca060","#31a354","#80b1d3","#3182bd","#756bb1","#b15928"],bright:["#000000","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ffffff","#fb0120","#fc6d24","#fda331","#a1c659","#76c7b7","#6fb3d2","#d381c3","#be643c"],brogrammer:["#1f1f1f","#f81118","#2dc55e","#ecba0f","#2a84d2","#4e5ab7","#1081d6","#d6dbe5","#d6dbe5","#de352e","#1dd361","#f3bd09","#1081d6","#5350b9","#0f7ddb","#ffffff"],"brushtrees-dark":["#485867","#5a6d7a","#6d828e","#8299a1","#98afb5","#b0c5c8","#c9dbdc","#e3efef","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],brushtrees:["#e3efef","#c9dbdc","#b0c5c8","#98afb5","#8299a1","#6d828e","#5a6d7a","#485867","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],chalk:["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#fb9fb1","#eda987","#ddb26f","#acc267","#12cfc0","#6fc2ef","#e1a3ee","#deaf8f"],circus:["#191919","#202020","#303030","#5f5a60","#505050","#a7a7a7","#808080","#ffffff","#dc657d","#4bb1a7","#c3ba63","#84b97c","#4bb1a7","#639ee4","#b888e2","#b888e2"],"classic-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],"classic-light":["#f5f5f5","#e0e0e0","#d0d0d0","#b0b0b0","#505050","#303030","#202020","#151515","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],codeschool:["#232c31","#1c3657","#2a343a","#3f4944","#84898c","#9ea7a6","#a7cfa3","#b5d8f6","#2a5491","#43820d","#a03b1e","#237986","#b02f30","#484d79","#c59820","#c98344"],cupcake:["#fbf1f2","#f2f1f4","#d8d5dd","#bfb9c6","#a59daf","#8b8198","#72677e","#585062","#d57e85","#ebb790","#dcb16c","#a3b367","#69a9a7","#7297b9","#bb99b4","#baa58c"],cupertino:["#ffffff","#c0c0c0","#c0c0c0","#808080","#808080","#404040","#404040","#5e5e5e","#c41a15","#eb8500","#826b28","#007400","#318495","#0000ff","#a90d91","#826b28"],darcula:["#2b2b2b","#323232","#323232","#606366","#a4a3a3","#a9b7c6","#ffc66d","#ffffff","#4eade5","#689757","#bbb529","#6a8759","#629755","#9876aa","#cc7832","#808080"],darktooth:["#1d2021","#32302f","#504945","#665c54","#928374","#a89984","#d5c4a1","#fdf4c1","#fb543f","#fe8625","#fac03b","#95c085","#8ba59b","#0d6678","#8f4673","#a87322"],"default-dark":["#181818","#282828","#383838","#585858","#b8b8b8","#d8d8d8","#e8e8e8","#f8f8f8","#ab4642","#dc9656","#f7ca88","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],"default-light":["#ffffff","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#ab4642","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],dracula:["#282936","#3a3c4e","#4d4f68","#626483","#62d6e8","#e9e9f4","#f1f2f8","#f7f7fb","#ea51b2","#b45bcf","#00f769","#ebff87","#a1efe4","#62d6e8","#b45bcf","#00f769"],eighties:["#2d2d2d","#393939","#515151","#747369","#a09f93","#d3d0c8","#e8e6df","#f2f0ec","#f2777a","#f99157","#ffcc66","#99cc99","#66cccc","#6699cc","#cc99cc","#d27b53"],embers:["#16130f","#2c2620","#433b32","#5a5047","#8a8075","#a39a90","#beb6ae","#dbd6d1","#826d57","#828257","#6d8257","#57826d","#576d82","#6d5782","#82576d","#825757"],flat:["#2c3e50","#34495e","#7f8c8d","#95a5a6","#bdc3c7","#e0e0e0","#f5f5f5","#ecf0f1","#e74c3c","#e67e22","#f1c40f","#2ecc71","#1abc9c","#3498db","#9b59b6","#be643c"],"fruit-soda":["#f1ecf1","#e0dee0","#d8d5d5","#b5b4b6","#979598","#515151","#474545","#2d2c2c","#fe3e31","#fe6d08","#f7e203","#47f74c","#0f9cfd","#2931df","#611fce","#b16f40"],github:["#ffffff","#f5f5f5","#c8c8fa","#969896","#e8e8e8","#333333","#ffffff","#969896","#ed6a43","#0086b3","#795da3","#183691","#183691","#795da3","#a71d5d","#333333"],"google-dark":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"google-light":["#ffffff","#e0e0e0","#c5c8c6","#b4b7b4","#969896","#373b41","#282a2e","#1d1f21","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"grayscale-dark":["#101010","#252525","#464646","#525252","#ababab","#b9b9b9","#e3e3e3","#f7f7f7","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],"grayscale-light":["#f7f7f7","#e3e3e3","#b9b9b9","#ababab","#525252","#464646","#252525","#101010","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],greenscreen:["#001100","#003300","#005500","#007700","#009900","#00bb00","#00dd00","#00ff00","#007700","#009900","#007700","#00bb00","#005500","#009900","#00bb00","#005500"],"gruvbox-dark-hard":["#1d2021","#3c3836","#504945","#665c54","#bdae93","#d5c4a1","#ebdbb2","#fbf1c7","#fb4934","#fe8019","#fabd2f","#b8bb26","#8ec07c","#83a598","#d3869b","#d65d0e"],"gruvbox-light-hard":["#f9f5d7","#ebdbb2","#d5c4a1","#bdae93","#665c54","#504945","#3c3836","#282828","#9d0006","#af3a03","#b57614","#79740e","#427b58","#076678","#8f3f71","#d65d0e"],"harmonic-dark":["#0b1c2c","#223b54","#405c79","#627e99","#aabcce","#cbd6e2","#e5ebf1","#f7f9fb","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"harmonic-light":["#f7f9fb","#e5ebf1","#cbd6e2","#aabcce","#627e99","#405c79","#223b54","#0b1c2c","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"heetch-light":["#feffff","#392551","#7b6d8b","#9c92a8","#ddd6e5","#5a496e","#470546","#190134","#27d9d5","#bdb6c5","#5ba2b6","#f80059","#c33678","#47f9f5","#bd0152","#dedae2"],heetch:["#190134","#392551","#5a496e","#7b6d8b","#9c92a8","#bdb6c5","#dedae2","#feffff","#27d9d5","#5ba2b6","#8f6c97","#c33678","#f80059","#bd0152","#82034c","#470546"],helios:["#1d2021","#383c3e","#53585b","#6f7579","#cdcdcd","#d5d5d5","#dddddd","#e5e5e5","#d72638","#eb8413","#f19d1a","#88b92d","#1ba595","#1e8bac","#be4264","#c85e0d"],hopscotch:["#322931","#433b42","#5c545b","#797379","#989498","#b9b5b8","#d5d3d5","#ffffff","#dd464c","#fd8b19","#fdcc59","#8fc13e","#149b93","#1290bf","#c85e7c","#b33508"],"horizon-dark":["#1c1e26","#232530","#2e303e","#676a8d","#ced1d0","#cbced0","#dcdfe4","#e3e6ee","#e93c58","#e58d7d","#efb993","#efaf8e","#24a8b4","#df5273","#b072d1","#e4a382"],"ia-dark":["#1a1a1a","#222222","#1d414d","#767676","#b8b8b8","#cccccc","#e8e8e8","#f8f8f8","#d88568","#d86868","#b99353","#83a471","#7c9cae","#8eccdd","#b98eb2","#8b6c37"],"ia-light":["#f6f6f6","#dedede","#bde5f2","#898989","#767676","#181818","#e8e8e8","#898989","#9c5a02","#c43e18","#c48218","#38781c","#2d6bb1","#48bac2","#a94598","#8b6c37"],icy:["#021012","#031619","#041f23","#052e34","#064048","#095b67","#0c7c8c","#109cb0","#16c1d9","#b3ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7"],isotope:["#000000","#404040","#606060","#808080","#c0c0c0","#d0d0d0","#e0e0e0","#ffffff","#ff0000","#ff9900","#ff0099","#33ff00","#00ffff","#0066ff","#cc00ff","#3300ff"],macintosh:["#000000","#404040","#404040","#808080","#808080","#c0c0c0","#c0c0c0","#ffffff","#dd0907","#ff6403","#fbf305","#1fb714","#02abea","#0000d3","#4700a5","#90713a"],marrakesh:["#201602","#302e00","#5f5b17","#6c6823","#86813b","#948e48","#ccc37a","#faf0a5","#c35359","#b36144","#a88339","#18974e","#75a738","#477ca1","#8868b3","#b3588e"],materia:["#263238","#2c393f","#37474f","#707880","#c9ccd3","#cdd3de","#d5dbe5","#ffffff","#ec5f67","#ea9560","#ffcc00","#8bd649","#80cbc4","#89ddff","#82aaff","#ec5f67"],"material-lighter":["#fafafa","#e7eaec","#cceae7","#ccd7da","#8796b0","#80cbc4","#80cbc4","#666666","#ff5370","#f76d47","#ffb62c","#91b859","#39adb5","#6182b8","#7c4dff","#e53935"],material:["#263238","#2e3c43","#314549","#546e7a","#b2ccd6","#eeffff","#eeffff","#ffffff","#f07178","#f78c6c","#ffcb6b","#c3e88d","#89ddff","#82aaff","#c792ea","#ff5370"],"mellow-purple":["#1e0528","#1a092d","#331354","#320f55","#873582","#ffeeff","#ffeeff","#f8c0ff","#00d9e9","#aa00a3","#955ae7","#05cb0d","#b900b1","#550068","#8991bb","#4d6fff"],"mexico-light":["#f8f8f8","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#f79a0e","#538947","#4b8093","#7cafc2","#96609e","#a16946"],mocha:["#3b3228","#534636","#645240","#7e705a","#b8afad","#d0c8c6","#e9e1dd","#f5eeeb","#cb6077","#d28b71","#f4bc87","#beb55b","#7bbda4","#8ab3b5","#a89bb9","#bb9584"],monokai:["#272822","#383830","#49483e","#75715e","#a59f85","#f8f8f2","#f5f4f1","#f9f8f5","#f92672","#fd971f","#f4bf75","#a6e22e","#a1efe4","#66d9ef","#ae81ff","#cc6633"],nord:["#2e3440","#3b4252","#434c5e","#4c566a","#d8dee9","#e5e9f0","#eceff4","#8fbcbb","#88c0d0","#81a1c1","#5e81ac","#bf616a","#d08770","#ebcb8b","#a3be8c","#b48ead"],ocean:["#2b303b","#343d46","#4f5b66","#65737e","#a7adba","#c0c5ce","#dfe1e8","#eff1f5","#bf616a","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967"],"one-light":["#fafafa","#f0f0f1","#e5e5e6","#a0a1a7","#696c77","#383a42","#202227","#090a0b","#ca1243","#d75f00","#c18401","#50a14f","#0184bc","#4078f2","#a626a4","#986801"],onedark:["#282c34","#353b45","#3e4451","#545862","#565c64","#abb2bf","#b6bdca","#c8ccd4","#e06c75","#d19a66","#e5c07b","#98c379","#56b6c2","#61afef","#c678dd","#be5046"],"papercolor-dark":["#1c1c1c","#af005f","#5faf00","#d7af5f","#5fafd7","#808080","#d7875f","#d0d0d0","#585858","#5faf5f","#afd700","#af87d7","#ffaf00","#ff5faf","#00afaf","#5f8787"],"papercolor-light":["#eeeeee","#af0000","#008700","#5f8700","#0087af","#878787","#005f87","#444444","#bcbcbc","#d70000","#d70087","#8700af","#d75f00","#d75f00","#005faf","#005f87"],paraiso:["#2f1e2e","#41323f","#4f424c","#776e71","#8d8687","#a39e9b","#b9b6b0","#e7e9db","#ef6155","#f99b15","#fec418","#48b685","#5bc4bf","#06b6ef","#815ba4","#e96ba8"],pico:["#000000","#1d2b53","#7e2553","#008751","#ab5236","#5f574f","#c2c3c7","#fff1e8","#ff004d","#ffa300","#fff024","#00e756","#29adff","#83769c","#ff77a8","#ffccaa"],pop:["#000000","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#eb008a","#f29333","#f8ca12","#37b349","#00aabb","#0e5a94","#b31e8d","#7a2d00"],railscasts:["#2b2b2b","#272935","#3a4055","#5a647e","#d4cfc9","#e6e1dc","#f4f1ed","#f9f7f3","#da4939","#cc7833","#ffc66d","#a5c261","#519f50","#6d9cbe","#b6b3eb","#bc9458"],seti:["#151718","#282a2b","#3b758c","#41535b","#43a5d5","#d6d6d6","#eeeeee","#ffffff","#cd3f45","#db7b55","#e6cd69","#9fca56","#55dbbe","#55b5db","#a074c4","#8a553f"],"solarized-dark":["#002b36","#073642","#586e75","#657b83","#839496","#93a1a1","#eee8d5","#fdf6e3","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],"solarized-light":["#fdf6e3","#eee8d5","#93a1a1","#839496","#657b83","#586e75","#073642","#002b36","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],spacemacs:["#1f2022","#282828","#444155","#585858","#b8b8b8","#a3a3a3","#e8e8e8","#f8f8f8","#f2241f","#ffa500","#b1951d","#67b11d","#2d9574","#4f97d7","#a31db1","#b03060"],"summerfruit-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"summerfruit-light":["#ffffff","#e0e0e0","#d0d0d0","#b0b0b0","#000000","#101010","#151515","#202020","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"tomorrow-night":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc6666","#de935f","#f0c674","#b5bd68","#8abeb7","#81a2be","#b294bb","#a3685a"],tomorrow:["#ffffff","#e0e0e0","#d6d6d6","#8e908c","#969896","#4d4d4c","#282a2e","#1d1f21","#c82829","#f5871f","#eab700","#718c00","#3e999f","#4271ae","#8959a8","#a3685a"],tube:["#231f20","#1c3f95","#5a5758","#737171","#959ca1","#d9d8d8","#e7e7e8","#ffffff","#ee2e24","#f386a1","#ffd204","#00853e","#85cebc","#009ddc","#98005d","#b06110"],twilight:["#1e1e1e","#323537","#464b50","#5f5a60","#838184","#a7a7a7","#c3c3c3","#ffffff","#cf6a4c","#cda869","#f9ee98","#8f9d6a","#afc4db","#7587a6","#9b859d","#9b703f"],woodland:["#231e18","#302b25","#48413a","#9d8b70","#b4a490","#cabcb1","#d7c8bc","#e4d4c8","#d35c5c","#ca7f32","#e0ac16","#b7ba53","#6eb958","#88a4d3","#bb90e2","#b49368"],zenburn:["#383838","#404040","#606060","#6f6f6f","#808080","#dcdccc","#c0c0c0","#ffffff","#dca3a3","#dfaf8f","#e0cf9f","#5f7f5f","#93e0e3","#7cb8bb","#dc8cc3","#000000"]},t=Object.keys(a),o=f=>{let b;if(typeof f=="string"){if(a[f]===void 0)throw new Error(`${f} not found`);b=a[f].reduce((e,c,d)=>{let r=`base0${d.toString(16).toUpperCase()}`;return e[r]=c,e},{})}else b=f;return`.container{${Object.keys(b).map(e=>`--${e}: ${b[e]};`).join("")}}`};export{t as availableThemes,o as themeStyles}; diff --git a/demo/index.html b/demo/index.html deleted file mode 100644 index 7d0967b..0000000 --- a/demo/index.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - JsonViewer - - - - - - - - - - - - -
- -

Json Viewer Demo

-

A modern JSON data visualization tool

-
- - - -
- -
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
- - - - -
-
- - - - diff --git a/demo/index.js b/demo/index.js deleted file mode 100644 index e7958c4..0000000 --- a/demo/index.js +++ /dev/null @@ -1,177 +0,0 @@ -const defaultTheme = "monokai" -const defaultIndent = 2 -const defaultExpanded = 2 -const defaultShowDataTypes = true -const defaultShowToolbar = true -const defaultShowSize = true -const defaultShowCopy = true -const defaultExpandIconType = "square" - -const jsonViewer = document.getElementById("andypf-json-viewer") -jsonViewer.id = "json" -jsonViewer.expanded = defaultExpanded -jsonViewer.indent = defaultIndent -jsonViewer.showDataTypes = defaultShowDataTypes -jsonViewer.theme = defaultTheme -jsonViewer.showToolbar = defaultShowToolbar -jsonViewer.showSize = defaultShowSize -jsonViewer.showCopy = defaultShowCopy -jsonViewer.expandIconType = defaultExpandIconType -jsonViewer.data = { - string: "this is a test", - integer: 42, - array: [1, 2, 3, "test", NaN], - float: 3.14159, - undefined: undefined, - object: { - "first-child": true, - "second-child": false, - "last-child": null, - strings: { - veryLong: - "The 'json-viewer' is a powerful tool designed specifically for displaying and analyzing JSON data. JSON (JavaScript Object Notation) is a widely used data format for transmission and storage. It's easy to understand and write, but when it comes to visualizing extensive or complex JSON data, it can be a challenge.", - }, - }, - token: - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", - string_number: "1234", - date: new Date(), -} - -const output = document.getElementById("output") -const updateOutput = () => { - const json = JSON.parse(jsonViewer.options.data) - if (json?.object?.strings?.veryLong) json.object.strings.veryLong = json?.object.strings.veryLong.slice(0, 50) + "..." - output.innerText = ` - k !== "data") - .map((k) => `${k.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()}="${jsonViewer.options[k]}"`) - .join("\n ")}> -${JSON.stringify(json, null, 2)} -` -} - -// select theme -const select = document.getElementById("theme") -const loadingOption = document.createElement("option") -loadingOption.value = "loading" -loadingOption.innerText = "loading..." -select.append(loadingOption) - -// Load available themes -import("./build/themes.js").then((module) => { - loadingOption.remove() - module.availableThemes.forEach((theme) => { - const option = document.createElement("option") - option.value = theme - option.innerText = theme - if (theme === defaultTheme) option.selected = true - select.append(option) - }) - // add event listener - select.addEventListener("change", function () { - jsonViewer.setAttribute("theme", this.value) - updateOutput() - }) -}) - -// expanded -const expandedSelect = document.getElementById("expanded") -const expandedValues = ["true", "false", 0, 1, 2, 3] -expandedValues.forEach((v) => { - const option = document.createElement("option") - option.value = v - option.innerText = v - if (v === defaultExpanded) option.selected = true - expandedSelect.append(option) -}) -expandedSelect.addEventListener("change", function () { - jsonViewer.expanded = this.value - updateOutput() -}) - -// indent -const indentSelect = document.getElementById("indent") -Array.from({ length: 10 }, (_, i) => i).forEach((v) => { - const option = document.createElement("option") - option.value = v - option.innerText = v - if (v === defaultIndent) option.selected = true - indentSelect.append(option) -}) -indentSelect.addEventListener("change", function () { - jsonViewer.indent = this.value - updateOutput() -}) - -// expand icon -const expandIconSelect = document.getElementById("expand-icon-type") -const expandIconValues = ["arrow", "square", "circle"] -expandIconValues.forEach((v) => { - const option = document.createElement("option") - option.value = v - option.innerText = v - if (v === defaultExpandIconType) option.selected = true - expandIconSelect.append(option) -}) -expandIconSelect.addEventListener("change", function () { - jsonViewer.expandIconType = this.value - updateOutput() -}) - -// show data types -const showDataTypesCheckbox = document.getElementById("show-data-types") -showDataTypesCheckbox.checked = defaultShowDataTypes -showDataTypesCheckbox.addEventListener("change", function () { - jsonViewer.showDataTypes = this.checked - updateOutput() -}) - -// show toolbar -const showToolbarCheckbox = document.getElementById("show-toolbar") -showToolbarCheckbox.checked = defaultShowToolbar -showToolbarCheckbox.addEventListener("change", function () { - jsonViewer.showToolbar = this.checked - updateOutput() -}) - -const showSizeCheckbox = document.getElementById("show-size") -showSizeCheckbox.checked = defaultShowSize -showSizeCheckbox.addEventListener("change", function () { - jsonViewer.showSize = this.checked - updateOutput() -}) - -const showCopyCheckbox = document.getElementById("show-copy") -showCopyCheckbox.checked = defaultShowCopy -showCopyCheckbox.addEventListener("change", function () { - jsonViewer.showCopy = this.checked - updateOutput() -}) - -const showCodeBox = document.getElementById("show-code") -showCodeBox.checked = false -showCodeBox.addEventListener("change", function () { - document.getElementById("html-code").classList.toggle("hidden") -}) - -const showSourceBox = document.getElementById("show-source") -showSourceBox.checked = false -showSourceBox.addEventListener("change", function () { - document.getElementById("source-code").classList.toggle("hidden") -}) - -const sourceCode = document.getElementById("source-code") -sourceCode.value = JSON.stringify(JSON.parse(jsonViewer.options.data), null, 2) -sourceCode.addEventListener("input", function () { - try { - const newData = JSON.parse(this.value) - jsonViewer.data = newData - jsonViewer.expanded = true - updateOutput() - } catch (e) { - console.warn(e) - } -}) -updateOutput() diff --git a/demo/site.webmanifest b/demo/site.webmanifest deleted file mode 100644 index 548927a..0000000 --- a/demo/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "", - "short_name": "", - "icons": [ - { - "src": "assets/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "assets/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/demo/styles.css b/demo/styles.css deleted file mode 100644 index 82a3a4d..0000000 --- a/demo/styles.css +++ /dev/null @@ -1,142 +0,0 @@ -body { - font-family: sans-serif; -} - -.input-element { - display: flex; - flex-direction: column; - justify-content: space-between; - margin-bottom: 15px; -} -.input-element label { - margin-bottom: 5px; -} - -.title { - padding: 10px; - display:flex; - justify-content: space-between; - align-items: center; -} - -.title h1 { - color: #333333; -} -.title .slogan { - color: #e8772e; - margin-top: -20px; - font-size: small; -} - -select, -input { - padding: 10px; - border: 1px solid #ccc; - border-radius: 5px; -} -form.options { - padding: 10px; - min-width: 300px; -} - -.display { - flex-grow: 1; -} - -.options-container { - display: flex; - flex-direction: column; -} - -.container { - display: flex; - flex-direction: row; -} - -/* The switch - the box around the slider */ -.switch { - position: relative; - display: inline-block; - width: 54px; - height: 28px; -} - -/* Hide default HTML checkbox */ -.switch input { - opacity: 0; - width: 0; - height: 0; -} - -/* The slider */ -.slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #ccc; - -webkit-transition: 0.4s; - transition: 0.4s; -} - -.slider:before { - position: absolute; - content: ""; - height: 20px; - width: 20px; - left: 4px; - bottom: 4px; - background-color: white; - -webkit-transition: 0.4s; - transition: 0.4s; -} - -input:checked + .slider { - background-color: #e8772e; -} - -input:focus + .slider { - box-shadow: 0 0 1px #e8772e; -} - -input:checked + .slider:before { - -webkit-transform: translateX(26px); - -ms-transform: translateX(26px); - transform: translateX(26px); -} - -/* Rounded sliders */ -.slider.round { - border-radius: 28px; -} - -.slider.round:before { - border-radius: 50%; -} - -pre.html-code { - background-color: #f5f5f5; - padding: 10px; - border: 1px solid #ccc; - border-radius: 5px; - overflow: auto; - font-family: "Courier New", monospace; - font-size: 14px; -} - -.hidden { - display: none; -} - -pre.html-code code { - display: block; - white-space: pre; - color: #333; -} - -.source-code { - width: 100%; - height: 400px; -} diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev deleted file mode 100644 index 86f4c08..0000000 --- a/docker/Dockerfile.dev +++ /dev/null @@ -1 +0,0 @@ -FROM node:18-alpine \ No newline at end of file diff --git a/esbuild.config.mjs b/esbuild.config.mjs deleted file mode 100644 index 768dd72..0000000 --- a/esbuild.config.mjs +++ /dev/null @@ -1,142 +0,0 @@ -import * as esbuild from "esbuild" -import { rmSync, readFileSync } from "node:fs" -import { resolve } from "node:path" -import postcss from "postcss" -import postcssMinify from "postcss-minify" -import fs from "fs" - -const licenseText = fs.readFileSync("LICENSE.md", "utf-8") - -// helpers for console log -const green = "\x1b[32m%s\x1b[0m" -const yellow = "\x1b[33m%s\x1b[0m" -const clear = "\x1B[2J" - -const isProduction = process.env.NODE_ENV === "production" -const args = process.argv.slice(2).reduce((map, item) => { - if (item.startsWith("--")) { - let [name, value] = item.replace(/^-+/, "").split("=") - if (value === "true") value = true - else if (value === "false") value = false - map[name] = value || true - } - return map -}, {}) - -await rmSync("demo/build", { recursive: true, force: true }) - -let cssPlugin = { - name: "minify-css", - setup(build) { - build.onResolve({ filter: /^.*\.css$/ }, (args) => { - return { - path: resolve(args.resolveDir, args.path), - namespace: "minify-css", - } - }) - - build.onLoad({ filter: /.*/, namespace: "minify-css" }, async (args) => { - const source = readFileSync(args.path, "utf-8") - const css = await postcss(postcssMinify()) - .process(source, { from: undefined }) - .then((result) => result.css) - - return { - contents: css, - loader: "text", - } - }) - }, -} -// default options -const options = { - external: isProduction ? ["react"] : [], - bundle: true, - minify: isProduction, - loader: { - ".css": "text", - }, - plugins: [cssPlugin], - banner: { - js: ` -/* -${licenseText} -*/ - `, - }, -} - -if (isProduction) { - await rmSync("dist", { recursive: true, force: true }) - const prodOptions = { - ...options, - entryPoints: { - index: "src/index.js", - "react/JsonViewer": "src/react/JsonViewer.jsx", - }, - } - // ESM - await esbuild.build({ - ...prodOptions, - outdir: `dist/esm/`, - format: "esm", - }) - - // CommonJS - await esbuild.build({ - ...prodOptions, - outdir: `dist/cjs/`, - format: "cjs", - }) - - // IIFE - await esbuild.build({ - ...prodOptions, - entryPoints: { - index: "src/index.js", - }, - outdir: `dist/iife/`, - format: "iife", - }) -} - -// Themse -await esbuild.build({ - ...options, - entryPoints: ["src/themes.js"], - outfile: `demo/build/themes.js`, - format: "esm", -}) - -let ctx = await esbuild.context({ - ...options, - entryPoints: ["src/index.js"], - outfile: `demo/build/index.js`, - format: "iife", - plugins: [ - cssPlugin, - { - name: "start/end", - setup(build) { - build.onStart(() => { - console.log(clear) - console.log(yellow, "Compiling...") - }) - build.onEnd(() => console.log(green, "Done!")) - }, - }, - ], -}) - -if (args.watch) { - let { host, port } = await ctx.serve({ - servedir: "./demo", - host: "0.0.0.0", - port: parseInt(process.env.PORT || 3000), - }) - - console.log("server on " + host + ":" + port) -} else { - await ctx.rebuild() - await ctx.dispose() -} diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index b048364..0000000 --- a/jest.config.js +++ /dev/null @@ -1,14 +0,0 @@ -const config = { - verbose: true, - testEnvironment: "jsdom", - transform: { - ".[jt]sx?$": "babel-jest", - }, - moduleNameMapper: { - ".(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": - "/tests/__mocks__/fileMock.js", - ".(css|less)$": "/tests/__mocks__/styleMock.js", - }, -} - -module.exports = config diff --git a/package.json b/package.json index 0e8c6c5..144ae3b 100644 --- a/package.json +++ b/package.json @@ -52,5 +52,8 @@ "typescript": "~5.7.2", "vite": "^6.3.1", "vitest": "^3.1.1" + }, + "dependencies": { + "eslint": "^9.32.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73b27c5..5299f89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,10 @@ settings: importers: .: + dependencies: + eslint: + specifier: ^9.32.0 + version: 9.32.0 devDependencies: '@types/node': specifier: ^22.14.1 @@ -207,6 +211,64 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.0': + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.3.0': + resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.15.1': + resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.32.0': + resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.3.4': + resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} @@ -313,6 +375,9 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/node@22.14.1': resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} @@ -345,26 +410,74 @@ packages: '@vitest/utils@3.1.1': resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + chai@5.2.0: resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} engines: {node: '>=12'} + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + cssstyle@4.3.1: resolution: {integrity: sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==} engines: {node: '>=18'} @@ -389,6 +502,9 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -401,13 +517,68 @@ packages: engines: {node: '>=18'} hasBin: true + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.32.0: + resolution: {integrity: sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + expect-type@1.2.1: resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} engines: {node: '>=12.0.0'} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fdir@6.4.3: resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} peerDependencies: @@ -416,11 +587,38 @@ packages: picomatch: optional: true + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -437,9 +635,36 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + jsdom@26.1.0: resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} engines: {node: '>=18'} @@ -449,6 +674,29 @@ packages: canvas: optional: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + loupe@3.1.3: resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} @@ -458,6 +706,9 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -466,12 +717,39 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + parse5@7.2.1: resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -490,10 +768,18 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + rollup@4.40.0: resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -509,6 +795,14 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -522,6 +816,14 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -562,6 +864,10 @@ packages: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + typescript@5.7.3: resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} @@ -570,6 +876,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + vite-node@3.1.1: resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -663,11 +972,20 @@ packages: resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} engines: {node: '>=18'} + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + ws@8.18.1: resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} engines: {node: '>=10.0.0'} @@ -687,6 +1005,10 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + snapshots: '@asamuzakjp/css-color@3.1.4': @@ -792,6 +1114,63 @@ snapshots: '@esbuild/win32-x64@0.25.2': optional: true + '@eslint-community/eslint-utils@4.7.0(eslint@9.32.0)': + dependencies: + eslint: 9.32.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.21.0': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.3.0': {} + + '@eslint/core@0.15.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.32.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.3.4': + dependencies: + '@eslint/core': 0.15.1 + levn: 0.4.1 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.3': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@rollup/rollup-android-arm-eabi@4.40.0': @@ -856,6 +1235,8 @@ snapshots: '@types/estree@1.0.7': {} + '@types/json-schema@7.0.15': {} + '@types/node@22.14.1': dependencies: undici-types: 6.21.0 @@ -900,12 +1281,40 @@ snapshots: loupe: 3.1.3 tinyrainbow: 2.0.0 + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + agent-base@7.1.3: {} + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + argparse@2.0.1: {} + assertion-error@2.0.1: {} + balanced-match@1.0.2: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + cac@6.7.14: {} + callsites@3.1.0: {} + chai@5.2.0: dependencies: assertion-error: 2.0.1 @@ -914,8 +1323,27 @@ snapshots: loupe: 3.1.3 pathval: 2.0.0 + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + check-error@2.1.1: {} + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + concat-map@0.0.1: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + cssstyle@4.3.1: dependencies: '@asamuzakjp/css-color': 3.1.4 @@ -934,6 +1362,8 @@ snapshots: deep-eql@5.0.2: {} + deep-is@0.1.4: {} + entities@4.5.0: {} es-module-lexer@1.6.0: {} @@ -966,19 +1396,118 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 + escape-string-regexp@4.0.0: {} + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@9.32.0: + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.21.0 + '@eslint/config-helpers': 0.3.0 + '@eslint/core': 0.15.1 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.32.0 + '@eslint/plugin-kit': 0.3.4 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.7 + esutils@2.0.3: {} + expect-type@1.2.1: {} + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + fdir@6.4.3(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + fsevents@2.3.3: optional: true + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@14.0.0: {} + + has-flag@4.0.0: {} + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -1001,8 +1530,29 @@ snapshots: dependencies: safer-buffer: 2.1.2 + ignore@5.3.2: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + is-potential-custom-element-name@1.0.1: {} + isexe@2.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + jsdom@26.1.0: dependencies: cssstyle: 4.3.1 @@ -1030,6 +1580,27 @@ snapshots: - supports-color - utf-8-validate + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + loupe@3.1.3: {} lru-cache@10.4.3: {} @@ -1038,16 +1609,47 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + ms@2.1.3: {} nanoid@3.3.11: {} + natural-compare@1.4.0: {} + nwsapi@2.2.20: {} + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + parse5@7.2.1: dependencies: entities: 4.5.0 + path-exists@4.0.0: {} + + path-key@3.1.1: {} + pathe@2.0.3: {} pathval@2.0.0: {} @@ -1062,8 +1664,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + prelude-ls@1.2.1: {} + punycode@2.3.1: {} + resolve-from@4.0.0: {} + rollup@4.40.0: dependencies: '@types/estree': 1.0.7 @@ -1098,6 +1704,12 @@ snapshots: dependencies: xmlchars: 2.2.0 + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + siginfo@2.0.0: {} source-map-js@1.2.1: {} @@ -1106,6 +1718,12 @@ snapshots: std-env@3.9.0: {} + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + symbol-tree@3.2.4: {} tinybench@2.9.0: {} @@ -1137,10 +1755,18 @@ snapshots: dependencies: punycode: 2.3.1 + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + typescript@5.7.3: {} undici-types@6.21.0: {} + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + vite-node@3.1.1(@types/node@22.14.1): dependencies: cac: 6.7.14 @@ -1230,13 +1856,21 @@ snapshots: tr46: 5.1.1 webidl-conversions: 7.0.0 + which@2.0.2: + dependencies: + isexe: 2.0.0 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + word-wrap@1.2.5: {} + ws@8.18.1: {} xml-name-validator@5.0.0: {} xmlchars@2.2.0: {} + + yocto-queue@0.1.0: {} diff --git a/src/component.js b/src/component.js deleted file mode 100644 index 67c96d1..0000000 --- a/src/component.js +++ /dev/null @@ -1,207 +0,0 @@ -// /** -// * This component supports three ways to pass the source JSON: -// * 1. via the "json" attribute, -// * -// * 2. via the "json" property, -// * const jsonViewer = document.createElement("json-viewer"); -// * jsonViewer.json = {name: "test"} -// * 3. via content, -// * {"name": "test"} -// **/ - -//#########################################NEW -import styles from "./styles.css" -import { themeStyles } from "./themes" -import { isUrl } from "./data-helpers" -import { - validateBoolean, - validateBooleanOrPositiveNumber, - validatePositiveNumber, - validateStringOrJson, - validateString, -} from "./validator" -import Renderer from "./renderer/container" - -const DEFAULT_PARAMS = { - indent: 2, - expanded: 1, - theme: "default-light", - showDataTypes: true, - showToolbar: false, - expandIconType: "arrow", - showCopy: true, - showSize: true, - data: null, -} - -class JsonViewer extends HTMLElement { - #themeStylesContainer - #options - #contentData - #renderer - - constructor() { - super() - - this.#options = { ...DEFAULT_PARAMS } - - this.#themeStylesContainer = document.createElement("style") - - // Attach a shadow DOM to encapsulate the component - const shadowRoot = this.attachShadow({ mode: "open" }) - const basicStyles = document.createElement("style") - basicStyles.textContent = `${styles}` - - shadowRoot.appendChild(basicStyles) - shadowRoot.appendChild(this.#themeStylesContainer) - - // set default theme - this.theme = this.#options.theme - // initialize renderer - this.#renderer = new Renderer(shadowRoot, this.#options) - } - - // component attributes - static get observedAttributes() { - // convert camelCase to kebab-case - return Object.keys(DEFAULT_PARAMS).map((k) => k.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase()) - } - - static allowedAttributes = ["id"].concat(JsonViewer.observedAttributes) - - #warn = (...args) => { - console.warn(`JsonViewer${this.id ? ` (${this.id})` : ""}:`, ...args) - } - - #validateAndUpdate = (propName, value, validatorFunc, allowedValues) => { - try { - value = validatorFunc(value) - if (allowedValues && !allowedValues.includes(value)) { - throw new Error(`should be one of ${allowedValues.join(", ")}`) - } - if (this.#options[propName] === value) return - - this.#options[propName] = value - this.#render() - } catch (e) { - this.#warn(`Attribute ${propName}: ${e.message}`) - } - } - - set showDataTypes(value) { - this.#validateAndUpdate("showDataTypes", value, validateBoolean) - } - - set showToolbar(value) { - this.#validateAndUpdate("showToolbar", value, validateBoolean) - } - - set indent(newIndent) { - this.#validateAndUpdate("indent", newIndent, validatePositiveNumber) - } - - set expandIconType(name) { - this.#validateAndUpdate("expandIconType", name, validateString, ["arrow", "square", "circle"]) - } - - set expanded(newExpanded) { - this.#validateAndUpdate("expanded", newExpanded, validateBooleanOrPositiveNumber) - } - - set showSize(newShowSize) { - this.#validateAndUpdate("showSize", newShowSize, validateBoolean) - } - - set showCopy(showCopy) { - this.#validateAndUpdate("showCopy", showCopy, validateBoolean) - } - - // validate and set theme - // theme can be a string or an object - // validationg theme is more complex than other attributes - set theme(newTheme) { - try { - newTheme = validateStringOrJson(newTheme) - // do nothing if the theme is the same or theme container is empty - if (this.#options.theme === newTheme && this.#themeStylesContainer.textContent !== "") return - - this.#themeStylesContainer.textContent = themeStyles(newTheme) - this.#options.theme = newTheme - } catch (e) { - this.#warn(`Attribute theme: ${e.message}`) - } - } - - // validate and set data - // data can be a string or an object - // validating data is more complex than other attributes - set data(newData) { - try { - newData = validateStringOrJson(newData) - // build a string from the value to compare with the current data - const newDataString = JSON.stringify(newData) - // do nothing if the data is the same - if (this.#options.data === newDataString) return - this.#options.data = newDataString - - if (isUrl(newData)) { - fetch(newData) - .then((r) => r.json()) - .then((data) => { - this.#contentData = data - this.#render() - }) - } else { - this.#contentData = newData - this.#render() - } - } catch (e) { - this.#warn(`Attribute data: ${e.message}`) - } - } - - get options() { - return this.#options - } - - connectedCallback() { - window.addEventListener("DOMContentLoaded", () => { - const data = this.textContent - this.textContent = "" - if (data) this.data = data - }) - } - - attributeChangedCallback(name, oldValue, newValue) { - // console.log("=====Changed=====") - // console.log(name, oldValue, newValue) - // filter out not allowed attributes - if (JsonViewer.allowedAttributes.indexOf(name) > -1) { - // convert kebab-case to camelCase - const propName = name.replace(/-([a-z])/g, (g) => g[1].toUpperCase()) - this[propName] = newValue - } else { - this.#warn(`Attribute ${name} is not supported and will be ignored!`) - this.removeAttribute(name) - } - } - - #render = () => { - // console.log("====================RENDER"); - - this.#renderer.update({ - data: this.#contentData, - expanded: this.#options.expanded, - expandIconType: this.#options.expandIconType, - indent: this.#options.indent, - showDataTypes: this.#options.showDataTypes, - showToolbar: this.#options.showToolbar, - showSize: this.#options.showSize, - showCopy: this.#options.showCopy, - }) - } -} - -if (!customElements.get("andypf-json-viewer")) { - customElements.define("andypf-json-viewer", JsonViewer) -} diff --git a/src/data-helpers.js b/src/data-helpers.js deleted file mode 100644 index f79b913..0000000 --- a/src/data-helpers.js +++ /dev/null @@ -1,71 +0,0 @@ -// This function checks if a string is a valid URL. -export const isUrl = (string) => { - try { - // Attempt to create a URL object from the input string - return Boolean(new URL(string)) // Return true if successful - // eslint-disable-next-line no-unused-vars - } catch (error) { - // console.debug(error) - // If an error occurs (invalid URL), return false - return false - } -} - -// This function determines the type of data. -export const dataType = (data) => { - if (Array.isArray(data)) return "array" // Check if data is an array - if (data === null) return "null" // Check if data is null - if (data instanceof RegExp) return "regexp" // Check if data is a regular expression - - const type = typeof data // Get the JavaScript type of data - if (type === "number") { - if (isNaN(data)) return "NaN" // Check if data is NaN - if (!isFinite(data)) return "Infinity" // Check if data is Infinity - return Number.isInteger(data) ? "int" : "float" // Check if data is integer or float - } - if (type === "boolean") return "bool" // Check if data is a boolean - - if (type === "object" && data instanceof Date) { - return "date" - } - return type // Return the type of data as a string (e.g., "string", "object") -} - -// This function parses a JSON string with custom handling for "NaN" and "undefined" strings. -export const parseJson = (jsonString) => { - // Replace ": NaN" and ": undefined" with ": "NaN"" and ": "undefined"" for valid JSON syntax - const fixedJsonString = jsonString - // replace new lines - .replace(/\n/gi, " ") - // replace all NaN values with "NaN" - .replace(/:\s*NaN/gi, ': "NaN"') - // replace all undefined values with "undefined" - .replace(/:\s*undefined/gi, ': "undefined"') - // replace all NaN in arrays with "NaN" - .replace(/\[(.*)NaN(.*)\]/gi, '[$1"NaN"$2]') - // replace undefined in arrays with "undefined" - .replace(/\[(.*)undefined(.*)\]/gi, '[$1"undefined"$2]') - - // Define a custom reviver function for JSON parsing - const customReviver = (key, value) => { - if (value === "NaN") { - return NaN // Convert "NaN" to the actual NaN value - } else if (Array.isArray(value)) { - return value.map((v) => { - if (v === "NaN") { - return NaN // Convert "NaN" to the actual NaN value - } else if (v === "undefined") { - return undefined // Convert "undefined" to the undefined value - } - return v - }) - } else if (value === "undefined") { - return undefined // Convert "undefined" to the undefined value - } - - return value - } - - // Parse the modified JSON string using the custom reviver function - return JSON.parse(fixedJsonString, customReviver) -} diff --git a/src/index.js b/src/index.js deleted file mode 100644 index 1af909c..0000000 --- a/src/index.js +++ /dev/null @@ -1 +0,0 @@ -import "./component" diff --git a/src/react/JsonViewer.jsx b/src/react/JsonViewer.jsx deleted file mode 100644 index 88940c6..0000000 --- a/src/react/JsonViewer.jsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from "react" -import "../component" - -// eslint-disable-next-line react/prop-types -const JsonViewer = ({ data, ...props }) => { - const ref = React.useRef(null) - - React.useEffect(() => { - if (ref.current) { - ref.current.data = data - } - }, [data]) - return -} - -export default JsonViewer diff --git a/src/renderer/container.js b/src/renderer/container.js deleted file mode 100644 index b010ce8..0000000 --- a/src/renderer/container.js +++ /dev/null @@ -1,115 +0,0 @@ -import DataRow from "./data-row" -import Toolbar from "./toolbar" - -function Container(root, options = {}) { - const containerElem = document.createElement("div") - containerElem.className = "container" - root.appendChild(containerElem) - let dataRow = null - let toolbar = null - - const cache = {} - - this.update = ({ data, expanded, indent, expandIconType, showDataTypes, showToolbar, showSize, showCopy }) => { - // DATA - if (data) { - const newDataCompareString = JSON.stringify(data) - // if data has not changed, do nothing - if (cache.dataComapreString !== newDataCompareString) { - cache.dataComapreString = newDataCompareString - - dataRow = new DataRow({ - key: "", - value: data, - expanded, - indent, - onToggleExpand: (level) => { - if (toolbar) toolbar.expanded = level - cache.expanded = level - }, - }) - containerElem.replaceChildren(dataRow.element) - if (cache.showToolbar && toolbar) { - containerElem.prepend(toolbar.element) - toolbar.maxExpandLevel = dataRow.maxLevel - toolbar.refresh() - } - } - } - if (showToolbar !== undefined && cache.showToolbar !== showToolbar) { - cache.showToolbar = showToolbar - if (showToolbar) { - if (!toolbar) - toolbar = new Toolbar({ - expanded: cache.expanded, - indent: cache.indent, - onChange: ({ expanded, indent, showDetails }) => { - const options = { expanded, indent } - if (showDetails !== undefined) { - options.showCopy = showDetails - options.showSize = showDetails - options.showDataTypes = showDetails - } - - this.update(options) - }, - onSearch: (searchTerm) => { - if (dataRow) dataRow.update({ searchTerm }) - }, - }) - if (dataRow) toolbar.maxExpandLevel = dataRow.maxLevel - containerElem.prepend(toolbar.element) - } else { - const element = containerElem.querySelector(".toolbar") - if (element) element.remove() - } - } - - const propsToBeUpdated = {} - // EXPANDED - if (expanded !== undefined && cache.expanded !== expanded) { - cache.expanded = expanded - propsToBeUpdated.expanded = expanded - } - // INDENT - if (indent !== undefined && cache.indent !== indent) { - cache.indent = indent - propsToBeUpdated.indent = indent - } - if (Object.keys(propsToBeUpdated).length > 0 && dataRow) { - dataRow.update(propsToBeUpdated) - } - - // SHOW COPY - if (showCopy !== undefined && cache.showCopy !== showCopy) { - cache.showCopy = showCopy - containerElem.classList.toggle("show-copy", showCopy) - } - // SHOW SIZE - if (showSize !== undefined && cache.showSize !== showSize) { - cache.showSize = showSize - containerElem.classList.toggle("show-size", showSize) - if (toolbar) { - toolbar.updateShowDetails(cache.showSize || cache.showDataTypes) - } - } - // SHOW DATA TYPES - if (showDataTypes !== undefined && cache.showDataTypes !== showDataTypes) { - cache.showDataTypes = showDataTypes - containerElem.classList.toggle("show-data-types", showDataTypes) - if (toolbar) { - toolbar.updateShowDetails(cache.showSize || cache.showDataTypes) - } - } - // EXPAND ICON TYPE - if (expandIconType !== undefined && cache.expandIconType !== expandIconType) { - containerElem.classList.add(`expand-icon-${expandIconType}`) - containerElem.classList.remove(`expand-icon-${cache.expandIconType}`) - cache.expandIconType = expandIconType - } - } - - this.update(options) -} - -export default Container diff --git a/src/renderer/data-row.js b/src/renderer/data-row.js deleted file mode 100644 index 9dc0d7b..0000000 --- a/src/renderer/data-row.js +++ /dev/null @@ -1,212 +0,0 @@ -import { dataType } from "../data-helpers" - -const DataRow = function ({ key, value, expanded, indent, onToggleExpand, level = 0, parentRow }) { - const row = document.createElement("div") - this.maxLevel = level - - const thisDataType = dataType(value) - const hasChildren = thisDataType === "array" || thisDataType === "object" - let isExpanded = expanded === true || expanded > level - let expandIcon, childrenRows, keyEl, valueEl - - // ROW CONTAINER - row.className = `data-row ${isExpanded ? "expanded" : ""}` - row.dataset.key = key - row.dataset.level = level - if (level > 0) row.style.paddingLeft = `${indent * 5}px` - - const keyValueWrapper = document.createElement("span") - keyValueWrapper.className = "key-value-wrapper" - row.appendChild(keyValueWrapper) - - const toggleExpand = () => { - row.classList.toggle("expanded") - - if (onToggleExpand) { - if (row.classList.contains("expanded")) { - onToggleExpand(level + 1) - } else { - onToggleExpand(level) - } - } - } - - // EXPAND ICON - if (hasChildren) { - const expandIconWrapper = document.createElement("span") - expandIconWrapper.className = "icon-wrapper" - keyValueWrapper.appendChild(expandIconWrapper) - - // create the icon (i tag) using the DOM API - expandIcon = document.createElement("span") - expandIcon.className = `expand icon clickable` - expandIcon.setAttribute("title", isExpanded ? "Collapse" : "Expand") - expandIconWrapper.appendChild(expandIcon) - - expandIconWrapper.addEventListener("click", () => toggleExpand()) - } - - // KEY VALUE WRAPPER - if (key !== null && key !== "") { - // KEY - const keyDataType = typeof key - keyEl = document.createElement("span") - keyEl.className = `key clickable ${keyDataType === "number" ? "number" : ""}` - keyEl.textContent = keyDataType === "number" ? key : `${key}` - keyEl.addEventListener("click", () => toggleExpand()) - keyValueWrapper.appendChild(keyEl) - - // COLON - const colonEl = document.createElement("span") - colonEl.classList.add("colon") - colonEl.textContent = ":" - keyValueWrapper.appendChild(colonEl) - } - - if (hasChildren) { - // OPENING PARENTHESIS - const openingParenthesis = document.createElement("span") - openingParenthesis.className = "opening-parenthesis" - openingParenthesis.textContent = thisDataType === "array" ? "[" : "{" - keyValueWrapper.appendChild(openingParenthesis) - - // ELLIPSIS - const ellipsis = document.createElement("span") - ellipsis.className = "ellipsis clickable" - ellipsis.textContent = "..." - ellipsis.addEventListener("click", () => toggleExpand()) - keyValueWrapper.appendChild(ellipsis) - - // CLOSING PARENTHESIS - const closingParenthesis = document.createElement("span") - closingParenthesis.className = "closing-parenthesis" - closingParenthesis.textContent = thisDataType === "array" ? "]" : "}" - keyValueWrapper.appendChild(closingParenthesis) - - // ITEMS SIZE - const itemsSize = document.createElement("span") - const length = thisDataType === "array" ? value.length : Object.keys(value).length - itemsSize.className = "items-size" - itemsSize.textContent = `${length} item${length === 1 ? "" : "s"}` - keyValueWrapper.appendChild(itemsSize) - - // CHILDREN ROWS - childrenRows = [] - - const items = thisDataType === "array" ? value.map((v, i) => i) : Object.keys(value) - items.forEach((key) => { - const subRow = new DataRow({ - key, - value: value[key], - expanded, - indent, - onToggleExpand, - level: level + 1, - parentRow: row, - }) - childrenRows.push(subRow) - row.appendChild(subRow.element) - this.maxLevel = Math.max(this.maxLevel, subRow.maxLevel) - }) - - // EXPANDED CLOSING PARENTHESIS - const expandedClosingParenthesis = document.createElement("span") - expandedClosingParenthesis.className = "closing-parenthesis" - expandedClosingParenthesis.textContent = thisDataType === "array" ? "]" : "}" - row.appendChild(expandedClosingParenthesis) - } else { - // VALUE - let valueType = null - if (!["nan", "NaN", "undefined", "null"].includes(thisDataType)) { - valueType = document.createElement("span") - valueType.className = `type` - valueType.textContent = thisDataType.toLowerCase() - } - - const valueWrapper = document.createElement("span") - valueWrapper.className = `value ${thisDataType.toLowerCase()}` - valueEl = document.createElement("span") - valueEl.className = "value-data" - valueEl.textContent = thisDataType === "string" ? `"${value}"` : value - if (valueType) valueWrapper.appendChild(valueType) - valueWrapper.appendChild(valueEl) - keyValueWrapper.appendChild(valueWrapper) - } - - // COPY ICON - const copyIcon = document.createElement("span") - copyIcon.className = "copy icon" - copyIcon.setAttribute("title", "Copy to clipboard") - - const copyIconWrapper = document.createElement("span") - copyIconWrapper.className = "icon-wrapper" - copyIconWrapper.addEventListener("click", () => { - navigator.clipboard.writeText(JSON.stringify(value, null, indent)) - }) - copyIconWrapper.appendChild(copyIcon) - keyValueWrapper.appendChild(copyIconWrapper) - - // this function highlights the search term - const search = (searchTerm) => { - // create a regular expression from the search term - const regex = new RegExp(searchTerm, "gi") - // initialize an array of elements to search - const searchElements = [] - // add the key and value elements to the array if they exist - if (keyEl) searchElements.push(keyEl) - if (valueEl) searchElements.push(valueEl) - - let found = false - // loop through the elements and highlight the matches - searchElements.forEach((el) => { - const string = el.textContent - // remove any existing matches (RESETTING THE OLD SEARCH) - el.innerHTML = string - - // if the search term is empty, return - if (!searchTerm || searchTerm === "") return - // find all the indexes of the search term in the string - const indexes = [...string.matchAll(regex)].map((m) => m.index) - // if there are matches, expand the row - const newHtml = [] - let lastIndex = 0 - indexes.forEach((index) => { - found = true - newHtml.push(string.slice(lastIndex, index)) - newHtml.push(`${searchTerm}`) - lastIndex = index + searchTerm.length - }) - newHtml.push(string.slice(lastIndex)) - el.innerHTML = newHtml.join("") - }) - - // if the search term was found, expand the row - if (found && !row.classList.contains("expanded")) { - toggleExpand() - // if the row has a parent, expand it too - if (parentRow) parentRow.classList.add("expanded") - } - } - - // this function updates the icon based on the expanded state - this.update = ({ expanded, indent, searchTerm }) => { - if (indent !== undefined && level > 0) { - row.style.paddingLeft = `${indent * 5}px` - } - - if (expanded !== undefined) { - isExpanded = expanded === true || expanded > level - row.classList.toggle("expanded", isExpanded) - if (expandIcon) expandIcon.title = isExpanded ? "Collapse" : "Expand" - } - if (searchTerm !== undefined && searchTerm !== null) { - search(searchTerm) - } - - if (childrenRows) childrenRows.forEach((r) => r.update({ expanded, indent, searchTerm })) - } - - this.element = row -} - -export default DataRow diff --git a/src/renderer/toolbar.js b/src/renderer/toolbar.js deleted file mode 100644 index 5e9a1ed..0000000 --- a/src/renderer/toolbar.js +++ /dev/null @@ -1,127 +0,0 @@ -const Toolbar = function ({ expanded, indent, onChange, onSearch, showDetails }) { - this.indent = indent || 2 - this.expanded = typeof expanded === "number" ? expanded : 2 - this.showDetails = showDetails !== false - this.maxExpandLevel = 0 - - let searchInput - - const toolbar = document.createElement("div") - toolbar.className = "toolbar" - - // OPTIONS - const options = document.createElement("div") - options.className = "options" - toolbar.appendChild(options) - - // SEARCH WRAPPER - const searchWrapper = document.createElement("div") - searchWrapper.className = "search-wrapper" - toolbar.appendChild(searchWrapper) - - // REFRESH ICON - const refreshIconWrapper = document.createElement("div") - refreshIconWrapper.className = "icon-wrapper clickable" - options.appendChild(refreshIconWrapper) - const refreshIcon = document.createElement("span") - refreshIcon.className = "icon refresh" - refreshIconWrapper.onclick = () => this.refresh() - refreshIconWrapper.appendChild(refreshIcon) - - // EXPAND ICON - const expandIconWrapper = document.createElement("div") - expandIconWrapper.className = "icon-wrapper clickable" - options.appendChild(expandIconWrapper) - const expandIcon = document.createElement("span") - expandIcon.className = "icon plus" - expandIconWrapper.appendChild(expandIcon) - expandIconWrapper.onclick = () => { - if (this.expanded < this.maxExpandLevel) this.expanded += 1 - onChange({ expanded: this.expanded }) - } - - // COLLAPSE ICON - const collapseIconWrapper = document.createElement("div") - collapseIconWrapper.className = "icon-wrapper clickable" - options.appendChild(collapseIconWrapper) - - const collapseIcon = document.createElement("span") - collapseIcon.className = "icon minus" - collapseIconWrapper.appendChild(collapseIcon) - collapseIconWrapper.onclick = () => { - if (this.expanded > this.maxExpandLevel) this.expanded = this.maxExpandLevel - if (this.expanded > 0) this.expanded -= 1 - onChange({ expanded: this.expanded }) - } - - // INDENT ICON - const indentIconWrapper = document.createElement("div") - indentIconWrapper.className = "icon-wrapper clickable" - options.appendChild(indentIconWrapper) - const indentIcon = document.createElement("span") - indentIcon.className = "icon indent" - indentIconWrapper.onclick = () => { - this.indent += 1 - onChange({ indent: this.indent }) - } - indentIconWrapper.appendChild(indentIcon) - - // OUTDENT ICON - const outdentIconWrapper = document.createElement("div") - outdentIconWrapper.className = "icon-wrapper clickable" - options.appendChild(outdentIconWrapper) - const outdentIcon = document.createElement("span") - outdentIcon.className = "icon outdent" - outdentIconWrapper.onclick = () => { - this.indent -= 1 - onChange({ indent: this.indent }) - } - outdentIconWrapper.appendChild(outdentIcon) - - // INFO ICON - const infoIconWrapper = document.createElement("div") - infoIconWrapper.className = "icon-wrapper clickable" - options.appendChild(infoIconWrapper) - const infoIcon = document.createElement("span") - infoIcon.className = `icon info ${this.showDetails ? "active" : ""}` - infoIconWrapper.onclick = () => { - infoIcon.classList.toggle("active") - this.showDetails = !this.showDetails - onChange({ - showDetails: this.showDetails, - }) - } - infoIconWrapper.appendChild(infoIcon) - - // SEARCH INPUT - const searchIcon = document.createElement("span") - searchIcon.className = "icon search" - searchWrapper.appendChild(searchIcon) - searchInput = document.createElement("input") - searchInput.className = "search-input" - searchInput.placeholder = "Search" - searchInput.oninput = (e) => { - onSearch(e.target.value) - } - searchWrapper.appendChild(searchInput) - - this.refresh = () => { - this.expanded = 1 - this.indent = 2 - if (searchInput) searchInput.value = "" - onChange({ indent: 2, expanded: 1 }) - onSearch("") - } - - this.updateShowDetails = (value) => { - this.showDetails = value - if (this.showDetails) { - infoIcon.classList.add("active") - } else { - infoIcon.classList.remove("active") - } - } - this.element = toolbar -} - -export default Toolbar diff --git a/src/styles.css b/src/styles.css deleted file mode 100644 index b6e4348..0000000 --- a/src/styles.css +++ /dev/null @@ -1,480 +0,0 @@ -.container { - background-color: var(--base00); - color: var(--base05); - padding: 10px; - letter-spacing: 0.5px; - font-family: monospace; - border-radius: 3px; -} - -.toolbar { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 10px; - padding-bottom: 5px; - border-bottom: solid 1px var(--base02); -} - -.toolbar .options, -.toolbar .search-wrapper { - display: flex; - align-items: center; -} -.toolbar .icon-wrapper { - height: 15px; - display: flex; - align-items: center; - - padding: 2px 5px; -} -.toolbar .icon-wrapper:hover { - background-color: var(--base02); - border-radius: 3px; -} -.toolbar .icon-wrapper:first-child { - margin-left: 0px; -} - -.toolbar .search.icon { - margin-right: 5px; -} -.toolbar .search-input { - border: none; - background: transparent; /* Transparent background */ - outline: none; - flex: 1; /* Input expands to fill remaining space */ - font-size: 16px; - color: var(--base0D); /* Input text color */ -} - -.match { - background-color: yellow; /* Hervorhebungsfarbe */ - font-weight: bold; /* Fettschrift, um den Treffer hervorzuheben */ - color: red; /* Textfarbe des Treffers */ -} - -.data-row { - padding: 3px 0; -} -.data-row .data-row { - border-left: solid 1px var(--base02); - padding-left: 20px; - margin-left: 5px; - display: none; -} - -.data-row.expanded > .data-row { - display: block; -} - -.data-row .key-value-wrapper { - display: flex; - align-items: center; -} - -.data-row .key { - color: var(--base07); -} - -.data-row .key.number { - color: var(--base0C); -} - -.data-row .colon { - color: var(--base07); - margin: 0 5px 0 0; -} - -.clickable { - cursor: pointer; -} - -.data-row .opening-parenthesis, -.data-row .closing-parenthesis { - color: var(--base07); -} -.data-row .ellipsis { - color: var(--base09); -} - -.data-row.expanded > .key-value-wrapper .closing-parenthesis, -.data-row.expanded > .key-value-wrapper .ellipsis { - display: none; -} - -.data-row > .closing-parenthesis { - display: none; -} -.data-row.expanded > .closing-parenthesis { - display: inline-block; -} - -.data-row .items-size { - margin-left: 10px; - color: var(--base04); - font-style: italic; - /* font-size: smaller; */ - display: none; -} - -.show-size .data-row .items-size { - display: inline-block; -} - -.data-row .value.bool, -.data-row .value.boolean { - color: var(--base0E); -} -.data-row .value.function { - color: var(--base0D); -} -.data-row .value.int, -.data-row .value.integer { - color: var(--base0F); -} -.data-row .value.float { - color: var(--base0B); -} -.data-row .value.string { - color: var(--base09); -} -.data-row .value.string .content { - overflow-wrap: break-word; -} -.data-row .value.string .content::before { - content: open-quote; -} -.data-row .value.string .content::after { - content: close-quote; -} - -.data-row .value.regexp { - color: var(--base0A); -} -.data-row .value.nan { - color: var(--base08); -} -.data-row .value.null { - color: var(--base0A); -} -.data-row .value.undefined { - color: var(--base05); -} -.data-row .value.date { - color: var(--base0D); -} - -.data-row .value.nan, -.data-row .value.null, -.data-row .value.undefined { - border-radius: 3px; - background-color: var(--base02); - padding: 1px 2px; -} - -.data-row .value .type { - font-size: smaller; - margin-right: 4px; - opacity: 0.8; - display: none; -} - -.data-row .value .value-data { - word-break: break-all; -} - -.show-data-types .data-row .value .type { - display: inline-block; -} - -/* ICONS */ -.icon-wrapper, -.copy-icon-wrapper { - display: inline-block; - /* width: 17px; */ - cursor: pointer; -} - -.icon { - display: block; - position: relative; -} - -.icon:before, -.icon:after { - content: ""; - position: absolute; - display: block; -} - -/* expand arrow */ -.expand.icon { - margin-right: 5px; -} -.expand-icon-arrow .expand.icon { - margin-left: 3px; - width: 0; - height: 0; - border-left: solid 6px var(--base0E); - border-top: solid 6px transparent; - border-bottom: solid 6px transparent; -} - -.expand-icon-arrow .expanded > .key-value-wrapper .expand.icon, -.expand-icon-arrow .expanded.icon.expand { - transform: rotate(90deg); - border-left-color: var(--base0D); -} - -/* expand icon square */ -.expand-icon-square .expand.icon, -.expand-icon-circle .expand.icon { - display: block; - width: 9px; - height: 9px; - border-radius: 2px; - border: solid 1px var(--base0E); -} -.expand-icon-circle .expand.icon { - border-radius: 50%; -} - -.expand-icon-square .expand.icon:before, -.expand-icon-circle .expand.icon:before, -.expand-icon-square .expand.icon:after, -.expand-icon-circle .expand.icon:after { - width: 5px; - height: 1px; - background-color: var(--base0E); - left: 2px; - top: 4px; -} -.expand-icon-square .expand.icon:after, -.expand-icon-circle .expand.icon:after { - transform: rotate(90deg); -} - -.expand-icon-square .expanded > .key-value-wrapper .expand.icon:after, -.expand-icon-circle .expanded > .key-value-wrapper .expand.icon:after, -.expand-icon-square .expand.icon.expanded:after, -.expand-icon-circle .expand.icon.expanded:after { - display: none; -} - -.expand-icon-square .expanded > .key-value-wrapper .expand.icon, -.expand-icon-circle .expanded > .key-value-wrapper .expand.icon, -.expand-icon-square .expand.icon.expanded, -.expand-icon-circle .expanded.expand.icon { - border-color: var(--base0D); -} - -.expand-icon-square .expanded > .key-value-wrapper .expand.icon:before, -.expand-icon-circle .expanded > .key-value-wrapper .expand.icon:before, -.expand-icon-square .expanded.expand.icon:before, -.expand-icon-circle .expanded.expand.icon:before { - background-color: var(--base0D); -} -/* ---------------- */ - -.icon-wrapper { - display: inline-block; - cursor: pointer; -} - -/* copy icon */ -.show-copy .key-value-wrapper:hover .icon.copy { - display: block; -} - -.copy.icon { - margin-left: 10px; - display: none; - width: 8px; - height: 10px; - border: solid 1px var(--base0D); - border-radius: 1px; - position: relative; - top: 4px; - transition: 0.2s all; -} - -.copy.icon:active { - transform: scale(1.6); - background-color: var(--base0B); - /* rotate: 360deg; */ -} - -.copy.icon:before { - content: ""; - display: block; - left: -3px; - top: -3px; - width: 8px; - height: 10px; - border-top: solid 1px var(--base0D); - border-left: solid 1px var(--base0D); - border-radius: 1px 0 0 0; -} - -/* plus icon */ -.plus.icon { - width: 11px; - height: 1px; - background-color: var(--base0D); -} - -.plus.icon:after { - content: ""; - width: 11px; - height: 1px; - background-color: var(--base0D); - -webkit-transform: rotate(90deg); - transform: rotate(90deg); -} - -/* minus icon */ -.minus.icon { - width: 11px; - height: 1px; - background-color: var(--base0D); -} - -/* indent icon */ -.indent.icon { - color: var(--base0D); - /* margin-top: 6px; */ - width: 17px; - height: 8px; - border-top: solid 1px var(--base0D); - border-bottom: solid 1px var(--base0D); -} - -.indent.icon:before { - content: ""; - position: absolute; - top: 2px; - right: 0; - width: 11px; - height: 2px; - border-top: solid 1px var(--base0D); - border-bottom: solid 1px var(--base0D); -} - -.indent.icon:after { - content: ""; - position: absolute; - top: 1px; - width: 0; - height: 0; - border-top: solid 3px transparent; - border-bottom: solid 3px transparent; - border-left: solid 3px var(--base0D); - border-right: solid 3px transparent; -} - -/* outdent icon */ -.outdent.icon { - color: var(--base0D); - margin-left: 2px; - width: 17px; - height: 8px; - border-top: solid 1px var(--base0D); - border-bottom: solid 1px var(--base0D); -} - -.outdent.icon:before { - content: ""; - top: 2px; - right: 0; - width: 11px; - height: 2px; - border-top: solid 1px var(--base0D); - border-bottom: solid 1px var(--base0D); -} - -.outdent.icon:after { - content: ""; - top: 1px; - left: -3px; - width: 0; - height: 0; - border-top: solid 3px transparent; - border-bottom: solid 3px transparent; - border-left: solid 3px transparent; - border-right: solid 3px var(--base0D); -} - -/* refresh icon */ -.refresh.icon { - color: var(--base0D); - width: 10px; - height: 10px; - border-radius: 50%; - border-top: solid 1px var(--base0D); - border-bottom: solid 1px var(--base0D); - border-left: solid 1px transparent; - border-right: solid 1px var(--base0D); -} - -.refresh.icon:before { - content: ""; - left: 1px; - top: 8px; - width: 3px; - height: 3px; - border-top: solid 1px var(--base0D); - border-left: solid 1px var(--base0D); - -webkit-transform: rotate(-22.5deg); - transform: rotate(-22.5deg); -} - -/* info icon */ -.info.icon { - width: 12px; - height: 11px; - border: solid 1px var(--base0D); - border-radius: 2px; -} - -.info.icon::before { - top: 5px; - left: 5px; - width: 2px; - height: 5px; - background-color: var(--base0D); -} -.info.icon::after { - top: 2px; - left: 5px; - width: 2px; - height: 2px; - background-color: var(--base0D); -} -.info.icon.active { - background-color: var(--base0D); -} -.info.icon.active::before, -.info.icon.active::after { - background-color: var(--base02); -} - -/* seearch icon */ -.search.icon { - color: var(--base0D); - width: 11px; - height: 11px; - border: solid 1px var(--base0D); - border-radius: 100%; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); -} - -.search.icon:before { - content: ""; - top: 11px; - left: 5px; - height: 6px; - width: 1px; - background-color: var(--base0D); -} diff --git a/src/themes.js b/src/themes.js deleted file mode 100644 index f9a8a94..0000000 --- a/src/themes.js +++ /dev/null @@ -1,1448 +0,0 @@ -/* - --base00: Default Background - --base01: Lighter Background (Used for status bars, line number and folding marks) - --base02: Selection Background - --base03: Comments, Invisibles, Line Highlighting - --base04: Dark Foreground (Used for status bars) - --base05: Default Foreground, Caret, Delimiters, Operators - --base06: Light Foreground (Not often used) - --base07: Light Background (Not often used) - --base08: Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted - --base09: Integers, Boolean, Constants, XML Attributes, Markup Link Url - --base0A: Classes, Markup Bold, Search Text Background - --base0B: Strings, Inherited Class, Markup Code, Diff Inserted - --base0C: Support, Regular Expressions, Escape Characters, Markup Quotes - --base0D: Functions, Methods, Attribute IDs, Headings - --base0E: Keywords, Storage, Selector, Markup Italic, Diff Changed - --base0F: Deprecated, Opening/Closing Embedded Language Tags, e.g. -*/ - -/* source: https://github.com/gammons/base16-obsidian */ -const themes = { - apathy: [ - "#031a16", - "#0b342d", - "#184e45", - "#2b685e", - "#5f9c92", - "#81b5ac", - "#a7cec8", - "#d2e7e4", - "#3e9688", - "#3e7996", - "#3e4c96", - "#883e96", - "#963e4c", - "#96883e", - "#4c963e", - "#3e965b", - ], - ashes: [ - "#1c2023", - "#393f45", - "#565e65", - "#747c84", - "#adb3ba", - "#c7ccd1", - "#dfe2e5", - "#f3f4f5", - "#c7ae95", - "#c7c795", - "#aec795", - "#95c7ae", - "#95aec7", - "#ae95c7", - "#c795ae", - "#c79595", - ], - "atelier-dune-light": [ - "#fefbec", - "#e8e4cf", - "#a6a28c", - "#999580", - "#7d7a68", - "#6e6b5e", - "#292824", - "#20201d", - "#d73737", - "#b65611", - "#ae9513", - "#60ac39", - "#1fad83", - "#6684e1", - "#b854d4", - "#d43552", - ], - "atelier-dune": [ - "#20201d", - "#292824", - "#6e6b5e", - "#7d7a68", - "#999580", - "#a6a28c", - "#e8e4cf", - "#fefbec", - "#d73737", - "#b65611", - "#ae9513", - "#60ac39", - "#1fad83", - "#6684e1", - "#b854d4", - "#d43552", - ], - atlas: [ - "#002635", - "#00384d", - "#517f8d", - "#6c8b91", - "#869696", - "#a1a19a", - "#e6e6dc", - "#fafaf8", - "#ff5a67", - "#f08e48", - "#ffcc1b", - "#7fc06e", - "#14747e", - "#5dd7b9", - "#9a70a4", - "#c43060", - ], - bespin: [ - "#28211c", - "#36312e", - "#5e5d5c", - "#666666", - "#797977", - "#8a8986", - "#9d9b97", - "#baae9e", - "#cf6a4c", - "#cf7d34", - "#f9ee98", - "#54be0d", - "#afc4db", - "#5ea6ea", - "#9b859d", - "#937121", - ], - "black-metal": [ - "#000000", - "#121212", - "#222222", - "#333333", - "#999999", - "#c1c1c1", - "#999999", - "#c1c1c1", - "#5f8787", - "#aaaaaa", - "#a06666", - "#dd9999", - "#aaaaaa", - "#888888", - "#999999", - "#444444", - ], - brewer: [ - "#0c0d0e", - "#2e2f30", - "#515253", - "#737475", - "#959697", - "#b7b8b9", - "#dadbdc", - "#fcfdfe", - "#e31a1c", - "#e6550d", - "#dca060", - "#31a354", - "#80b1d3", - "#3182bd", - "#756bb1", - "#b15928", - ], - bright: [ - "#000000", - "#303030", - "#505050", - "#b0b0b0", - "#d0d0d0", - "#e0e0e0", - "#f5f5f5", - "#ffffff", - "#fb0120", - "#fc6d24", - "#fda331", - "#a1c659", - "#76c7b7", - "#6fb3d2", - "#d381c3", - "#be643c", - ], - brogrammer: [ - "#1f1f1f", - "#f81118", - "#2dc55e", - "#ecba0f", - "#2a84d2", - "#4e5ab7", - "#1081d6", - "#d6dbe5", - "#d6dbe5", - "#de352e", - "#1dd361", - "#f3bd09", - "#1081d6", - "#5350b9", - "#0f7ddb", - "#ffffff", - ], - "brushtrees-dark": [ - "#485867", - "#5a6d7a", - "#6d828e", - "#8299a1", - "#98afb5", - "#b0c5c8", - "#c9dbdc", - "#e3efef", - "#b38686", - "#d8bba2", - "#aab386", - "#87b386", - "#86b3b3", - "#868cb3", - "#b386b2", - "#b39f9f", - ], - brushtrees: [ - "#e3efef", - "#c9dbdc", - "#b0c5c8", - "#98afb5", - "#8299a1", - "#6d828e", - "#5a6d7a", - "#485867", - "#b38686", - "#d8bba2", - "#aab386", - "#87b386", - "#86b3b3", - "#868cb3", - "#b386b2", - "#b39f9f", - ], - chalk: [ - "#151515", - "#202020", - "#303030", - "#505050", - "#b0b0b0", - "#d0d0d0", - "#e0e0e0", - "#f5f5f5", - "#fb9fb1", - "#eda987", - "#ddb26f", - "#acc267", - "#12cfc0", - "#6fc2ef", - "#e1a3ee", - "#deaf8f", - ], - circus: [ - "#191919", - "#202020", - "#303030", - "#5f5a60", - "#505050", - "#a7a7a7", - "#808080", - "#ffffff", - "#dc657d", - "#4bb1a7", - "#c3ba63", - "#84b97c", - "#4bb1a7", - "#639ee4", - "#b888e2", - "#b888e2", - ], - "classic-dark": [ - "#151515", - "#202020", - "#303030", - "#505050", - "#b0b0b0", - "#d0d0d0", - "#e0e0e0", - "#f5f5f5", - "#ac4142", - "#d28445", - "#f4bf75", - "#90a959", - "#75b5aa", - "#6a9fb5", - "#aa759f", - "#8f5536", - ], - "classic-light": [ - "#f5f5f5", - "#e0e0e0", - "#d0d0d0", - "#b0b0b0", - "#505050", - "#303030", - "#202020", - "#151515", - "#ac4142", - "#d28445", - "#f4bf75", - "#90a959", - "#75b5aa", - "#6a9fb5", - "#aa759f", - "#8f5536", - ], - codeschool: [ - "#232c31", - "#1c3657", - "#2a343a", - "#3f4944", - "#84898c", - "#9ea7a6", - "#a7cfa3", - "#b5d8f6", - "#2a5491", - "#43820d", - "#a03b1e", - "#237986", - "#b02f30", - "#484d79", - "#c59820", - "#c98344", - ], - cupcake: [ - "#fbf1f2", - "#f2f1f4", - "#d8d5dd", - "#bfb9c6", - "#a59daf", - "#8b8198", - "#72677e", - "#585062", - "#d57e85", - "#ebb790", - "#dcb16c", - "#a3b367", - "#69a9a7", - "#7297b9", - "#bb99b4", - "#baa58c", - ], - cupertino: [ - "#ffffff", - "#c0c0c0", - "#c0c0c0", - "#808080", - "#808080", - "#404040", - "#404040", - "#5e5e5e", - "#c41a15", - "#eb8500", - "#826b28", - "#007400", - "#318495", - "#0000ff", - "#a90d91", - "#826b28", - ], - darcula: [ - "#2b2b2b", - "#323232", - "#323232", - "#606366", - "#a4a3a3", - "#a9b7c6", - "#ffc66d", - "#ffffff", - "#4eade5", - "#689757", - "#bbb529", - "#6a8759", - "#629755", - "#9876aa", - "#cc7832", - "#808080", - ], - darktooth: [ - "#1d2021", - "#32302f", - "#504945", - "#665c54", - "#928374", - "#a89984", - "#d5c4a1", - "#fdf4c1", - "#fb543f", - "#fe8625", - "#fac03b", - "#95c085", - "#8ba59b", - "#0d6678", - "#8f4673", - "#a87322", - ], - "default-dark": [ - "#181818", - "#282828", - "#383838", - "#585858", - "#b8b8b8", - "#d8d8d8", - "#e8e8e8", - "#f8f8f8", - "#ab4642", - "#dc9656", - "#f7ca88", - "#a1b56c", - "#86c1b9", - "#7cafc2", - "#ba8baf", - "#a16946", - ], - "default-light": [ - "#ffffff", - "#e8e8e8", - "#d8d8d8", - "#b8b8b8", - "#585858", - "#383838", - "#282828", - "#181818", - "#ab4642", - "#dc9656", - "#ab4642", - "#a1b56c", - "#86c1b9", - "#7cafc2", - "#ba8baf", - "#a16946", - ], - dracula: [ - "#282936", - "#3a3c4e", - "#4d4f68", - "#626483", - "#62d6e8", - "#e9e9f4", - "#f1f2f8", - "#f7f7fb", - "#ea51b2", - "#b45bcf", - "#00f769", - "#ebff87", - "#a1efe4", - "#62d6e8", - "#b45bcf", - "#00f769", - ], - eighties: [ - "#2d2d2d", - "#393939", - "#515151", - "#747369", - "#a09f93", - "#d3d0c8", - "#e8e6df", - "#f2f0ec", - "#f2777a", - "#f99157", - "#ffcc66", - "#99cc99", - "#66cccc", - "#6699cc", - "#cc99cc", - "#d27b53", - ], - embers: [ - "#16130f", - "#2c2620", - "#433b32", - "#5a5047", - "#8a8075", - "#a39a90", - "#beb6ae", - "#dbd6d1", - "#826d57", - "#828257", - "#6d8257", - "#57826d", - "#576d82", - "#6d5782", - "#82576d", - "#825757", - ], - flat: [ - "#2c3e50", - "#34495e", - "#7f8c8d", - "#95a5a6", - "#bdc3c7", - "#e0e0e0", - "#f5f5f5", - "#ecf0f1", - "#e74c3c", - "#e67e22", - "#f1c40f", - "#2ecc71", - "#1abc9c", - "#3498db", - "#9b59b6", - "#be643c", - ], - "fruit-soda": [ - "#f1ecf1", - "#e0dee0", - "#d8d5d5", - "#b5b4b6", - "#979598", - "#515151", - "#474545", - "#2d2c2c", - "#fe3e31", - "#fe6d08", - "#f7e203", - "#47f74c", - "#0f9cfd", - "#2931df", - "#611fce", - "#b16f40", - ], - github: [ - "#ffffff", - "#f5f5f5", - "#c8c8fa", - "#969896", - "#e8e8e8", - "#333333", - "#ffffff", - "#969896", - "#ed6a43", - "#0086b3", - "#795da3", - "#183691", - "#183691", - "#795da3", - "#a71d5d", - "#333333", - ], - "google-dark": [ - "#1d1f21", - "#282a2e", - "#373b41", - "#969896", - "#b4b7b4", - "#c5c8c6", - "#e0e0e0", - "#ffffff", - "#cc342b", - "#f96a38", - "#fba922", - "#198844", - "#3971ed", - "#3971ed", - "#a36ac7", - "#3971ed", - ], - "google-light": [ - "#ffffff", - "#e0e0e0", - "#c5c8c6", - "#b4b7b4", - "#969896", - "#373b41", - "#282a2e", - "#1d1f21", - "#cc342b", - "#f96a38", - "#fba922", - "#198844", - "#3971ed", - "#3971ed", - "#a36ac7", - "#3971ed", - ], - "grayscale-dark": [ - "#101010", - "#252525", - "#464646", - "#525252", - "#ababab", - "#b9b9b9", - "#e3e3e3", - "#f7f7f7", - "#7c7c7c", - "#999999", - "#a0a0a0", - "#8e8e8e", - "#868686", - "#686868", - "#747474", - "#5e5e5e", - ], - "grayscale-light": [ - "#f7f7f7", - "#e3e3e3", - "#b9b9b9", - "#ababab", - "#525252", - "#464646", - "#252525", - "#101010", - "#7c7c7c", - "#999999", - "#a0a0a0", - "#8e8e8e", - "#868686", - "#686868", - "#747474", - "#5e5e5e", - ], - greenscreen: [ - "#001100", - "#003300", - "#005500", - "#007700", - "#009900", - "#00bb00", - "#00dd00", - "#00ff00", - "#007700", - "#009900", - "#007700", - "#00bb00", - "#005500", - "#009900", - "#00bb00", - "#005500", - ], - "gruvbox-dark-hard": [ - "#1d2021", - "#3c3836", - "#504945", - "#665c54", - "#bdae93", - "#d5c4a1", - "#ebdbb2", - "#fbf1c7", - "#fb4934", - "#fe8019", - "#fabd2f", - "#b8bb26", - "#8ec07c", - "#83a598", - "#d3869b", - "#d65d0e", - ], - "gruvbox-light-hard": [ - "#f9f5d7", - "#ebdbb2", - "#d5c4a1", - "#bdae93", - "#665c54", - "#504945", - "#3c3836", - "#282828", - "#9d0006", - "#af3a03", - "#b57614", - "#79740e", - "#427b58", - "#076678", - "#8f3f71", - "#d65d0e", - ], - "harmonic-dark": [ - "#0b1c2c", - "#223b54", - "#405c79", - "#627e99", - "#aabcce", - "#cbd6e2", - "#e5ebf1", - "#f7f9fb", - "#bf8b56", - "#bfbf56", - "#8bbf56", - "#56bf8b", - "#568bbf", - "#8b56bf", - "#bf568b", - "#bf5656", - ], - "harmonic-light": [ - "#f7f9fb", - "#e5ebf1", - "#cbd6e2", - "#aabcce", - "#627e99", - "#405c79", - "#223b54", - "#0b1c2c", - "#bf8b56", - "#bfbf56", - "#8bbf56", - "#56bf8b", - "#568bbf", - "#8b56bf", - "#bf568b", - "#bf5656", - ], - "heetch-light": [ - "#feffff", - "#392551", - "#7b6d8b", - "#9c92a8", - "#ddd6e5", - "#5a496e", - "#470546", - "#190134", - "#27d9d5", - "#bdb6c5", - "#5ba2b6", - "#f80059", - "#c33678", - "#47f9f5", - "#bd0152", - "#dedae2", - ], - heetch: [ - "#190134", - "#392551", - "#5a496e", - "#7b6d8b", - "#9c92a8", - "#bdb6c5", - "#dedae2", - "#feffff", - "#27d9d5", - "#5ba2b6", - "#8f6c97", - "#c33678", - "#f80059", - "#bd0152", - "#82034c", - "#470546", - ], - helios: [ - "#1d2021", - "#383c3e", - "#53585b", - "#6f7579", - "#cdcdcd", - "#d5d5d5", - "#dddddd", - "#e5e5e5", - "#d72638", - "#eb8413", - "#f19d1a", - "#88b92d", - "#1ba595", - "#1e8bac", - "#be4264", - "#c85e0d", - ], - hopscotch: [ - "#322931", - "#433b42", - "#5c545b", - "#797379", - "#989498", - "#b9b5b8", - "#d5d3d5", - "#ffffff", - "#dd464c", - "#fd8b19", - "#fdcc59", - "#8fc13e", - "#149b93", - "#1290bf", - "#c85e7c", - "#b33508", - ], - "horizon-dark": [ - "#1c1e26", - "#232530", - "#2e303e", - "#676a8d", - "#ced1d0", - "#cbced0", - "#dcdfe4", - "#e3e6ee", - "#e93c58", - "#e58d7d", - "#efb993", - "#efaf8e", - "#24a8b4", - "#df5273", - "#b072d1", - "#e4a382", - ], - "ia-dark": [ - "#1a1a1a", - "#222222", - "#1d414d", - "#767676", - "#b8b8b8", - "#cccccc", - "#e8e8e8", - "#f8f8f8", - "#d88568", - "#d86868", - "#b99353", - "#83a471", - "#7c9cae", - "#8eccdd", - "#b98eb2", - "#8b6c37", - ], - "ia-light": [ - "#f6f6f6", - "#dedede", - "#bde5f2", - "#898989", - "#767676", - "#181818", - "#e8e8e8", - "#898989", - "#9c5a02", - "#c43e18", - "#c48218", - "#38781c", - "#2d6bb1", - "#48bac2", - "#a94598", - "#8b6c37", - ], - icy: [ - "#021012", - "#031619", - "#041f23", - "#052e34", - "#064048", - "#095b67", - "#0c7c8c", - "#109cb0", - "#16c1d9", - "#b3ebf2", - "#80deea", - "#4dd0e1", - "#26c6da", - "#00bcd4", - "#00acc1", - "#0097a7", - ], - isotope: [ - "#000000", - "#404040", - "#606060", - "#808080", - "#c0c0c0", - "#d0d0d0", - "#e0e0e0", - "#ffffff", - "#ff0000", - "#ff9900", - "#ff0099", - "#33ff00", - "#00ffff", - "#0066ff", - "#cc00ff", - "#3300ff", - ], - macintosh: [ - "#000000", - "#404040", - "#404040", - "#808080", - "#808080", - "#c0c0c0", - "#c0c0c0", - "#ffffff", - "#dd0907", - "#ff6403", - "#fbf305", - "#1fb714", - "#02abea", - "#0000d3", - "#4700a5", - "#90713a", - ], - marrakesh: [ - "#201602", - "#302e00", - "#5f5b17", - "#6c6823", - "#86813b", - "#948e48", - "#ccc37a", - "#faf0a5", - "#c35359", - "#b36144", - "#a88339", - "#18974e", - "#75a738", - "#477ca1", - "#8868b3", - "#b3588e", - ], - materia: [ - "#263238", - "#2c393f", - "#37474f", - "#707880", - "#c9ccd3", - "#cdd3de", - "#d5dbe5", - "#ffffff", - "#ec5f67", - "#ea9560", - "#ffcc00", - "#8bd649", - "#80cbc4", - "#89ddff", - "#82aaff", - "#ec5f67", - ], - "material-lighter": [ - "#fafafa", - "#e7eaec", - "#cceae7", - "#ccd7da", - "#8796b0", - "#80cbc4", - "#80cbc4", - "#666666", - "#ff5370", - "#f76d47", - "#ffb62c", - "#91b859", - "#39adb5", - "#6182b8", - "#7c4dff", - "#e53935", - ], - material: [ - "#263238", - "#2e3c43", - "#314549", - "#546e7a", - "#b2ccd6", - "#eeffff", - "#eeffff", - "#ffffff", - "#f07178", - "#f78c6c", - "#ffcb6b", - "#c3e88d", - "#89ddff", - "#82aaff", - "#c792ea", - "#ff5370", - ], - "mellow-purple": [ - "#1e0528", - "#1a092d", - "#331354", - "#320f55", - "#873582", - "#ffeeff", - "#ffeeff", - "#f8c0ff", - "#00d9e9", - "#aa00a3", - "#955ae7", - "#05cb0d", - "#b900b1", - "#550068", - "#8991bb", - "#4d6fff", - ], - "mexico-light": [ - "#f8f8f8", - "#e8e8e8", - "#d8d8d8", - "#b8b8b8", - "#585858", - "#383838", - "#282828", - "#181818", - "#ab4642", - "#dc9656", - "#f79a0e", - "#538947", - "#4b8093", - "#7cafc2", - "#96609e", - "#a16946", - ], - mocha: [ - "#3b3228", - "#534636", - "#645240", - "#7e705a", - "#b8afad", - "#d0c8c6", - "#e9e1dd", - "#f5eeeb", - "#cb6077", - "#d28b71", - "#f4bc87", - "#beb55b", - "#7bbda4", - "#8ab3b5", - "#a89bb9", - "#bb9584", - ], - monokai: [ - "#272822", - "#383830", - "#49483e", - "#75715e", - "#a59f85", - "#f8f8f2", - "#f5f4f1", - "#f9f8f5", - "#f92672", - "#fd971f", - "#f4bf75", - "#a6e22e", - "#a1efe4", - "#66d9ef", - "#ae81ff", - "#cc6633", - ], - nord: [ - "#2e3440", - "#3b4252", - "#434c5e", - "#4c566a", - "#d8dee9", - "#e5e9f0", - "#eceff4", - "#8fbcbb", - "#88c0d0", - "#81a1c1", - "#5e81ac", - "#bf616a", - "#d08770", - "#ebcb8b", - "#a3be8c", - "#b48ead", - ], - ocean: [ - "#2b303b", - "#343d46", - "#4f5b66", - "#65737e", - "#a7adba", - "#c0c5ce", - "#dfe1e8", - "#eff1f5", - "#bf616a", - "#d08770", - "#ebcb8b", - "#a3be8c", - "#96b5b4", - "#8fa1b3", - "#b48ead", - "#ab7967", - ], - "one-light": [ - "#fafafa", - "#f0f0f1", - "#e5e5e6", - "#a0a1a7", - "#696c77", - "#383a42", - "#202227", - "#090a0b", - "#ca1243", - "#d75f00", - "#c18401", - "#50a14f", - "#0184bc", - "#4078f2", - "#a626a4", - "#986801", - ], - onedark: [ - "#282c34", - "#353b45", - "#3e4451", - "#545862", - "#565c64", - "#abb2bf", - "#b6bdca", - "#c8ccd4", - "#e06c75", - "#d19a66", - "#e5c07b", - "#98c379", - "#56b6c2", - "#61afef", - "#c678dd", - "#be5046", - ], - "papercolor-dark": [ - "#1c1c1c", - "#af005f", - "#5faf00", - "#d7af5f", - "#5fafd7", - "#808080", - "#d7875f", - "#d0d0d0", - "#585858", - "#5faf5f", - "#afd700", - "#af87d7", - "#ffaf00", - "#ff5faf", - "#00afaf", - "#5f8787", - ], - "papercolor-light": [ - "#eeeeee", - "#af0000", - "#008700", - "#5f8700", - "#0087af", - "#878787", - "#005f87", - "#444444", - "#bcbcbc", - "#d70000", - "#d70087", - "#8700af", - "#d75f00", - "#d75f00", - "#005faf", - "#005f87", - ], - paraiso: [ - "#2f1e2e", - "#41323f", - "#4f424c", - "#776e71", - "#8d8687", - "#a39e9b", - "#b9b6b0", - "#e7e9db", - "#ef6155", - "#f99b15", - "#fec418", - "#48b685", - "#5bc4bf", - "#06b6ef", - "#815ba4", - "#e96ba8", - ], - pico: [ - "#000000", - "#1d2b53", - "#7e2553", - "#008751", - "#ab5236", - "#5f574f", - "#c2c3c7", - "#fff1e8", - "#ff004d", - "#ffa300", - "#fff024", - "#00e756", - "#29adff", - "#83769c", - "#ff77a8", - "#ffccaa", - ], - pop: [ - "#000000", - "#202020", - "#303030", - "#505050", - "#b0b0b0", - "#d0d0d0", - "#e0e0e0", - "#ffffff", - "#eb008a", - "#f29333", - "#f8ca12", - "#37b349", - "#00aabb", - "#0e5a94", - "#b31e8d", - "#7a2d00", - ], - railscasts: [ - "#2b2b2b", - "#272935", - "#3a4055", - "#5a647e", - "#d4cfc9", - "#e6e1dc", - "#f4f1ed", - "#f9f7f3", - "#da4939", - "#cc7833", - "#ffc66d", - "#a5c261", - "#519f50", - "#6d9cbe", - "#b6b3eb", - "#bc9458", - ], - seti: [ - "#151718", - "#282a2b", - "#3b758c", - "#41535b", - "#43a5d5", - "#d6d6d6", - "#eeeeee", - "#ffffff", - "#cd3f45", - "#db7b55", - "#e6cd69", - "#9fca56", - "#55dbbe", - "#55b5db", - "#a074c4", - "#8a553f", - ], - "solarized-dark": [ - "#002b36", - "#073642", - "#586e75", - "#657b83", - "#839496", - "#93a1a1", - "#eee8d5", - "#fdf6e3", - "#dc322f", - "#cb4b16", - "#b58900", - "#859900", - "#2aa198", - "#268bd2", - "#6c71c4", - "#d33682", - ], - "solarized-light": [ - "#fdf6e3", - "#eee8d5", - "#93a1a1", - "#839496", - "#657b83", - "#586e75", - "#073642", - "#002b36", - "#dc322f", - "#cb4b16", - "#b58900", - "#859900", - "#2aa198", - "#268bd2", - "#6c71c4", - "#d33682", - ], - spacemacs: [ - "#1f2022", - "#282828", - "#444155", - "#585858", - "#b8b8b8", - "#a3a3a3", - "#e8e8e8", - "#f8f8f8", - "#f2241f", - "#ffa500", - "#b1951d", - "#67b11d", - "#2d9574", - "#4f97d7", - "#a31db1", - "#b03060", - ], - "summerfruit-dark": [ - "#151515", - "#202020", - "#303030", - "#505050", - "#b0b0b0", - "#d0d0d0", - "#e0e0e0", - "#ffffff", - "#ff0086", - "#fd8900", - "#aba800", - "#00c918", - "#1faaaa", - "#3777e6", - "#ad00a1", - "#cc6633", - ], - "summerfruit-light": [ - "#ffffff", - "#e0e0e0", - "#d0d0d0", - "#b0b0b0", - "#000000", - "#101010", - "#151515", - "#202020", - "#ff0086", - "#fd8900", - "#aba800", - "#00c918", - "#1faaaa", - "#3777e6", - "#ad00a1", - "#cc6633", - ], - "tomorrow-night": [ - "#1d1f21", - "#282a2e", - "#373b41", - "#969896", - "#b4b7b4", - "#c5c8c6", - "#e0e0e0", - "#ffffff", - "#cc6666", - "#de935f", - "#f0c674", - "#b5bd68", - "#8abeb7", - "#81a2be", - "#b294bb", - "#a3685a", - ], - tomorrow: [ - "#ffffff", - "#e0e0e0", - "#d6d6d6", - "#8e908c", - "#969896", - "#4d4d4c", - "#282a2e", - "#1d1f21", - "#c82829", - "#f5871f", - "#eab700", - "#718c00", - "#3e999f", - "#4271ae", - "#8959a8", - "#a3685a", - ], - tube: [ - "#231f20", - "#1c3f95", - "#5a5758", - "#737171", - "#959ca1", - "#d9d8d8", - "#e7e7e8", - "#ffffff", - "#ee2e24", - "#f386a1", - "#ffd204", - "#00853e", - "#85cebc", - "#009ddc", - "#98005d", - "#b06110", - ], - twilight: [ - "#1e1e1e", - "#323537", - "#464b50", - "#5f5a60", - "#838184", - "#a7a7a7", - "#c3c3c3", - "#ffffff", - "#cf6a4c", - "#cda869", - "#f9ee98", - "#8f9d6a", - "#afc4db", - "#7587a6", - "#9b859d", - "#9b703f", - ], - woodland: [ - "#231e18", - "#302b25", - "#48413a", - "#9d8b70", - "#b4a490", - "#cabcb1", - "#d7c8bc", - "#e4d4c8", - "#d35c5c", - "#ca7f32", - "#e0ac16", - "#b7ba53", - "#6eb958", - "#88a4d3", - "#bb90e2", - "#b49368", - ], - zenburn: [ - "#383838", - "#404040", - "#606060", - "#6f6f6f", - "#808080", - "#dcdccc", - "#c0c0c0", - "#ffffff", - "#dca3a3", - "#dfaf8f", - "#e0cf9f", - "#5f7f5f", - "#93e0e3", - "#7cb8bb", - "#dc8cc3", - "#000000", - ], -} - -export const availableThemes = Object.keys(themes) - -export const themeStyles = (nameOrObject) => { - let theme - if (typeof nameOrObject === "string") { - if (themes[nameOrObject] === undefined) { - throw new Error(`${nameOrObject} not found`) - } - theme = themes[nameOrObject].reduce((map, v, i) => { - const key = `base0${i.toString(16).toUpperCase()}` - map[key] = v - return map - }, {}) - } else { - theme = nameOrObject - } - - return `.container{${Object.keys(theme) - .map((key) => `--${key}: ${theme[key]};`) - .join("")}}` -} diff --git a/src/validator.js b/src/validator.js deleted file mode 100644 index 0da5f80..0000000 --- a/src/validator.js +++ /dev/null @@ -1,52 +0,0 @@ -export const validateBoolean = (value) => { - if (typeof value === "boolean") return value - if (value === "true") return true - else if (value === "false") return false - - throw new Error(`should be a boolean!`) -} - -export const validateString = (value) => { - if (typeof value === "string") return value - - throw new Error(`should be a string!`) -} - -export const validatePositiveNumber = (value) => { - if (typeof value === "number" && value >= 0) return value - if (typeof value === "string") { - value = parseFloat(value) - } - if (isNaN(value) || value < 0) { - throw new Error(`should be a positive number!`) - } - return value -} - -export const validateBooleanOrPositiveNumber = (value) => { - if (typeof value === "boolean") return value - if (typeof value === "number") return value - if (value === "true") return true - else if (value === "false") return false - else if (typeof value === "string") { - value = parseFloat(value) - if (!isNaN(value) && value >= 0) return value - } - - throw new Error(`should be a boolean or a positive number!`) -} - -export const validateStringOrJson = (value) => { - if (typeof value === "object") return value - if (typeof value === "string") { - try { - return JSON.parse(value) - // eslint-disable-next-line no-unused-vars - } catch (error) { - // console.debug(error) - return value - } - } - - throw new Error(`should be a string or JSON!`) -} diff --git a/tests/__mocks__/fileMock.js b/tests/__mocks__/fileMock.js deleted file mode 100644 index 5eaf89e..0000000 --- a/tests/__mocks__/fileMock.js +++ /dev/null @@ -1 +0,0 @@ -export default "test-file-stub" diff --git a/tests/__mocks__/styleMock.js b/tests/__mocks__/styleMock.js deleted file mode 100644 index 1efb337..0000000 --- a/tests/__mocks__/styleMock.js +++ /dev/null @@ -1,6 +0,0 @@ -import { readFileSync } from "fs" -import { resolve } from "path" - -const cssText = readFileSync(resolve(__dirname, "../../src/styles.css"), "utf8") - -export default cssText diff --git a/tests/component.test.js b/tests/component.test.js deleted file mode 100644 index 97672de..0000000 --- a/tests/component.test.js +++ /dev/null @@ -1,161 +0,0 @@ -import "../src/component.js" - -globalThis.console.warn = jest.fn() - -describe("JsonViewer", () => { - it("should be defined", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - expect(jsonViewer).toBeDefined() - }) - - it("should contain shadow root", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - expect(jsonViewer.shadowRoot).toBeDefined() - }) - - it("should contain styles", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - expect(jsonViewer.shadowRoot.querySelector("style")).toBeDefined() - }) - - it("should set theme", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.theme = "default-light" - expect(jsonViewer.options.theme).toEqual("default-light") - }) - - it("should log warning for invalid theme", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.theme = "test" - expect(jsonViewer.options.theme).not.toEqual("test") - expect(console.warn).toHaveBeenCalledWith(expect.anything(), expect.stringContaining("test not found")) - }) - - it("should set indent", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.indent = 4 - expect(jsonViewer.options.indent).toEqual(4) - }) - it("should set indent as string", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.indent = "4" - expect(jsonViewer.options.indent).toEqual(4) - }) - it("should warn for invalid indent", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.indent = "test" - expect(jsonViewer.options.indent).not.toEqual("test") - expect(console.warn).toHaveBeenCalledWith(expect.anything(), expect.stringContaining("should be a positive number")) - }) - - it("should set expanded as number", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.expanded = 2 - expect(jsonViewer.options.expanded).toEqual(2) - }) - - it("should set expanded as boolean", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.expanded = true - expect(jsonViewer.options.expanded).toEqual(true) - }) - it("should set expanded number as string", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.expanded = "2" - expect(jsonViewer.options.expanded).toEqual(2) - }) - it("should set expanded boolean as string", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.expanded = "true" - expect(jsonViewer.options.expanded).toEqual(true) - }) - - it("should warn for invalid expanded", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.expanded = "test" - expect(jsonViewer.options.expanded).not.toEqual("test") - expect(console.warn).toHaveBeenCalledWith( - expect.anything(), - expect.stringContaining("should be a boolean or a positive number") - ) - }) - - it("should set showDataTypes", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.showDataTypes = false - expect(jsonViewer.options.showDataTypes).toEqual(false) - }) - it("should set showDataTypes as string", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.showDataTypes = "false" - expect(jsonViewer.options.showDataTypes).toEqual(false) - }) - it("should warn for invalid showDataTypes", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.showDataTypes = "test" - expect(jsonViewer.options.showDataTypes).not.toEqual("test") - expect(console.warn).toHaveBeenCalledWith(expect.anything(), expect.stringContaining("should be a boolean")) - }) - - it("should set expandIconType", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.expandIconType = "arrow" - expect(jsonViewer.options.expandIconType).toEqual("arrow") - }) - it("should warn for invalid expandIconType", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.expandIconType = "test" - expect(jsonViewer.options.expandIconType).not.toEqual("test") - expect(console.warn).toHaveBeenCalledWith( - expect.anything(), - expect.stringContaining("should be one of arrow, square, circle") - ) - }) - - it("should set showCopy", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.showCopy = false - expect(jsonViewer.options.showCopy).toEqual(false) - }) - - it("should set showCopy as string", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.showCopy = "false" - expect(jsonViewer.options.showCopy).toEqual(false) - }) - - it("should warn for invalid showCopy", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.showCopy = "test" - expect(jsonViewer.options.showCopy).not.toEqual("test") - expect(console.warn).toHaveBeenCalledWith(expect.anything(), expect.stringContaining("should be a boolean")) - }) - - // It seems that the showDetails button is always in the active state by default, - // even when json-viewer is initialized with show-data-types="false" and - // show-size="false". In that scenario the button then requires two clicks - // before it has the expected toggling effect. - it("should not show details if show-data-types and show.size are false", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.setAttribute("show-toolbar", "true") - jsonViewer.setAttribute("show-data-types", "false") - jsonViewer.setAttribute("show-size", "false") - expect(jsonViewer.shadowRoot.querySelector(".icon.info").classList).not.toContain("active") - }) - - it("should show details if show-data-types is true and show.size is false", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.setAttribute("show-toolbar", "true") - jsonViewer.setAttribute("show-data-types", "true") - jsonViewer.setAttribute("show-size", "false") - expect(jsonViewer.shadowRoot.querySelector(".icon.info").classList).toContain("active") - }) - - it("should show details if show-data-types is false and show.size is true", () => { - const jsonViewer = document.createElement("andypf-json-viewer") - jsonViewer.setAttribute("show-toolbar", "true") - jsonViewer.setAttribute("show-data-types", "false") - jsonViewer.setAttribute("show-size", "true") - expect(jsonViewer.shadowRoot.querySelector(".icon.info").classList).toContain("active") - }) -}) diff --git a/tests/data-helpers.test.js b/tests/data-helpers.test.js deleted file mode 100644 index d3dfc66..0000000 --- a/tests/data-helpers.test.js +++ /dev/null @@ -1,140 +0,0 @@ -import { isUrl, parseJson, dataType } from "../src/data-helpers" - -describe("data-helper", () => { - describe("isUrl", () => { - it("should return true if the string starts with http:// or https://", () => { - expect(isUrl("http://example.com")).toBe(true) - expect(isUrl("https://example.com")).toBe(true) - }) - - it("should return false if the string does not start with http:// or https://", () => { - expect(isUrl("example.com")).toBe(false) - }) - - it("should return false if the string is not a valid URL", () => { - expect(isUrl("http://")).toBe(false) - }) - - it("should return false if the string is not a string", () => { - expect(isUrl(123)).toBe(false) - }) - - it("should return false if the string is an empty string", () => { - expect(isUrl("")).toBe(false) - }) - - it("should return false if the string is null", () => { - expect(isUrl(null)).toBe(false) - }) - it("should return false if the string is undefined", () => { - expect(isUrl(undefined)).toBe(false) - }) - it("should return false if the string is NaN", () => { - expect(isUrl(NaN)).toBe(false) - }) - it("should return false if the string is Infinity", () => { - expect(isUrl(Infinity)).toBe(false) - }) - it("should return false if the string is an object", () => { - expect(isUrl({})).toBe(false) - }) - }) - - describe("dataType", () => { - it("should return 'string' if the value is a string", () => { - expect(dataType("")).toBe("string") - }) - it("should return 'number' if the value is a number", () => { - expect(dataType(123)).toBe("int") - }) - it("should return 'number' if the value is a float", () => { - expect(dataType(123.45)).toBe("float") - }) - it("should return 'boolean' if the value is a boolean", () => { - expect(dataType(true)).toBe("bool") - }) - it("should return 'null' if the value is null", () => { - expect(dataType(null)).toBe("null") - }) - it("should return 'undefined' if the value is undefined", () => { - expect(dataType(undefined)).toBe("undefined") - }) - it("should return 'object' if the value is an object", () => { - expect(dataType({})).toBe("object") - }) - it("should return 'array' if the value is an array", () => { - expect(dataType([])).toBe("array") - }) - it("should return 'function' if the value is a function", () => { - expect(dataType(() => {})).toBe("function") - }) - it("should return 'NaN' if the value is NaN", () => { - expect(dataType(NaN)).toBe("NaN") - }) - it("should return 'Infinity' if the value is Infinity", () => { - expect(dataType(Infinity)).toBe("Infinity") - }) - }) - describe("parseJson", () => { - it("should parse a JSON string", () => { - expect(parseJson("{}")).toEqual({}) - }) - - it("should parse a JSON string with NaN", () => { - expect(parseJson('{ "a": NaN }')).toEqual({ a: NaN }) - }) - - it("should parse a JSON string including array with NaN", () => { - expect(parseJson('{ "array": [1,2,"test",NaN,4] }')).toEqual({ - array: [1, 2, "test", NaN, 4], - }) - }) - it("should parse a JSON string including array with NaN and undefined", () => { - expect(parseJson('{ "array": [1,2,"test",NaN,undefined,4], "b": "b" }')).toEqual({ - array: [1, 2, "test", NaN, undefined, 4], - b: "b", - }) - }) - - it("should not repace NaN in strings", () => { - expect(parseJson('{ "a": "NaNometer" }')).toEqual({ a: "NaNometer" }) - }) - it("should not repace undefined in strings", () => { - expect(parseJson('{ "a": "undefined: a is undefined" }')).toEqual({ - a: "undefined: a is undefined", - }) - }) - - it("should parse a JSON string with undefined", () => { - expect(parseJson('{ "a": undefined }')).toEqual({ a: undefined }) - }) - - it("should parse a JSON string with NaN and undefined", () => { - expect(parseJson('{ "a": NaN, "b": undefined }')).toEqual({ - a: NaN, - b: undefined, - }) - }) - - it("should parse a JSON string including NaN, undefined", () => { - expect( - parseJson( - '{ "string": "this is a test ...", "integer":42, "array":[ 1, 2, 3, "test", NaN], "float":3.14159, "undefined":undefined, "object":{"first-child":true, "second-child":false, "last-child":null },"string_number":"1234", "date": "Tue, Oct 17, 2023, 08:58 AM" }' - ) - ).toEqual({ - string: "this is a test ...", - integer: 42, - array: [1, 2, 3, "test", NaN], - float: 3.14159, - undefined: undefined, - object: { - "first-child": true, - "second-child": false, - "last-child": null, - }, - string_number: "1234", - date: "Tue, Oct 17, 2023, 08:58 AM", - }) - }) - }) -}) diff --git a/tests/renderer/container.test.js b/tests/renderer/container.test.js deleted file mode 100644 index 3c66f37..0000000 --- a/tests/renderer/container.test.js +++ /dev/null @@ -1,189 +0,0 @@ -import Container from "../../src/renderer/container" - -describe("Container", () => { - it("should be defined", () => { - const renderer = new Container(document.createElement("div")) - expect(renderer).toBeDefined() - }) - it("should render the container node", () => { - let root = document.createElement("div") - const spy = jest.spyOn(root, "appendChild") - new Container(root) - expect(spy).toHaveBeenCalled() - }) - - it("should re-render the container node if data has changes", () => { - let root = document.createElement("div") - const renderer = new Container(root) - const container = root.children[0] - const spy = jest.spyOn(container, "replaceChildren") - - renderer.update({ data: { name: "John" } }) - expect(spy).toHaveBeenCalled() - }) - - it("should not re-render the container node if data has not changed", () => { - let root = document.createElement("div") - const renderer = new Container(root) - const container = root.children[0] - const spy = jest.spyOn(container, "replaceChildren") - - renderer.update({ data: { name: "Johny" } }) - renderer.update({ data: { name: "Johny" } }) - expect(spy).toHaveBeenCalledTimes(1) - }) - - it("should not re-render the container node if only expanded has changed", () => { - let root = document.createElement("div") - const renderer = new Container(root) - const container = root.children[0] - const spy = jest.spyOn(container, "replaceChildren") - - renderer.update({ data: { name: "Johny" } }) - renderer.update({ expanded: true }) - expect(spy).toHaveBeenCalledTimes(1) - }) - it("should not re-render the container node if only indent has changed", () => { - let root = document.createElement("div") - const renderer = new Container(root) - const container = root.children[0] - const spy = jest.spyOn(container, "replaceChildren") - - renderer.update({ data: { name: "Johny" } }) - renderer.update({ indent: 2 }) - expect(spy).toHaveBeenCalledTimes(1) - }) - - it("should not re-render the container node if only expandIconType has changed", () => { - let root = document.createElement("div") - const renderer = new Container(root) - const container = root.children[0] - const spy = jest.spyOn(container, "replaceChildren") - renderer.update({ data: { name: "Johny" } }) - renderer.update({ expandIconType: "square" }) - expect(spy).toHaveBeenCalledTimes(1) - }) - - it("should not re-render the container node if only showDataTypes has changed", () => { - let root = document.createElement("div") - const renderer = new Container(root) - const container = root.children[0] - const spy = jest.spyOn(container, "replaceChildren") - - renderer.update({ data: { name: "Johny" } }) - renderer.update({ showDataTypes: true }) - expect(spy).toHaveBeenCalledTimes(1) - }) - - it("should not re-render the container node if only showCopy has changed", () => { - let root = document.createElement("div") - const renderer = new Container(root) - const container = root.children[0] - const spy = jest.spyOn(container, "replaceChildren") - - renderer.update({ data: { name: "Johny" } }) - renderer.update({ showCopy: true }) - expect(spy).toHaveBeenCalledTimes(1) - }) - - it("should not re-render the container node if only showSize has changed", () => { - let root = document.createElement("div") - const renderer = new Container(root) - const container = root.children[0] - const spy = jest.spyOn(container, "replaceChildren") - - renderer.update({ data: { name: "Johny" } }) - renderer.update({ showSize: true }) - expect(spy).toHaveBeenCalledTimes(1) - }) - - it("should add the class 'show-copy'", () => { - let root = document.createElement("div") - const renderer = new Container(root) - renderer.update({ showCopy: true }) - expect(root.children[0].classList.contains("show-copy")).toBe(true) - }) - it("should remove the class 'show-copy'", () => { - let root = document.createElement("div") - const renderer = new Container(root) - root.children[0].classList.add("show-copy") - renderer.update({ showCopy: false }) - expect(root.children[0].classList.contains("show-copy")).toBe(false) - }) - it("should add the class 'show-data-types'", () => { - let root = document.createElement("div") - const renderer = new Container(root) - renderer.update({ showDataTypes: true }) - expect(root.children[0].classList.contains("show-data-types")).toBe(true) - }) - it("should remove the class 'show-data-types'", () => { - let root = document.createElement("div") - const renderer = new Container(root) - root.children[0].classList.add("show-data-types") - renderer.update({ showDataTypes: false }) - expect(root.children[0].classList.contains("show-data-types")).toBe(false) - }) - it("should add the class 'show-size'", () => { - let root = document.createElement("div") - const renderer = new Container(root) - renderer.update({ showSize: true }) - expect(root.children[0].classList.contains("show-size")).toBe(true) - }) - it("should remove the class 'show-size'", () => { - let root = document.createElement("div") - const renderer = new Container(root) - root.children[0].classList.add("show-size") - renderer.update({ showSize: false }) - expect(root.children[0].classList.contains("show-size")).toBe(false) - }) - it("should set the expand icon type to 'square'", () => { - let root = document.createElement("div") - const renderer = new Container(root) - renderer.update({ expandIconType: "square" }) - expect(root.children[0].classList.contains("expand-icon-square")).toBe(true) - }) - it("should toggle the expand icon type from square to 'circle'", () => { - let root = document.createElement("div") - const renderer = new Container(root) - root.children[0].classList.add("expand-icon-square") - - renderer.update({ expandIconType: "circle" }) - expect(root.children[0].classList.contains("expand-icon-circle")).toBe(true) - expect(root.children[0].classList.contains("expand-icon-csquare")).toBe(false) - }) - it("should render the toolbar node", () => { - let root = document.createElement("div") - const renderer = new Container(root) - renderer.update({ showToolbar: true }) - expect(root.querySelector(".toolbar")).not.toBe(null) - }) - it("should toggle the toolbar node", () => { - let root = document.createElement("div") - const renderer = new Container(root) - renderer.update({ showToolbar: true }) - renderer.update({ showToolbar: false }) - expect(root.querySelector(".toolbar")).toBe(null) - }) - it("should toggle showCopy, showDataTypes, showSize when clicking on show details icon in toolbar", () => { - let root = document.createElement("div") - const renderer = new Container(root) - renderer.update({ - showToolbar: true, - }) - const toolbar = root.querySelector(".toolbar") - const showDetails = toolbar.querySelector(".icon.info") - const spy = jest.spyOn(renderer, "update") - showDetails.click() - expect(spy).toHaveBeenCalledWith({ - showCopy: false, - showDataTypes: false, - showSize: false, - }) - showDetails.click() - expect(spy).toHaveBeenCalledWith({ - showCopy: true, - showDataTypes: true, - showSize: true, - }) - }) -}) diff --git a/tests/renderer/data-row.test.js b/tests/renderer/data-row.test.js deleted file mode 100644 index 094205f..0000000 --- a/tests/renderer/data-row.test.js +++ /dev/null @@ -1,178 +0,0 @@ -import DataRow from "../../src/renderer/data-row.js" - -describe("DataRow", () => { - it("should be defined", () => { - const renderer = new DataRow({}) - expect(renderer).toBeDefined() - }) - it("should render the data-row node", () => { - const row = new DataRow({}) - expect(row.element).toBeDefined() - }) - it("should render the key node", () => { - const row = new DataRow({ key: "name" }) - expect(row.element.querySelector(".key")).toBeDefined() - }) - it("should render the value node", () => { - const row = new DataRow({ value: "John" }) - expect(row.element.querySelector(".value")).toBeDefined() - }) - it("should render the expand node", () => { - const row = new DataRow({ expanded: true }) - expect(row.element.querySelector(".expand")).toBeDefined() - }) - it("should render same number of row nodes as the data object", () => { - const row = new DataRow({ - value: { name: "John", subProp: { test: "test" } }, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row").length).toBe(4) - }) - it("should render the correct number of row nodes if the data object is an array", () => { - const root = document.createElement("div") - const row = new DataRow({ - key: "", - value: [{ name: "John" }, { name: "Jane" }], - }) - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row").length).toBe(5) - }) - it("should add the class expanded to the row node if expanded is true", () => { - const row = new DataRow({ expanded: true }) - expect(row.element.classList.contains("expanded")).toBe(true) - }) - it("should remove the class expanded from the row node if expanded is false", () => { - const row = new DataRow({ expanded: false }) - expect(row.element.classList.contains("expanded")).toBe(false) - }) - it("should add the class expanded to one row node if expanded is 1", () => { - const row = new DataRow({ value: { key1: { key2: "test" } }, expanded: 1 }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row").length).toBe(3) - expect(root.querySelectorAll(".data-row.expanded").length).toBe(1) - }) - it("should add the class expanded to two row nodes if expanded is 2", () => { - const row = new DataRow({ - value: { key1: { key2: { key3: "test" } } }, - expanded: 2, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row").length).toBe(4) - expect(root.querySelectorAll(".data-row.expanded").length).toBe(2) - }) - it("should add the class expanded to the first node if expanded is 1", () => { - const row = new DataRow({ - value: { key1: { key2: "test" } }, - expanded: 1, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row.expanded").length).toBe(1) - expect(root.querySelector(".data-row").classList).toContain("expanded") - }) - it("should indent the second row node if indent is 1", () => { - const row = new DataRow({ - value: { key1: { key2: "test" } }, - indent: 1, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row")[1].style.paddingLeft).toContain("5px") - }) - it("should set padding-left to 20px if indent is 4", () => { - const row = new DataRow({ - value: { key1: { key2: "test" } }, - indent: 4, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row")[1].style.paddingLeft).toContain("20px") - }) - it("should create a value type node", () => { - const row = new DataRow({ - value: { key1: "test" }, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row")[1].querySelector(".value .type")).not.toBeNull() - }) - it("should create a value type node with the correct type", () => { - const row = new DataRow({ - value: { key1: "test" }, - expanded: true, - }) - const root = document.createElement("div") - root.appendChild(row.element) - console.log(root.innerHTML, root.querySelectorAll(".data-row")[1].querySelector(".value").innerHTML) - expect(root.querySelectorAll(".data-row")[1].querySelector(".value .type").textContent).toBe("string") - }) - it("should create a size node", () => { - const row = new DataRow({ - value: { key1: "test" }, - expanded: true, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row")[0].querySelector(".items-size")).not.toBeNull() - }) - it("should create a size node with 1 size", () => { - const row = new DataRow({ - value: { key1: "test" }, - expanded: true, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row")[0].querySelector(".items-size").textContent).toBe("1 item") - }) - it("should create a size node with 2 size", () => { - const row = new DataRow({ - value: { key1: "test", key2: "test" }, - expanded: true, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row")[0].querySelector(".items-size").textContent).toBe("2 items") - }) - it("should create the copy node", () => { - const row = new DataRow({ - value: { key1: "test" }, - expanded: true, - }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".data-row")[0].querySelector(".copy.icon")).not.toBeNull() - }) - it("should not contain any nodes with match css class", () => { - const row = new DataRow({ - value: { key1: "test" }, - expanded: true, - }) - row.update({ searchTerm: "" }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".match").length).toBe(0) - }) - it("should contain one node with match css class if matches the value", () => { - const row = new DataRow({ - value: { key1: "test" }, - expanded: true, - }) - row.update({ searchTerm: "test" }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".match").length).toBe(1) - }) - it("should contain one nodes with match css class if matches the key", () => { - const row = new DataRow({ - value: { key1: "test" }, - expanded: true, - }) - row.update({ searchTerm: "key1" }) - const root = document.createElement("div") - root.appendChild(row.element) - expect(root.querySelectorAll(".match").length).toBe(1) - }) -}) diff --git a/tests/renderer/toolbar.test.js b/tests/renderer/toolbar.test.js deleted file mode 100644 index 6299f4d..0000000 --- a/tests/renderer/toolbar.test.js +++ /dev/null @@ -1,88 +0,0 @@ -import Toolbar from "../../src/renderer/toolbar" - -describe("Toolbar", () => { - it("should be defined", () => { - expect(Toolbar).toBeDefined() - }) - it("should render the toolbar node", () => { - let root = document.createElement("div") - const toolbar = new Toolbar({}) - root.appendChild(toolbar.element) - expect(root.children[0].className).toBe("toolbar") - }) - it("should render the refresh icon", () => { - const toolbar = new Toolbar({}) - expect(toolbar.element.querySelector(".refresh.icon")).not.toBe(null) - }) - it("should render the expand icon", () => { - const toolbar = new Toolbar({}) - expect(toolbar.element.querySelector(".plus.icon")).not.toBe(null) - }) - it("should render the collapse icon", () => { - const toolbar = new Toolbar({}) - expect(toolbar.element.querySelector(".minus.icon")).not.toBe(null) - }) - it("should render the indent icon", () => { - const toolbar = new Toolbar({}) - expect(toolbar.element.querySelector(".indent.icon")).not.toBe(null) - }) - it("should render the outdent icon", () => { - const toolbar = new Toolbar({}) - expect(toolbar.element.querySelector(".outdent.icon")).not.toBe(null) - }) - it("should render the details icon", () => { - const toolbar = new Toolbar({}) - expect(toolbar.element.querySelector(".info.icon")).not.toBe(null) - }) - it("should render the search input", () => { - const toolbar = new Toolbar({}) - expect(toolbar.element.querySelector(".search-input")).toBeDefined() - }) - it("should call the onChange and onSearch callbacks when refresh icon is clicked", () => { - const onChange = jest.fn() - const onSearch = jest.fn() - const toolbar = new Toolbar({ onChange, onSearch }) - toolbar.element.querySelector(".refresh.icon").click() - expect(onChange).toHaveBeenCalledWith({ indent: 2, expanded: 1 }) - expect(onSearch).toHaveBeenCalledWith("") - }) - it("should call the onChange callback when expand icon is clicked", () => { - const onChange = jest.fn() - const toolbar = new Toolbar({ expanded: 0, onChange }) - toolbar.maxExpandLevel = 2 - toolbar.element.querySelector(".plus.icon").click() - expect(onChange).toHaveBeenCalledWith({ expanded: 1 }) - }) - it("should call the onChange callback when collapse icon is clicked", () => { - const onChange = jest.fn() - const toolbar = new Toolbar({ expanded: 2, onChange }) - toolbar.maxExpandLevel = 2 - toolbar.element.querySelector(".minus.icon").click() - expect(onChange).toHaveBeenCalledWith({ expanded: 1 }) - }) - it("should call the onChange callback when indent icon is clicked", () => { - const onChange = jest.fn() - const toolbar = new Toolbar({ indent: 2, onChange }) - toolbar.element.querySelector(".indent.icon").click() - expect(onChange).toHaveBeenCalledWith({ indent: 3 }) - }) - it("should call the onChange callback when outdent icon is clicked", () => { - const onChange = jest.fn() - const toolbar = new Toolbar({ indent: 2, onChange }) - toolbar.element.querySelector(".outdent.icon").click() - expect(onChange).toHaveBeenCalledWith({ indent: 1 }) - }) - it("should call the onChange callback when details icon is clicked", () => { - const onChange = jest.fn() - const toolbar = new Toolbar({ onChange, showDetails: true }) - toolbar.element.querySelector(".info.icon").click() - expect(onChange).toHaveBeenCalledWith({ showDetails: false }) - }) - it("should call the onSearch callback when search input is changed", () => { - const onSearch = jest.fn() - const toolbar = new Toolbar({ onSearch }) - toolbar.element.querySelector(".search-input").value = "test" - toolbar.element.querySelector(".search-input").dispatchEvent(new Event("input")) - expect(onSearch).toHaveBeenCalledWith("test") - }) -}) diff --git a/tests/themes.test.js b/tests/themes.test.js deleted file mode 100644 index 1053410..0000000 --- a/tests/themes.test.js +++ /dev/null @@ -1,42 +0,0 @@ -import { themeStyles, availableThemes } from "../src/themes" - -describe("themeStyles", () => { - it("should return a function", () => { - expect(typeof themeStyles).toBe("function") - }) - - it("should return a function that returns an object", () => { - expect(typeof themeStyles(availableThemes[0])).toBe("string") - }) - - it("should return a string containing .container", () => { - expect(themeStyles(availableThemes[0])).toContain(".container") - }) - - it("should return a string containing the 16 base colors", () => { - expect(themeStyles(availableThemes[0])).toMatch(/--base00.+--base01.+--base02.+--base0F/) - }) - - it("should return a string for a custom theme object", () => { - const customTheme = { - base00: "#000000", - base01: "#111111", - base02: "#222222", - base03: "#333333", - base04: "#444444", - base05: "#555555", - base06: "#666666", - base07: "#777777", - base08: "#888888", - base09: "#999999", - base0A: "#AAAAAA", - base0B: "#BBBBBB", - base0C: "#CCCCCC", - base0D: "#DDDDDD", - base0E: "#EEEEEE", - base0F: "#FFFFFF", - } - - expect(themeStyles(customTheme)).toMatch(/--base00.+--base01.+--base02.+--base0F/) - }) -}) diff --git a/tests/validator.test.js b/tests/validator.test.js deleted file mode 100644 index 7760ea3..0000000 --- a/tests/validator.test.js +++ /dev/null @@ -1,93 +0,0 @@ -import { - validateBoolean, - validateBooleanOrPositiveNumber, - validatePositiveNumber, - validateStringOrJson, - validateString, -} from "../src/validator" - -describe("validateBoolean", () => { - it("should return true if value is true", () => { - expect(validateBoolean(true)).toBe(true) - }) - it("should return false if value is false", () => { - expect(validateBoolean(false)).toBe(false) - }) - it("should return true if value is 'true'", () => { - expect(validateBoolean("true")).toBe(true) - }) - it("should return false if value is 'false'", () => { - expect(validateBoolean("false")).toBe(false) - }) - it("should throw an error if value is not a boolean", () => { - expect(() => validateBoolean("foo")).toThrowErrorMatchingInlineSnapshot(`"should be a boolean!"`) - }) -}) - -describe("validatePositiveNumber", () => { - it("should return the number if it is a number", () => { - expect(validatePositiveNumber(1)).toBe(1) - }) - it("should return the number if it is a string", () => { - expect(validatePositiveNumber("1")).toBe(1) - }) - it("should throw an error if the number is negative", () => { - expect(() => validatePositiveNumber(-1)).toThrowErrorMatchingInlineSnapshot(`"should be a positive number!"`) - }) - it("should throw an error if the number is NaN", () => { - expect(() => validatePositiveNumber("foo")).toThrowErrorMatchingInlineSnapshot(`"should be a positive number!"`) - }) -}) - -describe("validateBooleanOrPositiveNumber", () => { - it("should return true if value is true", () => { - expect(validateBooleanOrPositiveNumber(true)).toBe(true) - }) - it("should return false if value is false", () => { - expect(validateBooleanOrPositiveNumber(false)).toBe(false) - }) - it("should return true if value is 'true'", () => { - expect(validateBooleanOrPositiveNumber("true")).toBe(true) - }) - it("should return false if value is 'false'", () => { - expect(validateBooleanOrPositiveNumber("false")).toBe(false) - }) - it("should return the number if it is a number", () => { - expect(validateBooleanOrPositiveNumber(1)).toBe(1) - }) - it("should return the number if it is a string", () => { - expect(validateBooleanOrPositiveNumber("1")).toBe(1) - }) - it("should throw an error if value is not a boolean or positive number", () => { - expect(() => validateBooleanOrPositiveNumber("foo")).toThrowErrorMatchingInlineSnapshot( - `"should be a boolean or a positive number!"` - ) - }) -}) - -describe("validateStringOrJson", () => { - it("should return the value if it is an object", () => { - expect(validateStringOrJson({ foo: "bar" })).toEqual({ foo: "bar" }) - }) - it("should return the value if it is a string", () => { - expect(validateStringOrJson("foo")).toEqual("foo") - }) - it("should return the value if it is a valid JSON string", () => { - expect(validateStringOrJson('{"foo":"bar"}')).toEqual({ foo: "bar" }) - }) - it("should return the value if it is an invalid JSON string", () => { - expect(validateStringOrJson("{foo:bar}")).toEqual("{foo:bar}") - }) - it("should throw an error if value is not a string or JSON", () => { - expect(() => validateStringOrJson(1)).toThrowErrorMatchingInlineSnapshot(`"should be a string or JSON!"`) - }) -}) - -describe("validateString", () => { - it("should return the value if it is a string", () => { - expect(validateString("foo")).toEqual("foo") - }) - it("should throw an error if value is not a string", () => { - expect(() => validateString(1)).toThrowErrorMatchingInlineSnapshot(`"should be a string!"`) - }) -}) From e61bd58bdfb15d0f2123fe3cb89db9445a28b77d Mon Sep 17 00:00:00 2001 From: Andreas Pfau Date: Wed, 30 Jul 2025 17:04:59 +0200 Subject: [PATCH 4/9] chore(core): delete old dist folder --- dist/cjs/index.js | 28 --- dist/cjs/react/JsonViewer.js | 28 --- dist/esm/index.js | 28 --- dist/esm/react/JsonViewer.js | 28 --- dist/iife/index.js | 28 --- eslint.config.mjs | 40 +---- package.json | 2 + pnpm-lock.yaml | 321 +++++++++++++++++++++++++++++++++++ 8 files changed, 329 insertions(+), 174 deletions(-) delete mode 100644 dist/cjs/index.js delete mode 100644 dist/cjs/react/JsonViewer.js delete mode 100644 dist/esm/index.js delete mode 100644 dist/esm/react/JsonViewer.js delete mode 100644 dist/iife/index.js diff --git a/dist/cjs/index.js b/dist/cjs/index.js deleted file mode 100644 index d1d5a5b..0000000 --- a/dist/cjs/index.js +++ /dev/null @@ -1,28 +0,0 @@ - -/* -MIT License - -Copyright (c) 2025 Andreas Pfau - -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. - -*/ - -var q=`.container{background-color:var(--base00);color:var(--base05);padding:10px;letter-spacing:0.5px;font-family:monospace;border-radius:3px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:5px;border-bottom:solid 1px var(--base02)}.toolbar .options,.toolbar .search-wrapper{display:flex;align-items:center}.toolbar .icon-wrapper{height:15px;display:flex;align-items:center;padding:2px 5px}.toolbar .icon-wrapper:hover{background-color:var(--base02);border-radius:3px}.toolbar .icon-wrapper:first-child{margin-left:0px}.toolbar .search.icon{margin-right:5px}.toolbar .search-input{border:none;background:transparent;outline:none;flex:1;font-size:16px;color:var(--base0D)}.match{background-color:yellow;font-weight:bold;color:red}.data-row{padding:3px 0}.data-row .data-row{border-left:solid 1px var(--base02);padding-left:20px;margin-left:5px;display:none}.data-row.expanded>.data-row{display:block}.data-row .key-value-wrapper{display:flex;align-items:center}.data-row .key{color:var(--base07)}.data-row .key.number{color:var(--base0C)}.data-row .colon{color:var(--base07);margin:0 5px 0 0}.clickable{cursor:pointer}.data-row .opening-parenthesis,.data-row .closing-parenthesis{color:var(--base07)}.data-row .ellipsis{color:var(--base09)}.data-row.expanded>.key-value-wrapper .closing-parenthesis,.data-row.expanded>.key-value-wrapper .ellipsis{display:none}.data-row>.closing-parenthesis{display:none}.data-row.expanded>.closing-parenthesis{display:inline-block}.data-row .items-size{margin-left:10px;color:var(--base04);font-style:italic;display:none}.show-size .data-row .items-size{display:inline-block}.data-row .value.bool,.data-row .value.boolean{color:var(--base0E)}.data-row .value.function{color:var(--base0D)}.data-row .value.int,.data-row .value.integer{color:var(--base0F)}.data-row .value.float{color:var(--base0B)}.data-row .value.string{color:var(--base09)}.data-row .value.string .content{overflow-wrap:break-word}.data-row .value.string .content::before{content:open-quote}.data-row .value.string .content::after{content:close-quote}.data-row .value.regexp{color:var(--base0A)}.data-row .value.nan{color:var(--base08)}.data-row .value.null{color:var(--base0A)}.data-row .value.undefined{color:var(--base05)}.data-row .value.date{color:var(--base0D)}.data-row .value.nan,.data-row .value.null,.data-row .value.undefined{border-radius:3px;background-color:var(--base02);padding:1px 2px}.data-row .value .type{font-size:smaller;margin-right:4px;opacity:0.8;display:none}.data-row .value .value-data{word-break:break-all}.show-data-types .data-row .value .type{display:inline-block}.icon-wrapper,.copy-icon-wrapper{display:inline-block;cursor:pointer}.icon{display:block;position:relative}.icon:before,.icon:after{content:"";position:absolute;display:block}.expand.icon{margin-right:5px}.expand-icon-arrow .expand.icon{margin-left:3px;width:0;height:0;border-left:solid 6px var(--base0E);border-top:solid 6px transparent;border-bottom:solid 6px transparent}.expand-icon-arrow .expanded>.key-value-wrapper .expand.icon,.expand-icon-arrow .expanded.icon.expand{transform:rotate(90deg);border-left-color:var(--base0D)}.expand-icon-square .expand.icon,.expand-icon-circle .expand.icon{display:block;width:9px;height:9px;border-radius:2px;border:solid 1px var(--base0E)}.expand-icon-circle .expand.icon{border-radius:50%}.expand-icon-square .expand.icon:before,.expand-icon-circle .expand.icon:before,.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{width:5px;height:1px;background-color:var(--base0E);left:2px;top:4px}.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{transform:rotate(90deg)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-square .expand.icon.expanded:after,.expand-icon-circle .expand.icon.expanded:after{display:none}.expand-icon-square .expanded>.key-value-wrapper .expand.icon,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon,.expand-icon-square .expand.icon.expanded,.expand-icon-circle .expanded.expand.icon{border-color:var(--base0D)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-square .expanded.expand.icon:before,.expand-icon-circle .expanded.expand.icon:before{background-color:var(--base0D)}.icon-wrapper{display:inline-block;cursor:pointer}.show-copy .key-value-wrapper:hover .icon.copy{display:block}.copy.icon{margin-left:10px;display:none;width:8px;height:10px;border:solid 1px var(--base0D);border-radius:1px;position:relative;top:4px;transition:0.2s all}.copy.icon:active{transform:scale(1.6);background-color:var(--base0B)}.copy.icon:before{content:"";display:block;left:-3px;top:-3px;width:8px;height:10px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);border-radius:1px 0 0 0}.plus.icon{width:11px;height:1px;background-color:var(--base0D)}.plus.icon:after{content:"";width:11px;height:1px;background-color:var(--base0D);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.minus.icon{width:11px;height:1px;background-color:var(--base0D)}.indent.icon{color:var(--base0D);width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:before{content:"";position:absolute;top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:after{content:"";position:absolute;top:1px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px var(--base0D);border-right:solid 3px transparent}.outdent.icon{color:var(--base0D);margin-left:2px;width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:before{content:"";top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:after{content:"";top:1px;left:-3px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px transparent;border-right:solid 3px var(--base0D)}.refresh.icon{color:var(--base0D);width:10px;height:10px;border-radius:50%;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D);border-left:solid 1px transparent;border-right:solid 1px var(--base0D)}.refresh.icon:before{content:"";left:1px;top:8px;width:3px;height:3px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);-webkit-transform:rotate(-22.5deg);transform:rotate(-22.5deg)}.info.icon{width:12px;height:11px;border:solid 1px var(--base0D);border-radius:2px}.info.icon::before{top:5px;left:5px;width:2px;height:5px;background-color:var(--base0D)}.info.icon::after{top:2px;left:5px;width:2px;height:2px;background-color:var(--base0D)}.info.icon.active{background-color:var(--base0D)}.info.icon.active::before,.info.icon.active::after{background-color:var(--base02)}.search.icon{color:var(--base0D);width:11px;height:11px;border:solid 1px var(--base0D);border-radius:100%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.search.icon:before{content:"";top:11px;left:5px;height:6px;width:1px;background-color:var(--base0D)} -`;var A={apathy:["#031a16","#0b342d","#184e45","#2b685e","#5f9c92","#81b5ac","#a7cec8","#d2e7e4","#3e9688","#3e7996","#3e4c96","#883e96","#963e4c","#96883e","#4c963e","#3e965b"],ashes:["#1c2023","#393f45","#565e65","#747c84","#adb3ba","#c7ccd1","#dfe2e5","#f3f4f5","#c7ae95","#c7c795","#aec795","#95c7ae","#95aec7","#ae95c7","#c795ae","#c79595"],"atelier-dune-light":["#fefbec","#e8e4cf","#a6a28c","#999580","#7d7a68","#6e6b5e","#292824","#20201d","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],"atelier-dune":["#20201d","#292824","#6e6b5e","#7d7a68","#999580","#a6a28c","#e8e4cf","#fefbec","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],atlas:["#002635","#00384d","#517f8d","#6c8b91","#869696","#a1a19a","#e6e6dc","#fafaf8","#ff5a67","#f08e48","#ffcc1b","#7fc06e","#14747e","#5dd7b9","#9a70a4","#c43060"],bespin:["#28211c","#36312e","#5e5d5c","#666666","#797977","#8a8986","#9d9b97","#baae9e","#cf6a4c","#cf7d34","#f9ee98","#54be0d","#afc4db","#5ea6ea","#9b859d","#937121"],"black-metal":["#000000","#121212","#222222","#333333","#999999","#c1c1c1","#999999","#c1c1c1","#5f8787","#aaaaaa","#a06666","#dd9999","#aaaaaa","#888888","#999999","#444444"],brewer:["#0c0d0e","#2e2f30","#515253","#737475","#959697","#b7b8b9","#dadbdc","#fcfdfe","#e31a1c","#e6550d","#dca060","#31a354","#80b1d3","#3182bd","#756bb1","#b15928"],bright:["#000000","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ffffff","#fb0120","#fc6d24","#fda331","#a1c659","#76c7b7","#6fb3d2","#d381c3","#be643c"],brogrammer:["#1f1f1f","#f81118","#2dc55e","#ecba0f","#2a84d2","#4e5ab7","#1081d6","#d6dbe5","#d6dbe5","#de352e","#1dd361","#f3bd09","#1081d6","#5350b9","#0f7ddb","#ffffff"],"brushtrees-dark":["#485867","#5a6d7a","#6d828e","#8299a1","#98afb5","#b0c5c8","#c9dbdc","#e3efef","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],brushtrees:["#e3efef","#c9dbdc","#b0c5c8","#98afb5","#8299a1","#6d828e","#5a6d7a","#485867","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],chalk:["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#fb9fb1","#eda987","#ddb26f","#acc267","#12cfc0","#6fc2ef","#e1a3ee","#deaf8f"],circus:["#191919","#202020","#303030","#5f5a60","#505050","#a7a7a7","#808080","#ffffff","#dc657d","#4bb1a7","#c3ba63","#84b97c","#4bb1a7","#639ee4","#b888e2","#b888e2"],"classic-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],"classic-light":["#f5f5f5","#e0e0e0","#d0d0d0","#b0b0b0","#505050","#303030","#202020","#151515","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],codeschool:["#232c31","#1c3657","#2a343a","#3f4944","#84898c","#9ea7a6","#a7cfa3","#b5d8f6","#2a5491","#43820d","#a03b1e","#237986","#b02f30","#484d79","#c59820","#c98344"],cupcake:["#fbf1f2","#f2f1f4","#d8d5dd","#bfb9c6","#a59daf","#8b8198","#72677e","#585062","#d57e85","#ebb790","#dcb16c","#a3b367","#69a9a7","#7297b9","#bb99b4","#baa58c"],cupertino:["#ffffff","#c0c0c0","#c0c0c0","#808080","#808080","#404040","#404040","#5e5e5e","#c41a15","#eb8500","#826b28","#007400","#318495","#0000ff","#a90d91","#826b28"],darcula:["#2b2b2b","#323232","#323232","#606366","#a4a3a3","#a9b7c6","#ffc66d","#ffffff","#4eade5","#689757","#bbb529","#6a8759","#629755","#9876aa","#cc7832","#808080"],darktooth:["#1d2021","#32302f","#504945","#665c54","#928374","#a89984","#d5c4a1","#fdf4c1","#fb543f","#fe8625","#fac03b","#95c085","#8ba59b","#0d6678","#8f4673","#a87322"],"default-dark":["#181818","#282828","#383838","#585858","#b8b8b8","#d8d8d8","#e8e8e8","#f8f8f8","#ab4642","#dc9656","#f7ca88","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],"default-light":["#ffffff","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#ab4642","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],dracula:["#282936","#3a3c4e","#4d4f68","#626483","#62d6e8","#e9e9f4","#f1f2f8","#f7f7fb","#ea51b2","#b45bcf","#00f769","#ebff87","#a1efe4","#62d6e8","#b45bcf","#00f769"],eighties:["#2d2d2d","#393939","#515151","#747369","#a09f93","#d3d0c8","#e8e6df","#f2f0ec","#f2777a","#f99157","#ffcc66","#99cc99","#66cccc","#6699cc","#cc99cc","#d27b53"],embers:["#16130f","#2c2620","#433b32","#5a5047","#8a8075","#a39a90","#beb6ae","#dbd6d1","#826d57","#828257","#6d8257","#57826d","#576d82","#6d5782","#82576d","#825757"],flat:["#2c3e50","#34495e","#7f8c8d","#95a5a6","#bdc3c7","#e0e0e0","#f5f5f5","#ecf0f1","#e74c3c","#e67e22","#f1c40f","#2ecc71","#1abc9c","#3498db","#9b59b6","#be643c"],"fruit-soda":["#f1ecf1","#e0dee0","#d8d5d5","#b5b4b6","#979598","#515151","#474545","#2d2c2c","#fe3e31","#fe6d08","#f7e203","#47f74c","#0f9cfd","#2931df","#611fce","#b16f40"],github:["#ffffff","#f5f5f5","#c8c8fa","#969896","#e8e8e8","#333333","#ffffff","#969896","#ed6a43","#0086b3","#795da3","#183691","#183691","#795da3","#a71d5d","#333333"],"google-dark":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"google-light":["#ffffff","#e0e0e0","#c5c8c6","#b4b7b4","#969896","#373b41","#282a2e","#1d1f21","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"grayscale-dark":["#101010","#252525","#464646","#525252","#ababab","#b9b9b9","#e3e3e3","#f7f7f7","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],"grayscale-light":["#f7f7f7","#e3e3e3","#b9b9b9","#ababab","#525252","#464646","#252525","#101010","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],greenscreen:["#001100","#003300","#005500","#007700","#009900","#00bb00","#00dd00","#00ff00","#007700","#009900","#007700","#00bb00","#005500","#009900","#00bb00","#005500"],"gruvbox-dark-hard":["#1d2021","#3c3836","#504945","#665c54","#bdae93","#d5c4a1","#ebdbb2","#fbf1c7","#fb4934","#fe8019","#fabd2f","#b8bb26","#8ec07c","#83a598","#d3869b","#d65d0e"],"gruvbox-light-hard":["#f9f5d7","#ebdbb2","#d5c4a1","#bdae93","#665c54","#504945","#3c3836","#282828","#9d0006","#af3a03","#b57614","#79740e","#427b58","#076678","#8f3f71","#d65d0e"],"harmonic-dark":["#0b1c2c","#223b54","#405c79","#627e99","#aabcce","#cbd6e2","#e5ebf1","#f7f9fb","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"harmonic-light":["#f7f9fb","#e5ebf1","#cbd6e2","#aabcce","#627e99","#405c79","#223b54","#0b1c2c","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"heetch-light":["#feffff","#392551","#7b6d8b","#9c92a8","#ddd6e5","#5a496e","#470546","#190134","#27d9d5","#bdb6c5","#5ba2b6","#f80059","#c33678","#47f9f5","#bd0152","#dedae2"],heetch:["#190134","#392551","#5a496e","#7b6d8b","#9c92a8","#bdb6c5","#dedae2","#feffff","#27d9d5","#5ba2b6","#8f6c97","#c33678","#f80059","#bd0152","#82034c","#470546"],helios:["#1d2021","#383c3e","#53585b","#6f7579","#cdcdcd","#d5d5d5","#dddddd","#e5e5e5","#d72638","#eb8413","#f19d1a","#88b92d","#1ba595","#1e8bac","#be4264","#c85e0d"],hopscotch:["#322931","#433b42","#5c545b","#797379","#989498","#b9b5b8","#d5d3d5","#ffffff","#dd464c","#fd8b19","#fdcc59","#8fc13e","#149b93","#1290bf","#c85e7c","#b33508"],"horizon-dark":["#1c1e26","#232530","#2e303e","#676a8d","#ced1d0","#cbced0","#dcdfe4","#e3e6ee","#e93c58","#e58d7d","#efb993","#efaf8e","#24a8b4","#df5273","#b072d1","#e4a382"],"ia-dark":["#1a1a1a","#222222","#1d414d","#767676","#b8b8b8","#cccccc","#e8e8e8","#f8f8f8","#d88568","#d86868","#b99353","#83a471","#7c9cae","#8eccdd","#b98eb2","#8b6c37"],"ia-light":["#f6f6f6","#dedede","#bde5f2","#898989","#767676","#181818","#e8e8e8","#898989","#9c5a02","#c43e18","#c48218","#38781c","#2d6bb1","#48bac2","#a94598","#8b6c37"],icy:["#021012","#031619","#041f23","#052e34","#064048","#095b67","#0c7c8c","#109cb0","#16c1d9","#b3ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7"],isotope:["#000000","#404040","#606060","#808080","#c0c0c0","#d0d0d0","#e0e0e0","#ffffff","#ff0000","#ff9900","#ff0099","#33ff00","#00ffff","#0066ff","#cc00ff","#3300ff"],macintosh:["#000000","#404040","#404040","#808080","#808080","#c0c0c0","#c0c0c0","#ffffff","#dd0907","#ff6403","#fbf305","#1fb714","#02abea","#0000d3","#4700a5","#90713a"],marrakesh:["#201602","#302e00","#5f5b17","#6c6823","#86813b","#948e48","#ccc37a","#faf0a5","#c35359","#b36144","#a88339","#18974e","#75a738","#477ca1","#8868b3","#b3588e"],materia:["#263238","#2c393f","#37474f","#707880","#c9ccd3","#cdd3de","#d5dbe5","#ffffff","#ec5f67","#ea9560","#ffcc00","#8bd649","#80cbc4","#89ddff","#82aaff","#ec5f67"],"material-lighter":["#fafafa","#e7eaec","#cceae7","#ccd7da","#8796b0","#80cbc4","#80cbc4","#666666","#ff5370","#f76d47","#ffb62c","#91b859","#39adb5","#6182b8","#7c4dff","#e53935"],material:["#263238","#2e3c43","#314549","#546e7a","#b2ccd6","#eeffff","#eeffff","#ffffff","#f07178","#f78c6c","#ffcb6b","#c3e88d","#89ddff","#82aaff","#c792ea","#ff5370"],"mellow-purple":["#1e0528","#1a092d","#331354","#320f55","#873582","#ffeeff","#ffeeff","#f8c0ff","#00d9e9","#aa00a3","#955ae7","#05cb0d","#b900b1","#550068","#8991bb","#4d6fff"],"mexico-light":["#f8f8f8","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#f79a0e","#538947","#4b8093","#7cafc2","#96609e","#a16946"],mocha:["#3b3228","#534636","#645240","#7e705a","#b8afad","#d0c8c6","#e9e1dd","#f5eeeb","#cb6077","#d28b71","#f4bc87","#beb55b","#7bbda4","#8ab3b5","#a89bb9","#bb9584"],monokai:["#272822","#383830","#49483e","#75715e","#a59f85","#f8f8f2","#f5f4f1","#f9f8f5","#f92672","#fd971f","#f4bf75","#a6e22e","#a1efe4","#66d9ef","#ae81ff","#cc6633"],nord:["#2e3440","#3b4252","#434c5e","#4c566a","#d8dee9","#e5e9f0","#eceff4","#8fbcbb","#88c0d0","#81a1c1","#5e81ac","#bf616a","#d08770","#ebcb8b","#a3be8c","#b48ead"],ocean:["#2b303b","#343d46","#4f5b66","#65737e","#a7adba","#c0c5ce","#dfe1e8","#eff1f5","#bf616a","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967"],"one-light":["#fafafa","#f0f0f1","#e5e5e6","#a0a1a7","#696c77","#383a42","#202227","#090a0b","#ca1243","#d75f00","#c18401","#50a14f","#0184bc","#4078f2","#a626a4","#986801"],onedark:["#282c34","#353b45","#3e4451","#545862","#565c64","#abb2bf","#b6bdca","#c8ccd4","#e06c75","#d19a66","#e5c07b","#98c379","#56b6c2","#61afef","#c678dd","#be5046"],"papercolor-dark":["#1c1c1c","#af005f","#5faf00","#d7af5f","#5fafd7","#808080","#d7875f","#d0d0d0","#585858","#5faf5f","#afd700","#af87d7","#ffaf00","#ff5faf","#00afaf","#5f8787"],"papercolor-light":["#eeeeee","#af0000","#008700","#5f8700","#0087af","#878787","#005f87","#444444","#bcbcbc","#d70000","#d70087","#8700af","#d75f00","#d75f00","#005faf","#005f87"],paraiso:["#2f1e2e","#41323f","#4f424c","#776e71","#8d8687","#a39e9b","#b9b6b0","#e7e9db","#ef6155","#f99b15","#fec418","#48b685","#5bc4bf","#06b6ef","#815ba4","#e96ba8"],pico:["#000000","#1d2b53","#7e2553","#008751","#ab5236","#5f574f","#c2c3c7","#fff1e8","#ff004d","#ffa300","#fff024","#00e756","#29adff","#83769c","#ff77a8","#ffccaa"],pop:["#000000","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#eb008a","#f29333","#f8ca12","#37b349","#00aabb","#0e5a94","#b31e8d","#7a2d00"],railscasts:["#2b2b2b","#272935","#3a4055","#5a647e","#d4cfc9","#e6e1dc","#f4f1ed","#f9f7f3","#da4939","#cc7833","#ffc66d","#a5c261","#519f50","#6d9cbe","#b6b3eb","#bc9458"],seti:["#151718","#282a2b","#3b758c","#41535b","#43a5d5","#d6d6d6","#eeeeee","#ffffff","#cd3f45","#db7b55","#e6cd69","#9fca56","#55dbbe","#55b5db","#a074c4","#8a553f"],"solarized-dark":["#002b36","#073642","#586e75","#657b83","#839496","#93a1a1","#eee8d5","#fdf6e3","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],"solarized-light":["#fdf6e3","#eee8d5","#93a1a1","#839496","#657b83","#586e75","#073642","#002b36","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],spacemacs:["#1f2022","#282828","#444155","#585858","#b8b8b8","#a3a3a3","#e8e8e8","#f8f8f8","#f2241f","#ffa500","#b1951d","#67b11d","#2d9574","#4f97d7","#a31db1","#b03060"],"summerfruit-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"summerfruit-light":["#ffffff","#e0e0e0","#d0d0d0","#b0b0b0","#000000","#101010","#151515","#202020","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"tomorrow-night":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc6666","#de935f","#f0c674","#b5bd68","#8abeb7","#81a2be","#b294bb","#a3685a"],tomorrow:["#ffffff","#e0e0e0","#d6d6d6","#8e908c","#969896","#4d4d4c","#282a2e","#1d1f21","#c82829","#f5871f","#eab700","#718c00","#3e999f","#4271ae","#8959a8","#a3685a"],tube:["#231f20","#1c3f95","#5a5758","#737171","#959ca1","#d9d8d8","#e7e7e8","#ffffff","#ee2e24","#f386a1","#ffd204","#00853e","#85cebc","#009ddc","#98005d","#b06110"],twilight:["#1e1e1e","#323537","#464b50","#5f5a60","#838184","#a7a7a7","#c3c3c3","#ffffff","#cf6a4c","#cda869","#f9ee98","#8f9d6a","#afc4db","#7587a6","#9b859d","#9b703f"],woodland:["#231e18","#302b25","#48413a","#9d8b70","#b4a490","#cabcb1","#d7c8bc","#e4d4c8","#d35c5c","#ca7f32","#e0ac16","#b7ba53","#6eb958","#88a4d3","#bb90e2","#b49368"],zenburn:["#383838","#404040","#606060","#6f6f6f","#808080","#dcdccc","#c0c0c0","#ffffff","#dca3a3","#dfaf8f","#e0cf9f","#5f7f5f","#93e0e3","#7cb8bb","#dc8cc3","#000000"]},V=Object.keys(A),R=a=>{let e;if(typeof a=="string"){if(A[a]===void 0)throw new Error(`${a} not found`);e=A[a].reduce((d,r,o)=>{let t=`base0${o.toString(16).toUpperCase()}`;return d[t]=r,d},{})}else e=a;return`.container{${Object.keys(e).map(d=>`--${d}: ${e[d]};`).join("")}}`};var j=a=>{try{return!!new URL(a)}catch{return!1}},W=a=>{if(Array.isArray(a))return"array";if(a===null)return"null";if(a instanceof RegExp)return"regexp";let e=typeof a;return e==="number"?isNaN(a)?"NaN":isFinite(a)?Number.isInteger(a)?"int":"float":"Infinity":e==="boolean"?"bool":e==="object"&&a instanceof Date?"date":e};var $=a=>{if(typeof a=="boolean")return a;if(a==="true")return!0;if(a==="false")return!1;throw new Error("should be a boolean!")},J=a=>{if(typeof a=="string")return a;throw new Error("should be a string!")},O=a=>{if(typeof a=="number"&&a>=0)return a;if(typeof a=="string"&&(a=parseFloat(a)),isNaN(a)||a<0)throw new Error("should be a positive number!");return a},B=a=>{if(typeof a=="boolean"||typeof a=="number")return a;if(a==="true")return!0;if(a==="false")return!1;if(typeof a=="string"&&(a=parseFloat(a),!isNaN(a)&&a>=0))return a;throw new Error("should be a boolean or a positive number!")},z=a=>{if(typeof a=="object")return a;if(typeof a=="string")try{return JSON.parse(a)}catch{return a}throw new Error("should be a string or JSON!")};var P=function({key:a,value:e,expanded:d,indent:r,onToggleExpand:o,level:t=0,parentRow:v}){let n=document.createElement("div");this.maxLevel=t;let i=W(e),m=i==="array"||i==="object",x=d===!0||d>t,p,g,b,h;n.className=`data-row ${x?"expanded":""}`,n.dataset.key=a,n.dataset.level=t,t>0&&(n.style.paddingLeft=`${r*5}px`);let f=document.createElement("span");f.className="key-value-wrapper",n.appendChild(f);let w=()=>{n.classList.toggle("expanded"),o&&(n.classList.contains("expanded")?o(t+1):o(t))};if(m){let c=document.createElement("span");c.className="icon-wrapper",f.appendChild(c),p=document.createElement("span"),p.className="expand icon clickable",p.setAttribute("title",x?"Collapse":"Expand"),c.appendChild(p),c.addEventListener("click",()=>w())}if(a!==null&&a!==""){let c=typeof a;b=document.createElement("span"),b.className=`key clickable ${c==="number"?"number":""}`,b.textContent=c==="number"?a:`${a}`,b.addEventListener("click",()=>w()),f.appendChild(b);let s=document.createElement("span");s.classList.add("colon"),s.textContent=":",f.appendChild(s)}if(m){let c=document.createElement("span");c.className="opening-parenthesis",c.textContent=i==="array"?"[":"{",f.appendChild(c);let s=document.createElement("span");s.className="ellipsis clickable",s.textContent="...",s.addEventListener("click",()=>w()),f.appendChild(s);let l=document.createElement("span");l.className="closing-parenthesis",l.textContent=i==="array"?"]":"}",f.appendChild(l);let E=document.createElement("span"),D=i==="array"?e.length:Object.keys(e).length;E.className="items-size",E.textContent=`${D} item${D===1?"":"s"}`,f.appendChild(E),g=[],(i==="array"?e.map((C,k)=>k):Object.keys(e)).forEach(C=>{let k=new P({key:C,value:e[C],expanded:d,indent:r,onToggleExpand:o,level:t+1,parentRow:n});g.push(k),n.appendChild(k.element),this.maxLevel=Math.max(this.maxLevel,k.maxLevel)});let S=document.createElement("span");S.className="closing-parenthesis",S.textContent=i==="array"?"]":"}",n.appendChild(S)}else{let c=null;["nan","NaN","undefined","null"].includes(i)||(c=document.createElement("span"),c.className="type",c.textContent=i.toLowerCase());let s=document.createElement("span");s.className=`value ${i.toLowerCase()}`,h=document.createElement("span"),h.className="value-data",h.textContent=i==="string"?`"${e}"`:e,c&&s.appendChild(c),s.appendChild(h),f.appendChild(s)}let u=document.createElement("span");u.className="copy icon",u.setAttribute("title","Copy to clipboard");let y=document.createElement("span");y.className="icon-wrapper",y.addEventListener("click",()=>{navigator.clipboard.writeText(JSON.stringify(e,null,r))}),y.appendChild(u),f.appendChild(y);let N=c=>{let s=new RegExp(c,"gi"),l=[];b&&l.push(b),h&&l.push(h);let E=!1;l.forEach(D=>{let L=D.textContent;if(D.innerHTML=L,!c||c==="")return;let S=[...L.matchAll(s)].map(I=>I.index),C=[],k=0;S.forEach(I=>{E=!0,C.push(L.slice(k,I)),C.push(`${c}`),k=I+c.length}),C.push(L.slice(k)),D.innerHTML=C.join("")}),E&&!n.classList.contains("expanded")&&(w(),v&&v.classList.add("expanded"))};this.update=({expanded:c,indent:s,searchTerm:l})=>{s!==void 0&&t>0&&(n.style.paddingLeft=`${s*5}px`),c!==void 0&&(x=c===!0||c>t,n.classList.toggle("expanded",x),p&&(p.title=x?"Collapse":"Expand")),l!=null&&N(l),g&&g.forEach(E=>E.update({expanded:c,indent:s,searchTerm:l}))},this.element=n},U=P;var G=function({expanded:a,indent:e,onChange:d,onSearch:r,showDetails:o}){this.indent=e||2,this.expanded=typeof a=="number"?a:2,this.showDetails=o!==!1,this.maxExpandLevel=0;let t,v=document.createElement("div");v.className="toolbar";let n=document.createElement("div");n.className="options",v.appendChild(n);let i=document.createElement("div");i.className="search-wrapper",v.appendChild(i);let m=document.createElement("div");m.className="icon-wrapper clickable",n.appendChild(m);let x=document.createElement("span");x.className="icon refresh",m.onclick=()=>this.refresh(),m.appendChild(x);let p=document.createElement("div");p.className="icon-wrapper clickable",n.appendChild(p);let g=document.createElement("span");g.className="icon plus",p.appendChild(g),p.onclick=()=>{this.expanded{this.expanded>this.maxExpandLevel&&(this.expanded=this.maxExpandLevel),this.expanded>0&&(this.expanded-=1),d({expanded:this.expanded})};let f=document.createElement("div");f.className="icon-wrapper clickable",n.appendChild(f);let w=document.createElement("span");w.className="icon indent",f.onclick=()=>{this.indent+=1,d({indent:this.indent})},f.appendChild(w);let u=document.createElement("div");u.className="icon-wrapper clickable",n.appendChild(u);let y=document.createElement("span");y.className="icon outdent",u.onclick=()=>{this.indent-=1,d({indent:this.indent})},u.appendChild(y);let N=document.createElement("div");N.className="icon-wrapper clickable",n.appendChild(N);let c=document.createElement("span");c.className=`icon info ${this.showDetails?"active":""}`,N.onclick=()=>{c.classList.toggle("active"),this.showDetails=!this.showDetails,d({showDetails:this.showDetails})},N.appendChild(c);let s=document.createElement("span");s.className="icon search",i.appendChild(s),t=document.createElement("input"),t.className="search-input",t.placeholder="Search",t.oninput=l=>{r(l.target.value)},i.appendChild(t),this.refresh=()=>{this.expanded=1,this.indent=2,t&&(t.value=""),d({indent:2,expanded:1}),r("")},this.updateShowDetails=l=>{this.showDetails=l,this.showDetails?c.classList.add("active"):c.classList.remove("active")},this.element=v},M=G;function K(a,e={}){let d=document.createElement("div");d.className="container",a.appendChild(d);let r=null,o=null,t={};this.update=({data:v,expanded:n,indent:i,expandIconType:m,showDataTypes:x,showToolbar:p,showSize:g,showCopy:b})=>{if(v){let f=JSON.stringify(v);t.dataComapreString!==f&&(t.dataComapreString=f,r=new U({key:"",value:v,expanded:n,indent:i,onToggleExpand:w=>{o&&(o.expanded=w),t.expanded=w}}),d.replaceChildren(r.element),t.showToolbar&&o&&(d.prepend(o.element),o.maxExpandLevel=r.maxLevel,o.refresh()))}if(p!==void 0&&t.showToolbar!==p)if(t.showToolbar=p,p)o||(o=new M({expanded:t.expanded,indent:t.indent,onChange:({expanded:f,indent:w,showDetails:u})=>{let y={expanded:f,indent:w};u!==void 0&&(y.showCopy=u,y.showSize=u,y.showDataTypes=u),this.update(y)},onSearch:f=>{r&&r.update({searchTerm:f})}})),r&&(o.maxExpandLevel=r.maxLevel),d.prepend(o.element);else{let f=d.querySelector(".toolbar");f&&f.remove()}let h={};n!==void 0&&t.expanded!==n&&(t.expanded=n,h.expanded=n),i!==void 0&&t.indent!==i&&(t.indent=i,h.indent=i),Object.keys(h).length>0&&r&&r.update(h),b!==void 0&&t.showCopy!==b&&(t.showCopy=b,d.classList.toggle("show-copy",b)),g!==void 0&&t.showSize!==g&&(t.showSize=g,d.classList.toggle("show-size",g),o&&o.updateShowDetails(t.showSize||t.showDataTypes)),x!==void 0&&t.showDataTypes!==x&&(t.showDataTypes=x,d.classList.toggle("show-data-types",x),o&&o.updateShowDetails(t.showSize||t.showDataTypes)),m!==void 0&&t.expandIconType!==m&&(d.classList.add(`expand-icon-${m}`),d.classList.remove(`expand-icon-${t.expandIconType}`),t.expandIconType=m)},this.update(e)}var F=K;var H={indent:2,expanded:1,theme:"default-light",showDataTypes:!0,showToolbar:!1,expandIconType:"arrow",showCopy:!0,showSize:!0,data:null},T=class a extends HTMLElement{#t;#e;#c;#n;constructor(){super(),this.#e={...H},this.#t=document.createElement("style");let e=this.attachShadow({mode:"open"}),d=document.createElement("style");d.textContent=`${q}`,e.appendChild(d),e.appendChild(this.#t),this.theme=this.#e.theme,this.#n=new F(e,this.#e)}static get observedAttributes(){return Object.keys(H).map(e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())}static allowedAttributes=["id"].concat(a.observedAttributes);#d=(...e)=>{console.warn(`JsonViewer${this.id?` (${this.id})`:""}:`,...e)};#a=(e,d,r,o)=>{try{if(d=r(d),o&&!o.includes(d))throw new Error(`should be one of ${o.join(", ")}`);if(this.#e[e]===d)return;this.#e[e]=d,this.#o()}catch(t){this.#d(`Attribute ${e}: ${t.message}`)}};set showDataTypes(e){this.#a("showDataTypes",e,$)}set showToolbar(e){this.#a("showToolbar",e,$)}set indent(e){this.#a("indent",e,O)}set expandIconType(e){this.#a("expandIconType",e,J,["arrow","square","circle"])}set expanded(e){this.#a("expanded",e,B)}set showSize(e){this.#a("showSize",e,$)}set showCopy(e){this.#a("showCopy",e,$)}set theme(e){try{if(e=z(e),this.#e.theme===e&&this.#t.textContent!=="")return;this.#t.textContent=R(e),this.#e.theme=e}catch(d){this.#d(`Attribute theme: ${d.message}`)}}set data(e){try{e=z(e);let d=JSON.stringify(e);if(this.#e.data===d)return;this.#e.data=d,j(e)?fetch(e).then(r=>r.json()).then(r=>{this.#c=r,this.#o()}):(this.#c=e,this.#o())}catch(d){this.#d(`Attribute data: ${d.message}`)}}get options(){return this.#e}connectedCallback(){window.addEventListener("DOMContentLoaded",()=>{let e=this.textContent;this.textContent="",e&&(this.data=e)})}attributeChangedCallback(e,d,r){if(a.allowedAttributes.indexOf(e)>-1){let o=e.replace(/-([a-z])/g,t=>t[1].toUpperCase());this[o]=r}else this.#d(`Attribute ${e} is not supported and will be ignored!`),this.removeAttribute(e)}#o=()=>{this.#n.update({data:this.#c,expanded:this.#e.expanded,expandIconType:this.#e.expandIconType,indent:this.#e.indent,showDataTypes:this.#e.showDataTypes,showToolbar:this.#e.showToolbar,showSize:this.#e.showSize,showCopy:this.#e.showCopy})}};customElements.get("andypf-json-viewer")||customElements.define("andypf-json-viewer",T); diff --git a/dist/cjs/react/JsonViewer.js b/dist/cjs/react/JsonViewer.js deleted file mode 100644 index b991554..0000000 --- a/dist/cjs/react/JsonViewer.js +++ /dev/null @@ -1,28 +0,0 @@ - -/* -MIT License - -Copyright (c) 2025 Andreas Pfau - -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. - -*/ - -var K=Object.create;var A=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var ee=(e,a)=>{for(var t in a)A(e,t,{get:a[t],enumerable:!0})},j=(e,a,t,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let c of X(a))!_.call(e,c)&&c!==t&&A(e,c,{get:()=>a[c],enumerable:!(n=Q(a,c))||n.enumerable});return e};var ae=(e,a,t)=>(t=e!=null?K(Y(e)):{},j(a||!e||!e.__esModule?A(t,"default",{value:e,enumerable:!0}):t,e)),te=e=>j(A({},"__esModule",{value:!0}),e);var fe={};ee(fe,{default:()=>re});module.exports=te(fe);var z=ae(require("react"));var J=`.container{background-color:var(--base00);color:var(--base05);padding:10px;letter-spacing:0.5px;font-family:monospace;border-radius:3px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:5px;border-bottom:solid 1px var(--base02)}.toolbar .options,.toolbar .search-wrapper{display:flex;align-items:center}.toolbar .icon-wrapper{height:15px;display:flex;align-items:center;padding:2px 5px}.toolbar .icon-wrapper:hover{background-color:var(--base02);border-radius:3px}.toolbar .icon-wrapper:first-child{margin-left:0px}.toolbar .search.icon{margin-right:5px}.toolbar .search-input{border:none;background:transparent;outline:none;flex:1;font-size:16px;color:var(--base0D)}.match{background-color:yellow;font-weight:bold;color:red}.data-row{padding:3px 0}.data-row .data-row{border-left:solid 1px var(--base02);padding-left:20px;margin-left:5px;display:none}.data-row.expanded>.data-row{display:block}.data-row .key-value-wrapper{display:flex;align-items:center}.data-row .key{color:var(--base07)}.data-row .key.number{color:var(--base0C)}.data-row .colon{color:var(--base07);margin:0 5px 0 0}.clickable{cursor:pointer}.data-row .opening-parenthesis,.data-row .closing-parenthesis{color:var(--base07)}.data-row .ellipsis{color:var(--base09)}.data-row.expanded>.key-value-wrapper .closing-parenthesis,.data-row.expanded>.key-value-wrapper .ellipsis{display:none}.data-row>.closing-parenthesis{display:none}.data-row.expanded>.closing-parenthesis{display:inline-block}.data-row .items-size{margin-left:10px;color:var(--base04);font-style:italic;display:none}.show-size .data-row .items-size{display:inline-block}.data-row .value.bool,.data-row .value.boolean{color:var(--base0E)}.data-row .value.function{color:var(--base0D)}.data-row .value.int,.data-row .value.integer{color:var(--base0F)}.data-row .value.float{color:var(--base0B)}.data-row .value.string{color:var(--base09)}.data-row .value.string .content{overflow-wrap:break-word}.data-row .value.string .content::before{content:open-quote}.data-row .value.string .content::after{content:close-quote}.data-row .value.regexp{color:var(--base0A)}.data-row .value.nan{color:var(--base08)}.data-row .value.null{color:var(--base0A)}.data-row .value.undefined{color:var(--base05)}.data-row .value.date{color:var(--base0D)}.data-row .value.nan,.data-row .value.null,.data-row .value.undefined{border-radius:3px;background-color:var(--base02);padding:1px 2px}.data-row .value .type{font-size:smaller;margin-right:4px;opacity:0.8;display:none}.data-row .value .value-data{word-break:break-all}.show-data-types .data-row .value .type{display:inline-block}.icon-wrapper,.copy-icon-wrapper{display:inline-block;cursor:pointer}.icon{display:block;position:relative}.icon:before,.icon:after{content:"";position:absolute;display:block}.expand.icon{margin-right:5px}.expand-icon-arrow .expand.icon{margin-left:3px;width:0;height:0;border-left:solid 6px var(--base0E);border-top:solid 6px transparent;border-bottom:solid 6px transparent}.expand-icon-arrow .expanded>.key-value-wrapper .expand.icon,.expand-icon-arrow .expanded.icon.expand{transform:rotate(90deg);border-left-color:var(--base0D)}.expand-icon-square .expand.icon,.expand-icon-circle .expand.icon{display:block;width:9px;height:9px;border-radius:2px;border:solid 1px var(--base0E)}.expand-icon-circle .expand.icon{border-radius:50%}.expand-icon-square .expand.icon:before,.expand-icon-circle .expand.icon:before,.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{width:5px;height:1px;background-color:var(--base0E);left:2px;top:4px}.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{transform:rotate(90deg)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-square .expand.icon.expanded:after,.expand-icon-circle .expand.icon.expanded:after{display:none}.expand-icon-square .expanded>.key-value-wrapper .expand.icon,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon,.expand-icon-square .expand.icon.expanded,.expand-icon-circle .expanded.expand.icon{border-color:var(--base0D)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-square .expanded.expand.icon:before,.expand-icon-circle .expanded.expand.icon:before{background-color:var(--base0D)}.icon-wrapper{display:inline-block;cursor:pointer}.show-copy .key-value-wrapper:hover .icon.copy{display:block}.copy.icon{margin-left:10px;display:none;width:8px;height:10px;border:solid 1px var(--base0D);border-radius:1px;position:relative;top:4px;transition:0.2s all}.copy.icon:active{transform:scale(1.6);background-color:var(--base0B)}.copy.icon:before{content:"";display:block;left:-3px;top:-3px;width:8px;height:10px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);border-radius:1px 0 0 0}.plus.icon{width:11px;height:1px;background-color:var(--base0D)}.plus.icon:after{content:"";width:11px;height:1px;background-color:var(--base0D);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.minus.icon{width:11px;height:1px;background-color:var(--base0D)}.indent.icon{color:var(--base0D);width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:before{content:"";position:absolute;top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:after{content:"";position:absolute;top:1px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px var(--base0D);border-right:solid 3px transparent}.outdent.icon{color:var(--base0D);margin-left:2px;width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:before{content:"";top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:after{content:"";top:1px;left:-3px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px transparent;border-right:solid 3px var(--base0D)}.refresh.icon{color:var(--base0D);width:10px;height:10px;border-radius:50%;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D);border-left:solid 1px transparent;border-right:solid 1px var(--base0D)}.refresh.icon:before{content:"";left:1px;top:8px;width:3px;height:3px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);-webkit-transform:rotate(-22.5deg);transform:rotate(-22.5deg)}.info.icon{width:12px;height:11px;border:solid 1px var(--base0D);border-radius:2px}.info.icon::before{top:5px;left:5px;width:2px;height:5px;background-color:var(--base0D)}.info.icon::after{top:2px;left:5px;width:2px;height:2px;background-color:var(--base0D)}.info.icon.active{background-color:var(--base0D)}.info.icon.active::before,.info.icon.active::after{background-color:var(--base02)}.search.icon{color:var(--base0D);width:11px;height:11px;border:solid 1px var(--base0D);border-radius:100%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.search.icon:before{content:"";top:11px;left:5px;height:6px;width:1px;background-color:var(--base0D)} -`;var T={apathy:["#031a16","#0b342d","#184e45","#2b685e","#5f9c92","#81b5ac","#a7cec8","#d2e7e4","#3e9688","#3e7996","#3e4c96","#883e96","#963e4c","#96883e","#4c963e","#3e965b"],ashes:["#1c2023","#393f45","#565e65","#747c84","#adb3ba","#c7ccd1","#dfe2e5","#f3f4f5","#c7ae95","#c7c795","#aec795","#95c7ae","#95aec7","#ae95c7","#c795ae","#c79595"],"atelier-dune-light":["#fefbec","#e8e4cf","#a6a28c","#999580","#7d7a68","#6e6b5e","#292824","#20201d","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],"atelier-dune":["#20201d","#292824","#6e6b5e","#7d7a68","#999580","#a6a28c","#e8e4cf","#fefbec","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],atlas:["#002635","#00384d","#517f8d","#6c8b91","#869696","#a1a19a","#e6e6dc","#fafaf8","#ff5a67","#f08e48","#ffcc1b","#7fc06e","#14747e","#5dd7b9","#9a70a4","#c43060"],bespin:["#28211c","#36312e","#5e5d5c","#666666","#797977","#8a8986","#9d9b97","#baae9e","#cf6a4c","#cf7d34","#f9ee98","#54be0d","#afc4db","#5ea6ea","#9b859d","#937121"],"black-metal":["#000000","#121212","#222222","#333333","#999999","#c1c1c1","#999999","#c1c1c1","#5f8787","#aaaaaa","#a06666","#dd9999","#aaaaaa","#888888","#999999","#444444"],brewer:["#0c0d0e","#2e2f30","#515253","#737475","#959697","#b7b8b9","#dadbdc","#fcfdfe","#e31a1c","#e6550d","#dca060","#31a354","#80b1d3","#3182bd","#756bb1","#b15928"],bright:["#000000","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ffffff","#fb0120","#fc6d24","#fda331","#a1c659","#76c7b7","#6fb3d2","#d381c3","#be643c"],brogrammer:["#1f1f1f","#f81118","#2dc55e","#ecba0f","#2a84d2","#4e5ab7","#1081d6","#d6dbe5","#d6dbe5","#de352e","#1dd361","#f3bd09","#1081d6","#5350b9","#0f7ddb","#ffffff"],"brushtrees-dark":["#485867","#5a6d7a","#6d828e","#8299a1","#98afb5","#b0c5c8","#c9dbdc","#e3efef","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],brushtrees:["#e3efef","#c9dbdc","#b0c5c8","#98afb5","#8299a1","#6d828e","#5a6d7a","#485867","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],chalk:["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#fb9fb1","#eda987","#ddb26f","#acc267","#12cfc0","#6fc2ef","#e1a3ee","#deaf8f"],circus:["#191919","#202020","#303030","#5f5a60","#505050","#a7a7a7","#808080","#ffffff","#dc657d","#4bb1a7","#c3ba63","#84b97c","#4bb1a7","#639ee4","#b888e2","#b888e2"],"classic-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],"classic-light":["#f5f5f5","#e0e0e0","#d0d0d0","#b0b0b0","#505050","#303030","#202020","#151515","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],codeschool:["#232c31","#1c3657","#2a343a","#3f4944","#84898c","#9ea7a6","#a7cfa3","#b5d8f6","#2a5491","#43820d","#a03b1e","#237986","#b02f30","#484d79","#c59820","#c98344"],cupcake:["#fbf1f2","#f2f1f4","#d8d5dd","#bfb9c6","#a59daf","#8b8198","#72677e","#585062","#d57e85","#ebb790","#dcb16c","#a3b367","#69a9a7","#7297b9","#bb99b4","#baa58c"],cupertino:["#ffffff","#c0c0c0","#c0c0c0","#808080","#808080","#404040","#404040","#5e5e5e","#c41a15","#eb8500","#826b28","#007400","#318495","#0000ff","#a90d91","#826b28"],darcula:["#2b2b2b","#323232","#323232","#606366","#a4a3a3","#a9b7c6","#ffc66d","#ffffff","#4eade5","#689757","#bbb529","#6a8759","#629755","#9876aa","#cc7832","#808080"],darktooth:["#1d2021","#32302f","#504945","#665c54","#928374","#a89984","#d5c4a1","#fdf4c1","#fb543f","#fe8625","#fac03b","#95c085","#8ba59b","#0d6678","#8f4673","#a87322"],"default-dark":["#181818","#282828","#383838","#585858","#b8b8b8","#d8d8d8","#e8e8e8","#f8f8f8","#ab4642","#dc9656","#f7ca88","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],"default-light":["#ffffff","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#ab4642","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],dracula:["#282936","#3a3c4e","#4d4f68","#626483","#62d6e8","#e9e9f4","#f1f2f8","#f7f7fb","#ea51b2","#b45bcf","#00f769","#ebff87","#a1efe4","#62d6e8","#b45bcf","#00f769"],eighties:["#2d2d2d","#393939","#515151","#747369","#a09f93","#d3d0c8","#e8e6df","#f2f0ec","#f2777a","#f99157","#ffcc66","#99cc99","#66cccc","#6699cc","#cc99cc","#d27b53"],embers:["#16130f","#2c2620","#433b32","#5a5047","#8a8075","#a39a90","#beb6ae","#dbd6d1","#826d57","#828257","#6d8257","#57826d","#576d82","#6d5782","#82576d","#825757"],flat:["#2c3e50","#34495e","#7f8c8d","#95a5a6","#bdc3c7","#e0e0e0","#f5f5f5","#ecf0f1","#e74c3c","#e67e22","#f1c40f","#2ecc71","#1abc9c","#3498db","#9b59b6","#be643c"],"fruit-soda":["#f1ecf1","#e0dee0","#d8d5d5","#b5b4b6","#979598","#515151","#474545","#2d2c2c","#fe3e31","#fe6d08","#f7e203","#47f74c","#0f9cfd","#2931df","#611fce","#b16f40"],github:["#ffffff","#f5f5f5","#c8c8fa","#969896","#e8e8e8","#333333","#ffffff","#969896","#ed6a43","#0086b3","#795da3","#183691","#183691","#795da3","#a71d5d","#333333"],"google-dark":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"google-light":["#ffffff","#e0e0e0","#c5c8c6","#b4b7b4","#969896","#373b41","#282a2e","#1d1f21","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"grayscale-dark":["#101010","#252525","#464646","#525252","#ababab","#b9b9b9","#e3e3e3","#f7f7f7","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],"grayscale-light":["#f7f7f7","#e3e3e3","#b9b9b9","#ababab","#525252","#464646","#252525","#101010","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],greenscreen:["#001100","#003300","#005500","#007700","#009900","#00bb00","#00dd00","#00ff00","#007700","#009900","#007700","#00bb00","#005500","#009900","#00bb00","#005500"],"gruvbox-dark-hard":["#1d2021","#3c3836","#504945","#665c54","#bdae93","#d5c4a1","#ebdbb2","#fbf1c7","#fb4934","#fe8019","#fabd2f","#b8bb26","#8ec07c","#83a598","#d3869b","#d65d0e"],"gruvbox-light-hard":["#f9f5d7","#ebdbb2","#d5c4a1","#bdae93","#665c54","#504945","#3c3836","#282828","#9d0006","#af3a03","#b57614","#79740e","#427b58","#076678","#8f3f71","#d65d0e"],"harmonic-dark":["#0b1c2c","#223b54","#405c79","#627e99","#aabcce","#cbd6e2","#e5ebf1","#f7f9fb","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"harmonic-light":["#f7f9fb","#e5ebf1","#cbd6e2","#aabcce","#627e99","#405c79","#223b54","#0b1c2c","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"heetch-light":["#feffff","#392551","#7b6d8b","#9c92a8","#ddd6e5","#5a496e","#470546","#190134","#27d9d5","#bdb6c5","#5ba2b6","#f80059","#c33678","#47f9f5","#bd0152","#dedae2"],heetch:["#190134","#392551","#5a496e","#7b6d8b","#9c92a8","#bdb6c5","#dedae2","#feffff","#27d9d5","#5ba2b6","#8f6c97","#c33678","#f80059","#bd0152","#82034c","#470546"],helios:["#1d2021","#383c3e","#53585b","#6f7579","#cdcdcd","#d5d5d5","#dddddd","#e5e5e5","#d72638","#eb8413","#f19d1a","#88b92d","#1ba595","#1e8bac","#be4264","#c85e0d"],hopscotch:["#322931","#433b42","#5c545b","#797379","#989498","#b9b5b8","#d5d3d5","#ffffff","#dd464c","#fd8b19","#fdcc59","#8fc13e","#149b93","#1290bf","#c85e7c","#b33508"],"horizon-dark":["#1c1e26","#232530","#2e303e","#676a8d","#ced1d0","#cbced0","#dcdfe4","#e3e6ee","#e93c58","#e58d7d","#efb993","#efaf8e","#24a8b4","#df5273","#b072d1","#e4a382"],"ia-dark":["#1a1a1a","#222222","#1d414d","#767676","#b8b8b8","#cccccc","#e8e8e8","#f8f8f8","#d88568","#d86868","#b99353","#83a471","#7c9cae","#8eccdd","#b98eb2","#8b6c37"],"ia-light":["#f6f6f6","#dedede","#bde5f2","#898989","#767676","#181818","#e8e8e8","#898989","#9c5a02","#c43e18","#c48218","#38781c","#2d6bb1","#48bac2","#a94598","#8b6c37"],icy:["#021012","#031619","#041f23","#052e34","#064048","#095b67","#0c7c8c","#109cb0","#16c1d9","#b3ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7"],isotope:["#000000","#404040","#606060","#808080","#c0c0c0","#d0d0d0","#e0e0e0","#ffffff","#ff0000","#ff9900","#ff0099","#33ff00","#00ffff","#0066ff","#cc00ff","#3300ff"],macintosh:["#000000","#404040","#404040","#808080","#808080","#c0c0c0","#c0c0c0","#ffffff","#dd0907","#ff6403","#fbf305","#1fb714","#02abea","#0000d3","#4700a5","#90713a"],marrakesh:["#201602","#302e00","#5f5b17","#6c6823","#86813b","#948e48","#ccc37a","#faf0a5","#c35359","#b36144","#a88339","#18974e","#75a738","#477ca1","#8868b3","#b3588e"],materia:["#263238","#2c393f","#37474f","#707880","#c9ccd3","#cdd3de","#d5dbe5","#ffffff","#ec5f67","#ea9560","#ffcc00","#8bd649","#80cbc4","#89ddff","#82aaff","#ec5f67"],"material-lighter":["#fafafa","#e7eaec","#cceae7","#ccd7da","#8796b0","#80cbc4","#80cbc4","#666666","#ff5370","#f76d47","#ffb62c","#91b859","#39adb5","#6182b8","#7c4dff","#e53935"],material:["#263238","#2e3c43","#314549","#546e7a","#b2ccd6","#eeffff","#eeffff","#ffffff","#f07178","#f78c6c","#ffcb6b","#c3e88d","#89ddff","#82aaff","#c792ea","#ff5370"],"mellow-purple":["#1e0528","#1a092d","#331354","#320f55","#873582","#ffeeff","#ffeeff","#f8c0ff","#00d9e9","#aa00a3","#955ae7","#05cb0d","#b900b1","#550068","#8991bb","#4d6fff"],"mexico-light":["#f8f8f8","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#f79a0e","#538947","#4b8093","#7cafc2","#96609e","#a16946"],mocha:["#3b3228","#534636","#645240","#7e705a","#b8afad","#d0c8c6","#e9e1dd","#f5eeeb","#cb6077","#d28b71","#f4bc87","#beb55b","#7bbda4","#8ab3b5","#a89bb9","#bb9584"],monokai:["#272822","#383830","#49483e","#75715e","#a59f85","#f8f8f2","#f5f4f1","#f9f8f5","#f92672","#fd971f","#f4bf75","#a6e22e","#a1efe4","#66d9ef","#ae81ff","#cc6633"],nord:["#2e3440","#3b4252","#434c5e","#4c566a","#d8dee9","#e5e9f0","#eceff4","#8fbcbb","#88c0d0","#81a1c1","#5e81ac","#bf616a","#d08770","#ebcb8b","#a3be8c","#b48ead"],ocean:["#2b303b","#343d46","#4f5b66","#65737e","#a7adba","#c0c5ce","#dfe1e8","#eff1f5","#bf616a","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967"],"one-light":["#fafafa","#f0f0f1","#e5e5e6","#a0a1a7","#696c77","#383a42","#202227","#090a0b","#ca1243","#d75f00","#c18401","#50a14f","#0184bc","#4078f2","#a626a4","#986801"],onedark:["#282c34","#353b45","#3e4451","#545862","#565c64","#abb2bf","#b6bdca","#c8ccd4","#e06c75","#d19a66","#e5c07b","#98c379","#56b6c2","#61afef","#c678dd","#be5046"],"papercolor-dark":["#1c1c1c","#af005f","#5faf00","#d7af5f","#5fafd7","#808080","#d7875f","#d0d0d0","#585858","#5faf5f","#afd700","#af87d7","#ffaf00","#ff5faf","#00afaf","#5f8787"],"papercolor-light":["#eeeeee","#af0000","#008700","#5f8700","#0087af","#878787","#005f87","#444444","#bcbcbc","#d70000","#d70087","#8700af","#d75f00","#d75f00","#005faf","#005f87"],paraiso:["#2f1e2e","#41323f","#4f424c","#776e71","#8d8687","#a39e9b","#b9b6b0","#e7e9db","#ef6155","#f99b15","#fec418","#48b685","#5bc4bf","#06b6ef","#815ba4","#e96ba8"],pico:["#000000","#1d2b53","#7e2553","#008751","#ab5236","#5f574f","#c2c3c7","#fff1e8","#ff004d","#ffa300","#fff024","#00e756","#29adff","#83769c","#ff77a8","#ffccaa"],pop:["#000000","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#eb008a","#f29333","#f8ca12","#37b349","#00aabb","#0e5a94","#b31e8d","#7a2d00"],railscasts:["#2b2b2b","#272935","#3a4055","#5a647e","#d4cfc9","#e6e1dc","#f4f1ed","#f9f7f3","#da4939","#cc7833","#ffc66d","#a5c261","#519f50","#6d9cbe","#b6b3eb","#bc9458"],seti:["#151718","#282a2b","#3b758c","#41535b","#43a5d5","#d6d6d6","#eeeeee","#ffffff","#cd3f45","#db7b55","#e6cd69","#9fca56","#55dbbe","#55b5db","#a074c4","#8a553f"],"solarized-dark":["#002b36","#073642","#586e75","#657b83","#839496","#93a1a1","#eee8d5","#fdf6e3","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],"solarized-light":["#fdf6e3","#eee8d5","#93a1a1","#839496","#657b83","#586e75","#073642","#002b36","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],spacemacs:["#1f2022","#282828","#444155","#585858","#b8b8b8","#a3a3a3","#e8e8e8","#f8f8f8","#f2241f","#ffa500","#b1951d","#67b11d","#2d9574","#4f97d7","#a31db1","#b03060"],"summerfruit-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"summerfruit-light":["#ffffff","#e0e0e0","#d0d0d0","#b0b0b0","#000000","#101010","#151515","#202020","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"tomorrow-night":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc6666","#de935f","#f0c674","#b5bd68","#8abeb7","#81a2be","#b294bb","#a3685a"],tomorrow:["#ffffff","#e0e0e0","#d6d6d6","#8e908c","#969896","#4d4d4c","#282a2e","#1d1f21","#c82829","#f5871f","#eab700","#718c00","#3e999f","#4271ae","#8959a8","#a3685a"],tube:["#231f20","#1c3f95","#5a5758","#737171","#959ca1","#d9d8d8","#e7e7e8","#ffffff","#ee2e24","#f386a1","#ffd204","#00853e","#85cebc","#009ddc","#98005d","#b06110"],twilight:["#1e1e1e","#323537","#464b50","#5f5a60","#838184","#a7a7a7","#c3c3c3","#ffffff","#cf6a4c","#cda869","#f9ee98","#8f9d6a","#afc4db","#7587a6","#9b859d","#9b703f"],woodland:["#231e18","#302b25","#48413a","#9d8b70","#b4a490","#cabcb1","#d7c8bc","#e4d4c8","#d35c5c","#ca7f32","#e0ac16","#b7ba53","#6eb958","#88a4d3","#bb90e2","#b49368"],zenburn:["#383838","#404040","#606060","#6f6f6f","#808080","#dcdccc","#c0c0c0","#ffffff","#dca3a3","#dfaf8f","#e0cf9f","#5f7f5f","#93e0e3","#7cb8bb","#dc8cc3","#000000"]},be=Object.keys(T),W=e=>{let a;if(typeof e=="string"){if(T[e]===void 0)throw new Error(`${e} not found`);a=T[e].reduce((t,n,c)=>{let d=`base0${c.toString(16).toUpperCase()}`;return t[d]=n,t},{})}else a=e;return`.container{${Object.keys(a).map(t=>`--${t}: ${a[t]};`).join("")}}`};var O=e=>{try{return!!new URL(e)}catch{return!1}},B=e=>{if(Array.isArray(e))return"array";if(e===null)return"null";if(e instanceof RegExp)return"regexp";let a=typeof e;return a==="number"?isNaN(e)?"NaN":isFinite(e)?Number.isInteger(e)?"int":"float":"Infinity":a==="boolean"?"bool":a==="object"&&e instanceof Date?"date":a};var $=e=>{if(typeof e=="boolean")return e;if(e==="true")return!0;if(e==="false")return!1;throw new Error("should be a boolean!")},P=e=>{if(typeof e=="string")return e;throw new Error("should be a string!")},U=e=>{if(typeof e=="number"&&e>=0)return e;if(typeof e=="string"&&(e=parseFloat(e)),isNaN(e)||e<0)throw new Error("should be a positive number!");return e},M=e=>{if(typeof e=="boolean"||typeof e=="number")return e;if(e==="true")return!0;if(e==="false")return!1;if(typeof e=="string"&&(e=parseFloat(e),!isNaN(e)&&e>=0))return e;throw new Error("should be a boolean or a positive number!")},q=e=>{if(typeof e=="object")return e;if(typeof e=="string")try{return JSON.parse(e)}catch{return e}throw new Error("should be a string or JSON!")};var F=function({key:e,value:a,expanded:t,indent:n,onToggleExpand:c,level:d=0,parentRow:v}){let r=document.createElement("div");this.maxLevel=d;let i=B(a),m=i==="array"||i==="object",x=t===!0||t>d,p,g,b,h;r.className=`data-row ${x?"expanded":""}`,r.dataset.key=e,r.dataset.level=d,d>0&&(r.style.paddingLeft=`${n*5}px`);let f=document.createElement("span");f.className="key-value-wrapper",r.appendChild(f);let w=()=>{r.classList.toggle("expanded"),c&&(r.classList.contains("expanded")?c(d+1):c(d))};if(m){let o=document.createElement("span");o.className="icon-wrapper",f.appendChild(o),p=document.createElement("span"),p.className="expand icon clickable",p.setAttribute("title",x?"Collapse":"Expand"),o.appendChild(p),o.addEventListener("click",()=>w())}if(e!==null&&e!==""){let o=typeof e;b=document.createElement("span"),b.className=`key clickable ${o==="number"?"number":""}`,b.textContent=o==="number"?e:`${e}`,b.addEventListener("click",()=>w()),f.appendChild(b);let s=document.createElement("span");s.classList.add("colon"),s.textContent=":",f.appendChild(s)}if(m){let o=document.createElement("span");o.className="opening-parenthesis",o.textContent=i==="array"?"[":"{",f.appendChild(o);let s=document.createElement("span");s.className="ellipsis clickable",s.textContent="...",s.addEventListener("click",()=>w()),f.appendChild(s);let l=document.createElement("span");l.className="closing-parenthesis",l.textContent=i==="array"?"]":"}",f.appendChild(l);let E=document.createElement("span"),D=i==="array"?a.length:Object.keys(a).length;E.className="items-size",E.textContent=`${D} item${D===1?"":"s"}`,f.appendChild(E),g=[],(i==="array"?a.map((C,k)=>k):Object.keys(a)).forEach(C=>{let k=new F({key:C,value:a[C],expanded:t,indent:n,onToggleExpand:c,level:d+1,parentRow:r});g.push(k),r.appendChild(k.element),this.maxLevel=Math.max(this.maxLevel,k.maxLevel)});let S=document.createElement("span");S.className="closing-parenthesis",S.textContent=i==="array"?"]":"}",r.appendChild(S)}else{let o=null;["nan","NaN","undefined","null"].includes(i)||(o=document.createElement("span"),o.className="type",o.textContent=i.toLowerCase());let s=document.createElement("span");s.className=`value ${i.toLowerCase()}`,h=document.createElement("span"),h.className="value-data",h.textContent=i==="string"?`"${a}"`:a,o&&s.appendChild(o),s.appendChild(h),f.appendChild(s)}let u=document.createElement("span");u.className="copy icon",u.setAttribute("title","Copy to clipboard");let y=document.createElement("span");y.className="icon-wrapper",y.addEventListener("click",()=>{navigator.clipboard.writeText(JSON.stringify(a,null,n))}),y.appendChild(u),f.appendChild(y);let N=o=>{let s=new RegExp(o,"gi"),l=[];b&&l.push(b),h&&l.push(h);let E=!1;l.forEach(D=>{let L=D.textContent;if(D.innerHTML=L,!o||o==="")return;let S=[...L.matchAll(s)].map(I=>I.index),C=[],k=0;S.forEach(I=>{E=!0,C.push(L.slice(k,I)),C.push(`${o}`),k=I+o.length}),C.push(L.slice(k)),D.innerHTML=C.join("")}),E&&!r.classList.contains("expanded")&&(w(),v&&v.classList.add("expanded"))};this.update=({expanded:o,indent:s,searchTerm:l})=>{s!==void 0&&d>0&&(r.style.paddingLeft=`${s*5}px`),o!==void 0&&(x=o===!0||o>d,r.classList.toggle("expanded",x),p&&(p.title=x?"Collapse":"Expand")),l!=null&&N(l),g&&g.forEach(E=>E.update({expanded:o,indent:s,searchTerm:l}))},this.element=r},H=F;var ce=function({expanded:e,indent:a,onChange:t,onSearch:n,showDetails:c}){this.indent=a||2,this.expanded=typeof e=="number"?e:2,this.showDetails=c!==!1,this.maxExpandLevel=0;let d,v=document.createElement("div");v.className="toolbar";let r=document.createElement("div");r.className="options",v.appendChild(r);let i=document.createElement("div");i.className="search-wrapper",v.appendChild(i);let m=document.createElement("div");m.className="icon-wrapper clickable",r.appendChild(m);let x=document.createElement("span");x.className="icon refresh",m.onclick=()=>this.refresh(),m.appendChild(x);let p=document.createElement("div");p.className="icon-wrapper clickable",r.appendChild(p);let g=document.createElement("span");g.className="icon plus",p.appendChild(g),p.onclick=()=>{this.expanded{this.expanded>this.maxExpandLevel&&(this.expanded=this.maxExpandLevel),this.expanded>0&&(this.expanded-=1),t({expanded:this.expanded})};let f=document.createElement("div");f.className="icon-wrapper clickable",r.appendChild(f);let w=document.createElement("span");w.className="icon indent",f.onclick=()=>{this.indent+=1,t({indent:this.indent})},f.appendChild(w);let u=document.createElement("div");u.className="icon-wrapper clickable",r.appendChild(u);let y=document.createElement("span");y.className="icon outdent",u.onclick=()=>{this.indent-=1,t({indent:this.indent})},u.appendChild(y);let N=document.createElement("div");N.className="icon-wrapper clickable",r.appendChild(N);let o=document.createElement("span");o.className=`icon info ${this.showDetails?"active":""}`,N.onclick=()=>{o.classList.toggle("active"),this.showDetails=!this.showDetails,t({showDetails:this.showDetails})},N.appendChild(o);let s=document.createElement("span");s.className="icon search",i.appendChild(s),d=document.createElement("input"),d.className="search-input",d.placeholder="Search",d.oninput=l=>{n(l.target.value)},i.appendChild(d),this.refresh=()=>{this.expanded=1,this.indent=2,d&&(d.value=""),t({indent:2,expanded:1}),n("")},this.updateShowDetails=l=>{this.showDetails=l,this.showDetails?o.classList.add("active"):o.classList.remove("active")},this.element=v},V=ce;function oe(e,a={}){let t=document.createElement("div");t.className="container",e.appendChild(t);let n=null,c=null,d={};this.update=({data:v,expanded:r,indent:i,expandIconType:m,showDataTypes:x,showToolbar:p,showSize:g,showCopy:b})=>{if(v){let f=JSON.stringify(v);d.dataComapreString!==f&&(d.dataComapreString=f,n=new H({key:"",value:v,expanded:r,indent:i,onToggleExpand:w=>{c&&(c.expanded=w),d.expanded=w}}),t.replaceChildren(n.element),d.showToolbar&&c&&(t.prepend(c.element),c.maxExpandLevel=n.maxLevel,c.refresh()))}if(p!==void 0&&d.showToolbar!==p)if(d.showToolbar=p,p)c||(c=new V({expanded:d.expanded,indent:d.indent,onChange:({expanded:f,indent:w,showDetails:u})=>{let y={expanded:f,indent:w};u!==void 0&&(y.showCopy=u,y.showSize=u,y.showDataTypes=u),this.update(y)},onSearch:f=>{n&&n.update({searchTerm:f})}})),n&&(c.maxExpandLevel=n.maxLevel),t.prepend(c.element);else{let f=t.querySelector(".toolbar");f&&f.remove()}let h={};r!==void 0&&d.expanded!==r&&(d.expanded=r,h.expanded=r),i!==void 0&&d.indent!==i&&(d.indent=i,h.indent=i),Object.keys(h).length>0&&n&&n.update(h),b!==void 0&&d.showCopy!==b&&(d.showCopy=b,t.classList.toggle("show-copy",b)),g!==void 0&&d.showSize!==g&&(d.showSize=g,t.classList.toggle("show-size",g),c&&c.updateShowDetails(d.showSize||d.showDataTypes)),x!==void 0&&d.showDataTypes!==x&&(d.showDataTypes=x,t.classList.toggle("show-data-types",x),c&&c.updateShowDetails(d.showSize||d.showDataTypes)),m!==void 0&&d.expandIconType!==m&&(t.classList.add(`expand-icon-${m}`),t.classList.remove(`expand-icon-${d.expandIconType}`),d.expandIconType=m)},this.update(a)}var Z=oe;var G={indent:2,expanded:1,theme:"default-light",showDataTypes:!0,showToolbar:!1,expandIconType:"arrow",showCopy:!0,showSize:!0,data:null},R=class e extends HTMLElement{#t;#e;#c;#n;constructor(){super(),this.#e={...G},this.#t=document.createElement("style");let a=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent=`${J}`,a.appendChild(t),a.appendChild(this.#t),this.theme=this.#e.theme,this.#n=new Z(a,this.#e)}static get observedAttributes(){return Object.keys(G).map(a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())}static allowedAttributes=["id"].concat(e.observedAttributes);#d=(...a)=>{console.warn(`JsonViewer${this.id?` (${this.id})`:""}:`,...a)};#a=(a,t,n,c)=>{try{if(t=n(t),c&&!c.includes(t))throw new Error(`should be one of ${c.join(", ")}`);if(this.#e[a]===t)return;this.#e[a]=t,this.#o()}catch(d){this.#d(`Attribute ${a}: ${d.message}`)}};set showDataTypes(a){this.#a("showDataTypes",a,$)}set showToolbar(a){this.#a("showToolbar",a,$)}set indent(a){this.#a("indent",a,U)}set expandIconType(a){this.#a("expandIconType",a,P,["arrow","square","circle"])}set expanded(a){this.#a("expanded",a,M)}set showSize(a){this.#a("showSize",a,$)}set showCopy(a){this.#a("showCopy",a,$)}set theme(a){try{if(a=q(a),this.#e.theme===a&&this.#t.textContent!=="")return;this.#t.textContent=W(a),this.#e.theme=a}catch(t){this.#d(`Attribute theme: ${t.message}`)}}set data(a){try{a=q(a);let t=JSON.stringify(a);if(this.#e.data===t)return;this.#e.data=t,O(a)?fetch(a).then(n=>n.json()).then(n=>{this.#c=n,this.#o()}):(this.#c=a,this.#o())}catch(t){this.#d(`Attribute data: ${t.message}`)}}get options(){return this.#e}connectedCallback(){window.addEventListener("DOMContentLoaded",()=>{let a=this.textContent;this.textContent="",a&&(this.data=a)})}attributeChangedCallback(a,t,n){if(e.allowedAttributes.indexOf(a)>-1){let c=a.replace(/-([a-z])/g,d=>d[1].toUpperCase());this[c]=n}else this.#d(`Attribute ${a} is not supported and will be ignored!`),this.removeAttribute(a)}#o=()=>{this.#n.update({data:this.#c,expanded:this.#e.expanded,expandIconType:this.#e.expandIconType,indent:this.#e.indent,showDataTypes:this.#e.showDataTypes,showToolbar:this.#e.showToolbar,showSize:this.#e.showSize,showCopy:this.#e.showCopy})}};customElements.get("andypf-json-viewer")||customElements.define("andypf-json-viewer",R);var ne=({data:e,...a})=>{let t=z.default.useRef(null);return z.default.useEffect(()=>{t.current&&(t.current.data=e)},[e]),z.default.createElement("andypf-json-viewer",{ref:t,...a})},re=ne; diff --git a/dist/esm/index.js b/dist/esm/index.js deleted file mode 100644 index d1d5a5b..0000000 --- a/dist/esm/index.js +++ /dev/null @@ -1,28 +0,0 @@ - -/* -MIT License - -Copyright (c) 2025 Andreas Pfau - -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. - -*/ - -var q=`.container{background-color:var(--base00);color:var(--base05);padding:10px;letter-spacing:0.5px;font-family:monospace;border-radius:3px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:5px;border-bottom:solid 1px var(--base02)}.toolbar .options,.toolbar .search-wrapper{display:flex;align-items:center}.toolbar .icon-wrapper{height:15px;display:flex;align-items:center;padding:2px 5px}.toolbar .icon-wrapper:hover{background-color:var(--base02);border-radius:3px}.toolbar .icon-wrapper:first-child{margin-left:0px}.toolbar .search.icon{margin-right:5px}.toolbar .search-input{border:none;background:transparent;outline:none;flex:1;font-size:16px;color:var(--base0D)}.match{background-color:yellow;font-weight:bold;color:red}.data-row{padding:3px 0}.data-row .data-row{border-left:solid 1px var(--base02);padding-left:20px;margin-left:5px;display:none}.data-row.expanded>.data-row{display:block}.data-row .key-value-wrapper{display:flex;align-items:center}.data-row .key{color:var(--base07)}.data-row .key.number{color:var(--base0C)}.data-row .colon{color:var(--base07);margin:0 5px 0 0}.clickable{cursor:pointer}.data-row .opening-parenthesis,.data-row .closing-parenthesis{color:var(--base07)}.data-row .ellipsis{color:var(--base09)}.data-row.expanded>.key-value-wrapper .closing-parenthesis,.data-row.expanded>.key-value-wrapper .ellipsis{display:none}.data-row>.closing-parenthesis{display:none}.data-row.expanded>.closing-parenthesis{display:inline-block}.data-row .items-size{margin-left:10px;color:var(--base04);font-style:italic;display:none}.show-size .data-row .items-size{display:inline-block}.data-row .value.bool,.data-row .value.boolean{color:var(--base0E)}.data-row .value.function{color:var(--base0D)}.data-row .value.int,.data-row .value.integer{color:var(--base0F)}.data-row .value.float{color:var(--base0B)}.data-row .value.string{color:var(--base09)}.data-row .value.string .content{overflow-wrap:break-word}.data-row .value.string .content::before{content:open-quote}.data-row .value.string .content::after{content:close-quote}.data-row .value.regexp{color:var(--base0A)}.data-row .value.nan{color:var(--base08)}.data-row .value.null{color:var(--base0A)}.data-row .value.undefined{color:var(--base05)}.data-row .value.date{color:var(--base0D)}.data-row .value.nan,.data-row .value.null,.data-row .value.undefined{border-radius:3px;background-color:var(--base02);padding:1px 2px}.data-row .value .type{font-size:smaller;margin-right:4px;opacity:0.8;display:none}.data-row .value .value-data{word-break:break-all}.show-data-types .data-row .value .type{display:inline-block}.icon-wrapper,.copy-icon-wrapper{display:inline-block;cursor:pointer}.icon{display:block;position:relative}.icon:before,.icon:after{content:"";position:absolute;display:block}.expand.icon{margin-right:5px}.expand-icon-arrow .expand.icon{margin-left:3px;width:0;height:0;border-left:solid 6px var(--base0E);border-top:solid 6px transparent;border-bottom:solid 6px transparent}.expand-icon-arrow .expanded>.key-value-wrapper .expand.icon,.expand-icon-arrow .expanded.icon.expand{transform:rotate(90deg);border-left-color:var(--base0D)}.expand-icon-square .expand.icon,.expand-icon-circle .expand.icon{display:block;width:9px;height:9px;border-radius:2px;border:solid 1px var(--base0E)}.expand-icon-circle .expand.icon{border-radius:50%}.expand-icon-square .expand.icon:before,.expand-icon-circle .expand.icon:before,.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{width:5px;height:1px;background-color:var(--base0E);left:2px;top:4px}.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{transform:rotate(90deg)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-square .expand.icon.expanded:after,.expand-icon-circle .expand.icon.expanded:after{display:none}.expand-icon-square .expanded>.key-value-wrapper .expand.icon,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon,.expand-icon-square .expand.icon.expanded,.expand-icon-circle .expanded.expand.icon{border-color:var(--base0D)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-square .expanded.expand.icon:before,.expand-icon-circle .expanded.expand.icon:before{background-color:var(--base0D)}.icon-wrapper{display:inline-block;cursor:pointer}.show-copy .key-value-wrapper:hover .icon.copy{display:block}.copy.icon{margin-left:10px;display:none;width:8px;height:10px;border:solid 1px var(--base0D);border-radius:1px;position:relative;top:4px;transition:0.2s all}.copy.icon:active{transform:scale(1.6);background-color:var(--base0B)}.copy.icon:before{content:"";display:block;left:-3px;top:-3px;width:8px;height:10px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);border-radius:1px 0 0 0}.plus.icon{width:11px;height:1px;background-color:var(--base0D)}.plus.icon:after{content:"";width:11px;height:1px;background-color:var(--base0D);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.minus.icon{width:11px;height:1px;background-color:var(--base0D)}.indent.icon{color:var(--base0D);width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:before{content:"";position:absolute;top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:after{content:"";position:absolute;top:1px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px var(--base0D);border-right:solid 3px transparent}.outdent.icon{color:var(--base0D);margin-left:2px;width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:before{content:"";top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:after{content:"";top:1px;left:-3px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px transparent;border-right:solid 3px var(--base0D)}.refresh.icon{color:var(--base0D);width:10px;height:10px;border-radius:50%;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D);border-left:solid 1px transparent;border-right:solid 1px var(--base0D)}.refresh.icon:before{content:"";left:1px;top:8px;width:3px;height:3px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);-webkit-transform:rotate(-22.5deg);transform:rotate(-22.5deg)}.info.icon{width:12px;height:11px;border:solid 1px var(--base0D);border-radius:2px}.info.icon::before{top:5px;left:5px;width:2px;height:5px;background-color:var(--base0D)}.info.icon::after{top:2px;left:5px;width:2px;height:2px;background-color:var(--base0D)}.info.icon.active{background-color:var(--base0D)}.info.icon.active::before,.info.icon.active::after{background-color:var(--base02)}.search.icon{color:var(--base0D);width:11px;height:11px;border:solid 1px var(--base0D);border-radius:100%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.search.icon:before{content:"";top:11px;left:5px;height:6px;width:1px;background-color:var(--base0D)} -`;var A={apathy:["#031a16","#0b342d","#184e45","#2b685e","#5f9c92","#81b5ac","#a7cec8","#d2e7e4","#3e9688","#3e7996","#3e4c96","#883e96","#963e4c","#96883e","#4c963e","#3e965b"],ashes:["#1c2023","#393f45","#565e65","#747c84","#adb3ba","#c7ccd1","#dfe2e5","#f3f4f5","#c7ae95","#c7c795","#aec795","#95c7ae","#95aec7","#ae95c7","#c795ae","#c79595"],"atelier-dune-light":["#fefbec","#e8e4cf","#a6a28c","#999580","#7d7a68","#6e6b5e","#292824","#20201d","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],"atelier-dune":["#20201d","#292824","#6e6b5e","#7d7a68","#999580","#a6a28c","#e8e4cf","#fefbec","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],atlas:["#002635","#00384d","#517f8d","#6c8b91","#869696","#a1a19a","#e6e6dc","#fafaf8","#ff5a67","#f08e48","#ffcc1b","#7fc06e","#14747e","#5dd7b9","#9a70a4","#c43060"],bespin:["#28211c","#36312e","#5e5d5c","#666666","#797977","#8a8986","#9d9b97","#baae9e","#cf6a4c","#cf7d34","#f9ee98","#54be0d","#afc4db","#5ea6ea","#9b859d","#937121"],"black-metal":["#000000","#121212","#222222","#333333","#999999","#c1c1c1","#999999","#c1c1c1","#5f8787","#aaaaaa","#a06666","#dd9999","#aaaaaa","#888888","#999999","#444444"],brewer:["#0c0d0e","#2e2f30","#515253","#737475","#959697","#b7b8b9","#dadbdc","#fcfdfe","#e31a1c","#e6550d","#dca060","#31a354","#80b1d3","#3182bd","#756bb1","#b15928"],bright:["#000000","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ffffff","#fb0120","#fc6d24","#fda331","#a1c659","#76c7b7","#6fb3d2","#d381c3","#be643c"],brogrammer:["#1f1f1f","#f81118","#2dc55e","#ecba0f","#2a84d2","#4e5ab7","#1081d6","#d6dbe5","#d6dbe5","#de352e","#1dd361","#f3bd09","#1081d6","#5350b9","#0f7ddb","#ffffff"],"brushtrees-dark":["#485867","#5a6d7a","#6d828e","#8299a1","#98afb5","#b0c5c8","#c9dbdc","#e3efef","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],brushtrees:["#e3efef","#c9dbdc","#b0c5c8","#98afb5","#8299a1","#6d828e","#5a6d7a","#485867","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],chalk:["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#fb9fb1","#eda987","#ddb26f","#acc267","#12cfc0","#6fc2ef","#e1a3ee","#deaf8f"],circus:["#191919","#202020","#303030","#5f5a60","#505050","#a7a7a7","#808080","#ffffff","#dc657d","#4bb1a7","#c3ba63","#84b97c","#4bb1a7","#639ee4","#b888e2","#b888e2"],"classic-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],"classic-light":["#f5f5f5","#e0e0e0","#d0d0d0","#b0b0b0","#505050","#303030","#202020","#151515","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],codeschool:["#232c31","#1c3657","#2a343a","#3f4944","#84898c","#9ea7a6","#a7cfa3","#b5d8f6","#2a5491","#43820d","#a03b1e","#237986","#b02f30","#484d79","#c59820","#c98344"],cupcake:["#fbf1f2","#f2f1f4","#d8d5dd","#bfb9c6","#a59daf","#8b8198","#72677e","#585062","#d57e85","#ebb790","#dcb16c","#a3b367","#69a9a7","#7297b9","#bb99b4","#baa58c"],cupertino:["#ffffff","#c0c0c0","#c0c0c0","#808080","#808080","#404040","#404040","#5e5e5e","#c41a15","#eb8500","#826b28","#007400","#318495","#0000ff","#a90d91","#826b28"],darcula:["#2b2b2b","#323232","#323232","#606366","#a4a3a3","#a9b7c6","#ffc66d","#ffffff","#4eade5","#689757","#bbb529","#6a8759","#629755","#9876aa","#cc7832","#808080"],darktooth:["#1d2021","#32302f","#504945","#665c54","#928374","#a89984","#d5c4a1","#fdf4c1","#fb543f","#fe8625","#fac03b","#95c085","#8ba59b","#0d6678","#8f4673","#a87322"],"default-dark":["#181818","#282828","#383838","#585858","#b8b8b8","#d8d8d8","#e8e8e8","#f8f8f8","#ab4642","#dc9656","#f7ca88","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],"default-light":["#ffffff","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#ab4642","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],dracula:["#282936","#3a3c4e","#4d4f68","#626483","#62d6e8","#e9e9f4","#f1f2f8","#f7f7fb","#ea51b2","#b45bcf","#00f769","#ebff87","#a1efe4","#62d6e8","#b45bcf","#00f769"],eighties:["#2d2d2d","#393939","#515151","#747369","#a09f93","#d3d0c8","#e8e6df","#f2f0ec","#f2777a","#f99157","#ffcc66","#99cc99","#66cccc","#6699cc","#cc99cc","#d27b53"],embers:["#16130f","#2c2620","#433b32","#5a5047","#8a8075","#a39a90","#beb6ae","#dbd6d1","#826d57","#828257","#6d8257","#57826d","#576d82","#6d5782","#82576d","#825757"],flat:["#2c3e50","#34495e","#7f8c8d","#95a5a6","#bdc3c7","#e0e0e0","#f5f5f5","#ecf0f1","#e74c3c","#e67e22","#f1c40f","#2ecc71","#1abc9c","#3498db","#9b59b6","#be643c"],"fruit-soda":["#f1ecf1","#e0dee0","#d8d5d5","#b5b4b6","#979598","#515151","#474545","#2d2c2c","#fe3e31","#fe6d08","#f7e203","#47f74c","#0f9cfd","#2931df","#611fce","#b16f40"],github:["#ffffff","#f5f5f5","#c8c8fa","#969896","#e8e8e8","#333333","#ffffff","#969896","#ed6a43","#0086b3","#795da3","#183691","#183691","#795da3","#a71d5d","#333333"],"google-dark":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"google-light":["#ffffff","#e0e0e0","#c5c8c6","#b4b7b4","#969896","#373b41","#282a2e","#1d1f21","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"grayscale-dark":["#101010","#252525","#464646","#525252","#ababab","#b9b9b9","#e3e3e3","#f7f7f7","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],"grayscale-light":["#f7f7f7","#e3e3e3","#b9b9b9","#ababab","#525252","#464646","#252525","#101010","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],greenscreen:["#001100","#003300","#005500","#007700","#009900","#00bb00","#00dd00","#00ff00","#007700","#009900","#007700","#00bb00","#005500","#009900","#00bb00","#005500"],"gruvbox-dark-hard":["#1d2021","#3c3836","#504945","#665c54","#bdae93","#d5c4a1","#ebdbb2","#fbf1c7","#fb4934","#fe8019","#fabd2f","#b8bb26","#8ec07c","#83a598","#d3869b","#d65d0e"],"gruvbox-light-hard":["#f9f5d7","#ebdbb2","#d5c4a1","#bdae93","#665c54","#504945","#3c3836","#282828","#9d0006","#af3a03","#b57614","#79740e","#427b58","#076678","#8f3f71","#d65d0e"],"harmonic-dark":["#0b1c2c","#223b54","#405c79","#627e99","#aabcce","#cbd6e2","#e5ebf1","#f7f9fb","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"harmonic-light":["#f7f9fb","#e5ebf1","#cbd6e2","#aabcce","#627e99","#405c79","#223b54","#0b1c2c","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"heetch-light":["#feffff","#392551","#7b6d8b","#9c92a8","#ddd6e5","#5a496e","#470546","#190134","#27d9d5","#bdb6c5","#5ba2b6","#f80059","#c33678","#47f9f5","#bd0152","#dedae2"],heetch:["#190134","#392551","#5a496e","#7b6d8b","#9c92a8","#bdb6c5","#dedae2","#feffff","#27d9d5","#5ba2b6","#8f6c97","#c33678","#f80059","#bd0152","#82034c","#470546"],helios:["#1d2021","#383c3e","#53585b","#6f7579","#cdcdcd","#d5d5d5","#dddddd","#e5e5e5","#d72638","#eb8413","#f19d1a","#88b92d","#1ba595","#1e8bac","#be4264","#c85e0d"],hopscotch:["#322931","#433b42","#5c545b","#797379","#989498","#b9b5b8","#d5d3d5","#ffffff","#dd464c","#fd8b19","#fdcc59","#8fc13e","#149b93","#1290bf","#c85e7c","#b33508"],"horizon-dark":["#1c1e26","#232530","#2e303e","#676a8d","#ced1d0","#cbced0","#dcdfe4","#e3e6ee","#e93c58","#e58d7d","#efb993","#efaf8e","#24a8b4","#df5273","#b072d1","#e4a382"],"ia-dark":["#1a1a1a","#222222","#1d414d","#767676","#b8b8b8","#cccccc","#e8e8e8","#f8f8f8","#d88568","#d86868","#b99353","#83a471","#7c9cae","#8eccdd","#b98eb2","#8b6c37"],"ia-light":["#f6f6f6","#dedede","#bde5f2","#898989","#767676","#181818","#e8e8e8","#898989","#9c5a02","#c43e18","#c48218","#38781c","#2d6bb1","#48bac2","#a94598","#8b6c37"],icy:["#021012","#031619","#041f23","#052e34","#064048","#095b67","#0c7c8c","#109cb0","#16c1d9","#b3ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7"],isotope:["#000000","#404040","#606060","#808080","#c0c0c0","#d0d0d0","#e0e0e0","#ffffff","#ff0000","#ff9900","#ff0099","#33ff00","#00ffff","#0066ff","#cc00ff","#3300ff"],macintosh:["#000000","#404040","#404040","#808080","#808080","#c0c0c0","#c0c0c0","#ffffff","#dd0907","#ff6403","#fbf305","#1fb714","#02abea","#0000d3","#4700a5","#90713a"],marrakesh:["#201602","#302e00","#5f5b17","#6c6823","#86813b","#948e48","#ccc37a","#faf0a5","#c35359","#b36144","#a88339","#18974e","#75a738","#477ca1","#8868b3","#b3588e"],materia:["#263238","#2c393f","#37474f","#707880","#c9ccd3","#cdd3de","#d5dbe5","#ffffff","#ec5f67","#ea9560","#ffcc00","#8bd649","#80cbc4","#89ddff","#82aaff","#ec5f67"],"material-lighter":["#fafafa","#e7eaec","#cceae7","#ccd7da","#8796b0","#80cbc4","#80cbc4","#666666","#ff5370","#f76d47","#ffb62c","#91b859","#39adb5","#6182b8","#7c4dff","#e53935"],material:["#263238","#2e3c43","#314549","#546e7a","#b2ccd6","#eeffff","#eeffff","#ffffff","#f07178","#f78c6c","#ffcb6b","#c3e88d","#89ddff","#82aaff","#c792ea","#ff5370"],"mellow-purple":["#1e0528","#1a092d","#331354","#320f55","#873582","#ffeeff","#ffeeff","#f8c0ff","#00d9e9","#aa00a3","#955ae7","#05cb0d","#b900b1","#550068","#8991bb","#4d6fff"],"mexico-light":["#f8f8f8","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#f79a0e","#538947","#4b8093","#7cafc2","#96609e","#a16946"],mocha:["#3b3228","#534636","#645240","#7e705a","#b8afad","#d0c8c6","#e9e1dd","#f5eeeb","#cb6077","#d28b71","#f4bc87","#beb55b","#7bbda4","#8ab3b5","#a89bb9","#bb9584"],monokai:["#272822","#383830","#49483e","#75715e","#a59f85","#f8f8f2","#f5f4f1","#f9f8f5","#f92672","#fd971f","#f4bf75","#a6e22e","#a1efe4","#66d9ef","#ae81ff","#cc6633"],nord:["#2e3440","#3b4252","#434c5e","#4c566a","#d8dee9","#e5e9f0","#eceff4","#8fbcbb","#88c0d0","#81a1c1","#5e81ac","#bf616a","#d08770","#ebcb8b","#a3be8c","#b48ead"],ocean:["#2b303b","#343d46","#4f5b66","#65737e","#a7adba","#c0c5ce","#dfe1e8","#eff1f5","#bf616a","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967"],"one-light":["#fafafa","#f0f0f1","#e5e5e6","#a0a1a7","#696c77","#383a42","#202227","#090a0b","#ca1243","#d75f00","#c18401","#50a14f","#0184bc","#4078f2","#a626a4","#986801"],onedark:["#282c34","#353b45","#3e4451","#545862","#565c64","#abb2bf","#b6bdca","#c8ccd4","#e06c75","#d19a66","#e5c07b","#98c379","#56b6c2","#61afef","#c678dd","#be5046"],"papercolor-dark":["#1c1c1c","#af005f","#5faf00","#d7af5f","#5fafd7","#808080","#d7875f","#d0d0d0","#585858","#5faf5f","#afd700","#af87d7","#ffaf00","#ff5faf","#00afaf","#5f8787"],"papercolor-light":["#eeeeee","#af0000","#008700","#5f8700","#0087af","#878787","#005f87","#444444","#bcbcbc","#d70000","#d70087","#8700af","#d75f00","#d75f00","#005faf","#005f87"],paraiso:["#2f1e2e","#41323f","#4f424c","#776e71","#8d8687","#a39e9b","#b9b6b0","#e7e9db","#ef6155","#f99b15","#fec418","#48b685","#5bc4bf","#06b6ef","#815ba4","#e96ba8"],pico:["#000000","#1d2b53","#7e2553","#008751","#ab5236","#5f574f","#c2c3c7","#fff1e8","#ff004d","#ffa300","#fff024","#00e756","#29adff","#83769c","#ff77a8","#ffccaa"],pop:["#000000","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#eb008a","#f29333","#f8ca12","#37b349","#00aabb","#0e5a94","#b31e8d","#7a2d00"],railscasts:["#2b2b2b","#272935","#3a4055","#5a647e","#d4cfc9","#e6e1dc","#f4f1ed","#f9f7f3","#da4939","#cc7833","#ffc66d","#a5c261","#519f50","#6d9cbe","#b6b3eb","#bc9458"],seti:["#151718","#282a2b","#3b758c","#41535b","#43a5d5","#d6d6d6","#eeeeee","#ffffff","#cd3f45","#db7b55","#e6cd69","#9fca56","#55dbbe","#55b5db","#a074c4","#8a553f"],"solarized-dark":["#002b36","#073642","#586e75","#657b83","#839496","#93a1a1","#eee8d5","#fdf6e3","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],"solarized-light":["#fdf6e3","#eee8d5","#93a1a1","#839496","#657b83","#586e75","#073642","#002b36","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],spacemacs:["#1f2022","#282828","#444155","#585858","#b8b8b8","#a3a3a3","#e8e8e8","#f8f8f8","#f2241f","#ffa500","#b1951d","#67b11d","#2d9574","#4f97d7","#a31db1","#b03060"],"summerfruit-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"summerfruit-light":["#ffffff","#e0e0e0","#d0d0d0","#b0b0b0","#000000","#101010","#151515","#202020","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"tomorrow-night":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc6666","#de935f","#f0c674","#b5bd68","#8abeb7","#81a2be","#b294bb","#a3685a"],tomorrow:["#ffffff","#e0e0e0","#d6d6d6","#8e908c","#969896","#4d4d4c","#282a2e","#1d1f21","#c82829","#f5871f","#eab700","#718c00","#3e999f","#4271ae","#8959a8","#a3685a"],tube:["#231f20","#1c3f95","#5a5758","#737171","#959ca1","#d9d8d8","#e7e7e8","#ffffff","#ee2e24","#f386a1","#ffd204","#00853e","#85cebc","#009ddc","#98005d","#b06110"],twilight:["#1e1e1e","#323537","#464b50","#5f5a60","#838184","#a7a7a7","#c3c3c3","#ffffff","#cf6a4c","#cda869","#f9ee98","#8f9d6a","#afc4db","#7587a6","#9b859d","#9b703f"],woodland:["#231e18","#302b25","#48413a","#9d8b70","#b4a490","#cabcb1","#d7c8bc","#e4d4c8","#d35c5c","#ca7f32","#e0ac16","#b7ba53","#6eb958","#88a4d3","#bb90e2","#b49368"],zenburn:["#383838","#404040","#606060","#6f6f6f","#808080","#dcdccc","#c0c0c0","#ffffff","#dca3a3","#dfaf8f","#e0cf9f","#5f7f5f","#93e0e3","#7cb8bb","#dc8cc3","#000000"]},V=Object.keys(A),R=a=>{let e;if(typeof a=="string"){if(A[a]===void 0)throw new Error(`${a} not found`);e=A[a].reduce((d,r,o)=>{let t=`base0${o.toString(16).toUpperCase()}`;return d[t]=r,d},{})}else e=a;return`.container{${Object.keys(e).map(d=>`--${d}: ${e[d]};`).join("")}}`};var j=a=>{try{return!!new URL(a)}catch{return!1}},W=a=>{if(Array.isArray(a))return"array";if(a===null)return"null";if(a instanceof RegExp)return"regexp";let e=typeof a;return e==="number"?isNaN(a)?"NaN":isFinite(a)?Number.isInteger(a)?"int":"float":"Infinity":e==="boolean"?"bool":e==="object"&&a instanceof Date?"date":e};var $=a=>{if(typeof a=="boolean")return a;if(a==="true")return!0;if(a==="false")return!1;throw new Error("should be a boolean!")},J=a=>{if(typeof a=="string")return a;throw new Error("should be a string!")},O=a=>{if(typeof a=="number"&&a>=0)return a;if(typeof a=="string"&&(a=parseFloat(a)),isNaN(a)||a<0)throw new Error("should be a positive number!");return a},B=a=>{if(typeof a=="boolean"||typeof a=="number")return a;if(a==="true")return!0;if(a==="false")return!1;if(typeof a=="string"&&(a=parseFloat(a),!isNaN(a)&&a>=0))return a;throw new Error("should be a boolean or a positive number!")},z=a=>{if(typeof a=="object")return a;if(typeof a=="string")try{return JSON.parse(a)}catch{return a}throw new Error("should be a string or JSON!")};var P=function({key:a,value:e,expanded:d,indent:r,onToggleExpand:o,level:t=0,parentRow:v}){let n=document.createElement("div");this.maxLevel=t;let i=W(e),m=i==="array"||i==="object",x=d===!0||d>t,p,g,b,h;n.className=`data-row ${x?"expanded":""}`,n.dataset.key=a,n.dataset.level=t,t>0&&(n.style.paddingLeft=`${r*5}px`);let f=document.createElement("span");f.className="key-value-wrapper",n.appendChild(f);let w=()=>{n.classList.toggle("expanded"),o&&(n.classList.contains("expanded")?o(t+1):o(t))};if(m){let c=document.createElement("span");c.className="icon-wrapper",f.appendChild(c),p=document.createElement("span"),p.className="expand icon clickable",p.setAttribute("title",x?"Collapse":"Expand"),c.appendChild(p),c.addEventListener("click",()=>w())}if(a!==null&&a!==""){let c=typeof a;b=document.createElement("span"),b.className=`key clickable ${c==="number"?"number":""}`,b.textContent=c==="number"?a:`${a}`,b.addEventListener("click",()=>w()),f.appendChild(b);let s=document.createElement("span");s.classList.add("colon"),s.textContent=":",f.appendChild(s)}if(m){let c=document.createElement("span");c.className="opening-parenthesis",c.textContent=i==="array"?"[":"{",f.appendChild(c);let s=document.createElement("span");s.className="ellipsis clickable",s.textContent="...",s.addEventListener("click",()=>w()),f.appendChild(s);let l=document.createElement("span");l.className="closing-parenthesis",l.textContent=i==="array"?"]":"}",f.appendChild(l);let E=document.createElement("span"),D=i==="array"?e.length:Object.keys(e).length;E.className="items-size",E.textContent=`${D} item${D===1?"":"s"}`,f.appendChild(E),g=[],(i==="array"?e.map((C,k)=>k):Object.keys(e)).forEach(C=>{let k=new P({key:C,value:e[C],expanded:d,indent:r,onToggleExpand:o,level:t+1,parentRow:n});g.push(k),n.appendChild(k.element),this.maxLevel=Math.max(this.maxLevel,k.maxLevel)});let S=document.createElement("span");S.className="closing-parenthesis",S.textContent=i==="array"?"]":"}",n.appendChild(S)}else{let c=null;["nan","NaN","undefined","null"].includes(i)||(c=document.createElement("span"),c.className="type",c.textContent=i.toLowerCase());let s=document.createElement("span");s.className=`value ${i.toLowerCase()}`,h=document.createElement("span"),h.className="value-data",h.textContent=i==="string"?`"${e}"`:e,c&&s.appendChild(c),s.appendChild(h),f.appendChild(s)}let u=document.createElement("span");u.className="copy icon",u.setAttribute("title","Copy to clipboard");let y=document.createElement("span");y.className="icon-wrapper",y.addEventListener("click",()=>{navigator.clipboard.writeText(JSON.stringify(e,null,r))}),y.appendChild(u),f.appendChild(y);let N=c=>{let s=new RegExp(c,"gi"),l=[];b&&l.push(b),h&&l.push(h);let E=!1;l.forEach(D=>{let L=D.textContent;if(D.innerHTML=L,!c||c==="")return;let S=[...L.matchAll(s)].map(I=>I.index),C=[],k=0;S.forEach(I=>{E=!0,C.push(L.slice(k,I)),C.push(`${c}`),k=I+c.length}),C.push(L.slice(k)),D.innerHTML=C.join("")}),E&&!n.classList.contains("expanded")&&(w(),v&&v.classList.add("expanded"))};this.update=({expanded:c,indent:s,searchTerm:l})=>{s!==void 0&&t>0&&(n.style.paddingLeft=`${s*5}px`),c!==void 0&&(x=c===!0||c>t,n.classList.toggle("expanded",x),p&&(p.title=x?"Collapse":"Expand")),l!=null&&N(l),g&&g.forEach(E=>E.update({expanded:c,indent:s,searchTerm:l}))},this.element=n},U=P;var G=function({expanded:a,indent:e,onChange:d,onSearch:r,showDetails:o}){this.indent=e||2,this.expanded=typeof a=="number"?a:2,this.showDetails=o!==!1,this.maxExpandLevel=0;let t,v=document.createElement("div");v.className="toolbar";let n=document.createElement("div");n.className="options",v.appendChild(n);let i=document.createElement("div");i.className="search-wrapper",v.appendChild(i);let m=document.createElement("div");m.className="icon-wrapper clickable",n.appendChild(m);let x=document.createElement("span");x.className="icon refresh",m.onclick=()=>this.refresh(),m.appendChild(x);let p=document.createElement("div");p.className="icon-wrapper clickable",n.appendChild(p);let g=document.createElement("span");g.className="icon plus",p.appendChild(g),p.onclick=()=>{this.expanded{this.expanded>this.maxExpandLevel&&(this.expanded=this.maxExpandLevel),this.expanded>0&&(this.expanded-=1),d({expanded:this.expanded})};let f=document.createElement("div");f.className="icon-wrapper clickable",n.appendChild(f);let w=document.createElement("span");w.className="icon indent",f.onclick=()=>{this.indent+=1,d({indent:this.indent})},f.appendChild(w);let u=document.createElement("div");u.className="icon-wrapper clickable",n.appendChild(u);let y=document.createElement("span");y.className="icon outdent",u.onclick=()=>{this.indent-=1,d({indent:this.indent})},u.appendChild(y);let N=document.createElement("div");N.className="icon-wrapper clickable",n.appendChild(N);let c=document.createElement("span");c.className=`icon info ${this.showDetails?"active":""}`,N.onclick=()=>{c.classList.toggle("active"),this.showDetails=!this.showDetails,d({showDetails:this.showDetails})},N.appendChild(c);let s=document.createElement("span");s.className="icon search",i.appendChild(s),t=document.createElement("input"),t.className="search-input",t.placeholder="Search",t.oninput=l=>{r(l.target.value)},i.appendChild(t),this.refresh=()=>{this.expanded=1,this.indent=2,t&&(t.value=""),d({indent:2,expanded:1}),r("")},this.updateShowDetails=l=>{this.showDetails=l,this.showDetails?c.classList.add("active"):c.classList.remove("active")},this.element=v},M=G;function K(a,e={}){let d=document.createElement("div");d.className="container",a.appendChild(d);let r=null,o=null,t={};this.update=({data:v,expanded:n,indent:i,expandIconType:m,showDataTypes:x,showToolbar:p,showSize:g,showCopy:b})=>{if(v){let f=JSON.stringify(v);t.dataComapreString!==f&&(t.dataComapreString=f,r=new U({key:"",value:v,expanded:n,indent:i,onToggleExpand:w=>{o&&(o.expanded=w),t.expanded=w}}),d.replaceChildren(r.element),t.showToolbar&&o&&(d.prepend(o.element),o.maxExpandLevel=r.maxLevel,o.refresh()))}if(p!==void 0&&t.showToolbar!==p)if(t.showToolbar=p,p)o||(o=new M({expanded:t.expanded,indent:t.indent,onChange:({expanded:f,indent:w,showDetails:u})=>{let y={expanded:f,indent:w};u!==void 0&&(y.showCopy=u,y.showSize=u,y.showDataTypes=u),this.update(y)},onSearch:f=>{r&&r.update({searchTerm:f})}})),r&&(o.maxExpandLevel=r.maxLevel),d.prepend(o.element);else{let f=d.querySelector(".toolbar");f&&f.remove()}let h={};n!==void 0&&t.expanded!==n&&(t.expanded=n,h.expanded=n),i!==void 0&&t.indent!==i&&(t.indent=i,h.indent=i),Object.keys(h).length>0&&r&&r.update(h),b!==void 0&&t.showCopy!==b&&(t.showCopy=b,d.classList.toggle("show-copy",b)),g!==void 0&&t.showSize!==g&&(t.showSize=g,d.classList.toggle("show-size",g),o&&o.updateShowDetails(t.showSize||t.showDataTypes)),x!==void 0&&t.showDataTypes!==x&&(t.showDataTypes=x,d.classList.toggle("show-data-types",x),o&&o.updateShowDetails(t.showSize||t.showDataTypes)),m!==void 0&&t.expandIconType!==m&&(d.classList.add(`expand-icon-${m}`),d.classList.remove(`expand-icon-${t.expandIconType}`),t.expandIconType=m)},this.update(e)}var F=K;var H={indent:2,expanded:1,theme:"default-light",showDataTypes:!0,showToolbar:!1,expandIconType:"arrow",showCopy:!0,showSize:!0,data:null},T=class a extends HTMLElement{#t;#e;#c;#n;constructor(){super(),this.#e={...H},this.#t=document.createElement("style");let e=this.attachShadow({mode:"open"}),d=document.createElement("style");d.textContent=`${q}`,e.appendChild(d),e.appendChild(this.#t),this.theme=this.#e.theme,this.#n=new F(e,this.#e)}static get observedAttributes(){return Object.keys(H).map(e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())}static allowedAttributes=["id"].concat(a.observedAttributes);#d=(...e)=>{console.warn(`JsonViewer${this.id?` (${this.id})`:""}:`,...e)};#a=(e,d,r,o)=>{try{if(d=r(d),o&&!o.includes(d))throw new Error(`should be one of ${o.join(", ")}`);if(this.#e[e]===d)return;this.#e[e]=d,this.#o()}catch(t){this.#d(`Attribute ${e}: ${t.message}`)}};set showDataTypes(e){this.#a("showDataTypes",e,$)}set showToolbar(e){this.#a("showToolbar",e,$)}set indent(e){this.#a("indent",e,O)}set expandIconType(e){this.#a("expandIconType",e,J,["arrow","square","circle"])}set expanded(e){this.#a("expanded",e,B)}set showSize(e){this.#a("showSize",e,$)}set showCopy(e){this.#a("showCopy",e,$)}set theme(e){try{if(e=z(e),this.#e.theme===e&&this.#t.textContent!=="")return;this.#t.textContent=R(e),this.#e.theme=e}catch(d){this.#d(`Attribute theme: ${d.message}`)}}set data(e){try{e=z(e);let d=JSON.stringify(e);if(this.#e.data===d)return;this.#e.data=d,j(e)?fetch(e).then(r=>r.json()).then(r=>{this.#c=r,this.#o()}):(this.#c=e,this.#o())}catch(d){this.#d(`Attribute data: ${d.message}`)}}get options(){return this.#e}connectedCallback(){window.addEventListener("DOMContentLoaded",()=>{let e=this.textContent;this.textContent="",e&&(this.data=e)})}attributeChangedCallback(e,d,r){if(a.allowedAttributes.indexOf(e)>-1){let o=e.replace(/-([a-z])/g,t=>t[1].toUpperCase());this[o]=r}else this.#d(`Attribute ${e} is not supported and will be ignored!`),this.removeAttribute(e)}#o=()=>{this.#n.update({data:this.#c,expanded:this.#e.expanded,expandIconType:this.#e.expandIconType,indent:this.#e.indent,showDataTypes:this.#e.showDataTypes,showToolbar:this.#e.showToolbar,showSize:this.#e.showSize,showCopy:this.#e.showCopy})}};customElements.get("andypf-json-viewer")||customElements.define("andypf-json-viewer",T); diff --git a/dist/esm/react/JsonViewer.js b/dist/esm/react/JsonViewer.js deleted file mode 100644 index 0aa30ce..0000000 --- a/dist/esm/react/JsonViewer.js +++ /dev/null @@ -1,28 +0,0 @@ - -/* -MIT License - -Copyright (c) 2025 Andreas Pfau - -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. - -*/ - -import q from"react";var R=`.container{background-color:var(--base00);color:var(--base05);padding:10px;letter-spacing:0.5px;font-family:monospace;border-radius:3px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:5px;border-bottom:solid 1px var(--base02)}.toolbar .options,.toolbar .search-wrapper{display:flex;align-items:center}.toolbar .icon-wrapper{height:15px;display:flex;align-items:center;padding:2px 5px}.toolbar .icon-wrapper:hover{background-color:var(--base02);border-radius:3px}.toolbar .icon-wrapper:first-child{margin-left:0px}.toolbar .search.icon{margin-right:5px}.toolbar .search-input{border:none;background:transparent;outline:none;flex:1;font-size:16px;color:var(--base0D)}.match{background-color:yellow;font-weight:bold;color:red}.data-row{padding:3px 0}.data-row .data-row{border-left:solid 1px var(--base02);padding-left:20px;margin-left:5px;display:none}.data-row.expanded>.data-row{display:block}.data-row .key-value-wrapper{display:flex;align-items:center}.data-row .key{color:var(--base07)}.data-row .key.number{color:var(--base0C)}.data-row .colon{color:var(--base07);margin:0 5px 0 0}.clickable{cursor:pointer}.data-row .opening-parenthesis,.data-row .closing-parenthesis{color:var(--base07)}.data-row .ellipsis{color:var(--base09)}.data-row.expanded>.key-value-wrapper .closing-parenthesis,.data-row.expanded>.key-value-wrapper .ellipsis{display:none}.data-row>.closing-parenthesis{display:none}.data-row.expanded>.closing-parenthesis{display:inline-block}.data-row .items-size{margin-left:10px;color:var(--base04);font-style:italic;display:none}.show-size .data-row .items-size{display:inline-block}.data-row .value.bool,.data-row .value.boolean{color:var(--base0E)}.data-row .value.function{color:var(--base0D)}.data-row .value.int,.data-row .value.integer{color:var(--base0F)}.data-row .value.float{color:var(--base0B)}.data-row .value.string{color:var(--base09)}.data-row .value.string .content{overflow-wrap:break-word}.data-row .value.string .content::before{content:open-quote}.data-row .value.string .content::after{content:close-quote}.data-row .value.regexp{color:var(--base0A)}.data-row .value.nan{color:var(--base08)}.data-row .value.null{color:var(--base0A)}.data-row .value.undefined{color:var(--base05)}.data-row .value.date{color:var(--base0D)}.data-row .value.nan,.data-row .value.null,.data-row .value.undefined{border-radius:3px;background-color:var(--base02);padding:1px 2px}.data-row .value .type{font-size:smaller;margin-right:4px;opacity:0.8;display:none}.data-row .value .value-data{word-break:break-all}.show-data-types .data-row .value .type{display:inline-block}.icon-wrapper,.copy-icon-wrapper{display:inline-block;cursor:pointer}.icon{display:block;position:relative}.icon:before,.icon:after{content:"";position:absolute;display:block}.expand.icon{margin-right:5px}.expand-icon-arrow .expand.icon{margin-left:3px;width:0;height:0;border-left:solid 6px var(--base0E);border-top:solid 6px transparent;border-bottom:solid 6px transparent}.expand-icon-arrow .expanded>.key-value-wrapper .expand.icon,.expand-icon-arrow .expanded.icon.expand{transform:rotate(90deg);border-left-color:var(--base0D)}.expand-icon-square .expand.icon,.expand-icon-circle .expand.icon{display:block;width:9px;height:9px;border-radius:2px;border:solid 1px var(--base0E)}.expand-icon-circle .expand.icon{border-radius:50%}.expand-icon-square .expand.icon:before,.expand-icon-circle .expand.icon:before,.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{width:5px;height:1px;background-color:var(--base0E);left:2px;top:4px}.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{transform:rotate(90deg)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-square .expand.icon.expanded:after,.expand-icon-circle .expand.icon.expanded:after{display:none}.expand-icon-square .expanded>.key-value-wrapper .expand.icon,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon,.expand-icon-square .expand.icon.expanded,.expand-icon-circle .expanded.expand.icon{border-color:var(--base0D)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-square .expanded.expand.icon:before,.expand-icon-circle .expanded.expand.icon:before{background-color:var(--base0D)}.icon-wrapper{display:inline-block;cursor:pointer}.show-copy .key-value-wrapper:hover .icon.copy{display:block}.copy.icon{margin-left:10px;display:none;width:8px;height:10px;border:solid 1px var(--base0D);border-radius:1px;position:relative;top:4px;transition:0.2s all}.copy.icon:active{transform:scale(1.6);background-color:var(--base0B)}.copy.icon:before{content:"";display:block;left:-3px;top:-3px;width:8px;height:10px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);border-radius:1px 0 0 0}.plus.icon{width:11px;height:1px;background-color:var(--base0D)}.plus.icon:after{content:"";width:11px;height:1px;background-color:var(--base0D);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.minus.icon{width:11px;height:1px;background-color:var(--base0D)}.indent.icon{color:var(--base0D);width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:before{content:"";position:absolute;top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:after{content:"";position:absolute;top:1px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px var(--base0D);border-right:solid 3px transparent}.outdent.icon{color:var(--base0D);margin-left:2px;width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:before{content:"";top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:after{content:"";top:1px;left:-3px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px transparent;border-right:solid 3px var(--base0D)}.refresh.icon{color:var(--base0D);width:10px;height:10px;border-radius:50%;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D);border-left:solid 1px transparent;border-right:solid 1px var(--base0D)}.refresh.icon:before{content:"";left:1px;top:8px;width:3px;height:3px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);-webkit-transform:rotate(-22.5deg);transform:rotate(-22.5deg)}.info.icon{width:12px;height:11px;border:solid 1px var(--base0D);border-radius:2px}.info.icon::before{top:5px;left:5px;width:2px;height:5px;background-color:var(--base0D)}.info.icon::after{top:2px;left:5px;width:2px;height:2px;background-color:var(--base0D)}.info.icon.active{background-color:var(--base0D)}.info.icon.active::before,.info.icon.active::after{background-color:var(--base02)}.search.icon{color:var(--base0D);width:11px;height:11px;border:solid 1px var(--base0D);border-radius:100%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.search.icon:before{content:"";top:11px;left:5px;height:6px;width:1px;background-color:var(--base0D)} -`;var A={apathy:["#031a16","#0b342d","#184e45","#2b685e","#5f9c92","#81b5ac","#a7cec8","#d2e7e4","#3e9688","#3e7996","#3e4c96","#883e96","#963e4c","#96883e","#4c963e","#3e965b"],ashes:["#1c2023","#393f45","#565e65","#747c84","#adb3ba","#c7ccd1","#dfe2e5","#f3f4f5","#c7ae95","#c7c795","#aec795","#95c7ae","#95aec7","#ae95c7","#c795ae","#c79595"],"atelier-dune-light":["#fefbec","#e8e4cf","#a6a28c","#999580","#7d7a68","#6e6b5e","#292824","#20201d","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],"atelier-dune":["#20201d","#292824","#6e6b5e","#7d7a68","#999580","#a6a28c","#e8e4cf","#fefbec","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],atlas:["#002635","#00384d","#517f8d","#6c8b91","#869696","#a1a19a","#e6e6dc","#fafaf8","#ff5a67","#f08e48","#ffcc1b","#7fc06e","#14747e","#5dd7b9","#9a70a4","#c43060"],bespin:["#28211c","#36312e","#5e5d5c","#666666","#797977","#8a8986","#9d9b97","#baae9e","#cf6a4c","#cf7d34","#f9ee98","#54be0d","#afc4db","#5ea6ea","#9b859d","#937121"],"black-metal":["#000000","#121212","#222222","#333333","#999999","#c1c1c1","#999999","#c1c1c1","#5f8787","#aaaaaa","#a06666","#dd9999","#aaaaaa","#888888","#999999","#444444"],brewer:["#0c0d0e","#2e2f30","#515253","#737475","#959697","#b7b8b9","#dadbdc","#fcfdfe","#e31a1c","#e6550d","#dca060","#31a354","#80b1d3","#3182bd","#756bb1","#b15928"],bright:["#000000","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ffffff","#fb0120","#fc6d24","#fda331","#a1c659","#76c7b7","#6fb3d2","#d381c3","#be643c"],brogrammer:["#1f1f1f","#f81118","#2dc55e","#ecba0f","#2a84d2","#4e5ab7","#1081d6","#d6dbe5","#d6dbe5","#de352e","#1dd361","#f3bd09","#1081d6","#5350b9","#0f7ddb","#ffffff"],"brushtrees-dark":["#485867","#5a6d7a","#6d828e","#8299a1","#98afb5","#b0c5c8","#c9dbdc","#e3efef","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],brushtrees:["#e3efef","#c9dbdc","#b0c5c8","#98afb5","#8299a1","#6d828e","#5a6d7a","#485867","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],chalk:["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#fb9fb1","#eda987","#ddb26f","#acc267","#12cfc0","#6fc2ef","#e1a3ee","#deaf8f"],circus:["#191919","#202020","#303030","#5f5a60","#505050","#a7a7a7","#808080","#ffffff","#dc657d","#4bb1a7","#c3ba63","#84b97c","#4bb1a7","#639ee4","#b888e2","#b888e2"],"classic-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],"classic-light":["#f5f5f5","#e0e0e0","#d0d0d0","#b0b0b0","#505050","#303030","#202020","#151515","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],codeschool:["#232c31","#1c3657","#2a343a","#3f4944","#84898c","#9ea7a6","#a7cfa3","#b5d8f6","#2a5491","#43820d","#a03b1e","#237986","#b02f30","#484d79","#c59820","#c98344"],cupcake:["#fbf1f2","#f2f1f4","#d8d5dd","#bfb9c6","#a59daf","#8b8198","#72677e","#585062","#d57e85","#ebb790","#dcb16c","#a3b367","#69a9a7","#7297b9","#bb99b4","#baa58c"],cupertino:["#ffffff","#c0c0c0","#c0c0c0","#808080","#808080","#404040","#404040","#5e5e5e","#c41a15","#eb8500","#826b28","#007400","#318495","#0000ff","#a90d91","#826b28"],darcula:["#2b2b2b","#323232","#323232","#606366","#a4a3a3","#a9b7c6","#ffc66d","#ffffff","#4eade5","#689757","#bbb529","#6a8759","#629755","#9876aa","#cc7832","#808080"],darktooth:["#1d2021","#32302f","#504945","#665c54","#928374","#a89984","#d5c4a1","#fdf4c1","#fb543f","#fe8625","#fac03b","#95c085","#8ba59b","#0d6678","#8f4673","#a87322"],"default-dark":["#181818","#282828","#383838","#585858","#b8b8b8","#d8d8d8","#e8e8e8","#f8f8f8","#ab4642","#dc9656","#f7ca88","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],"default-light":["#ffffff","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#ab4642","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],dracula:["#282936","#3a3c4e","#4d4f68","#626483","#62d6e8","#e9e9f4","#f1f2f8","#f7f7fb","#ea51b2","#b45bcf","#00f769","#ebff87","#a1efe4","#62d6e8","#b45bcf","#00f769"],eighties:["#2d2d2d","#393939","#515151","#747369","#a09f93","#d3d0c8","#e8e6df","#f2f0ec","#f2777a","#f99157","#ffcc66","#99cc99","#66cccc","#6699cc","#cc99cc","#d27b53"],embers:["#16130f","#2c2620","#433b32","#5a5047","#8a8075","#a39a90","#beb6ae","#dbd6d1","#826d57","#828257","#6d8257","#57826d","#576d82","#6d5782","#82576d","#825757"],flat:["#2c3e50","#34495e","#7f8c8d","#95a5a6","#bdc3c7","#e0e0e0","#f5f5f5","#ecf0f1","#e74c3c","#e67e22","#f1c40f","#2ecc71","#1abc9c","#3498db","#9b59b6","#be643c"],"fruit-soda":["#f1ecf1","#e0dee0","#d8d5d5","#b5b4b6","#979598","#515151","#474545","#2d2c2c","#fe3e31","#fe6d08","#f7e203","#47f74c","#0f9cfd","#2931df","#611fce","#b16f40"],github:["#ffffff","#f5f5f5","#c8c8fa","#969896","#e8e8e8","#333333","#ffffff","#969896","#ed6a43","#0086b3","#795da3","#183691","#183691","#795da3","#a71d5d","#333333"],"google-dark":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"google-light":["#ffffff","#e0e0e0","#c5c8c6","#b4b7b4","#969896","#373b41","#282a2e","#1d1f21","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"grayscale-dark":["#101010","#252525","#464646","#525252","#ababab","#b9b9b9","#e3e3e3","#f7f7f7","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],"grayscale-light":["#f7f7f7","#e3e3e3","#b9b9b9","#ababab","#525252","#464646","#252525","#101010","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],greenscreen:["#001100","#003300","#005500","#007700","#009900","#00bb00","#00dd00","#00ff00","#007700","#009900","#007700","#00bb00","#005500","#009900","#00bb00","#005500"],"gruvbox-dark-hard":["#1d2021","#3c3836","#504945","#665c54","#bdae93","#d5c4a1","#ebdbb2","#fbf1c7","#fb4934","#fe8019","#fabd2f","#b8bb26","#8ec07c","#83a598","#d3869b","#d65d0e"],"gruvbox-light-hard":["#f9f5d7","#ebdbb2","#d5c4a1","#bdae93","#665c54","#504945","#3c3836","#282828","#9d0006","#af3a03","#b57614","#79740e","#427b58","#076678","#8f3f71","#d65d0e"],"harmonic-dark":["#0b1c2c","#223b54","#405c79","#627e99","#aabcce","#cbd6e2","#e5ebf1","#f7f9fb","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"harmonic-light":["#f7f9fb","#e5ebf1","#cbd6e2","#aabcce","#627e99","#405c79","#223b54","#0b1c2c","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"heetch-light":["#feffff","#392551","#7b6d8b","#9c92a8","#ddd6e5","#5a496e","#470546","#190134","#27d9d5","#bdb6c5","#5ba2b6","#f80059","#c33678","#47f9f5","#bd0152","#dedae2"],heetch:["#190134","#392551","#5a496e","#7b6d8b","#9c92a8","#bdb6c5","#dedae2","#feffff","#27d9d5","#5ba2b6","#8f6c97","#c33678","#f80059","#bd0152","#82034c","#470546"],helios:["#1d2021","#383c3e","#53585b","#6f7579","#cdcdcd","#d5d5d5","#dddddd","#e5e5e5","#d72638","#eb8413","#f19d1a","#88b92d","#1ba595","#1e8bac","#be4264","#c85e0d"],hopscotch:["#322931","#433b42","#5c545b","#797379","#989498","#b9b5b8","#d5d3d5","#ffffff","#dd464c","#fd8b19","#fdcc59","#8fc13e","#149b93","#1290bf","#c85e7c","#b33508"],"horizon-dark":["#1c1e26","#232530","#2e303e","#676a8d","#ced1d0","#cbced0","#dcdfe4","#e3e6ee","#e93c58","#e58d7d","#efb993","#efaf8e","#24a8b4","#df5273","#b072d1","#e4a382"],"ia-dark":["#1a1a1a","#222222","#1d414d","#767676","#b8b8b8","#cccccc","#e8e8e8","#f8f8f8","#d88568","#d86868","#b99353","#83a471","#7c9cae","#8eccdd","#b98eb2","#8b6c37"],"ia-light":["#f6f6f6","#dedede","#bde5f2","#898989","#767676","#181818","#e8e8e8","#898989","#9c5a02","#c43e18","#c48218","#38781c","#2d6bb1","#48bac2","#a94598","#8b6c37"],icy:["#021012","#031619","#041f23","#052e34","#064048","#095b67","#0c7c8c","#109cb0","#16c1d9","#b3ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7"],isotope:["#000000","#404040","#606060","#808080","#c0c0c0","#d0d0d0","#e0e0e0","#ffffff","#ff0000","#ff9900","#ff0099","#33ff00","#00ffff","#0066ff","#cc00ff","#3300ff"],macintosh:["#000000","#404040","#404040","#808080","#808080","#c0c0c0","#c0c0c0","#ffffff","#dd0907","#ff6403","#fbf305","#1fb714","#02abea","#0000d3","#4700a5","#90713a"],marrakesh:["#201602","#302e00","#5f5b17","#6c6823","#86813b","#948e48","#ccc37a","#faf0a5","#c35359","#b36144","#a88339","#18974e","#75a738","#477ca1","#8868b3","#b3588e"],materia:["#263238","#2c393f","#37474f","#707880","#c9ccd3","#cdd3de","#d5dbe5","#ffffff","#ec5f67","#ea9560","#ffcc00","#8bd649","#80cbc4","#89ddff","#82aaff","#ec5f67"],"material-lighter":["#fafafa","#e7eaec","#cceae7","#ccd7da","#8796b0","#80cbc4","#80cbc4","#666666","#ff5370","#f76d47","#ffb62c","#91b859","#39adb5","#6182b8","#7c4dff","#e53935"],material:["#263238","#2e3c43","#314549","#546e7a","#b2ccd6","#eeffff","#eeffff","#ffffff","#f07178","#f78c6c","#ffcb6b","#c3e88d","#89ddff","#82aaff","#c792ea","#ff5370"],"mellow-purple":["#1e0528","#1a092d","#331354","#320f55","#873582","#ffeeff","#ffeeff","#f8c0ff","#00d9e9","#aa00a3","#955ae7","#05cb0d","#b900b1","#550068","#8991bb","#4d6fff"],"mexico-light":["#f8f8f8","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#f79a0e","#538947","#4b8093","#7cafc2","#96609e","#a16946"],mocha:["#3b3228","#534636","#645240","#7e705a","#b8afad","#d0c8c6","#e9e1dd","#f5eeeb","#cb6077","#d28b71","#f4bc87","#beb55b","#7bbda4","#8ab3b5","#a89bb9","#bb9584"],monokai:["#272822","#383830","#49483e","#75715e","#a59f85","#f8f8f2","#f5f4f1","#f9f8f5","#f92672","#fd971f","#f4bf75","#a6e22e","#a1efe4","#66d9ef","#ae81ff","#cc6633"],nord:["#2e3440","#3b4252","#434c5e","#4c566a","#d8dee9","#e5e9f0","#eceff4","#8fbcbb","#88c0d0","#81a1c1","#5e81ac","#bf616a","#d08770","#ebcb8b","#a3be8c","#b48ead"],ocean:["#2b303b","#343d46","#4f5b66","#65737e","#a7adba","#c0c5ce","#dfe1e8","#eff1f5","#bf616a","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967"],"one-light":["#fafafa","#f0f0f1","#e5e5e6","#a0a1a7","#696c77","#383a42","#202227","#090a0b","#ca1243","#d75f00","#c18401","#50a14f","#0184bc","#4078f2","#a626a4","#986801"],onedark:["#282c34","#353b45","#3e4451","#545862","#565c64","#abb2bf","#b6bdca","#c8ccd4","#e06c75","#d19a66","#e5c07b","#98c379","#56b6c2","#61afef","#c678dd","#be5046"],"papercolor-dark":["#1c1c1c","#af005f","#5faf00","#d7af5f","#5fafd7","#808080","#d7875f","#d0d0d0","#585858","#5faf5f","#afd700","#af87d7","#ffaf00","#ff5faf","#00afaf","#5f8787"],"papercolor-light":["#eeeeee","#af0000","#008700","#5f8700","#0087af","#878787","#005f87","#444444","#bcbcbc","#d70000","#d70087","#8700af","#d75f00","#d75f00","#005faf","#005f87"],paraiso:["#2f1e2e","#41323f","#4f424c","#776e71","#8d8687","#a39e9b","#b9b6b0","#e7e9db","#ef6155","#f99b15","#fec418","#48b685","#5bc4bf","#06b6ef","#815ba4","#e96ba8"],pico:["#000000","#1d2b53","#7e2553","#008751","#ab5236","#5f574f","#c2c3c7","#fff1e8","#ff004d","#ffa300","#fff024","#00e756","#29adff","#83769c","#ff77a8","#ffccaa"],pop:["#000000","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#eb008a","#f29333","#f8ca12","#37b349","#00aabb","#0e5a94","#b31e8d","#7a2d00"],railscasts:["#2b2b2b","#272935","#3a4055","#5a647e","#d4cfc9","#e6e1dc","#f4f1ed","#f9f7f3","#da4939","#cc7833","#ffc66d","#a5c261","#519f50","#6d9cbe","#b6b3eb","#bc9458"],seti:["#151718","#282a2b","#3b758c","#41535b","#43a5d5","#d6d6d6","#eeeeee","#ffffff","#cd3f45","#db7b55","#e6cd69","#9fca56","#55dbbe","#55b5db","#a074c4","#8a553f"],"solarized-dark":["#002b36","#073642","#586e75","#657b83","#839496","#93a1a1","#eee8d5","#fdf6e3","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],"solarized-light":["#fdf6e3","#eee8d5","#93a1a1","#839496","#657b83","#586e75","#073642","#002b36","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],spacemacs:["#1f2022","#282828","#444155","#585858","#b8b8b8","#a3a3a3","#e8e8e8","#f8f8f8","#f2241f","#ffa500","#b1951d","#67b11d","#2d9574","#4f97d7","#a31db1","#b03060"],"summerfruit-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"summerfruit-light":["#ffffff","#e0e0e0","#d0d0d0","#b0b0b0","#000000","#101010","#151515","#202020","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"tomorrow-night":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc6666","#de935f","#f0c674","#b5bd68","#8abeb7","#81a2be","#b294bb","#a3685a"],tomorrow:["#ffffff","#e0e0e0","#d6d6d6","#8e908c","#969896","#4d4d4c","#282a2e","#1d1f21","#c82829","#f5871f","#eab700","#718c00","#3e999f","#4271ae","#8959a8","#a3685a"],tube:["#231f20","#1c3f95","#5a5758","#737171","#959ca1","#d9d8d8","#e7e7e8","#ffffff","#ee2e24","#f386a1","#ffd204","#00853e","#85cebc","#009ddc","#98005d","#b06110"],twilight:["#1e1e1e","#323537","#464b50","#5f5a60","#838184","#a7a7a7","#c3c3c3","#ffffff","#cf6a4c","#cda869","#f9ee98","#8f9d6a","#afc4db","#7587a6","#9b859d","#9b703f"],woodland:["#231e18","#302b25","#48413a","#9d8b70","#b4a490","#cabcb1","#d7c8bc","#e4d4c8","#d35c5c","#ca7f32","#e0ac16","#b7ba53","#6eb958","#88a4d3","#bb90e2","#b49368"],zenburn:["#383838","#404040","#606060","#6f6f6f","#808080","#dcdccc","#c0c0c0","#ffffff","#dca3a3","#dfaf8f","#e0cf9f","#5f7f5f","#93e0e3","#7cb8bb","#dc8cc3","#000000"]},Y=Object.keys(A),j=a=>{let e;if(typeof a=="string"){if(A[a]===void 0)throw new Error(`${a} not found`);e=A[a].reduce((t,r,o)=>{let d=`base0${o.toString(16).toUpperCase()}`;return t[d]=r,t},{})}else e=a;return`.container{${Object.keys(e).map(t=>`--${t}: ${e[t]};`).join("")}}`};var J=a=>{try{return!!new URL(a)}catch{return!1}},W=a=>{if(Array.isArray(a))return"array";if(a===null)return"null";if(a instanceof RegExp)return"regexp";let e=typeof a;return e==="number"?isNaN(a)?"NaN":isFinite(a)?Number.isInteger(a)?"int":"float":"Infinity":e==="boolean"?"bool":e==="object"&&a instanceof Date?"date":e};var $=a=>{if(typeof a=="boolean")return a;if(a==="true")return!0;if(a==="false")return!1;throw new Error("should be a boolean!")},O=a=>{if(typeof a=="string")return a;throw new Error("should be a string!")},B=a=>{if(typeof a=="number"&&a>=0)return a;if(typeof a=="string"&&(a=parseFloat(a)),isNaN(a)||a<0)throw new Error("should be a positive number!");return a},P=a=>{if(typeof a=="boolean"||typeof a=="number")return a;if(a==="true")return!0;if(a==="false")return!1;if(typeof a=="string"&&(a=parseFloat(a),!isNaN(a)&&a>=0))return a;throw new Error("should be a boolean or a positive number!")},z=a=>{if(typeof a=="object")return a;if(typeof a=="string")try{return JSON.parse(a)}catch{return a}throw new Error("should be a string or JSON!")};var U=function({key:a,value:e,expanded:t,indent:r,onToggleExpand:o,level:d=0,parentRow:v}){let n=document.createElement("div");this.maxLevel=d;let i=W(e),m=i==="array"||i==="object",x=t===!0||t>d,p,g,b,h;n.className=`data-row ${x?"expanded":""}`,n.dataset.key=a,n.dataset.level=d,d>0&&(n.style.paddingLeft=`${r*5}px`);let f=document.createElement("span");f.className="key-value-wrapper",n.appendChild(f);let w=()=>{n.classList.toggle("expanded"),o&&(n.classList.contains("expanded")?o(d+1):o(d))};if(m){let c=document.createElement("span");c.className="icon-wrapper",f.appendChild(c),p=document.createElement("span"),p.className="expand icon clickable",p.setAttribute("title",x?"Collapse":"Expand"),c.appendChild(p),c.addEventListener("click",()=>w())}if(a!==null&&a!==""){let c=typeof a;b=document.createElement("span"),b.className=`key clickable ${c==="number"?"number":""}`,b.textContent=c==="number"?a:`${a}`,b.addEventListener("click",()=>w()),f.appendChild(b);let s=document.createElement("span");s.classList.add("colon"),s.textContent=":",f.appendChild(s)}if(m){let c=document.createElement("span");c.className="opening-parenthesis",c.textContent=i==="array"?"[":"{",f.appendChild(c);let s=document.createElement("span");s.className="ellipsis clickable",s.textContent="...",s.addEventListener("click",()=>w()),f.appendChild(s);let l=document.createElement("span");l.className="closing-parenthesis",l.textContent=i==="array"?"]":"}",f.appendChild(l);let E=document.createElement("span"),D=i==="array"?e.length:Object.keys(e).length;E.className="items-size",E.textContent=`${D} item${D===1?"":"s"}`,f.appendChild(E),g=[],(i==="array"?e.map((C,k)=>k):Object.keys(e)).forEach(C=>{let k=new U({key:C,value:e[C],expanded:t,indent:r,onToggleExpand:o,level:d+1,parentRow:n});g.push(k),n.appendChild(k.element),this.maxLevel=Math.max(this.maxLevel,k.maxLevel)});let S=document.createElement("span");S.className="closing-parenthesis",S.textContent=i==="array"?"]":"}",n.appendChild(S)}else{let c=null;["nan","NaN","undefined","null"].includes(i)||(c=document.createElement("span"),c.className="type",c.textContent=i.toLowerCase());let s=document.createElement("span");s.className=`value ${i.toLowerCase()}`,h=document.createElement("span"),h.className="value-data",h.textContent=i==="string"?`"${e}"`:e,c&&s.appendChild(c),s.appendChild(h),f.appendChild(s)}let u=document.createElement("span");u.className="copy icon",u.setAttribute("title","Copy to clipboard");let y=document.createElement("span");y.className="icon-wrapper",y.addEventListener("click",()=>{navigator.clipboard.writeText(JSON.stringify(e,null,r))}),y.appendChild(u),f.appendChild(y);let N=c=>{let s=new RegExp(c,"gi"),l=[];b&&l.push(b),h&&l.push(h);let E=!1;l.forEach(D=>{let L=D.textContent;if(D.innerHTML=L,!c||c==="")return;let S=[...L.matchAll(s)].map(I=>I.index),C=[],k=0;S.forEach(I=>{E=!0,C.push(L.slice(k,I)),C.push(`${c}`),k=I+c.length}),C.push(L.slice(k)),D.innerHTML=C.join("")}),E&&!n.classList.contains("expanded")&&(w(),v&&v.classList.add("expanded"))};this.update=({expanded:c,indent:s,searchTerm:l})=>{s!==void 0&&d>0&&(n.style.paddingLeft=`${s*5}px`),c!==void 0&&(x=c===!0||c>d,n.classList.toggle("expanded",x),p&&(p.title=x?"Collapse":"Expand")),l!=null&&N(l),g&&g.forEach(E=>E.update({expanded:c,indent:s,searchTerm:l}))},this.element=n},M=U;var G=function({expanded:a,indent:e,onChange:t,onSearch:r,showDetails:o}){this.indent=e||2,this.expanded=typeof a=="number"?a:2,this.showDetails=o!==!1,this.maxExpandLevel=0;let d,v=document.createElement("div");v.className="toolbar";let n=document.createElement("div");n.className="options",v.appendChild(n);let i=document.createElement("div");i.className="search-wrapper",v.appendChild(i);let m=document.createElement("div");m.className="icon-wrapper clickable",n.appendChild(m);let x=document.createElement("span");x.className="icon refresh",m.onclick=()=>this.refresh(),m.appendChild(x);let p=document.createElement("div");p.className="icon-wrapper clickable",n.appendChild(p);let g=document.createElement("span");g.className="icon plus",p.appendChild(g),p.onclick=()=>{this.expanded{this.expanded>this.maxExpandLevel&&(this.expanded=this.maxExpandLevel),this.expanded>0&&(this.expanded-=1),t({expanded:this.expanded})};let f=document.createElement("div");f.className="icon-wrapper clickable",n.appendChild(f);let w=document.createElement("span");w.className="icon indent",f.onclick=()=>{this.indent+=1,t({indent:this.indent})},f.appendChild(w);let u=document.createElement("div");u.className="icon-wrapper clickable",n.appendChild(u);let y=document.createElement("span");y.className="icon outdent",u.onclick=()=>{this.indent-=1,t({indent:this.indent})},u.appendChild(y);let N=document.createElement("div");N.className="icon-wrapper clickable",n.appendChild(N);let c=document.createElement("span");c.className=`icon info ${this.showDetails?"active":""}`,N.onclick=()=>{c.classList.toggle("active"),this.showDetails=!this.showDetails,t({showDetails:this.showDetails})},N.appendChild(c);let s=document.createElement("span");s.className="icon search",i.appendChild(s),d=document.createElement("input"),d.className="search-input",d.placeholder="Search",d.oninput=l=>{r(l.target.value)},i.appendChild(d),this.refresh=()=>{this.expanded=1,this.indent=2,d&&(d.value=""),t({indent:2,expanded:1}),r("")},this.updateShowDetails=l=>{this.showDetails=l,this.showDetails?c.classList.add("active"):c.classList.remove("active")},this.element=v},F=G;function K(a,e={}){let t=document.createElement("div");t.className="container",a.appendChild(t);let r=null,o=null,d={};this.update=({data:v,expanded:n,indent:i,expandIconType:m,showDataTypes:x,showToolbar:p,showSize:g,showCopy:b})=>{if(v){let f=JSON.stringify(v);d.dataComapreString!==f&&(d.dataComapreString=f,r=new M({key:"",value:v,expanded:n,indent:i,onToggleExpand:w=>{o&&(o.expanded=w),d.expanded=w}}),t.replaceChildren(r.element),d.showToolbar&&o&&(t.prepend(o.element),o.maxExpandLevel=r.maxLevel,o.refresh()))}if(p!==void 0&&d.showToolbar!==p)if(d.showToolbar=p,p)o||(o=new F({expanded:d.expanded,indent:d.indent,onChange:({expanded:f,indent:w,showDetails:u})=>{let y={expanded:f,indent:w};u!==void 0&&(y.showCopy=u,y.showSize=u,y.showDataTypes=u),this.update(y)},onSearch:f=>{r&&r.update({searchTerm:f})}})),r&&(o.maxExpandLevel=r.maxLevel),t.prepend(o.element);else{let f=t.querySelector(".toolbar");f&&f.remove()}let h={};n!==void 0&&d.expanded!==n&&(d.expanded=n,h.expanded=n),i!==void 0&&d.indent!==i&&(d.indent=i,h.indent=i),Object.keys(h).length>0&&r&&r.update(h),b!==void 0&&d.showCopy!==b&&(d.showCopy=b,t.classList.toggle("show-copy",b)),g!==void 0&&d.showSize!==g&&(d.showSize=g,t.classList.toggle("show-size",g),o&&o.updateShowDetails(d.showSize||d.showDataTypes)),x!==void 0&&d.showDataTypes!==x&&(d.showDataTypes=x,t.classList.toggle("show-data-types",x),o&&o.updateShowDetails(d.showSize||d.showDataTypes)),m!==void 0&&d.expandIconType!==m&&(t.classList.add(`expand-icon-${m}`),t.classList.remove(`expand-icon-${d.expandIconType}`),d.expandIconType=m)},this.update(e)}var H=K;var V={indent:2,expanded:1,theme:"default-light",showDataTypes:!0,showToolbar:!1,expandIconType:"arrow",showCopy:!0,showSize:!0,data:null},T=class a extends HTMLElement{#t;#e;#c;#n;constructor(){super(),this.#e={...V},this.#t=document.createElement("style");let e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent=`${R}`,e.appendChild(t),e.appendChild(this.#t),this.theme=this.#e.theme,this.#n=new H(e,this.#e)}static get observedAttributes(){return Object.keys(V).map(e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())}static allowedAttributes=["id"].concat(a.observedAttributes);#d=(...e)=>{console.warn(`JsonViewer${this.id?` (${this.id})`:""}:`,...e)};#a=(e,t,r,o)=>{try{if(t=r(t),o&&!o.includes(t))throw new Error(`should be one of ${o.join(", ")}`);if(this.#e[e]===t)return;this.#e[e]=t,this.#o()}catch(d){this.#d(`Attribute ${e}: ${d.message}`)}};set showDataTypes(e){this.#a("showDataTypes",e,$)}set showToolbar(e){this.#a("showToolbar",e,$)}set indent(e){this.#a("indent",e,B)}set expandIconType(e){this.#a("expandIconType",e,O,["arrow","square","circle"])}set expanded(e){this.#a("expanded",e,P)}set showSize(e){this.#a("showSize",e,$)}set showCopy(e){this.#a("showCopy",e,$)}set theme(e){try{if(e=z(e),this.#e.theme===e&&this.#t.textContent!=="")return;this.#t.textContent=j(e),this.#e.theme=e}catch(t){this.#d(`Attribute theme: ${t.message}`)}}set data(e){try{e=z(e);let t=JSON.stringify(e);if(this.#e.data===t)return;this.#e.data=t,J(e)?fetch(e).then(r=>r.json()).then(r=>{this.#c=r,this.#o()}):(this.#c=e,this.#o())}catch(t){this.#d(`Attribute data: ${t.message}`)}}get options(){return this.#e}connectedCallback(){window.addEventListener("DOMContentLoaded",()=>{let e=this.textContent;this.textContent="",e&&(this.data=e)})}attributeChangedCallback(e,t,r){if(a.allowedAttributes.indexOf(e)>-1){let o=e.replace(/-([a-z])/g,d=>d[1].toUpperCase());this[o]=r}else this.#d(`Attribute ${e} is not supported and will be ignored!`),this.removeAttribute(e)}#o=()=>{this.#n.update({data:this.#c,expanded:this.#e.expanded,expandIconType:this.#e.expandIconType,indent:this.#e.indent,showDataTypes:this.#e.showDataTypes,showToolbar:this.#e.showToolbar,showSize:this.#e.showSize,showCopy:this.#e.showCopy})}};customElements.get("andypf-json-viewer")||customElements.define("andypf-json-viewer",T);var Q=({data:a,...e})=>{let t=q.useRef(null);return q.useEffect(()=>{t.current&&(t.current.data=a)},[a]),q.createElement("andypf-json-viewer",{ref:t,...e})},xe=Q;export{xe as default}; diff --git a/dist/iife/index.js b/dist/iife/index.js deleted file mode 100644 index e0d720e..0000000 --- a/dist/iife/index.js +++ /dev/null @@ -1,28 +0,0 @@ - -/* -MIT License - -Copyright (c) 2025 Andreas Pfau - -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. - -*/ - -(()=>{var q=`.container{background-color:var(--base00);color:var(--base05);padding:10px;letter-spacing:0.5px;font-family:monospace;border-radius:3px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:5px;border-bottom:solid 1px var(--base02)}.toolbar .options,.toolbar .search-wrapper{display:flex;align-items:center}.toolbar .icon-wrapper{height:15px;display:flex;align-items:center;padding:2px 5px}.toolbar .icon-wrapper:hover{background-color:var(--base02);border-radius:3px}.toolbar .icon-wrapper:first-child{margin-left:0px}.toolbar .search.icon{margin-right:5px}.toolbar .search-input{border:none;background:transparent;outline:none;flex:1;font-size:16px;color:var(--base0D)}.match{background-color:yellow;font-weight:bold;color:red}.data-row{padding:3px 0}.data-row .data-row{border-left:solid 1px var(--base02);padding-left:20px;margin-left:5px;display:none}.data-row.expanded>.data-row{display:block}.data-row .key-value-wrapper{display:flex;align-items:center}.data-row .key{color:var(--base07)}.data-row .key.number{color:var(--base0C)}.data-row .colon{color:var(--base07);margin:0 5px 0 0}.clickable{cursor:pointer}.data-row .opening-parenthesis,.data-row .closing-parenthesis{color:var(--base07)}.data-row .ellipsis{color:var(--base09)}.data-row.expanded>.key-value-wrapper .closing-parenthesis,.data-row.expanded>.key-value-wrapper .ellipsis{display:none}.data-row>.closing-parenthesis{display:none}.data-row.expanded>.closing-parenthesis{display:inline-block}.data-row .items-size{margin-left:10px;color:var(--base04);font-style:italic;display:none}.show-size .data-row .items-size{display:inline-block}.data-row .value.bool,.data-row .value.boolean{color:var(--base0E)}.data-row .value.function{color:var(--base0D)}.data-row .value.int,.data-row .value.integer{color:var(--base0F)}.data-row .value.float{color:var(--base0B)}.data-row .value.string{color:var(--base09)}.data-row .value.string .content{overflow-wrap:break-word}.data-row .value.string .content::before{content:open-quote}.data-row .value.string .content::after{content:close-quote}.data-row .value.regexp{color:var(--base0A)}.data-row .value.nan{color:var(--base08)}.data-row .value.null{color:var(--base0A)}.data-row .value.undefined{color:var(--base05)}.data-row .value.date{color:var(--base0D)}.data-row .value.nan,.data-row .value.null,.data-row .value.undefined{border-radius:3px;background-color:var(--base02);padding:1px 2px}.data-row .value .type{font-size:smaller;margin-right:4px;opacity:0.8;display:none}.data-row .value .value-data{word-break:break-all}.show-data-types .data-row .value .type{display:inline-block}.icon-wrapper,.copy-icon-wrapper{display:inline-block;cursor:pointer}.icon{display:block;position:relative}.icon:before,.icon:after{content:"";position:absolute;display:block}.expand.icon{margin-right:5px}.expand-icon-arrow .expand.icon{margin-left:3px;width:0;height:0;border-left:solid 6px var(--base0E);border-top:solid 6px transparent;border-bottom:solid 6px transparent}.expand-icon-arrow .expanded>.key-value-wrapper .expand.icon,.expand-icon-arrow .expanded.icon.expand{transform:rotate(90deg);border-left-color:var(--base0D)}.expand-icon-square .expand.icon,.expand-icon-circle .expand.icon{display:block;width:9px;height:9px;border-radius:2px;border:solid 1px var(--base0E)}.expand-icon-circle .expand.icon{border-radius:50%}.expand-icon-square .expand.icon:before,.expand-icon-circle .expand.icon:before,.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{width:5px;height:1px;background-color:var(--base0E);left:2px;top:4px}.expand-icon-square .expand.icon:after,.expand-icon-circle .expand.icon:after{transform:rotate(90deg)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:after,.expand-icon-square .expand.icon.expanded:after,.expand-icon-circle .expand.icon.expanded:after{display:none}.expand-icon-square .expanded>.key-value-wrapper .expand.icon,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon,.expand-icon-square .expand.icon.expanded,.expand-icon-circle .expanded.expand.icon{border-color:var(--base0D)}.expand-icon-square .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-circle .expanded>.key-value-wrapper .expand.icon:before,.expand-icon-square .expanded.expand.icon:before,.expand-icon-circle .expanded.expand.icon:before{background-color:var(--base0D)}.icon-wrapper{display:inline-block;cursor:pointer}.show-copy .key-value-wrapper:hover .icon.copy{display:block}.copy.icon{margin-left:10px;display:none;width:8px;height:10px;border:solid 1px var(--base0D);border-radius:1px;position:relative;top:4px;transition:0.2s all}.copy.icon:active{transform:scale(1.6);background-color:var(--base0B)}.copy.icon:before{content:"";display:block;left:-3px;top:-3px;width:8px;height:10px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);border-radius:1px 0 0 0}.plus.icon{width:11px;height:1px;background-color:var(--base0D)}.plus.icon:after{content:"";width:11px;height:1px;background-color:var(--base0D);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.minus.icon{width:11px;height:1px;background-color:var(--base0D)}.indent.icon{color:var(--base0D);width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:before{content:"";position:absolute;top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.indent.icon:after{content:"";position:absolute;top:1px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px var(--base0D);border-right:solid 3px transparent}.outdent.icon{color:var(--base0D);margin-left:2px;width:17px;height:8px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:before{content:"";top:2px;right:0;width:11px;height:2px;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D)}.outdent.icon:after{content:"";top:1px;left:-3px;width:0;height:0;border-top:solid 3px transparent;border-bottom:solid 3px transparent;border-left:solid 3px transparent;border-right:solid 3px var(--base0D)}.refresh.icon{color:var(--base0D);width:10px;height:10px;border-radius:50%;border-top:solid 1px var(--base0D);border-bottom:solid 1px var(--base0D);border-left:solid 1px transparent;border-right:solid 1px var(--base0D)}.refresh.icon:before{content:"";left:1px;top:8px;width:3px;height:3px;border-top:solid 1px var(--base0D);border-left:solid 1px var(--base0D);-webkit-transform:rotate(-22.5deg);transform:rotate(-22.5deg)}.info.icon{width:12px;height:11px;border:solid 1px var(--base0D);border-radius:2px}.info.icon::before{top:5px;left:5px;width:2px;height:5px;background-color:var(--base0D)}.info.icon::after{top:2px;left:5px;width:2px;height:2px;background-color:var(--base0D)}.info.icon.active{background-color:var(--base0D)}.info.icon.active::before,.info.icon.active::after{background-color:var(--base02)}.search.icon{color:var(--base0D);width:11px;height:11px;border:solid 1px var(--base0D);border-radius:100%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.search.icon:before{content:"";top:11px;left:5px;height:6px;width:1px;background-color:var(--base0D)} -`;var A={apathy:["#031a16","#0b342d","#184e45","#2b685e","#5f9c92","#81b5ac","#a7cec8","#d2e7e4","#3e9688","#3e7996","#3e4c96","#883e96","#963e4c","#96883e","#4c963e","#3e965b"],ashes:["#1c2023","#393f45","#565e65","#747c84","#adb3ba","#c7ccd1","#dfe2e5","#f3f4f5","#c7ae95","#c7c795","#aec795","#95c7ae","#95aec7","#ae95c7","#c795ae","#c79595"],"atelier-dune-light":["#fefbec","#e8e4cf","#a6a28c","#999580","#7d7a68","#6e6b5e","#292824","#20201d","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],"atelier-dune":["#20201d","#292824","#6e6b5e","#7d7a68","#999580","#a6a28c","#e8e4cf","#fefbec","#d73737","#b65611","#ae9513","#60ac39","#1fad83","#6684e1","#b854d4","#d43552"],atlas:["#002635","#00384d","#517f8d","#6c8b91","#869696","#a1a19a","#e6e6dc","#fafaf8","#ff5a67","#f08e48","#ffcc1b","#7fc06e","#14747e","#5dd7b9","#9a70a4","#c43060"],bespin:["#28211c","#36312e","#5e5d5c","#666666","#797977","#8a8986","#9d9b97","#baae9e","#cf6a4c","#cf7d34","#f9ee98","#54be0d","#afc4db","#5ea6ea","#9b859d","#937121"],"black-metal":["#000000","#121212","#222222","#333333","#999999","#c1c1c1","#999999","#c1c1c1","#5f8787","#aaaaaa","#a06666","#dd9999","#aaaaaa","#888888","#999999","#444444"],brewer:["#0c0d0e","#2e2f30","#515253","#737475","#959697","#b7b8b9","#dadbdc","#fcfdfe","#e31a1c","#e6550d","#dca060","#31a354","#80b1d3","#3182bd","#756bb1","#b15928"],bright:["#000000","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ffffff","#fb0120","#fc6d24","#fda331","#a1c659","#76c7b7","#6fb3d2","#d381c3","#be643c"],brogrammer:["#1f1f1f","#f81118","#2dc55e","#ecba0f","#2a84d2","#4e5ab7","#1081d6","#d6dbe5","#d6dbe5","#de352e","#1dd361","#f3bd09","#1081d6","#5350b9","#0f7ddb","#ffffff"],"brushtrees-dark":["#485867","#5a6d7a","#6d828e","#8299a1","#98afb5","#b0c5c8","#c9dbdc","#e3efef","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],brushtrees:["#e3efef","#c9dbdc","#b0c5c8","#98afb5","#8299a1","#6d828e","#5a6d7a","#485867","#b38686","#d8bba2","#aab386","#87b386","#86b3b3","#868cb3","#b386b2","#b39f9f"],chalk:["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#fb9fb1","#eda987","#ddb26f","#acc267","#12cfc0","#6fc2ef","#e1a3ee","#deaf8f"],circus:["#191919","#202020","#303030","#5f5a60","#505050","#a7a7a7","#808080","#ffffff","#dc657d","#4bb1a7","#c3ba63","#84b97c","#4bb1a7","#639ee4","#b888e2","#b888e2"],"classic-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#f5f5f5","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],"classic-light":["#f5f5f5","#e0e0e0","#d0d0d0","#b0b0b0","#505050","#303030","#202020","#151515","#ac4142","#d28445","#f4bf75","#90a959","#75b5aa","#6a9fb5","#aa759f","#8f5536"],codeschool:["#232c31","#1c3657","#2a343a","#3f4944","#84898c","#9ea7a6","#a7cfa3","#b5d8f6","#2a5491","#43820d","#a03b1e","#237986","#b02f30","#484d79","#c59820","#c98344"],cupcake:["#fbf1f2","#f2f1f4","#d8d5dd","#bfb9c6","#a59daf","#8b8198","#72677e","#585062","#d57e85","#ebb790","#dcb16c","#a3b367","#69a9a7","#7297b9","#bb99b4","#baa58c"],cupertino:["#ffffff","#c0c0c0","#c0c0c0","#808080","#808080","#404040","#404040","#5e5e5e","#c41a15","#eb8500","#826b28","#007400","#318495","#0000ff","#a90d91","#826b28"],darcula:["#2b2b2b","#323232","#323232","#606366","#a4a3a3","#a9b7c6","#ffc66d","#ffffff","#4eade5","#689757","#bbb529","#6a8759","#629755","#9876aa","#cc7832","#808080"],darktooth:["#1d2021","#32302f","#504945","#665c54","#928374","#a89984","#d5c4a1","#fdf4c1","#fb543f","#fe8625","#fac03b","#95c085","#8ba59b","#0d6678","#8f4673","#a87322"],"default-dark":["#181818","#282828","#383838","#585858","#b8b8b8","#d8d8d8","#e8e8e8","#f8f8f8","#ab4642","#dc9656","#f7ca88","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],"default-light":["#ffffff","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#ab4642","#a1b56c","#86c1b9","#7cafc2","#ba8baf","#a16946"],dracula:["#282936","#3a3c4e","#4d4f68","#626483","#62d6e8","#e9e9f4","#f1f2f8","#f7f7fb","#ea51b2","#b45bcf","#00f769","#ebff87","#a1efe4","#62d6e8","#b45bcf","#00f769"],eighties:["#2d2d2d","#393939","#515151","#747369","#a09f93","#d3d0c8","#e8e6df","#f2f0ec","#f2777a","#f99157","#ffcc66","#99cc99","#66cccc","#6699cc","#cc99cc","#d27b53"],embers:["#16130f","#2c2620","#433b32","#5a5047","#8a8075","#a39a90","#beb6ae","#dbd6d1","#826d57","#828257","#6d8257","#57826d","#576d82","#6d5782","#82576d","#825757"],flat:["#2c3e50","#34495e","#7f8c8d","#95a5a6","#bdc3c7","#e0e0e0","#f5f5f5","#ecf0f1","#e74c3c","#e67e22","#f1c40f","#2ecc71","#1abc9c","#3498db","#9b59b6","#be643c"],"fruit-soda":["#f1ecf1","#e0dee0","#d8d5d5","#b5b4b6","#979598","#515151","#474545","#2d2c2c","#fe3e31","#fe6d08","#f7e203","#47f74c","#0f9cfd","#2931df","#611fce","#b16f40"],github:["#ffffff","#f5f5f5","#c8c8fa","#969896","#e8e8e8","#333333","#ffffff","#969896","#ed6a43","#0086b3","#795da3","#183691","#183691","#795da3","#a71d5d","#333333"],"google-dark":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"google-light":["#ffffff","#e0e0e0","#c5c8c6","#b4b7b4","#969896","#373b41","#282a2e","#1d1f21","#cc342b","#f96a38","#fba922","#198844","#3971ed","#3971ed","#a36ac7","#3971ed"],"grayscale-dark":["#101010","#252525","#464646","#525252","#ababab","#b9b9b9","#e3e3e3","#f7f7f7","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],"grayscale-light":["#f7f7f7","#e3e3e3","#b9b9b9","#ababab","#525252","#464646","#252525","#101010","#7c7c7c","#999999","#a0a0a0","#8e8e8e","#868686","#686868","#747474","#5e5e5e"],greenscreen:["#001100","#003300","#005500","#007700","#009900","#00bb00","#00dd00","#00ff00","#007700","#009900","#007700","#00bb00","#005500","#009900","#00bb00","#005500"],"gruvbox-dark-hard":["#1d2021","#3c3836","#504945","#665c54","#bdae93","#d5c4a1","#ebdbb2","#fbf1c7","#fb4934","#fe8019","#fabd2f","#b8bb26","#8ec07c","#83a598","#d3869b","#d65d0e"],"gruvbox-light-hard":["#f9f5d7","#ebdbb2","#d5c4a1","#bdae93","#665c54","#504945","#3c3836","#282828","#9d0006","#af3a03","#b57614","#79740e","#427b58","#076678","#8f3f71","#d65d0e"],"harmonic-dark":["#0b1c2c","#223b54","#405c79","#627e99","#aabcce","#cbd6e2","#e5ebf1","#f7f9fb","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"harmonic-light":["#f7f9fb","#e5ebf1","#cbd6e2","#aabcce","#627e99","#405c79","#223b54","#0b1c2c","#bf8b56","#bfbf56","#8bbf56","#56bf8b","#568bbf","#8b56bf","#bf568b","#bf5656"],"heetch-light":["#feffff","#392551","#7b6d8b","#9c92a8","#ddd6e5","#5a496e","#470546","#190134","#27d9d5","#bdb6c5","#5ba2b6","#f80059","#c33678","#47f9f5","#bd0152","#dedae2"],heetch:["#190134","#392551","#5a496e","#7b6d8b","#9c92a8","#bdb6c5","#dedae2","#feffff","#27d9d5","#5ba2b6","#8f6c97","#c33678","#f80059","#bd0152","#82034c","#470546"],helios:["#1d2021","#383c3e","#53585b","#6f7579","#cdcdcd","#d5d5d5","#dddddd","#e5e5e5","#d72638","#eb8413","#f19d1a","#88b92d","#1ba595","#1e8bac","#be4264","#c85e0d"],hopscotch:["#322931","#433b42","#5c545b","#797379","#989498","#b9b5b8","#d5d3d5","#ffffff","#dd464c","#fd8b19","#fdcc59","#8fc13e","#149b93","#1290bf","#c85e7c","#b33508"],"horizon-dark":["#1c1e26","#232530","#2e303e","#676a8d","#ced1d0","#cbced0","#dcdfe4","#e3e6ee","#e93c58","#e58d7d","#efb993","#efaf8e","#24a8b4","#df5273","#b072d1","#e4a382"],"ia-dark":["#1a1a1a","#222222","#1d414d","#767676","#b8b8b8","#cccccc","#e8e8e8","#f8f8f8","#d88568","#d86868","#b99353","#83a471","#7c9cae","#8eccdd","#b98eb2","#8b6c37"],"ia-light":["#f6f6f6","#dedede","#bde5f2","#898989","#767676","#181818","#e8e8e8","#898989","#9c5a02","#c43e18","#c48218","#38781c","#2d6bb1","#48bac2","#a94598","#8b6c37"],icy:["#021012","#031619","#041f23","#052e34","#064048","#095b67","#0c7c8c","#109cb0","#16c1d9","#b3ebf2","#80deea","#4dd0e1","#26c6da","#00bcd4","#00acc1","#0097a7"],isotope:["#000000","#404040","#606060","#808080","#c0c0c0","#d0d0d0","#e0e0e0","#ffffff","#ff0000","#ff9900","#ff0099","#33ff00","#00ffff","#0066ff","#cc00ff","#3300ff"],macintosh:["#000000","#404040","#404040","#808080","#808080","#c0c0c0","#c0c0c0","#ffffff","#dd0907","#ff6403","#fbf305","#1fb714","#02abea","#0000d3","#4700a5","#90713a"],marrakesh:["#201602","#302e00","#5f5b17","#6c6823","#86813b","#948e48","#ccc37a","#faf0a5","#c35359","#b36144","#a88339","#18974e","#75a738","#477ca1","#8868b3","#b3588e"],materia:["#263238","#2c393f","#37474f","#707880","#c9ccd3","#cdd3de","#d5dbe5","#ffffff","#ec5f67","#ea9560","#ffcc00","#8bd649","#80cbc4","#89ddff","#82aaff","#ec5f67"],"material-lighter":["#fafafa","#e7eaec","#cceae7","#ccd7da","#8796b0","#80cbc4","#80cbc4","#666666","#ff5370","#f76d47","#ffb62c","#91b859","#39adb5","#6182b8","#7c4dff","#e53935"],material:["#263238","#2e3c43","#314549","#546e7a","#b2ccd6","#eeffff","#eeffff","#ffffff","#f07178","#f78c6c","#ffcb6b","#c3e88d","#89ddff","#82aaff","#c792ea","#ff5370"],"mellow-purple":["#1e0528","#1a092d","#331354","#320f55","#873582","#ffeeff","#ffeeff","#f8c0ff","#00d9e9","#aa00a3","#955ae7","#05cb0d","#b900b1","#550068","#8991bb","#4d6fff"],"mexico-light":["#f8f8f8","#e8e8e8","#d8d8d8","#b8b8b8","#585858","#383838","#282828","#181818","#ab4642","#dc9656","#f79a0e","#538947","#4b8093","#7cafc2","#96609e","#a16946"],mocha:["#3b3228","#534636","#645240","#7e705a","#b8afad","#d0c8c6","#e9e1dd","#f5eeeb","#cb6077","#d28b71","#f4bc87","#beb55b","#7bbda4","#8ab3b5","#a89bb9","#bb9584"],monokai:["#272822","#383830","#49483e","#75715e","#a59f85","#f8f8f2","#f5f4f1","#f9f8f5","#f92672","#fd971f","#f4bf75","#a6e22e","#a1efe4","#66d9ef","#ae81ff","#cc6633"],nord:["#2e3440","#3b4252","#434c5e","#4c566a","#d8dee9","#e5e9f0","#eceff4","#8fbcbb","#88c0d0","#81a1c1","#5e81ac","#bf616a","#d08770","#ebcb8b","#a3be8c","#b48ead"],ocean:["#2b303b","#343d46","#4f5b66","#65737e","#a7adba","#c0c5ce","#dfe1e8","#eff1f5","#bf616a","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967"],"one-light":["#fafafa","#f0f0f1","#e5e5e6","#a0a1a7","#696c77","#383a42","#202227","#090a0b","#ca1243","#d75f00","#c18401","#50a14f","#0184bc","#4078f2","#a626a4","#986801"],onedark:["#282c34","#353b45","#3e4451","#545862","#565c64","#abb2bf","#b6bdca","#c8ccd4","#e06c75","#d19a66","#e5c07b","#98c379","#56b6c2","#61afef","#c678dd","#be5046"],"papercolor-dark":["#1c1c1c","#af005f","#5faf00","#d7af5f","#5fafd7","#808080","#d7875f","#d0d0d0","#585858","#5faf5f","#afd700","#af87d7","#ffaf00","#ff5faf","#00afaf","#5f8787"],"papercolor-light":["#eeeeee","#af0000","#008700","#5f8700","#0087af","#878787","#005f87","#444444","#bcbcbc","#d70000","#d70087","#8700af","#d75f00","#d75f00","#005faf","#005f87"],paraiso:["#2f1e2e","#41323f","#4f424c","#776e71","#8d8687","#a39e9b","#b9b6b0","#e7e9db","#ef6155","#f99b15","#fec418","#48b685","#5bc4bf","#06b6ef","#815ba4","#e96ba8"],pico:["#000000","#1d2b53","#7e2553","#008751","#ab5236","#5f574f","#c2c3c7","#fff1e8","#ff004d","#ffa300","#fff024","#00e756","#29adff","#83769c","#ff77a8","#ffccaa"],pop:["#000000","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#eb008a","#f29333","#f8ca12","#37b349","#00aabb","#0e5a94","#b31e8d","#7a2d00"],railscasts:["#2b2b2b","#272935","#3a4055","#5a647e","#d4cfc9","#e6e1dc","#f4f1ed","#f9f7f3","#da4939","#cc7833","#ffc66d","#a5c261","#519f50","#6d9cbe","#b6b3eb","#bc9458"],seti:["#151718","#282a2b","#3b758c","#41535b","#43a5d5","#d6d6d6","#eeeeee","#ffffff","#cd3f45","#db7b55","#e6cd69","#9fca56","#55dbbe","#55b5db","#a074c4","#8a553f"],"solarized-dark":["#002b36","#073642","#586e75","#657b83","#839496","#93a1a1","#eee8d5","#fdf6e3","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],"solarized-light":["#fdf6e3","#eee8d5","#93a1a1","#839496","#657b83","#586e75","#073642","#002b36","#dc322f","#cb4b16","#b58900","#859900","#2aa198","#268bd2","#6c71c4","#d33682"],spacemacs:["#1f2022","#282828","#444155","#585858","#b8b8b8","#a3a3a3","#e8e8e8","#f8f8f8","#f2241f","#ffa500","#b1951d","#67b11d","#2d9574","#4f97d7","#a31db1","#b03060"],"summerfruit-dark":["#151515","#202020","#303030","#505050","#b0b0b0","#d0d0d0","#e0e0e0","#ffffff","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"summerfruit-light":["#ffffff","#e0e0e0","#d0d0d0","#b0b0b0","#000000","#101010","#151515","#202020","#ff0086","#fd8900","#aba800","#00c918","#1faaaa","#3777e6","#ad00a1","#cc6633"],"tomorrow-night":["#1d1f21","#282a2e","#373b41","#969896","#b4b7b4","#c5c8c6","#e0e0e0","#ffffff","#cc6666","#de935f","#f0c674","#b5bd68","#8abeb7","#81a2be","#b294bb","#a3685a"],tomorrow:["#ffffff","#e0e0e0","#d6d6d6","#8e908c","#969896","#4d4d4c","#282a2e","#1d1f21","#c82829","#f5871f","#eab700","#718c00","#3e999f","#4271ae","#8959a8","#a3685a"],tube:["#231f20","#1c3f95","#5a5758","#737171","#959ca1","#d9d8d8","#e7e7e8","#ffffff","#ee2e24","#f386a1","#ffd204","#00853e","#85cebc","#009ddc","#98005d","#b06110"],twilight:["#1e1e1e","#323537","#464b50","#5f5a60","#838184","#a7a7a7","#c3c3c3","#ffffff","#cf6a4c","#cda869","#f9ee98","#8f9d6a","#afc4db","#7587a6","#9b859d","#9b703f"],woodland:["#231e18","#302b25","#48413a","#9d8b70","#b4a490","#cabcb1","#d7c8bc","#e4d4c8","#d35c5c","#ca7f32","#e0ac16","#b7ba53","#6eb958","#88a4d3","#bb90e2","#b49368"],zenburn:["#383838","#404040","#606060","#6f6f6f","#808080","#dcdccc","#c0c0c0","#ffffff","#dca3a3","#dfaf8f","#e0cf9f","#5f7f5f","#93e0e3","#7cb8bb","#dc8cc3","#000000"]},V=Object.keys(A),R=a=>{let e;if(typeof a=="string"){if(A[a]===void 0)throw new Error(`${a} not found`);e=A[a].reduce((d,r,o)=>{let t=`base0${o.toString(16).toUpperCase()}`;return d[t]=r,d},{})}else e=a;return`.container{${Object.keys(e).map(d=>`--${d}: ${e[d]};`).join("")}}`};var j=a=>{try{return!!new URL(a)}catch{return!1}},W=a=>{if(Array.isArray(a))return"array";if(a===null)return"null";if(a instanceof RegExp)return"regexp";let e=typeof a;return e==="number"?isNaN(a)?"NaN":isFinite(a)?Number.isInteger(a)?"int":"float":"Infinity":e==="boolean"?"bool":e==="object"&&a instanceof Date?"date":e};var $=a=>{if(typeof a=="boolean")return a;if(a==="true")return!0;if(a==="false")return!1;throw new Error("should be a boolean!")},J=a=>{if(typeof a=="string")return a;throw new Error("should be a string!")},O=a=>{if(typeof a=="number"&&a>=0)return a;if(typeof a=="string"&&(a=parseFloat(a)),isNaN(a)||a<0)throw new Error("should be a positive number!");return a},B=a=>{if(typeof a=="boolean"||typeof a=="number")return a;if(a==="true")return!0;if(a==="false")return!1;if(typeof a=="string"&&(a=parseFloat(a),!isNaN(a)&&a>=0))return a;throw new Error("should be a boolean or a positive number!")},z=a=>{if(typeof a=="object")return a;if(typeof a=="string")try{return JSON.parse(a)}catch{return a}throw new Error("should be a string or JSON!")};var P=function({key:a,value:e,expanded:d,indent:r,onToggleExpand:o,level:t=0,parentRow:v}){let n=document.createElement("div");this.maxLevel=t;let i=W(e),m=i==="array"||i==="object",x=d===!0||d>t,p,g,b,h;n.className=`data-row ${x?"expanded":""}`,n.dataset.key=a,n.dataset.level=t,t>0&&(n.style.paddingLeft=`${r*5}px`);let f=document.createElement("span");f.className="key-value-wrapper",n.appendChild(f);let w=()=>{n.classList.toggle("expanded"),o&&(n.classList.contains("expanded")?o(t+1):o(t))};if(m){let c=document.createElement("span");c.className="icon-wrapper",f.appendChild(c),p=document.createElement("span"),p.className="expand icon clickable",p.setAttribute("title",x?"Collapse":"Expand"),c.appendChild(p),c.addEventListener("click",()=>w())}if(a!==null&&a!==""){let c=typeof a;b=document.createElement("span"),b.className=`key clickable ${c==="number"?"number":""}`,b.textContent=c==="number"?a:`${a}`,b.addEventListener("click",()=>w()),f.appendChild(b);let s=document.createElement("span");s.classList.add("colon"),s.textContent=":",f.appendChild(s)}if(m){let c=document.createElement("span");c.className="opening-parenthesis",c.textContent=i==="array"?"[":"{",f.appendChild(c);let s=document.createElement("span");s.className="ellipsis clickable",s.textContent="...",s.addEventListener("click",()=>w()),f.appendChild(s);let l=document.createElement("span");l.className="closing-parenthesis",l.textContent=i==="array"?"]":"}",f.appendChild(l);let E=document.createElement("span"),D=i==="array"?e.length:Object.keys(e).length;E.className="items-size",E.textContent=`${D} item${D===1?"":"s"}`,f.appendChild(E),g=[],(i==="array"?e.map((C,k)=>k):Object.keys(e)).forEach(C=>{let k=new P({key:C,value:e[C],expanded:d,indent:r,onToggleExpand:o,level:t+1,parentRow:n});g.push(k),n.appendChild(k.element),this.maxLevel=Math.max(this.maxLevel,k.maxLevel)});let S=document.createElement("span");S.className="closing-parenthesis",S.textContent=i==="array"?"]":"}",n.appendChild(S)}else{let c=null;["nan","NaN","undefined","null"].includes(i)||(c=document.createElement("span"),c.className="type",c.textContent=i.toLowerCase());let s=document.createElement("span");s.className=`value ${i.toLowerCase()}`,h=document.createElement("span"),h.className="value-data",h.textContent=i==="string"?`"${e}"`:e,c&&s.appendChild(c),s.appendChild(h),f.appendChild(s)}let u=document.createElement("span");u.className="copy icon",u.setAttribute("title","Copy to clipboard");let y=document.createElement("span");y.className="icon-wrapper",y.addEventListener("click",()=>{navigator.clipboard.writeText(JSON.stringify(e,null,r))}),y.appendChild(u),f.appendChild(y);let N=c=>{let s=new RegExp(c,"gi"),l=[];b&&l.push(b),h&&l.push(h);let E=!1;l.forEach(D=>{let L=D.textContent;if(D.innerHTML=L,!c||c==="")return;let S=[...L.matchAll(s)].map(I=>I.index),C=[],k=0;S.forEach(I=>{E=!0,C.push(L.slice(k,I)),C.push(`${c}`),k=I+c.length}),C.push(L.slice(k)),D.innerHTML=C.join("")}),E&&!n.classList.contains("expanded")&&(w(),v&&v.classList.add("expanded"))};this.update=({expanded:c,indent:s,searchTerm:l})=>{s!==void 0&&t>0&&(n.style.paddingLeft=`${s*5}px`),c!==void 0&&(x=c===!0||c>t,n.classList.toggle("expanded",x),p&&(p.title=x?"Collapse":"Expand")),l!=null&&N(l),g&&g.forEach(E=>E.update({expanded:c,indent:s,searchTerm:l}))},this.element=n},U=P;var G=function({expanded:a,indent:e,onChange:d,onSearch:r,showDetails:o}){this.indent=e||2,this.expanded=typeof a=="number"?a:2,this.showDetails=o!==!1,this.maxExpandLevel=0;let t,v=document.createElement("div");v.className="toolbar";let n=document.createElement("div");n.className="options",v.appendChild(n);let i=document.createElement("div");i.className="search-wrapper",v.appendChild(i);let m=document.createElement("div");m.className="icon-wrapper clickable",n.appendChild(m);let x=document.createElement("span");x.className="icon refresh",m.onclick=()=>this.refresh(),m.appendChild(x);let p=document.createElement("div");p.className="icon-wrapper clickable",n.appendChild(p);let g=document.createElement("span");g.className="icon plus",p.appendChild(g),p.onclick=()=>{this.expanded{this.expanded>this.maxExpandLevel&&(this.expanded=this.maxExpandLevel),this.expanded>0&&(this.expanded-=1),d({expanded:this.expanded})};let f=document.createElement("div");f.className="icon-wrapper clickable",n.appendChild(f);let w=document.createElement("span");w.className="icon indent",f.onclick=()=>{this.indent+=1,d({indent:this.indent})},f.appendChild(w);let u=document.createElement("div");u.className="icon-wrapper clickable",n.appendChild(u);let y=document.createElement("span");y.className="icon outdent",u.onclick=()=>{this.indent-=1,d({indent:this.indent})},u.appendChild(y);let N=document.createElement("div");N.className="icon-wrapper clickable",n.appendChild(N);let c=document.createElement("span");c.className=`icon info ${this.showDetails?"active":""}`,N.onclick=()=>{c.classList.toggle("active"),this.showDetails=!this.showDetails,d({showDetails:this.showDetails})},N.appendChild(c);let s=document.createElement("span");s.className="icon search",i.appendChild(s),t=document.createElement("input"),t.className="search-input",t.placeholder="Search",t.oninput=l=>{r(l.target.value)},i.appendChild(t),this.refresh=()=>{this.expanded=1,this.indent=2,t&&(t.value=""),d({indent:2,expanded:1}),r("")},this.updateShowDetails=l=>{this.showDetails=l,this.showDetails?c.classList.add("active"):c.classList.remove("active")},this.element=v},M=G;function K(a,e={}){let d=document.createElement("div");d.className="container",a.appendChild(d);let r=null,o=null,t={};this.update=({data:v,expanded:n,indent:i,expandIconType:m,showDataTypes:x,showToolbar:p,showSize:g,showCopy:b})=>{if(v){let f=JSON.stringify(v);t.dataComapreString!==f&&(t.dataComapreString=f,r=new U({key:"",value:v,expanded:n,indent:i,onToggleExpand:w=>{o&&(o.expanded=w),t.expanded=w}}),d.replaceChildren(r.element),t.showToolbar&&o&&(d.prepend(o.element),o.maxExpandLevel=r.maxLevel,o.refresh()))}if(p!==void 0&&t.showToolbar!==p)if(t.showToolbar=p,p)o||(o=new M({expanded:t.expanded,indent:t.indent,onChange:({expanded:f,indent:w,showDetails:u})=>{let y={expanded:f,indent:w};u!==void 0&&(y.showCopy=u,y.showSize=u,y.showDataTypes=u),this.update(y)},onSearch:f=>{r&&r.update({searchTerm:f})}})),r&&(o.maxExpandLevel=r.maxLevel),d.prepend(o.element);else{let f=d.querySelector(".toolbar");f&&f.remove()}let h={};n!==void 0&&t.expanded!==n&&(t.expanded=n,h.expanded=n),i!==void 0&&t.indent!==i&&(t.indent=i,h.indent=i),Object.keys(h).length>0&&r&&r.update(h),b!==void 0&&t.showCopy!==b&&(t.showCopy=b,d.classList.toggle("show-copy",b)),g!==void 0&&t.showSize!==g&&(t.showSize=g,d.classList.toggle("show-size",g),o&&o.updateShowDetails(t.showSize||t.showDataTypes)),x!==void 0&&t.showDataTypes!==x&&(t.showDataTypes=x,d.classList.toggle("show-data-types",x),o&&o.updateShowDetails(t.showSize||t.showDataTypes)),m!==void 0&&t.expandIconType!==m&&(d.classList.add(`expand-icon-${m}`),d.classList.remove(`expand-icon-${t.expandIconType}`),t.expandIconType=m)},this.update(e)}var F=K;var H={indent:2,expanded:1,theme:"default-light",showDataTypes:!0,showToolbar:!1,expandIconType:"arrow",showCopy:!0,showSize:!0,data:null},T=class a extends HTMLElement{#t;#e;#c;#n;constructor(){super(),this.#e={...H},this.#t=document.createElement("style");let e=this.attachShadow({mode:"open"}),d=document.createElement("style");d.textContent=`${q}`,e.appendChild(d),e.appendChild(this.#t),this.theme=this.#e.theme,this.#n=new F(e,this.#e)}static get observedAttributes(){return Object.keys(H).map(e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase())}static allowedAttributes=["id"].concat(a.observedAttributes);#d=(...e)=>{console.warn(`JsonViewer${this.id?` (${this.id})`:""}:`,...e)};#a=(e,d,r,o)=>{try{if(d=r(d),o&&!o.includes(d))throw new Error(`should be one of ${o.join(", ")}`);if(this.#e[e]===d)return;this.#e[e]=d,this.#o()}catch(t){this.#d(`Attribute ${e}: ${t.message}`)}};set showDataTypes(e){this.#a("showDataTypes",e,$)}set showToolbar(e){this.#a("showToolbar",e,$)}set indent(e){this.#a("indent",e,O)}set expandIconType(e){this.#a("expandIconType",e,J,["arrow","square","circle"])}set expanded(e){this.#a("expanded",e,B)}set showSize(e){this.#a("showSize",e,$)}set showCopy(e){this.#a("showCopy",e,$)}set theme(e){try{if(e=z(e),this.#e.theme===e&&this.#t.textContent!=="")return;this.#t.textContent=R(e),this.#e.theme=e}catch(d){this.#d(`Attribute theme: ${d.message}`)}}set data(e){try{e=z(e);let d=JSON.stringify(e);if(this.#e.data===d)return;this.#e.data=d,j(e)?fetch(e).then(r=>r.json()).then(r=>{this.#c=r,this.#o()}):(this.#c=e,this.#o())}catch(d){this.#d(`Attribute data: ${d.message}`)}}get options(){return this.#e}connectedCallback(){window.addEventListener("DOMContentLoaded",()=>{let e=this.textContent;this.textContent="",e&&(this.data=e)})}attributeChangedCallback(e,d,r){if(a.allowedAttributes.indexOf(e)>-1){let o=e.replace(/-([a-z])/g,t=>t[1].toUpperCase());this[o]=r}else this.#d(`Attribute ${e} is not supported and will be ignored!`),this.removeAttribute(e)}#o=()=>{this.#n.update({data:this.#c,expanded:this.#e.expanded,expandIconType:this.#e.expandIconType,indent:this.#e.indent,showDataTypes:this.#e.showDataTypes,showToolbar:this.#e.showToolbar,showSize:this.#e.showSize,showCopy:this.#e.showCopy})}};customElements.get("andypf-json-viewer")||customElements.define("andypf-json-viewer",T);})(); diff --git a/eslint.config.mjs b/eslint.config.mjs index 113fa4c..f1162d1 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,41 +1,13 @@ -import globals from "globals" import pluginJs from "@eslint/js" -import pluginReact from "eslint-plugin-react" -import jest from "eslint-plugin-jest" +import typescript from "@typescript-eslint/eslint-plugin" export default [ - { files: ["**/*.{js,mjs,cjs,jsx}"] }, { - settings: { - react: { - version: "detect", - }, + files: ["**/*.{ts,tsx}"], + plugins: { + "@typescript-eslint": typescript, }, - languageOptions: { - globals: { - ...globals.browser, - ...globals.node, - }, - parserOptions: { ecmaFeatures: { jsx: true } }, - }, - }, - pluginJs.configs.recommended, - pluginReact.configs.flat.recommended, - // ######### JEST ########## - // { - // files: ["**/*.test.js", "**/*.config.js", "__tests__/**", "test/__mocks__/**"], - // languageOptions: { sourceType: "commonjs" }, - // }, - { - files: ["__tests__/**", "**/*.test.js", "__mocks__/**"], - ...jest.configs["flat/recommended"], - rules: { - ...jest.configs["flat/recommended"].rules, - "jest/prefer-expect-assertions": "off", - "jest/no-disabled-tests": "off", - }, - }, - { - ignores: ["**/dist/*", "demo/build/*", "coverage/*"], + + ignores: ["**/dist/*"], }, ] diff --git a/package.json b/package.json index 144ae3b..34969d8 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,9 @@ "type:check": "tsc --noEmit" }, "devDependencies": { + "@eslint/js": "^9.32.0", "@types/node": "^22.14.1", + "@typescript-eslint/eslint-plugin": "^8.38.0", "jsdom": "^26.1.0", "typescript": "~5.7.2", "vite": "^6.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5299f89..105395c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,9 +12,15 @@ importers: specifier: ^9.32.0 version: 9.32.0 devDependencies: + '@eslint/js': + specifier: ^9.32.0 + version: 9.32.0 '@types/node': specifier: ^22.14.1 version: 22.14.1 + '@typescript-eslint/eslint-plugin': + specifier: ^8.38.0 + version: 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0)(typescript@5.7.3))(eslint@9.32.0)(typescript@5.7.3) jsdom: specifier: ^26.1.0 version: 26.1.0 @@ -272,6 +278,18 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + '@rollup/rollup-android-arm-eabi@4.40.0': resolution: {integrity: sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==} cpu: [arm] @@ -381,6 +399,65 @@ packages: '@types/node@22.14.1': resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} + '@typescript-eslint/eslint-plugin@8.38.0': + resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.38.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@8.38.0': + resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/project-service@8.38.0': + resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.38.0': + resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.38.0': + resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@8.38.0': + resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/types@8.38.0': + resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.38.0': + resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@8.38.0': + resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/visitor-keys@8.38.0': + resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitest/expect@3.1.1': resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==} @@ -444,6 +521,13 @@ packages: brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -573,12 +657,19 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fdir@6.4.3: resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} peerDependencies: @@ -591,6 +682,10 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -607,6 +702,10 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} @@ -615,6 +714,9 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -639,6 +741,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -655,6 +761,10 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -706,9 +816,21 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -760,6 +882,10 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + picomatch@4.0.2: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} @@ -776,10 +902,17 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rollup@4.40.0: resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -788,6 +921,9 @@ packages: rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -795,6 +931,11 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -856,6 +997,10 @@ packages: resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} hasBin: true + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + tough-cookie@5.1.2: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} @@ -864,6 +1009,12 @@ packages: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -1173,6 +1324,18 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + '@rollup/rollup-android-arm-eabi@4.40.0': optional: true @@ -1241,6 +1404,99 @@ snapshots: dependencies: undici-types: 6.21.0 + '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0)(typescript@5.7.3))(eslint@9.32.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.38.0(eslint@9.32.0)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.38.0 + eslint: 9.32.0 + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.38.0(eslint@9.32.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.38.0 + debug: 4.4.0 + eslint: 9.32.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.38.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.7.3) + '@typescript-eslint/types': 8.38.0 + debug: 4.4.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.38.0': + dependencies: + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/visitor-keys': 8.38.0 + + '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.7.3)': + dependencies: + typescript: 5.7.3 + + '@typescript-eslint/type-utils@8.38.0(eslint@9.32.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.32.0)(typescript@5.7.3) + debug: 4.4.0 + eslint: 9.32.0 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.38.0': {} + + '@typescript-eslint/typescript-estree@8.38.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/project-service': 8.38.0(typescript@5.7.3) + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.7.3) + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/visitor-keys': 8.38.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.38.0(eslint@9.32.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0) + '@typescript-eslint/scope-manager': 8.38.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.7.3) + eslint: 9.32.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.38.0': + dependencies: + '@typescript-eslint/types': 8.38.0 + eslint-visitor-keys: 4.2.1 + '@vitest/expect@3.1.1': dependencies: '@vitest/spy': 3.1.1 @@ -1311,6 +1567,14 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + cac@6.7.14: {} callsites@3.1.0: {} @@ -1473,10 +1737,22 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + fdir@6.4.3(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -1485,6 +1761,10 @@ snapshots: dependencies: flat-cache: 4.0.1 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -1500,12 +1780,18 @@ snapshots: fsevents@2.3.3: optional: true + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 globals@14.0.0: {} + graphemer@1.4.0: {} + has-flag@4.0.0: {} html-encoding-sniffer@4.0.0: @@ -1532,6 +1818,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.5: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -1545,6 +1833,8 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-number@7.0.0: {} + is-potential-custom-element-name@1.0.1: {} isexe@2.0.0: {} @@ -1609,10 +1899,21 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + ms@2.1.3: {} nanoid@3.3.11: {} @@ -1656,6 +1957,8 @@ snapshots: picocolors@1.1.1: {} + picomatch@2.3.1: {} + picomatch@4.0.2: {} postcss@8.5.3: @@ -1668,8 +1971,12 @@ snapshots: punycode@2.3.1: {} + queue-microtask@1.2.3: {} + resolve-from@4.0.0: {} + reusify@1.1.0: {} + rollup@4.40.0: dependencies: '@types/estree': 1.0.7 @@ -1698,12 +2005,18 @@ snapshots: rrweb-cssom@0.8.0: {} + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + safer-buffer@2.1.2: {} saxes@6.0.0: dependencies: xmlchars: 2.2.0 + semver@7.7.2: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -1747,6 +2060,10 @@ snapshots: dependencies: tldts-core: 6.1.86 + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + tough-cookie@5.1.2: dependencies: tldts: 6.1.86 @@ -1755,6 +2072,10 @@ snapshots: dependencies: punycode: 2.3.1 + ts-api-utils@2.1.0(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 From d4f5d725a8b27fd7dffdc8fc5ffe1c7c6a3349a5 Mon Sep 17 00:00:00 2001 From: Andreas Pfau Date: Wed, 30 Jul 2025 17:20:55 +0200 Subject: [PATCH 5/9] chore(core): delete old dist folder --- eslint.config.mjs | 25 ++++++++- package.json | 3 + pnpm-lock.yaml | 22 ++++++++ src/package/components/json-viewer.ts | 74 +++---------------------- src/package/components/toolbar.ts | 80 +++++++++++++-------------- src/package/utils/data-parser.ts | 1 + 6 files changed, 94 insertions(+), 111 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index f1162d1..cab3985 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,13 +1,32 @@ -import pluginJs from "@eslint/js" +import js from "@eslint/js" import typescript from "@typescript-eslint/eslint-plugin" +import typescriptParser from "@typescript-eslint/parser" +import globals from "globals" export default [ + js.configs.recommended, { - files: ["**/*.{ts,tsx}"], + files: ["**/*.{ts,js}"], + languageOptions: { + parser: typescriptParser, + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + }, + globals: { + // Web Components globals + ...globals.browser, + customElements: "readonly", + HTMLElement: "readonly", + CustomEvent: "readonly", + ShadowRoot: "readonly", + }, + }, plugins: { "@typescript-eslint": typescript, }, - + }, + { ignores: ["**/dist/*"], }, ] diff --git a/package.json b/package.json index 34969d8..78a8893 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,10 @@ "@eslint/js": "^9.32.0", "@types/node": "^22.14.1", "@typescript-eslint/eslint-plugin": "^8.38.0", + "@typescript-eslint/parser": "^8.38.0", + "globals": "^16.3.0", "jsdom": "^26.1.0", + "prettier": "^3.6.2", "typescript": "~5.7.2", "vite": "^6.3.1", "vitest": "^3.1.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 105395c..c0b6deb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,9 +21,18 @@ importers: '@typescript-eslint/eslint-plugin': specifier: ^8.38.0 version: 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0)(typescript@5.7.3))(eslint@9.32.0)(typescript@5.7.3) + '@typescript-eslint/parser': + specifier: ^8.38.0 + version: 8.38.0(eslint@9.32.0)(typescript@5.7.3) + globals: + specifier: ^16.3.0 + version: 16.3.0 jsdom: specifier: ^26.1.0 version: 26.1.0 + prettier: + specifier: ^3.6.2 + version: 3.6.2 typescript: specifier: ~5.7.2 version: 5.7.3 @@ -714,6 +723,10 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@16.3.0: + resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} + engines: {node: '>=18'} + graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -898,6 +911,11 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + engines: {node: '>=14'} + hasBin: true + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -1790,6 +1808,8 @@ snapshots: globals@14.0.0: {} + globals@16.3.0: {} + graphemer@1.4.0: {} has-flag@4.0.0: {} @@ -1969,6 +1989,8 @@ snapshots: prelude-ls@1.2.1: {} + prettier@3.6.2: {} + punycode@2.3.1: {} queue-microtask@1.2.3: {} diff --git a/src/package/components/json-viewer.ts b/src/package/components/json-viewer.ts index 038d293..4d2ca85 100644 --- a/src/package/components/json-viewer.ts +++ b/src/package/components/json-viewer.ts @@ -36,9 +36,7 @@ export class JsonViewer extends HTMLElement { // Boolean attributes get expanded(): boolean { - return ( - this.hasAttribute("expanded") && this.getAttribute("expanded") !== "false" - ) + return this.hasAttribute("expanded") && this.getAttribute("expanded") !== "false" } set expanded(value: boolean) { if (value) { @@ -49,59 +47,41 @@ export class JsonViewer extends HTMLElement { } get showDataTypes(): boolean { - return ( - this.hasAttribute("show-data-types") && - this.getAttribute("show-data-types") !== "false" - ) + return this.hasAttribute("show-data-types") && this.getAttribute("show-data-types") !== "false" } set showDataTypes(value: boolean) { this.setAttribute("show-data-types", value.toString()) } get showLoadingStatus(): boolean { - return ( - this.hasAttribute("show-loading-status") && - this.getAttribute("show-loading-status") !== "false" - ) + return this.hasAttribute("show-loading-status") && this.getAttribute("show-loading-status") !== "false" } set showLoadingStatus(value: boolean) { this.setAttribute("show-loading-status", value.toString()) } get showErrors(): boolean { - return ( - this.hasAttribute("show-errors") && - this.getAttribute("show-errors") !== "false" - ) + return this.hasAttribute("show-errors") && this.getAttribute("show-errors") !== "false" } set showErrors(value: boolean) { this.setAttribute("show-errors", value.toString()) } get showToolbar(): boolean { - return ( - this.hasAttribute("show-toolbar") && - this.getAttribute("show-toolbar") !== "false" - ) + return this.hasAttribute("show-toolbar") && this.getAttribute("show-toolbar") !== "false" } set showToolbar(value: boolean) { this.setAttribute("show-toolbar", value.toString()) } get showCopy(): boolean { - return ( - this.hasAttribute("show-copy") && - this.getAttribute("show-copy") !== "false" - ) + return this.hasAttribute("show-copy") && this.getAttribute("show-copy") !== "false" } set showCopy(value: boolean) { this.setAttribute("show-copy", value.toString()) } get showSize(): boolean { - return ( - this.hasAttribute("show-size") && - this.getAttribute("show-size") !== "false" - ) + return this.hasAttribute("show-size") && this.getAttribute("show-size") !== "false" } set showSize(value: boolean) { this.setAttribute("show-size", value.toString()) @@ -150,11 +130,7 @@ export class JsonViewer extends HTMLElement { return content || "" } - attributeChangedCallback( - _name: string, - oldValue: string | null, - newValue: string | null - ) { + attributeChangedCallback(_name: string, oldValue: string | null, newValue: string | null) { if (oldValue !== newValue) { this.render() } @@ -211,9 +187,7 @@ export class JsonViewer extends HTMLElement { Invalid JSON data
Raw data: -
${
-              this.data
-            }
+
${this.data}

Error: ${result.error || "Unknown error"}

@@ -223,35 +197,6 @@ export class JsonViewer extends HTMLElement { const parsedData = result.data - if (this.showToolbar) { - if (!this.toolbar) { - this.toolbar = new Toolbar() - this.toolbar.onChange(({ key, value }) => { - if (key === "indent") { - this.indent = value as number - } else if (key === "expanded") { - this.expanded = value as boolean - } else if (key === "showDataTypes") { - this.showDataTypes = value as boolean - } else if (key === "expandIconType") { - this.expandIconType = value as string - } else if (key === "showCopy") { - this.showCopy = value as boolean - } else if (key === "showSize") { - this.showSize = value as boolean - } - }) - } - this.toolbar.updateProps({ - indent: this.indent, - expanded: this.expanded, - showDataTypes: this.showDataTypes, - expandIconType: this.expandIconType, - showCopy: this.showCopy, - showSize: this.showSize, - }) - } - this.shadowRoot.innerHTML = `
- ${this.showToolbar ? this.toolbar?.render() : ""} ${this.renderJson(parsedData)}
` diff --git a/src/package/components/toolbar.ts b/src/package/components/toolbar.ts index 67057fe..c375314 100644 --- a/src/package/components/toolbar.ts +++ b/src/package/components/toolbar.ts @@ -1,50 +1,44 @@ -interface ToolbarProps { - indent: number - expanded: boolean - showDataTypes: boolean - expandIconType: string - showCopy: boolean - showSize: boolean -} +// interface ToolbarProps { +// indent: number +// expanded: boolean +// showDataTypes: boolean +// expandIconType: string +// showCopy: boolean +// showSize: boolean +// } + +// type OnChangeCallbackParams = Record -type OnChangeCallback = ({ - key, - value, -}: { - key: keyof ToolbarProps - value: number | boolean | string -}) => void +// type OnChangeCallback = (change: OnChangeCallbackParams) => void export class Toolbar { - private props: ToolbarProps | null = null - private onChangeCallback: OnChangeCallback | null = null + // private props: ToolbarProps | null = null + // //private onChangeCallback: OnChangeCallback | null = null constructor() {} - public updateProps(props: ToolbarProps): void { - this.props = props - this.render() - } - - public onChange(callback: OnChangeCallback): void { - this.onChangeCallback = callback - } - - public render(): string | null { - if (!this.props) return null - - // Render the toolbar based on the current props - return ` -
- Indent - - Data Types: ${this.props.showDataTypes ? "On" : "Off"} - Icon Type: ${this.props.expandIconType} - - Size: ${this.props.showSize ? "Visible" : "Hidden"} -
- ` - } + // public updateProps(props: ToolbarProps): void { + // this.props = props + // this.render() + // } + + // public onChange(callback: OnChangeCallback): void { + // //this.onChangeCallback = callback + // } + + // public render(): string | null { + // if (!this.props) return null + + // // Render the toolbar based on the current props + // return ` + //
+ // Indent + // + // Data Types: ${this.props.showDataTypes ? "On" : "Off"} + // Icon Type: ${this.props.expandIconType} + // + // Size: ${this.props.showSize ? "Visible" : "Hidden"} + //
+ // ` + // } } diff --git a/src/package/utils/data-parser.ts b/src/package/utils/data-parser.ts index f0d76d3..41cfaca 100644 --- a/src/package/utils/data-parser.ts +++ b/src/package/utils/data-parser.ts @@ -72,6 +72,7 @@ export class DataParser { const data = JSON.parse(this.data) return { data, source: "json" } } catch (error) { + console.log("JSON parsing error:", error) return { data: null, source: "json", From 82ba91a496819f796395b203c72ee4071770b7ac Mon Sep 17 00:00:00 2001 From: Andreas Pfau Date: Fri, 1 Aug 2025 16:37:53 +0200 Subject: [PATCH 6/9] chore(core): finalize toolbar --- package.json | 1 + pnpm-lock.yaml | 72 ++ src/demo/index.html | 21 +- src/package/assets/styles.css | 555 ++++++++++ src/package/assets/themes.ts | 1451 +++++++++++++++++++++++++ src/package/components/json-viewer.ts | 355 ++++-- src/package/components/toolbar.ts | 402 ++++++- src/package/styles.css | 39 - tsconfig.json | 3 +- 9 files changed, 2742 insertions(+), 157 deletions(-) create mode 100644 src/package/assets/styles.css create mode 100644 src/package/assets/themes.ts delete mode 100644 src/package/styles.css diff --git a/package.json b/package.json index 78a8893..a10b761 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ }, "devDependencies": { "@eslint/js": "^9.32.0", + "@testing-library/jest-dom": "^6.6.4", "@types/node": "^22.14.1", "@typescript-eslint/eslint-plugin": "^8.38.0", "@typescript-eslint/parser": "^8.38.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0b6deb..18e03eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,6 +15,9 @@ importers: '@eslint/js': specifier: ^9.32.0 version: 9.32.0 + '@testing-library/jest-dom': + specifier: ^6.6.4 + version: 6.6.4 '@types/node': specifier: ^22.14.1 version: 22.14.1 @@ -45,6 +48,9 @@ importers: packages: + '@adobe/css-tools@4.4.3': + resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} + '@asamuzakjp/css-color@3.1.4': resolution: {integrity: sha512-SeuBV4rnjpFNjI8HSgKUwteuFdkHwkboq31HWzznuqgySQir+jSTczoWVVL4jvOjKjuH80fMDG0Fvg1Sb+OJsA==} @@ -399,6 +405,10 @@ packages: cpu: [x64] os: [win32] + '@testing-library/jest-dom@6.6.4': + resolution: {integrity: sha512-xDXgLjVunjHqczScfkCJ9iyjdNOVHvvCdqHSSxwM9L0l/wHkTRum67SDc020uAlCoqktJplgO2AAQeLP1wgqDQ==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} @@ -520,6 +530,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -571,6 +585,9 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + cssstyle@4.3.1: resolution: {integrity: sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==} engines: {node: '>=18'} @@ -598,6 +615,9 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -766,6 +786,10 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -820,6 +844,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + loupe@3.1.3: resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} @@ -837,6 +864,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -923,6 +954,10 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -975,6 +1010,10 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -1180,6 +1219,8 @@ packages: snapshots: + '@adobe/css-tools@4.4.3': {} + '@asamuzakjp/css-color@3.1.4': dependencies: '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) @@ -1414,6 +1455,16 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.40.0': optional: true + '@testing-library/jest-dom@6.6.4': + dependencies: + '@adobe/css-tools': 4.4.3 + aria-query: 5.3.2 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + picocolors: 1.1.1 + redent: 3.0.0 + '@types/estree@1.0.7': {} '@types/json-schema@7.0.15': {} @@ -1576,6 +1627,8 @@ snapshots: argparse@2.0.1: {} + aria-query@5.3.2: {} + assertion-error@2.0.1: {} balanced-match@1.0.2: {} @@ -1626,6 +1679,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css.escape@1.5.1: {} + cssstyle@4.3.1: dependencies: '@asamuzakjp/css-color': 3.1.4 @@ -1646,6 +1701,8 @@ snapshots: deep-is@0.1.4: {} + dom-accessibility-api@0.6.3: {} + entities@4.5.0: {} es-module-lexer@1.6.0: {} @@ -1847,6 +1904,8 @@ snapshots: imurmurhash@0.1.4: {} + indent-string@4.0.0: {} + is-extglob@2.1.1: {} is-glob@4.0.3: @@ -1911,6 +1970,8 @@ snapshots: lodash.merge@4.6.2: {} + lodash@4.17.21: {} + loupe@3.1.3: {} lru-cache@10.4.3: {} @@ -1926,6 +1987,8 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + min-indent@1.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -1995,6 +2058,11 @@ snapshots: queue-microtask@1.2.3: {} + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + resolve-from@4.0.0: {} reusify@1.1.0: {} @@ -2053,6 +2121,10 @@ snapshots: std-env@3.9.0: {} + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + strip-json-comments@3.1.1: {} supports-color@7.2.0: diff --git a/src/demo/index.html b/src/demo/index.html index 0636456..25cba6c 100644 --- a/src/demo/index.html +++ b/src/demo/index.html @@ -51,8 +51,23 @@

Interactive Example

placeholder="Enter JSON here..."> - {"key":"value"} - + + {"test":"ètest"} + + - - - -

JSON Viewer Web Component Demo

- + + + + + + + +

JSON Viewer Web Component Demo

-
-

Interactive Example

-
- - - -
- +

Interactive Example

+
+ + + +
+ - {"test":"ètest"} - - -
- - - \ No newline at end of file + const indentInput = document.getElementById("indent-input") + indentInput.addEventListener("input", () => { + const interactiveDemo = document.getElementById("interactive-demo") + const indentValue = parseInt(indentInput.value, 10) + if (!isNaN(indentValue) && indentValue >= 1 && indentValue <= 10) { + interactiveDemo.indent = indentValue + } else { + console.warn("Indent value must be between 1 and 10") + } + }) + + + diff --git a/src/package/assets/styles.css b/src/package/assets/styles.css index 66304ea..32cc20e 100644 --- a/src/package/assets/styles.css +++ b/src/package/assets/styles.css @@ -35,11 +35,10 @@ align-items: center; color: var(--base0D); padding: 0; - border:none; + border: none; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--base0D) 30%, transparent); } - .toolbar .icon.copy { display: block; margin-bottom: 6px; @@ -546,10 +545,12 @@ animation-delay: 0s; } @keyframes spinner-pulse { - 0%, 80%, 100% { + 0%, + 80%, + 100% { transform: scale(0); } 40% { - transform: scale(1.0); + transform: scale(1); } -} \ No newline at end of file +} diff --git a/src/package/components/toolbar.ts b/src/package/components/toolbar.ts index e6e6df1..b007242 100644 --- a/src/package/components/toolbar.ts +++ b/src/package/components/toolbar.ts @@ -20,6 +20,10 @@ export interface ToolbarState { theme: string } +// eslint-disable-next-line no-unused-vars +export type OnStateChangeCallback = (changes: Partial) => void +export type OnCopyAllCallback = () => void + export class Toolbar { private config: ToolbarConfig = { showCopy: true, @@ -39,8 +43,9 @@ export class Toolbar { dataSize: 0, theme: "default-ligth", } - private onStateChange: (changes: Partial) => void - private onCopyAll?: () => void + + private onStateChange: OnStateChangeCallback + private onCopyAll?: OnCopyAllCallback private container: HTMLDivElement private leftGroup: HTMLDivElement private rightGroup: HTMLDivElement @@ -57,8 +62,8 @@ export class Toolbar { parent: HTMLElement config: Partial initialState: Partial - onStateChange: (changes: Partial) => void - onCopyAll?: () => void + onStateChange: OnStateChangeCallback + onCopyAll?: OnCopyAllCallback }) { this.onStateChange = onStateChange this.onCopyAll = onCopyAll From d677f90b1d079ed2d4aa97a8b06f33dd3583374f Mon Sep 17 00:00:00 2001 From: Andreas Pfau Date: Fri, 1 Aug 2025 16:49:35 +0200 Subject: [PATCH 8/9] chore(core): formatting --- .npmignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.npmignore b/.npmignore index 7625068..7395734 100644 --- a/.npmignore +++ b/.npmignore @@ -1,4 +1,4 @@ src tsconfig.js tsconfig.types.mjs -vite.config.js \ No newline at end of file +vite.config.js From 3a09050db101dff3cd9b67499f9b80f73441bbe5 Mon Sep 17 00:00:00 2001 From: Andreas Pfau Date: Fri, 24 Oct 2025 16:50:41 +0200 Subject: [PATCH 9/9] feat(renderer): implement renderer --- src/demo/index.html | 79 ++++- src/package/assets/styles.css | 2 + src/package/assets/themes.ts | 6 +- src/package/components/json-viewer.ts | 471 ++++++++++++++++++++------ src/package/components/toolbar.ts | 18 +- src/package/index.ts | 5 +- src/package/renderer/container.ts | 131 +++++++ src/package/renderer/data-helpers.ts | 94 +++++ src/package/renderer/data-row.ts | 293 ++++++++++++++++ src/package/renderer/types.d.ts | 39 +++ 10 files changed, 998 insertions(+), 140 deletions(-) create mode 100644 src/package/renderer/container.ts create mode 100644 src/package/renderer/data-helpers.ts create mode 100644 src/package/renderer/data-row.ts create mode 100644 src/package/renderer/types.d.ts diff --git a/src/demo/index.html b/src/demo/index.html index dc1bbb0..5e7012f 100644 --- a/src/demo/index.html +++ b/src/demo/index.html @@ -44,27 +44,44 @@

Interactive Example

> + + - {"test":"ètest"} + { + "string": "this is a test", + "integer": 42, + "array": [ + 1, + 2, + 3, + "test", + null + ], + "float": 3.14159, + "object": { + "first-child": true, + "second-child": false, + "last-child": null, + "strings": { + "veryLong": "The 'json-viewer' is a powerful tool designed specifically for displaying and analyzing JSON data. JSON (JavaScript Object Notation) is a widely used data format for transmission and storage. It's easy to understand and write, but when it comes to visualizing extensive or complex JSON data, it can be a challenge." + } + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", + "string_number": "1234", + "date": "2025-10-24T10:16:59.631Z" + } - diff --git a/src/package/assets/styles.css b/src/package/assets/styles.css index 32cc20e..3c73668 100644 --- a/src/package/assets/styles.css +++ b/src/package/assets/styles.css @@ -29,6 +29,7 @@ padding: 2px 5px; } + .toolbar select.theme-select { background: transparent; display: flex; @@ -37,6 +38,7 @@ padding: 0; border: none; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--base0D) 30%, transparent); + border-radius: 5px; } .toolbar .icon.copy { diff --git a/src/package/assets/themes.ts b/src/package/assets/themes.ts index ba70746..2c30732 100644 --- a/src/package/assets/themes.ts +++ b/src/package/assets/themes.ts @@ -1430,9 +1430,11 @@ export const availableThemes: string[] = Object.keys(themes) export const themeStyles = (nameOrObject: string | Record): string => { let theme if (typeof nameOrObject === "string") { - if (themes[nameOrObject] === undefined) { - throw new Error(`${nameOrObject} not found`) + if (availableThemes.indexOf(nameOrObject) === -1) { + console.warn(`${nameOrObject} not found, falling back to default theme`) + nameOrObject = "default-light" } + theme = themes[nameOrObject].reduce( (map: Record, v, i) => { const key = `base0${i.toString(16).toUpperCase()}` diff --git a/src/package/components/json-viewer.ts b/src/package/components/json-viewer.ts index cde5b10..ad04050 100644 --- a/src/package/components/json-viewer.ts +++ b/src/package/components/json-viewer.ts @@ -2,12 +2,16 @@ import { DataParser } from "../utils/data-parser" import styles from "../assets/styles.css?inline" import { themeStyles, availableThemes } from "../assets/themes" import { Toolbar } from "./toolbar" +import { Container } from "../renderer/container" -const ICON_TYPES = ["arrow", "square", "circle"] +const ICON_TYPES = ["arrow", "square", "circle"] as const const MAX_EXPAND_LEVEL = 12 const MAX_INDENT_LEVEL = 10 + +type IconType = (typeof ICON_TYPES)[number] + export class JsonViewer extends HTMLElement { - static get observedAttributes() { + static get observedAttributes(): string[] { return [ "toolbar-show-copy", "toolbar-show-size", @@ -32,38 +36,47 @@ export class JsonViewer extends HTMLElement { ] } + // Private properties private dataParser: DataParser | null = null private stylesContainer: HTMLStyleElement | null = null - private themeSyteles: HTMLStyleElement | null = null + private themeStyles: HTMLStyleElement | null = null private dataContainer: HTMLDivElement | null = null + private toolbarContainer: HTMLDivElement | null = null + private jsonDataContainer: HTMLDivElement | null = null private cachedThemeStyles: string | null = null private cachedData: string | null = null private toolbar: Toolbar | null = null + private observer?: MutationObserver + private isUpdatingFromToolbar = false + private renderTimeout?: number + private isInitialized = false + private static readonly defaultTheme = "default-light" - private static readonly defaultIconType = "arrow" + private static readonly defaultIconType: IconType = "arrow" + + private rendererContainer: Container | null = null constructor() { super() this.attachShadow({ mode: "open" }) } - // Number attributes + // All your getters and setters (keeping them as-is) get indent(): number { if (!this.hasAttribute("indent") || this.getAttribute("indent") === "false") return 0 - if (this.getAttribute("indent") === "true") return MAX_INDENT_LEVEL - + if (this.getAttribute("indent") === "true" || this.getAttribute("indent") === "") return MAX_INDENT_LEVEL let value = parseInt(this.getAttribute("indent") || "0") value = isNaN(value) ? 0 : value if (value < 0) return 0 if (value > MAX_INDENT_LEVEL) return MAX_INDENT_LEVEL return value } + set indent(value: number | boolean) { if (typeof value === "boolean") { this.setAttribute("indent", value ? MAX_INDENT_LEVEL.toString() : "0") return } - if (typeof value === "number") { if (value < 0) value = 0 if (value > MAX_INDENT_LEVEL) value = MAX_INDENT_LEVEL @@ -73,18 +86,17 @@ export class JsonViewer extends HTMLElement { this.removeAttribute("indent") } - // Boolean attributes get expanded(): number { if (!this.hasAttribute("expanded") || this.getAttribute("expanded") === "false") return 0 - if (this.getAttribute("expanded") === "true") return MAX_EXPAND_LEVEL + if (this.getAttribute("expanded") === "true" || this.getAttribute("expanded") === "") return MAX_EXPAND_LEVEL let value = parseInt(this.getAttribute("expanded") || "0") value = isNaN(value) ? 0 : value if (value < 0) return 0 if (value > MAX_EXPAND_LEVEL) return MAX_EXPAND_LEVEL return value } + set expanded(value: number | boolean) { - console.log("Setting expanded to:", value) if (typeof value === "boolean") { this.setAttribute("expanded", value.toString()) return @@ -99,13 +111,13 @@ export class JsonViewer extends HTMLElement { this.removeAttribute("expanded") } + // ... (all your other getters/setters remain the same) ... get showDataTypes(): boolean { return this.hasAttribute("show-data-types") && this.getAttribute("show-data-types") !== "false" } set showDataTypes(value: boolean) { this.setAttribute("show-data-types", value.toString()) } - get showLoadingStatus(): boolean { return this.hasAttribute("show-loading-status") && this.getAttribute("show-loading-status") !== "false" } @@ -118,35 +130,30 @@ export class JsonViewer extends HTMLElement { set showErrors(value: boolean) { this.setAttribute("show-errors", value.toString()) } - get showInfos(): boolean { return this.hasAttribute("show-infos") && this.getAttribute("show-infos") !== "false" } set showInfos(value: boolean) { this.setAttribute("show-infos", value.toString()) } - get showToolbar(): boolean { return this.hasAttribute("show-toolbar") && this.getAttribute("show-toolbar") !== "false" } set showToolbar(value: boolean) { this.setAttribute("show-toolbar", value.toString()) } - get showCopy(): boolean { return this.hasAttribute("show-copy") && this.getAttribute("show-copy") !== "false" } set showCopy(value: boolean) { this.setAttribute("show-copy", value.toString()) } - get showSize(): boolean { return this.hasAttribute("show-size") && this.getAttribute("show-size") !== "false" } set showSize(value: boolean) { this.setAttribute("show-size", value.toString()) } - // Toolbar attributes get toolbarShowCopy(): boolean { return this.getAttribute("toolbar-show-copy") !== "false" @@ -175,20 +182,21 @@ export class JsonViewer extends HTMLElement { get toolbarShowIndentControls(): boolean { return this.getAttribute("toolbar-show-indent-controls") !== "false" } - set toolbarThemeSelect(value: boolean) { - this.setAttribute("toolbar-show-theme-select", value.toString()) + set toolbarShowIndentControls(value: boolean) { + this.setAttribute("toolbar-show-indent-controls", value.toString()) } get toolbarShowThemeSelect(): boolean { return this.getAttribute("toolbar-show-theme-select") !== "false" } - - set toolbarShowInfos(value: boolean) { - this.setAttribute("toolbar-show-infos", value.toString()) + set toolbarShowThemeSelect(value: boolean) { + this.setAttribute("toolbar-show-theme-select", value.toString()) } get toolbarShowInfos(): boolean { return this.getAttribute("toolbar-show-infos") !== "false" } - + set toolbarShowInfos(value: boolean) { + this.setAttribute("toolbar-show-infos", value.toString()) + } // String attributes get theme(): string { return this.getAttribute("theme") ?? JsonViewer.defaultTheme @@ -196,15 +204,15 @@ export class JsonViewer extends HTMLElement { set theme(value: string) { this.setAttribute("theme", value) } - - get expandIconType(): string { - return this.getAttribute("expand-icon-type") ?? JsonViewer.defaultIconType + get expandIconType(): IconType { + const value = this.getAttribute("expand-icon-type") + return (ICON_TYPES.includes(value as IconType) ? value : JsonViewer.defaultIconType) as IconType } - set expandIconType(value: string) { + set expandIconType(value: IconType) { if (!ICON_TYPES.includes(value)) { console.warn(`Invalid expand-icon-type: ${value}. Defaulting to "arrow".`) value = JsonViewer.defaultIconType - this.removeAttribute("expand-icon-type") // Remove old attribute to avoid conflicts + this.removeAttribute("expand-icon-type") return } this.setAttribute("expand-icon-type", value) @@ -213,63 +221,106 @@ export class JsonViewer extends HTMLElement { return this.getAttribute("search-term") ?? "" } set searchTerm(value: string) { - if (this.searchTerm === value) return // Avoid unnecessary updates + if (this.searchTerm === value) return this.setAttribute("search-term", value) } - - // Data attribute - with fallback to content + // Data attribute get data(): string { - // Priority: attribute > textContent > default const attrData = this.getAttribute("data") if (attrData) { return attrData } + // Get content data and validate it const contentData = this.getContentData() if (contentData) { - this.clearContent() // Clear content after reading - this.setAttribute("data", contentData) // Set as attribute for future use + try { + // Test if it's valid JSON + JSON.parse(contentData) + // If valid, clear content and set as attribute + this.clearContent() + this.setAttribute("data", contentData) + return contentData + } catch (error) { + console.warn("Invalid JSON in element content:", error) + // Return the content anyway, let the parser handle the error + return contentData + } } - return contentData || "{}" - } + return "{}" + } set data(value: string | object) { - if (this.data === value) return // Avoid unnecessary updates + if (this.data === value) return if (typeof value === "string") { this.setAttribute("data", value) } else { this.setAttribute("data", JSON.stringify(value)) } - // Clear content when setting via property/attribute this.textContent = "" } - // Get JSON from element content + // Private methods private getContentData(): string { - const content = this.textContent?.trim() - return content || "" + // Get all text content, including from child text nodes + const content = this.textContent?.trim() || "" + + // Remove any extra whitespace and normalize + if (content) { + try { + // Try to parse and re-stringify to normalize the JSON + const parsed = JSON.parse(content) + return JSON.stringify(parsed) + } catch { + // If parsing fails, return the raw content + return content + } + } + + return "" } - // Clear content after reading private clearContent(): void { this.textContent = "" } - attributeChangedCallback(_name: string, oldValue: string | null, newValue: string | null) { - console.log(`Attribute changed: ${_name}, oldValue: ${oldValue}, newValue: ${newValue}`) + // Lifecycle methods + attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void { + if (!this.isInitialized) return + + if (this.isUpdatingFromToolbar) { + // Even when updating from toolbar, we need to re-render for some changes + if (["indent", "expanded", "theme", "search-term"].includes(name)) { + // Force re-render for these critical attributes + this.isUpdatingFromToolbar = false + this.debouncedRender() + return + } + return + } + if (oldValue !== newValue) { - this.render() + this.debouncedRender() } } - connectedCallback() { - this.render() + private debouncedRender(): void { + if (this.renderTimeout) { + clearTimeout(this.renderTimeout) + } + this.renderTimeout = window.setTimeout(() => { + this.render() + }, 10) + } + + connectedCallback(): void { + this.render().then(() => { + this.isInitialized = true + }) - // Watch for content changes this.observer = new MutationObserver(() => { - // Only react to content changes if no data attribute is set - if (!this.hasAttribute("data")) { - this.render() + if (!this.hasAttribute("data") && this.isInitialized) { + this.debouncedRender() } }) @@ -280,43 +331,130 @@ export class JsonViewer extends HTMLElement { }) } - disconnectedCallback() { + disconnectedCallback(): void { + this.isInitialized = false + + if (this.renderTimeout) { + clearTimeout(this.renderTimeout) + this.renderTimeout = undefined + } + if (this.observer) { this.observer.disconnect() } + + if (this.toolbar) { + this.toolbar.remove() + this.toolbar = null + } } - private observer?: MutationObserver - private renderToolbar() { - if (!this.dataContainer) return + private renderToolbar(): void { + if (!this.toolbarContainer) return if (!this.toolbar) { this.toolbar = new Toolbar({ - parent: this.dataContainer, + parent: this.toolbarContainer, onCopyAll: () => { - const json = this.dataContainer?.querySelector(".json-data")?.textContent || "" - navigator.clipboard.writeText(json).then(() => { - console.log("Copied to clipboard:", json.length) - }) + try { + // Get the original data and stringify it cleanly + const dataParser = this.dataParser + if (dataParser) { + dataParser.getParsedData().then((result) => { + if (result.data) { + const cleanJson = JSON.stringify(result.data, null, this.indent || 2) + navigator.clipboard + .writeText(cleanJson) + .then(() => { + console.log("Copied clean JSON to clipboard:", cleanJson.length) + }) + .catch((err) => { + console.error("Failed to copy to clipboard:", err) + }) + } + }) + } else { + // Fallback: try to parse the original data attribute + const rawData = this.data + const parsedData = JSON.parse(rawData) + const cleanJson = JSON.stringify(parsedData, null, this.indent || 2) + navigator.clipboard.writeText(cleanJson) + } + } catch (error) { + console.error("Failed to copy JSON:", error) + // Ultimate fallback + navigator.clipboard.writeText(this.data) + } }, onStateChange: (changes) => { console.log("Toolbar state changed:", changes) - switch (Object.keys(changes)[0]) { - case "searchTerm": - this.searchTerm = changes.searchTerm! - break - case "expandLevel": - this.expanded = changes.expandLevel || 0 - break - case "indent": - this.indent = changes.indent || 0 - break - case "infosEnabled": - this.showInfos = changes.infosEnabled || false - break - case "theme": - this.theme = changes.theme || JsonViewer.defaultTheme - break + + this.isUpdatingFromToolbar = true + + try { + Object.entries(changes).forEach(([key, value]) => { + switch (key) { + case "searchTerm": + if (this.searchTerm !== value) { + this.setAttribute("search-term", value as string) + } + break + case "expandLevel": + if (this.expanded !== value) { + this.setAttribute("expanded", (value || 0).toString()) + } + break + case "indent": + if (this.indent !== value) { + this.setAttribute("indent", (value || 0).toString()) + } + break + case "infosEnabled": + if (this.showInfos !== value) { + this.setAttribute("show-infos", (value || false).toString()) + // Also update the individual show flags + this.setAttribute("show-data-types", (value || false).toString()) + this.setAttribute("show-copy", (value || false).toString()) + this.setAttribute("show-size", (value || false).toString()) + } + break + case "theme": + if (this.theme !== value) { + this.setAttribute("theme", (value as string) || JsonViewer.defaultTheme) + } + break + } + }) + } finally { + // Clear the flag and force a render for toolbar changes + setTimeout(() => { + this.isUpdatingFromToolbar = false + + // Force immediate update for info changes + if (changes.infosEnabled !== undefined) { + console.log("Info state changed, updating renderer") + if (this.rendererContainer) { + this.rendererContainer.update({ + expanded: this.expanded, + indent: this.indent, + showDataTypes: this.showInfos, // Use showInfos for all info displays + showCopy: this.showInfos, + showSize: this.showInfos, + expandIconType: this.expandIconType, + searchTerm: this.searchTerm, + }) + } + // Also update container classes immediately + if (this.dataContainer) { + this.dataContainer.classList.toggle("show-data-types", this.showInfos) + this.dataContainer.classList.toggle("show-copy", this.showInfos) + this.dataContainer.classList.toggle("show-size", this.showInfos) + } + } + + // Force render for other changes + this.forceRender() + }, 0) } }, config: { @@ -335,7 +473,7 @@ export class JsonViewer extends HTMLElement { expandLevel: this.expanded, indent: this.indent, theme: this.theme, - searchTerm: "", + searchTerm: this.searchTerm, dataSize: new TextEncoder().encode(this.data).length, infosEnabled: this.showInfos, }, @@ -350,7 +488,7 @@ export class JsonViewer extends HTMLElement { showThemeSelect: this.toolbarShowThemeSelect, showInfos: this.toolbarShowInfos, }) - console.log("Updating toolbar state with current attributes", this.showInfos) + this.toolbar.updateState({ searchTerm: this.searchTerm, expandLevel: this.expanded, @@ -362,52 +500,111 @@ export class JsonViewer extends HTMLElement { } } - private async render() { + // Add method to force re-render (bypasses cache) + private forceRender(): void { + this.cachedData = null + this.rendererContainer = null // Clear renderer cache + this.render() + } + + private async render(): Promise { if (!this.shadowRoot) return + // Initialize styles if (!this.stylesContainer) { this.stylesContainer = document.createElement("style") this.shadowRoot.appendChild(this.stylesContainer) this.stylesContainer.textContent = styles } - if (!this.themeSyteles) { - this.themeSyteles = document.createElement("style") - this.shadowRoot.appendChild(this.themeSyteles) + + if (!this.themeStyles) { + this.themeStyles = document.createElement("style") + this.shadowRoot.appendChild(this.themeStyles) } + + // Update theme styles if (this.cachedThemeStyles !== this.theme) { this.cachedThemeStyles = this.theme - this.themeSyteles.textContent = themeStyles(this.theme) + this.themeStyles.textContent = themeStyles(this.theme) } + // Initialize main container if (!this.dataContainer) { this.dataContainer = document.createElement("div") this.dataContainer.className = "container" - this.shadowRoot.appendChild(this.dataContainer) } - // Update data container styles based on attributes + // Initialize toolbar container + if (!this.toolbarContainer) { + this.toolbarContainer = document.createElement("div") + this.toolbarContainer.className = "toolbar-container" + this.dataContainer.appendChild(this.toolbarContainer) + } + + // Initialize JSON data container + if (!this.jsonDataContainer) { + this.jsonDataContainer = document.createElement("div") + this.jsonDataContainer.className = "json-container" + this.dataContainer.appendChild(this.jsonDataContainer) + } + // Update container classes this.dataContainer.classList.toggle("show-data-types", this.showDataTypes) this.dataContainer.classList.toggle("show-size", this.showSize) this.dataContainer.classList.toggle("show-copy", this.showCopy) this.dataContainer.classList.toggle("show-loading-status", this.showLoadingStatus) this.dataContainer.classList.toggle("show-errors", this.showErrors) - if (this.cachedData === this.data) { - // If data hasn't changed, no need to re-render - return + // Handle toolbar visibility + if (this.showToolbar) { + this.toolbarContainer.style.display = "block" + this.renderToolbar() + } else { + this.toolbarContainer.style.display = "none" + if (this.toolbar) { + this.toolbar.remove() + this.toolbar = null + } + } + + // Always update toolbar state if it exists + if (this.showToolbar && this.toolbar) { + this.toolbar.updateState({ + searchTerm: this.searchTerm, + expandLevel: this.expanded, + indent: this.indent, + theme: this.theme, + infosEnabled: this.showInfos, + dataSize: new TextEncoder().encode(this.data).length, + }) } - // Render toolbar if enabled - if (this.showToolbar) this.renderToolbar() - else this.toolbar?.remove() + // Check if we need to re-render JSON (either data changed OR toolbar actions) + const needsJsonRerender = this.cachedData !== this.data || this.isUpdatingFromToolbar + + if (!needsJsonRerender) { + // Even if we don't re-render, update the existing renderer with new settings + if (this.rendererContainer) { + this.rendererContainer.update({ + expanded: this.expanded, + indent: this.indent, + showDataTypes: this.showDataTypes, + showCopy: this.showCopy, + showSize: this.showSize, + expandIconType: this.expandIconType, + searchTerm: this.searchTerm, + }) + } + return + } - let jsonData = this.dataContainer.querySelector(".json-data") + // Render JSON data + let jsonData = this.jsonDataContainer.querySelector(".json-data") if (!jsonData) { jsonData = document.createElement("div") jsonData.className = "json-data" - this.dataContainer.appendChild(jsonData) + this.jsonDataContainer.appendChild(jsonData) } // Create or update parser @@ -418,41 +615,89 @@ export class JsonViewer extends HTMLElement { } if (this.dataParser.isUrlData && this.showLoadingStatus) { - //Show spinner jsonData.innerHTML = ` -
-
-
- - ` +
+
+
+
+
+ ` } - const result = await this.dataParser.getParsedData() - if (this.showErrors && (result.error || !result.data)) { - jsonData.innerHTML = ` + try { + const result = await this.dataParser.getParsedData() + + if (this.showErrors && (result.error || !result.data)) { + jsonData.innerHTML = `
Invalid JSON data
Raw data: -
${this.data}
+
${this.escapeHtml(this.data)}

Error: ${result.error || "Unknown error"}

` - return - } + this.cachedData = this.data + this.rendererContainer = null // Clear renderer on error + return + } + + const parsedData = result.data + jsonData.innerHTML = "" + + // Use the new renderer + const renderedElement = this.renderJson(parsedData) + jsonData.appendChild(renderedElement) - const parsedData = result.data + this.cachedData = this.data + } catch (error) { + console.error("Error rendering JSON:", error) + this.rendererContainer = null // Clear renderer on error - jsonData.innerHTML = "" // Clear previous content - jsonData.appendChild(this.renderJson(parsedData)) + if (this.showErrors) { + jsonData.innerHTML = ` +
+ Error rendering JSON data +

Error: ${error instanceof Error ? error.message : "Unknown error"}

+
+ ` + } + this.cachedData = this.data + } } private renderJson(data: any): HTMLElement { - const pre = document.createElement("pre") - pre.className = "json-data" - pre.innerHTML = JSON.stringify(data, null, this.indent) - return pre + const container = document.createElement("div") + container.className = "json-data" + try { + this.rendererContainer = new Container(container, { + data: data, + expanded: this.expanded, + indent: this.indent, + showDataTypes: this.showDataTypes, + showCopy: this.showCopy, + showSize: this.showSize, + expandIconType: this.expandIconType, + searchTerm: this.searchTerm, + }) + return container + } catch (error) { + console.error("Error creating renderer:", error) + this.rendererContainer = null + // Fallback to simple pre element + const pre = document.createElement("pre") + pre.className = "json-data" + pre.textContent = "Error: Unable to render JSON data" + return pre + } + } + + private escapeHtml(text: string): string { + const div = document.createElement("div") + div.textContent = text + return div.innerHTML } } + +export default JsonViewer diff --git a/src/package/components/toolbar.ts b/src/package/components/toolbar.ts index b007242..6f9e1a8 100644 --- a/src/package/components/toolbar.ts +++ b/src/package/components/toolbar.ts @@ -244,15 +244,17 @@ export class Toolbar { searchInput.value = this.state.searchTerm || "" // Debounced input handler - more efficient than before - searchInput.addEventListener("input", (e) => { + searchInput.addEventListener("input", (e: Event) => { clearTimeout(this.searchTimeout) - this.searchTimeout = window.setTimeout(() => { - const searchTerm = (e.target as HTMLInputElement).value - if (this.state.searchTerm !== searchTerm) { - this.state.searchTerm = searchTerm - this.onStateChange({ searchTerm }) - } - }, 300) + if (e.target instanceof HTMLInputElement) { + const searchTerm = e.target.value + this.searchTimeout = window.setTimeout(() => { + if (this.state.searchTerm !== searchTerm) { + this.state.searchTerm = searchTerm + this.onStateChange({ searchTerm }) + } + }, 300) + } }) this.actions.set("searchIcon", searchIcon) diff --git a/src/package/index.ts b/src/package/index.ts index 74385c8..2e3b165 100644 --- a/src/package/index.ts +++ b/src/package/index.ts @@ -1,3 +1,6 @@ import { JsonViewer } from "./components/json-viewer" + // Register the custom element -customElements.define("andypf-json-viewer", JsonViewer) +if (!customElements.get("andypf-json-viewer")) { + customElements.define("andypf-json-viewer", JsonViewer) +} diff --git a/src/package/renderer/container.ts b/src/package/renderer/container.ts new file mode 100644 index 0000000..e756b11 --- /dev/null +++ b/src/package/renderer/container.ts @@ -0,0 +1,131 @@ +import { RendererOptions } from "./types" +import { DataRow } from "./data-row" + +interface ContainerCache { + dataCompareString?: string + expanded?: number | boolean + indent?: number + showCopy?: boolean + showSize?: boolean + showDataTypes?: boolean + expandIconType?: string + searchTerm?: string +} + +export class Container { + private containerElem: HTMLDivElement + private dataRow: DataRow | null = null + private cache: ContainerCache = {} + private onExpandLevelChange?: (level: number) => void + + constructor(root: HTMLElement, options: RendererOptions = {}) { + this.containerElem = document.createElement("div") + this.containerElem.className = "json-renderer" + root.appendChild(this.containerElem) + + this.onExpandLevelChange = options.onExpandLevelChange + + this.update(options) + } + + public update(options: RendererOptions): void { + const { + data, + expanded, + indent, + expandIconType, + showDataTypes, + showSize, + showCopy, + searchTerm, + onExpandLevelChange, + } = options + + // Update callback if provided + if (onExpandLevelChange) { + this.onExpandLevelChange = onExpandLevelChange + } + + // Handle data updates + if (data !== undefined) { + const newDataCompareString = JSON.stringify(data) + + if (this.cache.dataCompareString !== newDataCompareString) { + this.cache.dataCompareString = newDataCompareString + + this.dataRow = new DataRow({ + key: "", + value: data, + expanded: expanded ?? 0, + indent: indent ?? 2, + onToggleExpand: (level) => { + this.cache.expanded = level + // You might want to trigger an event here to update the toolbar + }, + }) + + this.containerElem.replaceChildren(this.dataRow.element) + } + } + + // Collect props that need to be updated on dataRow + const propsToUpdate: any = {} + + // Handle expanded updates + if (expanded !== undefined && this.cache.expanded !== expanded) { + this.cache.expanded = expanded + propsToUpdate.expanded = expanded + } + + // Handle indent updates + if (indent !== undefined && this.cache.indent !== indent) { + this.cache.indent = indent + propsToUpdate.indent = indent + } + + // Handle search term updates + if (searchTerm !== undefined && this.cache.searchTerm !== searchTerm) { + this.cache.searchTerm = searchTerm + propsToUpdate.searchTerm = searchTerm + } + + // Update dataRow if there are changes + if (Object.keys(propsToUpdate).length > 0 && this.dataRow) { + this.dataRow.update(propsToUpdate) + } + + // Handle CSS class updates + if (showCopy !== undefined && this.cache.showCopy !== showCopy) { + this.cache.showCopy = showCopy + this.containerElem.classList.toggle("show-copy", showCopy) + } + + if (showSize !== undefined && this.cache.showSize !== showSize) { + this.cache.showSize = showSize + this.containerElem.classList.toggle("show-size", showSize) + } + + if (showDataTypes !== undefined && this.cache.showDataTypes !== showDataTypes) { + this.cache.showDataTypes = showDataTypes + this.containerElem.classList.toggle("show-data-types", showDataTypes) + } + + if (expandIconType !== undefined && this.cache.expandIconType !== expandIconType) { + if (this.cache.expandIconType) { + this.containerElem.classList.remove(`expand-icon-${this.cache.expandIconType}`) + } + this.containerElem.classList.add(`expand-icon-${expandIconType}`) + this.cache.expandIconType = expandIconType + } + } + + public getElement(): HTMLElement { + return this.containerElem + } + + public getMaxLevel(): number { + return this.dataRow?.maxLevel ?? 0 + } +} + +export default Container diff --git a/src/package/renderer/data-helpers.ts b/src/package/renderer/data-helpers.ts new file mode 100644 index 0000000..a1365f8 --- /dev/null +++ b/src/package/renderer/data-helpers.ts @@ -0,0 +1,94 @@ +import { DataType } from "./types" + +export function dataType(value: any): DataType { + if (value === null) return "null" + if (value === undefined) return "undefined" + if (Array.isArray(value)) return "array" + + if (typeof value === "number") { + if (isNaN(value)) return "nan" + // int vs. float + if (Number.isInteger(value)) return "integer" + return "float" + } + + if (typeof value === "string") { + // Check if string looks like a date + if (isDateString(value)) return "date" + return "string" + } + + if (typeof value === "object") return "object" + return typeof value as DataType +} + +export function formatValue(value: any, type: DataType): string { + switch (type) { + case "string": + return `"${value}"` + case "date": + return `"${value}"` // Keep original string format but will show as date type + case "integer": + return String(value) + case "float": + return String(value) + case "null": + return "null" + case "undefined": + return "undefined" + case "nan": + return "NaN" + case "boolean": + return String(value) + default: + return String(value) + } +} + +export function getItemCount(value: any, type: DataType): number { + if (type === "array") return value.length + if (type === "object") return Object.keys(value).length + return 0 +} + +export function getItems(value: any, type: DataType): Array { + if (type === "array") return value.map((_: any, i: number) => i) + if (type === "object") return Object.keys(value) + return [] +} + +// Helper function to detect date strings +function isDateString(value: string): boolean { + // ISO 8601 date format (most common) + const iso8601Regex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z?$/ + + // Additional date patterns you might want to detect + const datePatterns = [ + iso8601Regex, + /^\d{4}-\d{2}-\d{2}$/, // YYYY-MM-DD + /^\d{2}\/\d{2}\/\d{4}$/, // MM/DD/YYYY + /^\d{2}-\d{2}-\d{4}$/, // MM-DD-YYYY + ] + + // Check if it matches any date pattern + if (datePatterns.some((pattern) => pattern.test(value))) { + // Additional validation: try to parse as date + const date = new Date(value) + return !isNaN(date.getTime()) + } + + return false +} + +// Optional: Helper function to get formatted date for display +export function getFormattedDate(dateString: string): string { + try { + const date = new Date(dateString) + if (isNaN(date.getTime())) return dateString + + // You can customize the format here + return date.toLocaleString() // or date.toISOString(), etc. + } catch { + return dateString + } +} diff --git a/src/package/renderer/data-row.ts b/src/package/renderer/data-row.ts new file mode 100644 index 0000000..8ca9e61 --- /dev/null +++ b/src/package/renderer/data-row.ts @@ -0,0 +1,293 @@ +import { DataRowOptions, UpdateOptions, DataType } from "./types" +import { dataType, formatValue, getItemCount, getItems } from "./data-helpers" + +export class DataRow { + public element: HTMLElement + public maxLevel: number + private row: HTMLDivElement + private isExpanded: boolean + private hasChildren: boolean + private thisDataType: DataType + private childrenRows: DataRow[] = [] + private expandIcon?: HTMLElement + private keyEl?: HTMLElement + private valueEl?: HTMLElement + private level: number + private onToggleExpand?: (level: number) => void + private parentRow?: HTMLElement | null + + constructor(options: DataRowOptions) { + const { key, value, expanded, indent, onToggleExpand, level = 0, parentRow = null } = options + + this.level = level + this.maxLevel = level + this.onToggleExpand = onToggleExpand + this.parentRow = parentRow + this.thisDataType = dataType(value) + this.hasChildren = this.thisDataType === "array" || this.thisDataType === "object" + this.isExpanded = expanded === true || (typeof expanded === "number" && expanded > level) + + // Create main row element + this.row = document.createElement("div") + this.row.className = `data-row ${this.isExpanded ? "expanded" : ""}` + this.row.dataset.key = String(key) + this.row.dataset.level = String(level) + + if (level > 0) { + this.row.style.paddingLeft = `${indent * 5}px` + } + + // Create key-value wrapper + const keyValueWrapper = document.createElement("span") + keyValueWrapper.className = "key-value-wrapper" + this.row.appendChild(keyValueWrapper) + + this.createExpandIcon(keyValueWrapper) + this.createKey(keyValueWrapper, key) + this.createValue(keyValueWrapper, value, expanded, indent) + this.createCopyIcon(keyValueWrapper, value, indent) + + this.element = this.row + } + + private toggleExpand = (): void => { + this.row.classList.toggle("expanded") + if (this.onToggleExpand) { + if (this.row.classList.contains("expanded")) { + this.onToggleExpand(this.level + 1) + } else { + this.onToggleExpand(this.level) + } + } + } + + private createExpandIcon(parent: HTMLElement): void { + if (!this.hasChildren) return + + const expandIconWrapper = document.createElement("span") + expandIconWrapper.className = "icon-wrapper" + parent.appendChild(expandIconWrapper) + + this.expandIcon = document.createElement("span") + this.expandIcon.className = "expand icon clickable" + this.expandIcon.setAttribute("title", this.isExpanded ? "Collapse" : "Expand") + expandIconWrapper.appendChild(this.expandIcon) + expandIconWrapper.addEventListener("click", this.toggleExpand) + } + private createKey(parent: HTMLElement, key: string | number): void { + // Explizite Prüfung für Fälle, wo kein Key angezeigt werden soll + // Für Root-Elemente (key === '') oder null/undefined + if (key === null || key === undefined || (typeof key === "string" && key === "")) { + return + } + + const keyDataType = typeof key + this.keyEl = document.createElement("span") + this.keyEl.className = `key clickable ${keyDataType === "number" ? "number" : ""}` + + // Array-Indizes und Objekt-Keys richtig anzeigen + this.keyEl.textContent = String(key) + + this.keyEl.addEventListener("click", this.toggleExpand) + parent.appendChild(this.keyEl) + + // Add colon + const colonEl = document.createElement("span") + colonEl.classList.add("colon") + colonEl.textContent = ":" + parent.appendChild(colonEl) + } + + private createValue(parent: HTMLElement, value: any, expanded: number | boolean, indent: number): void { + if (this.hasChildren) { + this.createComplexValue(parent, value, expanded, indent) + } else { + this.createSimpleValue(parent, value) + } + } + + private createComplexValue(parent: HTMLElement, value: any, expanded: number | boolean, indent: number): void { + // Opening parenthesis + const openingParenthesis = document.createElement("span") + openingParenthesis.className = "opening-parenthesis" + openingParenthesis.textContent = this.thisDataType === "array" ? "[" : "{" + parent.appendChild(openingParenthesis) + + // Ellipsis + const ellipsis = document.createElement("span") + ellipsis.className = "ellipsis clickable" + ellipsis.textContent = "..." + ellipsis.addEventListener("click", this.toggleExpand) + parent.appendChild(ellipsis) + + // Closing parenthesis + const closingParenthesis = document.createElement("span") + closingParenthesis.className = "closing-parenthesis" + closingParenthesis.textContent = this.thisDataType === "array" ? "]" : "}" + parent.appendChild(closingParenthesis) + + // Items size + const itemsSize = document.createElement("span") + const length = getItemCount(value, this.thisDataType) + itemsSize.className = "items-size" + itemsSize.textContent = `${length} item${length === 1 ? "" : "s"}` + parent.appendChild(itemsSize) + + // Create children rows + this.createChildrenRows(value, expanded, indent) + + // Expanded closing parenthesis + const expandedClosingParenthesis = document.createElement("span") + expandedClosingParenthesis.className = "closing-parenthesis" + expandedClosingParenthesis.textContent = this.thisDataType === "array" ? "]" : "}" + this.row.appendChild(expandedClosingParenthesis) + } + + private createSimpleValue(parent: HTMLElement, value: any): void { + let valueType: HTMLElement | null = null + + if (!["nan", "undefined", "null"].includes(this.thisDataType)) { + valueType = document.createElement("span") + valueType.className = "type" + valueType.textContent = this.thisDataType.toLowerCase() + } + + const valueWrapper = document.createElement("span") + valueWrapper.className = `value ${this.thisDataType.toLowerCase()}` + + this.valueEl = document.createElement("span") + this.valueEl.className = "value-data" + this.valueEl.textContent = formatValue(value, this.thisDataType) + + if (valueType) valueWrapper.appendChild(valueType) + valueWrapper.appendChild(this.valueEl) + parent.appendChild(valueWrapper) + } + + private createChildrenRows(value: any, expanded: number | boolean, indent: number): void { + const items = getItems(value, this.thisDataType) + + items.forEach((key) => { + const subRow = new DataRow({ + key, + value: value[key], + expanded, + indent, + onToggleExpand: this.onToggleExpand, + level: this.level + 1, + parentRow: this.row, + }) + + this.childrenRows.push(subRow) + this.row.appendChild(subRow.element) + this.maxLevel = Math.max(this.maxLevel, subRow.maxLevel) + }) + } + + private createCopyIcon(parent: HTMLElement, value: any, indent: number): void { + const copyIcon = document.createElement("span") + copyIcon.className = "copy icon" + copyIcon.setAttribute("title", "Copy to clipboard") + + const copyIconWrapper = document.createElement("span") + copyIconWrapper.className = "icon-wrapper" + copyIconWrapper.addEventListener("click", () => { + navigator.clipboard + .writeText(JSON.stringify(value, null, indent)) + .then(() => console.log("Copied to clipboard")) + .catch((err) => console.error("Failed to copy:", err)) + }) + + copyIconWrapper.appendChild(copyIcon) + parent.appendChild(copyIconWrapper) + } + + private search(searchTerm: string): void { + const searchElements = [this.keyEl, this.valueEl].filter(Boolean) as HTMLElement[] + let found = false + + searchElements.forEach((el) => { + const originalText = el.dataset.originalText || el.textContent || "" + + // Store original text if not already stored + if (!el.dataset.originalText) { + el.dataset.originalText = originalText + } + + // Always reset to original text first + el.innerHTML = this.escapeHtml(originalText) + + // If no search term, just return after clearing + if (!searchTerm || searchTerm.trim() === "") { + return + } + + // Perform search + const regex = new RegExp(this.escapeRegExp(searchTerm), "gi") + const matches = [...originalText.matchAll(regex)] + + if (matches.length > 0) { + found = true + let highlightedText = originalText + + // Replace matches with highlighted version (reverse order to maintain indices) + matches.reverse().forEach((match) => { + const start = match.index! + const end = start + match[0].length + highlightedText = + highlightedText.substring(0, start) + + `${this.escapeHtml(match[0])}` + + highlightedText.substring(end) + }) + + el.innerHTML = highlightedText + } + }) + + // If found, expand this row and parent + if (found && !this.row.classList.contains("expanded")) { + this.toggleExpand() + if (this.parentRow) { + this.parentRow.classList.add("expanded") + } + } + + // Always update children with search term + this.childrenRows.forEach((row) => row.update({ searchTerm })) + } + + private escapeRegExp(string: string): string { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + } + + private escapeHtml(text: string): string { + const div = document.createElement("div") + div.textContent = text + return div.innerHTML + } + + public update(options: UpdateOptions): void { + const { expanded, indent, searchTerm } = options + + if (indent !== undefined && this.level > 0) { + this.row.style.paddingLeft = `${indent * 5}px` + } + + if (expanded !== undefined) { + this.isExpanded = expanded === true || (typeof expanded === "number" && expanded > this.level) + this.row.classList.toggle("expanded", this.isExpanded) + if (this.expandIcon) { + this.expandIcon.title = this.isExpanded ? "Collapse" : "Expand" + } + } + + if (searchTerm !== undefined) { + this.search(searchTerm) + } + + // Update children + this.childrenRows.forEach((row) => row.update(options)) + } +} + +export default DataRow diff --git a/src/package/renderer/types.d.ts b/src/package/renderer/types.d.ts new file mode 100644 index 0000000..ac78e0f --- /dev/null +++ b/src/package/renderer/types.d.ts @@ -0,0 +1,39 @@ +export interface RendererOptions { + data?: any + expanded?: number | boolean + indent?: number + expandIconType?: "arrow" | "square" | "circle" + showDataTypes?: boolean + showCopy?: boolean + showSize?: boolean + searchTerm?: string + onExpandLevelChange?: (level: number) => void +} + +export interface DataRowOptions { + key: string | number + value: any + expanded: number | boolean + indent: number + onToggleExpand?: (level: number) => void + level?: number + parentRow?: HTMLElement | null +} + +export interface UpdateOptions { + expanded?: number | boolean + indent?: number + searchTerm?: string +} + +export type DataType = + | "string" + | "integer" + | "float" + | "boolean" + | "null" + | "undefined" + | "object" + | "array" + | "nan" + | "date"