vite-plugin-vue-devtools 7.3.4 → 7.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vite.cjs CHANGED
@@ -7595,19 +7595,72 @@ const TGA = {
7595
7595
  }
7596
7596
  };
7597
7597
 
7598
+ function readIFD(buffer, isBigEndian) {
7599
+ const ifdOffset = readUInt(buffer, 32, 4, isBigEndian);
7600
+ let bufferSize = 1024;
7601
+ const fileSize = buffer.length;
7602
+ if (ifdOffset + bufferSize > fileSize) {
7603
+ bufferSize = fileSize - ifdOffset - 10;
7604
+ }
7605
+ return buffer.slice(ifdOffset + 2, ifdOffset + 2 + bufferSize);
7606
+ }
7607
+ function readValue(buffer, isBigEndian) {
7608
+ const low = readUInt(buffer, 16, 8, isBigEndian);
7609
+ const high = readUInt(buffer, 16, 10, isBigEndian);
7610
+ return (high << 16) + low;
7611
+ }
7612
+ function nextTag(buffer) {
7613
+ if (buffer.length > 24) {
7614
+ return buffer.slice(12);
7615
+ }
7616
+ }
7617
+ function extractTags(buffer, isBigEndian) {
7618
+ const tags = {};
7619
+ let temp = buffer;
7620
+ while (temp && temp.length > 0) {
7621
+ const code = readUInt(temp, 16, 0, isBigEndian);
7622
+ const type = readUInt(temp, 16, 2, isBigEndian);
7623
+ const length = readUInt(temp, 32, 4, isBigEndian);
7624
+ if (code === 0) {
7625
+ break;
7626
+ } else {
7627
+ if (length === 1 && (type === 3 || type === 4)) {
7628
+ tags[code] = readValue(temp, isBigEndian);
7629
+ }
7630
+ temp = nextTag(temp);
7631
+ }
7632
+ }
7633
+ return tags;
7634
+ }
7635
+ function determineEndianness(input) {
7636
+ const signature = toUTF8String(input, 0, 2);
7637
+ if (signature === "II") {
7638
+ return "LE";
7639
+ } else if (signature === "MM") {
7640
+ return "BE";
7641
+ }
7642
+ }
7598
7643
  const signatures = /* @__PURE__ */ new Set([
7599
- "492049",
7600
- // ?
7644
+ // '492049', // currently not supported
7601
7645
  "49492a00",
7602
7646
  // Little endian
7603
- "4d4d002a",
7604
- // Big Endian
7605
7647
  "4d4d002a"
7606
- // BigTIFF > 4GB. currently not supported
7648
+ // Big Endian
7649
+ // '4d4d002a', // BigTIFF > 4GB. currently not supported
7607
7650
  ]);
7608
7651
  const TIFF = {
7609
7652
  validate: (input) => signatures.has(toHexString(input, 0, 4)),
7610
- calculate: () => ({ width: void 0, height: void 0 })
7653
+ calculate(input) {
7654
+ const isBigEndian = determineEndianness(input) === "BE";
7655
+ const ifdBuffer = readIFD(input, isBigEndian);
7656
+ const tags = extractTags(ifdBuffer, isBigEndian);
7657
+ const width = tags[256];
7658
+ const height = tags[257];
7659
+ if (!width || !height) {
7660
+ throw new TypeError("Invalid Tiff. Missing tags");
7661
+ }
7662
+ return { height, width };
7663
+ }
7611
7664
  };
7612
7665
 
7613
7666
  function calculateExtended(input) {
@@ -7659,6 +7712,48 @@ const WEBP = {
7659
7712
  }
7660
7713
  };
7661
7714
 
