@veztraa/report-renderer 0.1.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.
Files changed (77) hide show
  1. package/dist/document.d.ts +10 -0
  2. package/dist/document.d.ts.map +1 -0
  3. package/dist/document.js +352 -0
  4. package/dist/document.js.map +1 -0
  5. package/dist/elements.d.ts +6 -0
  6. package/dist/elements.d.ts.map +1 -0
  7. package/dist/elements.js +445 -0
  8. package/dist/elements.js.map +1 -0
  9. package/dist/fonts/inter-400.woff +0 -0
  10. package/dist/fonts/inter-700.woff +0 -0
  11. package/dist/fonts/lato-400-italic.woff +0 -0
  12. package/dist/fonts/lato-400.woff +0 -0
  13. package/dist/fonts/lato-700-italic.woff +0 -0
  14. package/dist/fonts/lato-700.woff +0 -0
  15. package/dist/fonts/merriweather-400-italic.woff +0 -0
  16. package/dist/fonts/merriweather-400.woff +0 -0
  17. package/dist/fonts/merriweather-700-italic.woff +0 -0
  18. package/dist/fonts/merriweather-700.woff +0 -0
  19. package/dist/fonts/montserrat-400-italic.woff +0 -0
  20. package/dist/fonts/montserrat-400.woff +0 -0
  21. package/dist/fonts/montserrat-700-italic.woff +0 -0
  22. package/dist/fonts/montserrat-700.woff +0 -0
  23. package/dist/fonts/nunito-400-italic.woff +0 -0
  24. package/dist/fonts/nunito-400.woff +0 -0
  25. package/dist/fonts/nunito-700-italic.woff +0 -0
  26. package/dist/fonts/nunito-700.woff +0 -0
  27. package/dist/fonts/open-sans-400-italic.woff +0 -0
  28. package/dist/fonts/open-sans-400.woff +0 -0
  29. package/dist/fonts/open-sans-700-italic.woff +0 -0
  30. package/dist/fonts/open-sans-700.woff +0 -0
  31. package/dist/fonts/playfair-400-italic.woff +0 -0
  32. package/dist/fonts/playfair-400.woff +0 -0
  33. package/dist/fonts/playfair-700-italic.woff +0 -0
  34. package/dist/fonts/playfair-700.woff +0 -0
  35. package/dist/fonts/poppins-400-italic.woff +0 -0
  36. package/dist/fonts/poppins-400.woff +0 -0
  37. package/dist/fonts/poppins-700-italic.woff +0 -0
  38. package/dist/fonts/poppins-700.woff +0 -0
  39. package/dist/fonts/raleway-400-italic.woff +0 -0
  40. package/dist/fonts/raleway-400.woff +0 -0
  41. package/dist/fonts/raleway-700-italic.woff +0 -0
  42. package/dist/fonts/raleway-700.woff +0 -0
  43. package/dist/fonts/roboto-400-italic.woff +0 -0
  44. package/dist/fonts/roboto-400.woff +0 -0
  45. package/dist/fonts/roboto-700-italic.woff +0 -0
  46. package/dist/fonts/roboto-700.woff +0 -0
  47. package/dist/fonts/source-code-pro-400.woff +0 -0
  48. package/dist/fonts/source-code-pro-700.woff +0 -0
  49. package/dist/fonts/ubuntu-400-italic.woff +0 -0
  50. package/dist/fonts/ubuntu-400.woff +0 -0
  51. package/dist/fonts/ubuntu-700-italic.woff +0 -0
  52. package/dist/fonts/ubuntu-700.woff +0 -0
  53. package/dist/fonts.d.ts +23 -0
  54. package/dist/fonts.d.ts.map +1 -0
  55. package/dist/fonts.js +46 -0
  56. package/dist/fonts.js.map +1 -0
  57. package/dist/index.browser.d.ts +8 -0
  58. package/dist/index.browser.d.ts.map +1 -0
  59. package/dist/index.browser.js +18 -0
  60. package/dist/index.browser.js.map +1 -0
  61. package/dist/index.d.ts +14 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +24 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/registerFonts.browser.d.ts +2 -0
  66. package/dist/registerFonts.browser.d.ts.map +1 -0
  67. package/dist/registerFonts.browser.js +15 -0
  68. package/dist/registerFonts.browser.js.map +1 -0
  69. package/dist/registerFonts.d.ts +2 -0
  70. package/dist/registerFonts.d.ts.map +1 -0
  71. package/dist/registerFonts.js +76 -0
  72. package/dist/registerFonts.js.map +1 -0
  73. package/dist/richtext.d.ts +13 -0
  74. package/dist/richtext.d.ts.map +1 -0
  75. package/dist/richtext.js +220 -0
  76. package/dist/richtext.js.map +1 -0
  77. package/package.json +35 -0
