@arslankhan/doc-forge 0.0.0-stage → 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 (246) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +13 -0
  3. package/LICENSING.md +80 -0
  4. package/README.md +547 -2
  5. package/RELEASE.md +50 -0
  6. package/dist/binding-path.d.ts +15 -0
  7. package/dist/binding-path.d.ts.map +1 -0
  8. package/dist/binding-path.js +37 -0
  9. package/dist/binding-path.js.map +1 -0
  10. package/dist/binding.d.ts +91 -0
  11. package/dist/binding.d.ts.map +1 -0
  12. package/dist/binding.js +229 -0
  13. package/dist/binding.js.map +1 -0
  14. package/dist/designer/Canvas.d.ts +51 -0
  15. package/dist/designer/Canvas.d.ts.map +1 -0
  16. package/dist/designer/Canvas.js +188 -0
  17. package/dist/designer/Canvas.js.map +1 -0
  18. package/dist/designer/DocumentDesigner.d.ts +14 -0
  19. package/dist/designer/DocumentDesigner.d.ts.map +1 -0
  20. package/dist/designer/DocumentDesigner.js +351 -0
  21. package/dist/designer/DocumentDesigner.js.map +1 -0
  22. package/dist/designer/HtmlPreview.d.ts +9 -0
  23. package/dist/designer/HtmlPreview.d.ts.map +1 -0
  24. package/dist/designer/HtmlPreview.js +20 -0
  25. package/dist/designer/HtmlPreview.js.map +1 -0
  26. package/dist/designer/ImageBindingFields.d.ts +11 -0
  27. package/dist/designer/ImageBindingFields.d.ts.map +1 -0
  28. package/dist/designer/ImageBindingFields.js +106 -0
  29. package/dist/designer/ImageBindingFields.js.map +1 -0
  30. package/dist/designer/InvoiceFields.d.ts +13 -0
  31. package/dist/designer/InvoiceFields.d.ts.map +1 -0
  32. package/dist/designer/InvoiceFields.js +85 -0
  33. package/dist/designer/InvoiceFields.js.map +1 -0
  34. package/dist/designer/PreviewDataDialog.d.ts +13 -0
  35. package/dist/designer/PreviewDataDialog.d.ts.map +1 -0
  36. package/dist/designer/PreviewDataDialog.js +16 -0
  37. package/dist/designer/PreviewDataDialog.js.map +1 -0
  38. package/dist/designer/PropertiesPanel.d.ts +15 -0
  39. package/dist/designer/PropertiesPanel.d.ts.map +1 -0
  40. package/dist/designer/PropertiesPanel.js +63 -0
  41. package/dist/designer/PropertiesPanel.js.map +1 -0
  42. package/dist/designer/ReportFields.d.ts +14 -0
  43. package/dist/designer/ReportFields.d.ts.map +1 -0
  44. package/dist/designer/ReportFields.js +257 -0
  45. package/dist/designer/ReportFields.js.map +1 -0
  46. package/dist/designer/StyleFields.d.ts +16 -0
  47. package/dist/designer/StyleFields.d.ts.map +1 -0
  48. package/dist/designer/StyleFields.js +138 -0
  49. package/dist/designer/StyleFields.js.map +1 -0
  50. package/dist/designer/TextBindingFields.d.ts +11 -0
  51. package/dist/designer/TextBindingFields.d.ts.map +1 -0
  52. package/dist/designer/TextBindingFields.js +105 -0
  53. package/dist/designer/TextBindingFields.js.map +1 -0
  54. package/dist/designer/Toolbar.d.ts +52 -0
  55. package/dist/designer/Toolbar.d.ts.map +1 -0
  56. package/dist/designer/Toolbar.js +62 -0
  57. package/dist/designer/Toolbar.js.map +1 -0
  58. package/dist/designer/Toolbox.d.ts +8 -0
  59. package/dist/designer/Toolbox.d.ts.map +1 -0
  60. package/dist/designer/Toolbox.js +43 -0
  61. package/dist/designer/Toolbox.js.map +1 -0
  62. package/dist/designer/border-preview.d.ts +15 -0
  63. package/dist/designer/border-preview.d.ts.map +1 -0
  64. package/dist/designer/border-preview.js +34 -0
  65. package/dist/designer/border-preview.js.map +1 -0
  66. package/dist/designer/history.d.ts +13 -0
  67. package/dist/designer/history.d.ts.map +1 -0
  68. package/dist/designer/history.js +51 -0
  69. package/dist/designer/history.js.map +1 -0
  70. package/dist/designer/index.d.ts +5 -0
  71. package/dist/designer/index.d.ts.map +1 -0
  72. package/dist/designer/index.js +3 -0
  73. package/dist/designer/index.js.map +1 -0
  74. package/dist/designer/page-geometry.d.ts +35 -0
  75. package/dist/designer/page-geometry.d.ts.map +1 -0
  76. package/dist/designer/page-geometry.js +123 -0
  77. package/dist/designer/page-geometry.js.map +1 -0
  78. package/dist/designer/styles.d.ts +3 -0
  79. package/dist/designer/styles.d.ts.map +1 -0
  80. package/dist/designer/styles.js +594 -0
  81. package/dist/designer/styles.js.map +1 -0
  82. package/dist/designer/template-edits.d.ts +26 -0
  83. package/dist/designer/template-edits.d.ts.map +1 -0
  84. package/dist/designer/template-edits.js +323 -0
  85. package/dist/designer/template-edits.js.map +1 -0
  86. package/dist/designer/theme.d.ts +31 -0
  87. package/dist/designer/theme.d.ts.map +1 -0
  88. package/dist/designer/theme.js +92 -0
  89. package/dist/designer/theme.js.map +1 -0
  90. package/dist/examples/bound-invoice.d.ts +143 -0
  91. package/dist/examples/bound-invoice.d.ts.map +1 -0
  92. package/dist/examples/bound-invoice.js +99 -0
  93. package/dist/examples/bound-invoice.js.map +1 -0
  94. package/dist/examples/full-invoice-data.d.ts +81 -0
  95. package/dist/examples/full-invoice-data.d.ts.map +1 -0
  96. package/dist/examples/full-invoice-data.js +86 -0
  97. package/dist/examples/full-invoice-data.js.map +1 -0
  98. package/dist/examples/full-invoice.d.ts +402 -0
  99. package/dist/examples/full-invoice.d.ts.map +1 -0
  100. package/dist/examples/full-invoice.js +199 -0
  101. package/dist/examples/full-invoice.js.map +1 -0
  102. package/dist/examples/invoice-data.d.ts +51 -0
  103. package/dist/examples/invoice-data.d.ts.map +1 -0
  104. package/dist/examples/invoice-data.js +51 -0
  105. package/dist/examples/invoice-data.js.map +1 -0
  106. package/dist/examples/invoice.d.ts +90 -0
  107. package/dist/examples/invoice.d.ts.map +1 -0
  108. package/dist/examples/invoice.js +62 -0
  109. package/dist/examples/invoice.js.map +1 -0
  110. package/dist/examples/jobs-report-data.d.ts +84 -0
  111. package/dist/examples/jobs-report-data.d.ts.map +1 -0
  112. package/dist/examples/jobs-report-data.js +79 -0
  113. package/dist/examples/jobs-report-data.js.map +1 -0
  114. package/dist/examples/jobs-report.d.ts +182 -0
  115. package/dist/examples/jobs-report.d.ts.map +1 -0
  116. package/dist/examples/jobs-report.js +96 -0
  117. package/dist/examples/jobs-report.js.map +1 -0
  118. package/dist/index.d.ts +31 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +21 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/invoice/calculate.d.ts +59 -0
  123. package/dist/invoice/calculate.d.ts.map +1 -0
  124. package/dist/invoice/calculate.js +270 -0
  125. package/dist/invoice/calculate.js.map +1 -0
  126. package/dist/invoice/context.d.ts +15 -0
  127. package/dist/invoice/context.d.ts.map +1 -0
  128. package/dist/invoice/context.js +79 -0
  129. package/dist/invoice/context.js.map +1 -0
  130. package/dist/invoice/format.d.ts +10 -0
  131. package/dist/invoice/format.d.ts.map +1 -0
  132. package/dist/invoice/format.js +95 -0
  133. package/dist/invoice/format.js.map +1 -0
  134. package/dist/license/capabilities.d.ts +17 -0
  135. package/dist/license/capabilities.d.ts.map +1 -0
  136. package/dist/license/capabilities.js +46 -0
  137. package/dist/license/capabilities.js.map +1 -0
  138. package/dist/license/client.d.ts +109 -0
  139. package/dist/license/client.d.ts.map +1 -0
  140. package/dist/license/client.js +346 -0
  141. package/dist/license/client.js.map +1 -0
  142. package/dist/license/codec.d.ts +5 -0
  143. package/dist/license/codec.d.ts.map +1 -0
  144. package/dist/license/codec.js +26 -0
  145. package/dist/license/codec.js.map +1 -0
  146. package/dist/license/errors.d.ts +11 -0
  147. package/dist/license/errors.d.ts.map +1 -0
  148. package/dist/license/errors.js +19 -0
  149. package/dist/license/errors.js.map +1 -0
  150. package/dist/license/features.d.ts +20 -0
  151. package/dist/license/features.d.ts.map +1 -0
  152. package/dist/license/features.js +28 -0
  153. package/dist/license/features.js.map +1 -0
  154. package/dist/license/index.d.ts +16 -0
  155. package/dist/license/index.d.ts.map +1 -0
  156. package/dist/license/index.js +9 -0
  157. package/dist/license/index.js.map +1 -0
  158. package/dist/license/provider.d.ts +59 -0
  159. package/dist/license/provider.d.ts.map +1 -0
  160. package/dist/license/provider.js +150 -0
  161. package/dist/license/provider.js.map +1 -0
  162. package/dist/license/redact.d.ts +4 -0
  163. package/dist/license/redact.d.ts.map +1 -0
  164. package/dist/license/redact.js +15 -0
  165. package/dist/license/redact.js.map +1 -0
  166. package/dist/license/store.d.ts +26 -0
  167. package/dist/license/store.d.ts.map +1 -0
  168. package/dist/license/store.js +90 -0
  169. package/dist/license/store.js.map +1 -0
  170. package/dist/license/token.d.ts +45 -0
  171. package/dist/license/token.d.ts.map +1 -0
  172. package/dist/license/token.js +195 -0
  173. package/dist/license/token.js.map +1 -0
  174. package/dist/pdf/browser-blocked.d.ts +12 -0
  175. package/dist/pdf/browser-blocked.d.ts.map +1 -0
  176. package/dist/pdf/browser-blocked.js +25 -0
  177. package/dist/pdf/browser-blocked.js.map +1 -0
  178. package/dist/pdf/browser.d.ts +12 -0
  179. package/dist/pdf/browser.d.ts.map +1 -0
  180. package/dist/pdf/browser.js +69 -0
  181. package/dist/pdf/browser.js.map +1 -0
  182. package/dist/pdf/errors.d.ts +6 -0
  183. package/dist/pdf/errors.d.ts.map +1 -0
  184. package/dist/pdf/errors.js +11 -0
  185. package/dist/pdf/errors.js.map +1 -0
  186. package/dist/pdf/index.d.ts +10 -0
  187. package/dist/pdf/index.d.ts.map +1 -0
  188. package/dist/pdf/index.js +9 -0
  189. package/dist/pdf/index.js.map +1 -0
  190. package/dist/pdf/options.d.ts +143 -0
  191. package/dist/pdf/options.d.ts.map +1 -0
  192. package/dist/pdf/options.js +322 -0
  193. package/dist/pdf/options.js.map +1 -0
  194. package/dist/pdf/render-pdf.d.ts +13 -0
  195. package/dist/pdf/render-pdf.d.ts.map +1 -0
  196. package/dist/pdf/render-pdf.js +195 -0
  197. package/dist/pdf/render-pdf.js.map +1 -0
  198. package/dist/render/appearance.d.ts +25 -0
  199. package/dist/render/appearance.d.ts.map +1 -0
  200. package/dist/render/appearance.js +149 -0
  201. package/dist/render/appearance.js.map +1 -0
  202. package/dist/render/css.d.ts +17 -0
  203. package/dist/render/css.d.ts.map +1 -0
  204. package/dist/render/css.js +170 -0
  205. package/dist/render/css.js.map +1 -0
  206. package/dist/render/errors.d.ts +6 -0
  207. package/dist/render/errors.d.ts.map +1 -0
  208. package/dist/render/errors.js +11 -0
  209. package/dist/render/errors.js.map +1 -0
  210. package/dist/render/escape.d.ts +7 -0
  211. package/dist/render/escape.d.ts.map +1 -0
  212. package/dist/render/escape.js +27 -0
  213. package/dist/render/escape.js.map +1 -0
  214. package/dist/render/image-policy.d.ts +21 -0
  215. package/dist/render/image-policy.d.ts.map +1 -0
  216. package/dist/render/image-policy.js +62 -0
  217. package/dist/render/image-policy.js.map +1 -0
  218. package/dist/render/render-html.d.ts +28 -0
  219. package/dist/render/render-html.d.ts.map +1 -0
  220. package/dist/render/render-html.js +364 -0
  221. package/dist/render/render-html.js.map +1 -0
  222. package/dist/render/render-report.d.ts +23 -0
  223. package/dist/render/render-report.d.ts.map +1 -0
  224. package/dist/render/render-report.js +313 -0
  225. package/dist/render/render-report.js.map +1 -0
  226. package/dist/report/process.d.ts +48 -0
  227. package/dist/report/process.d.ts.map +1 -0
  228. package/dist/report/process.js +347 -0
  229. package/dist/report/process.js.map +1 -0
  230. package/dist/schema.d.ts +30 -0
  231. package/dist/schema.d.ts.map +1 -0
  232. package/dist/schema.js +8 -0
  233. package/dist/schema.js.map +1 -0
  234. package/dist/serialize.d.ts +13 -0
  235. package/dist/serialize.d.ts.map +1 -0
  236. package/dist/serialize.js +42 -0
  237. package/dist/serialize.js.map +1 -0
  238. package/dist/types.d.ts +335 -0
  239. package/dist/types.d.ts.map +1 -0
  240. package/dist/types.js +40 -0
  241. package/dist/types.js.map +1 -0
  242. package/dist/validate.d.ts +15 -0
  243. package/dist/validate.d.ts.map +1 -0
  244. package/dist/validate.js +977 -0
  245. package/dist/validate.js.map +1 -0
  246. package/package.json +97 -4