7715
+ const AVIF = {
7716
+ validate: (input) => toUTF8String(input, 8, 12) === "avif",
7717
+ calculate: (input) => {
7718
+ const metaBox = findBox(input, "meta");
7719
+ const iprpBox = findBox(
7720
+ input,
7721
+ "iprp",
7722
+ metaBox.offset + 12,
7723
+ metaBox.offset + metaBox.size
7724
+ );
7725
+ const ipcoBox = findBox(
7726
+ input,
7727
+ "ipco",
7728
+ iprpBox.offset + 8,
7729
+ iprpBox.offset + iprpBox.size
7730
+ );
7731
+ const ispeBox = findBox(
7732
+ input,
7733
+ "ispe",
7734
+ ipcoBox.offset + 8,
7735
+ ipcoBox.offset + ipcoBox.size
7736
+ );
7737
+ const width = readUInt32BE(input, ispeBox.offset + 12);
7738
+ const height = readUInt32BE(input, ispeBox.offset + 16);
7739
+ return { width, height };
7740
+ }
7741
+ };
7742
+ function findBox(input, type, startOffset = 0, endOffset = input.length) {
7743
+ for (let offset = startOffset; offset < endOffset; ) {
7744
+ const size = readUInt32BE(input, offset);
7745
+ const boxType = toUTF8String(input, offset + 4, offset + 8);
7746
+ if (boxType === type) {
7747
+ return { offset, size };
7748
+ }
7749
+ if (size <= 0 || offset + size > endOffset) {
7750
+ break;
7751
+ }
7752
+ offset += size;
7753
+ }
7754
+ throw new Error(`${type} box not found`);
7755
+ }
7756
+
7662
7757
  const typeHandlers = {
7663
7758
  bmp: BMP,
7664
7759
  cur: CUR,
@@ -7676,7 +7771,8 @@ const typeHandlers = {
7676
7771
  svg: SVG,
7677
7772
  tga: TGA,
7678
7773
  tiff: TIFF,
7679
- webp: WEBP
7774
+ webp: WEBP,
7775
+ avif: AVIF
7680
7776
  };
7681
7777
 
7682
7778
  const keys = Object.keys(typeHandlers);
package/dist/vite.mjs CHANGED
@@ -7579,19 +7579,72 @@ const TGA = {
7579
7579
  }
7580
7580
  };
7581
7581
 
7582
+ function readIFD(buffer, isBigEndian) {
7583
+ const ifdOffset = readUInt(buffer, 32, 4, isBigEndian);
7584
+ let bufferSize = 1024;
7585
+ const fileSize = buffer.length;
7586
+ if (ifdOffset + bufferSize > fileSize) {
7587
+ bufferSize = fileSize - ifdOffset - 10;
7588
+ }
7589
+ return buffer.slice(ifdOffset + 2, ifdOffset + 2 + bufferSize);
7590
+ }
7591
+ function readValue(buffer, isBigEndian) {
7592
+ const low = readUInt(buffer, 16, 8, isBigEndian);
7593
+ const high = readUInt(buffer, 16, 10, isBigEndian);
7594
+ return (high << 16) + low;
7595
+ }
7596
+ function nextTag(buffer) {
7597
+ if (buffer.length > 24) {
7598
+ return buffer.slice(12);
7599
+ }
7600
+ }
7601
+ function extractTags(buffer, isBigEndian) {
7602
+ const tags = {};
7603
+ let temp = buffer;
7604
+ while (temp && temp.length > 0) {
7605
+ const code = readUInt(temp, 16, 0, isBigEndian);
7606
+ const type = readUInt(temp, 16, 2, isBigEndian);
7607
+ const length = readUInt(temp, 32, 4, isBigEndian);
7608
+ if (code === 0) {
7609
+ break;
7610
+ } else {
7611
+ if (length === 1 && (type === 3 || type === 4)) {
7612
+ tags[code] = readValue(temp, isBigEndian);
7613
+ }
7614
+ temp = nextTag(temp);
7615
+ }
7616
+ }
7617
+ return tags;
7618
+ }
7619
+ function determineEndianness(input) {
7620
+ const signature = toUTF8String(input, 0, 2);
7621
+ if (signature === "II") {
7622
+ return "LE";
7623
+ } else if (signature === "MM") {
7624
+ return "BE";
7625
+ }
7626
+ }
7582
7627
  const signatures = /* @__PURE__ */ new Set([
7583
- "492049",
7584
- // ?
7628
+ // '492049', // currently not supported
7585
7629
  "49492a00",
7586
7630
  // Little endian
7587
- "4d4d002a",
7588
- // Big Endian
7589
7631
  "4d4d002a"
7590
- // BigTIFF > 4GB. currently not supported
7632
+ // Big Endian
7633
+ // '4d4d002a', // BigTIFF > 4GB. currently not supported
7591
7634
  ]);
