@openlup/platform 0.23.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +218 -59
- package/README.md +93 -11
- package/dist/fulfillment/contracts/dispatch.d.ts +4 -0
- package/dist/fulfillment/dispatchProjection.d.ts +1 -1
- package/dist/fulfillment/dispatchProjection.js +4 -2
- package/dist/fulfillment/omnipack/client.js +14 -6
- package/dist/fulfillment/omnipack/index.js +5 -2
- package/dist/fulfillment/providerDispatchWorker.d.ts +38 -0
- package/dist/fulfillment/providerDispatchWorker.js +19 -1
- package/dist/invoicing/accountingCanonicalProviderLines.d.ts +5 -0
- package/dist/invoicing/accountingCanonicalProviderLines.js +104 -0
- package/dist/invoicing/accountingLineAllocation.d.ts +2 -0
- package/dist/invoicing/accountingLineAllocation.js +69 -0
- package/dist/invoicing/adapterConformance.d.ts +42 -0
- package/dist/invoicing/adapterConformance.js +296 -0
- package/dist/invoicing/artifacts.d.ts +7 -0
- package/dist/invoicing/artifacts.js +20 -0
- package/dist/invoicing/bindings.d.ts +46 -0
- package/dist/invoicing/bindings.js +69 -0
- package/dist/invoicing/channelPolicy.d.ts +28 -0
- package/dist/invoicing/channelPolicy.js +27 -0
- package/dist/invoicing/continuity.d.ts +12 -0
- package/dist/invoicing/continuity.js +18 -0
- package/dist/invoicing/contracts/facts.d.ts +11 -1
- package/dist/invoicing/contracts/host.d.ts +3 -4
- package/dist/invoicing/contracts/index.d.ts +1 -1
- package/dist/invoicing/contracts/store.d.ts +15 -5
- package/dist/invoicing/contribution.d.ts +21 -0
- package/dist/invoicing/contribution.js +19 -0
- package/dist/invoicing/correction.d.ts +42 -0
- package/dist/invoicing/correction.js +44 -0
- package/dist/invoicing/delivery.d.ts +85 -0
- package/dist/invoicing/delivery.js +79 -0
- package/dist/invoicing/documentHistory.d.ts +50 -0
- package/dist/invoicing/documentHistory.js +213 -0
- package/dist/invoicing/documentSync.d.ts +24 -0
- package/dist/invoicing/documentSync.js +26 -0
- package/dist/invoicing/dutyCollector.d.ts +15 -0
- package/dist/invoicing/dutyCollector.js +35 -0
- package/dist/invoicing/fulfillmentTrigger.d.ts +56 -0
- package/dist/invoicing/fulfillmentTrigger.js +90 -0
- package/dist/invoicing/handoff.d.ts +37 -0
- package/dist/invoicing/handoff.js +62 -0
- package/dist/invoicing/index.d.ts +38 -0
- package/dist/invoicing/index.js +36 -0
- package/dist/invoicing/issue.d.ts +39 -0
- package/dist/invoicing/issue.js +55 -0
- package/dist/invoicing/migrations.d.ts +48 -0
- package/dist/invoicing/migrations.js +25 -0
- package/dist/invoicing/nativeUnsupported.d.ts +9 -0
- package/dist/invoicing/nativeUnsupported.js +22 -0
- package/dist/invoicing/paymentReadback.d.ts +20 -0
- package/dist/invoicing/paymentReadback.js +47 -0
- package/dist/invoicing/postgresInvoiceStore.d.ts +55 -0
- package/dist/invoicing/postgresInvoiceStore.js +344 -0
- package/dist/invoicing/readModel.d.ts +74 -0
- package/dist/invoicing/readModel.js +90 -0
- package/dist/invoicing/readback.d.ts +4 -0
- package/dist/invoicing/readback.js +30 -0
- package/dist/invoicing/reversal.d.ts +37 -0
- package/dist/invoicing/reversal.js +28 -0
- package/dist/invoicing/sellerRevision.d.ts +19 -0
- package/dist/invoicing/sellerRevision.js +14 -0
- package/dist/invoicing/settlementSync.d.ts +18 -0
- package/dist/invoicing/settlementSync.js +32 -0
- package/dist/invoicing/snapshot.d.ts +52 -0
- package/dist/invoicing/snapshot.js +141 -0
- package/package.json +3 -3
- package/release-gates.json +21 -7
- package/sql/20260809210000_accounting_document_rail.sql +889 -0
- package/sql/20260811150000_accounting_payout_rail.sql +333 -0
- package/sql/20260812130000_accounting_document_lifecycle_rail.sql +460 -0
- package/sql/20261022190000_invoicing_durable_duties.sql +494 -0
- package/sql/20261022191000_invoicing_document_effects.sql +249 -0
- package/sql/20261022192000_invoicing_payment_decoupling.sql +144 -0
- package/sql/20261022195000_invoicing_seller_revision.sql +65 -0
- package/src/fulfillment/contracts/dispatch.ts +4 -0
- package/src/fulfillment/dispatchProjection.ts +4 -2
- package/src/fulfillment/omnipack/client.ts +13 -6
- package/src/fulfillment/omnipack/index.ts +5 -2
- package/src/fulfillment/providerDispatchWorker.ts +14 -1
- package/src/invoicing/accountingCanonicalProviderLines.ts +134 -0
- package/src/invoicing/accountingLineAllocation.ts +69 -0
- package/src/invoicing/adapterConformance.ts +249 -0
- package/src/invoicing/artifacts.ts +19 -0
- package/src/invoicing/bindings.ts +80 -0
- package/src/invoicing/channelPolicy.ts +50 -0
- package/src/invoicing/continuity.ts +15 -0
- package/src/invoicing/contracts/facts.ts +12 -1
- package/src/invoicing/contracts/host.ts +3 -4
- package/src/invoicing/contracts/index.ts +1 -1
- package/src/invoicing/contracts/store.ts +11 -7
- package/src/invoicing/contribution.ts +28 -0
- package/src/invoicing/correction.ts +56 -0
- package/src/invoicing/delivery.ts +122 -0
- package/src/invoicing/documentHistory.ts +301 -0
- package/src/invoicing/documentSync.ts +51 -0
- package/src/invoicing/dutyCollector.ts +31 -0
- package/src/invoicing/fulfillmentTrigger.ts +144 -0
- package/src/invoicing/handoff.ts +71 -0
- package/src/invoicing/index.ts +38 -0
- package/src/invoicing/issue.ts +64 -0
- package/src/invoicing/migrations.ts +25 -0
- package/src/invoicing/nativeUnsupported.ts +24 -0
- package/src/invoicing/paymentReadback.ts +70 -0
- package/src/invoicing/postgresInvoiceStore.ts +334 -0
- package/src/invoicing/readModel.ts +80 -0
- package/src/invoicing/readback.ts +26 -0
- package/src/invoicing/reversal.ts +34 -0
- package/src/invoicing/sellerRevision.ts +20 -0
- package/src/invoicing/settlementSync.ts +37 -0
- package/src/invoicing/snapshot.ts +192 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { InvoiceSettlementPort, InvoiceSettlementItem } from "./contracts/settlement.js";
|
|
2
|
+
/** Preserve each immutable balance item, nullable links and original host key.
|
|
3
|
+
* Transport, resolution and richer durable item storage remain host-owned.
|
|
4
|
+
* Legacy batch/payment receipts may collapse items: later reuse is returned as
|
|
5
|
+
* identity_mismatch without another write; processing continues. Only an item-capable
|
|
6
|
+
* recorder can produce distinct recorded receipts. This records bank evidence only and has no payment-success writer.
|
|
7
|
+
*/
|
|
8
|
+
export declare function syncInvoicePayoutSettlements<Item>(input: {
|
|
9
|
+
list(limit: number): Promise<readonly Item[]>;
|
|
10
|
+
project(item: Item): InvoiceSettlementItem | Promise<InvoiceSettlementItem>;
|
|
11
|
+
settlement: Pick<InvoiceSettlementPort, "record">;
|
|
12
|
+
limit?: number;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
checked: number;
|
|
15
|
+
recorded: number;
|
|
16
|
+
replayed: number;
|
|
17
|
+
items: Awaited<ReturnType<InvoiceSettlementPort["record"]>>[];
|
|
18
|
+
}>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Preserve each immutable balance item, nullable links and original host key.
|
|
2
|
+
* Transport, resolution and richer durable item storage remain host-owned.
|
|
3
|
+
* Legacy batch/payment receipts may collapse items: later reuse is returned as
|
|
4
|
+
* identity_mismatch without another write; processing continues. Only an item-capable
|
|
5
|
+
* recorder can produce distinct recorded receipts. This records bank evidence only and has no payment-success writer.
|
|
6
|
+
*/
|
|
7
|
+
export async function syncInvoicePayoutSettlements(input) {
|
|
8
|
+
const items = await input.list(input.limit ?? 10);
|
|
9
|
+
const result = { checked: items.length, recorded: 0, replayed: 0, items: [] };
|
|
10
|
+
const receipts = new Map();
|
|
11
|
+
for (const item of items) {
|
|
12
|
+
const evidence = await input.project(item);
|
|
13
|
+
const write = await input.settlement.record(evidence);
|
|
14
|
+
if (write.kind !== "recorded" || write.itemRef !== evidence.itemRef) {
|
|
15
|
+
// Unknown/conflict/unsupported are never counted as accepted evidence.
|
|
16
|
+
throw new Error(write.kind === "conflict" ? write.code : write.kind === "unknown" ? "unknown" : "unsupported");
|
|
17
|
+
}
|
|
18
|
+
const scope = JSON.stringify([evidence.providerRef, evidence.batchRef, evidence.itemRef, evidence.providerPaymentRef]);
|
|
19
|
+
const previous = receipts.get(write.settlementItemRef);
|
|
20
|
+
if (previous !== undefined && previous !== scope) {
|
|
21
|
+
result.items.push({ kind: "conflict", itemRef: evidence.itemRef, code: "identity_mismatch" });
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
receipts.set(write.settlementItemRef, scope);
|
|
25
|
+
result.items.push(write);
|
|
26
|
+
if (write.replayed)
|
|
27
|
+
result.replayed += 1;
|
|
28
|
+
else
|
|
29
|
+
result.recorded += 1;
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
interface Options {
|
|
2
|
+
defaultLineLabel: string;
|
|
3
|
+
deliveryLabel: string;
|
|
4
|
+
defaultTaxRate: string;
|
|
5
|
+
}
|
|
6
|
+
/** Compatibility projection of a claimed host snapshot, not a second store contract.
|
|
7
|
+
* Seller/date/kind/payment selection remains with the host; no environment is read.
|
|
8
|
+
*/
|
|
9
|
+
export declare function mapInvoiceClaimToProviderSnapshot<Seller, Kind, Payment>(input: {
|
|
10
|
+
orderRef: string;
|
|
11
|
+
issueDate: string;
|
|
12
|
+
sellDate: string;
|
|
13
|
+
currency: string;
|
|
14
|
+
seller: Seller;
|
|
15
|
+
buyerSnapshot: Record<string, unknown>;
|
|
16
|
+
documentKind: Kind;
|
|
17
|
+
governmentClearanceRequired: boolean;
|
|
18
|
+
payment: Payment;
|
|
19
|
+
linesSnapshot: unknown[];
|
|
20
|
+
totalGrossMinor: number;
|
|
21
|
+
totalNetMinor: number;
|
|
22
|
+
orderMoney: unknown;
|
|
23
|
+
}, options: Options & {
|
|
24
|
+
defaultBuyerLabel: string;
|
|
25
|
+
}): {
|
|
26
|
+
orderRef: string;
|
|
27
|
+
issueDate: string;
|
|
28
|
+
sellDate: string;
|
|
29
|
+
currency: string;
|
|
30
|
+
seller: Seller;
|
|
31
|
+
buyer: {
|
|
32
|
+
name: string;
|
|
33
|
+
email: string | null;
|
|
34
|
+
taxId: string | null;
|
|
35
|
+
companyName: string | null;
|
|
36
|
+
address: {
|
|
37
|
+
readonly line1: string | null;
|
|
38
|
+
readonly postalCode: string | null;
|
|
39
|
+
readonly city: string | null;
|
|
40
|
+
readonly country: string | null;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
documentKind: Kind;
|
|
44
|
+
governmentClearanceRequired: boolean;
|
|
45
|
+
payment: Payment;
|
|
46
|
+
lines: (Pick<import("./contracts/facts.js").InvoiceLine, "quantity" | "unitGrossMinor" | "unitNetMinor" | "totalGrossMinor" | "totalNetMinor"> & {
|
|
47
|
+
name: string;
|
|
48
|
+
vatRate: string;
|
|
49
|
+
})[];
|
|
50
|
+
chargedTotalGrossMinor: number;
|
|
51
|
+
};
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { mapCanonicalIssueLines } from "./accountingCanonicalProviderLines.js";
|
|
2
|
+
import { allocateChargedGrossTotals } from "./accountingLineAllocation.js";
|
|
3
|
+
/** Compatibility projection of a claimed host snapshot, not a second store contract.
|
|
4
|
+
* Seller/date/kind/payment selection remains with the host; no environment is read.
|
|
5
|
+
*/
|
|
6
|
+
export function mapInvoiceClaimToProviderSnapshot(input, options) {
|
|
7
|
+
return {
|
|
8
|
+
orderRef: input.orderRef,
|
|
9
|
+
issueDate: input.issueDate,
|
|
10
|
+
sellDate: input.sellDate,
|
|
11
|
+
currency: input.currency,
|
|
12
|
+
seller: input.seller,
|
|
13
|
+
buyer: {
|
|
14
|
+
name: textValue(input.buyerSnapshot.name) ?? options.defaultBuyerLabel,
|
|
15
|
+
email: textValue(input.buyerSnapshot.email),
|
|
16
|
+
taxId: textValue(input.buyerSnapshot.taxId),
|
|
17
|
+
companyName: textValue(input.buyerSnapshot.companyName),
|
|
18
|
+
address: mapBuyerAddress(input.buyerSnapshot.address),
|
|
19
|
+
},
|
|
20
|
+
documentKind: input.documentKind,
|
|
21
|
+
governmentClearanceRequired: input.governmentClearanceRequired,
|
|
22
|
+
payment: input.payment,
|
|
23
|
+
lines: mapIssueLinesToChargedTotal(input.linesSnapshot, input.totalGrossMinor, input.totalNetMinor, input.orderMoney, options),
|
|
24
|
+
chargedTotalGrossMinor: input.totalGrossMinor,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// Canonical issue snapshots already carry effective item and explicit delivery
|
|
28
|
+
// positions and are verified as a zero-delta passthrough. Historical snapshots
|
|
29
|
+
// without positionKind retain the independent #1693 reconciliation below.
|
|
30
|
+
function mapIssueLinesToChargedTotal(linesSnapshot, chargedTotalGrossMinor, chargedTotalNetMinor, orderMoney, options) {
|
|
31
|
+
const canonicalKinds = linesSnapshot.map((line) => textValue(isRecord(line) ? line.positionKind : null));
|
|
32
|
+
if (canonicalKinds.some(Boolean)) {
|
|
33
|
+
if (!canonicalKinds.every((kind) => kind === "item" || kind === "delivery")) {
|
|
34
|
+
throw new Error("accounting_invoice_canonical_positions_mixed_or_invalid");
|
|
35
|
+
}
|
|
36
|
+
return mapCanonicalIssueLines(linesSnapshot, chargedTotalGrossMinor, chargedTotalNetMinor, options.defaultLineLabel);
|
|
37
|
+
}
|
|
38
|
+
const parsed = linesSnapshot.map((line) => parseLineSnapshot(line, options));
|
|
39
|
+
const deliveryGrossMinor = readDeliveryGrossMinor(orderMoney, chargedTotalGrossMinor);
|
|
40
|
+
const chargedTotals = allocateChargedGrossTotals(parsed.map((line) => line.totalGrossMinor), chargedTotalGrossMinor - deliveryGrossMinor);
|
|
41
|
+
const positions = parsed.map((line, index) => {
|
|
42
|
+
const totalGrossMinor = chargedTotals[index];
|
|
43
|
+
const totalNetMinor = estimateNetMinor(totalGrossMinor, line.vatRate);
|
|
44
|
+
return {
|
|
45
|
+
name: line.name,
|
|
46
|
+
quantity: line.quantity,
|
|
47
|
+
unitGrossMinor: Math.round(totalGrossMinor / line.quantity),
|
|
48
|
+
unitNetMinor: Math.round(totalNetMinor / line.quantity),
|
|
49
|
+
totalGrossMinor,
|
|
50
|
+
totalNetMinor,
|
|
51
|
+
vatRate: line.vatRate,
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
if (deliveryGrossMinor > 0) {
|
|
55
|
+
positions.push(buildDeliveryPosition(deliveryGrossMinor, parsed, options));
|
|
56
|
+
}
|
|
57
|
+
return positions;
|
|
58
|
+
}
|
|
59
|
+
// Legacy-only compatibility: pre-canonical claims had no explicit delivery
|
|
60
|
+
// position, so their effective delivery is the closed header residual. Current
|
|
61
|
+
// canonical claims never enter this path and use persisted shipping columns.
|
|
62
|
+
// Every inconsistent legacy shape degrades to 0 and then fails closed if the
|
|
63
|
+
// catalog lines cannot reconcile to the charged header.
|
|
64
|
+
function readDeliveryGrossMinor(orderMoney, chargedTotalGrossMinor) {
|
|
65
|
+
if (!isRecord(orderMoney))
|
|
66
|
+
return 0;
|
|
67
|
+
const subtotal = numberValue(orderMoney.subtotalCents);
|
|
68
|
+
const discount = numberValue(orderMoney.discountCents);
|
|
69
|
+
const total = numberValue(orderMoney.totalCents);
|
|
70
|
+
if (subtotal === null || discount === null || total === null)
|
|
71
|
+
return 0;
|
|
72
|
+
if (![subtotal, discount, total].every((value) => Number.isInteger(value) && value >= 0))
|
|
73
|
+
return 0;
|
|
74
|
+
if (discount > subtotal)
|
|
75
|
+
return 0;
|
|
76
|
+
if (total !== chargedTotalGrossMinor)
|
|
77
|
+
return 0;
|
|
78
|
+
const deliveryGrossMinor = chargedTotalGrossMinor - (subtotal - discount);
|
|
79
|
+
return deliveryGrossMinor > 0 ? deliveryGrossMinor : 0;
|
|
80
|
+
}
|
|
81
|
+
// Delivery is an ancillary supply and follows the goods' VAT rate; with mixed
|
|
82
|
+
// item rates (or no item line to source a rate from) the correct rate is
|
|
83
|
+
// ambiguous, so the claim fails closed into the outbox last_error.
|
|
84
|
+
function buildDeliveryPosition(deliveryGrossMinor, itemLines, options) {
|
|
85
|
+
const rates = [...new Set(itemLines.map((line) => line.vatRate.trim()))];
|
|
86
|
+
if (rates.length === 0) {
|
|
87
|
+
throw new Error(`accounting_invoice_delivery_vat_rate_unavailable delivery=${deliveryGrossMinor}`);
|
|
88
|
+
}
|
|
89
|
+
if (rates.length > 1) {
|
|
90
|
+
throw new Error(`accounting_invoice_delivery_vat_rates_mixed rates=${rates.join(",")}`);
|
|
91
|
+
}
|
|
92
|
+
const vatRate = rates[0];
|
|
93
|
+
const totalNetMinor = estimateNetMinor(deliveryGrossMinor, vatRate);
|
|
94
|
+
return {
|
|
95
|
+
name: options.deliveryLabel,
|
|
96
|
+
quantity: 1,
|
|
97
|
+
unitGrossMinor: deliveryGrossMinor,
|
|
98
|
+
unitNetMinor: totalNetMinor,
|
|
99
|
+
totalGrossMinor: deliveryGrossMinor,
|
|
100
|
+
totalNetMinor,
|
|
101
|
+
vatRate,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function mapBuyerAddress(value) {
|
|
105
|
+
const address = isRecord(value) ? value : {};
|
|
106
|
+
return {
|
|
107
|
+
line1: textValue(address.line1),
|
|
108
|
+
postalCode: textValue(address.postalCode),
|
|
109
|
+
city: textValue(address.city),
|
|
110
|
+
country: textValue(address.country),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function parseLineSnapshot(value, options) {
|
|
114
|
+
const row = isRecord(value) ? value : {};
|
|
115
|
+
const quantity = numberValue(row.quantity) || 1;
|
|
116
|
+
const vatRate = textValue(row.vatRate) ?? options.defaultTaxRate;
|
|
117
|
+
// Legacy (pre-#1693) lines_snapshot rows carry only the per-unit
|
|
118
|
+
// unitGrossMinor, so the line total is unit price times quantity.
|
|
119
|
+
const unitGrossMinor = numberValue(row.unitGrossMinor);
|
|
120
|
+
const totalGrossMinor = numberValue(row.totalGrossMinor) ??
|
|
121
|
+
(unitGrossMinor === null ? 0 : unitGrossMinor * quantity);
|
|
122
|
+
return {
|
|
123
|
+
name: textValue(row.name) ?? options.defaultLineLabel,
|
|
124
|
+
quantity,
|
|
125
|
+
totalGrossMinor,
|
|
126
|
+
vatRate,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function estimateNetMinor(grossMinor, vatRate) {
|
|
130
|
+
const rate = Number(vatRate.replace(",", "."));
|
|
131
|
+
return Number.isFinite(rate) ? Math.round(grossMinor / (1 + rate / 100)) : grossMinor;
|
|
132
|
+
}
|
|
133
|
+
function textValue(value) {
|
|
134
|
+
return typeof value === "string" && value.trim() ? value.trim() : null;
|
|
135
|
+
}
|
|
136
|
+
function numberValue(value) {
|
|
137
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
138
|
+
}
|
|
139
|
+
function isRecord(value) {
|
|
140
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
141
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openlup/platform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Runnable server substrate: Node HTTP runtime, BFF dispatch, scheduler, storage, data gateways and bundle composition; development preview.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"api:update": "npm run build && node --experimental-strip-types ./scripts/api-contract.ts --update"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@openlup/core": "0.
|
|
34
|
+
"@openlup/core": "0.24.0",
|
|
35
35
|
"pg": "^8.22.0",
|
|
36
36
|
"@aws-sdk/client-s3": "^3.1144.0",
|
|
37
37
|
"@types/pg": "^8.20.0"
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"zod": "^4.
|
|
51
|
+
"zod": "^4.6.6"
|
|
52
52
|
},
|
|
53
53
|
"exports": {
|
|
54
54
|
"./http": {
|
package/release-gates.json
CHANGED
|
@@ -490,7 +490,21 @@
|
|
|
490
490
|
"packageSmokeEvidence": [
|
|
491
491
|
"test/packageBoundary.test.ts",
|
|
492
492
|
"test/invoicing/contracts.test.ts",
|
|
493
|
-
"test/invoicing/portFit.test.ts"
|
|
493
|
+
"test/invoicing/portFit.test.ts",
|
|
494
|
+
"test/invoicing/adapterConformance.test.ts",
|
|
495
|
+
"test/invoicing/issue.test.ts",
|
|
496
|
+
"test/invoicing/canonicalLines.test.ts",
|
|
497
|
+
"test/invoicing/paymentReadback.test.ts",
|
|
498
|
+
"test/invoicing/handoff.test.ts",
|
|
499
|
+
"test/invoicing/postgresStore.test.ts",
|
|
500
|
+
"test/invoicing/continuity.test.ts",
|
|
501
|
+
"test/invoicing/artifacts.test.ts",
|
|
502
|
+
"test/invoicing/delivery.test.ts",
|
|
503
|
+
"test/invoicing/readback.test.ts",
|
|
504
|
+
"test/invoicing/settlementSync.test.ts",
|
|
505
|
+
"test/invoicing/readModel.test.ts",
|
|
506
|
+
"test/invoicing/bindings.test.ts",
|
|
507
|
+
"test/invoicing/sellerRevision.test.ts"
|
|
494
508
|
],
|
|
495
509
|
"entrypoint": "dist/invoicing/index.d.ts",
|
|
496
510
|
"snapshot": "api/invoicing.api.md"
|
|
@@ -510,19 +524,19 @@
|
|
|
510
524
|
},
|
|
511
525
|
"pack": {
|
|
512
526
|
"code": {
|
|
513
|
-
"maxPackedBytes":
|
|
527
|
+
"maxPackedBytes": 1228800,
|
|
514
528
|
"maxFiles": 2000
|
|
515
529
|
},
|
|
516
530
|
"docs": {
|
|
517
|
-
"maxPackedBytes":
|
|
531
|
+
"maxPackedBytes": 57344,
|
|
518
532
|
"maxFiles": 10
|
|
519
533
|
},
|
|
520
|
-
"maxPackedBytes":
|
|
521
|
-
"maxUnpackedBytes":
|
|
534
|
+
"maxPackedBytes": 1474560,
|
|
535
|
+
"maxUnpackedBytes": 6553600,
|
|
522
536
|
"maxFiles": 2100,
|
|
523
537
|
"baseline": {
|
|
524
|
-
"version": "0.
|
|
525
|
-
"packedBytes":
|
|
538
|
+
"version": "0.23.0",
|
|
539
|
+
"packedBytes": 1251425
|
|
526
540
|
},
|
|
527
541
|
"browserEntries": {
|
|
528
542
|
"./catalog/contracts": 4096,
|