From f501a8ed7ee48601c8b32317ae5ade64b11ae1d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 10:16:44 +0200 Subject: [PATCH 01/14] Bump vue from 3.3.8 to 3.4.3 (#21) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [vue](https://github.com/vuejs/core) from 3.3.8 to 3.4.3.
Release notes

Sourced from vue's releases.

v3.4.3

Please refer to CHANGELOG.md for details.

v3.4.2

Please refer to CHANGELOG.md for details.

v3.4.1

Please refer to CHANGELOG.md for details.

v3.4.0

Please refer to CHANGELOG.md for details.

v3.4.0-rc.3

Please refer to CHANGELOG.md for details.

v3.4.0-rc.2

Please refer to CHANGELOG.md for details.

v3.4.0-rc.1

Please refer to CHANGELOG.md for details.

v3.4.0-beta.4

Please refer to CHANGELOG.md for details.

v3.4.0-beta.3

Please refer to CHANGELOG.md for details.

v3.4.0-beta.2

Please refer to CHANGELOG.md for details.

v3.4.0-beta.1

Please refer to CHANGELOG.md for details.

v3.4.0-alpha.4

Please refer to CHANGELOG.md for details.

v3.4.0-alpha.3

Please refer to CHANGELOG.md for details.

v3.4.0-alpha.2

Please refer to CHANGELOG.md for details.

v3.4.0-alpha.1

Please refer to CHANGELOG.md for details.

v3.3.13

Please refer to CHANGELOG.md for details.

v3.3.12

Please refer to CHANGELOG.md for details.

... (truncated)

Changelog

Sourced from vue's changelog.

3.4.3 (2023-12-30)

Bug Fixes

3.4.2 (2023-12-30)

Bug Fixes

3.4.1 (2023-12-30)

Bug Fixes

Features

3.4.0 Slam Dunk (2023-12-29)

Read this blog post for an overview of the release highlights.

Potential Actions Needed

  1. To fully leverage new features in 3.4, it is recommended to also update the following dependencies when upgrading to 3.4:

    • Volar / vue-tsc@^1.8.27 (required)
    • @​vitejs/plugin-vue@^5.0.0 (if using Vite)
    • nuxt@^3.9.0 (if using Nuxt)
    • vue-loader@^17.4.0 (if using webpack or vue-cli)

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vue&package-manager=npm_and_yarn&previous-version=3.3.8&new-version=3.4.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 134 +++++++++++++++++++++++++++++++++++++------------ 2 files changed, 103 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index 867564e..a075963 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "style-loader": "3.3.3", "ts-node": "10.9.1", "typescript": "5.2.2", - "vue": "3.3.8", + "vue": "3.4.3", "vue-loader": "17.3.1", "webpack": "5.89.0", "webpack-bundle-analyzer": "4.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 59ada02..c14f9ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,11 +52,11 @@ devDependencies: specifier: 5.2.2 version: 5.2.2 vue: - specifier: 3.3.8 - version: 3.3.8(typescript@5.2.2) + specifier: 3.4.3 + version: 3.4.3(typescript@5.2.2) vue-loader: specifier: 17.3.1 - version: 17.3.1(@vue/compiler-sfc@3.3.8)(vue@3.3.8)(webpack@5.89.0) + version: 17.3.1(@vue/compiler-sfc@3.3.8)(vue@3.4.3)(webpack@5.89.0) webpack: specifier: 5.89.0 version: 5.89.0(esbuild@0.19.5)(webpack-cli@5.1.4) @@ -87,6 +87,14 @@ packages: '@babel/types': 7.22.5 dev: true + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/types@7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} @@ -458,6 +466,16 @@ packages: source-map-js: 1.0.2 dev: true + /@vue/compiler-core@3.4.3: + resolution: {integrity: sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==} + dependencies: + '@babel/parser': 7.23.6 + '@vue/shared': 3.4.3 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + /@vue/compiler-dom@3.3.8: resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==} dependencies: @@ -465,6 +483,13 @@ packages: '@vue/shared': 3.3.8 dev: true + /@vue/compiler-dom@3.4.3: + resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==} + dependencies: + '@vue/compiler-core': 3.4.3 + '@vue/shared': 3.4.3 + dev: true + /@vue/compiler-sfc@3.3.8: resolution: {integrity: sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==} dependencies: @@ -480,6 +505,20 @@ packages: source-map-js: 1.0.2 dev: true + /@vue/compiler-sfc@3.4.3: + resolution: {integrity: sha512-NuJqb5is9I4uzv316VRUDYgIlPZCG8D+ARt5P4t5UDShIHKL25J3TGZAUryY/Aiy0DsY7srJnZL5ryB6DD63Zw==} + dependencies: + '@babel/parser': 7.23.6 + '@vue/compiler-core': 3.4.3 + '@vue/compiler-dom': 3.4.3 + '@vue/compiler-ssr': 3.4.3 + '@vue/shared': 3.4.3 + estree-walker: 2.0.2 + magic-string: 0.30.5 + postcss: 8.4.32 + source-map-js: 1.0.2 + dev: true + /@vue/compiler-ssr@3.3.8: resolution: {integrity: sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==} dependencies: @@ -487,6 +526,13 @@ packages: '@vue/shared': 3.3.8 dev: true + /@vue/compiler-ssr@3.4.3: + resolution: {integrity: sha512-wnYQtMBkeFSxgSSQbYGQeXPhQacQiog2c6AlvMldQH6DB+gSXK/0F6DVXAJfEiuBSgBhUc8dwrrG5JQcqwalsA==} + dependencies: + '@vue/compiler-dom': 3.4.3 + '@vue/shared': 3.4.3 + dev: true + /@vue/reactivity-transform@3.3.8: resolution: {integrity: sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==} dependencies: @@ -497,41 +543,45 @@ packages: magic-string: 0.30.5 dev: true - /@vue/reactivity@3.3.8: - resolution: {integrity: sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==} + /@vue/reactivity@3.4.3: + resolution: {integrity: sha512-q5f9HLDU+5aBKizXHAx0w4whkIANs1Muiq9R5YXm0HtorSlflqv9u/ohaMxuuhHWCji4xqpQ1eL04WvmAmGnFg==} dependencies: - '@vue/shared': 3.3.8 + '@vue/shared': 3.4.3 dev: true - /@vue/runtime-core@3.3.8: - resolution: {integrity: sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==} + /@vue/runtime-core@3.4.3: + resolution: {integrity: sha512-C1r6QhB1qY7D591RCSFhMULyzL9CuyrGc+3PpB0h7dU4Qqw6GNyo4BNFjHZVvsWncrUlKX3DIKg0Y7rNNr06NQ==} dependencies: - '@vue/reactivity': 3.3.8 - '@vue/shared': 3.3.8 + '@vue/reactivity': 3.4.3 + '@vue/shared': 3.4.3 dev: true - /@vue/runtime-dom@3.3.8: - resolution: {integrity: sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==} + /@vue/runtime-dom@3.4.3: + resolution: {integrity: sha512-wrsprg7An5Ec+EhPngWdPuzkp0BEUxAKaQtN9dPU/iZctPyD9aaXmVtehPJerdQxQale6gEnhpnfywNw3zOv2A==} dependencies: - '@vue/runtime-core': 3.3.8 - '@vue/shared': 3.3.8 - csstype: 3.1.2 + '@vue/runtime-core': 3.4.3 + '@vue/shared': 3.4.3 + csstype: 3.1.3 dev: true - /@vue/server-renderer@3.3.8(vue@3.3.8): - resolution: {integrity: sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==} + /@vue/server-renderer@3.4.3(vue@3.4.3): + resolution: {integrity: sha512-BUxt8oVGMKKsqSkM1uU3d3Houyfy4WAc2SpSQRebNd+XJGATVkW/rO129jkyL+kpB/2VRKzE63zwf5RtJ3XuZw==} peerDependencies: - vue: 3.3.8 + vue: 3.4.3 dependencies: - '@vue/compiler-ssr': 3.3.8 - '@vue/shared': 3.3.8 - vue: 3.3.8(typescript@5.2.2) + '@vue/compiler-ssr': 3.4.3 + '@vue/shared': 3.4.3 + vue: 3.4.3(typescript@5.2.2) dev: true /@vue/shared@3.3.8: resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==} dev: true + /@vue/shared@3.4.3: + resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==} + dev: true + /@webassemblyjs/ast@1.11.6: resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} dependencies: @@ -926,8 +976,8 @@ packages: hasBin: true dev: true - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dev: true /del@4.1.1: @@ -973,6 +1023,11 @@ packages: tapable: 2.2.1 dev: true + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + /envinfo@7.8.1: resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} engines: {node: '>=4'} @@ -1421,6 +1476,12 @@ packages: hasBin: true dev: true + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true @@ -1597,6 +1658,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /prettier@3.0.3: resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} @@ -1918,7 +1988,7 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /vue-loader@17.3.1(@vue/compiler-sfc@3.3.8)(vue@3.3.8)(webpack@5.89.0): + /vue-loader@17.3.1(@vue/compiler-sfc@3.3.8)(vue@3.4.3)(webpack@5.89.0): resolution: {integrity: sha512-nmVu7KU8geOyzsStyyaxID/uBGDMS8BkPXb6Lu2SNkMawriIbb+hYrNtgftHMKxOSkjjjTF5OSSwPo3KP59egg==} peerDependencies: '@vue/compiler-sfc': '*' @@ -1933,24 +2003,24 @@ packages: '@vue/compiler-sfc': 3.3.8 chalk: 4.1.2 hash-sum: 2.0.0 - vue: 3.3.8(typescript@5.2.2) + vue: 3.4.3(typescript@5.2.2) watchpack: 2.4.0 webpack: 5.89.0(esbuild@0.19.5)(webpack-cli@5.1.4) dev: true - /vue@3.3.8(typescript@5.2.2): - resolution: {integrity: sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==} + /vue@3.4.3(typescript@5.2.2): + resolution: {integrity: sha512-GjN+culMAGv/mUbkIv8zMKItno8npcj5gWlXkSxf1SPTQf8eJ4A+YfHIvQFyL1IfuJcMl3soA7SmN1fRxbf/wA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.3.8 - '@vue/compiler-sfc': 3.3.8 - '@vue/runtime-dom': 3.3.8 - '@vue/server-renderer': 3.3.8(vue@3.3.8) - '@vue/shared': 3.3.8 + '@vue/compiler-dom': 3.4.3 + '@vue/compiler-sfc': 3.4.3 + '@vue/runtime-dom': 3.4.3 + '@vue/server-renderer': 3.4.3(vue@3.4.3) + '@vue/shared': 3.4.3 typescript: 5.2.2 dev: true From 50d4e807e860aa7e5c875098ec91a2a6f0e4fd66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 10:17:17 +0200 Subject: [PATCH 02/14] Bump jsondiffpatch from 0.5.0 to 0.6.0 (#20) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [jsondiffpatch](https://github.com/benjamine/jsondiffpatch) from 0.5.0 to 0.6.0.
Release notes

Sourced from jsondiffpatch's releases.

v0.6.0

Breaking changes

  • This package is now pure ESM. For more info, please read Sindre Sorhus's FAQ (#350).
  • Supported Node versions are ^18.0.0 || >=20.0.0 (#350).
  • Requires ES6 support (#350).
  • There is no longer a default export. Import this package by using import * as jsondiffpatch from 'jsondiffpatch' or by importing individual methods (#350).
  • Formatters are no longer exported from the main entry-point and must be imported from subpaths (#350):
    • import * as annotatedFormatter from 'jsondiffpatch/formatters/annotated'
    • import * as baseFormatter from 'jsondiffpatch/formatters/base'
    • import * as consoleFormatter from 'jsondiffpatch/formatters/console'
    • import * as htmlFormatter from 'jsondiffpatch/formatters/html'
    • import * as jsonpatchFormatter from 'jsondiffpatch/formatters/jsonpatch'
  • Updated CSS imports (#350):
    • import 'jsondiffpatch/formatters/styles/html.css'
    • import 'jsondiffpatch/formatters/styles/annotated.css'
  • The main entry-point no longer includes text diffing by default. Either pass in the diff-match-patch library via the textDiff.diffMatchPatch option, or use the jsondiffpatch/with-text-diffs entry point that is included for convenience (#352).
  • Context.switchTo() has been removed (#345).
  • BaseFormatter.typeFormattterErrorFormatter() now throws an error instead of returning a string (#345).

Other changes

New Contributors

Full Changelog: https://github.com/benjamine/jsondiffpatch/compare/v0.5.0...v0.6.0

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jsondiffpatch&package-manager=npm_and_yarn&previous-version=0.5.0&new-version=0.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 31 ++++++++++++++++--------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index a075963..da500db 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "css-loader": "6.8.1", "esbuild": "0.19.5", "esbuild-loader": "4.0.2", - "jsondiffpatch": "0.5.0", + "jsondiffpatch": "0.6.0", "prettier": "3.0.3", "sass": "1.69.5", "sass-loader": "13.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c14f9ac..adb6156 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,8 +31,8 @@ devDependencies: specifier: 4.0.2 version: 4.0.2(webpack@5.89.0) jsondiffpatch: - specifier: 0.5.0 - version: 0.5.0 + specifier: 0.6.0 + version: 0.6.0 prettier: specifier: 3.0.3 version: 3.0.3 @@ -389,6 +389,10 @@ packages: '@types/har-format': 1.2.12 dev: true + /@types/diff-match-patch@1.0.36: + resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + dev: true + /@types/eslint-scope@3.7.4: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} dependencies: @@ -852,14 +856,6 @@ packages: resolution: {integrity: sha512-AZ+9tFXw1sS0o0jcpJQIXvFTOB/xGiQ4OQ2t98QX3NDn2EZTSRBC801gxrsGgViuq2ak/NLkNgSNEPtCr5lfKg==} dev: true - /chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -868,6 +864,11 @@ packages: supports-color: 7.2.0 dev: true + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -1365,15 +1366,15 @@ packages: hasBin: true dev: true - /jsondiffpatch@0.5.0: - resolution: {integrity: sha512-Quz3MvAwHxVYNXsOByL7xI5EB2WYOeFswqaHIA3qOK3isRWTxiplBEocmmru6XmxDB2L7jDNYtYA4FyimoAFEw==} - engines: {node: '>=8.17.0'} + /jsondiffpatch@0.6.0: + resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: - chalk: 3.0.0 + '@types/diff-match-patch': 1.0.36 + chalk: 5.3.0 diff-match-patch: 1.0.5 dev: true - bundledDependencies: [] /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} From de58d5fd3b6320655cec9d8280dbd73ff0d2c308 Mon Sep 17 00:00:00 2001 From: "A. Block" <3756473+zendive@users.noreply.github.com> Date: Thu, 4 Jan 2024 10:39:08 +0200 Subject: [PATCH 03/14] make it work in firefox v120 (#19) --- .gitignore | 7 ++-- .prettierignore | 1 - Makefile | 37 ++++++++++++++----- README.md | 1 + bundle/js/jsdiff-console.js | 1 - bundle/js/jsdiff-devtools.js | 1 - bundle/js/jsdiff-panel.js | 29 --------------- bundle/js/jsdiff-proxy.js | 1 - manifest.json => manifest.chrome.json | 2 +- manifest.firefox.json | 34 ++++++++++++++++++ package.json | 7 ++-- pnpm-lock.yaml | 43 +++++++++++----------- src/@types/index.d.ts | 8 +++++ src/firefox/background-script.ts | 22 ++++++++++++ src/jsdiff-console.ts | 18 ++++++++-- src/jsdiff-devtools.ts | 14 ++++---- src/{view/app.js => jsdiff-panel.js} | 3 +- src/view/panel.vue | 51 +++++++++++++++++++-------- tsconfig.json | 12 ++----- webpack.config.ts | 11 ++++-- 20 files changed, 194 insertions(+), 109 deletions(-) delete mode 100644 bundle/js/jsdiff-console.js delete mode 100644 bundle/js/jsdiff-devtools.js delete mode 100644 bundle/js/jsdiff-panel.js delete mode 100644 bundle/js/jsdiff-proxy.js rename manifest.json => manifest.chrome.json (98%) create mode 100644 manifest.firefox.json create mode 100644 src/firefox/background-script.ts rename src/{view/app.js => jsdiff-panel.js} (56%) diff --git a/.gitignore b/.gitignore index 9690fd9..6c14427 100644 --- a/.gitignore +++ b/.gitignore @@ -8,9 +8,8 @@ node_modules/ # os .DS_Store -# typescript output -.ts-built - -# application files not for git +# application autogenerated files not for git *.js.map *.zip +manifest.json +bundle/js diff --git a/.prettierignore b/.prettierignore index a1a895b..137915a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,3 @@ /bundle/js -.ts-built *.min.js pnpm-lock.yaml diff --git a/Makefile b/Makefile index 09b7ab1..25b9bea 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,10 @@ -ZIP_FILE="extension.zip" +ZIP_CHROME_FILE="extension.chrome.zip" +ZIP_FIREFOX_FILE="extension.firefox.zip" HASH_ALG="sha384" .PHONY: - install clean all lint dev prod zip + install clean all lint dev prod zip_chrome zip_firefox + tune2chrome tune2firefox install: npm i -g pnpm @@ -10,13 +12,14 @@ install: clean: rm -rf ./node_modules - rm -rf $(ZIP_FILE) + rm -rf $(ZIP_CHROME_FILE) $(ZIP_FIREFOX_FILE) rm -rf ./bundle/js/ all: make lint make prod - make zip + make zip_chrome + make zip_firefox lint: npx prettier . --write @@ -27,12 +30,28 @@ dev: npx webpack --progress --watch --mode=development prod: + rm -rf ./bundle/js/ NODE_OPTIONS="--loader=ts-node/esm --no-warnings=ExperimentalWarning" \ NODE_ENV="production" \ npx webpack --mode=production -zip: - rm -rf $(ZIP_FILE) - zip -r $(ZIP_FILE) ./bundle ./manifest.json > /dev/null - FILE_HASH=$$(openssl dgst -$(HASH_ALG) -binary $(ZIP_FILE) | openssl base64 -A); \ - echo "$(ZIP_FILE) $(HASH_ALG):$$FILE_HASH" +zip_chrome: + make tune2chrome + rm -rf $(ZIP_CHROME_FILE) + zip -r $(ZIP_CHROME_FILE) ./bundle ./manifest.json > /dev/null + zip --delete $(ZIP_CHROME_FILE) "bundle/js/firefox/*" + FILE_HASH=$$(openssl dgst -$(HASH_ALG) -binary $(ZIP_CHROME_FILE) | openssl base64 -A); \ + echo "$(ZIP_CHROME_FILE) $(HASH_ALG):$$FILE_HASH" + +zip_firefox: + make tune2firefox + rm -rf $(ZIP_FIREFOX_FILE) + zip -r $(ZIP_FIREFOX_FILE) ./bundle ./manifest.json > /dev/null + FILE_HASH=$$(openssl dgst -$(HASH_ALG) -binary $(ZIP_FIREFOX_FILE) | openssl base64 -A); \ + echo "$(ZIP_FIREFOX_FILE) $(HASH_ALG):$$FILE_HASH" + +tune2chrome: + cp manifest.chrome.json manifest.json + +tune2firefox: + cp manifest.firefox.json manifest.json diff --git a/README.md b/README.md index aa957a7..695425f 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,7 @@ Historically, left side represents the old state and right side the new state. ```sh make install # to install dependencies make all # build for prod and make extension.zip +make tune2chrome # or tune2firefox for relevant manifest make dev # local development ``` diff --git a/bundle/js/jsdiff-console.js b/bundle/js/jsdiff-console.js deleted file mode 100644 index 515237a..0000000 --- a/bundle/js/jsdiff-console.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var h={};const o={EMPTY:"\u27EAempty\u27EB",UNDEFINED:"\u27EAundefined\u27EB",NULL:"\u27EAnull\u27EB",NATIVE_FUNCTION:"\u0192\u27EAnative\u27EB",EXCEPTION_FALLBACK:"\u2049\uFE0F \u27EAexception\u27EB",EXCEPTION:n=>`\u2049\uFE0F \u27EA${n}\u27EB`,RECURRING_ARRAY:n=>`0x${n}: [\u267B\uFE0F]`,RECURRING_OBJECT:n=>`0x${n}: {\u267B\uFE0F}`,RECURRING_SET:n=>`0x${n}: Set[\u267B\uFE0F]`,RECURRING_MAP:n=>`0x${n}: Map{\u267B\uFE0F}`,UNSERIALIZABLE:n=>`0x${n}: \u27EAunserializable\u27EB`,SYMBOL:(n,e)=>`0x${e}: ${n}`,FUNCTION:(n,e)=>`\u0192${n?` ${n}`:""}\u27EA${e}\u27EB`,NUMERIC:n=>typeof n=="bigint"?`BigInt\u27EA${n}\u27EB`:`Number\u27EA${n}\u27EB`},g={NO_CONNECTION:"Could not establish connection. Receiving end does not exist.",PORT_CLOSED:"The message port closed before a response was received.",QUOTA_EXCEEDED:"QUOTA_BYTES quota exceeded"};function x(n){return n!=null}async function O(n){const e=new TextEncoder().encode(n),t=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(t)).map(s=>s.toString(16).padStart(2,"0").toUpperCase()).join("")}class B{#n;#e=0;constructor(){this.#n=new Map}clear(){this.#n.clear()}#t(e){return e.toString(16).padStart(4,"0")}lookup(e,t){let i=this.#n.get(e);if(!i){++this.#e;const r=this.#t(this.#e);i={name:p(e)?t(e.toString(),r):t(r),seen:!1},this.#n.set(e,i)}return i}}async function f(n,e){try{window.postMessage({source:"jsdiff-console-to-proxy-inprogress",on:!0},"*");for(const t of["push","left","right"])if(Reflect.has(e,t)){const i=e[t];i===void 0?e[t]=o.UNDEFINED:i===null?e[t]=o.NULL:e[t]=await n(i)}window.postMessage({source:"jsdiff-console-to-proxy-compare",payload:e},"*")}catch(t){console.error("console.diff()",t),window.postMessage({source:"jsdiff-console-to-proxy-inprogress",on:!1},"*")}}async function F(n){let e=new Set;const t=JSON.parse(JSON.stringify(n,L.bind(null,e)));return e.clear(),e=null,t}async function l(n){let e=new B;const t=await u(e,n);return e.clear(),e=null,t}async function u(n,e){let t=e;if(R(e)){const{name:i}=n.lookup(e,o.UNSERIALIZABLE);t=i}else if(N(e))t=await m(e);else if(p(e)){const{name:i}=n.lookup(e,o.SYMBOL);t=i}else C(e)?t=await S(n,e,o.RECURRING_ARRAY):y(e)?t=await S(n,e,o.RECURRING_SET):U(e)?t=await T(n,e):d(e)?t=await b(n,e):w(e)?t=o.NUMERIC(e):e===void 0&&(t=o.UNDEFINED);return t}function w(n){return typeof n=="bigint"||Number.isNaN(n)||n===-1/0||n===1/0}async function S(n,e,t){const i=n.lookup(e,t);let r;if(i.seen)r=i.name;else{i.seen=!0;const s=[];for(const c of e)s.push(await u(n,c));r=s}return r}async function T(n,e){const t=n.lookup(e,o.RECURRING_MAP);let i;if(t.seen)i=t.name;else{t.seen=!0;const r={};for(const[s,c]of e){const E=await _(n,s),a=await u(n,c);r[E]=a}i=r}return i}async function _(n,e){let t;if(R(e)){const{name:i}=n.lookup(e,o.UNSERIALIZABLE);t=i}else if(N(e))t=await m(e);else if(p(e)){const{name:i}=n.lookup(e,o.SYMBOL);t=i}else if(C(e)){const{name:i}=n.lookup(e,o.RECURRING_ARRAY);t=i}else if(y(e)){const{name:i}=n.lookup(e,o.RECURRING_SET);t=i}else if(U(e)){const{name:i}=n.lookup(e,o.RECURRING_MAP);t=i}else if(d(e)){const{name:i}=n.lookup(e,o.RECURRING_OBJECT);t=i}else w(e)?t=o.NUMERIC(e):e===void 0?t=o.UNDEFINED:t=String(e);return t}async function b(n,e){const t=n.lookup(e,o.RECURRING_OBJECT);let i;if(t.seen)i=t.name;else if(t.seen=!0,M(e)){const r=D(e);i=await u(n,r)}else{const r={},s=Reflect.ownKeys(e);for(const c of s){let E,a;if(p(c)){const{name:I}=n.lookup(c,o.SYMBOL);E=I}else E=c;try{a=await u(n,e[c])}catch(I){a=A(I)}r[E]=a}i=r}return i}async function m(n){const e=n.toString();if(e.endsWith("{ [native code] }"))return o.NATIVE_FUNCTION;{const t=await O(e);return o.FUNCTION(n.name,t)}}function D(n){let e;try{e=n.toJSON()}catch(t){e=A(t)}return e}function A(n){return typeof n?.toString=="function"?o.EXCEPTION(n.toString()):o.EXCEPTION_FALLBACK}function L(n,e,t){try{if(R(t))return;if(N(t))return t.toString();if(d(t)){if(n.has(t))return;n.add(t)}return t}catch(i){return A(i)}}function C(n){return n instanceof Array||n instanceof Uint8Array||n instanceof Uint8ClampedArray||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof BigUint64Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof BigInt64Array||n instanceof Float32Array||n instanceof Float64Array}function N(n){return typeof n=="function"&&"toString"in n&&typeof n.toString=="function"}function y(n){return n instanceof Set}function U(n){return n instanceof Map}function M(n){let e;try{e=n!==null&&typeof n=="object"&&"toJSON"in n&&typeof n.toJSON=="function"}catch{e=!1}return e}function R(n){return n instanceof Element||n instanceof Document}function p(n){return typeof n=="symbol"}function d(n){return n!==null&&typeof n=="object"||n instanceof Object}Object.assign(console,{diff:(...n)=>{f(l,n.length===1?{push:n[0],timestamp:Date.now()}:{left:n[0],right:n[1],timestamp:Date.now()})},diffLeft:n=>{f(l,{left:n,timestamp:Date.now()})},diffRight:n=>{f(l,{right:n,timestamp:Date.now()})},diffPush:n=>{f(l,{push:n,timestamp:Date.now()})},diff_:(...n)=>{f(F,n.length===1?{push:n[0],timestamp:Date.now()}:{left:n[0],right:n[1],timestamp:Date.now()})}}),console.debug("\u271A console.diff()")})(); diff --git a/bundle/js/jsdiff-devtools.js b/bundle/js/jsdiff-devtools.js deleted file mode 100644 index 95d1f7b..0000000 --- a/bundle/js/jsdiff-devtools.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var n={};chrome.devtools.inspectedWindow.tabId!==null&&chrome.devtools.panels.create("JSDiff","/bundle/img/panel-icon28.png","/bundle/jsdiff-panel.html",e=>{e.onSearch.addListener(async(s,a)=>{await chrome.runtime.sendMessage({source:"jsdiff-devtools-to-panel-search",params:{cmd:s,query:a}})})})})(); diff --git a/bundle/js/jsdiff-panel.js b/bundle/js/jsdiff-panel.js deleted file mode 100644 index b38339b..0000000 --- a/bundle/js/jsdiff-panel.js +++ /dev/null @@ -1,29 +0,0 @@ -(()=>{var Sa={360:(me,J,te)=>{"use strict";te.d(J,{Z:()=>we});var ie=te(650),fe=te.n(ie),ne=te(196),re=te.n(ne),oe=re()(fe());oe.push([me.id,'.jsondiffpatch-delta{font-family:"Bitstream Vera Sans Mono","DejaVu Sans Mono",Monaco,Courier,monospace;font-size:12px;margin:0;padding:0 0 0 12px;display:inline-block}.jsondiffpatch-delta pre{font-family:"Bitstream Vera Sans Mono","DejaVu Sans Mono",Monaco,Courier,monospace;font-size:12px;margin:0;padding:0;display:inline-block}ul.jsondiffpatch-delta{list-style-type:none;padding:0 0 0 20px;margin:0}.jsondiffpatch-delta ul{list-style-type:none;padding:0 0 0 20px;margin:0}.jsondiffpatch-added .jsondiffpatch-property-name,.jsondiffpatch-added .jsondiffpatch-value pre,.jsondiffpatch-modified .jsondiffpatch-right-value pre,.jsondiffpatch-textdiff-added{background:#bfb}.jsondiffpatch-deleted .jsondiffpatch-property-name,.jsondiffpatch-deleted pre,.jsondiffpatch-modified .jsondiffpatch-left-value pre,.jsondiffpatch-textdiff-deleted{background:#fbb;text-decoration:line-through}.jsondiffpatch-unchanged,.jsondiffpatch-movedestination{color:gray}.jsondiffpatch-unchanged,.jsondiffpatch-movedestination>.jsondiffpatch-value{transition:all .5s;-webkit-transition:all .5s;overflow-y:hidden}.jsondiffpatch-unchanged-showing .jsondiffpatch-unchanged,.jsondiffpatch-unchanged-showing .jsondiffpatch-movedestination>.jsondiffpatch-value{max-height:100px}.jsondiffpatch-unchanged-hidden .jsondiffpatch-unchanged,.jsondiffpatch-unchanged-hidden .jsondiffpatch-movedestination>.jsondiffpatch-value{max-height:0}.jsondiffpatch-unchanged-hiding .jsondiffpatch-movedestination>.jsondiffpatch-value,.jsondiffpatch-unchanged-hidden .jsondiffpatch-movedestination>.jsondiffpatch-value{display:block}.jsondiffpatch-unchanged-visible .jsondiffpatch-unchanged,.jsondiffpatch-unchanged-visible .jsondiffpatch-movedestination>.jsondiffpatch-value{max-height:100px}.jsondiffpatch-unchanged-hiding .jsondiffpatch-unchanged,.jsondiffpatch-unchanged-hiding .jsondiffpatch-movedestination>.jsondiffpatch-value{max-height:0}.jsondiffpatch-unchanged-showing .jsondiffpatch-arrow,.jsondiffpatch-unchanged-hiding .jsondiffpatch-arrow{display:none}.jsondiffpatch-value{display:inline-block}.jsondiffpatch-property-name{display:inline-block;padding-right:5px;vertical-align:top}.jsondiffpatch-property-name:after{content:": "}.jsondiffpatch-child-node-type-array>.jsondiffpatch-property-name:after{content:": ["}.jsondiffpatch-child-node-type-array:after{content:"],"}div.jsondiffpatch-child-node-type-array:before{content:"["}div.jsondiffpatch-child-node-type-array:after{content:"]"}.jsondiffpatch-child-node-type-object>.jsondiffpatch-property-name:after{content:": {"}.jsondiffpatch-child-node-type-object:after{content:"},"}div.jsondiffpatch-child-node-type-object:before{content:"{"}div.jsondiffpatch-child-node-type-object:after{content:"}"}.jsondiffpatch-value pre:after{content:","}li:last-child>.jsondiffpatch-value pre:after,.jsondiffpatch-modified>.jsondiffpatch-left-value pre:after{content:""}.jsondiffpatch-modified .jsondiffpatch-value{display:inline-block}.jsondiffpatch-modified .jsondiffpatch-right-value{margin-left:5px}.jsondiffpatch-moved .jsondiffpatch-value{display:none}.jsondiffpatch-moved .jsondiffpatch-moved-destination{display:inline-block;background:#ffb;color:#888}.jsondiffpatch-moved .jsondiffpatch-moved-destination:before{content:" => "}ul.jsondiffpatch-textdiff{padding:0}.jsondiffpatch-textdiff-location{color:#bbb;display:inline-block;min-width:60px}.jsondiffpatch-textdiff-line{display:inline-block}.jsondiffpatch-textdiff-line-number:after{content:","}.jsondiffpatch-error{background:red;color:#fff;font-weight:bold}',""]);const we=oe},509:(me,J,te)=>{"use strict";te.d(J,{Z:()=>we});var ie=te(650),fe=te.n(ie),ne=te(196),re=te.n(ne),oe=re()(fe());oe.push([me.id,".header{flex-shrink:0;width:100%;background-color:var(--header-background);border-bottom:var(--header-border);display:flex;align-items:center;height:var(--header-height);min-width:512px;user-select:none}.header .-toolbox{display:flex;justify-content:center;align-items:center;padding-left:10px}.header .-toolbox .btn{height:var(--header-height);cursor:pointer;border:none;border-radius:0;outline:none;background-color:var(--button-background);color:var(--colour-text);margin:0 2px}.header .-toolbox .btn:hover{background-color:var(--button-hackground-hover)}.header .-toolbox .-last-updated{cursor:default;margin-left:10px}.header .-toolbox .-last-updated .-value{font-weight:bold;color:var(--colour-text);opacity:.5}.header .-last-error{display:flex;justify-content:center;align-items:center;padding-left:10px;color:#b62121}.header .-badge{position:fixed;top:0;right:1rem;display:flex;flex-direction:column;align-items:center;padding:4px 4px}.header .-badge .-version{font-family:monospace}.header .-badge .-icon img{width:32px}",""]);const we=oe},978:(me,J,te)=>{"use strict";te.d(J,{Z:()=>we});var ie=te(650),fe=te.n(ie),ne=te(196),re=te.n(ne),oe=re()(fe());oe.push([me.id,".panel-loader[data-v-56122f3a]{background-color:rgba(0,0,0,0);height:2px;width:100%;overflow:hidden;position:fixed;top:0;display:block}.panel-loader>.-eye[data-v-56122f3a]{background-image:linear-gradient(to right, rgba(179, 7, 247, 0) 15%, rgb(241, 14, 14) 50%, rgba(179, 7, 247, 0) 85%);color:rgba(0,0,0,0);height:100%;width:20%;animation:wt-scanning-eye-animation-56122f3a 1s linear infinite alternate,wt-scanning-eye-animation-blink-56122f3a 1.25s linear infinite alternate}@keyframes wt-scanning-eye-animation-56122f3a{from{transform:translateX(-100%)}to{transform:translateX(500%)}}@keyframes wt-scanning-eye-animation-blink-56122f3a{0%{filter:hue-rotate(0deg)}80%{filter:hue-rotate(0deg)}100%{filter:hue-rotate(360deg)}}",""]);const we=oe},993:(me,J,te)=>{"use strict";te.d(J,{Z:()=>we});var ie=te(650),fe=te.n(ie),ne=te(196),re=te.n(ne),oe=re()(fe());oe.push([me.id,":root{--colour-background: #fff;--colour-text: #000;--colour-text-diff: #000;--colour-found: 0, 222, 255;--header-height: 1.625rem;--header-background: #fff;--header-border: 1px solid #bbb;--button-background: rgba(0, 0, 0, 0.05);--button-hackground-hover: rgba(0, 0, 0, 0.3);--diff-added-background: #bbffbb;--diff-deleted-background: #ffbbbb}.dark{--colour-background: rgb(32 33 36);--colour-text: rgb(189, 198, 207);--colour-found: 0, 191, 255;--header-background: rgb(41, 42, 45);--header-border: 1px solid rgb(73, 76, 80)}*{box-sizing:border-box}body{margin:0 0 0 0;padding:0;overflow:hidden;height:100%}.jsdiff-panel{background-color:var(--colour-background);color:var(--colour-text);display:flex;flex-direction:column;height:100vh}.jsdiff-panel .-body{flex:1 0 0%;overflow:auto;overflow-wrap:break-word;overflow-anchor:none;transform:translateZ(0)}.jsdiff-panel .-body .-match{display:flex;align-items:center;height:100%}.jsdiff-panel .-body .-match .-center{margin:0 auto;text-align:center;font-size:26px;color:#bbb}.jsdiff-panel .-body .-empty{display:flex;height:calc(100vh - var(--header-height));justify-content:center;align-items:center}.jsdiff-panel .-body .-empty .-links{margin-top:16px;font-size:11px}.jsdiff-panel .-body .-empty .-center{margin:0 auto;text-align:center;font-size:26px;color:#bbb}.jsdiff-panel .-body .-content{padding:.5rem 0}.jsdiff-panel .-body .-content .-delta .jsdiff-found{outline:2px solid rgba(var(--colour-found), 1);outline-offset:-1px}.jsdiff-panel .-body .-content .-delta .jsdiff-found.jsdiff-found-this{color:var(--colour-text-diff);animation:found_this .8s infinite alternate}@keyframes found_this{0%{background-color:rgba(var(--colour-found), 0.6)}100%{background-color:rgba(var(--colour-found), 1)}}.jsdiff-panel .jsondiffpatch-delta pre{white-space:pre-wrap;word-break:break-all}.jsdiff-panel .jsondiffpatch-added .jsondiffpatch-property-name,.jsdiff-panel .jsondiffpatch-added .jsondiffpatch-value pre,.jsdiff-panel .jsondiffpatch-modified .jsondiffpatch-right-value pre,.jsdiff-panel .jsondiffpatch-textdiff-added{background:var(--diff-added-background);color:var(--colour-text-diff)}.jsdiff-panel .jsondiffpatch-deleted .jsondiffpatch-property-name,.jsdiff-panel .jsondiffpatch-deleted pre,.jsdiff-panel .jsondiffpatch-modified .jsondiffpatch-left-value pre,.jsdiff-panel .jsondiffpatch-textdiff-deleted{background:var(--diff-deleted-background);text-decoration:line-through;color:var(--colour-text-diff)}",""]);const we=oe},196:me=>{"use strict";me.exports=function(J){var te=[];return te.toString=function(){return this.map(function(fe){var ne="",re=typeof fe[5]<"u";return fe[4]&&(ne+="@supports (".concat(fe[4],") {")),fe[2]&&(ne+="@media ".concat(fe[2]," {")),re&&(ne+="@layer".concat(fe[5].length>0?" ".concat(fe[5]):""," {")),ne+=J(fe),re&&(ne+="}"),fe[2]&&(ne+="}"),fe[4]&&(ne+="}"),ne}).join("")},te.i=function(fe,ne,re,oe,we){typeof fe=="string"&&(fe=[[null,fe,void 0]]);var ze={};if(re)for(var Se=0;Se"u"||(Te[1]="@layer".concat(Te[5].length>0?" ".concat(Te[5]):""," {").concat(Te[1],"}")),Te[5]=we),ne&&(Te[2]&&(Te[1]="@media ".concat(Te[2]," {").concat(Te[1],"}")),Te[2]=ne),oe&&(Te[4]?(Te[1]="@supports (".concat(Te[4],") {").concat(Te[1],"}"),Te[4]=oe):Te[4]="".concat(oe)),te.push(Te))}},te}},650:me=>{"use strict";me.exports=function(J){return J[1]}},298:()=>{},301:function(me,J,te){(function(ie,fe){fe(J,te(298))})(this,function(ie,fe){"use strict";class ne{constructor(s){this.selfOptions=s||{},this.pipes={}}options(s){return s&&(this.selfOptions=s),this.selfOptions}pipe(s,c){let d=c;if(typeof s=="string"){if(typeof d>"u")return this.pipes[s];this.pipes[s]=d}if(s&&s.name){if(d=s,d.processor===this)return d;this.pipes[d.name]=d}return d.processor=this,d}process(s,c){let d=s;d.options=this.options();let m=c||s.pipe||"default",l,f;for(;m;)typeof d.nextAfterChildren<"u"&&(d.next=d.nextAfterChildren,d.nextAfterChildren=null),typeof m=="string"&&(m=this.pipe(m)),m.process(d),f=d,l=m,m=null,d&&d.next&&(d=d.next,m=f.nextPipe||d.pipe||l);return d.hasResult?d.result:void 0}}class re{constructor(s){this.name=s,this.filters=[]}process(s){if(!this.processor)throw new Error("add this pipe to a processor before using it");const c=this.debug,d=this.filters.length,m=s;for(let l=0;ls.filterName)}after(s){const c=this.indexOf(s),d=Array.prototype.slice.call(arguments,1);if(!d.length)throw new Error("a filter is required");return d.unshift(c+1,0),Array.prototype.splice.apply(this.filters,d),this}before(s){const c=this.indexOf(s),d=Array.prototype.slice.call(arguments,1);if(!d.length)throw new Error("a filter is required");return d.unshift(c,0),Array.prototype.splice.apply(this.filters,d),this}replace(s){const c=this.indexOf(s),d=Array.prototype.slice.call(arguments,1);if(!d.length)throw new Error("a filter is required");return d.unshift(c,1),Array.prototype.splice.apply(this.filters,d),this}remove(s){const c=this.indexOf(s);return this.filters.splice(c,1),this}clear(){return this.filters.length=0,this}shouldHaveResult(s){if(s===!1){this.resultCheck=null;return}if(this.resultCheck)return;const c=this;return this.resultCheck=d=>{if(!d.hasResult){console.log(d);const m=new Error(`${c.name} failed`);throw m.noResult=!0,m}},this}}class oe{setResult(s){return this.result=s,this.hasResult=!0,this}exit(){return this.exiting=!0,this}switchTo(s,c){return typeof s=="string"||s instanceof re?this.nextPipe=s:(this.next=s,c&&(this.nextPipe=c)),this}push(s,c){return s.parent=this,typeof c<"u"&&(s.childName=c),s.root=this.root||this,s.options=s.options||this.options,this.children?(this.children[this.children.length-1].next=s,this.children.push(s)):(this.children=[s],this.nextAfterChildren=this.next||null,this.next=s),s.next=this,this}}const we=typeof Array.isArray=="function"?Array.isArray:C=>C instanceof Array;function ze(C){const s=/^\/(.*)\/([gimyu]*)$/.exec(C.toString());return new RegExp(s[1],s[2])}function Se(C){if(typeof C!="object")return C;if(C===null)return null;if(we(C))return C.map(Se);if(C instanceof Date)return new Date(C.getTime());if(C instanceof RegExp)return ze(C);const s={};for(const c in C)Object.prototype.hasOwnProperty.call(C,c)&&(s[c]=Se(C[c]));return s}class pe extends oe{constructor(s,c){super(),this.left=s,this.right=c,this.pipe="diff"}setResult(s){if(this.options.cloneDiffValues&&typeof s=="object"){const c=typeof this.options.cloneDiffValues=="function"?this.options.cloneDiffValues:Se;typeof s[0]=="object"&&(s[0]=c(s[0])),typeof s[1]=="object"&&(s[1]=c(s[1]))}return oe.prototype.setResult.apply(this,arguments)}}class ee extends oe{constructor(s,c){super(),this.left=s,this.delta=c,this.pipe="patch"}}class Te extends oe{constructor(s){super(),this.delta=s,this.pipe="reverse"}}const Xe=typeof Array.isArray=="function"?Array.isArray:function(C){return C instanceof Array},Ct=function(s){if(s.left===s.right){s.setResult(void 0).exit();return}if(typeof s.left>"u"){if(typeof s.right=="function")throw new Error("functions are not supported");s.setResult([s.right]).exit();return}if(typeof s.right>"u"){s.setResult([s.left,0,0]).exit();return}if(typeof s.left=="function"||typeof s.right=="function")throw new Error("functions are not supported");if(s.leftType=s.left===null?"null":typeof s.left,s.rightType=s.right===null?"null":typeof s.right,s.leftType!==s.rightType){s.setResult([s.left,s.right]).exit();return}if(s.leftType==="boolean"||s.leftType==="number"){s.setResult([s.left,s.right]).exit();return}if(s.leftType==="object"&&(s.leftIsArray=Xe(s.left)),s.rightType==="object"&&(s.rightIsArray=Xe(s.right)),s.leftIsArray!==s.rightIsArray){s.setResult([s.left,s.right]).exit();return}s.left instanceof RegExp&&(s.right instanceof RegExp?s.setResult([s.left.toString(),s.right.toString()]).exit():s.setResult([s.left,s.right]).exit())};Ct.filterName="trivial";const Et=function(s){if(typeof s.delta>"u"){s.setResult(s.left).exit();return}if(s.nested=!Xe(s.delta),!s.nested){if(s.delta.length===1){s.setResult(s.delta[0]).exit();return}if(s.delta.length===2){if(s.left instanceof RegExp){const c=/^\/(.*)\/([gimyu]+)$/.exec(s.delta[1]);if(c){s.setResult(new RegExp(c[1],c[2])).exit();return}}s.setResult(s.delta[1]).exit();return}s.delta.length===3&&s.delta[2]===0&&s.setResult(void 0).exit()}};Et.filterName="trivial";const ve=function(s){if(typeof s.delta>"u"){s.setResult(s.delta).exit();return}if(s.nested=!Xe(s.delta),!s.nested){if(s.delta.length===1){s.setResult([s.delta[0],0,0]).exit();return}if(s.delta.length===2){s.setResult([s.delta[1],s.delta[0]]).exit();return}s.delta.length===3&&s.delta[2]===0&&s.setResult([s.delta[0]]).exit()}};ve.filterName="trivial";function Fe(C){if(!C||!C.children)return;const s=C.children.length;let c,d=C.result;for(let m=0;m"u")&&(d=d||{},d[c.childName]=c.result);d&&C.leftIsArray&&(d._t="a"),C.setResult(d).exit()}Fe.filterName="collectChildren";function Dt(C){if(C.leftIsArray||C.leftType!=="object")return;let s,c;const d=C.options.propertyFilter;for(s in C.left)Object.prototype.hasOwnProperty.call(C.left,s)&&(d&&!d(s,C)||(c=new pe(C.left[s],C.right[s]),C.push(c,s)));for(s in C.right)Object.prototype.hasOwnProperty.call(C.right,s)&&(d&&!d(s,C)||typeof C.left[s]>"u"&&(c=new pe(void 0,C.right[s]),C.push(c,s)));if(!C.children||C.children.length===0){C.setResult(void 0).exit();return}C.exit()}Dt.filterName="objects";const Ie=function(s){if(!s.nested||s.delta._t)return;let c,d;for(c in s.delta)d=new ee(s.left[c],s.delta[c]),s.push(d,c);s.exit()};Ie.filterName="objects";const tr=function(s){if(!s||!s.children||s.delta._t)return;const c=s.children.length;let d;for(let m=0;mb?--l:--m}return f};var uo={get:function(C,s,c,d){const m=d||{},l=Jr(C,s,c||Ys,m),f=rr(l,C,s,m);return typeof C=="string"&&typeof s=="string"&&(f.sequence=f.sequence.join("")),f}};const vt=3,Yr=typeof Array.isArray=="function"?Array.isArray:C=>C instanceof Array,Ft=typeof Array.prototype.indexOf=="function"?(C,s)=>C.indexOf(s):(C,s)=>{const c=C.length;for(let d=0;d"u"&&(m.hashCache1[c]=p=h(l,c))):p=h(l),typeof p>"u"||(typeof d=="number"?(m.hashCache2=m.hashCache2||[],b=m.hashCache2[d],typeof b>"u"&&(m.hashCache2[d]=b=h(f,d))):b=h(f),typeof b>"u")?!1:p===b}const ir=function(s){if(!s.leftIsArray)return;const c={objectHash:s.options&&s.options.objectHash,matchByPosition:s.options&&s.options.matchByPosition};let d=0,m=0,l,f,h;const p=s.left,b=s.right,_=p.length,E=b.length;let k;for(_>0&&E>0&&!c.objectHash&&typeof c.matchByPosition!="boolean"&&(c.matchByPosition=!Xs(p,b,_,E));d<_&&d0){for(let Pe=0;Pes[C]-c[C]}},Tt=function(s){if(!s.nested||s.delta._t!=="a")return;let c,d;const m=s.delta,l=s.left;let f=[],h=[];const p=[];for(c in m)if(c!=="_t")if(c[0]==="_")if(m[c][2]===0||m[c][2]===vt)f.push(parseInt(c.slice(1),10));else throw new Error(`only removal or move can be applied at original array indices, invalid diff type: ${m[c][2]}`);else m[c].length===1?h.push({index:parseInt(c,10),value:m[c][0]}):p.push({index:parseInt(c,10),delta:m[c]});for(f=f.sort(An.numerically),c=f.length-1;c>=0;c--){d=f[c];const k=m[`_${d}`],P=l.splice(d,1)[0];k[2]===vt&&h.push({index:k[1],value:P})}h=h.sort(An.numericallyBy("index"));const b=h.length;for(c=0;c0)for(c=0;c<_;c++){const k=p[c];E=new ee(s.left[k.index],k.delta),s.push(E,k.index)}if(!s.children){s.setResult(s.left).exit();return}s.exit()};Tt.filterName="arrays";const Nt=function(s){if(!s||!s.children||s.delta._t!=="a")return;const c=s.children.length;let d;for(let m=0;m{if(typeof s=="string"&&s[0]==="_")return parseInt(s.substr(1),10);if(Yr(c)&&c[2]===0)return`_${s}`;let d=+s;for(const m in C){const l=C[m];if(Yr(l))if(l[2]===vt){const f=parseInt(m.substr(1),10),h=l[1];if(h===+s)return f;f<=d&&h>d?d++:f>=d&&h"u"&&(l=Mn(C.delta,c.childName,c.result)),d[l]!==c.result&&(d[l]=c.result)}C.setResult(d).exit()}or.filterName="arraysCollectChildren";const lr=function(s){s.left instanceof Date?(s.right instanceof Date?s.left.getTime()!==s.right.getTime()?s.setResult([s.left,s.right]):s.setResult(void 0):s.setResult([s.left,s.right]),s.exit()):s.right instanceof Date&&s.setResult([s.left,s.right]).exit()};lr.filterName="dates";function ar(C){return C&&C.__esModule&&Object.prototype.hasOwnProperty.call(C,"default")?C.default:C}var Xr={exports:{}};(function(C){var s=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},c=-1,d=1,m=0;s.Diff=function(l,f){return[l,f]},s.prototype.diff_main=function(l,f,h,p){typeof p>"u"&&(this.Diff_Timeout<=0?p=Number.MAX_VALUE:p=new Date().getTime()+this.Diff_Timeout*1e3);var b=p;if(l==null||f==null)throw new Error("Null input. (diff_main)");if(l==f)return l?[new s.Diff(m,l)]:[];typeof h>"u"&&(h=!0);var _=h,E=this.diff_commonPrefix(l,f),k=l.substring(0,E);l=l.substring(E),f=f.substring(E),E=this.diff_commonSuffix(l,f);var P=l.substring(l.length-E);l=l.substring(0,l.length-E),f=f.substring(0,f.length-E);var L=this.diff_compute_(l,f,_,b);return k&&L.unshift(new s.Diff(m,k)),P&&L.push(new s.Diff(m,P)),this.diff_cleanupMerge(L),L},s.prototype.diff_compute_=function(l,f,h,p){var b;if(!l)return[new s.Diff(d,f)];if(!f)return[new s.Diff(c,l)];var _=l.length>f.length?l:f,E=l.length>f.length?f:l,k=_.indexOf(E);if(k!=-1)return b=[new s.Diff(d,_.substring(0,k)),new s.Diff(m,E),new s.Diff(d,_.substring(k+E.length))],l.length>f.length&&(b[0][0]=b[2][0]=c),b;if(E.length==1)return[new s.Diff(c,l),new s.Diff(d,f)];var P=this.diff_halfMatch_(l,f);if(P){var L=P[0],K=P[1],W=P[2],le=P[3],_e=P[4],Ee=this.diff_main(L,W,h,p),je=this.diff_main(K,le,h,p);return Ee.concat([new s.Diff(m,_e)],je)}return h&&l.length>100&&f.length>100?this.diff_lineMode_(l,f,p):this.diff_bisect_(l,f,p)},s.prototype.diff_lineMode_=function(l,f,h){var p=this.diff_linesToChars_(l,f);l=p.chars1,f=p.chars2;var b=p.lineArray,_=this.diff_main(l,f,!1,h);this.diff_charsToLines_(_,b),this.diff_cleanupSemantic(_),_.push(new s.Diff(m,""));for(var E=0,k=0,P=0,L="",K="";E<_.length;){switch(_[E][0]){case d:P++,K+=_[E][1];break;case c:k++,L+=_[E][1];break;case m:if(k>=1&&P>=1){_.splice(E-k-P,k+P),E=E-k-P;for(var W=this.diff_main(L,K,!1,h),le=W.length-1;le>=0;le--)_.splice(E,0,W[le]);E=E+W.length}P=0,k=0,L="",K="";break}E++}return _.pop(),_},s.prototype.diff_bisect_=function(l,f,h){for(var p=l.length,b=f.length,_=Math.ceil((p+b)/2),E=_,k=2*_,P=new Array(k),L=new Array(k),K=0;Kh);ke++){for(var Pe=-ke+_e;Pe<=ke-Ee;Pe+=2){var Be=E+Pe,Ne;Pe==-ke||Pe!=ke&&P[Be-1]p)Ee+=2;else if(qe>b)_e+=2;else if(le){var Ve=E+W-Pe;if(Ve>=0&&Ve=He)return this.diff_bisectSplit_(l,f,Ne,qe,h)}}}for(var et=-ke+je;et<=ke-xe;et+=2){var Ve=E+et,He;et==-ke||et!=ke&&L[Ve-1]p)xe+=2;else if(dt>b)je+=2;else if(!le){var Be=E+W-et;if(Be>=0&&Be=He)return this.diff_bisectSplit_(l,f,Ne,qe,h)}}}}return[new s.Diff(c,l),new s.Diff(d,f)]},s.prototype.diff_bisectSplit_=function(l,f,h,p,b){var _=l.substring(0,h),E=f.substring(0,p),k=l.substring(h),P=f.substring(p),L=this.diff_main(_,E,!1,b),K=this.diff_main(k,P,!1,b);return L.concat(K)},s.prototype.diff_linesToChars_=function(l,f){var h=[],p={};h[0]="";function b(P){for(var L="",K=0,W=-1,le=h.length;Wp?l=l.substring(h-p):hf.length?l:f,p=l.length>f.length?f:l;if(h.length<4||p.length*2=Ee.length?[Ne,qe,Ve,He,Be]:null}var E=_(h,p,Math.ceil(h.length/4)),k=_(h,p,Math.ceil(h.length/2)),P;if(!E&&!k)return null;k?E?P=E[4].length>k[4].length?E:k:P=k:P=E;var L,K,W,le;l.length>f.length?(L=P[0],K=P[1],W=P[2],le=P[3]):(W=P[0],le=P[1],L=P[2],K=P[3]);var _e=P[4];return[L,K,W,le,_e]},s.prototype.diff_cleanupSemantic=function(l){for(var f=!1,h=[],p=0,b=null,_=0,E=0,k=0,P=0,L=0;_0?h[p-1]:-1,E=0,k=0,P=0,L=0,b=null,f=!0)),_++;for(f&&this.diff_cleanupMerge(l),this.diff_cleanupSemanticLossless(l),_=1;_=_e?(le>=K.length/2||le>=W.length/2)&&(l.splice(_,0,new s.Diff(m,W.substring(0,le))),l[_-1][1]=K.substring(0,K.length-le),l[_+1][1]=W.substring(le),_++):(_e>=K.length/2||_e>=W.length/2)&&(l.splice(_,0,new s.Diff(m,K.substring(0,_e))),l[_-1][0]=d,l[_-1][1]=W.substring(0,W.length-_e),l[_+1][0]=c,l[_+1][1]=K.substring(_e),_++),_++}_++}},s.prototype.diff_cleanupSemanticLossless=function(l){function f(_e,Ee){if(!_e||!Ee)return 6;var je=_e.charAt(_e.length-1),xe=Ee.charAt(0),ke=je.match(s.nonAlphaNumericRegex_),Pe=xe.match(s.nonAlphaNumericRegex_),Be=ke&&je.match(s.whitespaceRegex_),Ne=Pe&&xe.match(s.whitespaceRegex_),qe=Be&&je.match(s.linebreakRegex_),Ve=Ne&&xe.match(s.linebreakRegex_),He=qe&&_e.match(s.blanklineEndRegex_),et=Ve&&Ee.match(s.blanklineStartRegex_);return He||et?5:qe||Ve?4:ke&&!Be&&Ne?3:Be||Ne?2:ke||Pe?1:0}for(var h=1;h=W&&(W=le,P=p,L=b,K=_)}l[h-1][1]!=P&&(P?l[h-1][1]=P:(l.splice(h-1,1),h--),l[h][1]=L,K?l[h+1][1]=K:(l.splice(h+1,1),h--))}h++}},s.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,s.whitespaceRegex_=/\s/,s.linebreakRegex_=/[\r\n]/,s.blanklineEndRegex_=/\n\r?\n$/,s.blanklineStartRegex_=/^\r?\n\r?\n/,s.prototype.diff_cleanupEfficiency=function(l){for(var f=!1,h=[],p=0,b=null,_=0,E=!1,k=!1,P=!1,L=!1;_0?h[p-1]:-1,P=L=!1),f=!0)),_++;f&&this.diff_cleanupMerge(l)},s.prototype.diff_cleanupMerge=function(l){l.push(new s.Diff(m,""));for(var f=0,h=0,p=0,b="",_="",E;f1?(h!==0&&p!==0&&(E=this.diff_commonPrefix(_,b),E!==0&&(f-h-p>0&&l[f-h-p-1][0]==m?l[f-h-p-1][1]+=_.substring(0,E):(l.splice(0,0,new s.Diff(m,_.substring(0,E))),f++),_=_.substring(E),b=b.substring(E)),E=this.diff_commonSuffix(_,b),E!==0&&(l[f][1]=_.substring(_.length-E)+l[f][1],_=_.substring(0,_.length-E),b=b.substring(0,b.length-E))),f-=h+p,l.splice(f,h+p),b.length&&(l.splice(f,0,new s.Diff(c,b)),f++),_.length&&(l.splice(f,0,new s.Diff(d,_)),f++),f++):f!==0&&l[f-1][0]==m?(l[f-1][1]+=l[f][1],l.splice(f,1)):f++,p=0,h=0,b="",_="";break}l[l.length-1][1]===""&&l.pop();var k=!1;for(f=1;ff));E++)b=h,_=p;return l.length!=E&&l[E][0]===c?_:_+(f-b)},s.prototype.diff_prettyHtml=function(l){for(var f=[],h=/&/g,p=//g,_=/\n/g,E=0;E");switch(k){case d:f[E]=''+L+"";break;case c:f[E]=''+L+"";break;case m:f[E]=""+L+"";break}}return f.join("")},s.prototype.diff_text1=function(l){for(var f=[],h=0;hthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var p=this.match_alphabet_(f),b=this;function _(Ne,qe){var Ve=Ne/f.length,He=Math.abs(h-qe);return b.Match_Distance?Ve+He/b.Match_Distance:He?1:Ve}var E=this.Match_Threshold,k=l.indexOf(f,h);k!=-1&&(E=Math.min(_(0,k),E),k=l.lastIndexOf(f,h+f.length),k!=-1&&(E=Math.min(_(0,k),E)));var P=1<=Ee;ke--){var Pe=p[l.charAt(ke-1)];if(_e===0?xe[ke]=(xe[ke+1]<<1|1)&Pe:xe[ke]=(xe[ke+1]<<1|1)&Pe|((le[ke+1]|le[ke])<<1|1)|le[ke+1],xe[ke]&P){var Be=_(_e,ke-1);if(Be<=E)if(E=Be,k=ke-1,k>h)Ee=Math.max(1,2*h-k);else break}}if(_(_e+1,h)>E)break;le=xe}return k},s.prototype.match_alphabet_=function(l){for(var f={},h=0;h"u")p=l,b=this.diff_main(p,f,!0),b.length>2&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b));else if(l&&typeof l=="object"&&typeof f>"u"&&typeof h>"u")b=l,p=this.diff_text1(b);else if(typeof l=="string"&&f&&typeof f=="object"&&typeof h>"u")p=l,b=f;else if(typeof l=="string"&&typeof f=="string"&&h&&typeof h=="object")p=l,b=h;else throw new Error("Unknown call format to patch_make.");if(b.length===0)return[];for(var _=[],E=new s.patch_obj,k=0,P=0,L=0,K=p,W=p,le=0;le=2*this.Patch_Margin&&k&&(this.patch_addContext_(E,K),_.push(E),E=new s.patch_obj,k=0,K=W,P=L);break}_e!==d&&(P+=Ee.length),_e!==c&&(L+=Ee.length)}return k&&(this.patch_addContext_(E,K),_.push(E)),_},s.prototype.patch_deepCopy=function(l){for(var f=[],h=0;hthis.Match_MaxBits?(P=this.match_main(f,k.substring(0,this.Match_MaxBits),E),P!=-1&&(L=this.match_main(f,k.substring(k.length-this.Match_MaxBits),E+k.length-this.Match_MaxBits),(L==-1||P>=L)&&(P=-1))):P=this.match_main(f,k,E),P==-1)b[_]=!1,p-=l[_].length2-l[_].length1;else{b[_]=!0,p=P-E;var K;if(L==-1?K=f.substring(P,P+k.length):K=f.substring(P,L+this.Match_MaxBits),k==K)f=f.substring(0,P)+this.diff_text2(l[_].diffs)+f.substring(P+k.length);else{var W=this.diff_main(k,K,!1);if(k.length>this.Match_MaxBits&&this.diff_levenshtein(W)/k.length>this.Patch_DeleteThreshold)b[_]=!1;else{this.diff_cleanupSemanticLossless(W);for(var le=0,_e,Ee=0;Ee_[0][1].length){var E=f-_[0][1].length;_[0][1]=h.substring(_[0][1].length)+_[0][1],b.start1-=E,b.start2-=E,b.length1+=E,b.length2+=E}if(b=l[l.length-1],_=b.diffs,_.length==0||_[_.length-1][0]!=m)_.push(new s.Diff(m,h)),b.length1+=f,b.length2+=f;else if(f>_[_.length-1][1].length){var E=f-_[_.length-1][1].length;_[_.length-1][1]+=h.substring(0,E),b.length1+=E,b.length2+=E}return h},s.prototype.patch_splitMax=function(l){for(var f=this.Match_MaxBits,h=0;h2*f?(k.length1+=K.length,b+=K.length,P=!1,k.diffs.push(new s.Diff(L,K)),p.diffs.shift()):(K=K.substring(0,f-k.length1-this.Patch_Margin),k.length1+=K.length,b+=K.length,L===m?(k.length2+=K.length,_+=K.length):P=!1,k.diffs.push(new s.Diff(L,K)),K==p.diffs[0][1]?p.diffs.shift():p.diffs[0][1]=p.diffs[0][1].substring(K.length))}E=this.diff_text2(k.diffs),E=E.substring(E.length-this.Patch_Margin);var W=this.diff_text1(p.diffs).substring(0,this.Patch_Margin);W!==""&&(k.length1+=W.length,k.length2+=W.length,k.diffs.length!==0&&k.diffs[k.diffs.length-1][0]===m?k.diffs[k.diffs.length-1][1]+=W:k.diffs.push(new s.Diff(m,W))),P||l.splice(++h,0,k)}}},s.prototype.patch_toText=function(l){for(var f=[],h=0;hC instanceof Array,ei=typeof Object.keys=="function"?C=>Object.keys(C):C=>{const s=[];for(const c in C)Object.prototype.hasOwnProperty.call(C,c)&&s.push(c);return s},go=C=>C.substr(0,1)==="_"?C.slice(1):C,Zt=C=>C==="_t"?-1:C.substr(0,1)==="_"?parseInt(C.slice(1),10):parseInt(C,10)+.1,_o=(C,s)=>Zt(C)-Zt(s);class kn{format(s,c){const d={};return this.prepareContext(d),this.recurse(d,s,c),this.finalize(d)}prepareContext(s){s.buffer=[],s.out=function(){this.buffer.push(...arguments)}}typeFormattterNotFound(s,c){throw new Error(`cannot format delta type: ${c}`)}typeFormattterErrorFormatter(s,c){return c.toString()}finalize(s){let{buffer:c}=s;if(dr(c))return c.join("")}recurse(s,c,d,m,l,f,h){const b=c&&f?f.value:d;if(typeof c>"u"&&typeof m>"u")return;const _=this.getDeltaType(c,f),E=_==="node"?c._t==="a"?"array":"object":"";typeof m<"u"?this.nodeBegin(s,m,l,_,E,h):this.rootBegin(s,_,E);let k;try{k=this[`format_${_}`]||this.typeFormattterNotFound(s,_),k.call(this,s,c,b,m,l,f)}catch(P){this.typeFormattterErrorFormatter(s,P,c,b,m,l,f),typeof console<"u"&&console.error&&console.error(P.stack)}typeof m<"u"?this.nodeEnd(s,m,l,_,E,h):this.rootEnd(s,_,E)}formatDeltaChildren(s,c,d){const m=this;this.forEachDeltaKey(c,d,(l,f,h,p)=>{m.recurse(s,c[l],d?d[f]:void 0,l,f,h,p)})}forEachDeltaKey(s,c,d){const m=ei(s),l=s._t==="a",f={};let h;if(typeof c<"u")for(h in c)Object.prototype.hasOwnProperty.call(c,h)&&typeof s[h]>"u"&&(!l||typeof s[`_${h}`]>"u")&&m.push(h);for(h in s)if(Object.prototype.hasOwnProperty.call(s,h)){const p=s[h];dr(p)&&p[2]===3&&(f[p[1].toString()]={key:h,value:c&&c[parseInt(h.substr(1))]},this.includeMoveDestinations!==!1&&typeof c>"u"&&typeof s[p[1]]>"u"&&m.push(p[1].toString()))}l?m.sort(_o):m.sort();for(let p=0,b=m.length;p"u")return typeof c<"u"?"movedestination":"unchanged";if(dr(s)){if(s.length===1)return"added";if(s.length===2)return"modified";if(s.length===3&&s[2]===0)return"deleted";if(s.length===3&&s[2]===2)return"textdiff";if(s.length===3&&s[2]===3)return"moved"}else if(typeof s=="object")return"node";return"unknown"}parseTextDiff(s){const c=[],d=s.split(` -@@ `);for(let m=0,l=d.length;m${c}`)}formatValue(s,c){s.out(`
${ni(JSON.stringify(c,null,2))}
`)}formatTextDiffString(s,c){const d=this.parseTextDiff(c);s.out('
    ');for(let m=0,l=d.length;m
    ${f.location.line}${f.location.chr}
    `);const h=f.pieces;for(let p=0,b=h.length;p${ni(decodeURI(_.text))}`)}s.out("
    ")}s.out("
")}rootBegin(s,c,d){const m=`jsondiffpatch-${c}${d?` jsondiffpatch-child-node-type-${d}`:""}`;s.out(`
`)}rootEnd(s){s.out(`
${s.hasArrows?` + + diff --git a/src/view/panel.empty.vue b/src/view/panel.empty.vue new file mode 100644 index 0000000..370ff08 --- /dev/null +++ b/src/view/panel.empty.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/view/panel.header.vue b/src/view/panel.header.vue index af08c0d..2dc9177 100644 --- a/src/view/panel.header.vue +++ b/src/view/panel.header.vue @@ -1,82 +1,68 @@ @@ -89,7 +75,6 @@ const stale = { display: flex; align-items: center; height: var(--header-height); - min-width: 512px; user-select: none; @@ -97,9 +82,11 @@ const stale = { display: flex; justify-content: center; align-items: center; - padding-left: 10px; .btn { + display: flex; + align-items: center; + justify-content: center; height: var(--header-height); cursor: pointer; border: none; @@ -107,21 +94,41 @@ const stale = { outline: none; background-color: var(--button-background); color: var(--colour-text); - margin: 0 2px; &:hover { - background-color: var(--button-hackground-hover); + background-color: var(--button-background-hover); } } - .-last-updated { - cursor: default; + .panel-timer { margin-left: 10px; + } + } - .-value { - font-weight: bold; - color: var(--colour-text); - opacity: 0.5; + .icon { + display: inline-block; + width: 20px; + height: 20px; + background-color: var(--colour-text); + -webkit-mask-size: cover; + mask-size: cover; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + + &.-clear { + -webkit-mask-image: url(@/view/svg/clear.svg); + mask-image: url(@/view/svg/clear.svg); + } + &.-copy { + -webkit-mask-image: url(@/view/svg/copy-to-clipboard.svg); + mask-image: url(@/view/svg/copy-to-clipboard.svg); + } + &.-toggle-unchanged { + -webkit-mask-image: url(@/view/svg/filter.svg); + mask-image: url(@/view/svg/filter.svg); + &.-on { + -webkit-mask-image: url(@/view/svg/filter-filled.svg); + mask-image: url(@/view/svg/filter-filled.svg); } } } @@ -133,25 +140,5 @@ const stale = { padding-left: 10px; color: rgb(182, 33, 33); } - - .-badge { - position: fixed; - top: 0; - right: 1rem; - display: flex; - flex-direction: column; - align-items: center; - padding: 4px 4px; - - .-version { - font-family: monospace; - } - - .-icon { - img { - width: 32px; - } - } - } } diff --git a/src/view/panel.search.vue b/src/view/panel.search.vue new file mode 100644 index 0000000..aa73dfa --- /dev/null +++ b/src/view/panel.search.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/view/panel.timer.vue b/src/view/panel.timer.vue new file mode 100644 index 0000000..7d3d594 --- /dev/null +++ b/src/view/panel.timer.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/view/panel.vue b/src/view/panel.vue index dff534c..ab6e56f 100644 --- a/src/view/panel.vue +++ b/src/view/panel.vue @@ -1,180 +1,72 @@