7592
7635
  const TIFF = {
7593
7636
  validate: (input) => signatures.has(toHexString(input, 0, 4)),
7594
- calculate: () => ({ width: void 0, height: void 0 })
7637
+ calculate(input) {
7638
+ const isBigEndian = determineEndianness(input) === "BE";
7639
+ const ifdBuffer = readIFD(input, isBigEndian);
7640
+ const tags = extractTags(ifdBuffer, isBigEndian);
7641
+ const width = tags[256];
7642
+ const height = tags[257];
7643
+ if (!width || !height) {
7644
+ throw new TypeError("Invalid Tiff. Missing tags");
7645
+ }
7646
+ return { height, width };
7647
+ }
7595
7648
  };
7596
7649
 
7597
7650
  function calculateExtended(input) {
@@ -7643,6 +7696,48 @@ const WEBP = {
7643
7696
  }
7644
7697
  };
7645
7698
 
7699
+ const AVIF = {
7700
+ validate: (input) => toUTF8String(input, 8, 12) === "avif",
7701
+ calculate: (input) => {
7702
+ const metaBox = findBox(input, "meta");
7703
+ const iprpBox = findBox(
7704
+ input,
7705
+ "iprp",
7706
+ metaBox.offset + 12,
7707
+ metaBox.offset + metaBox.size
7708
+ );
7709
+ const ipcoBox = findBox(
7710
+ input,
7711
+ "ipco",
7712
+ iprpBox.offset + 8,
7713
+ iprpBox.offset + iprpBox.size
7714
+ );
7715
+ const ispeBox = findBox(
7716
+ input,
7717
+ "ispe",
7718
+ ipcoBox.offset + 8,
7719
+ ipcoBox.offset + ipcoBox.size
7720
+ );
7721
+ const width = readUInt32BE(input, ispeBox.offset + 12);
7722
+ const height = readUInt32BE(input, ispeBox.offset + 16);
7723
+ return { width, height };
7724
+ }
7725
+ };
7726
+ function findBox(input, type, startOffset = 0, endOffset = input.length) {
7727
+ for (let offset = startOffset; offset < endOffset; ) {
7728
+ const size = readUInt32BE(input, offset);
7729
+ const boxType = toUTF8String(input, offset + 4, offset + 8);
7730
+ if (boxType === type) {
7731
+ return { offset, size };
7732
+ }
7733
+ if (size <= 0 || offset + size > endOffset) {
7734
+ break;
7735
+ }
7736
+ offset += size;
7737
+ }
7738
+ throw new Error(`${type} box not found`);
7739
+ }
7740
+
7646
7741
  const typeHandlers = {
7647
7742
  bmp: BMP,
7648
7743
  cur: CUR,
@@ -7660,7 +7755,8 @@ const typeHandlers = {
7660
7755
  svg: SVG,
7661
7756
  tga: TGA,
7662
7757
  tiff: TIFF,
7663
- webp: WEBP
7758
+ webp: WEBP,
7759
+ avif: AVIF
7664
7760
  };
7665
7761
 
7666
7762
  const keys = Object.keys(typeHandlers);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vite-plugin-vue-devtools",
3
3
  "type": "module",
4
- "version": "7.3.4",
4
+ "version": "7.3.6",
5
5
  "description": "A vite plugin for Vue DevTools",
6
6
  "author": "webfansplz",
7
7
  "license": "MIT",
@@ -50,14 +50,14 @@
50
50
  "sirv": "^2.0.4",
51
51
  "vite-plugin-inspect": "^0.8.4",
52
52
  "vite-plugin-vue-inspector": "^5.1.2",
53
- "@vue/devtools-kit": "^7.3.4",
54
- "@vue/devtools-core": "^7.3.4",
55
- "@vue/devtools-shared": "^7.3.4"
53
+ "@vue/devtools-core": "^7.3.6",
54
+ "@vue/devtools-kit": "^7.3.6",
55
+ "@vue/devtools-shared": "^7.3.6"
56
56
  },
57
57
  "devDependencies": {
58
- "@types/node": "^20.14.5",
58
+ "@types/node": "^20.14.10",
59
59
  "fast-glob": "^3.3.2",
60
- "image-meta": "^0.2.0",
60
+ "image-meta": "^0.2.1",
61
61
  "pathe": "^1.1.2"
62
62
  },