@@ -0,0 +1,182 @@
1
+ /**
2
+ * A saved jobs report. Record fields, branch, and dates come from JSON.
3
+ * The same template is rendered with `exampleJobsReportData`, `exampleJobsReportDataAlternate`,
4
+ * and `exampleJobsReportDataLarge`.
5
+ */
6
+ export declare const exampleJobsReportTemplate: {
7
+ schemaVersion: 1;
8
+ id: string;
9
+ name: string;
10
+ documentType: "report";
11
+ page: {
12
+ paperSize: "A4";
13
+ orientation: "portrait";
14
+ dimensions: import("../types.js").PageDimensions;
15
+ margins: {
16
+ top: number;
17
+ right: number;
18
+ bottom: number;
19
+ left: number;
20
+ };
21
+ layoutMode: "flow";
22
+ };
23
+ report: {
24
+ title: string;
25
+ description: string;
26
+ emptyText: string;
27
+ showPageNumber: true;
28
+ pageHeader: {
29
+ id: string;
30
+ type: "text";
31
+ binding: {
32
+ path: string;
33
+ prefix: string;
34
+ };
35
+ }[];
36
+ pageFooter: {
37
+ id: string;
38
+ type: "text";
39
+ binding: {
40
+ path: string;
41
+ prefix: string;
42
+ format: {
43
+ style: "date";
44
+ dateStyle: "medium";
45
+ };
46
+ };
47
+ }[];
48
+ reportHeader: ({
49
+ id: string;
50
+ type: "image";
51
+ alt: string;
52
+ binding: {
53
+ path: string;
54
+ fallback?: undefined;
55
+ };
56
+ } | {
57
+ id: string;
58
+ type: "text";
59
+ binding: {
60
+ path: string;
61
+ fallback: string;
62
+ };
63
+ alt?: undefined;
64
+ })[];
65
+ reportFooter: {
66
+ id: string;
67
+ type: "text";
68
+ text: string;
69
+ }[];
70
+ };
71
+ elements: {
72
+ id: string;
73
+ type: "reportTable";
74
+ position: {
75
+ x: number;
76
+ y: number;
77
+ };
78
+ dimensions: {
79
+ width: number;
80
+ height: number;
81
+ };
82
+ collectionPath: string;
83
+ emptyText: string;
84
+ showHeader: true;
85
+ showGrandTotal: true;
86
+ grandTotalLabel: string;
87
+ alternateRowColor: string;
88
+ padding: number;
89
+ groupBy: {
90
+ path: string;
91
+ label: string;
92
+ }[];
93
+ sort: {
94
+ path: string;
95
+ direction: "asc";
96
+ }[];
97
+ style: {
98
+ fontFamily: string;
99
+ fontSize: number;
100
+ color: string;
101
+ borderColor: string;
102
+ borderWidth: number;
103
+ borderStyle: "solid";
104
+ verticalAlign: "middle";
105
+ };
106
+ headerStyle: {
107
+ backgroundColor: string;
108
+ color: string;
109
+ fontWeight: "bold";
110
+ fontSize: number;
111
+ };
112
+ bodyStyle: {
113
+ fontSize: number;
114
+ };
115
+ groupStyle: {
116
+ backgroundColor: string;
117
+ color: string;
118
+ fontWeight: "bold";
119
+ };
120
+ subtotalStyle: {
121
+ backgroundColor: string;
122
+ fontWeight: "bold";
123
+ };
124
+ grandTotalStyle: {
125
+ backgroundColor: string;
126
+ color: string;
127
+ fontWeight: "bold";
128
+ };
129
+ oddRowColor: string;
130
+ evenRowColor: string;
131
+ headerHeight: number;
132
+ rowRules: {
133
+ path: string;
134
+ operator: "eq";
135
+ value: string;
136
+ style: {
137
+ backgroundColor: string;
138
+ };
139
+ }[];
140
+ columns: ({
141
+ id: string;
142
+ header: string;
143
+ binding: {
144
+ path: string;
145
+ format?: undefined;
146
+ };
147
+ width: number;
148
+ style?: undefined;
149
+ align?: undefined;
150
+ aggregate?: undefined;
151
+ } | {
152
+ id: string;
153
+ header: string;
154
+ binding: {
155
+ path: string;
156
+ format?: undefined;
157
+ };
158
+ width: number;
159
+ style: {
160
+ fontWeight: "medium";
161
+ };
162
+ align?: undefined;
163
+ aggregate?: undefined;
164
+ } | {
165
+ id: string;
166
+ header: string;
167
+ binding: {
168
+ path: string;
169
+ format: {
170
+ style: "currency";
171
+ minimumFractionDigits: number;
172
+ maximumFractionDigits: number;
173
+ };
174
+ };
175
+ width: number;
176
+ align: "right";
177
+ aggregate: "sum";
178
+ style?: undefined;
179
+ })[];
180
+ }[];
181
+ };
182
+ //# sourceMappingURL=jobs-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs-report.d.ts","sourceRoot":"","sources":["../../src/examples/jobs-report.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFV,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { SCHEMA_VERSION } from "../schema.js";
2
+ import { standardPageDimensions } from "../types.js";
3
+ const currency = { style: "currency", minimumFractionDigits: 2, maximumFractionDigits: 2 };
4
+ const date = { style: "date", dateStyle: "medium" };
5
+ /**
6
+ * A saved jobs report. Record fields, branch, and dates come from JSON.
7
+ * The same template is rendered with `exampleJobsReportData`, `exampleJobsReportDataAlternate`,
8
+ * and `exampleJobsReportDataLarge`.
9
+ */
10
+ export const exampleJobsReportTemplate = {
11
+ schemaVersion: SCHEMA_VERSION,
12
+ id: "jobs-report",
13
+ name: "Jobs Report",
14
+ documentType: "report",
15
+ page: {
16
+ paperSize: "A4",
17
+ orientation: "portrait",
18
+ dimensions: standardPageDimensions("A4", "portrait"),
19
+ margins: { top: 14, right: 12, bottom: 16, left: 12 },
20
+ layoutMode: "flow",
21
+ },
22
+ report: {
23
+ title: "Jobs Report",
24
+ description: "Jobs grouped by technician.",
25
+ emptyText: "No jobs to report.",
26
+ showPageNumber: true,
27
+ pageHeader: [
28
+ { id: "branch", type: "text", binding: { path: "report.branchName", prefix: "Branch " } },
29
+ ],
30
+ pageFooter: [
31
+ {
32
+ id: "generated",
33
+ type: "text",
34
+ binding: { path: "report.generatedAt", prefix: "Generated ", format: date },
35
+ },
36
+ ],
37
+ reportHeader: [
38
+ { id: "logo", type: "image", alt: "Company logo", binding: { path: "company.logo" } },
39
+ { id: "company", type: "text", binding: { path: "company.name", fallback: "Company" } },
40
+ ],
41
+ reportFooter: [{ id: "end", type: "text", text: "End of report" }],
42
+ },
43
+ elements: [
44
+ {
45
+ id: "jobs",
46
+ type: "reportTable",
47
+ position: { x: 12, y: 28 },
48
+ dimensions: { width: 186, height: 220 },
49
+ collectionPath: "data.jobs",
50
+ emptyText: "No jobs to report.",
51
+ showHeader: true,
52
+ showGrandTotal: true,
53
+ grandTotalLabel: "Grand total",
54
+ alternateRowColor: "#f4f7fb",
55
+ padding: 1.5,
56
+ groupBy: [{ path: "technician", label: "Technician" }],
57
+ sort: [
58
+ { path: "technician", direction: "asc" },
59
+ { path: "jobNumber", direction: "asc" },
60
+ ],
61
+ style: {
62
+ fontFamily: "Helvetica",
63
+ fontSize: 9,
64
+ color: "#1c2430",
65
+ borderColor: "#c5ced8",
66
+ borderWidth: 0.2,
67
+ borderStyle: "solid",
68
+ verticalAlign: "middle",
69
+ },
70
+ headerStyle: { backgroundColor: "#1f4e79", color: "#ffffff", fontWeight: "bold", fontSize: 9 },
71
+ bodyStyle: { fontSize: 9 },
72
+ groupStyle: { backgroundColor: "#e7eef6", color: "#1f4e79", fontWeight: "bold" },
73
+ subtotalStyle: { backgroundColor: "#eef3f8", fontWeight: "bold" },
74
+ grandTotalStyle: { backgroundColor: "#1f4e79", color: "#ffffff", fontWeight: "bold" },
75
+ oddRowColor: "#ffffff",
76
+ evenRowColor: "#f4f7fb",
77
+ headerHeight: 8,
78
+ rowRules: [{ path: "status", operator: "eq", value: "Pending", style: { backgroundColor: "#fff6e8" } }],
79
+ columns: [
80
+ { id: "job-number", header: "Job No.", binding: { path: "jobNumber" }, width: 1.2 },
81
+ { id: "customer", header: "Customer", binding: { path: "customer" }, width: 2.2 },
82
+ { id: "technician", header: "Technician", binding: { path: "technician" }, width: 1.4 },
83
+ { id: "status", header: "Status", binding: { path: "status" }, width: 1.2, style: { fontWeight: "medium" } },
84
+ {
85
+ id: "amount",
86
+ header: "Amount",
87
+ binding: { path: "amount", format: currency },
88
+ width: 1.3,
89
+ align: "right",
90
+ aggregate: "sum",
91
+ },
92
+ ],
93
+ },
94
+ ],
95
+ };
96
+ //# sourceMappingURL=jobs-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs-report.js","sourceRoot":"","sources":["../../src/examples/jobs-report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export { DOCUMENT_TYPES, isSupportedSchemaVersion, SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, } from "./schema.js";
2
+ export type { DocumentTemplate, DocumentType, InvoiceOptions, SupportedSchemaVersion } from "./schema.js";
3
+ export { AGGREGATES, DATE_FORMAT_STYLES, ELEMENT_TYPES, BORDER_STYLES, FONT_STYLES, FONT_WEIGHT_NAMES, ROW_RULE_OPERATORS, TEXT_DECORATIONS, VERTICAL_ALIGNS, LAYOUT_MODES, LENGTH_UNITS, PAGE_ORIENTATIONS, PAPER_SIZES, REPORT_BAND_TYPES, SORT_DIRECTIONS, PAPER_SIZES_MM, standardPageDimensions, TEXT_ALIGNS, VALUE_FORMAT_STYLES, } from "./types.js";
4
+ export type { Aggregate, DataBinding, DateFormatStyle, DocumentElement, ElementDimensions, ElementPosition, BorderEdge, BorderStyleName, BoxEdges, ElementStyle, ElementType, FontStyle, FontWeight, FontWeightName, ImageElement, ItemsColumn, ItemsElement, LayoutMode, LengthUnit, LineElement, PageConfiguration, PageDimensions, PageMargins, PageOrientation, PaperSize, PaperSizeName, RectangleElement, ReportBandEntry, ReportColumn, ReportGroupLevel, ReportImageBand, ReportOptions, RowRuleOperator, RowStyleRule, ReportSort, ReportTableElement, ReportTextBand, SortDirection, TextAlign, TextDecoration, VerticalAlign, TextElement, TotalsElement, TotalsRow, ValueFormat, ValueFormatStyle, } from "./types.js";
5
+ export { TemplateValidationError, validateTemplate } from "./validate.js";
6
+ export type { TemplateValidationIssue, TemplateValidationResult } from "./validate.js";
7
+ export { cloneTemplate, createTemplate, deserializeTemplate, serializeTemplate } from "./serialize.js";
8
+ export { isBindingPath, parseBindingPath } from "./binding-path.js";
9
+ export type { BindingPathResult } from "./binding-path.js";
10
+ export { formatBindingValue, parsePreviewData, resolveBinding, resolveElementData, resolveTemplateData, } from "./binding.js";
11
+ export type { BindingLookup, BindingMissReason, JsonPrimitive, JsonValue, PreviewDataResult, ImageResolutionSource, ResolvedDocument, ResolvedElement, ResolvedImageElement, ResolvedItemsElement, ResolvedTextElement, ResolvedTotalsElement, TextResolutionSource, } from "./binding.js";
12
+ export { InvoiceCalculationError, calculateInvoice } from "./invoice/calculate.js";
13
+ export type { InvoiceCalculation, InvoiceCalculationPolicy, InvoiceLineResult, InvoiceTotals, } from "./invoice/calculate.js";
14
+ export { prepareInvoiceContext } from "./invoice/context.js";
15
+ export { formatScalar } from "./invoice/format.js";
16
+ export { BLANK_GROUP_LABEL, prepareReportTable, ReportProcessingError } from "./report/process.js";
17
+ export type { PreparedReportTable, ReportViewColumn, ReportViewRow } from "./report/process.js";
18
+ export { RenderError } from "./render/errors.js";
19
+ export { renderToHTML } from "./render/render-html.js";
20
+ export type { RenderOptions } from "./render/render-html.js";
21
+ export type { ImageSourcePolicy } from "./render/image-policy.js";
22
+ export { exampleJobsReportTemplate } from "./examples/jobs-report.js";
23
+ export { exampleJobsReportData, exampleJobsReportDataAlternate, exampleJobsReportDataEmpty, exampleJobsReportDataLarge, } from "./examples/jobs-report-data.js";
24
+ export { exampleFullInvoiceTemplate } from "./examples/full-invoice.js";
25
+ export { exampleFullInvoiceData, exampleFullInvoiceDataAlternate } from "./examples/full-invoice-data.js";
26
+ export { exampleBoundInvoiceTemplate } from "./examples/bound-invoice.js";
27
+ export { exampleInvoiceData, exampleInvoiceDataAlternate } from "./examples/invoice-data.js";
28
+ export { exampleInvoiceTemplate } from "./examples/invoice.js";
29
+ export { activateLicense, configureLicense, createBrowserLicenseStore, createHttpLicenseProvider, createLicenseClient, createMemoryLicenseStore, createMockLicenseProvider, deactivateLicense, entitlementsForPlan, getEntitlements, getLicenseStatus, hasFeature, inspectDocumentCapabilities, isLicenseFeature, LICENSE_FEATURES, LICENSE_STATUSES, LICENSE_STORAGE_KEY, LicenseClient, LicenseError, LicenseNetworkError, redactSecret, resetLicenseConfiguration, verifyLicenseToken, } from "./license/index.js";
30
+ export type { DocumentCapabilities, EntitlementReport, HttpLicenseProviderOptions, LicenseCallOptions, LicenseClaims, LicenseClientConfig, LicenseEnforcement, LicenseErrorCode, LicenseFeature, LicensePlanMap, LicenseProvider, LicenseProviderContext, LicensePublicKey, LicenseServiceResult, LicenseServiceStatus, LicenseSnapshot, LicenseStatus, LicenseStore, MockLicenseHandlers, StoredLicense, TokenVerification, } from "./license/index.js";
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ export { DOCUMENT_TYPES, isSupportedSchemaVersion, SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, } from "./schema.js";
2
+ export { AGGREGATES, DATE_FORMAT_STYLES, ELEMENT_TYPES, BORDER_STYLES, FONT_STYLES, FONT_WEIGHT_NAMES, ROW_RULE_OPERATORS, TEXT_DECORATIONS, VERTICAL_ALIGNS, LAYOUT_MODES, LENGTH_UNITS, PAGE_ORIENTATIONS, PAPER_SIZES, REPORT_BAND_TYPES, SORT_DIRECTIONS, PAPER_SIZES_MM, standardPageDimensions, TEXT_ALIGNS, VALUE_FORMAT_STYLES, } from "./types.js";
3
+ export { TemplateValidationError, validateTemplate } from "./validate.js";
4
+ export { cloneTemplate, createTemplate, deserializeTemplate, serializeTemplate } from "./serialize.js";
5
+ export { isBindingPath, parseBindingPath } from "./binding-path.js";
6
+ export { formatBindingValue, parsePreviewData, resolveBinding, resolveElementData, resolveTemplateData, } from "./binding.js";
7
+ export { InvoiceCalculationError, calculateInvoice } from "./invoice/calculate.js";
8
+ export { prepareInvoiceContext } from "./invoice/context.js";
9
+ export { formatScalar } from "./invoice/format.js";
10
+ export { BLANK_GROUP_LABEL, prepareReportTable, ReportProcessingError } from "./report/process.js";
11
+ export { RenderError } from "./render/errors.js";
12
+ export { renderToHTML } from "./render/render-html.js";
13
+ export { exampleJobsReportTemplate } from "./examples/jobs-report.js";
14
+ export { exampleJobsReportData, exampleJobsReportDataAlternate, exampleJobsReportDataEmpty, exampleJobsReportDataLarge, } from "./examples/jobs-report-data.js";
15
+ export { exampleFullInvoiceTemplate } from "./examples/full-invoice.js";
16
+ export { exampleFullInvoiceData, exampleFullInvoiceDataAlternate } from "./examples/full-invoice-data.js";
17
+ export { exampleBoundInvoiceTemplate } from "./examples/bound-invoice.js";
18
+ export { exampleInvoiceData, exampleInvoiceDataAlternate } from "./examples/invoice-data.js";
19
+ export { exampleInvoiceTemplate } from "./examples/invoice.js";
20
+ export { activateLicense, configureLicense, createBrowserLicenseStore, createHttpLicenseProvider, createLicenseClient, createMemoryLicenseStore, createMockLicenseProvider, deactivateLicense, entitlementsForPlan, getEntitlements, getLicenseStatus, hasFeature, inspectDocumentCapabilities, isLicenseFeature, LICENSE_FEATURES, LICENSE_STATUSES, LICENSE_STORAGE_KEY, LicenseClient, LicenseError, LicenseNetworkError, redactSecret, resetLicenseConfiguration, verifyLicenseToken, } from "./license/index.js";
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAkDpB,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGpE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAiBtB,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAOnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Invoice arithmetic in minor units.
3
+ * This is a configurable policy, not a claim of tax compliance for any country.
4
+ *
5
+ * Order of operations:
6
+ * 1. Line gross = quantity × rate, rounded to `fractionDigits`.
7
+ * 2. Line discount, when the item has one, is applied to that gross amount.
8
+ * 3. Subtotal is the sum of line amounts after line discounts.
9
+ * 4. The invoice discount is applied once to that subtotal.
10
+ * 5. The invoice discount is shared across lines in proportion to their net amounts.
11
+ * 6. Tax is calculated on each line's discounted taxable amount.
12
+ * An item tax rate wins. Otherwise `invoice.taxRate` is used. Otherwise tax is 0.
13
+ * 7. Grand total = subtotal − invoice discount + tax.
14
+ *
15
+ * Rounding is half away from zero at each monetary step.
16
+ * Quantity totals use 6 decimal places. Values at or above 1e12 are rejected.
17
+ * Negative quantities, rates, discounts, and tax rates are rejected.
18
+ * Missing or non-numeric quantities and rates throw; they are not treated as zero.
19
+ */
20
+ export declare class InvoiceCalculationError extends Error {
21
+ readonly code: string;
22
+ constructor(code: string, message: string);
23
+ }
24
+ export interface InvoiceCalculationPolicy {
25
+ /** Decimal places for money. Default 2. Allowed range is 0 through 6. */
26
+ fractionDigits?: number;
27
+ }
28
+ export interface InvoiceLineResult {
29
+ description: string;
30
+ quantity: number;
31
+ unit: string;
32
+ rate: number;
33
+ grossAmount: number;
34
+ discountAmount: number;
35
+ /** Amount after the line discount and before the invoice discount and tax. */
36
+ netAmount: number;
37
+ /** Same as `netAmount`. This is the value bound as `lineTotal`. */
38
+ lineTotal: number;
39
+ invoiceDiscountShare: number;
40
+ taxableAmount: number;
41
+ taxRate: number;
42
+ taxAmount: number;
43
+ }
44
+ export interface InvoiceTotals {
45
+ subtotal: number;
46
+ /** Invoice-level discount only. Line discounts are already in the subtotal. */
47
+ discountAmount: number;
48
+ taxableAmount: number;
49
+ taxTotal: number;
50
+ grandTotal: number;
51
+ totalQuantity: number;
52
+ }
53
+ export interface InvoiceCalculation {
54
+ fractionDigits: number;
55
+ lines: InvoiceLineResult[];
56
+ totals: InvoiceTotals;
57
+ }
58
+ export declare function calculateInvoice(data: unknown, policy?: InvoiceCalculationPolicy): InvoiceCalculation;
59
+ //# sourceMappingURL=calculate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate.d.ts","sourceRoot":"","sources":["../../src/invoice/calculate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAM1C;AAED,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;CACvB;AAKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAE,wBAA6B,GAAG,kBAAkB,CA4CzG"}