Binary file
@@ -0,0 +1,23 @@
1
+ /** Returns the Font.register() config objects — callers supply their own Font instance. */
2
+ export declare function getFontConfigs(): {
3
+ family: string;
4
+ fonts: ({
5
+ src: string;
6
+ fontWeight?: undefined;
7
+ fontStyle?: undefined;
8
+ } | {
9
+ src: string;
10
+ fontWeight: number;
11
+ fontStyle?: undefined;
12
+ } | {
13
+ src: string;
14
+ fontStyle: "italic";
15
+ fontWeight?: undefined;
16
+ } | {
17
+ src: string;
18
+ fontWeight: number;
19
+ fontStyle: "italic";
20
+ })[];
21
+ }[];
22
+ export declare function registerFonts(): void;
23
+ //# sourceMappingURL=fonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAyBA,2FAA2F;AAC3F,wBAAgB,cAAc;;;;;;;;;;;;;;;;;;;IAc7B;AAID,wBAAgB,aAAa,IAAI,IAAI,CAMpC"}
package/dist/fonts.js ADDED
@@ -0,0 +1,46 @@
1
+ import { Font } from "@react-pdf/renderer";
2
+ const CDN = "https://cdn.jsdelivr.net/npm/@fontsource";
3
+ function src(pkg, name, weight, style) {
4
+ return `${CDN}/${pkg}/files/${name}-latin-${weight}-${style}.woff2`;
5
+ }
6
+ const FONT_DEFS = [
7
+ { family: "Roboto", pkg: "roboto", file: "roboto", italic: true },
8
+ { family: "Open Sans", pkg: "open-sans", file: "open-sans", italic: true },
9
+ { family: "Lato", pkg: "lato", file: "lato", italic: true },
10
+ { family: "Montserrat", pkg: "montserrat", file: "montserrat", italic: true },
11
+ { family: "Inter", pkg: "inter", file: "inter" },
12
+ { family: "Poppins", pkg: "poppins", file: "poppins", italic: true },
13
+ { family: "Nunito", pkg: "nunito", file: "nunito", italic: true },
14
+ { family: "Raleway", pkg: "raleway", file: "raleway", italic: true },
15
+ { family: "Ubuntu", pkg: "ubuntu", file: "ubuntu", italic: true },
16
+ { family: "Playfair Display", pkg: "playfair-display", file: "playfair-display", italic: true },
17
+ { family: "Merriweather", pkg: "merriweather", file: "merriweather", italic: true },
18
+ { family: "Source Code Pro", pkg: "source-code-pro", file: "source-code-pro" },
19
+ ];
20
+ /** Returns the Font.register() config objects — callers supply their own Font instance. */
21
+ export function getFontConfigs() {
22
+ return FONT_DEFS.map(({ family, pkg, file, italic }) => ({
23
+ family,
24
+ fonts: [
25
+ { src: src(pkg, file, 400, "normal") },
26
+ { src: src(pkg, file, 700, "normal"), fontWeight: 700 },
27
+ ...(italic
28
+ ? [
29
+ { src: src(pkg, file, 400, "italic"), fontStyle: "italic" },
30
+ { src: src(pkg, file, 700, "italic"), fontWeight: 700, fontStyle: "italic" },
31
+ ]
32
+ : []),
33
+ ],
34
+ }));
35
+ }
36
+ /** Register fonts using the bundled Font instance (used by CLI renderer). */
37
+ let registered = false;
38
+ export function registerFonts() {
39
+ if (registered)
40
+ return;
41
+ registered = true;
42
+ for (const config of getFontConfigs()) {
43
+ Font.register(config);
44
+ }
45
+ }
46
+ //# sourceMappingURL=fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,MAAM,GAAG,GAAG,0CAA0C,CAAC;AAEvD,SAAS,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,MAAiB,EAAE,KAA0B;IACnF,OAAO,GAAG,GAAG,IAAI,GAAG,UAAU,IAAI,UAAU,MAAM,IAAI,KAAK,QAAQ,CAAC;AACtE,CAAC;AAID,MAAM,SAAS,GAAc;IAC3B,EAAE,MAAM,EAAE,QAAQ,EAAY,GAAG,EAAE,QAAQ,EAAY,IAAI,EAAE,QAAQ,EAAY,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,WAAW,EAAS,GAAG,EAAE,WAAW,EAAS,IAAI,EAAE,WAAW,EAAS,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,MAAM,EAAc,GAAG,EAAE,MAAM,EAAc,IAAI,EAAE,MAAM,EAAc,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,YAAY,EAAQ,GAAG,EAAE,YAAY,EAAQ,IAAI,EAAE,YAAY,EAAQ,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,OAAO,EAAa,GAAG,EAAE,OAAO,EAAa,IAAI,EAAE,OAAO,EAA2B;IAC/F,EAAE,MAAM,EAAE,SAAS,EAAW,GAAG,EAAE,SAAS,EAAW,IAAI,EAAE,SAAS,EAAW,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,QAAQ,EAAY,GAAG,EAAE,QAAQ,EAAY,IAAI,EAAE,QAAQ,EAAY,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,SAAS,EAAW,GAAG,EAAE,SAAS,EAAW,IAAI,EAAE,SAAS,EAAW,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,QAAQ,EAAY,GAAG,EAAE,QAAQ,EAAY,IAAI,EAAE,QAAQ,EAAY,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,cAAc,EAAM,GAAG,EAAE,cAAc,EAAM,IAAI,EAAE,cAAc,EAAM,MAAM,EAAE,IAAI,EAAE;IAC/F,EAAE,MAAM,EAAE,iBAAiB,EAAG,GAAG,EAAE,iBAAiB,EAAG,IAAI,EAAE,iBAAiB,EAAgB;CAC/F,CAAC;AAEF,2FAA2F;AAC3F,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM;QACN,KAAK,EAAE;YACL,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE;YACtC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE;YACvD,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC;oBACE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAiB,EAAE;oBACpE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,QAAiB,EAAE;iBACtF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,6EAA6E;AAC7E,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,MAAM,UAAU,aAAa;IAC3B,IAAI,UAAU;QAAE,OAAO;IACvB,UAAU,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import "./registerFonts.browser.js";
2
+ import type { Template } from "@veztraa/report-core";
3
+ export type { Template };
4
+ export { ReportDocument } from "./document.js";
5
+ export { getFontConfigs } from "./fonts.js";
6
+ export declare function render(template: Template, data?: Record<string, unknown>): Promise<Buffer>;
7
+ export declare function renderStream(template: Template, data?: Record<string, unknown>): Promise<NodeJS.ReadableStream>;
8
+ //# sourceMappingURL=index.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAIhC"}
@@ -0,0 +1,18 @@
1
+ import "./registerFonts.browser.js";
2
+ import React from "react";
3
+ import { renderToBuffer, renderToStream } from "@react-pdf/renderer";
4
+ import { TemplateSchema } from "@veztraa/report-core";
5
+ import { ReportDocument } from "./document.js";
6
+ export { ReportDocument } from "./document.js";
7
+ export { getFontConfigs } from "./fonts.js";
8
+ export async function render(template, data = {}) {
9
+ const validated = TemplateSchema.parse(template);
10
+ const element = React.createElement(ReportDocument, { template: validated, data });
11
+ return await renderToBuffer(element);
12
+ }
13
+ export async function renderStream(template, data = {}) {
14
+ const validated = TemplateSchema.parse(template);
15
+ const element = React.createElement(ReportDocument, { template: validated, data });
16
+ return await renderToStream(element);
17
+ }
18
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,QAAkB,EAClB,OAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAsC,CAAC;IACxH,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAkB,EAClB,OAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAsC,CAAC;IACxH,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import "./registerFonts.js";
2
+ import type { Template } from "@veztraa/report-core";
3
+ export type { Template };
4
+ export { ReportDocument } from "./document.js";
5
+ export { getFontConfigs } from "./fonts.js";
6
+ /**
7
+ * Render a report template with data to a PDF Buffer.
8
+ */
9
+ export declare function render(template: Template, data?: Record<string, unknown>): Promise<Buffer>;
10
+ /**
11
+ * Render a report template with data to a readable stream.
12
+ */
13
+ export declare function renderStream(template: Template, data?: Record<string, unknown>): Promise<NodeJS.ReadableStream>;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAIhC"}
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
1
+ import "./registerFonts.js";
2
+ import React from "react";
3
+ import { renderToBuffer, renderToStream } from "@react-pdf/renderer";
4
+ import { TemplateSchema } from "@veztraa/report-core";
5
+ import { ReportDocument } from "./document.js";
6
+ export { ReportDocument } from "./document.js";
7
+ export { getFontConfigs } from "./fonts.js";
8
+ /**
9
+ * Render a report template with data to a PDF Buffer.
10
+ */
11
+ export async function render(template, data = {}) {
12
+ const validated = TemplateSchema.parse(template);
13
+ const element = React.createElement(ReportDocument, { template: validated, data });
14
+ return await renderToBuffer(element);
15
+ }
16
+ /**
17
+ * Render a report template with data to a readable stream.
18
+ */
19
+ export async function renderStream(template, data = {}) {
20
+ const validated = TemplateSchema.parse(template);
21
+ const element = React.createElement(ReportDocument, { template: validated, data });
22
+ return await renderToStream(element);
23
+ }
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,QAAkB,EAClB,OAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAsC,CAAC;IACxH,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAkB,EAClB,OAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAsC,CAAC;IACxH,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=registerFonts.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerFonts.browser.d.ts","sourceRoot":"","sources":["../src/registerFonts.browser.ts"],"names":[],"mappings":""}