mirror of
https://github.com/JannisX11/blockbench.git
synced 2024-11-21 01:13:37 +08:00
UV Editor fixes
This commit is contained in:
parent
df86fec2ee
commit
dd5ce5c961
@ -1291,37 +1291,7 @@
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
/*
|
||||
#uv_size {
|
||||
height: 320px;
|
||||
width: 320px;
|
||||
cursor: move;
|
||||
box-sizing: border-box;
|
||||
z-index: 1;
|
||||
box-shadow: 0 0 0 1.5px #ffffff;
|
||||
mix-blend-mode: difference;
|
||||
}
|
||||
.uv_size_handle {
|
||||
position: absolute;
|
||||
cursor: move;
|
||||
}
|
||||
#uv_rotation {
|
||||
width: 72px;
|
||||
margin-top: 1px;
|
||||
}
|
||||
.uv_transform_info {
|
||||
position: absolute;
|
||||
display: block;
|
||||
right: 8px;
|
||||
top: 8px;
|
||||
font-size: 0.9em;
|
||||
cursor: default;
|
||||
pointer-events: none;
|
||||
z-index: 5;
|
||||
color: white;
|
||||
mix-blend-mode: difference;
|
||||
font-weight: 300;
|
||||
}*/
|
||||
|
||||
.panel .bar.next_to_title {
|
||||
margin-top: -34px;
|
||||
margin-right: 32px;
|
||||
@ -1333,72 +1303,24 @@
|
||||
float: right;
|
||||
pointer-events: initial;
|
||||
}
|
||||
/*
|
||||
#uv_size .ui-resizable-se:before,
|
||||
#uv_size .ui-resizable-sw:before,
|
||||
#uv_size .ui-resizable-ne:before,
|
||||
#uv_size .ui-resizable-nw:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 7px;
|
||||
width: 7px;
|
||||
background-color: var(--color-text);
|
||||
}
|
||||
#uv_size .ui-resizable-se,
|
||||
#uv_size .ui-resizable-sw,
|
||||
#uv_size .ui-resizable-ne,
|
||||
#uv_size .ui-resizable-nw {
|
||||
height: 9px;
|
||||
width: 9px;
|
||||
}
|
||||
#uv_size .ui-resizable-se {right: -6px; bottom: -6px; z-index: 91 !important;}
|
||||
#uv_size .ui-resizable-sw {left: -6px; bottom: -6px;}
|
||||
#uv_size .ui-resizable-ne {right: -6px; top: -6px;}
|
||||
#uv_size .ui-resizable-nw {left: -6px; top: -6px;}
|
||||
|
||||
#uv_frame:hover #uv_size .ui-resizable-handle:before {
|
||||
background-color: white;
|
||||
}
|
||||
#uv_frame:hover #uv_size.dark_frame .ui-resizable-handle:before {
|
||||
background-color: black;
|
||||
}
|
||||
#uv_frame:hover #uv_size .ui-resizable-handle:hover:before {
|
||||
background-color: var(--color-accent);
|
||||
}
|
||||
#uv_size .ui-resizable-se:before {
|
||||
bottom: 2px;
|
||||
right: 2px;
|
||||
}
|
||||
#uv_size .ui-resizable-sw:before {
|
||||
bottom: 2px;
|
||||
left: 2px;
|
||||
}
|
||||
#uv_size .ui-resizable-ne:before {
|
||||
top: 2px;
|
||||
right: 2px;
|
||||
}
|
||||
#uv_size .ui-resizable-nw:before {
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
}*/
|
||||
|
||||
.uv_cube_face_bar {
|
||||
#uv_cube_face_bar {
|
||||
display: flex;
|
||||
height: 28px;
|
||||
}
|
||||
.uv_cube_face_bar li {
|
||||
#uv_cube_face_bar li {
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
padding: 2px;
|
||||
margin: 0 1px;
|
||||
}
|
||||
.uv_cube_face_bar li:hover {
|
||||
#uv_cube_face_bar li:hover {
|
||||
color: var(--color-light);
|
||||
}
|
||||
.uv_cube_face_bar li.selected {
|
||||
#uv_cube_face_bar li.selected {
|
||||
border-bottom: 3px solid var(--color-accent);
|
||||
}
|
||||
.uv_cube_face_bar li.disabled {
|
||||
#uv_cube_face_bar li.disabled {
|
||||
color: var(--color-subtle_text);
|
||||
}
|
||||
|
||||
|
@ -2014,12 +2014,16 @@ const BARS = {
|
||||
children: [
|
||||
'transform_space',
|
||||
'rotation_space',
|
||||
'selection_mode',
|
||||
'lock_motion_trail'
|
||||
]
|
||||
})
|
||||
Blockbench.onUpdateTo('3.7', () => {
|
||||
Toolbars.main_tools.add(BarItems.lock_motion_trail, -1);
|
||||
})
|
||||
Blockbench.onUpdateTo('4.0.0-beta.1', () => {
|
||||
Toolbars.main_tools.add(BarItems.selection_mode, -1);
|
||||
})
|
||||
Toolbars.brush = new Toolbar({
|
||||
id: 'brush',
|
||||
children: [
|
||||
|
@ -711,7 +711,11 @@ class Preview {
|
||||
|
||||
} else if (Toolbox.selected.selectElements && Modes.selected.selectElements && data.type === 'element') {
|
||||
if (Toolbox.selected.selectFace && data.face) {
|
||||
UVEditor.setFace(data.face, false)
|
||||
if (data.element instanceof Mesh && select_mode == 'face' && (event.ctrlOrCmd || Pressing.overrides.ctrl || event.shiftKey || Pressing.overrides.shift)) {
|
||||
UVEditor.vue.selected_faces.safePush(data.face)
|
||||
} else {
|
||||
UVEditor.setFace(data.face, false);
|
||||
}
|
||||
}
|
||||
Blockbench.dispatchEvent('canvas_select', data)
|
||||
if (Modes.paint) {
|
||||
|
@ -452,60 +452,6 @@ const UVEditor = {
|
||||
this.vue.$forceUpdate();
|
||||
return this;
|
||||
},
|
||||
save(pos_only) {
|
||||
if (!Modes.edit) return;
|
||||
var scope = this;
|
||||
//Save UV from Frame to object
|
||||
|
||||
if (Project.box_uv) {
|
||||
|
||||
Cube.selected.forEach(function(obj) {
|
||||
obj.uv_offset = [
|
||||
Math.round(scope.jquery.size.position().left / (scope.inner_width/Project.texture_width) * 8) / 8,
|
||||
Math.round(scope.jquery.size.position().top / (scope.inner_width/Project.texture_width) * 8) / 8
|
||||
]
|
||||
Canvas.updateUV(obj)
|
||||
})
|
||||
|
||||
} else {
|
||||
var trim = v => Math.round(v * this.grid) / this.grid;
|
||||
var pixelSize = this.inner_width/this.getResolution(0);
|
||||
|
||||
var position = this.jquery.size.position()
|
||||
var left = trim( position.left / pixelSize);
|
||||
var top = trim( position.top / pixelSize);
|
||||
var left2= Math.clamp(trim( (this.jquery.size.width() + position.left) / pixelSize), 0, this.getResolution(0));
|
||||
var top2 = Math.clamp(trim( (this.jquery.size.height() + position.top) / pixelSize), 0, this.getResolution(1));
|
||||
|
||||
var uvTag = this.getUVTag()
|
||||
|
||||
if (uvTag[0] > uvTag[2]) {
|
||||
left2 = [left, left = left2][0];
|
||||
}
|
||||
if (uvTag[1] > uvTag[3]) {
|
||||
top2 = [top, top = top2][0];
|
||||
}
|
||||
|
||||
Cube.selected.forEach(function(obj) {
|
||||
let {uv} = obj.faces[scope.face];
|
||||
if (pos_only) {
|
||||
let diff_x = left > left2 ? left2 - uv[2] : left - uv[0];
|
||||
let diff_y = top > top2 ? top2 - uv[3] : top - uv[1];
|
||||
uv[0] += diff_x;
|
||||
uv[1] += diff_y;
|
||||
uv[2] += diff_x;
|
||||
uv[3] += diff_y;
|
||||
} else {
|
||||
uv.replace([left, top, left2, top2])
|
||||
}
|
||||
Canvas.updateUV(obj)
|
||||
})
|
||||
}
|
||||
|
||||
if (this !== UVEditor && this.face === UVEditor.face) {
|
||||
UVEditor.loadData()
|
||||
}
|
||||
},
|
||||
applyTexture(texture) {
|
||||
let elements = this.getMappableElements();
|
||||
Undo.initEdit({elements, uv_only: true})
|
||||
@ -520,49 +466,6 @@ const UVEditor = {
|
||||
Canvas.updateSelectedFaces()
|
||||
Undo.finishEdit('Apply texture')
|
||||
},
|
||||
displayTexture(face) {
|
||||
return this;
|
||||
if (!face && Cube.selected.length) {
|
||||
var face = Cube.selected[0].faces[this.face];
|
||||
}
|
||||
var tex = face ? face.getTexture() : Texture.getDefault();
|
||||
if (!tex || typeof tex !== 'object' || (tex.error && tex.error != 2)) {
|
||||
this.img.src = '';
|
||||
this.img.style.display = 'none';
|
||||
this.texture = false;
|
||||
} else {
|
||||
this.img.src = tex.source;
|
||||
this.img.style.display = 'block';
|
||||
this.texture = tex;
|
||||
if (!Project.box_uv && this.auto_grid) {
|
||||
this.grid = tex.width / Project.texture_width;
|
||||
}
|
||||
}
|
||||
if (!tex || typeof tex !== 'object') {
|
||||
if (!Format.single_texture && Texture.selected) {
|
||||
unselectTextures()
|
||||
}
|
||||
} else if (Texture.selected != tex) {
|
||||
tex.select()
|
||||
}
|
||||
this.setSize(this.size, true)
|
||||
},
|
||||
displayTransformInfo() {
|
||||
return this;
|
||||
var ref = Cube.selected[0].faces[this.face]
|
||||
this.jquery.transform_info.text('')
|
||||
if (Project.box_uv) return;
|
||||
|
||||
if (ref.uv[0] > ref.uv[2]) {
|
||||
this.jquery.transform_info.append('<b>X</b>')
|
||||
}
|
||||
if (ref.uv[1] > ref.uv[3]) {
|
||||
this.jquery.transform_info.append('<b>Y</b>')
|
||||
}
|
||||
if (ref.rotation) {
|
||||
this.jquery.transform_info.append('<b>'+ref.rotation+'</b>')
|
||||
}
|
||||
},
|
||||
displaySliders() {
|
||||
if (!this.getMappableElements().length) return;
|
||||
for (var id in UVEditor.sliders) {
|
||||
@ -631,7 +534,7 @@ const UVEditor = {
|
||||
mesh.faces[fkey].uv[vkey][axis] = modify(mesh.faces[fkey].uv[vkey][axis]);
|
||||
})
|
||||
})
|
||||
obj.preview_controller.updateUV(obj);
|
||||
mesh.preview_controller.updateUV(mesh);
|
||||
})
|
||||
this.displaySliders()
|
||||
this.vue.$forceUpdate()
|
||||
@ -1590,7 +1493,7 @@ Interface.definePanels(function() {
|
||||
if (!UVEditor.getReferenceFace()) return;
|
||||
UVEditor.menu.open(event);
|
||||
},
|
||||
selectFace(key, event, keep_selection) {
|
||||
selectFace(key, event, keep_selection, support_dragging) {
|
||||
if (keep_selection && this.selected_faces.includes(key)) {
|
||||
|
||||
} else if (event.shiftKey || event.ctrlOrCmd || Pressing.overrides.shift || Pressing.overrides.ctrl) {
|
||||
@ -1602,7 +1505,23 @@ Interface.definePanels(function() {
|
||||
} else {
|
||||
this.selected_faces.replace([key]);
|
||||
}
|
||||
UVEditor.vue.updateTexture()
|
||||
UVEditor.vue.updateTexture();
|
||||
|
||||
if (support_dragging) {
|
||||
let scope = this;
|
||||
function drag(e1) {
|
||||
if (e1.target && e1.target.nodeName == 'LI' && e1.target.parentElement.id == 'uv_cube_face_bar') {
|
||||
let face = e1.target.attributes.face.value;
|
||||
scope.selected_faces.safePush(face);
|
||||
}
|
||||
}
|
||||
function stop() {
|
||||
removeEventListeners(document, 'mousemove touchmove', drag);
|
||||
removeEventListeners(document, 'mouseup touchend', stop);
|
||||
}
|
||||
addEventListeners(document, 'mousemove touchmove', drag);
|
||||
addEventListeners(document, 'mouseup touchend', stop);
|
||||
}
|
||||
},
|
||||
selectCube(cube, event) {
|
||||
if (!this.dragging_uv) {
|
||||
@ -1844,8 +1763,8 @@ Interface.definePanels(function() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bar uv_cube_face_bar" v-if="mode != 'properties' && mappable_elements[0] && mappable_elements[0].type == 'cube' && !box_uv">
|
||||
<li v-for="(face, key) in mappable_elements[0].faces" :class="{selected: selected_faces.includes(key), disabled: mappable_elements[0].faces[key].texture === null}" @mousedown="selectFace(key, $event)">
|
||||
<div class="bar" id="uv_cube_face_bar" v-if="mode != 'properties' && mappable_elements[0] && mappable_elements[0].type == 'cube' && !box_uv">
|
||||
<li v-for="(face, key) in mappable_elements[0].faces" :face="key" :class="{selected: selected_faces.includes(key), disabled: mappable_elements[0].faces[key].texture === null}" @mousedown="selectFace(key, $event, false, true)">
|
||||
{{ face_names[key] }}
|
||||
</li>
|
||||
</div>
|
||||
@ -1964,13 +1883,13 @@ Interface.definePanels(function() {
|
||||
let {slider_bar} = UVEditor.vue.$refs;
|
||||
|
||||
var onBefore = function() {
|
||||
Undo.initEdit({elements: Cube.selected})
|
||||
Undo.initEdit({elements: UVEditor.getMappableElements()})
|
||||
}
|
||||
var onAfter = function() {
|
||||
Undo.finishEdit('Edit UV')
|
||||
}
|
||||
var getInterval = function(event) {
|
||||
return 1/UVEditor.grid
|
||||
return canvasGridSize(event.shiftKey || Pressing.overrides.shift, event.ctrlOrCmd || Pressing.overrides.ctrl) / UVEditor.grid;
|
||||
}
|
||||
function getPos(axis) {
|
||||
let elements = UVEditor.getMappableElements();
|
||||
@ -1988,12 +1907,13 @@ Interface.definePanels(function() {
|
||||
if (face) {
|
||||
let selected_vertices = Project.selected_vertices[elements[0].uuid];
|
||||
let has_selected_vertices = selected_vertices && face.vertices.find(vkey => selected_vertices.includes(vkey))
|
||||
let min = -Infinity;
|
||||
let min = Infinity;
|
||||
face.vertices.forEach(vkey => {
|
||||
if ((!has_selected_vertices || selected_vertices.includes(vkey)) && face.uv[vkey]) {
|
||||
min = Math.min(min, face.uv[vkey][axis]);
|
||||
}
|
||||
})
|
||||
if (min == Infinity) min = 0;
|
||||
return trimFloatNumber(min)
|
||||
}
|
||||
}
|
||||
|
288
package-lock.json
generated
288
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Blockbench",
|
||||
"version": "3.9.1",
|
||||
"version": "4.0.0-beta.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@ -1226,9 +1226,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||
"version": "4.3.2",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
|
||||
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
@ -1460,10 +1460,13 @@
|
||||
}
|
||||
},
|
||||
"@types/debug": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz",
|
||||
"integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==",
|
||||
"dev": true
|
||||
"version": "4.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
|
||||
"integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/ms": "*"
|
||||
}
|
||||
},
|
||||
"@types/eslint": {
|
||||
"version": "7.2.6",
|
||||
@ -1492,18 +1495,18 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/fs-extra": {
|
||||
"version": "9.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.11.tgz",
|
||||
"integrity": "sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==",
|
||||
"version": "9.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.12.tgz",
|
||||
"integrity": "sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/glob": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
|
||||
"integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
|
||||
"version": "7.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz",
|
||||
"integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
@ -1527,12 +1530,18 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==",
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
|
||||
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@types/ms": {
|
||||
"version": "0.7.31",
|
||||
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
|
||||
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "14.0.19",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.19.tgz",
|
||||
@ -1547,6 +1556,15 @@
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"xmlbuilder": ">=11.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"xmlbuilder": {
|
||||
"version": "15.1.1",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
|
||||
"integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/resolve": {
|
||||
@ -1573,25 +1591,25 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/verror": {
|
||||
"version": "1.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.4.tgz",
|
||||
"integrity": "sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg==",
|
||||
"version": "1.10.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz",
|
||||
"integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@types/yargs": {
|
||||
"version": "16.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz",
|
||||
"integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==",
|
||||
"version": "17.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.2.tgz",
|
||||
"integrity": "sha512-JhZ+pNdKMfB0rXauaDlrIvm+U7V4m03PPOSVoPS66z8gf+G4Z/UW8UlrVIj2MRQOBzuoEvYtjS0bqYwnpZaS9Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/yargs-parser": "*"
|
||||
}
|
||||
},
|
||||
"@types/yargs-parser": {
|
||||
"version": "20.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
|
||||
"integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==",
|
||||
"version": "20.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz",
|
||||
"integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
|
||||
"dev": true
|
||||
},
|
||||
"@webassemblyjs/ast": {
|
||||
@ -1841,15 +1859,15 @@
|
||||
}
|
||||
},
|
||||
"app-builder-bin": {
|
||||
"version": "3.5.13",
|
||||
"resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.13.tgz",
|
||||
"integrity": "sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==",
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
|
||||
"integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==",
|
||||
"dev": true
|
||||
},
|
||||
"app-builder-lib": {
|
||||
"version": "22.11.7",
|
||||
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.7.tgz",
|
||||
"integrity": "sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ==",
|
||||
"version": "22.11.11",
|
||||
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.11.tgz",
|
||||
"integrity": "sha512-sdOvTPKERzPJtC8ipaYTQJHW9NDl0jAB4MuxixtFrZheHUwd+QI/1oRLtspZHacmk2kqa+lULVTm9Qfj4N2blw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"7zip-bin": "~5.1.1",
|
||||
@ -1858,12 +1876,13 @@
|
||||
"@malept/flatpak-bundler": "^0.4.0",
|
||||
"async-exit-hook": "^2.0.1",
|
||||
"bluebird-lst": "^1.0.9",
|
||||
"builder-util": "22.11.7",
|
||||
"builder-util-runtime": "8.7.7",
|
||||
"builder-util": "22.11.11",
|
||||
"builder-util-runtime": "8.7.10",
|
||||
"chromium-pickle-js": "^0.2.0",
|
||||
"debug": "^4.3.2",
|
||||
"ejs": "^3.1.6",
|
||||
"electron-publish": "22.11.7",
|
||||
"electron-osx-sign": "^0.5.0",
|
||||
"electron-publish": "22.11.11",
|
||||
"fs-extra": "^10.0.0",
|
||||
"hosted-git-info": "^4.0.2",
|
||||
"is-ci": "^3.0.0",
|
||||
@ -2062,8 +2081,7 @@
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"blockbench-types": {
|
||||
"version": "3.9.0",
|
||||
@ -2165,6 +2183,22 @@
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"buffer-alloc": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
|
||||
"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-alloc-unsafe": "^1.1.0",
|
||||
"buffer-fill": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"buffer-alloc-unsafe": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
|
||||
"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-crc32": {
|
||||
"version": "0.2.13",
|
||||
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
||||
@ -2177,6 +2211,12 @@
|
||||
"integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-fill": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
|
||||
"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
|
||||
@ -2184,17 +2224,17 @@
|
||||
"dev": true
|
||||
},
|
||||
"builder-util": {
|
||||
"version": "22.11.7",
|
||||
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.7.tgz",
|
||||
"integrity": "sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA==",
|
||||
"version": "22.11.11",
|
||||
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.11.tgz",
|
||||
"integrity": "sha512-2UJjOuPXhix68mmQ9hkv9G52Y0EVB8RPjlJF61jr3/tLIyd3UiJmEEhKttu8F+JVHKj8myz1MWw2/keJE/Nh+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"7zip-bin": "~5.1.1",
|
||||
"@types/debug": "^4.1.5",
|
||||
"@types/debug": "^4.1.6",
|
||||
"@types/fs-extra": "^9.0.11",
|
||||
"app-builder-bin": "3.5.13",
|
||||
"app-builder-bin": "3.7.1",
|
||||
"bluebird-lst": "^1.0.9",
|
||||
"builder-util-runtime": "8.7.7",
|
||||
"builder-util-runtime": "8.7.10",
|
||||
"chalk": "^4.1.1",
|
||||
"debug": "^4.3.2",
|
||||
"fs-extra": "^10.0.0",
|
||||
@ -2259,9 +2299,9 @@
|
||||
}
|
||||
},
|
||||
"builder-util-runtime": {
|
||||
"version": "8.7.7",
|
||||
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz",
|
||||
"integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==",
|
||||
"version": "8.7.10",
|
||||
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.10.tgz",
|
||||
"integrity": "sha512-zelTRebsOsj33pF+Jf/qwpvx9W6CeMQshqaRa70Ii6+NQGsspMXqlKDQb+1lvTv9aWARxa3+jy/syzm8jTE8Kw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "^4.3.2",
|
||||
@ -2340,9 +2380,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
|
||||
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
@ -2504,6 +2544,12 @@
|
||||
"integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
|
||||
"dev": true
|
||||
},
|
||||
"compare-version": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
|
||||
"integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
@ -2689,14 +2735,14 @@
|
||||
}
|
||||
},
|
||||
"dmg-builder": {
|
||||
"version": "22.11.7",
|
||||
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.7.tgz",
|
||||
"integrity": "sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ==",
|
||||
"version": "22.11.11",
|
||||
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.11.tgz",
|
||||
"integrity": "sha512-4ew0c1G8bTZ14k2Nn++AHGDyEQ2rfay2YSguVvynnsD4rke6IGASQd8x6njP9t/SrEJOIQQpIKmEN/9tXJQoGw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"app-builder-lib": "22.11.7",
|
||||
"builder-util": "22.11.7",
|
||||
"builder-util-runtime": "8.7.6",
|
||||
"app-builder-lib": "22.11.11",
|
||||
"builder-util": "22.11.11",
|
||||
"builder-util-runtime": "8.7.10",
|
||||
"dmg-license": "^1.0.9",
|
||||
"fs-extra": "^10.0.0",
|
||||
"iconv-lite": "^0.6.2",
|
||||
@ -2709,25 +2755,6 @@
|
||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
||||
"dev": true
|
||||
},
|
||||
"builder-util-runtime": {
|
||||
"version": "8.7.6",
|
||||
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz",
|
||||
"integrity": "sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "^4.3.2",
|
||||
"sax": "^1.2.4"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.2",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
|
||||
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
|
||||
@ -2840,17 +2867,17 @@
|
||||
}
|
||||
},
|
||||
"electron-builder": {
|
||||
"version": "22.11.7",
|
||||
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.7.tgz",
|
||||
"integrity": "sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw==",
|
||||
"version": "22.11.11",
|
||||
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.11.tgz",
|
||||
"integrity": "sha512-yTD+u3uDnAov7xmniYn6zvNOcmzYhBL6n3iZmyPt+1UzMxhrkvSuEPJeuMPFD5s5D4FNBX4r0vAI4tv3SbWnnA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/yargs": "^16.0.2",
|
||||
"app-builder-lib": "22.11.7",
|
||||
"builder-util": "22.11.7",
|
||||
"builder-util-runtime": "8.7.7",
|
||||
"@types/yargs": "^17.0.1",
|
||||
"app-builder-lib": "22.11.11",
|
||||
"builder-util": "22.11.11",
|
||||
"builder-util-runtime": "8.7.10",
|
||||
"chalk": "^4.1.1",
|
||||
"dmg-builder": "22.11.7",
|
||||
"dmg-builder": "22.11.11",
|
||||
"fs-extra": "^10.0.0",
|
||||
"is-ci": "^3.0.0",
|
||||
"lazy-val": "^1.0.5",
|
||||
@ -2939,15 +2966,55 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"electron-osx-sign": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz",
|
||||
"integrity": "sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bluebird": "^3.5.0",
|
||||
"compare-version": "^0.1.2",
|
||||
"debug": "^2.6.8",
|
||||
"isbinaryfile": "^3.0.2",
|
||||
"minimist": "^1.2.0",
|
||||
"plist": "^3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"isbinaryfile": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
|
||||
"integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-alloc": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"electron-publish": {
|
||||
"version": "22.11.7",
|
||||
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.7.tgz",
|
||||
"integrity": "sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw==",
|
||||
"version": "22.11.11",
|
||||
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.11.tgz",
|
||||
"integrity": "sha512-XINI2yz7DpForvLDENr1zfi6yW+O3ufeIgNCg/nkqiD3tBM44AokgY3aYURzsi93ZwFscoQkR2LhmHDvn30oAw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/fs-extra": "^9.0.11",
|
||||
"builder-util": "22.11.7",
|
||||
"builder-util-runtime": "8.7.7",
|
||||
"builder-util": "22.11.11",
|
||||
"builder-util-runtime": "8.7.10",
|
||||
"chalk": "^4.1.1",
|
||||
"fs-extra": "^10.0.0",
|
||||
"lazy-val": "^1.0.5",
|
||||
@ -4245,24 +4312,13 @@
|
||||
}
|
||||
},
|
||||
"plist": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz",
|
||||
"integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==",
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
|
||||
"integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"base64-js": "^1.5.1",
|
||||
"xmlbuilder": "^9.0.7",
|
||||
"xmldom": "^0.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"xmlbuilder": {
|
||||
"version": "9.0.7",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
|
||||
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
"xmlbuilder": "^9.0.7"
|
||||
}
|
||||
},
|
||||
"prepend-http": {
|
||||
@ -4702,9 +4758,9 @@
|
||||
}
|
||||
},
|
||||
"smart-buffer": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
|
||||
"integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==",
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
||||
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
@ -5654,18 +5710,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "15.1.1",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
|
||||
"integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"xmldom": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz",
|
||||
"integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"version": "9.0.7",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
|
||||
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
|
||||
"dev": true
|
||||
},
|
||||
"y18n": {
|
||||
"version": "5.0.8",
|
||||
@ -5680,9 +5728,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "17.0.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz",
|
||||
"integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==",
|
||||
"version": "17.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz",
|
||||
"integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cliui": "^7.0.2",
|
||||
|
@ -105,7 +105,7 @@
|
||||
"devDependencies": {
|
||||
"blockbench-types": "^3.9.0",
|
||||
"electron": "^13.1.2",
|
||||
"electron-builder": "^22.11.7",
|
||||
"electron-builder": "^22.11.11",
|
||||
"electron-notarize": "^1.0.0",
|
||||
"webpack": "^5.21.2",
|
||||
"webpack-cli": "^4.5.0",
|
||||
|
Loading…
Reference in New Issue
Block a user