@open-nav/core 0.1.0 → 0.1.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.
@@ -10,7 +10,8 @@ import type { CryptoProvider } from './provider.js';
10
10
  *
11
11
  * @example
12
12
  * ```ts
13
- * import { setCryptoProvider, createWebCryptoProvider } from '@open-nav/core';
13
+ * import { setCryptoProvider } from '@open-nav/core';
14
+ * import { createWebCryptoProvider } from '@open-nav/core/web';
14
15
  * setCryptoProvider(createWebCryptoProvider());
15
16
  * ```
16
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"web-provider.d.ts","sourceRoot":"","sources":["../../src/crypto/web-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,IAAI,cAAc,CAWxD"}
1
+ {"version":3,"file":"web-provider.d.ts","sourceRoot":"","sources":["../../src/crypto/web-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,IAAI,cAAc,CAWxD"}
@@ -12,7 +12,8 @@ import { ecb } from '@noble/ciphers/aes';
12
12
  *
13
13
  * @example
14
14
  * ```ts
15
- * import { setCryptoProvider, createWebCryptoProvider } from '@open-nav/core';
15
+ * import { setCryptoProvider } from '@open-nav/core';
16
+ * import { createWebCryptoProvider } from '@open-nav/core/web';
16
17
  * setCryptoProvider(createWebCryptoProvider());
17
18
  * ```
18
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"web-provider.js","sourceRoot":"","sources":["../../src/crypto/web-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,gBAAgB,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7F,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACrC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"web-provider.js","sourceRoot":"","sources":["../../src/crypto/web-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGzC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,gBAAgB,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7F,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACrC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,6 @@ export * from './errors.js';
3
3
  export * from './time.js';
4
4
  export * from './crypto/provider.js';
5
5
  export * from './crypto/node-provider.js';
6
- export * from './crypto/web-provider.js';
7
6
  export * from './crypto/hash.js';
8
7
  export * from './crypto/signature.js';
9
8
  export * from './crypto/token.js';
@@ -12,6 +11,7 @@ export * from './xml/descriptor.js';
12
11
  export * from './xml/read.js';
13
12
  export * from './xml/write.js';
14
13
  export * from './invoice/payload.js';
14
+ export * from './invoice/build.js';
15
15
  export * from './money/decimal.js';
16
16
  export * from './money/summary.js';
17
17
  export * from './validation/issue.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,8 @@ export * from './errors.js';
3
3
  export * from './time.js';
4
4
  export * from './crypto/provider.js';
5
5
  export * from './crypto/node-provider.js';
6
- export * from './crypto/web-provider.js';
6
+ // The Web provider lives at the `@open-nav/core/web` entry (see ./web.ts), so
7
+ // the main entry stays free of any @noble/* code for Node/Bun/Deno consumers.
7
8
  export * from './crypto/hash.js';
8
9
  export * from './crypto/signature.js';
9
10
  export * from './crypto/token.js';
@@ -12,6 +13,7 @@ export * from './xml/descriptor.js';
12
13
  export * from './xml/read.js';
13
14
  export * from './xml/write.js';
14
15
  export * from './invoice/payload.js';
16
+ export * from './invoice/build.js';
15
17
  export * from './money/decimal.js';
16
18
  export * from './money/summary.js';
17
19
  export * from './validation/issue.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,8EAA8E;AAC9E,8EAA8E;AAC9E,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { InvoiceData, UnitOfMeasureType } from '../generated/types.js';
2
+ export interface BuildAddress {
3
+ /** ISO 3166 alpha-2. Defaults to `HU`. */
4
+ countryCode?: string;
5
+ postalCode: string;
6
+ city: string;
7
+ streetName: string;
8
+ /** e.g. `utca`, `sugárút`. */
9
+ publicPlaceCategory: string;
10
+ /** House number. */
11
+ number: string;
12
+ }
13
+ export interface BuildParty {
14
+ name: string;
15
+ /** 8- or 11-digit Hungarian tax number; parsed into its parts. */
16
+ taxNumber?: string;
17
+ address: BuildAddress;
18
+ }
19
+ export interface BuildLine {
20
+ description: string;
21
+ quantity: number | string;
22
+ /** Unit of measure. Defaults to `PIECE`. */
23
+ unit?: UnitOfMeasureType;
24
+ /** Net unit price, in the invoice currency. */
25
+ unitPrice: number | string;
26
+ /** VAT rate as a fraction, e.g. `0.27`. */
27
+ vatPercentage: number | string;
28
+ /** Defaults to `PRODUCT`. */
29
+ nature?: 'PRODUCT' | 'SERVICE' | 'OTHER';
30
+ }
31
+ export interface BuildInvoiceInput {
32
+ invoiceNumber: string;
33
+ /** Issue date, `yyyy-mm-dd`. */
34
+ issueDate: string;
35
+ /** Fulfilment date, `yyyy-mm-dd`. Defaults to the issue date. */
36
+ deliveryDate?: string;
37
+ /** Payment due date, `yyyy-mm-dd`. */
38
+ paymentDate?: string;
39
+ /** ISO 4217. Defaults to `HUF`. */
40
+ currency?: string;
41
+ /** Rate to HUF. Required for a non-HUF invoice; defaults to `1`. */
42
+ exchangeRate?: number | string;
43
+ /** Defaults to `PAPER`. */
44
+ appearance?: 'PAPER' | 'ELECTRONIC' | 'EDI' | 'UNKNOWN';
45
+ paymentMethod?: 'TRANSFER' | 'CASH' | 'CARD' | 'VOUCHER' | 'OTHER';
46
+ supplier: BuildParty & {
47
+ bankAccount?: string;
48
+ };
49
+ customer: BuildParty & {
50
+ /** Defaults to `DOMESTIC` when a tax number is given, else `PRIVATE_PERSON`. */
51
+ vatStatus?: 'DOMESTIC' | 'OTHER' | 'PRIVATE_PERSON';
52
+ };
53
+ lines: BuildLine[];
54
+ }
55
+ /** Build a schema-valid {@link InvoiceData} for a normal invoice. */
56
+ export declare function buildInvoice(input: BuildInvoiceInput): InvoiceData;
57
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/invoice/build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAyB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAoBnG,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,2BAA2B;IAC3B,UAAU,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;IACxD,aAAa,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACnE,QAAQ,EAAE,UAAU,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,QAAQ,EAAE,UAAU,GAAG;QACrB,gFAAgF;QAChF,SAAS,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,gBAAgB,CAAC;KACrD,CAAC;IACF,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,WAAW,CA0FlE"}
@@ -0,0 +1,117 @@
1
+ import { Decimal } from '../money/decimal.js';
2
+ import { computeInvoiceSummary } from '../money/summary.js';
3
+ import { parseTaxNumber } from '../validation/tax-number.js';
4
+ /**
5
+ * A convenience builder for the common invoice.
6
+ *
7
+ * Constructing an {@link InvoiceData} by hand means filling in ~50 nested
8
+ * fields across four namespaces. This assembles a schema-valid document for the
9
+ * ordinary case — a normal invoice with priced lines — from a flat input,
10
+ * computing each line's net, VAT and gross and the whole invoice summary so the
11
+ * arithmetic always reconciles.
12
+ *
13
+ * It deliberately does not cover the entire schema (no aggregate or simplified
14
+ * invoices, product-fee lines, margin schemes, and so on). For those, build the
15
+ * {@link InvoiceData} directly — this returns exactly that type, so a caller can
16
+ * take the result and adjust it. Validate the result with `validateInvoice`
17
+ * before sending, as with any invoice.
18
+ */
19
+ const MONETARY_SCALE = 2;
20
+ /** Build a schema-valid {@link InvoiceData} for a normal invoice. */
21
+ export function buildInvoice(input) {
22
+ if (input.lines.length === 0) {
23
+ throw new Error('buildInvoice requires at least one line');
24
+ }
25
+ const currency = input.currency ?? 'HUF';
26
+ const rate = Decimal.from(input.exchangeRate ?? 1);
27
+ const deliveryDate = input.deliveryDate ?? input.issueDate;
28
+ const toHuf = (amount) => amount.multiply(rate).round(MONETARY_SCALE).toString();
29
+ const line = input.lines.map((entry, index) => {
30
+ const quantity = Decimal.from(entry.quantity);
31
+ const unitPrice = Decimal.from(entry.unitPrice);
32
+ const vatPercentage = Decimal.from(entry.vatPercentage);
33
+ const net = quantity.multiply(unitPrice).round(MONETARY_SCALE);
34
+ const vat = net.multiply(vatPercentage).round(MONETARY_SCALE);
35
+ const gross = net.add(vat);
36
+ return {
37
+ lineNumber: index + 1,
38
+ lineExpressionIndicator: true,
39
+ lineNatureIndicator: entry.nature ?? 'PRODUCT',
40
+ lineDescription: entry.description,
41
+ quantity: quantity.toString(),
42
+ unitOfMeasure: entry.unit ?? 'PIECE',
43
+ unitPrice: unitPrice.toString(),
44
+ unitPriceHUF: toHuf(unitPrice),
45
+ lineAmountsNormal: {
46
+ lineNetAmountData: {
47
+ lineNetAmount: net.toString(),
48
+ lineNetAmountHUF: toHuf(net),
49
+ },
50
+ lineVatRate: { vatPercentage: vatPercentage.toString() },
51
+ lineVatData: {
52
+ lineVatAmount: vat.toString(),
53
+ lineVatAmountHUF: toHuf(vat),
54
+ },
55
+ lineGrossAmountData: {
56
+ lineGrossAmountNormal: gross.toString(),
57
+ lineGrossAmountNormalHUF: toHuf(gross),
58
+ },
59
+ },
60
+ };
61
+ });
62
+ const invoiceLines = { mergedItemIndicator: false, line };
63
+ const customerHasTaxNumber = input.customer.taxNumber !== undefined;
64
+ const customerVatStatus = input.customer.vatStatus ?? (customerHasTaxNumber ? 'DOMESTIC' : 'PRIVATE_PERSON');
65
+ const invoiceHead = {
66
+ supplierInfo: {
67
+ supplierTaxNumber: parseTaxNumber(requireTaxNumber(input.supplier.taxNumber, 'supplier')),
68
+ supplierName: input.supplier.name,
69
+ supplierAddress: { detailedAddress: address(input.supplier.address) },
70
+ ...(input.supplier.bankAccount
71
+ ? { supplierBankAccountNumber: input.supplier.bankAccount }
72
+ : {}),
73
+ },
74
+ customerInfo: {
75
+ customerVatStatus,
76
+ ...(customerHasTaxNumber && customerVatStatus !== 'PRIVATE_PERSON'
77
+ ? { customerVatData: { customerTaxNumber: parseTaxNumber(input.customer.taxNumber) } }
78
+ : {}),
79
+ customerName: input.customer.name,
80
+ customerAddress: { detailedAddress: address(input.customer.address) },
81
+ },
82
+ invoiceDetail: {
83
+ invoiceCategory: 'NORMAL',
84
+ invoiceDeliveryDate: deliveryDate,
85
+ currencyCode: currency,
86
+ exchangeRate: rate.toString(),
87
+ ...(input.paymentMethod ? { paymentMethod: input.paymentMethod } : {}),
88
+ ...(input.paymentDate ? { paymentDate: input.paymentDate } : {}),
89
+ invoiceAppearance: input.appearance ?? 'PAPER',
90
+ },
91
+ };
92
+ // Compute the summary from the finished lines so it always reconciles.
93
+ const invoiceSummary = computeInvoiceSummary({ invoiceHead, invoiceLines });
94
+ const invoice = { invoiceHead, invoiceLines, invoiceSummary };
95
+ return {
96
+ invoiceNumber: input.invoiceNumber,
97
+ invoiceIssueDate: input.issueDate,
98
+ completenessIndicator: false,
99
+ invoiceMain: { invoice },
100
+ };
101
+ }
102
+ function address(input) {
103
+ return {
104
+ countryCode: input.countryCode ?? 'HU',
105
+ postalCode: input.postalCode,
106
+ city: input.city,
107
+ streetName: input.streetName,
108
+ publicPlaceCategory: input.publicPlaceCategory,
109
+ number: input.number,
110
+ };
111
+ }
112
+ function requireTaxNumber(value, role) {
113
+ if (!value)
114
+ throw new Error(`buildInvoice requires the ${role} tax number`);
115
+ return value;
116
+ }
117
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/invoice/build.ts"],"names":[],"mappings":"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"}
@@ -26,10 +26,12 @@ export declare class Decimal {
26
26
  /**
27
27
  * Build a decimal from an exact representation.
28
28
  *
29
- * Numbers are accepted for convenience but only when they are integers or
30
- * survive a round trip through their shortest decimal form; anything else
31
- * has already lost precision and is rejected rather than silently carried
32
- * forward.
29
+ * A number is accepted for convenience and taken as its shortest
30
+ * round-trippable decimal string, so `Decimal.from(1.5)` is `1.5`; a
31
+ * non-finite number is rejected. But a float cannot represent every decimal
32
+ * exactly, and a value whose magnitude renders in exponential notation (such
33
+ * as `1e-7` or `1e21`) is not accepted as a number. Pass such values — and
34
+ * any amount where exactness matters — as a string.
33
35
  */
34
36
  static from(value: Decimal | string | number | bigint): Decimal;
35
37
  private static parse;
@@ -1 +1 @@
1
- {"version":3,"file":"decimal.d.ts","sourceRoot":"","sources":["../../src/money/decimal.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AAInE;;;;;;;;;GASG;AACH,qBAAa,OAAO;IAClB,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO;IAKP,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAsB;IAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAsB;IAEzC;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAY/D,OAAO,CAAC,MAAM,CAAC,KAAK;IAQpB,4DAA4D;IAC5D,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,OAAO;IAS/D,uCAAuC;IACvC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,OAAO;IAI7D,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAK9C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAKnD,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAKnD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,OAAO;IAUhG,MAAM,IAAI,OAAO;IAIjB,GAAG,IAAI,OAAO;IAId,kBAAkB;IAClB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAKrD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAIjD,MAAM,IAAI,OAAO;IAIjB,UAAU,IAAI,OAAO;IAIrB,uEAAuE;IACvE,WAAW,IAAI,MAAM;IAKrB,uDAAuD;IACvD,QAAQ,IAAI,MAAM;IAUlB,sDAAsD;IACtD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,MAAM;IAI9D,+CAA+C;IAC/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;CAGjB;AAED,yDAAyD;AACzD,wBAAgB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAErE"}
1
+ {"version":3,"file":"decimal.d.ts","sourceRoot":"","sources":["../../src/money/decimal.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AAInE;;;;;;;;;GASG;AACH,qBAAa,OAAO;IAClB,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO;IAKP,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAsB;IAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAsB;IAEzC;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAY/D,OAAO,CAAC,MAAM,CAAC,KAAK;IAQpB,4DAA4D;IAC5D,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,OAAO;IAS/D,uCAAuC;IACvC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,OAAO;IAI7D,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAK9C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAKnD,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAKnD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,OAAO;IAUhG,MAAM,IAAI,OAAO;IAIjB,GAAG,IAAI,OAAO;IAId,kBAAkB;IAClB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAKrD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAIjD,MAAM,IAAI,OAAO;IAIjB,UAAU,IAAI,OAAO;IAIrB,uEAAuE;IACvE,WAAW,IAAI,MAAM;IAKrB,uDAAuD;IACvD,QAAQ,IAAI,MAAM;IAUlB,sDAAsD;IACtD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,MAAM;IAI9D,+CAA+C;IAC/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;CAGjB;AAED,yDAAyD;AACzD,wBAAgB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAErE"}
@@ -24,10 +24,12 @@ export class Decimal {
24
24
  /**
25
25
  * Build a decimal from an exact representation.
26
26
  *
27
- * Numbers are accepted for convenience but only when they are integers or
28
- * survive a round trip through their shortest decimal form; anything else
29
- * has already lost precision and is rejected rather than silently carried
30
- * forward.
27
+ * A number is accepted for convenience and taken as its shortest
28
+ * round-trippable decimal string, so `Decimal.from(1.5)` is `1.5`; a
29
+ * non-finite number is rejected. But a float cannot represent every decimal
30
+ * exactly, and a value whose magnitude renders in exponential notation (such
31
+ * as `1e-7` or `1e21`) is not accepted as a number. Pass such values — and
32
+ * any amount where exactness matters — as a string.
31
33
  */
32
34
  static from(value) {
33
35
  if (value instanceof Decimal)
@@ -1 +1 @@
1
- {"version":3,"file":"decimal.js","sourceRoot":"","sources":["../../src/money/decimal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decimal.js","sourceRoot":"","sources":["../../src/money/decimal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUlD,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,OAAO,OAAO;IAClB,kDAAkD;IACzC,KAAK,CAAS;IACvB,gCAAgC;IACvB,KAAK,CAAS;IAEvB,YAAoB,KAAa,EAAE,KAAa;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAU,IAAI,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAU,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CAAC,KAAyC;QACnD,IAAI,KAAK,YAAY,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,MAAM,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAC3D,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,4DAA4D;IAC5D,OAAO,CAAC,KAAa,EAAE,OAAqB,SAAS;QACnD,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QAClD,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,KAAa,EAAE,OAAqB,SAAS;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,KAAgC;QAClC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,KAAgC;QACvC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,KAAgC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAgC,EAAE,KAAa,EAAE,OAAqB,SAAS;QACpF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;YAAE,MAAM,OAAO,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;QAC1E,yEAAyE;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACvE,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5E,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,KAAgC;QACtC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,KAAgC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,uEAAuE;IACvE,WAAW;QACT,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvE,OAAO,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,uDAAuD;IACvD,QAAQ;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC;IACtD,CAAC;IAED,sDAAsD;IACtD,OAAO,CAAC,KAAa,EAAE,OAAqB,SAAS;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,+CAA+C;IAC/C,QAAQ;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;;AAGH,yDAAyD;AACzD,MAAM,UAAU,GAAG,CAAC,MAAwC;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAU,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,KAAK,CAAC,IAAa,EAAE,KAAc;IAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO;QACL,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9C,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAChD,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB,EAAE,WAAmB,EAAE,IAAkB;IAC/E,MAAM,QAAQ,GAAG,SAAS,GAAG,EAAE,KAAK,WAAW,GAAG,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,cAAc,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IACrE,MAAM,QAAQ,GAAG,YAAY,GAAG,cAAc,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC;IAEhD,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,SAAS,GAAG,EAAE,CAAC;QAC7B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,MAAM;YACR,KAAK,IAAI;gBACP,OAAO,IAAI,EAAE,CAAC;gBACd,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,KAAK,GAAG,cAAc,IAAI,CAAC,KAAK,KAAK,cAAc,IAAI,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;oBACjF,OAAO,IAAI,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM;YACR;gBACE,sCAAsC;gBACtC,IAAI,KAAK,IAAI,cAAc;oBAAE,OAAO,IAAI,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACvC,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,OAAe;IAC7C,OAAO,IAAI,kBAAkB,CAAC,iBAAiB,EAAE;QAC/C,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,EAAE;KACtF,CAAC,CAAC;AACL,CAAC"}
package/dist/time.d.ts CHANGED
@@ -11,6 +11,16 @@ export declare function toHeaderTimestamp(value?: Date | string): string;
11
11
  * request, otherwise NAV rejects the signature.
12
12
  */
13
13
  export declare function toSignatureTimestamp(value?: Date | string): string;
14
+ /**
15
+ * The current date in Hungary (Europe/Budapest), as `yyyy-MM-dd`.
16
+ *
17
+ * NAV's `date` fields are Hungarian calendar dates, so a question like "is this
18
+ * invoice dated in the future" must be judged against the Hungarian date, not
19
+ * UTC: near midnight the two differ, and a UTC comparison would reject an
20
+ * invoice that is validly dated today. The zone carries its own DST, so this is
21
+ * correct across the CET/CEST switch.
22
+ */
23
+ export declare function hungarianToday(now?: Date): string;
14
24
  /** Render a NAV `date` field (`xs:date`) as `yyyy-MM-dd` in UTC. */
15
25
  export declare function toNavDate(value?: Date | string): string;
16
26
  //# sourceMappingURL=time.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,IAAI,GAAG,MAAmB,GAAG,MAAM,CAE3E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,IAAI,GAAG,MAAmB,GAAG,MAAM,CAI9E;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,KAAK,GAAE,IAAI,GAAG,MAAmB,GAAG,MAAM,CAKnE"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,IAAI,GAAG,MAAmB,GAAG,MAAM,CAE3E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,IAAI,GAAG,MAAmB,GAAG,MAAM,CAI9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,IAAiB,GAAG,MAAM,CAO7D;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,KAAK,GAAE,IAAI,GAAG,MAAmB,GAAG,MAAM,CAKnE"}
package/dist/time.js CHANGED
@@ -18,6 +18,23 @@ export function toSignatureTimestamp(value = new Date()) {
18
18
  // 2026-09-03T14:25:11.482Z -> 20260903142511
19
19
  return `${iso.slice(0, 4)}${iso.slice(5, 7)}${iso.slice(8, 10)}${iso.slice(11, 13)}${iso.slice(14, 16)}${iso.slice(17, 19)}`;
20
20
  }
21
+ /**
22
+ * The current date in Hungary (Europe/Budapest), as `yyyy-MM-dd`.
23
+ *
24
+ * NAV's `date` fields are Hungarian calendar dates, so a question like "is this
25
+ * invoice dated in the future" must be judged against the Hungarian date, not
26
+ * UTC: near midnight the two differ, and a UTC comparison would reject an
27
+ * invoice that is validly dated today. The zone carries its own DST, so this is
28
+ * correct across the CET/CEST switch.
29
+ */
30
+ export function hungarianToday(now = new Date()) {
31
+ return new Intl.DateTimeFormat('en-CA', {
32
+ timeZone: 'Europe/Budapest',
33
+ year: 'numeric',
34
+ month: '2-digit',
35
+ day: '2-digit',
36
+ }).format(now);
37
+ }
21
38
  /** Render a NAV `date` field (`xs:date`) as `yyyy-MM-dd` in UTC. */
22
39
  export function toNavDate(value = new Date()) {
23
40
  if (typeof value === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(value)) {
package/dist/time.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAuB,IAAI,IAAI,EAAE;IACjE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAuB,IAAI,IAAI,EAAE;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,6CAA6C;IAC7C,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/H,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,QAAuB,IAAI,IAAI,EAAE;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,MAAM,CAAC,KAAoB;IAClC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE;YAChD;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,+BAA+B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;aAChE;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAuB,IAAI,IAAI,EAAE;IACjE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAuB,IAAI,IAAI,EAAE;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,6CAA6C;IAC7C,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/H,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAAY,IAAI,IAAI,EAAE;IACnD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QACtC,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;KACf,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,QAAuB,IAAI,IAAI,EAAE;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,MAAM,CAAC,KAAoB;IAClC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE;YAChD;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,+BAA+B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;aAChE;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/validation/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAsC,MAAM,uBAAuB,CAAC;AAI7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD;;;;;;;;GAQG;AAEH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,uVAYtB,CAAC;AAEX,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,cAAc,EACzB,OAAO,GAAE,wBAA6B,GACrC,IAAI,CA+BN"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/validation/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAsC,MAAM,uBAAuB,CAAC;AAK7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD;;;;;;;;GAQG;AAEH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,uVAYtB,CAAC;AAEX,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,cAAc,EACzB,OAAO,GAAE,wBAA6B,GACrC,IAAI,CA+BN"}
@@ -1,5 +1,6 @@
1
1
  import { Decimal } from '../money/decimal.js';
2
2
  import { checkInvoiceSummary, hasAmountBearingLines } from '../money/summary.js';
3
+ import { hungarianToday } from '../time.js';
3
4
  import { isValidCountyCode, isValidTaxpayerId } from './tax-number.js';
4
5
  /** Current Hungarian VAT rates, for a plausibility warning only. */
5
6
  const KNOWN_VAT_RATES = ['0', '0.05', '0.18', '0.27'];
@@ -43,7 +44,7 @@ export function collectBusinessIssues(document, collector, context = {}) {
43
44
  }
44
45
  }
45
46
  function checkDocument(document, collector, context) {
46
- const today = context.today ?? new Date().toISOString().slice(0, 10);
47
+ const today = context.today ?? hungarianToday();
47
48
  if (document.invoiceIssueDate > today) {
48
49
  collector.error('INCORRECT_DATE_INVOICE_ISSUE_DATE_LATE', 'invoiceIssueDate', `is in the future: ${document.invoiceIssueDate} (today is ${today})`);
49
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/validation/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/validation/rules.ts"],"names":[],"mappings":"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"}
package/dist/web.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The Web crypto provider, on its own entry point.
3
+ *
4
+ * It is kept out of the package's main entry deliberately: the main entry then
5
+ * pulls in no `@noble/*` code, so a Node, Bun or Deno consumer — whose built-in
6
+ * `node:crypto` already covers everything the library needs — never bundles the
7
+ * pure-JS fallback. Import it only where `node:crypto` lacks SHA-3, notably
8
+ * Cloudflare Workers:
9
+ *
10
+ * ```ts
11
+ * import { setCryptoProvider } from '@open-nav/core';
12
+ * import { createWebCryptoProvider } from '@open-nav/core/web';
13
+ *
14
+ * setCryptoProvider(createWebCryptoProvider());
15
+ * ```
16
+ *
17
+ * @module
18
+ */
19
+ export { createWebCryptoProvider } from './crypto/web-provider.js';
20
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/web.js ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The Web crypto provider, on its own entry point.
3
+ *
4
+ * It is kept out of the package's main entry deliberately: the main entry then
5
+ * pulls in no `@noble/*` code, so a Node, Bun or Deno consumer — whose built-in
6
+ * `node:crypto` already covers everything the library needs — never bundles the
7
+ * pure-JS fallback. Import it only where `node:crypto` lacks SHA-3, notably
8
+ * Cloudflare Workers:
9
+ *
10
+ * ```ts
11
+ * import { setCryptoProvider } from '@open-nav/core';
12
+ * import { createWebCryptoProvider } from '@open-nav/core/web';
13
+ *
14
+ * setCryptoProvider(createWebCryptoProvider());
15
+ * ```
16
+ *
17
+ * @module
18
+ */
19
+ export { createWebCryptoProvider } from './crypto/web-provider.js';
20
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-nav/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Types, invoice building, XML serialisation and cryptography for the Hungarian NAV Online Számla API",
5
5
  "keywords": [
6
6
  "nav",
@@ -29,6 +29,11 @@
29
29
  "import": "./dist/index.js",
30
30
  "default": "./dist/index.js"
31
31
  },
32
+ "./web": {
33
+ "types": "./dist/web.d.ts",
34
+ "import": "./dist/web.js",
35
+ "default": "./dist/web.js"
36
+ },
32
37
  "./package.json": "./package.json"
33
38
  },
34
39
  "files": [
@@ -47,7 +52,7 @@
47
52
  "dependencies": {
48
53
  "@noble/ciphers": "^1.2.1",
49
54
  "@noble/hashes": "^1.7.1",
50
- "fast-xml-parser": "^4.5.1"
55
+ "fast-xml-parser": "^5.7.0"
51
56
  },
52
57
  "scripts": {
53
58
  "build": "tsc -b"
@@ -14,7 +14,8 @@ import type { CryptoProvider } from './provider.js';
14
14
  *
15
15
  * @example
16
16
  * ```ts
17
- * import { setCryptoProvider, createWebCryptoProvider } from '@open-nav/core';
17
+ * import { setCryptoProvider } from '@open-nav/core';
18
+ * import { createWebCryptoProvider } from '@open-nav/core/web';
18
19
  * setCryptoProvider(createWebCryptoProvider());
19
20
  * ```
20
21
  */
package/src/index.ts CHANGED
@@ -3,7 +3,8 @@ export * from './errors.js';
3
3
  export * from './time.js';
4
4
  export * from './crypto/provider.js';
5
5
  export * from './crypto/node-provider.js';
6
- export * from './crypto/web-provider.js';
6
+ // The Web provider lives at the `@open-nav/core/web` entry (see ./web.ts), so
7
+ // the main entry stays free of any @noble/* code for Node/Bun/Deno consumers.
7
8
  export * from './crypto/hash.js';
8
9
  export * from './crypto/signature.js';
9
10
  export * from './crypto/token.js';
@@ -12,6 +13,7 @@ export * from './xml/descriptor.js';
12
13
  export * from './xml/read.js';
13
14
  export * from './xml/write.js';
14
15
  export * from './invoice/payload.js';
16
+ export * from './invoice/build.js';
15
17
  export * from './money/decimal.js';
16
18
  export * from './money/summary.js';
17
19
  export * from './validation/issue.js';
@@ -0,0 +1,193 @@
1
+ import { Decimal } from '../money/decimal.js';
2
+ import { computeInvoiceSummary } from '../money/summary.js';
3
+ import { parseTaxNumber } from '../validation/tax-number.js';
4
+ import type { InvoiceData, InvoiceType, LineType, UnitOfMeasureType } from '../generated/types.js';
5
+
6
+ /**
7
+ * A convenience builder for the common invoice.
8
+ *
9
+ * Constructing an {@link InvoiceData} by hand means filling in ~50 nested
10
+ * fields across four namespaces. This assembles a schema-valid document for the
11
+ * ordinary case — a normal invoice with priced lines — from a flat input,
12
+ * computing each line's net, VAT and gross and the whole invoice summary so the
13
+ * arithmetic always reconciles.
14
+ *
15
+ * It deliberately does not cover the entire schema (no aggregate or simplified
16
+ * invoices, product-fee lines, margin schemes, and so on). For those, build the
17
+ * {@link InvoiceData} directly — this returns exactly that type, so a caller can
18
+ * take the result and adjust it. Validate the result with `validateInvoice`
19
+ * before sending, as with any invoice.
20
+ */
21
+
22
+ const MONETARY_SCALE = 2;
23
+
24
+ export interface BuildAddress {
25
+ /** ISO 3166 alpha-2. Defaults to `HU`. */
26
+ countryCode?: string;
27
+ postalCode: string;
28
+ city: string;
29
+ streetName: string;
30
+ /** e.g. `utca`, `sugárút`. */
31
+ publicPlaceCategory: string;
32
+ /** House number. */
33
+ number: string;
34
+ }
35
+
36
+ export interface BuildParty {
37
+ name: string;
38
+ /** 8- or 11-digit Hungarian tax number; parsed into its parts. */
39
+ taxNumber?: string;
40
+ address: BuildAddress;
41
+ }
42
+
43
+ export interface BuildLine {
44
+ description: string;
45
+ quantity: number | string;
46
+ /** Unit of measure. Defaults to `PIECE`. */
47
+ unit?: UnitOfMeasureType;
48
+ /** Net unit price, in the invoice currency. */
49
+ unitPrice: number | string;
50
+ /** VAT rate as a fraction, e.g. `0.27`. */
51
+ vatPercentage: number | string;
52
+ /** Defaults to `PRODUCT`. */
53
+ nature?: 'PRODUCT' | 'SERVICE' | 'OTHER';
54
+ }
55
+
56
+ export interface BuildInvoiceInput {
57
+ invoiceNumber: string;
58
+ /** Issue date, `yyyy-mm-dd`. */
59
+ issueDate: string;
60
+ /** Fulfilment date, `yyyy-mm-dd`. Defaults to the issue date. */
61
+ deliveryDate?: string;
62
+ /** Payment due date, `yyyy-mm-dd`. */
63
+ paymentDate?: string;
64
+ /** ISO 4217. Defaults to `HUF`. */
65
+ currency?: string;
66
+ /** Rate to HUF. Required for a non-HUF invoice; defaults to `1`. */
67
+ exchangeRate?: number | string;
68
+ /** Defaults to `PAPER`. */
69
+ appearance?: 'PAPER' | 'ELECTRONIC' | 'EDI' | 'UNKNOWN';
70
+ paymentMethod?: 'TRANSFER' | 'CASH' | 'CARD' | 'VOUCHER' | 'OTHER';
71
+ supplier: BuildParty & { bankAccount?: string };
72
+ customer: BuildParty & {
73
+ /** Defaults to `DOMESTIC` when a tax number is given, else `PRIVATE_PERSON`. */
74
+ vatStatus?: 'DOMESTIC' | 'OTHER' | 'PRIVATE_PERSON';
75
+ };
76
+ lines: BuildLine[];
77
+ }
78
+
79
+ /** Build a schema-valid {@link InvoiceData} for a normal invoice. */
80
+ export function buildInvoice(input: BuildInvoiceInput): InvoiceData {
81
+ if (input.lines.length === 0) {
82
+ throw new Error('buildInvoice requires at least one line');
83
+ }
84
+
85
+ const currency = input.currency ?? 'HUF';
86
+ const rate = Decimal.from(input.exchangeRate ?? 1);
87
+ const deliveryDate = input.deliveryDate ?? input.issueDate;
88
+ const toHuf = (amount: Decimal): string => amount.multiply(rate).round(MONETARY_SCALE).toString();
89
+
90
+ const line = input.lines.map((entry, index): LineType => {
91
+ const quantity = Decimal.from(entry.quantity);
92
+ const unitPrice = Decimal.from(entry.unitPrice);
93
+ const vatPercentage = Decimal.from(entry.vatPercentage);
94
+ const net = quantity.multiply(unitPrice).round(MONETARY_SCALE);
95
+ const vat = net.multiply(vatPercentage).round(MONETARY_SCALE);
96
+ const gross = net.add(vat);
97
+
98
+ return {
99
+ lineNumber: index + 1,
100
+ lineExpressionIndicator: true,
101
+ lineNatureIndicator: entry.nature ?? 'PRODUCT',
102
+ lineDescription: entry.description,
103
+ quantity: quantity.toString(),
104
+ unitOfMeasure: entry.unit ?? 'PIECE',
105
+ unitPrice: unitPrice.toString(),
106
+ unitPriceHUF: toHuf(unitPrice),
107
+ lineAmountsNormal: {
108
+ lineNetAmountData: {
109
+ lineNetAmount: net.toString(),
110
+ lineNetAmountHUF: toHuf(net),
111
+ },
112
+ lineVatRate: { vatPercentage: vatPercentage.toString() },
113
+ lineVatData: {
114
+ lineVatAmount: vat.toString(),
115
+ lineVatAmountHUF: toHuf(vat),
116
+ },
117
+ lineGrossAmountData: {
118
+ lineGrossAmountNormal: gross.toString(),
119
+ lineGrossAmountNormalHUF: toHuf(gross),
120
+ },
121
+ },
122
+ };
123
+ });
124
+
125
+ const invoiceLines: InvoiceType['invoiceLines'] = { mergedItemIndicator: false, line };
126
+
127
+ const customerHasTaxNumber = input.customer.taxNumber !== undefined;
128
+ const customerVatStatus =
129
+ input.customer.vatStatus ?? (customerHasTaxNumber ? 'DOMESTIC' : 'PRIVATE_PERSON');
130
+
131
+ const invoiceHead: InvoiceType['invoiceHead'] = {
132
+ supplierInfo: {
133
+ supplierTaxNumber: parseTaxNumber(requireTaxNumber(input.supplier.taxNumber, 'supplier')),
134
+ supplierName: input.supplier.name,
135
+ supplierAddress: { detailedAddress: address(input.supplier.address) },
136
+ ...(input.supplier.bankAccount
137
+ ? { supplierBankAccountNumber: input.supplier.bankAccount }
138
+ : {}),
139
+ },
140
+ customerInfo: {
141
+ customerVatStatus,
142
+ ...(customerHasTaxNumber && customerVatStatus !== 'PRIVATE_PERSON'
143
+ ? { customerVatData: { customerTaxNumber: parseTaxNumber(input.customer.taxNumber!) } }
144
+ : {}),
145
+ customerName: input.customer.name,
146
+ customerAddress: { detailedAddress: address(input.customer.address) },
147
+ },
148
+ invoiceDetail: {
149
+ invoiceCategory: 'NORMAL',
150
+ invoiceDeliveryDate: deliveryDate,
151
+ currencyCode: currency,
152
+ exchangeRate: rate.toString(),
153
+ ...(input.paymentMethod ? { paymentMethod: input.paymentMethod } : {}),
154
+ ...(input.paymentDate ? { paymentDate: input.paymentDate } : {}),
155
+ invoiceAppearance: input.appearance ?? 'PAPER',
156
+ },
157
+ };
158
+
159
+ // Compute the summary from the finished lines so it always reconciles.
160
+ const invoiceSummary = computeInvoiceSummary({ invoiceHead, invoiceLines } as InvoiceType);
161
+
162
+ const invoice: InvoiceType = { invoiceHead, invoiceLines, invoiceSummary };
163
+
164
+ return {
165
+ invoiceNumber: input.invoiceNumber,
166
+ invoiceIssueDate: input.issueDate,
167
+ completenessIndicator: false,
168
+ invoiceMain: { invoice },
169
+ };
170
+ }
171
+
172
+ function address(input: BuildAddress): {
173
+ countryCode: string;
174
+ postalCode: string;
175
+ city: string;
176
+ streetName: string;
177
+ publicPlaceCategory: string;
178
+ number: string;
179
+ } {
180
+ return {
181
+ countryCode: input.countryCode ?? 'HU',
182
+ postalCode: input.postalCode,
183
+ city: input.city,
184
+ streetName: input.streetName,
185
+ publicPlaceCategory: input.publicPlaceCategory,
186
+ number: input.number,
187
+ };
188
+ }
189
+
190
+ function requireTaxNumber(value: string | undefined, role: string): string {
191
+ if (!value) throw new Error(`buildInvoice requires the ${role} tax number`);
192
+ return value;
193
+ }
@@ -37,10 +37,12 @@ export class Decimal {
37
37
  /**
38
38
  * Build a decimal from an exact representation.
39
39
  *
40
- * Numbers are accepted for convenience but only when they are integers or
41
- * survive a round trip through their shortest decimal form; anything else
42
- * has already lost precision and is rejected rather than silently carried
43
- * forward.
40
+ * A number is accepted for convenience and taken as its shortest
41
+ * round-trippable decimal string, so `Decimal.from(1.5)` is `1.5`; a
42
+ * non-finite number is rejected. But a float cannot represent every decimal
43
+ * exactly, and a value whose magnitude renders in exponential notation (such
44
+ * as `1e-7` or `1e21`) is not accepted as a number. Pass such values — and
45
+ * any amount where exactness matters — as a string.
44
46
  */
45
47
  static from(value: Decimal | string | number | bigint): Decimal {
46
48
  if (value instanceof Decimal) return value;
package/src/time.ts CHANGED
@@ -21,6 +21,24 @@ export function toSignatureTimestamp(value: Date | string = new Date()): string
21
21
  return `${iso.slice(0, 4)}${iso.slice(5, 7)}${iso.slice(8, 10)}${iso.slice(11, 13)}${iso.slice(14, 16)}${iso.slice(17, 19)}`;
22
22
  }
23
23
 
24
+ /**
25
+ * The current date in Hungary (Europe/Budapest), as `yyyy-MM-dd`.
26
+ *
27
+ * NAV's `date` fields are Hungarian calendar dates, so a question like "is this
28
+ * invoice dated in the future" must be judged against the Hungarian date, not
29
+ * UTC: near midnight the two differ, and a UTC comparison would reject an
30
+ * invoice that is validly dated today. The zone carries its own DST, so this is
31
+ * correct across the CET/CEST switch.
32
+ */
33
+ export function hungarianToday(now: Date = new Date()): string {
34
+ return new Intl.DateTimeFormat('en-CA', {
35
+ timeZone: 'Europe/Budapest',
36
+ year: 'numeric',
37
+ month: '2-digit',
38
+ day: '2-digit',
39
+ }).format(now);
40
+ }
41
+
24
42
  /** Render a NAV `date` field (`xs:date`) as `yyyy-MM-dd` in UTC. */
25
43
  export function toNavDate(value: Date | string = new Date()): string {
26
44
  if (typeof value === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(value)) {
@@ -1,6 +1,7 @@
1
1
  import type { InvoiceData, InvoiceType, LineType, SummaryType } from '../generated/types.js';
2
2
  import { Decimal } from '../money/decimal.js';
3
3
  import { checkInvoiceSummary, hasAmountBearingLines } from '../money/summary.js';
4
+ import { hungarianToday } from '../time.js';
4
5
  import type { NavFaultCode } from '../generated/fault-codes.js';
5
6
  import type { IssueCollector } from './issue.js';
6
7
  import { isValidCountyCode, isValidTaxpayerId } from './tax-number.js';
@@ -95,7 +96,7 @@ function checkDocument(
95
96
  collector: IssueCollector,
96
97
  context: InvoiceValidationContext,
97
98
  ): void {
98
- const today = context.today ?? new Date().toISOString().slice(0, 10);
99
+ const today = context.today ?? hungarianToday();
99
100
  if (document.invoiceIssueDate > today) {
100
101
  collector.error(
101
102
  'INCORRECT_DATE_INVOICE_ISSUE_DATE_LATE',
package/src/web.ts ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The Web crypto provider, on its own entry point.
3
+ *
4
+ * It is kept out of the package's main entry deliberately: the main entry then
5
+ * pulls in no `@noble/*` code, so a Node, Bun or Deno consumer — whose built-in
6
+ * `node:crypto` already covers everything the library needs — never bundles the
7
+ * pure-JS fallback. Import it only where `node:crypto` lacks SHA-3, notably
8
+ * Cloudflare Workers:
9
+ *
10
+ * ```ts
11
+ * import { setCryptoProvider } from '@open-nav/core';
12
+ * import { createWebCryptoProvider } from '@open-nav/core/web';
13
+ *
14
+ * setCryptoProvider(createWebCryptoProvider());
15
+ * ```
16
+ *
17
+ * @module
18
+ */
19
+ export { createWebCryptoProvider } from './crypto/web-provider.js';