@usejunior/docx-core 0.2.0 → 0.3.0
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/.tsbuildinfo +1 -1
- package/dist/benchmark/gates.d.ts +17 -0
- package/dist/benchmark/gates.d.ts.map +1 -0
- package/dist/benchmark/gates.js +260 -0
- package/dist/benchmark/gates.js.map +1 -0
- package/dist/benchmark/metrics.d.ts +5 -62
- package/dist/benchmark/metrics.d.ts.map +1 -1
- package/dist/benchmark/metrics.js +7 -28
- package/dist/benchmark/metrics.js.map +1 -1
- package/dist/benchmark/reporter.d.ts +6 -19
- package/dist/benchmark/reporter.d.ts.map +1 -1
- package/dist/benchmark/reporter.js +63 -116
- package/dist/benchmark/reporter.js.map +1 -1
- package/dist/benchmark/runner.d.ts +11 -26
- package/dist/benchmark/runner.d.ts.map +1 -1
- package/dist/benchmark/runner.js +191 -183
- package/dist/benchmark/runner.js.map +1 -1
- package/dist/benchmark/scores.d.ts +24 -0
- package/dist/benchmark/scores.d.ts.map +1 -0
- package/dist/benchmark/scores.js +103 -0
- package/dist/benchmark/scores.js.map +1 -0
- package/dist/benchmark/types.d.ts +81 -0
- package/dist/benchmark/types.d.ts.map +1 -0
- package/dist/benchmark/types.js +7 -0
- package/dist/benchmark/types.js.map +1 -0
- package/dist/primitives/document.d.ts +12 -0
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +17 -2
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/document_view.d.ts +2 -0
- package/dist/primitives/document_view.d.ts.map +1 -1
- package/dist/primitives/document_view.js +3 -2
- package/dist/primitives/document_view.js.map +1 -1
- package/dist/primitives/formatting_tags.d.ts +14 -2
- package/dist/primitives/formatting_tags.d.ts.map +1 -1
- package/dist/primitives/formatting_tags.js +13 -11
- package/dist/primitives/formatting_tags.js.map +1 -1
- package/dist/primitives/matching.d.ts +12 -0
- package/dist/primitives/matching.d.ts.map +1 -1
- package/dist/primitives/matching.js +54 -0
- package/dist/primitives/matching.js.map +1 -1
- package/dist/primitives/merge_runs.d.ts.map +1 -1
- package/dist/primitives/merge_runs.js +48 -0
- package/dist/primitives/merge_runs.js.map +1 -1
- package/dist/shared/validators/structural.d.ts +31 -0
- package/dist/shared/validators/structural.d.ts.map +1 -0
- package/dist/shared/validators/structural.js +110 -0
- package/dist/shared/validators/structural.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../../src/benchmark/gates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAOpD,sEAAsE;AAEtE,MAAM,UAAU,iBAAiB,CAC/B,iBAAyB,EACzB,YAAoB,EACpB,WAAmB;IAEnB,0BAA0B;IAC1B,IAAI,CAAC;QACH,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO;YACL,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,GAAG,EAAE,EAAE;YACtE,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE;YAC7E,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE;SAC9E,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAElD,8BAA8B;IAC9B,IAAI,WAAmB,CAAC;IACxB,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAClD,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO;YACL,gBAAgB,EAAE,GAAG;YACrB,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,GAAG,EAAE,EAAE;YAC/E,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE;SAClF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAE5D,MAAM,gBAAgB,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,mBAAmB,CAAC;IACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,mBAAmB,CAAC;IAEtD,IAAI,SAAiB,CAAC;IACtB,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACzB,SAAS,GAAG,mDAAmD,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,6BAA6B,gBAAgB,CAAC,cAAc,YAAY,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAC;QACvH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,6BAA6B,gBAAgB,CAAC,cAAc,YAAY,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAC;QACvH,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAEhE,8BAA8B;IAC9B,gFAAgF;IAChF,gDAAgD;IAChD,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACpF,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACtF,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACtF,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAEtF,MAAM,YAAY,GAAG,iBAAiB,KAAK,gBAAgB,CAAC;IAC5D,MAAM,YAAY,GAAG,iBAAiB,KAAK,iBAAiB,CAAC;IAE7D,IAAI,SAAiB,CAAC;IACtB,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;QACjC,SAAS,GAAG,oCAAoC,iBAAiB,cAAc,iBAAiB,GAAG,CAAC;IACtG,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,+BAA+B,gBAAgB,YAAY,iBAAiB,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,+BAA+B,iBAAiB,YAAY,iBAAiB,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAExE,OAAO;QACL,gBAAgB,EAAE,GAAG;QACrB,oBAAoB,EAAE,GAAG;QACzB,oBAAoB,EAAE,GAAG;KAC1B,CAAC;AACJ,CAAC;AAED,sEAAsE;AAEtE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,YAAoB,EACpB,aAAqB,EACrB,cAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,0BAA0B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACpF,MAAM,iBAAiB,GAAG,MAAM,0BAA0B,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEtF,MAAM,kBAAkB,GAAG,MAAM,0BAA0B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACpF,MAAM,kBAAkB,GAAG,MAAM,0BAA0B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAExF,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,yCAAyC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACb,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;gBACnF,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBACd,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;gBACrF,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,wBAAwB,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM;YACnB,CAAC,CAAC,+BAA+B;YACjC,CAAC,CAAC,sBAAsB,gBAAgB,CAAC,MAAM,wBAAwB,gBAAgB,CAAC,MAAM,YAAY,CAAC,GAAG,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAEhL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,CAAC;IACvD,CAAC;AACH,CAAC;AAID,KAAK,UAAU,0BAA0B,CACvC,UAAkB,EAClB,IAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,cAAc,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;IAEpD,gCAAgC;IAChC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,cAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,cAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACpE,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAErC,mDAAmD;IACnD,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC9B,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE3C,qBAAqB;IACrB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACvE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/B,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAmC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3E,MAAM,EAAE,KAAK,EAAE,GAAG,yBAAyB,CAAC;QAC1C,UAAU;QACV,SAAS;QACT,YAAY;QACZ,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,MAAM;QACvB,OAAO;QACP,WAAW,EAAE,GAAG;QAChB,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,sEAAsE;AAEtE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,YAAoB;IAChE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QACnD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,SAAS,GAAG,0BAA0B,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACxE,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,mBAAmB,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,SAAS,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,2BAA2B,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,mBAAmB,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC5E,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,SAAS,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,8BAA8B,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,4BAA4B,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,iCAAiC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,+BAA+B,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM;YACnB,CAAC,CAAC,kCAAkC;YACpC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,CAAC;IACvD,CAAC;AACH,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,YAAoB,EACpB,iBAAyB,EACzB,YAAoB,EACpB,WAAmB,EACnB,cAAsB,EACtB,aAAqB;IAErB,MAAM,aAAa,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAEtF,MAAM,QAAQ,GACZ,aAAa,CAAC,gBAAgB,CAAC,MAAM;QACrC,aAAa,CAAC,oBAAoB,CAAC,MAAM;QACzC,aAAa,CAAC,oBAAoB,CAAC,MAAM,CAAC;IAE5C,MAAM,mBAAmB,GAAG,MAAM,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACxE,MAAM,oBAAoB,GAAG,MAAM,wBAAwB,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IAEzG,MAAM,eAAe,GAAG,QAAQ,IAAI,mBAAmB,CAAC,MAAM,CAAC;IAC/D,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAEpD,OAAO;QACL,KAAK,EAAE;YACL,aAAa;YACb,oBAAoB;YACpB,mBAAmB;SACpB;QACD,eAAe;QACf,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -1,72 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Benchmark
|
|
2
|
+
* Benchmark metric utilities.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Timing and memory measurement helpers used by the quality benchmark runner.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
export interface ComparisonMetrics {
|
|
10
|
-
/** Number of insertions detected */
|
|
11
|
-
insertions: number;
|
|
12
|
-
/** Number of deletions detected */
|
|
13
|
-
deletions: number;
|
|
14
|
-
/** Number of modifications (paragraphs with changes) */
|
|
15
|
-
modifications: number;
|
|
16
|
-
/** Average length of changed spans */
|
|
17
|
-
avgSpanLength: number;
|
|
18
|
-
/** Whether output opens in Word (requires manual verification or COM automation) */
|
|
19
|
-
opensInWord: boolean | null;
|
|
20
|
-
/** Whether OpenXML SDK can load the output */
|
|
21
|
-
openXmlSdkValid: boolean | null;
|
|
22
|
-
/** Whether all relationship parts are valid */
|
|
23
|
-
noBrokenRelationships: boolean | null;
|
|
24
|
-
/** Whether numbering was retained correctly */
|
|
25
|
-
numberingRetained: boolean | null;
|
|
26
|
-
/** Whether section headings are correct */
|
|
27
|
-
sectionHeadingsCorrect: boolean | null;
|
|
28
|
-
/** Whether defined terms are preserved */
|
|
29
|
-
definedTermsPreserved: boolean | null;
|
|
30
|
-
/** Whether tables remain intact */
|
|
31
|
-
tablesIntact: boolean | null;
|
|
32
|
-
/** Whether cross-references work */
|
|
33
|
-
crossRefsWorking: boolean | null;
|
|
34
|
-
/** Wall clock time in milliseconds */
|
|
35
|
-
wallTimeMs: number;
|
|
36
|
-
/** Peak RSS memory in megabytes */
|
|
37
|
-
peakRssMb: number;
|
|
38
|
-
/** Output file size in bytes */
|
|
39
|
-
outputSizeBytes: number;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Create an empty metrics object with null values.
|
|
43
|
-
*/
|
|
44
|
-
export declare function createEmptyMetrics(): ComparisonMetrics;
|
|
45
|
-
/**
|
|
46
|
-
* Result of running a benchmark on a fixture.
|
|
47
|
-
*/
|
|
48
|
-
export interface BenchmarkResult {
|
|
49
|
-
/** Name of the fixture */
|
|
50
|
-
fixture: string;
|
|
51
|
-
/** Metrics from Baseline A (WmlComparer) */
|
|
52
|
-
baselineA: ComparisonMetrics | null;
|
|
53
|
-
/** Error from Baseline A if any */
|
|
54
|
-
baselineAError?: string;
|
|
55
|
-
/** Metrics from Baseline B (pure TS) */
|
|
56
|
-
baselineB: ComparisonMetrics | null;
|
|
57
|
-
/** Error from Baseline B if any */
|
|
58
|
-
baselineBError?: string;
|
|
59
|
-
/** Metrics from Word oracle (if available) */
|
|
60
|
-
wordOracle?: ComparisonMetrics | null;
|
|
61
|
-
/** Timestamp when benchmark was run */
|
|
62
|
-
timestamp: Date;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Measure memory usage.
|
|
7
|
+
* Measure current RSS memory usage in megabytes.
|
|
66
8
|
*/
|
|
67
9
|
export declare function measureMemory(): number;
|
|
68
10
|
/**
|
|
69
|
-
*
|
|
11
|
+
* Create a high-resolution timer. Returns a function that, when called,
|
|
12
|
+
* returns elapsed milliseconds since creation.
|
|
70
13
|
*/
|
|
71
14
|
export declare function createTimer(): () => number;
|
|
72
15
|
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,MAAM,CAM1C"}
|
|
@@ -1,45 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Benchmark
|
|
2
|
+
* Benchmark metric utilities.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Timing and memory measurement helpers used by the quality benchmark runner.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
export function createEmptyMetrics() {
|
|
10
|
-
return {
|
|
11
|
-
insertions: 0,
|
|
12
|
-
deletions: 0,
|
|
13
|
-
modifications: 0,
|
|
14
|
-
avgSpanLength: 0,
|
|
15
|
-
opensInWord: null,
|
|
16
|
-
openXmlSdkValid: null,
|
|
17
|
-
noBrokenRelationships: null,
|
|
18
|
-
numberingRetained: null,
|
|
19
|
-
sectionHeadingsCorrect: null,
|
|
20
|
-
definedTermsPreserved: null,
|
|
21
|
-
tablesIntact: null,
|
|
22
|
-
crossRefsWorking: null,
|
|
23
|
-
wallTimeMs: 0,
|
|
24
|
-
peakRssMb: 0,
|
|
25
|
-
outputSizeBytes: 0,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Measure memory usage.
|
|
7
|
+
* Measure current RSS memory usage in megabytes.
|
|
30
8
|
*/
|
|
31
9
|
export function measureMemory() {
|
|
32
10
|
const usage = process.memoryUsage();
|
|
33
|
-
return usage.rss / (1024 * 1024);
|
|
11
|
+
return usage.rss / (1024 * 1024);
|
|
34
12
|
}
|
|
35
13
|
/**
|
|
36
|
-
*
|
|
14
|
+
* Create a high-resolution timer. Returns a function that, when called,
|
|
15
|
+
* returns elapsed milliseconds since creation.
|
|
37
16
|
*/
|
|
38
17
|
export function createTimer() {
|
|
39
18
|
const start = process.hrtime.bigint();
|
|
40
19
|
return () => {
|
|
41
20
|
const end = process.hrtime.bigint();
|
|
42
|
-
return Number(end - start) / 1_000_000;
|
|
21
|
+
return Number(end - start) / 1_000_000;
|
|
43
22
|
};
|
|
44
23
|
}
|
|
45
24
|
//# sourceMappingURL=metrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtC,OAAO,GAAG,EAAE;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,23 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Quality benchmark reporter.
|
|
3
3
|
*
|
|
4
|
-
* Formats
|
|
4
|
+
* Formats gate-then-score results as Markdown, JSON, or console output.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export declare function generateMarkdownReport(results: BenchmarkResult[]): string;
|
|
11
|
-
/**
|
|
12
|
-
* Generate a console table from benchmark results.
|
|
13
|
-
*/
|
|
14
|
-
export declare function generateConsoleTable(results: BenchmarkResult[]): string;
|
|
15
|
-
/**
|
|
16
|
-
* Generate JSON output from benchmark results.
|
|
17
|
-
*/
|
|
18
|
-
export declare function generateJsonReport(results: BenchmarkResult[]): string;
|
|
19
|
-
/**
|
|
20
|
-
* Print a comparison summary to console.
|
|
21
|
-
*/
|
|
22
|
-
export declare function printSummary(results: BenchmarkResult[]): void;
|
|
6
|
+
import type { FixtureBenchmarkResult } from './types.js';
|
|
7
|
+
export declare function generateMarkdownReport(results: FixtureBenchmarkResult[]): string;
|
|
8
|
+
export declare function generateJsonReport(results: FixtureBenchmarkResult[]): string;
|
|
9
|
+
export declare function printSummary(results: FixtureBenchmarkResult[]): void;
|
|
23
10
|
//# sourceMappingURL=reporter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAUzD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CA4DhF;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAS5E;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAyBpE"}
|
|
@@ -1,145 +1,92 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Quality benchmark reporter.
|
|
3
3
|
*
|
|
4
|
-
* Formats
|
|
4
|
+
* Formats gate-then-score results as Markdown, JSON, or console output.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
function formatMetricsRow(name, metrics, error) {
|
|
10
|
-
if (error) {
|
|
11
|
-
return `| ${name} | Error: ${error.slice(0, 50)}... | - | - | - | - |`;
|
|
12
|
-
}
|
|
13
|
-
if (!metrics) {
|
|
14
|
-
return `| ${name} | Skipped | - | - | - | - |`;
|
|
15
|
-
}
|
|
16
|
-
return `| ${name} | ${metrics.insertions} | ${metrics.deletions} | ${metrics.wallTimeMs.toFixed(1)}ms | ${metrics.peakRssMb.toFixed(1)}MB | ${(metrics.outputSizeBytes / 1024).toFixed(1)}KB |`;
|
|
6
|
+
// ── Helpers ─────────────────────────────────────────────────────────
|
|
7
|
+
function gateIcon(passed) {
|
|
8
|
+
return passed ? 'PASS' : 'FAIL';
|
|
17
9
|
}
|
|
18
|
-
|
|
19
|
-
* Generate a markdown report from benchmark results.
|
|
20
|
-
*/
|
|
10
|
+
// ── Markdown ────────────────────────────────────────────────────────
|
|
21
11
|
export function generateMarkdownReport(results) {
|
|
22
12
|
const lines = [];
|
|
23
|
-
lines.push('#
|
|
13
|
+
lines.push('# Quality Benchmark Results');
|
|
24
14
|
lines.push('');
|
|
25
15
|
lines.push(`Generated: ${new Date().toISOString()}`);
|
|
26
16
|
lines.push('');
|
|
17
|
+
lines.push('| Fixture | Engine | G1a | G1b | G1c | G2* | G3 | Q1 | Q3(ms) | Q4 |');
|
|
18
|
+
lines.push('|---------|--------|-----|-----|-----|-----|----|----|--------|----|');
|
|
27
19
|
for (const result of results) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
20
|
+
for (const [engineName, er] of Object.entries(result.engines)) {
|
|
21
|
+
const g1 = er.gates.textRoundTrip;
|
|
22
|
+
const g1a = gateIcon(g1.normalizedTextParity.passed);
|
|
23
|
+
const g1b = gateIcon(g1.paragraphCountParity.passed);
|
|
24
|
+
const g1c = gateIcon(g1.xmlParseValidity.passed);
|
|
25
|
+
const g2 = gateIcon(er.gates.formattingProjection.passed);
|
|
26
|
+
const g3 = gateIcon(er.gates.structuralIntegrity.passed);
|
|
27
|
+
const q1 = er.scores?.diffMinimality
|
|
28
|
+
? String(er.scores.diffMinimality.engineRuns)
|
|
29
|
+
: '-';
|
|
30
|
+
const q3 = er.scores?.performance
|
|
31
|
+
? er.scores.performance.wallTimeMs.toFixed(0)
|
|
32
|
+
: '-';
|
|
33
|
+
const q4parts = [];
|
|
34
|
+
if (er.scores?.extras.moveDetection)
|
|
35
|
+
q4parts.push('moves');
|
|
36
|
+
if (er.scores?.extras.tableCellDiff)
|
|
37
|
+
q4parts.push('tables');
|
|
38
|
+
const q4 = q4parts.length > 0 ? q4parts.join('+') : '-';
|
|
39
|
+
lines.push(`| ${result.fixture} | ${engineName} | ${g1a} | ${g1b} | ${g1c} | ${g2} | ${g3} | ${q1} | ${q3} | ${q4} |`);
|
|
36
40
|
}
|
|
37
|
-
lines.push('');
|
|
38
41
|
}
|
|
39
|
-
|
|
42
|
+
lines.push('');
|
|
43
|
+
lines.push('*G2 is a soft gate (diagnostic only in v1)*');
|
|
44
|
+
lines.push('');
|
|
45
|
+
// Summary
|
|
40
46
|
lines.push('## Summary');
|
|
41
47
|
lines.push('');
|
|
42
|
-
const
|
|
43
|
-
const successfulB = results.filter(r => r.baselineB !== null);
|
|
44
|
-
if (successfulA.length > 0) {
|
|
45
|
-
const avgTimeA = successfulA.reduce((sum, r) => sum + (r.baselineA?.wallTimeMs ?? 0), 0) / successfulA.length;
|
|
46
|
-
lines.push(`- Baseline A: ${successfulA.length}/${results.length} successful, avg time: ${avgTimeA.toFixed(1)}ms`);
|
|
47
|
-
}
|
|
48
|
-
if (successfulB.length > 0) {
|
|
49
|
-
const avgTimeB = successfulB.reduce((sum, r) => sum + (r.baselineB?.wallTimeMs ?? 0), 0) / successfulB.length;
|
|
50
|
-
lines.push(`- Baseline B: ${successfulB.length}/${results.length} successful, avg time: ${avgTimeB.toFixed(1)}ms`);
|
|
51
|
-
}
|
|
52
|
-
return lines.join('\n');
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Generate a console table from benchmark results.
|
|
56
|
-
*/
|
|
57
|
-
export function generateConsoleTable(results) {
|
|
58
|
-
const lines = [];
|
|
59
|
-
// Header
|
|
60
|
-
lines.push('┌────────────────────────┬──────────┬─────────────┬─────────────┬──────────┬──────────┐');
|
|
61
|
-
lines.push('│ Fixture │ Baseline │ Insertions │ Deletions │ Time │ Memory │');
|
|
62
|
-
lines.push('├────────────────────────┼──────────┼─────────────┼─────────────┼──────────┼──────────┤');
|
|
48
|
+
const engineStats = new Map();
|
|
63
49
|
for (const result of results) {
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
// Baseline B row
|
|
74
|
-
if (result.baselineBError) {
|
|
75
|
-
lines.push(`│ │ B │ ERROR │ │ │ │`);
|
|
76
|
-
}
|
|
77
|
-
else if (result.baselineB) {
|
|
78
|
-
const m = result.baselineB;
|
|
79
|
-
lines.push(`│ │ B │ ${String(m.insertions).padStart(11)} │ ${String(m.deletions).padStart(11)} │ ${m.wallTimeMs.toFixed(0).padStart(6)}ms │ ${m.peakRssMb.toFixed(1).padStart(6)}MB │`);
|
|
50
|
+
for (const [engineName, er] of Object.entries(result.engines)) {
|
|
51
|
+
const stats = engineStats.get(engineName) ?? { total: 0, hardPass: 0, softPass: 0 };
|
|
52
|
+
stats.total++;
|
|
53
|
+
if (er.hardGatesPassed)
|
|
54
|
+
stats.hardPass++;
|
|
55
|
+
if (er.softGatesPassed)
|
|
56
|
+
stats.softPass++;
|
|
57
|
+
engineStats.set(engineName, stats);
|
|
80
58
|
}
|
|
81
|
-
lines.push('├────────────────────────┼──────────┼─────────────┼─────────────┼──────────┼──────────┤');
|
|
82
59
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
60
|
+
for (const [engine, stats] of engineStats) {
|
|
61
|
+
lines.push(`- **${engine}**: ${stats.hardPass}/${stats.total} hard gates passed, ${stats.softPass}/${stats.total} soft gates passed`);
|
|
62
|
+
}
|
|
86
63
|
return lines.join('\n');
|
|
87
64
|
}
|
|
88
|
-
|
|
89
|
-
* Generate JSON output from benchmark results.
|
|
90
|
-
*/
|
|
65
|
+
// ── JSON ────────────────────────────────────────────────────────────
|
|
91
66
|
export function generateJsonReport(results) {
|
|
92
67
|
return JSON.stringify({
|
|
93
68
|
timestamp: new Date().toISOString(),
|
|
94
|
-
results
|
|
95
|
-
fixture: r.fixture,
|
|
96
|
-
timestamp: r.timestamp.toISOString(),
|
|
97
|
-
baselineA: r.baselineA
|
|
98
|
-
? {
|
|
99
|
-
success: true,
|
|
100
|
-
...r.baselineA,
|
|
101
|
-
}
|
|
102
|
-
: {
|
|
103
|
-
success: false,
|
|
104
|
-
error: r.baselineAError,
|
|
105
|
-
},
|
|
106
|
-
baselineB: r.baselineB
|
|
107
|
-
? {
|
|
108
|
-
success: true,
|
|
109
|
-
...r.baselineB,
|
|
110
|
-
}
|
|
111
|
-
: {
|
|
112
|
-
success: false,
|
|
113
|
-
error: r.baselineBError,
|
|
114
|
-
},
|
|
115
|
-
wordOracle: r.wordOracle ?? null,
|
|
116
|
-
})),
|
|
69
|
+
results,
|
|
117
70
|
}, null, 2);
|
|
118
71
|
}
|
|
119
|
-
|
|
120
|
-
* Print a comparison summary to console.
|
|
121
|
-
*/
|
|
72
|
+
// ── Console ─────────────────────────────────────────────────────────
|
|
122
73
|
export function printSummary(results) {
|
|
123
|
-
console.log('\n=== Benchmark Summary ===\n');
|
|
74
|
+
console.log('\n=== Quality Benchmark Summary ===\n');
|
|
124
75
|
for (const result of results) {
|
|
125
|
-
console.log(`Fixture: ${result.fixture}`);
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
console.log(` Baseline B: Error - ${result.baselineBError}`);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
console.log(' Baseline B: Skipped');
|
|
76
|
+
console.log(`Fixture: ${result.fixture} [${result.tags.join(', ')}]`);
|
|
77
|
+
for (const [engineName, er] of Object.entries(result.engines)) {
|
|
78
|
+
const hard = er.hardGatesPassed ? 'PASS' : 'FAIL';
|
|
79
|
+
const soft = er.softGatesPassed ? 'PASS' : 'FAIL';
|
|
80
|
+
const time = er.scores?.performance
|
|
81
|
+
? `${er.scores.performance.wallTimeMs.toFixed(0)}ms`
|
|
82
|
+
: 'N/A';
|
|
83
|
+
const q1 = er.scores?.diffMinimality
|
|
84
|
+
? `${er.scores.diffMinimality.engineRuns} runs`
|
|
85
|
+
: 'N/A';
|
|
86
|
+
console.log(` ${engineName}: hard=${hard} soft=${soft} time=${time} q1=${q1}`);
|
|
87
|
+
if (er.error) {
|
|
88
|
+
console.log(` Error: ${er.error}`);
|
|
89
|
+
}
|
|
143
90
|
}
|
|
144
91
|
console.log('');
|
|
145
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Quality benchmark runner — gate-then-score architecture.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* For each fixture × engine: produce redline → run gates → if hard gates pass, run scores.
|
|
5
5
|
*/
|
|
6
|
-
import type {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/** Path to Docxodus repository (for CLI fallback) */
|
|
16
|
-
docxodusPath?: string;
|
|
17
|
-
/** Path to dotnet executable (e.g., /opt/homebrew/opt/dotnet@8/bin/dotnet) */
|
|
18
|
-
dotnetPath?: string;
|
|
19
|
-
/** Run Baseline A (WmlComparer) */
|
|
20
|
-
runBaselineA?: boolean;
|
|
21
|
-
/** Run Baseline B (pure TS) */
|
|
22
|
-
runBaselineB?: boolean;
|
|
23
|
-
/** Timeout for each comparison in ms */
|
|
24
|
-
timeout?: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Run benchmark on all fixtures.
|
|
28
|
-
*/
|
|
29
|
-
export declare function runBenchmark(config: BenchmarkConfig): Promise<BenchmarkResult[]>;
|
|
6
|
+
import type { FixtureBenchmarkResult, FixtureManifest, FixtureManifestEntry, QualityBenchmarkConfig } from './types.js';
|
|
7
|
+
export declare function loadManifest(manifestPath: string): Promise<{
|
|
8
|
+
manifest: FixtureManifest;
|
|
9
|
+
resolvedFixtures: Array<FixtureManifestEntry & {
|
|
10
|
+
resolvedOriginal: string;
|
|
11
|
+
resolvedRevised: string;
|
|
12
|
+
}>;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function runQualityBenchmark(config: QualityBenchmarkConfig): Promise<FixtureBenchmarkResult[]>;
|
|
30
15
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAGV,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAMpB,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,QAAQ,EAAE,eAAe,CAAC;IAC1B,gBAAgB,EAAE,KAAK,CAAC,oBAAoB,GAAG;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvG,CAAC,CA+BD;AAwJD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAgCnC"}
|