@paperjsx/json-to-xlsx-pro 0.0.1

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.
Files changed (175) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +61 -0
  3. package/dist/assembly/xlsx-assembler.d.ts +53 -0
  4. package/dist/assembly/xlsx-assembler.d.ts.map +1 -0
  5. package/dist/benchmarks/phase2.d.ts +72 -0
  6. package/dist/benchmarks/phase2.d.ts.map +1 -0
  7. package/dist/benchmarks/phase2.js +14 -0
  8. package/dist/benchmarks/phase2.js.map +7 -0
  9. package/dist/benchmarks/report.d.ts +21 -0
  10. package/dist/benchmarks/report.d.ts.map +1 -0
  11. package/dist/benchmarks/report.js +13 -0
  12. package/dist/benchmarks/report.js.map +7 -0
  13. package/dist/benchmarks/rigorous.d.ts +85 -0
  14. package/dist/benchmarks/rigorous.d.ts.map +1 -0
  15. package/dist/benchmarks/rigorous.js +534 -0
  16. package/dist/benchmarks/rigorous.js.map +7 -0
  17. package/dist/chaos-lab/index.d.ts +69 -0
  18. package/dist/chaos-lab/index.d.ts.map +1 -0
  19. package/dist/chaos-lab/index.js +1696 -0
  20. package/dist/chaos-lab/index.js.map +7 -0
  21. package/dist/chunk-2IVXCH6I.js +1002 -0
  22. package/dist/chunk-2IVXCH6I.js.map +7 -0
  23. package/dist/chunk-IYMS2CLX.js +478 -0
  24. package/dist/chunk-IYMS2CLX.js.map +7 -0
  25. package/dist/chunk-PQSLPEN5.js +290 -0
  26. package/dist/chunk-PQSLPEN5.js.map +7 -0
  27. package/dist/chunk-QDWDSM74.js +142 -0
  28. package/dist/chunk-QDWDSM74.js.map +7 -0
  29. package/dist/chunk-S5RMAWLC.js +25347 -0
  30. package/dist/chunk-S5RMAWLC.js.map +7 -0
  31. package/dist/chunk-Z2JSZFNG.js +308 -0
  32. package/dist/chunk-Z2JSZFNG.js.map +7 -0
  33. package/dist/diagnostics/corruption.d.ts +9 -0
  34. package/dist/diagnostics/corruption.d.ts.map +1 -0
  35. package/dist/diagnostics/workloads.d.ts +6 -0
  36. package/dist/diagnostics/workloads.d.ts.map +1 -0
  37. package/dist/diff/document-diff.d.ts +5 -0
  38. package/dist/diff/document-diff.d.ts.map +1 -0
  39. package/dist/document-diff/src/index.d.ts +50 -0
  40. package/dist/document-diff/src/index.d.ts.map +1 -0
  41. package/dist/errors.d.ts +35 -0
  42. package/dist/errors.d.ts.map +1 -0
  43. package/dist/fixtures/phase1.d.ts +14 -0
  44. package/dist/fixtures/phase1.d.ts.map +1 -0
  45. package/dist/fixtures/phase2.d.ts +9 -0
  46. package/dist/fixtures/phase2.d.ts.map +1 -0
  47. package/dist/fixtures/phase3.d.ts +9 -0
  48. package/dist/fixtures/phase3.d.ts.map +1 -0
  49. package/dist/fixtures/phase4.d.ts +10 -0
  50. package/dist/fixtures/phase4.d.ts.map +1 -0
  51. package/dist/fixtures/phase5.d.ts +9 -0
  52. package/dist/fixtures/phase5.d.ts.map +1 -0
  53. package/dist/formulas/builder.d.ts +91 -0
  54. package/dist/formulas/builder.d.ts.map +1 -0
  55. package/dist/formulas/evaluator.d.ts +25 -0
  56. package/dist/formulas/evaluator.d.ts.map +1 -0
  57. package/dist/formulas/shift.d.ts +14 -0
  58. package/dist/formulas/shift.d.ts.map +1 -0
  59. package/dist/index-pro.d.ts +12 -0
  60. package/dist/index-pro.d.ts.map +1 -0
  61. package/dist/index.d.ts +41 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +2167 -0
  64. package/dist/index.js.map +7 -0
  65. package/dist/layout/column-width.d.ts +32 -0
  66. package/dist/layout/column-width.d.ts.map +1 -0
  67. package/dist/layout/row-height.d.ts +3 -0
  68. package/dist/layout/row-height.d.ts.map +1 -0
  69. package/dist/preflight.d.ts +31 -0
  70. package/dist/preflight.d.ts.map +1 -0
  71. package/dist/public-quality-types.d.ts +44 -0
  72. package/dist/public-quality-types.d.ts.map +1 -0
  73. package/dist/quality/accessibility-contract.d.ts +38 -0
  74. package/dist/quality/accessibility-contract.d.ts.map +1 -0
  75. package/dist/quality/accessibility.d.ts +33 -0
  76. package/dist/quality/accessibility.d.ts.map +1 -0
  77. package/dist/quality/shared-quality.d.ts +4 -0
  78. package/dist/quality/shared-quality.d.ts.map +1 -0
  79. package/dist/quality/structural-validation.d.ts +11 -0
  80. package/dist/quality/structural-validation.d.ts.map +1 -0
  81. package/dist/quality/workbook-quality.d.ts +63 -0
  82. package/dist/quality/workbook-quality.d.ts.map +1 -0
  83. package/dist/render-metrics.d.ts +67 -0
  84. package/dist/render-metrics.d.ts.map +1 -0
  85. package/dist/render-plan.d.ts +40 -0
  86. package/dist/render-plan.d.ts.map +1 -0
  87. package/dist/serializers/chart-serializer.d.ts +3 -0
  88. package/dist/serializers/chart-serializer.d.ts.map +1 -0
  89. package/dist/serializers/comment-serializer.d.ts +12 -0
  90. package/dist/serializers/comment-serializer.d.ts.map +1 -0
  91. package/dist/serializers/doc-props-serializer.d.ts +5 -0
  92. package/dist/serializers/doc-props-serializer.d.ts.map +1 -0
  93. package/dist/serializers/drawing-serializer.d.ts +24 -0
  94. package/dist/serializers/drawing-serializer.d.ts.map +1 -0
  95. package/dist/serializers/package-serializer.d.ts +13 -0
  96. package/dist/serializers/package-serializer.d.ts.map +1 -0
  97. package/dist/serializers/pivot-serializer.d.ts +37 -0
  98. package/dist/serializers/pivot-serializer.d.ts.map +1 -0
  99. package/dist/serializers/shared-strings.d.ts +11 -0
  100. package/dist/serializers/shared-strings.d.ts.map +1 -0
  101. package/dist/serializers/sheet-serializer.d.ts +58 -0
  102. package/dist/serializers/sheet-serializer.d.ts.map +1 -0
  103. package/dist/serializers/sheet-xml-builder.d.ts +33 -0
  104. package/dist/serializers/sheet-xml-builder.d.ts.map +1 -0
  105. package/dist/serializers/style-registry.d.ts +2 -0
  106. package/dist/serializers/style-registry.d.ts.map +1 -0
  107. package/dist/serializers/table-serializer.d.ts +20 -0
  108. package/dist/serializers/table-serializer.d.ts.map +1 -0
  109. package/dist/serializers/theme-serializer.d.ts +3 -0
  110. package/dist/serializers/theme-serializer.d.ts.map +1 -0
  111. package/dist/serializers/workbook-serializer.d.ts +16 -0
  112. package/dist/serializers/workbook-serializer.d.ts.map +1 -0
  113. package/dist/serializers/worksheet-rels-serializer.d.ts +7 -0
  114. package/dist/serializers/worksheet-rels-serializer.d.ts.map +1 -0
  115. package/dist/source-js-extension-loader.mjs +44 -0
  116. package/dist/spreadsheet-engine.d.ts +50 -0
  117. package/dist/spreadsheet-engine.d.ts.map +1 -0
  118. package/dist/styles/border-serializer.d.ts +6 -0
  119. package/dist/styles/border-serializer.d.ts.map +1 -0
  120. package/dist/styles/color.d.ts +5 -0
  121. package/dist/styles/color.d.ts.map +1 -0
  122. package/dist/styles/component-registry.d.ts +13 -0
  123. package/dist/styles/component-registry.d.ts.map +1 -0
  124. package/dist/styles/conditional-formatting.d.ts +8 -0
  125. package/dist/styles/conditional-formatting.d.ts.map +1 -0
  126. package/dist/styles/fill-serializer.d.ts +9 -0
  127. package/dist/styles/fill-serializer.d.ts.map +1 -0
  128. package/dist/styles/font-serializer.d.ts +11 -0
  129. package/dist/styles/font-serializer.d.ts.map +1 -0
  130. package/dist/styles/numfmt-registry.d.ts +7 -0
  131. package/dist/styles/numfmt-registry.d.ts.map +1 -0
  132. package/dist/styles/presets.d.ts +190 -0
  133. package/dist/styles/presets.d.ts.map +1 -0
  134. package/dist/styles/style-registry.d.ts +24 -0
  135. package/dist/styles/style-registry.d.ts.map +1 -0
  136. package/dist/styles/style-utils.d.ts +11 -0
  137. package/dist/styles/style-utils.d.ts.map +1 -0
  138. package/dist/template-assembler.d.ts +26 -0
  139. package/dist/template-assembler.d.ts.map +1 -0
  140. package/dist/template-parser.d.ts +96 -0
  141. package/dist/template-parser.d.ts.map +1 -0
  142. package/dist/types/spreadsheet-ast.d.ts +470 -0
  143. package/dist/types/spreadsheet-ast.d.ts.map +1 -0
  144. package/dist/utils/cell-ref.d.ts +21 -0
  145. package/dist/utils/cell-ref.d.ts.map +1 -0
  146. package/dist/utils/date.d.ts +32 -0
  147. package/dist/utils/date.d.ts.map +1 -0
  148. package/dist/utils/hyperlinks.d.ts +16 -0
  149. package/dist/utils/hyperlinks.d.ts.map +1 -0
  150. package/dist/utils/xml.d.ts +7 -0
  151. package/dist/utils/xml.d.ts.map +1 -0
  152. package/dist/validation/spreadsheet-schema.d.ts +1513 -0
  153. package/dist/validation/spreadsheet-schema.d.ts.map +1 -0
  154. package/dist/workers/sheet-serialization-worker-pool.d.ts +32 -0
  155. package/dist/workers/sheet-serialization-worker-pool.d.ts.map +1 -0
  156. package/dist/workers/sheet-serializer-worker.d.ts +2 -0
  157. package/dist/workers/sheet-serializer-worker.d.ts.map +1 -0
  158. package/dist/workers/sheet-serializer-worker.js +2565 -0
  159. package/dist/workers/sheet-serializer-worker.js.map +7 -0
  160. package/dist/worksheet/structure.d.ts +33 -0
  161. package/dist/worksheet/structure.d.ts.map +1 -0
  162. package/dist-pro/benchmarks/phase2.js +1 -0
  163. package/dist-pro/benchmarks/report.js +1 -0
  164. package/dist-pro/benchmarks/rigorous.js +2 -0
  165. package/dist-pro/chaos-lab/index.js +2 -0
  166. package/dist-pro/chunk-FFIHITWB.js +1 -0
  167. package/dist-pro/chunk-INDNGGXB.js +2 -0
  168. package/dist-pro/chunk-K2MQYNU6.js +1 -0
  169. package/dist-pro/chunk-MEZHQFH3.js +2 -0
  170. package/dist-pro/chunk-RB42Q36L.js +1 -0
  171. package/dist-pro/chunk-WYTH4W4N.js +48 -0
  172. package/dist-pro/index.js +3 -0
  173. package/dist-pro/source-js-extension-loader.mjs +44 -0
  174. package/dist-pro/workers/sheet-serializer-worker.js +3 -0
  175. package/package.json +62 -0