63
63
  "scripts": {
@@ -1 +1 @@
1
- .vue-devtools-frame[data-v-df0df9e8]{position:fixed;z-index:2147483645}.vue-devtools-frame[data-v-df0df9e8] iframe{width:100%;height:100%;outline:none;background:var(--vue-devtools-widget-bg);border:1px solid rgba(125,125,125,.2);border-radius:10px}.vue-devtools-frame.view-mode-xs[data-v-df0df9e8]{width:400px!important;height:80px!important}.vue-devtools-frame.view-mode-fullscreen[data-v-df0df9e8]{width:100vw!important;height:100vh!important;z-index:1!important;bottom:0!important;transform:none!important}.vue-devtools-frame.view-mode-fullscreen[data-v-df0df9e8] iframe{border-radius:0!important}.vue-devtools-resize--horizontal[data-v-df0df9e8]{position:absolute;left:6px;right:6px;height:10px;margin:-5px 0;cursor:ns-resize;border-radius:5px}.vue-devtools-resize--vertical[data-v-df0df9e8]{position:absolute;top:6px;bottom:0;width:10px;margin:0 -5px;cursor:ew-resize;border-radius:5px}.vue-devtools-resize-corner[data-v-df0df9e8]{position:absolute;width:14px;height:14px;margin:-6px;border-radius:6px}.vue-devtools-resize[data-v-df0df9e8]:hover{background:#7d7d7d1a}.vue-devtools__anchor[data-v-19b8fd4e]{position:fixed;z-index:2147483645;transform-origin:center center;transform:translate(-50%,-50%) rotate(0)}.vue-devtools__anchor.fullscreen[data-v-19b8fd4e]{transform:none!important;left:0!important}.vue-devtools__anchor-btn[data-v-19b8fd4e]{border-radius:100%;border-width:0;width:30px;height:30px;display:flex;justify-content:center;align-items:center;opacity:.8;transition:opacity .2s ease-in-out}.vue-devtools__anchor-btn[data-v-19b8fd4e]:hover{opacity:1}.vue-devtools__anchor-btn svg[data-v-19b8fd4e]{width:14px;height:14px}.vue-devtools__anchor-btn.active[data-v-19b8fd4e]{cursor:pointer}.vue-devtools__anchor .panel-entry-btn[data-v-19b8fd4e]{cursor:pointer;flex:none}.vue-devtools__anchor--vertical .panel-entry-btn[data-v-19b8fd4e]{transform:rotate(-90deg)}.vue-devtools__anchor--vertical .vue-devtools__panel[data-v-19b8fd4e]{transform:translate(-50%,-50%) rotate(90deg);box-shadow:2px -2px 8px var(--vue-devtools-widget-shadow)}.vue-devtools__anchor--hide .vue-devtools__panel[data-v-19b8fd4e]{max-width:32px;padding:2px 0}.vue-devtools__anchor--hide .vue-devtools__panel-content[data-v-19b8fd4e]{opacity:0}.vue-devtools__anchor--glowing[data-v-19b8fd4e]{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:160px;height:160px;opacity:0;transition:all 1s ease;pointer-events:none;z-index:-1;border-radius:9999px;background-image:linear-gradient(45deg,#00dc82,#36e4da,#0047e1);filter:blur(60px)}.vue-devtools__anchor:hover .vue-devtools__anchor--glowing[data-v-19b8fd4e]{opacity:.6}.vue-devtools__panel[data-v-19b8fd4e]{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:flex;justify-content:flex-start;overflow:hidden;align-items:center;gap:2px;height:30px;padding:4px 4px 4px 5px;box-sizing:border-box;border:1px solid var(--vue-devtools-widget-border);border-radius:20px;background-color:var(--vue-devtools-widget-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--vue-devtools-widget-fg);box-shadow:2px 2px 8px var(--vue-devtools-widget-shadow);-webkit-user-select:none;user-select:none;max-width:150px;transition:max-width .4s ease,padding .5s ease,transform .3s ease,all .4s ease}.vue-devtools__panel-content[data-v-19b8fd4e]{transition:opacity .4s ease}.vue-devtools__panel-divider[data-v-19b8fd4e]{border-left:1px solid rgba(136,136,136,.2);width:1px;height:10px}@keyframes blink-19b8fd4e{0%{opacity:.2}50%{opacity:.6}to{opacity:.2}}@media print{#vue-devtools-anchor[data-v-19b8fd4e]{display:none}}
1
+ .vue-devtools-frame[data-v-df0df9e8]{position:fixed;z-index:2147483645}.vue-devtools-frame[data-v-df0df9e8] iframe{width:100%;height:100%;outline:none;background:var(--vue-devtools-widget-bg);border:1px solid rgba(125,125,125,.2);border-radius:10px}.vue-devtools-frame.view-mode-xs[data-v-df0df9e8]{width:400px!important;height:80px!important}.vue-devtools-frame.view-mode-fullscreen[data-v-df0df9e8]{width:100vw!important;height:100vh!important;z-index:1!important;bottom:0!important;transform:none!important}.vue-devtools-frame.view-mode-fullscreen[data-v-df0df9e8] iframe{border-radius:0!important}.vue-devtools-resize--horizontal[data-v-df0df9e8]{position:absolute;left:6px;right:6px;height:10px;margin:-5px 0;cursor:ns-resize;border-radius:5px}.vue-devtools-resize--vertical[data-v-df0df9e8]{position:absolute;top:6px;bottom:0;width:10px;margin:0 -5px;cursor:ew-resize;border-radius:5px}.vue-devtools-resize-corner[data-v-df0df9e8]{position:absolute;width:14px;height:14px;margin:-6px;border-radius:6px}.vue-devtools-resize[data-v-df0df9e8]:hover{background:#7d7d7d1a}.vue-devtools__anchor[data-v-a5b0a558]{position:fixed;z-index:2147483645;transform-origin:center center;transform:translate(-50%,-50%) rotate(0)}.vue-devtools__anchor.fullscreen[data-v-a5b0a558]{transform:none!important;left:0!important}.vue-devtools__anchor-btn[data-v-a5b0a558]{border-radius:100%;border-width:0;width:30px;height:30px;display:flex;justify-content:center;align-items:center;opacity:.8;transition:opacity .2s ease-in-out}.vue-devtools__anchor-btn[data-v-a5b0a558]:hover{opacity:1}.vue-devtools__anchor-btn svg[data-v-a5b0a558]{width:14px;height:14px}.vue-devtools__anchor-btn.active[data-v-a5b0a558]{cursor:pointer}.vue-devtools__anchor .panel-entry-btn[data-v-a5b0a558]{cursor:pointer;flex:none}.vue-devtools__anchor--vertical .panel-entry-btn[data-v-a5b0a558]{transform:rotate(-90deg)}.vue-devtools__anchor--vertical .vue-devtools__panel[data-v-a5b0a558]{transform:translate(-50%,-50%) rotate(90deg);box-shadow:2px -2px 8px var(--vue-devtools-widget-shadow)}.vue-devtools__anchor--hide .vue-devtools__panel[data-v-a5b0a558]{max-width:32px;padding:2px 0}.vue-devtools__anchor--hide .vue-devtools__panel-content[data-v-a5b0a558]{opacity:0}.vue-devtools__anchor--glowing[data-v-a5b0a558]{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:160px;height:160px;opacity:0;transition:all 1s ease;pointer-events:none;z-index:-1;border-radius:9999px;background-image:linear-gradient(45deg,#00dc82,#36e4da,#0047e1);filter:blur(60px)}.vue-devtools__anchor:hover .vue-devtools__anchor--glowing[data-v-a5b0a558]{opacity:.6}.vue-devtools__panel[data-v-a5b0a558]{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:flex;justify-content:flex-start;overflow:hidden;align-items:center;gap:2px;height:30px;padding:4px 4px 4px 5px;box-sizing:border-box;border:1px solid var(--vue-devtools-widget-border);border-radius:20px;background-color:var(--vue-devtools-widget-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--vue-devtools-widget-fg);box-shadow:2px 2px 8px var(--vue-devtools-widget-shadow);-webkit-user-select:none;user-select:none;max-width:150px;transition:max-width .4s ease,padding .5s ease,transform .3s ease,all .4s ease}.vue-devtools__panel-content[data-v-a5b0a558]{transition:opacity .4s ease}.vue-devtools__panel-divider[data-v-a5b0a558]{border-left:1px solid rgba(136,136,136,.2);width:1px;height:10px}@keyframes blink-a5b0a558{0%{opacity:.2}50%{opacity:.6}to{opacity:.2}}@media print{#vue-devtools-anchor[data-v-a5b0a558]{display:none}}