diff --git a/README.md b/README.md index 24420f1..acd87a4 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ import { Application } from 'pixi.js'; import { Stats } from 'pixi-stats'; const app = new Application(); -const stats = new Stats(document, app.renderer); +const stats = new Stats(app.renderer); ``` ```css diff --git a/dist/hooks/BaseHooks.d.ts b/dist/hooks/BaseHooks.d.ts new file mode 100644 index 0000000..454f988 --- /dev/null +++ b/dist/hooks/BaseHooks.d.ts @@ -0,0 +1,18 @@ +import GLHook from './GLHook'; +import TextureHook from './TextureHook'; +export default class BaseHooks { + protected _drawCalls: number; + protected _maxDeltaDrawCalls: number; + protected glhook?: GLHook; + protected texturehook?: TextureHook; + constructor(); + attach(gl: any): void; + get drawCalls(): number; + get maxDeltaDrawCalls(): number; + get deltaDrawCalls(): number; + get maxTextureCount(): number; + get texturesCount(): number; + reset(): void; + release(): void; +} +//# sourceMappingURL=BaseHooks.d.ts.map \ No newline at end of file diff --git a/dist/hooks/BaseHooks.d.ts.map b/dist/hooks/BaseHooks.d.ts.map new file mode 100644 index 0000000..4ddc4d2 --- /dev/null +++ b/dist/hooks/BaseHooks.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"BaseHooks.d.ts","sourceRoot":"","sources":["../../src/hooks/BaseHooks.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAM;IAElC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAM;IAE1C,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;;IAI7B,MAAM,CAAC,EAAE,EAAE,GAAG;IAKrB,IAAW,SAAS,IAAI,MAAM,CAK7B;IAED,IAAW,iBAAiB,WAE3B;IAED,IAAW,cAAc,IAAI,MAAM,CAUlC;IAED,IAAW,eAAe,IAAI,MAAM,CAInC;IAED,IAAW,aAAa,IAAI,MAAM,CAIjC;IAEM,KAAK,IAAI,IAAI;IAOb,OAAO,IAAI,IAAI;CAIvB"} \ No newline at end of file diff --git a/dist/hooks/BaseHooks.js b/dist/hooks/BaseHooks.js new file mode 100644 index 0000000..47c956f --- /dev/null +++ b/dist/hooks/BaseHooks.js @@ -0,0 +1,63 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const GLHook_1 = __importDefault(require("./GLHook")); +const TextureHook_1 = __importDefault(require("./TextureHook")); +class BaseHooks { + constructor() { + this._drawCalls = -1; + this._maxDeltaDrawCalls = -1; + } + attach(gl) { + this.glhook = new GLHook_1.default(gl); + this.texturehook = new TextureHook_1.default(gl); + } + get drawCalls() { + if (this.glhook && this.glhook.isInit) { + return this.glhook.drawPasses; + } + return -1; + } + get maxDeltaDrawCalls() { + return this._maxDeltaDrawCalls; + } + get deltaDrawCalls() { + if (this._drawCalls == -1) { + this._drawCalls = this.drawCalls; + return 0; + } + const dc = this.drawCalls; + const delta = dc - this._drawCalls; + this._drawCalls = dc; + this._maxDeltaDrawCalls = Math.max(this._maxDeltaDrawCalls, delta); + return delta; + } + get maxTextureCount() { + if (this.texturehook && this.texturehook.isInit) + return this.texturehook.maxTexturesCount; + return 0; + } + get texturesCount() { + if (this.texturehook && this.texturehook.isInit) + return this.texturehook.currentTextureCount; + return 0; + } + reset() { + this._maxDeltaDrawCalls = -1; + this._drawCalls = -1; + if (this.glhook) + this.glhook.reset(); + if (this.texturehook) + this.texturehook.reset(); + } + release() { + if (this.glhook) + this.glhook.release(); + if (this.texturehook) + this.texturehook.release(); + } +} +exports.default = BaseHooks; +//# sourceMappingURL=BaseHooks.js.map \ No newline at end of file diff --git a/dist/hooks/BaseHooks.js.map b/dist/hooks/BaseHooks.js.map new file mode 100644 index 0000000..a59c229 --- /dev/null +++ b/dist/hooks/BaseHooks.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BaseHooks.js","sourceRoot":"","sources":["../../src/hooks/BaseHooks.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,gEAAwC;AAExC,MAAqB,SAAS;IAS5B;QARU,eAAU,GAAW,CAAC,CAAC,CAAC;QAExB,uBAAkB,GAAW,CAAC,CAAC,CAAC;IAM3B,CAAC;IAET,MAAM,CAAC,EAAO;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAW,SAAS;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAW,cAAc;QACvB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,EAAE,GAAW,IAAI,CAAC,SAAS,CAAC;QAClC,MAAM,KAAK,GAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAW,eAAe;QACxB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM;YAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;QAC3C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAW,aAAa;QACtB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM;YAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAC9C,OAAO,CAAC,CAAC;IACX,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACnD,CAAC;CACF;AA9DD,4BA8DC"} \ No newline at end of file diff --git a/dist/hooks/GLHook.d.ts b/dist/hooks/GLHook.d.ts new file mode 100644 index 0000000..b5dfd03 --- /dev/null +++ b/dist/hooks/GLHook.d.ts @@ -0,0 +1,11 @@ +export default class GLHook { + drawPasses: number; + isInit: boolean; + private realGLDrawElements; + private gl; + constructor(_gl?: any); + private fakeGLdrawElements; + reset(): void; + release(): void; +} +//# sourceMappingURL=GLHook.d.ts.map \ No newline at end of file diff --git a/dist/hooks/GLHook.d.ts.map b/dist/hooks/GLHook.d.ts.map new file mode 100644 index 0000000..45243c0 --- /dev/null +++ b/dist/hooks/GLHook.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"GLHook.d.ts","sourceRoot":"","sources":["../../src/hooks/GLHook.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,MAAM;IAClB,UAAU,EAAE,MAAM,CAAK;IAEvB,MAAM,EAAE,OAAO,CAAS;IAE/B,OAAO,CAAC,kBAAkB,CAA4C;IAEtE,OAAO,CAAC,EAAE,CAAM;gBAEJ,GAAG,CAAC,EAAE,GAAG;IAerB,OAAO,CAAC,kBAAkB;IAUnB,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;CAOvB"} \ No newline at end of file diff --git a/dist/hooks/GLHook.js b/dist/hooks/GLHook.js new file mode 100644 index 0000000..d6ff9f9 --- /dev/null +++ b/dist/hooks/GLHook.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class GLHook { + constructor(_gl) { + this.drawPasses = 0; + this.isInit = false; + this.realGLDrawElements = function () { }; + if (_gl) { + if (_gl.__proto__.drawElements) { + this.gl = _gl; + this.realGLDrawElements = _gl.__proto__.drawElements; + //replace to new function + _gl.__proto__.drawElements = this.fakeGLdrawElements.bind(this); + this.isInit = true; + console.log('[GLHook] GL was Hooked!'); + } + } + else { + console.error("[GLHook] GL can't be NULL"); + } + } + fakeGLdrawElements(mode, count, type, offset) { + this.drawPasses++; + this.realGLDrawElements.call(this.gl, mode, count, type, offset); + } + reset() { + this.drawPasses = 0; + } + release() { + if (this.isInit) { + this.gl.__proto__.drawElements = this.realGLDrawElements; + console.log('[GLHook] Hook was removed!'); + } + this.isInit = false; + } +} +exports.default = GLHook; +//# sourceMappingURL=GLHook.js.map \ No newline at end of file diff --git a/dist/hooks/GLHook.js.map b/dist/hooks/GLHook.js.map new file mode 100644 index 0000000..48abea0 --- /dev/null +++ b/dist/hooks/GLHook.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GLHook.js","sourceRoot":"","sources":["../../src/hooks/GLHook.ts"],"names":[],"mappings":";;AAAA,MAAqB,MAAM;IASzB,YAAY,GAAS;QARd,eAAU,GAAW,CAAC,CAAC;QAEvB,WAAM,GAAY,KAAK,CAAC;QAEvB,uBAAkB,GAA6B,cAAa,CAAC,CAAC;QAKpE,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;gBACd,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC;gBACrD,yBAAyB;gBACzB,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,kBAAkB,CACxB,IAAS,EACT,KAAU,EACV,IAAS,EACT,MAAW;QAEX,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF;AA7CD,yBA6CC"} \ No newline at end of file diff --git a/dist/hooks/TextureHook.d.ts b/dist/hooks/TextureHook.d.ts new file mode 100644 index 0000000..399ef2c --- /dev/null +++ b/dist/hooks/TextureHook.d.ts @@ -0,0 +1,16 @@ +export default class TextureHook { + createdTextures: Array; + maxTexturesCount: number; + isInit: boolean; + private realGLCreateTexture; + private realGLDeleteTexture; + private gl; + constructor(_gl?: any); + get currentTextureCount(): number; + registerTexture(texture: any): void; + private fakeGLCreateTexture; + private fakeGLDeleteTexture; + reset(): void; + release(): void; +} +//# sourceMappingURL=TextureHook.d.ts.map \ No newline at end of file diff --git a/dist/hooks/TextureHook.d.ts.map b/dist/hooks/TextureHook.d.ts.map new file mode 100644 index 0000000..9d04b23 --- /dev/null +++ b/dist/hooks/TextureHook.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"TextureHook.d.ts","sourceRoot":"","sources":["../../src/hooks/TextureHook.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,WAAW;IACvB,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,CAAoB;IAE/C,gBAAgB,EAAE,MAAM,CAAK;IAE7B,MAAM,EAAE,OAAO,CAAS;IAE/B,OAAO,CAAC,mBAAmB,CAA4C;IAEvE,OAAO,CAAC,mBAAmB,CAA4C;IAEvE,OAAO,CAAC,EAAE,CAAM;gBAEJ,GAAG,CAAC,EAAE,GAAG;IAiBrB,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAEM,eAAe,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAQ1C,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,mBAAmB;IAQpB,KAAK,IAAI,IAAI;IAKb,OAAO,IAAI,IAAI;CAQvB"} \ No newline at end of file diff --git a/dist/hooks/TextureHook.js b/dist/hooks/TextureHook.js new file mode 100644 index 0000000..d647ff4 --- /dev/null +++ b/dist/hooks/TextureHook.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class TextureHook { + constructor(_gl) { + this.createdTextures = new Array(); + this.maxTexturesCount = 0; + this.isInit = false; + this.realGLCreateTexture = function () { }; + this.realGLDeleteTexture = function () { }; + if (_gl) { + if (_gl.__proto__.createTexture) { + this.gl = _gl; + this.realGLCreateTexture = _gl.__proto__.createTexture; + this.realGLDeleteTexture = _gl.__proto__.deleteTexture; + //replace to new function + _gl.__proto__.createTexture = this.fakeGLCreateTexture.bind(this); + _gl.__proto__.deleteTexture = this.fakeGLDeleteTexture.bind(this); + this.isInit = true; + console.log('[TextureHook] GL was Hooked!'); + } + } + else { + console.error("[TextureHook] GL can't be NULL"); + } + } + get currentTextureCount() { + return this.createdTextures.length; + } + registerTexture(texture) { + this.createdTextures.push(texture); // ++; + this.maxTexturesCount = Math.max(this.createdTextures.length, this.maxTexturesCount); + } + fakeGLCreateTexture() { + const texture = this.realGLCreateTexture.call(this.gl); + this.registerTexture(texture); + return texture; + } + fakeGLDeleteTexture(texture) { + const index = this.createdTextures.indexOf(texture); + if (index > -1) { + this.createdTextures.splice(index, 1); + } + this.realGLDeleteTexture.call(this.gl, texture); + } + reset() { + this.createdTextures = new Array(); + this.maxTexturesCount = 0; + } + release() { + if (this.isInit) { + this.gl.__proto__.createTexture = this.realGLCreateTexture; + this.gl.__proto__.deleteTexture = this.realGLDeleteTexture; + console.log('[TextureHook] Hook was removed!'); + } + this.isInit = false; + } +} +exports.default = TextureHook; +//# sourceMappingURL=TextureHook.js.map \ No newline at end of file diff --git a/dist/hooks/TextureHook.js.map b/dist/hooks/TextureHook.js.map new file mode 100644 index 0000000..d485416 --- /dev/null +++ b/dist/hooks/TextureHook.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TextureHook.js","sourceRoot":"","sources":["../../src/hooks/TextureHook.ts"],"names":[],"mappings":";;AAAA,MAAqB,WAAW;IAa9B,YAAY,GAAS;QAZd,oBAAe,GAAe,IAAI,KAAK,EAAO,CAAC;QAE/C,qBAAgB,GAAW,CAAC,CAAC;QAE7B,WAAM,GAAY,KAAK,CAAC;QAEvB,wBAAmB,GAA6B,cAAa,CAAC,CAAC;QAE/D,wBAAmB,GAA6B,cAAa,CAAC,CAAC;QAKrE,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;gBAChC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;gBACd,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;gBACvD,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;gBACvD,yBAAyB;gBACzB,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAW,mBAAmB;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IACrC,CAAC;IAEM,eAAe,CAAC,OAAY;QACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;QAC1C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,EAC3B,IAAI,CAAC,gBAAgB,CACtB,CAAC;IACJ,CAAC;IAEO,mBAAmB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,mBAAmB,CAAC,OAAY;QACtC,MAAM,KAAK,GAAW,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,EAAO,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3D,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF;AArED,8BAqEC"} \ No newline at end of file diff --git a/dist/stats-gl.d.ts b/dist/stats-gl.d.ts index 5d1d1a9..fbaf87e 100644 --- a/dist/stats-gl.d.ts +++ b/dist/stats-gl.d.ts @@ -1,5 +1,5 @@ import { Texture, WebGLRenderer } from 'pixi.js'; -import BaseHooks from '@pietal.dev/gstats/dist/BaseHooks'; +import BaseHooks from './hooks/BaseHooks'; import { Panel } from './stats-panel'; import { Stats } from './stats'; export type PIXIGlTextureSystem = { diff --git a/dist/stats-gl.d.ts.map b/dist/stats-gl.d.ts.map index f258317..e576461 100644 --- a/dist/stats-gl.d.ts.map +++ b/dist/stats-gl.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"stats-gl.d.ts","sourceRoot":"","sources":["../src/stats-gl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,SAAS,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,qBAAqB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,qBAAa,cAAc;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IAEb,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;gBAEH,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK;IAczC,MAAM,IAAI,IAAI;IAiBd,KAAK,IAAI,IAAI;CAKd;AAED,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,QAAQ,EAAE,aAAa;CA8BpC"} \ No newline at end of file +{"version":3,"file":"stats-gl.d.ts","sourceRoot":"","sources":["../src/stats-gl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,qBAAqB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,qBAAa,cAAc;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IAEb,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;gBAEH,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK;IAczC,MAAM,IAAI,IAAI;IAiBd,KAAK,IAAI,IAAI;CAKd;AAED,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,QAAQ,EAAE,aAAa;CA8BpC"} \ No newline at end of file diff --git a/dist/stats-gl.js b/dist/stats-gl.js index 1d8d0a7..9085dbe 100644 --- a/dist/stats-gl.js +++ b/dist/stats-gl.js @@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PIXIHooks = exports.StatsJSAdapter = void 0; -const BaseHooks_1 = __importDefault(require("@pietal.dev/gstats/dist/BaseHooks")); +const BaseHooks_1 = __importDefault(require("./hooks/BaseHooks")); const stats_panel_1 = require("./stats-panel"); class StatsJSAdapter { constructor(hook, stats) { diff --git a/dist/stats-gl.js.map b/dist/stats-gl.js.map index 2c223ef..8ed1167 100644 --- a/dist/stats-gl.js.map +++ b/dist/stats-gl.js.map @@ -1 +1 @@ -{"version":3,"file":"stats-gl.js","sourceRoot":"","sources":["../src/stats-gl.ts"],"names":[],"mappings":";;;;;;AAEA,kFAA0D;AAC1D,+CAAsC;AAOtC,MAAa,cAAc;IAOzB,YAAY,IAAe,EAAE,KAAY;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EACxB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC1C,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,IAAI,CAAC,aAAa,EACvB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CACxC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;CACF;AA3CD,wCA2CC;AAED,MAAa,SAAU,SAAQ,mBAAS;IACtC,YAAY,QAAuB;QACjC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAEzD,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEzB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAC/B,QAAQ,CAAC,OAAyC,CAAC;YAErD,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBAEtE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC9C,IAAI,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;wBACtD,IAAI,CAAC,WAAY,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF;AA/BD,8BA+BC"} \ No newline at end of file +{"version":3,"file":"stats-gl.js","sourceRoot":"","sources":["../src/stats-gl.ts"],"names":[],"mappings":";;;;;;AAEA,kEAA0C;AAC1C,+CAAsC;AAOtC,MAAa,cAAc;IAOzB,YAAY,IAAe,EAAE,KAAY;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,mBAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EACxB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC1C,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,IAAI,CAAC,aAAa,EACvB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CACxC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;CACF;AA3CD,wCA2CC;AAED,MAAa,SAAU,SAAQ,mBAAS;IACtC,YAAY,QAAuB;QACjC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAEzD,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEzB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAC/B,QAAQ,CAAC,OAAyC,CAAC;YAErD,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBAEtE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC9C,IAAI,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;wBACtD,IAAI,CAAC,WAAY,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF;AA/BD,8BA+BC"} \ No newline at end of file diff --git a/dist/stats.d.ts b/dist/stats.d.ts index f066bf2..908b09d 100644 --- a/dist/stats.d.ts +++ b/dist/stats.d.ts @@ -12,7 +12,7 @@ export declare class Stats { fpsPanel: Panel; msPanel: Panel; memPanel?: Panel; - constructor(document: Document, renderer: WebGLRenderer); + constructor(renderer: WebGLRenderer, containerElement?: HTMLElement); addPanel(panel: Panel): Panel; showPanel(id: number): void; begin(): void; diff --git a/dist/stats.d.ts.map b/dist/stats.d.ts.map index 929bd6f..2070536 100644 --- a/dist/stats.d.ts.map +++ b/dist/stats.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtE,qBAAa,KAAK;IAChB,IAAI,SAAK;IACT,MAAM,SAAK;IAEX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAE3B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IAExB,QAAQ,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;gBAEL,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa;IAmCvD,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAM7B,SAAS,CAAC,EAAE,EAAE,MAAM;IAYpB,KAAK,IAAI,IAAI;IAIb,GAAG,IAAI,MAAM;IA6Bb,MAAM,IAAI,IAAI;CAGf"} \ No newline at end of file +{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtE,qBAAa,KAAK;IAChB,IAAI,SAAK;IACT,MAAM,SAAK;IAEX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAE3B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IAExB,QAAQ,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;gBAGf,QAAQ,EAAE,aAAa,EACvB,gBAAgB,GAAE,WAA2B;IAoC/C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAM7B,SAAS,CAAC,EAAE,EAAE,MAAM;IAYpB,KAAK,IAAI,IAAI;IAIb,GAAG,IAAI,MAAM;IA6Bb,MAAM,IAAI,IAAI;CAGf"} \ No newline at end of file diff --git a/dist/stats.js b/dist/stats.js index e1697dd..a3f39b0 100644 --- a/dist/stats.js +++ b/dist/stats.js @@ -5,7 +5,7 @@ const stats_gl_1 = require("./stats-gl"); const stats_panel_1 = require("./stats-panel"); const pixi_js_1 = require("pixi.js"); class Stats { - constructor(document, renderer) { + constructor(renderer, containerElement = document.body) { this.mode = 0; this.frames = 0; this.beginTime = (performance || Date).now(); @@ -24,7 +24,7 @@ class Stats { this.pixiHooks = new stats_gl_1.PIXIHooks(renderer); this.adapter = new stats_gl_1.StatsJSAdapter(this.pixiHooks, this); this.showPanel(0); - document.body.appendChild(this.domElement); + containerElement.appendChild(this.domElement); const ticker = pixi_js_1.Ticker.shared || new pixi_js_1.Ticker(); ticker.add(this.adapter.update, this.adapter, pixi_js_1.UPDATE_PRIORITY.UTILITY); } diff --git a/dist/stats.js.map b/dist/stats.js.map index 648a367..7d15308 100644 --- a/dist/stats.js.map +++ b/dist/stats.js.map @@ -1 +1 @@ -{"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":";;;AAAA,yCAAuD;AAEvD,+CAAsC;AACtC,qCAAsE;AAEtE,MAAa,KAAK;IAehB,YACE,QAAuB,EACvB,mBAAgC,QAAQ,CAAC,IAAI;QAhB/C,SAAI,GAAG,CAAC,CAAC;QACT,WAAM,GAAG,CAAC,CAAC;QAiBT,IAAI,CAAC,SAAS,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAE/B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAC9B,OAAO,EACP,CAAC,KAAK,EAAE,EAAE;YACR,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChE,CAAC,EACD,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAE9D,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAExD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAElB,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,gBAAM,CAAC,MAAM,IAAI,IAAI,gBAAM,EAAE,CAAC;QAE7C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,yBAAe,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACrE,MAAM,OAAO,GAAgB,IAAI,CAAC,UAAU,CAAC,QAAQ,CACnD,KAAK,CACS,CAAC;YAEjB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,GAAG;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,MAAM,IAAI,GAAW,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAEjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAEhD,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YAEzE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAEhB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,MAG1B,CAAC;gBAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClB,MAAM,CAAC,cAAc,GAAG,OAAO,EAC/B,MAAM,CAAC,eAAe,GAAG,OAAO,CACjC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;CACF;AA3GD,sBA2GC"} \ No newline at end of file diff --git a/dist/tsconfig.tsbuildinfo b/dist/tsconfig.tsbuildinfo index 0954a2d..ddbf223 100644 --- a/dist/tsconfig.tsbuildinfo +++ b/dist/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["../src/index.ts","../src/stats-constants.ts","../src/stats-gl.ts","../src/stats-panel.ts","../src/stats.ts"],"version":"5.6.2"} \ No newline at end of file +{"root":["../src/index.ts","../src/stats-constants.ts","../src/stats-gl.ts","../src/stats-panel.ts","../src/stats.ts","../src/hooks/BaseHooks.ts","../src/hooks/GLHook.ts","../src/hooks/TextureHook.ts"],"version":"5.6.2"} \ No newline at end of file diff --git a/package.json b/package.json index 49bb8ca..81c8540 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pixi-stats", - "version": "2.0.2", + "version": "3.0.0", "description": "a 2024 version of stats.js + gstats", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -8,7 +8,8 @@ "prebuild": "rm -rf dist", "build": "tsc --build", "format": "prettier --write src", - "precommit": "yarn format && yarn build", + "lint": "eslint src --fix", + "precommit": "yarn lint;yarn format && yarn build", "amend": "yarn precommit && git commit -a --am --no-edit" }, "resolutions": { @@ -36,20 +37,18 @@ "url": "https://github.com/Prozi/pixi-stats/issues" }, "homepage": "https://github.com/Prozi/pixi-stats#readme", - "dependencies": { - "@pietal.dev/gstats": "^0.1.6" - }, + "dependencies": {}, "peerDependencies": { "pixi.js": "^8.2.5" }, "devDependencies": { - "eslint": "^9.11.0", + "eslint": "^9.11.1", "globals": "^15.9.0", "pixi.js": "^8.4.1", "prettier": "^3.3.3", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "typescript": "^5.6.2", - "typescript-eslint": "^8.6.0" + "typescript-eslint": "^8.7.0" } } diff --git a/src/hooks/BaseHooks.ts b/src/hooks/BaseHooks.ts new file mode 100644 index 0000000..e0e833f --- /dev/null +++ b/src/hooks/BaseHooks.ts @@ -0,0 +1,66 @@ +import GLHook from './GLHook'; +import TextureHook from './TextureHook'; + +export default class BaseHooks { + protected _drawCalls: number = -1; + + protected _maxDeltaDrawCalls: number = -1; + + protected glhook?: GLHook; + + protected texturehook?: TextureHook; + + constructor() {} + + public attach(gl: any) { + this.glhook = new GLHook(gl); + this.texturehook = new TextureHook(gl); + } + + public get drawCalls(): number { + if (this.glhook && this.glhook.isInit) { + return this.glhook.drawPasses; + } + return -1; + } + + public get maxDeltaDrawCalls() { + return this._maxDeltaDrawCalls; + } + + public get deltaDrawCalls(): number { + if (this._drawCalls == -1) { + this._drawCalls = this.drawCalls; + return 0; + } + const dc: number = this.drawCalls; + const delta: number = dc - this._drawCalls; + this._drawCalls = dc; + this._maxDeltaDrawCalls = Math.max(this._maxDeltaDrawCalls, delta); + return delta; + } + + public get maxTextureCount(): number { + if (this.texturehook && this.texturehook.isInit) + return this.texturehook.maxTexturesCount; + return 0; + } + + public get texturesCount(): number { + if (this.texturehook && this.texturehook.isInit) + return this.texturehook.currentTextureCount; + return 0; + } + + public reset(): void { + this._maxDeltaDrawCalls = -1; + this._drawCalls = -1; + if (this.glhook) this.glhook.reset(); + if (this.texturehook) this.texturehook.reset(); + } + + public release(): void { + if (this.glhook) this.glhook.release(); + if (this.texturehook) this.texturehook.release(); + } +} diff --git a/src/hooks/GLHook.ts b/src/hooks/GLHook.ts new file mode 100644 index 0000000..e3ff9ab --- /dev/null +++ b/src/hooks/GLHook.ts @@ -0,0 +1,46 @@ +export default class GLHook { + public drawPasses: number = 0; + + public isInit: boolean = false; + + private realGLDrawElements: (...args: any[]) => void = function () {}; + + private gl: any; + + constructor(_gl?: any) { + if (_gl) { + if (_gl.__proto__.drawElements) { + this.gl = _gl; + this.realGLDrawElements = _gl.__proto__.drawElements; + //replace to new function + _gl.__proto__.drawElements = this.fakeGLdrawElements.bind(this); + this.isInit = true; + console.log('[GLHook] GL was Hooked!'); + } + } else { + console.error("[GLHook] GL can't be NULL"); + } + } + + private fakeGLdrawElements( + mode: any, + count: any, + type: any, + offset: any + ): void { + this.drawPasses++; + this.realGLDrawElements.call(this.gl, mode, count, type, offset); + } + + public reset(): void { + this.drawPasses = 0; + } + + public release(): void { + if (this.isInit) { + this.gl.__proto__.drawElements = this.realGLDrawElements; + console.log('[GLHook] Hook was removed!'); + } + this.isInit = false; + } +} diff --git a/src/hooks/TextureHook.ts b/src/hooks/TextureHook.ts new file mode 100644 index 0000000..9452584 --- /dev/null +++ b/src/hooks/TextureHook.ts @@ -0,0 +1,70 @@ +export default class TextureHook { + public createdTextures: Array = new Array(); + + public maxTexturesCount: number = 0; + + public isInit: boolean = false; + + private realGLCreateTexture: (...args: any[]) => void = function () {}; + + private realGLDeleteTexture: (...args: any[]) => void = function () {}; + + private gl: any; + + constructor(_gl?: any) { + if (_gl) { + if (_gl.__proto__.createTexture) { + this.gl = _gl; + this.realGLCreateTexture = _gl.__proto__.createTexture; + this.realGLDeleteTexture = _gl.__proto__.deleteTexture; + //replace to new function + _gl.__proto__.createTexture = this.fakeGLCreateTexture.bind(this); + _gl.__proto__.deleteTexture = this.fakeGLDeleteTexture.bind(this); + this.isInit = true; + console.log('[TextureHook] GL was Hooked!'); + } + } else { + console.error("[TextureHook] GL can't be NULL"); + } + } + + public get currentTextureCount(): number { + return this.createdTextures.length; + } + + public registerTexture(texture: any): void { + this.createdTextures.push(texture); // ++; + this.maxTexturesCount = Math.max( + this.createdTextures.length, + this.maxTexturesCount + ); + } + + private fakeGLCreateTexture(): any { + const texture = this.realGLCreateTexture.call(this.gl); + this.registerTexture(texture); + return texture; + } + + private fakeGLDeleteTexture(texture: any): void { + const index: number = this.createdTextures.indexOf(texture); + if (index > -1) { + this.createdTextures.splice(index, 1); + } + this.realGLDeleteTexture.call(this.gl, texture); + } + + public reset(): void { + this.createdTextures = new Array(); + this.maxTexturesCount = 0; + } + + public release(): void { + if (this.isInit) { + this.gl.__proto__.createTexture = this.realGLCreateTexture; + this.gl.__proto__.deleteTexture = this.realGLDeleteTexture; + console.log('[TextureHook] Hook was removed!'); + } + this.isInit = false; + } +} diff --git a/src/stats-gl.ts b/src/stats-gl.ts index 1454f39..5e25575 100644 --- a/src/stats-gl.ts +++ b/src/stats-gl.ts @@ -1,6 +1,6 @@ import { Texture, WebGLRenderer } from 'pixi.js'; -import BaseHooks from '@pietal.dev/gstats/dist/BaseHooks'; +import BaseHooks from './hooks/BaseHooks'; import { Panel } from './stats-panel'; import { Stats } from './stats'; diff --git a/src/stats.ts b/src/stats.ts index 680fc7d..d151245 100644 --- a/src/stats.ts +++ b/src/stats.ts @@ -18,7 +18,10 @@ export class Stats { msPanel: Panel; memPanel?: Panel; - constructor(document: Document, renderer: WebGLRenderer) { + constructor( + renderer: WebGLRenderer, + containerElement: HTMLElement = document.body + ) { this.beginTime = (performance || Date).now(); this.prevTime = this.beginTime; @@ -46,7 +49,7 @@ export class Stats { this.showPanel(0); - document.body.appendChild(this.domElement); + containerElement.appendChild(this.domElement); const ticker = Ticker.shared || new Ticker(); diff --git a/yarn.lock b/yarn.lock index 748f2d7..5045ed4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,25 +3,27 @@ "@babel/code-frame@^7.0.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" -"@babel/helper-validator-identifier@^7.18.6": - version "7.19.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" js-tokens "^4.0.0" + picocolors "^1.0.0" "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -44,6 +46,11 @@ debug "^4.3.1" minimatch "^3.1.2" +"@eslint/core@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.6.0.tgz#9930b5ba24c406d67a1760e94cdbac616a6eb674" + integrity sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg== + "@eslint/eslintrc@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" @@ -59,10 +66,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.0.tgz#fca7533ef33aa608770734786e02f1041847f9bb" - integrity sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ== +"@eslint/js@9.11.1": + version "9.11.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.1.tgz#8bcb37436f9854b3d9a561440daf916acd940986" + integrity sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA== "@eslint/object-schema@^2.1.4": version "2.1.4" @@ -107,11 +114,6 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@pietal.dev/gstats@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@pietal.dev/gstats/-/gstats-0.1.6.tgz#fe779e5784d54f852b676b4e40c648c94ce03e45" - integrity sha512-SJCxaOhXinvRsyt+LtzAsR+u+JzXkc1WeaDnGB4DIZ9kJ3OfEPcY4T7b+3cvyFRdfiWEkOT7T6cVnalLoAdrzQ== - "@pixi/colord@^2.9.6": version "2.9.6" resolved "https://registry.yarnpkg.com/@pixi/colord/-/colord-2.9.6.tgz#7e4e7851480da6fd3cef4e331f008d60be7e1204" @@ -127,62 +129,72 @@ resolved "https://registry.yarnpkg.com/@types/earcut/-/earcut-2.1.4.tgz#5811d7d333048f5a7573b22ddc84923e69596da6" integrity sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ== -"@typescript-eslint/eslint-plugin@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.6.0.tgz#20049754ff9f6d3a09bf240297f029ce04290999" - integrity sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg== +"@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@typescript-eslint/eslint-plugin@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.7.0.tgz#d0070f206daad26253bf00ca5b80f9b54f9e2dd0" + integrity sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.6.0" - "@typescript-eslint/type-utils" "8.6.0" - "@typescript-eslint/utils" "8.6.0" - "@typescript-eslint/visitor-keys" "8.6.0" + "@typescript-eslint/scope-manager" "8.7.0" + "@typescript-eslint/type-utils" "8.7.0" + "@typescript-eslint/utils" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.6.0.tgz#02e092b9dc8b4e319172af620d0d39b337d948f6" - integrity sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow== +"@typescript-eslint/parser@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.7.0.tgz#a567b0890d13db72c7348e1d88442ea8ab4e9173" + integrity sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ== dependencies: - "@typescript-eslint/scope-manager" "8.6.0" - "@typescript-eslint/types" "8.6.0" - "@typescript-eslint/typescript-estree" "8.6.0" - "@typescript-eslint/visitor-keys" "8.6.0" + "@typescript-eslint/scope-manager" "8.7.0" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/typescript-estree" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz#28cc2fc26a84b75addf45091a2c6283e29e2c982" - integrity sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw== +"@typescript-eslint/scope-manager@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.7.0.tgz#90ee7bf9bc982b9260b93347c01a8bc2b595e0b8" + integrity sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg== dependencies: - "@typescript-eslint/types" "8.6.0" - "@typescript-eslint/visitor-keys" "8.6.0" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" -"@typescript-eslint/type-utils@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.6.0.tgz#d4347e637478bef88cee1db691fcfa20ade9b8a0" - integrity sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg== +"@typescript-eslint/type-utils@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.7.0.tgz#d56b104183bdcffcc434a23d1ce26cde5e42df93" + integrity sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ== dependencies: - "@typescript-eslint/typescript-estree" "8.6.0" - "@typescript-eslint/utils" "8.6.0" + "@typescript-eslint/typescript-estree" "8.7.0" + "@typescript-eslint/utils" "8.7.0" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.6.0.tgz#cdc3a16f83f2f0663d6723e9fd032331cdd9f51c" - integrity sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw== +"@typescript-eslint/types@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.7.0.tgz#21d987201c07b69ce7ddc03451d7196e5445ad19" + integrity sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w== -"@typescript-eslint/typescript-estree@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz#f945506de42871f04868371cb5bf21e8f7266e01" - integrity sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g== +"@typescript-eslint/typescript-estree@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.7.0.tgz#6c7db6baa4380b937fa81466c546d052f362d0e8" + integrity sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg== dependencies: - "@typescript-eslint/types" "8.6.0" - "@typescript-eslint/visitor-keys" "8.6.0" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -190,28 +202,28 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.6.0.tgz#175fe893f32804bed1e72b3364ea6bbe1044181c" - integrity sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A== +"@typescript-eslint/utils@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.7.0.tgz#cef3f70708b5b5fd7ed8672fc14714472bd8a011" + integrity sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.6.0" - "@typescript-eslint/types" "8.6.0" - "@typescript-eslint/typescript-estree" "8.6.0" + "@typescript-eslint/scope-manager" "8.7.0" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/typescript-estree" "8.7.0" -"@typescript-eslint/visitor-keys@8.6.0": - version "8.6.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz#5432af4a1753f376f35ab5b891fc9db237aaf76f" - integrity sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg== +"@typescript-eslint/visitor-keys@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.7.0.tgz#5e46f1777f9d69360a883c1a56ac3c511c9659a8" + integrity sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ== dependencies: - "@typescript-eslint/types" "8.6.0" + "@typescript-eslint/types" "8.7.0" eslint-visitor-keys "^3.4.3" "@webgpu/types@^0.1.40": - version "0.1.44" - resolved "https://registry.yarnpkg.com/@webgpu/types/-/types-0.1.44.tgz#1b264c0bfcb298df59d0943dad8ef02b4ff98d14" - integrity sha512-JDpYJN5E/asw84LTYhKyvPpxGnD+bAKPtpW9Ilurf7cZpxaTbxkQcGwOd7jgB9BPBrTYQ+32ufo4HiuomTjHNQ== + version "0.1.46" + resolved "https://registry.yarnpkg.com/@webgpu/types/-/types-0.1.46.tgz#707d56d318e663b165a1133c5a86cfcc11afe59e" + integrity sha512-2iogO6Zh0pTbKLGZuuGWEmJpF/fTABGs7G9wXxpn7s24XSJchSUIiMqIJHURi5zsMZRRTuXrV/3GLOkmOFjq5w== "@xmldom/xmldom@^0.8.10": version "0.8.10" @@ -245,7 +257,7 @@ ansi-regex@^5.0.1: ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" @@ -259,7 +271,7 @@ ansi-styles@^4.1.0: argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" @@ -271,12 +283,12 @@ argparse@^2.0.1: balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -298,7 +310,7 @@ braces@^3.0.3: builtin-modules@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== callsites@^3.0.0: @@ -306,9 +318,9 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chalk@^2.0.0, chalk@^2.3.0: +chalk@^2.3.0, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -325,7 +337,7 @@ chalk@^4.0.0: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" @@ -339,7 +351,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: @@ -349,12 +361,12 @@ color-name@~1.1.4: commander@^2.12.1: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== cross-spawn@^7.0.2: @@ -380,7 +392,7 @@ deep-is@^0.1.3: diff@^4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== earcut@^2.2.4: @@ -390,7 +402,7 @@ earcut@^2.2.4: escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: @@ -416,20 +428,23 @@ eslint-visitor-keys@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@^9.11.0: - version "9.11.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.0.tgz#f7a7bf305a4d77f23be0c1e4537b9aa1617219be" - integrity sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA== +eslint@^9.11.1: + version "9.11.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.1.tgz#701e5fc528990153f9cef696d8427003b5206567" + integrity sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.11.0" "@eslint/config-array" "^0.18.0" + "@eslint/core" "^0.6.0" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.11.0" + "@eslint/js" "9.11.1" "@eslint/plugin-kit" "^0.2.0" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -467,7 +482,7 @@ espree@^10.0.1, espree@^10.1.0: esprima@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.5.0: @@ -569,13 +584,13 @@ flatted@^3.2.9: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== glob-parent@^5.1.2: version "5.1.2" @@ -593,7 +608,7 @@ glob-parent@^6.0.2: glob@^7.1.1: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -620,7 +635,7 @@ graphemer@^1.4.0: has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: @@ -628,12 +643,12 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" @@ -655,7 +670,7 @@ imurmurhash@^0.1.4: inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -663,15 +678,15 @@ inflight@^1.0.4: inherits@2: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== +is-core-module@^2.13.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: - has "^1.0.3" + hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" @@ -707,12 +722,12 @@ ismobilejs@^1.1.1: js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -782,7 +797,7 @@ micromatch@^4.0.4: minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" @@ -795,13 +810,13 @@ minimatch@^9.0.4: brace-expansion "^2.0.1" minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mkdirp@^0.5.3: version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" @@ -818,7 +833,7 @@ natural-compare@^1.4.0: once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -868,7 +883,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: @@ -878,9 +893,14 @@ path-key@^3.1.0: path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +picocolors@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== + picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -908,7 +928,7 @@ prelude-ls@^1.2.1: prettier@^3.3.3: version "3.3.3" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== punycode@^2.1.0: @@ -927,11 +947,11 @@ resolve-from@^4.0.0: integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.3.2: - version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -966,7 +986,7 @@ shebang-regex@^3.0.0: sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== strip-ansi@^6.0.1: @@ -983,7 +1003,7 @@ strip-json-comments@^3.1.1: supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" @@ -997,7 +1017,7 @@ supports-color@^7.1.0: supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== text-table@^0.2.0: @@ -1019,17 +1039,17 @@ ts-api-utils@^1.3.0: tslib@^1.13.0, tslib@^1.8.1: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslint-config-prettier@^1.18.0: version "1.18.0" - resolved "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz" + resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== tslint@^6.1.3: version "6.1.3" - resolved "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== dependencies: "@babel/code-frame" "^7.0.0" @@ -1048,7 +1068,7 @@ tslint@^6.1.3: tsutils@^2.29.0: version "2.29.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== dependencies: tslib "^1.8.1" @@ -1060,14 +1080,14 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -typescript-eslint@^8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.6.0.tgz#5f0b5e23b34385ef146e447616c1a0d6bd14bedb" - integrity sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA== +typescript-eslint@^8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.7.0.tgz#6c84f94013a0cc0074da7d639c2644eae20c3171" + integrity sha512-nEHbEYJyHwsuf7c3V3RS7Saq+1+la3i0ieR3qP0yjqWSzVmh8Drp47uOl9LjbPANac4S7EFSqvcYIKXUUwIfIQ== dependencies: - "@typescript-eslint/eslint-plugin" "8.6.0" - "@typescript-eslint/parser" "8.6.0" - "@typescript-eslint/utils" "8.6.0" + "@typescript-eslint/eslint-plugin" "8.7.0" + "@typescript-eslint/parser" "8.7.0" + "@typescript-eslint/utils" "8.7.0" typescript@^5.6.2: version "5.6.2" @@ -1095,7 +1115,7 @@ word-wrap@^1.2.5: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== yocto-queue@^0.1.0: