Upgrade jsondiffpatch dependency version (#9651) (#10282)

* update jsondiffpatch dep + use webpack to convert into UMD format

* do not lint vendor files

* update test

* lint fix

* fix merge conflict error

Co-authored-by: lane-wetmore <lane.wetmore@hashicorp.com>
This commit is contained in:
Vault Automation 2025-10-22 16:02:47 -04:00 committed by GitHub
parent 0845606fe3
commit 42d01ee5fe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 251 additions and 31 deletions

View file

@ -5,6 +5,7 @@
/dist/
/tmp/
/vault-reporting/
/vendor/
# dependencies
/bower_components/
@ -26,4 +27,4 @@
/tests/helpers/vault-keys.js
# typescript declaration files
*.d.ts
*.d.ts

5
ui/.gitignore vendored
View file

@ -39,3 +39,8 @@ package-lock.json
# copywrite tool used in pre-commit hook
.copywrite
# vendor bundle
vendor/jsondiffpatch.umd.js
vendor/htmlformatter.umd.js

View file

@ -81,8 +81,9 @@ module.exports = function (defaults) {
app.import('node_modules/jsonlint/lib/jsonlint.js');
app.import('node_modules/text-encoder-lite/text-encoder-lite.js');
app.import('node_modules/jsondiffpatch/dist/jsondiffpatch.umd.js');
app.import('node_modules/jsondiffpatch/dist/formatters-styles/html.css');
app.import('vendor/jsondiffpatch.umd.js');
app.import('vendor/htmlformatter.umd.js');
app.import('node_modules/jsondiffpatch/lib/formatters/styles/html.css');
app.import('app/styles/bulma/bulma-radio-checkbox.css');
app.import(

View file

@ -62,7 +62,7 @@ export default class KvSecretEdit extends Component {
get visualDiff() {
if (this.showDiff) {
return this.diffDelta
? jsondiffpatch.formatters.html.format(this.diffDelta, this.updatedSecret)
? htmlformatter.format(this.diffDelta, this.updatedSecret)
: JSON.stringify(this.updatedSecret, undefined, 2);
}
return null;

View file

@ -75,7 +75,7 @@ export default class KvSecretMetadataVersionDiff extends Component {
this.statesMatch = !delta;
this.visualDiff = delta
? jsondiffpatch.formatters.html.format(delta, leftSecretData)
? htmlformatter.format(delta, leftSecretData)
: JSON.stringify(rightSecretData, undefined, 2);
}

View file

@ -9,8 +9,10 @@
"test": "tests"
},
"scripts": {
"build": "ember build --environment=production && cp metadata.json ../http/web_ui/metadata.json",
"build:dev": "ember build",
"postinstall": "yarn build:jsondiffpatch",
"build": "yarn build:jsondiffpatch && ember build --environment=production && cp metadata.json ../http/web_ui/metadata.json",
"build:dev": "yarn build:jsondiffpatch && ember build",
"build:jsondiffpatch": "webpack --config webpack.jsondiffpatch.config.js",
"docs": "sh scripts/generate-docs.sh",
"docfy-md": "node scripts/docfy-md.js",
"lint:css": "stylelint \"**/*.css\"",
@ -27,8 +29,8 @@
"fmt:js": "prettier --config .prettierrc.js --write '{app,tests,config,lib}/**/*.js'",
"fmt:hbs": "prettier --config .prettierrc.js --write '**/*.hbs'",
"fmt:styles": "prettier --write app/styles/**/*.*",
"start": "VAULT_ADDR=http://127.0.0.1:8200; ember server --proxy=$VAULT_ADDR",
"start2": "ember server --proxy=http://127.0.0.1:8202 --port=4202",
"start": "VAULT_ADDR=http://127.0.0.1:8200; yarn build:jsondiffpatch && ember server --proxy=$VAULT_ADDR",
"start2": "yarn build:jsondiffpatch && ember server --proxy=http://127.0.0.1:8202 --port=4202",
"start:chroot": "ember server --proxy=http://127.0.0.1:8300 --port=4300",
"lint": "concurrently --kill-others-on-fail -P -c \"auto\" -n lint:js,lint:hbs,lint:types \"yarn:lint:js:quiet\" \"yarn:lint:hbs:quiet\" \"yarn:lint:types\"",
"test": "yarn lint && node scripts/start-vault.js",
@ -140,7 +142,7 @@
"filesize": "~4.2.1",
"jsdoc-babel": "~0.5.0",
"jsdoc-to-markdown": "~8.0.3",
"jsondiffpatch": "~0.4.1",
"jsondiffpatch": "0.7.3",
"jsonlint": "~1.6.3",
"lint-staged": "~16.0.0",
"loader.js": "~4.7.0",
@ -161,7 +163,8 @@
"text-encoder-lite": "2.0.0",
"tracked-built-ins": "~3.4.0",
"typescript": "~5.8.3",
"webpack": "5.94.0"
"webpack": "5.94.0",
"webpack-cli": "^6.0.1"
},
"resolutions": {
"ansi-html": "0.0.8",

View file

@ -124,7 +124,7 @@ module('Integration | Component | kv-v2 | Page::Secret::Metadata::VersionDiff',
const [left, right] = findAll(PAGE.detail.versionDropdown);
assert.dom(PAGE.diff.visualDiff).hasText(
`foo\"bar\"hello\"world\"`, // eslint-disable-line no-useless-escape
`hello\"world\"foo\"bar\"`, // eslint-disable-line no-useless-escape
'correctly pull in the data from version 4 and compared to version 1.'
);
assert.dom(PAGE.diff.deleted).hasText(`hello"world"`);

View file

@ -0,0 +1,24 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
/* eslint-env node */
'use strict';
const path = require('path');
module.exports = {
entry: {
jsondiffpatch: require.resolve('jsondiffpatch'),
htmlformatter: require.resolve('jsondiffpatch/formatters/html'),
},
output: {
path: path.resolve(__dirname, 'vendor'),
filename: '[name].umd.js',
library: '[name]',
libraryTarget: 'umd',
globalObject: 'this',
},
mode: 'production',
};

View file

@ -1677,6 +1677,20 @@ __metadata:
languageName: node
linkType: hard
"@discoveryjs/json-ext@npm:^0.6.1":
version: 0.6.3
resolution: "@discoveryjs/json-ext@npm:0.6.3"
checksum: 8305a5feb9bbaedbfdb91f938cb577f98c34cb432535dbc7af5e5df7f1cb3d1895f7a9ec0d956b5bd9e980e5b7f8cd36684c4c9ed219e6e556e0dfe367c4cb66
languageName: node
linkType: hard
"@dmsnell/diff-match-patch@npm:^1.1.0":
version: 1.1.0
resolution: "@dmsnell/diff-match-patch@npm:1.1.0"
checksum: 4472487045f0bed40abbf5708542f596bf9576e1e6bd4ae01d8ddb694f857be51ca56599c95c61d1433f3d57da2e6c6f3e175609864eea601a47a26a68750ca0
languageName: node
linkType: hard
"@docfy/core@npm:^0.8.0":
version: 0.8.0
resolution: "@docfy/core@npm:0.8.0"
@ -4367,6 +4381,39 @@ __metadata:
languageName: node
linkType: hard
"@webpack-cli/configtest@npm:^3.0.1":
version: 3.0.1
resolution: "@webpack-cli/configtest@npm:3.0.1"
peerDependencies:
webpack: ^5.82.0
webpack-cli: 6.x.x
checksum: a83301ff360de6c36fe98766f1f391db6149f0806450ce31484c49df3902584f73385453da23f3324a605d5afad4d2889654ada679afd49e35c59a2c4769ee97
languageName: node
linkType: hard
"@webpack-cli/info@npm:^3.0.1":
version: 3.0.1
resolution: "@webpack-cli/info@npm:3.0.1"
peerDependencies:
webpack: ^5.82.0
webpack-cli: 6.x.x
checksum: 0ddcfd8b370d924f71cc085b17b31a77b362d8046fedb38ac601042733568cda05b0c8c7b1e0e1e050dc926ee76f754cd9c4f351e2b361a0d157465f8b03b689
languageName: node
linkType: hard
"@webpack-cli/serve@npm:^3.0.1":
version: 3.0.1
resolution: "@webpack-cli/serve@npm:3.0.1"
peerDependencies:
webpack: ^5.82.0
webpack-cli: 6.x.x
peerDependenciesMeta:
webpack-dev-server:
optional: true
checksum: 5bbd66548faa8adc7b0759f5880411b611c9a25e9303e2f580ab2d658ec105926a21c981fa7797e9f7c24093d0a0ff96d6f2d8f76f265d7760441cf138cab889
languageName: node
linkType: hard
"@xmldom/xmldom@npm:^0.8.0":
version: 0.8.10
resolution: "@xmldom/xmldom@npm:0.8.10"
@ -6373,7 +6420,7 @@ __metadata:
languageName: node
linkType: hard
"chalk@npm:^2.0.0, chalk@npm:^2.0.1, chalk@npm:^2.1.0, chalk@npm:^2.3.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2":
"chalk@npm:^2.0.0, chalk@npm:^2.0.1, chalk@npm:^2.1.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
dependencies:
@ -6681,6 +6728,17 @@ __metadata:
languageName: node
linkType: hard
"clone-deep@npm:^4.0.1":
version: 4.0.1
resolution: "clone-deep@npm:4.0.1"
dependencies:
is-plain-object: ^2.0.4
kind-of: ^6.0.2
shallow-clone: ^3.0.0
checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2
languageName: node
linkType: hard
"clone@npm:^1.0.2":
version: 1.0.4
resolution: "clone@npm:1.0.4"
@ -6771,7 +6829,7 @@ __metadata:
languageName: node
linkType: hard
"colorette@npm:^2.0.20":
"colorette@npm:^2.0.14, colorette@npm:^2.0.20":
version: 2.0.20
resolution: "colorette@npm:2.0.20"
checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d
@ -6862,6 +6920,13 @@ __metadata:
languageName: node
linkType: hard
"commander@npm:^12.1.0":
version: 12.1.0
resolution: "commander@npm:12.1.0"
checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514
languageName: node
linkType: hard
"commander@npm:^13.1.0":
version: 13.1.0
resolution: "commander@npm:13.1.0"
@ -7609,13 +7674,6 @@ __metadata:
languageName: node
linkType: hard
"diff-match-patch@npm:^1.0.0":
version: 1.0.5
resolution: "diff-match-patch@npm:1.0.5"
checksum: 841522d01b09cccbc4e4402cf61514a81b906349a7d97b67222390f2d35cf5df277cb23959eeed212d5e46afb5629cebab41b87918672c5a05c11c73688630e3
languageName: node
linkType: hard
"diff@npm:^5.1.0":
version: 5.2.0
resolution: "diff@npm:5.2.0"
@ -9333,6 +9391,15 @@ __metadata:
languageName: node
linkType: hard
"envinfo@npm:^7.14.0":
version: 7.15.0
resolution: "envinfo@npm:7.15.0"
bin:
envinfo: dist/cli.js
checksum: 38595c11134ecb66a40289980d8ca82e89fdcd68849dd72560c1bbc3cfc55c867573b4150967707ff9ff2e5cad6f1d0cb6cc56c333a6eccdcd3533452141c0a8
languageName: node
linkType: hard
"environment@npm:^1.0.0":
version: 1.1.0
resolution: "environment@npm:1.1.0"
@ -10134,7 +10201,7 @@ __metadata:
languageName: node
linkType: hard
"fastest-levenshtein@npm:^1.0.16":
"fastest-levenshtein@npm:^1.0.12, fastest-levenshtein@npm:^1.0.16":
version: 1.0.16
resolution: "fastest-levenshtein@npm:1.0.16"
checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71
@ -10528,6 +10595,15 @@ __metadata:
languageName: node
linkType: hard
"flat@npm:^5.0.2":
version: 5.0.2
resolution: "flat@npm:5.0.2"
bin:
flat: cli.js
checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d
languageName: node
linkType: hard
"flatted@npm:^3.2.9, flatted@npm:^3.3.3":
version: 3.3.3
resolution: "flatted@npm:3.3.3"
@ -11717,6 +11793,18 @@ __metadata:
languageName: node
linkType: hard
"import-local@npm:^3.0.2":
version: 3.2.0
resolution: "import-local@npm:3.2.0"
dependencies:
pkg-dir: ^4.2.0
resolve-cwd: ^3.0.0
bin:
import-local-fixture: fixtures/cli.js
checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004
languageName: node
linkType: hard
"imurmurhash@npm:^0.1.4":
version: 0.1.4
resolution: "imurmurhash@npm:0.1.4"
@ -11885,6 +11973,13 @@ __metadata:
languageName: node
linkType: hard
"interpret@npm:^3.1.1":
version: 3.1.1
resolution: "interpret@npm:3.1.1"
checksum: 35cebcf48c7351130437596d9ab8c8fe131ce4038da4561e6d665f25640e0034702a031cf7e3a5cea60ac7ac548bf17465e0571ede126f3d3a6933152171ac82
languageName: node
linkType: hard
"invert-kv@npm:^3.0.0":
version: 3.0.1
resolution: "invert-kv@npm:3.0.1"
@ -12205,6 +12300,15 @@ __metadata:
languageName: node
linkType: hard
"is-plain-object@npm:^2.0.4":
version: 2.0.4
resolution: "is-plain-object@npm:2.0.4"
dependencies:
isobject: ^3.0.1
checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca
languageName: node
linkType: hard
"is-plain-object@npm:^5.0.0":
version: 5.0.0
resolution: "is-plain-object@npm:5.0.0"
@ -12416,6 +12520,13 @@ __metadata:
languageName: node
linkType: hard
"isobject@npm:^3.0.1":
version: 3.0.1
resolution: "isobject@npm:3.0.1"
checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703
languageName: node
linkType: hard
"istextorbinary@npm:2.1.0":
version: 2.1.0
resolution: "istextorbinary@npm:2.1.0"
@ -12699,15 +12810,14 @@ __metadata:
languageName: node
linkType: hard
"jsondiffpatch@npm:~0.4.1":
version: 0.4.1
resolution: "jsondiffpatch@npm:0.4.1"
"jsondiffpatch@npm:0.7.3":
version: 0.7.3
resolution: "jsondiffpatch@npm:0.7.3"
dependencies:
chalk: ^2.3.0
diff-match-patch: ^1.0.0
"@dmsnell/diff-match-patch": ^1.1.0
bin:
jsondiffpatch: ./bin/jsondiffpatch
checksum: 2062d188cc7f60f9d84e7bf497a7d89233d2f8ec21d085c26cdb24c2b7c5f4f7231ad9b978355e319c00820de0863499ba881c6c6b1bd92313db1a7d16d6ab1d
jsondiffpatch: bin/jsondiffpatch.js
checksum: ec00f40f957bf3827995d53804fb29f040e91565b46752d5212fd17462e17b8a08865df85ed5fc2f01b3b6e194d23a95d278b948078406152e77eb79157500a9
languageName: node
linkType: hard
@ -15002,7 +15112,7 @@ __metadata:
languageName: node
linkType: hard
"pkg-dir@npm:^4.1.0":
"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0":
version: 4.2.0
resolution: "pkg-dir@npm:4.2.0"
dependencies:
@ -15587,6 +15697,15 @@ __metadata:
languageName: node
linkType: hard
"rechoir@npm:^0.8.0":
version: 0.8.0
resolution: "rechoir@npm:0.8.0"
dependencies:
resolve: ^1.20.0
checksum: ad3caed8afdefbc33fbc30e6d22b86c35b3d51c2005546f4e79bcc03c074df804b3640ad18945e6bef9ed12caedc035655ec1082f64a5e94c849ff939dc0a788
languageName: node
linkType: hard
"redeyed@npm:~1.0.0":
version: 1.0.1
resolution: "redeyed@npm:1.0.1"
@ -15903,6 +16022,15 @@ __metadata:
languageName: node
linkType: hard
"resolve-cwd@npm:^3.0.0":
version: 3.0.0
resolution: "resolve-cwd@npm:3.0.0"
dependencies:
resolve-from: ^5.0.0
checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81
languageName: node
linkType: hard
"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1":
version: 1.0.1
resolution: "resolve-dir@npm:1.0.1"
@ -16524,6 +16652,15 @@ __metadata:
languageName: node
linkType: hard
"shallow-clone@npm:^3.0.0":
version: 3.0.1
resolution: "shallow-clone@npm:3.0.1"
dependencies:
kind-of: ^6.0.2
checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7
languageName: node
linkType: hard
"shebang-command@npm:^1.2.0":
version: 1.2.0
resolution: "shebang-command@npm:1.2.0"
@ -18558,7 +18695,7 @@ __metadata:
highlight.js: 10.7.3
jsdoc-babel: ~0.5.0
jsdoc-to-markdown: ~8.0.3
jsondiffpatch: ~0.4.1
jsondiffpatch: 0.7.3
jsonlint: ~1.6.3
lint-staged: ~16.0.0
loader.js: ~4.7.0
@ -18582,6 +18719,7 @@ __metadata:
typescript: ~5.8.3
uuid: 9.0.1
webpack: 5.94.0
webpack-cli: ^6.0.1
languageName: unknown
linkType: soft
@ -18759,6 +18897,47 @@ __metadata:
languageName: node
linkType: hard
"webpack-cli@npm:^6.0.1":
version: 6.0.1
resolution: "webpack-cli@npm:6.0.1"
dependencies:
"@discoveryjs/json-ext": ^0.6.1
"@webpack-cli/configtest": ^3.0.1
"@webpack-cli/info": ^3.0.1
"@webpack-cli/serve": ^3.0.1
colorette: ^2.0.14
commander: ^12.1.0
cross-spawn: ^7.0.3
envinfo: ^7.14.0
fastest-levenshtein: ^1.0.12
import-local: ^3.0.2
interpret: ^3.1.1
rechoir: ^0.8.0
webpack-merge: ^6.0.1
peerDependencies:
webpack: ^5.82.0
peerDependenciesMeta:
webpack-bundle-analyzer:
optional: true
webpack-dev-server:
optional: true
bin:
webpack-cli: ./bin/cli.js
checksum: 1418d0e48c58b4a223472d1a34aee74b497cd8b8fc7f0508da86983e6bbc0b2f20e85459d89fb7169309a6f0409e3a27c1b688e645fa705806195884855434fc
languageName: node
linkType: hard
"webpack-merge@npm:^6.0.1":
version: 6.0.1
resolution: "webpack-merge@npm:6.0.1"
dependencies:
clone-deep: ^4.0.1
flat: ^5.0.2
wildcard: ^2.0.1
checksum: e8a604c686b944605a1c57cc7b75e886ab902dc5ffdd15259a092c5c2dd5f58868fe39f995ea4bad4f189e38843b061c4ae1eb22822d7169813f4adab571dc3d
languageName: node
linkType: hard
"webpack-sources@npm:^3.2.3":
version: 3.2.3
resolution: "webpack-sources@npm:3.2.3"
@ -18930,6 +19109,13 @@ __metadata:
languageName: node
linkType: hard
"wildcard@npm:^2.0.1":
version: 2.0.1
resolution: "wildcard@npm:2.0.1"
checksum: e0c60a12a219e4b12065d1199802d81c27b841ed6ad6d9d28240980c73ceec6f856771d575af367cbec2982d9ae7838759168b551776577f155044f5a5ba843c
languageName: node
linkType: hard
"word-wrap@npm:^1.2.5":
version: 1.2.5
resolution: "word-wrap@npm:1.2.5"