package/LICENSE ADDED
@@ -0,0 +1,7 @@
1
+ Copyright (c) 2026 Plainworks Inc. All rights reserved.
2
+
3
+ This software is proprietary and confidential. Unauthorized copying, distribution,
4
+ modification, or use of this software, via any medium, is strictly prohibited.
5
+
6
+ A valid PaperJSX Pro license key is required to use this software.
7
+ See https://paperjsx.com/pricing for licensing options.
package/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # PaperJSX XLSX Pro
2
+
3
+ Generate production Excel `.xlsx` workbooks from JSON and TypeScript with the paid PaperJSX spreadsheet engine.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @paperjsx/json-to-xlsx-pro
9
+ ```
10
+
11
+ Requires Node.js `>=18` and a valid `PAPERJSX_LICENSE_KEY`.
12
+
13
+ ## Quick Start
14
+
15
+ ```ts
16
+ import { SpreadsheetEngine } from "@paperjsx/json-to-xlsx-pro";
17
+ import { writeFileSync } from "node:fs";
18
+
19
+ const buffer = await SpreadsheetEngine.render(
20
+ {
21
+ meta: { title: "Ops Dashboard", creator: "PaperJSX" },
22
+ sheets: [
23
+ {
24
+ name: "Summary",
25
+ rows: [
26
+ { cells: [{ value: "Metric" }, { value: "Value" }] },
27
+ { cells: [{ value: "MRR" }, { value: 128000 }] },
28
+ { cells: [{ value: "Churn" }, { value: 0.018 }] },
29
+ ],
30
+ },
31
+ ],
32
+ },
33
+ { licenseKey: process.env.PAPERJSX_LICENSE_KEY },
34
+ );
35
+
36
+ writeFileSync("ops-dashboard.xlsx", buffer);
37
+ ```
38
+
39
+ ## Included In Pro
40
+
41
+ - production/self-hosted commercial spreadsheet usage
42
+ - formula evaluation and quality reporting
43
+ - workbook validation, repair, and validate-repair flows
44
+ - template parsing, inspection, and assembly
45
+
46
+ ## Core API
47
+
48
+ - `SpreadsheetEngine.render(document, options?)`
49
+ - `SpreadsheetEngine.repair(buffer, options?)`
50
+ - `SpreadsheetEngine.validateAndRepair(buffer, options?)`
51
+ - `parseTemplate(buffer, options?)`
52
+ - `assembleFromTemplate(template, data, options?)`
53
+
54
+ ## Links
55
+
56
+ - Docs: [paperjsx.com/docs](https://paperjsx.com/docs)
57
+ - Pricing: [paperjsx.com/pricing](https://paperjsx.com/pricing)
58
+
59
+ ## License
60
+
61
+ Commercial license required. See the packaged `LICENSE` file.
@@ -0,0 +1,53 @@
1
+ export declare const DETERMINISTIC_ZIP_DATE: Date;
2
+ export interface XlsxZipEntryMetrics {
3
+ path: string;
4
+ uncompressedBytes: number;
5
+ compressedBytes: number;
6
+ zipContributionBytes: number;
7
+ }
8
+ export interface XlsxAssemblyResult {
9
+ buffer: Buffer;
10
+ entryMetrics: XlsxZipEntryMetrics[];
11
+ }
12
+ export interface XlsxParts {
13
+ contentTypes: string;
14
+ packageRels: string;
15
+ workbook: string;
16
+ workbookRels: string;
17
+ styles: string;
18
+ sharedStrings?: string;
19
+ theme: string;
20
+ sheets: Array<readonly [name: string, content: string]>;
21
+ sheetRelationships?: Array<readonly [name: string, content: string]>;
22
+ tables?: Array<readonly [name: string, content: string]>;
23
+ pivotTables?: Array<readonly [name: string, content: string]>;
24
+ pivotTableRelationships?: Array<readonly [name: string, content: string]>;
25
+ pivotCacheDefinitions?: Array<readonly [name: string, content: string]>;
26
+ pivotCacheDefinitionRelationships?: Array<readonly [name: string, content: string]>;
27
+ pivotCacheRecords?: Array<readonly [name: string, content: string]>;
28
+ comments?: Array<readonly [name: string, content: string]>;
29
+ vmlDrawings?: Array<readonly [name: string, content: string]>;
30
+ drawings?: Array<readonly [name: string, content: string]>;
31
+ drawingRelationships?: Array<readonly [name: string, content: string]>;
32
+ media?: Array<readonly [name: string, content: Buffer]>;
33
+ charts?: Array<readonly [name: string, content: string]>;
34
+ coreProps: string;
35
+ appProps: string;
36
+ }
37
+ export interface XlsxAssemblyOptions {
38
+ deterministic: boolean;
39
+ }
40
+ export declare function assembleXlsx(parts: XlsxParts, options: XlsxAssemblyOptions): Promise<Buffer>;
41
+ export declare function assembleXlsxWithMetadata(parts: XlsxParts, options: XlsxAssemblyOptions): Promise<XlsxAssemblyResult>;
42
+ export declare function assembleXlsxStream(parts: XlsxParts, options: XlsxAssemblyOptions): NodeJS.ReadableStream;
43
+ export interface XlsxStreamableSheet {
44
+ name: string;
45
+ prefix: string;
46
+ rowChunks: string[];
47
+ suffix: string;
48
+ }
49
+ export interface XlsxStreamableParts extends Omit<XlsxParts, "sheets"> {
50
+ sheets: XlsxStreamableSheet[];
51
+ }
52
+ export declare function assembleXlsxStreamable(parts: XlsxStreamableParts, options: XlsxAssemblyOptions): NodeJS.ReadableStream;
53
+ //# sourceMappingURL=xlsx-assembler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlsx-assembler.d.ts","sourceRoot":"","sources":["../../../../src/assembly/xlsx-assembler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import type { SpreadsheetRenderKeyPartBytes, SpreadsheetRenderStageMetrics } from "../render-metrics.js";
2
+ export type Phase2BenchmarkStatus = "pass" | "warn" | "fail" | "blocked";
3
+ export interface BenchmarkStats {
4
+ p50: number;
5
+ p95: number;
6
+ max: number;
7
+ }
8
+ export interface Phase2BenchmarkResult {
9
+ id: string;
10
+ group: "E" | "F" | "G" | "H";
11
+ name: string;
12
+ target: string;
13
+ status: Phase2BenchmarkStatus;
14
+ observed: string;
15
+ notes?: string;
16
+ diagnostics?: Phase2BenchmarkDiagnostics;
17
+ }
18
+ export interface Phase2BenchmarkDiagnostics {
19
+ bottleneck?: "serializer-bound" | "archive-bound" | "mixed";
20
+ classification?: "active-performance-debt" | "benchmark-target-mismatch-candidate";
21
+ payloadDominantPart?: "worksheet" | "styles" | "sharedStrings" | "other";
22
+ practicalFloorGapBytes?: number;
23
+ keyPartBytes?: SpreadsheetRenderKeyPartBytes;
24
+ stageMetrics?: SpreadsheetRenderStageMetrics;
25
+ stylePart?: {
26
+ bytes: number;
27
+ componentCounts: {
28
+ numFmts: number;
29
+ fonts: number;
30
+ fills: number;
31
+ borders: number;
32
+ cellXfs: number;
33
+ dxfs: number;
34
+ };
35
+ bytesPerCellXf: number;
36
+ bytesPerStyleComponent: number;
37
+ };
38
+ }
39
+ export interface Phase2BenchmarkSummary {
40
+ total: number;
41
+ passed: number;
42
+ warned: number;
43
+ failed: number;
44
+ blocked: number;
45
+ }
46
+ export interface Phase2BenchmarkReport {
47
+ generatedAt: string;
48
+ environment: {
49
+ node: string;
50
+ platform: string;
51
+ arch: string;
52
+ };
53
+ summary: Phase2BenchmarkSummary;
54
+ results: Phase2BenchmarkResult[];
55
+ }
56
+ export declare function classifySizeEfficiencyStatus(value: number, max: number, diagnostics?: Phase2BenchmarkDiagnostics): Phase2BenchmarkStatus;
57
+ interface ExcelJsBenchmarkLoaderOptions {
58
+ envModulePath?: string;
59
+ packageRequireBase?: string | URL | false;
60
+ tempRequireBase?: string | false;
61
+ }
62
+ interface ExcelJsBenchmarkModuleResult {
63
+ status: "loaded" | "missing";
64
+ module?: any;
65
+ source?: string;
66
+ message?: string;
67
+ }
68
+ export declare function loadExcelJsBenchmarkModule(options?: ExcelJsBenchmarkLoaderOptions): Promise<ExcelJsBenchmarkModuleResult>;
69
+ export declare function runPhase2BenchmarkSuite(iterations?: number): Promise<Phase2BenchmarkReport>;
70
+ export declare function renderPhase2BenchmarkReport(iterations?: number): Promise<string>;
71
+ export {};
72
+ //# sourceMappingURL=phase2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase2.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/phase2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import {
2
+ classifySizeEfficiencyStatus,
3
+ loadExcelJsBenchmarkModule,
4
+ renderPhase2BenchmarkReport,
5
+ runPhase2BenchmarkSuite
6
+ } from "../chunk-2IVXCH6I.js";
7
+ import "../chunk-S5RMAWLC.js";
8
+ export {
9
+ classifySizeEfficiencyStatus,
10
+ loadExcelJsBenchmarkModule,
11
+ renderPhase2BenchmarkReport,
12
+ runPhase2BenchmarkSuite
13
+ };
14
+ //# sourceMappingURL=phase2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,21 @@
1
+ export interface BenchmarkStats {
2
+ p50: number;
3
+ p95: number;
4
+ max: number;
5
+ }
6
+ export interface Phase1BenchmarkResult {
7
+ name: string;
8
+ stats: BenchmarkStats;
9
+ rowsPerSecond: number;
10
+ cellsPerSecond: number;
11
+ fileSizeBytes: number;
12
+ rssDeltaBytes: number;
13
+ }
14
+ export declare function runRenderBenchmark(fixtureName: "large-10k" | "large-50k" | "large-100k", iterations?: number): Promise<Phase1BenchmarkResult>;
15
+ export declare function runCorrectnessSweep(): Promise<{
16
+ passed: number;
17
+ total: number;
18
+ failures: string[];
19
+ }>;
20
+ export declare function renderPhase1BenchmarkReport(iterations?: number): Promise<string>;
21
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/report.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAyBD,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,EACrD,UAAU,SAAK,GACd,OAAO,CAAC,qBAAqB,CAAC,CA2BhC;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAyC1G;AAED,wBAAsB,2BAA2B,CAAC,UAAU,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CA2ClF"}
@@ -0,0 +1,13 @@
1
+ import {
2
+ renderPhase1BenchmarkReport,
3
+ runCorrectnessSweep,
4
+ runRenderBenchmark
5
+ } from "../chunk-QDWDSM74.js";
6
+ import "../chunk-PQSLPEN5.js";
7
+ import "../chunk-S5RMAWLC.js";
8
+ export {
9
+ renderPhase1BenchmarkReport,
10
+ runCorrectnessSweep,
11
+ runRenderBenchmark
12
+ };
13
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,85 @@
1
+ import { type Phase1BenchmarkResult } from "./report.js";
2
+ import { type Phase2BenchmarkDiagnostics } from "./phase2.js";
3
+ import { SpreadsheetEngine } from "../spreadsheet-engine.js";
4
+ export type XlsxRigorousBenchmarkStatus = "pass" | "warn" | "fail" | "blocked";
5
+ export type XlsxRigorousBenchmarkTier = "free" | "pro";
6
+ export type XlsxRigorousBenchmarkBucket = "free-safe" | "pro-only" | "shared";
7
+ type SpreadsheetDocumentInput = Parameters<typeof SpreadsheetEngine.render>[0];
8
+ type SpreadsheetRenderOptions = Parameters<typeof SpreadsheetEngine.render>[1];
9
+ type SpreadsheetTemplateIndexLike = Awaited<ReturnType<typeof SpreadsheetEngine.parseTemplate>>;
10
+ type SpreadsheetTemplateAssemblyInputLike = Parameters<typeof SpreadsheetEngine.assembleFromTemplate>[1];
11
+ export interface XlsxRigorousBenchmarkMetadata {
12
+ mode: XlsxRigorousBenchmarkTier;
13
+ buildType: string;
14
+ packageName: string;
15
+ keyPresent: boolean;
16
+ gitSha?: string;
17
+ }
18
+ export interface XlsxRigorousBenchmarkOptions {
19
+ iterations?: number;
20
+ mode?: XlsxRigorousBenchmarkTier;
21
+ buildType?: string;
22
+ packageName?: string;
23
+ keyPresent?: boolean;
24
+ gitSha?: string;
25
+ engine?: XlsxRigorousBenchmarkEngine;
26
+ }
27
+ export interface XlsxRigorousBenchmarkEngine {
28
+ render: (document: SpreadsheetDocumentInput, options?: SpreadsheetRenderOptions) => Promise<Buffer>;
29
+ renderStream: (document: SpreadsheetDocumentInput, options?: SpreadsheetRenderOptions) => Promise<NodeJS.ReadableStream>;
30
+ renderWithMetrics: typeof SpreadsheetEngine.renderWithMetrics;
31
+ preflight: typeof SpreadsheetEngine.preflight;
32
+ repair: typeof SpreadsheetEngine.repair;
33
+ validateAndRepair: typeof SpreadsheetEngine.validateAndRepair;
34
+ parseTemplate: (buffer: Buffer) => Promise<SpreadsheetTemplateIndexLike>;
35
+ assembleFromTemplate: (index: SpreadsheetTemplateIndexLike, injection: SpreadsheetTemplateAssemblyInputLike) => Promise<Buffer>;
36
+ }
37
+ export interface XlsxRigorousMetricStats {
38
+ min: number;
39
+ mean: number;
40
+ p50: number;
41
+ p95: number;
42
+ max: number;
43
+ }
44
+ export interface XlsxRigorousMeasurement {
45
+ durationMs: XlsxRigorousMetricStats;
46
+ rssDeltaBytes: XlsxRigorousMetricStats;
47
+ }
48
+ export interface XlsxRigorousBenchmarkResult {
49
+ id: string;
50
+ tier: XlsxRigorousBenchmarkTier;
51
+ bucket: XlsxRigorousBenchmarkBucket;
52
+ group: string;
53
+ name: string;
54
+ target: string;
55
+ status: XlsxRigorousBenchmarkStatus;
56
+ observed: string;
57
+ notes?: string;
58
+ diagnostics?: Phase2BenchmarkDiagnostics;
59
+ measurement?: XlsxRigorousMeasurement;
60
+ }
61
+ export interface XlsxRigorousBenchmarkSummary {
62
+ total: number;
63
+ passed: number;
64
+ warned: number;
65
+ failed: number;
66
+ blocked: number;
67
+ }
68
+ export interface XlsxRigorousBenchmarkReport {
69
+ generatedAt: string;
70
+ iterations: number;
71
+ environment: {
72
+ node: string;
73
+ platform: string;
74
+ arch: string;
75
+ };
76
+ metadata: XlsxRigorousBenchmarkMetadata;
77
+ summary: XlsxRigorousBenchmarkSummary;
78
+ renderBaselines: Phase1BenchmarkResult[];
79
+ results: XlsxRigorousBenchmarkResult[];
80
+ }
81
+ export declare function runRigorousBenchmarkSuite(options?: number | XlsxRigorousBenchmarkOptions): Promise<XlsxRigorousBenchmarkReport>;
82
+ export declare function formatRigorousBenchmarkReport(report: XlsxRigorousBenchmarkReport): string;
83
+ export declare function renderRigorousBenchmarkReport(options?: number | XlsxRigorousBenchmarkOptions): Promise<string>;
84
+ export {};
85
+ //# sourceMappingURL=rigorous.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rigorous.d.ts","sourceRoot":"","sources":["../../../../src/benchmarks/rigorous.ts"],"names":[],"mappings":"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"}