@voyantjs/finance 0.3.1 → 0.4.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/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import type { LinkableDefinition, Module } from "@voyantjs/core";
2
2
  import type { HonoModule } from "@voyantjs/hono/module";
3
+ import { type FinanceDocumentRouteOptions } from "./routes-documents.js";
4
+ import { type FinanceSettlementRouteOptions } from "./routes-settlement.js";
3
5
  export type { FinanceRoutes } from "./routes.js";
4
6
  export type { PublicFinanceRoutes } from "./routes-public.js";
5
7
  export { publicFinanceRoutes } from "./routes-public.js";
@@ -13,12 +15,22 @@ export declare const financeLinkable: {
13
15
  creditNote: LinkableDefinition;
14
16
  };
15
17
  export declare const financeModule: Module;
18
+ export interface FinanceHonoModuleOptions extends FinanceDocumentRouteOptions, FinanceSettlementRouteOptions {
19
+ }
20
+ export declare function createFinanceHonoModule(options?: FinanceHonoModuleOptions): HonoModule;
16
21
  export declare const financeHonoModule: HonoModule;
22
+ export { createFinanceAdminDocumentRoutes, type FinanceDocumentRouteOptions, type InvoiceDocumentGenerator, } from "./routes-documents.js";
23
+ export { createFinanceAdminSettlementRoutes, type FinanceSettlementRouteOptions, type InvoiceSettlementPoller, } from "./routes-settlement.js";
17
24
  export type { BookingGuarantee, BookingItemCommission, BookingItemTaxLine, BookingPaymentSchedule, CreditNote, CreditNoteLineItem, FinanceNote, Invoice, InvoiceExternalRef, InvoiceLineItem, InvoiceNumberSeries, InvoiceRendition, InvoiceTemplate, NewBookingGuarantee, NewBookingItemCommission, NewBookingItemTaxLine, NewBookingPaymentSchedule, NewCreditNote, NewCreditNoteLineItem, NewFinanceNote, NewInvoice, NewInvoiceExternalRef, NewInvoiceLineItem, NewInvoiceNumberSeries, NewInvoiceRendition, NewInvoiceTemplate, NewPayment, NewPaymentAuthorization, NewPaymentCapture, NewPaymentInstrument, NewPaymentSession, NewSupplierPayment, NewTaxRegime, Payment, PaymentAuthorization, PaymentCapture, PaymentInstrument, PaymentSession, SupplierPayment, TaxRegime, } from "./schema.js";
18
25
  export { bookingGuarantees, bookingItemCommissions, bookingItemTaxLines, bookingPaymentSchedules, creditNoteLineItems, creditNotes, financeNotes, invoiceExternalRefs, invoiceLineItems, invoiceNumberSeries, invoiceRenditions, invoices, invoiceTemplates, paymentAuthorizations, paymentCaptures, paymentInstruments, paymentSessions, payments, supplierPayments, taxRegimes, } from "./schema.js";
19
26
  export type { InvoiceFromBookingData } from "./service.js";
20
27
  export { financeService, renderInvoiceBody } from "./service.js";
21
- export { agingReportQuerySchema, allocateInvoiceNumberInputSchema, applyDefaultBookingPaymentPlanSchema, cancelPaymentSessionSchema, completePaymentSessionSchema, createPaymentSessionFromGuaranteeSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, expirePaymentSessionSchema, failPaymentSessionSchema, insertBookingGuaranteeSchema, insertBookingItemCommissionSchema, insertBookingItemTaxLineSchema, insertBookingPaymentScheduleSchema, insertCreditNoteLineItemSchema, insertCreditNoteSchema, insertFinanceNoteSchema, insertInvoiceExternalRefSchema, insertInvoiceLineItemSchema, insertInvoiceNumberSeriesSchema, insertInvoiceRenditionSchema, insertInvoiceSchema, insertInvoiceTemplateSchema, insertPaymentAuthorizationSchema, insertPaymentCaptureSchema, insertPaymentInstrumentSchema, insertPaymentSchema, insertPaymentSessionSchema, insertSupplierPaymentSchema, insertTaxRegimeSchema, invoiceFromBookingSchema, invoiceListQuerySchema, invoiceNumberSeriesListQuerySchema, invoiceTemplateListQuerySchema, markPaymentSessionRequiresRedirectSchema, paymentAuthorizationListQuerySchema, paymentCaptureListQuerySchema, paymentInstrumentListQuerySchema, paymentSessionListQuerySchema, profitabilityQuerySchema, renderInvoiceInputSchema, revenueReportQuerySchema, supplierPaymentListQuerySchema, taxRegimeListQuerySchema, updateBookingGuaranteeSchema, updateBookingItemCommissionSchema, updateBookingItemTaxLineSchema, updateBookingPaymentScheduleSchema, updateCreditNoteLineItemSchema, updateCreditNoteSchema, updateInvoiceExternalRefSchema, updateInvoiceLineItemSchema, updateInvoiceNumberSeriesSchema, updateInvoiceRenditionSchema, updateInvoiceSchema, updateInvoiceTemplateSchema, updatePaymentAuthorizationSchema, updatePaymentCaptureSchema, updatePaymentInstrumentSchema, updatePaymentSchema, updatePaymentSessionSchema, updateSupplierPaymentSchema, updateTaxRegimeSchema, } from "./validation.js";
22
- export type { PublicBookingFinanceDocuments, PublicBookingPaymentOptions, PublicFinanceBookingDocument, PublicPaymentOptionsQuery, PublicPaymentSession, PublicStartPaymentSessionInput, PublicValidateVoucherInput, PublicVoucherValidationResult, } from "./validation-public.js";
23
- export { publicBookingFinanceDocumentsSchema, publicBookingPaymentOptionsSchema, publicFinanceBookingDocumentSchema, publicFinanceDocumentAvailabilitySchema, publicFinanceDocumentFormatSchema, publicFinanceInvoiceTypeSchema, publicPaymentOptionsQuerySchema, publicPaymentSessionSchema, publicStartPaymentSessionSchema, publicValidateVoucherSchema, publicVoucherValidationSchema, } from "./validation-public.js";
28
+ export type { GeneratedInvoiceDocumentRecord, GeneratedInvoiceRenditionArtifact, InvoiceDocumentGeneratorContext, InvoiceDocumentRuntimeOptions, StorageBackedInvoiceDocumentGeneratorOptions, StorageBackedInvoiceDocumentSerializer, StorageBackedInvoiceDocumentUpload, } from "./service-documents.js";
29
+ export { createPdfInvoiceDocumentGenerator, createStorageBackedInvoiceDocumentGenerator, defaultPdfInvoiceDocumentSerializer, defaultStorageBackedInvoiceDocumentSerializer, financeDocumentsService, } from "./service-documents.js";
30
+ export type { FinanceSettlementRuntimeOptions, InvoiceSettlementPollerContext, InvoiceSettlementPollerResult, } from "./service-settlement.js";
31
+ export { financeSettlementService } from "./service-settlement.js";
32
+ export type { GeneratedInvoiceDocumentResult, GenerateInvoiceDocumentInput, PolledInvoiceSettlementResult, PollInvoiceSettlementInput, } from "./validation.js";
33
+ export { agingReportQuerySchema, allocateInvoiceNumberInputSchema, applyDefaultBookingPaymentPlanSchema, cancelPaymentSessionSchema, completePaymentSessionSchema, createPaymentSessionFromGuaranteeSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, expirePaymentSessionSchema, failPaymentSessionSchema, generatedInvoiceDocumentResultSchema, generateInvoiceDocumentInputSchema, insertBookingGuaranteeSchema, insertBookingItemCommissionSchema, insertBookingItemTaxLineSchema, insertBookingPaymentScheduleSchema, insertCreditNoteLineItemSchema, insertCreditNoteSchema, insertFinanceNoteSchema, insertInvoiceExternalRefSchema, insertInvoiceLineItemSchema, insertInvoiceNumberSeriesSchema, insertInvoiceRenditionSchema, insertInvoiceSchema, insertInvoiceTemplateSchema, insertPaymentAuthorizationSchema, insertPaymentCaptureSchema, insertPaymentInstrumentSchema, insertPaymentSchema, insertPaymentSessionSchema, insertSupplierPaymentSchema, insertTaxRegimeSchema, invoiceFromBookingSchema, invoiceListQuerySchema, invoiceNumberSeriesListQuerySchema, invoiceTemplateListQuerySchema, markPaymentSessionRequiresRedirectSchema, paymentAuthorizationListQuerySchema, paymentCaptureListQuerySchema, paymentInstrumentListQuerySchema, paymentSessionListQuerySchema, polledInvoiceSettlementProviderResultSchema, polledInvoiceSettlementResultSchema, pollInvoiceSettlementInputSchema, profitabilityQuerySchema, renderInvoiceInputSchema, revenueReportQuerySchema, supplierPaymentListQuerySchema, taxRegimeListQuerySchema, updateBookingGuaranteeSchema, updateBookingItemCommissionSchema, updateBookingItemTaxLineSchema, updateBookingPaymentScheduleSchema, updateCreditNoteLineItemSchema, updateCreditNoteSchema, updateInvoiceExternalRefSchema, updateInvoiceLineItemSchema, updateInvoiceNumberSeriesSchema, updateInvoiceRenditionSchema, updateInvoiceSchema, updateInvoiceTemplateSchema, updatePaymentAuthorizationSchema, updatePaymentCaptureSchema, updatePaymentInstrumentSchema, updatePaymentSchema, updatePaymentSessionSchema, updateSupplierPaymentSchema, updateTaxRegimeSchema, } from "./validation.js";
34
+ export type { PublicBookingFinanceDocuments, PublicBookingFinancePayments, PublicBookingPaymentOptions, PublicFinanceBookingDocument, PublicFinanceBookingPayment, PublicPaymentOptionsQuery, PublicPaymentSession, PublicStartPaymentSessionInput, PublicValidateVoucherInput, PublicVoucherValidationResult, } from "./validation-public.js";
35
+ export { publicBookingFinanceDocumentsSchema, publicBookingFinancePaymentsSchema, publicBookingPaymentOptionsSchema, publicFinanceBookingDocumentSchema, publicFinanceBookingPaymentSchema, publicFinanceDocumentAvailabilitySchema, publicFinanceDocumentFormatSchema, publicFinanceInvoiceTypeSchema, publicPaymentOptionsQuerySchema, publicPaymentSessionSchema, publicStartPaymentSessionSchema, publicValidateVoucherSchema, publicVoucherValidationSchema, } from "./validation-public.js";
24
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
+ import { Hono } from "hono";
1
2
  import { financeRoutes } from "./routes.js";
3
+ import { createFinanceAdminDocumentRoutes, } from "./routes-documents.js";
2
4
  import { publicFinanceRoutes } from "./routes-public.js";
5
+ import { createFinanceAdminSettlementRoutes, } from "./routes-settlement.js";
3
6
  export { publicFinanceRoutes } from "./routes-public.js";
4
7
  export { publicFinanceService } from "./service-public.js";
5
8
  export const invoiceLinkable = {
@@ -29,13 +32,24 @@ export const financeModule = {
29
32
  name: "finance",
30
33
  linkable: financeLinkable,
31
34
  };
32
- export const financeHonoModule = {
33
- module: financeModule,
34
- adminRoutes: financeRoutes,
35
- publicRoutes: publicFinanceRoutes,
36
- routes: financeRoutes,
37
- };
35
+ export function createFinanceHonoModule(options = {}) {
36
+ const adminRoutes = new Hono()
37
+ .route("/", financeRoutes)
38
+ .route("/", createFinanceAdminDocumentRoutes(options))
39
+ .route("/", createFinanceAdminSettlementRoutes(options));
40
+ return {
41
+ module: financeModule,
42
+ adminRoutes,
43
+ publicRoutes: publicFinanceRoutes,
44
+ routes: adminRoutes,
45
+ };
46
+ }
47
+ export const financeHonoModule = createFinanceHonoModule();
48
+ export { createFinanceAdminDocumentRoutes, } from "./routes-documents.js";
49
+ export { createFinanceAdminSettlementRoutes, } from "./routes-settlement.js";
38
50
  export { bookingGuarantees, bookingItemCommissions, bookingItemTaxLines, bookingPaymentSchedules, creditNoteLineItems, creditNotes, financeNotes, invoiceExternalRefs, invoiceLineItems, invoiceNumberSeries, invoiceRenditions, invoices, invoiceTemplates, paymentAuthorizations, paymentCaptures, paymentInstruments, paymentSessions, payments, supplierPayments, taxRegimes, } from "./schema.js";
39
51
  export { financeService, renderInvoiceBody } from "./service.js";
40
- export { agingReportQuerySchema, allocateInvoiceNumberInputSchema, applyDefaultBookingPaymentPlanSchema, cancelPaymentSessionSchema, completePaymentSessionSchema, createPaymentSessionFromGuaranteeSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, expirePaymentSessionSchema, failPaymentSessionSchema, insertBookingGuaranteeSchema, insertBookingItemCommissionSchema, insertBookingItemTaxLineSchema, insertBookingPaymentScheduleSchema, insertCreditNoteLineItemSchema, insertCreditNoteSchema, insertFinanceNoteSchema, insertInvoiceExternalRefSchema, insertInvoiceLineItemSchema, insertInvoiceNumberSeriesSchema, insertInvoiceRenditionSchema, insertInvoiceSchema, insertInvoiceTemplateSchema, insertPaymentAuthorizationSchema, insertPaymentCaptureSchema, insertPaymentInstrumentSchema, insertPaymentSchema, insertPaymentSessionSchema, insertSupplierPaymentSchema, insertTaxRegimeSchema, invoiceFromBookingSchema, invoiceListQuerySchema, invoiceNumberSeriesListQuerySchema, invoiceTemplateListQuerySchema, markPaymentSessionRequiresRedirectSchema, paymentAuthorizationListQuerySchema, paymentCaptureListQuerySchema, paymentInstrumentListQuerySchema, paymentSessionListQuerySchema, profitabilityQuerySchema, renderInvoiceInputSchema, revenueReportQuerySchema, supplierPaymentListQuerySchema, taxRegimeListQuerySchema, updateBookingGuaranteeSchema, updateBookingItemCommissionSchema, updateBookingItemTaxLineSchema, updateBookingPaymentScheduleSchema, updateCreditNoteLineItemSchema, updateCreditNoteSchema, updateInvoiceExternalRefSchema, updateInvoiceLineItemSchema, updateInvoiceNumberSeriesSchema, updateInvoiceRenditionSchema, updateInvoiceSchema, updateInvoiceTemplateSchema, updatePaymentAuthorizationSchema, updatePaymentCaptureSchema, updatePaymentInstrumentSchema, updatePaymentSchema, updatePaymentSessionSchema, updateSupplierPaymentSchema, updateTaxRegimeSchema, } from "./validation.js";
41
- export { publicBookingFinanceDocumentsSchema, publicBookingPaymentOptionsSchema, publicFinanceBookingDocumentSchema, publicFinanceDocumentAvailabilitySchema, publicFinanceDocumentFormatSchema, publicFinanceInvoiceTypeSchema, publicPaymentOptionsQuerySchema, publicPaymentSessionSchema, publicStartPaymentSessionSchema, publicValidateVoucherSchema, publicVoucherValidationSchema, } from "./validation-public.js";
52
+ export { createPdfInvoiceDocumentGenerator, createStorageBackedInvoiceDocumentGenerator, defaultPdfInvoiceDocumentSerializer, defaultStorageBackedInvoiceDocumentSerializer, financeDocumentsService, } from "./service-documents.js";
53
+ export { financeSettlementService } from "./service-settlement.js";
54
+ export { agingReportQuerySchema, allocateInvoiceNumberInputSchema, applyDefaultBookingPaymentPlanSchema, cancelPaymentSessionSchema, completePaymentSessionSchema, createPaymentSessionFromGuaranteeSchema, createPaymentSessionFromInvoiceSchema, createPaymentSessionFromScheduleSchema, expirePaymentSessionSchema, failPaymentSessionSchema, generatedInvoiceDocumentResultSchema, generateInvoiceDocumentInputSchema, insertBookingGuaranteeSchema, insertBookingItemCommissionSchema, insertBookingItemTaxLineSchema, insertBookingPaymentScheduleSchema, insertCreditNoteLineItemSchema, insertCreditNoteSchema, insertFinanceNoteSchema, insertInvoiceExternalRefSchema, insertInvoiceLineItemSchema, insertInvoiceNumberSeriesSchema, insertInvoiceRenditionSchema, insertInvoiceSchema, insertInvoiceTemplateSchema, insertPaymentAuthorizationSchema, insertPaymentCaptureSchema, insertPaymentInstrumentSchema, insertPaymentSchema, insertPaymentSessionSchema, insertSupplierPaymentSchema, insertTaxRegimeSchema, invoiceFromBookingSchema, invoiceListQuerySchema, invoiceNumberSeriesListQuerySchema, invoiceTemplateListQuerySchema, markPaymentSessionRequiresRedirectSchema, paymentAuthorizationListQuerySchema, paymentCaptureListQuerySchema, paymentInstrumentListQuerySchema, paymentSessionListQuerySchema, polledInvoiceSettlementProviderResultSchema, polledInvoiceSettlementResultSchema, pollInvoiceSettlementInputSchema, profitabilityQuerySchema, renderInvoiceInputSchema, revenueReportQuerySchema, supplierPaymentListQuerySchema, taxRegimeListQuerySchema, updateBookingGuaranteeSchema, updateBookingItemCommissionSchema, updateBookingItemTaxLineSchema, updateBookingPaymentScheduleSchema, updateCreditNoteLineItemSchema, updateCreditNoteSchema, updateInvoiceExternalRefSchema, updateInvoiceLineItemSchema, updateInvoiceNumberSeriesSchema, updateInvoiceRenditionSchema, updateInvoiceSchema, updateInvoiceTemplateSchema, updatePaymentAuthorizationSchema, updatePaymentCaptureSchema, updatePaymentInstrumentSchema, updatePaymentSchema, updatePaymentSessionSchema, updateSupplierPaymentSchema, updateTaxRegimeSchema, } from "./validation.js";
55
+ export { publicBookingFinanceDocumentsSchema, publicBookingFinancePaymentsSchema, publicBookingPaymentOptionsSchema, publicFinanceBookingDocumentSchema, publicFinanceBookingPaymentSchema, publicFinanceDocumentAvailabilitySchema, publicFinanceDocumentFormatSchema, publicFinanceInvoiceTypeSchema, publicPaymentOptionsQuerySchema, publicPaymentSessionSchema, publicStartPaymentSessionSchema, publicValidateVoucherSchema, publicVoucherValidationSchema, } from "./validation-public.js";
@@ -0,0 +1,159 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ import { financeDocumentsService } from "./service-documents.js";
3
+ type Env = {
4
+ Bindings: Record<string, unknown>;
5
+ Variables: {
6
+ db: PostgresJsDatabase;
7
+ userId?: string;
8
+ };
9
+ };
10
+ export type InvoiceDocumentGenerator = Parameters<typeof financeDocumentsService.generateInvoiceDocument>[3]["generator"];
11
+ export interface FinanceDocumentRouteOptions {
12
+ invoiceDocumentGenerator?: InvoiceDocumentGenerator;
13
+ resolveInvoiceDocumentGenerator?: (bindings: Record<string, unknown>) => InvoiceDocumentGenerator | undefined;
14
+ }
15
+ export declare function createFinanceAdminDocumentRoutes(options?: FinanceDocumentRouteOptions): import("hono/hono-base").HonoBase<Env, {
16
+ "/invoices/:id/generate-document": {
17
+ $post: {
18
+ input: {
19
+ param: {
20
+ id: string;
21
+ };
22
+ };
23
+ output: {
24
+ error: string;
25
+ };
26
+ outputFormat: "json";
27
+ status: 501;
28
+ } | {
29
+ input: {
30
+ param: {
31
+ id: string;
32
+ };
33
+ };
34
+ output: {
35
+ error: string;
36
+ };
37
+ outputFormat: "json";
38
+ status: 404;
39
+ } | {
40
+ input: {
41
+ param: {
42
+ id: string;
43
+ };
44
+ };
45
+ output: {
46
+ error: string;
47
+ };
48
+ outputFormat: "json";
49
+ status: 502;
50
+ } | {
51
+ input: {
52
+ param: {
53
+ id: string;
54
+ };
55
+ };
56
+ output: {
57
+ data: {
58
+ status: "not_found" | "generator_failed";
59
+ } | {
60
+ status: "generated";
61
+ invoiceId: string;
62
+ renderedBodyFormat: "html" | "markdown" | "lexical_json";
63
+ renderedBody: string;
64
+ rendition: {
65
+ format: "json" | "pdf" | "html" | "xml";
66
+ id: string;
67
+ status: "pending" | "failed" | "ready" | "stale";
68
+ createdAt: string;
69
+ updatedAt: string;
70
+ metadata: import("hono/utils/types").JSONValue;
71
+ templateId: string | null;
72
+ language: string | null;
73
+ invoiceId: string;
74
+ storageKey: string | null;
75
+ fileSize: number | null;
76
+ checksum: string | null;
77
+ errorMessage: string | null;
78
+ generatedAt: string | null;
79
+ };
80
+ };
81
+ };
82
+ outputFormat: "json";
83
+ status: 201;
84
+ };
85
+ };
86
+ } & {
87
+ "/invoices/:id/regenerate-document": {
88
+ $post: {
89
+ input: {
90
+ param: {
91
+ id: string;
92
+ };
93
+ };
94
+ output: {
95
+ error: string;
96
+ };
97
+ outputFormat: "json";
98
+ status: 501;
99
+ } | {
100
+ input: {
101
+ param: {
102
+ id: string;
103
+ };
104
+ };
105
+ output: {
106
+ error: string;
107
+ };
108
+ outputFormat: "json";
109
+ status: 404;
110
+ } | {
111
+ input: {
112
+ param: {
113
+ id: string;
114
+ };
115
+ };
116
+ output: {
117
+ error: string;
118
+ };
119
+ outputFormat: "json";
120
+ status: 502;
121
+ } | {
122
+ input: {
123
+ param: {
124
+ id: string;
125
+ };
126
+ };
127
+ output: {
128
+ data: {
129
+ status: "not_found" | "generator_failed";
130
+ } | {
131
+ status: "generated";
132
+ invoiceId: string;
133
+ renderedBodyFormat: "html" | "markdown" | "lexical_json";
134
+ renderedBody: string;
135
+ rendition: {
136
+ format: "json" | "pdf" | "html" | "xml";
137
+ id: string;
138
+ status: "pending" | "failed" | "ready" | "stale";
139
+ createdAt: string;
140
+ updatedAt: string;
141
+ metadata: import("hono/utils/types").JSONValue;
142
+ templateId: string | null;
143
+ language: string | null;
144
+ invoiceId: string;
145
+ storageKey: string | null;
146
+ fileSize: number | null;
147
+ checksum: string | null;
148
+ errorMessage: string | null;
149
+ generatedAt: string | null;
150
+ };
151
+ };
152
+ };
153
+ outputFormat: "json";
154
+ status: import("hono/utils/http-status").ContentfulStatusCode;
155
+ };
156
+ };
157
+ }, "/", "/invoices/:id/regenerate-document">;
158
+ export {};
159
+ //# sourceMappingURL=routes-documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-documents.d.ts","sourceRoot":"","sources":["../src/routes-documents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAGhE,KAAK,GAAG,GAAG;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAC/C,OAAO,uBAAuB,CAAC,uBAAuB,CACvD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;AAEjB,MAAM,WAAW,2BAA2B;IAC1C,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD,+BAA+B,CAAC,EAAE,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,wBAAwB,GAAG,SAAS,CAAA;CAC1C;AASD,wBAAgB,gCAAgC,CAAC,OAAO,GAAE,2BAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CA0CzF"}
@@ -0,0 +1,35 @@
1
+ import { Hono } from "hono";
2
+ import { financeDocumentsService } from "./service-documents.js";
3
+ import { generateInvoiceDocumentInputSchema } from "./validation.js";
4
+ function resolveInvoiceDocumentGenerator(options, bindings) {
5
+ return options?.resolveInvoiceDocumentGenerator?.(bindings) ?? options?.invoiceDocumentGenerator;
6
+ }
7
+ export function createFinanceAdminDocumentRoutes(options = {}) {
8
+ return new Hono()
9
+ .post("/invoices/:id/generate-document", async (c) => {
10
+ const generator = resolveInvoiceDocumentGenerator(options, c.env);
11
+ if (!generator) {
12
+ return c.json({ error: "Invoice document generator is not configured" }, 501);
13
+ }
14
+ const result = await financeDocumentsService.generateInvoiceDocument(c.get("db"), c.req.param("id"), generateInvoiceDocumentInputSchema.parse(await c.req.json().catch(() => ({}))), { generator, bindings: c.env });
15
+ if (result.status === "not_found")
16
+ return c.json({ error: "Invoice not found" }, 404);
17
+ if (result.status === "generator_failed") {
18
+ return c.json({ error: "Invoice document generation failed" }, 502);
19
+ }
20
+ return c.json({ data: result }, 201);
21
+ })
22
+ .post("/invoices/:id/regenerate-document", async (c) => {
23
+ const generator = resolveInvoiceDocumentGenerator(options, c.env);
24
+ if (!generator) {
25
+ return c.json({ error: "Invoice document generator is not configured" }, 501);
26
+ }
27
+ const result = await financeDocumentsService.regenerateInvoiceDocument(c.get("db"), c.req.param("id"), generateInvoiceDocumentInputSchema.parse(await c.req.json().catch(() => ({}))), { generator, bindings: c.env });
28
+ if (result.status === "not_found")
29
+ return c.json({ error: "Invoice not found" }, 404);
30
+ if (result.status === "generator_failed") {
31
+ return c.json({ error: "Invoice document generation failed" }, 502);
32
+ }
33
+ return c.json({ data: result });
34
+ });
35
+ }
@@ -153,6 +153,47 @@ export declare const publicFinanceRoutes: import("hono/hono-base").HonoBase<Env,
153
153
  status: 404;
154
154
  };
155
155
  };
156
+ } & {
157
+ "/bookings/:bookingId/payments": {
158
+ $get: {
159
+ input: {
160
+ param: {
161
+ bookingId: string;
162
+ };
163
+ };
164
+ output: {
165
+ error: string;
166
+ };
167
+ outputFormat: "json";
168
+ status: 404;
169
+ } | {
170
+ input: {
171
+ param: {
172
+ bookingId: string;
173
+ };
174
+ };
175
+ output: {
176
+ data: {
177
+ bookingId: string;
178
+ payments: {
179
+ id: string;
180
+ invoiceId: string;
181
+ invoiceNumber: string;
182
+ invoiceType: "invoice" | "proforma" | "credit_note";
183
+ status: "completed" | "pending" | "failed" | "refunded";
184
+ paymentMethod: "other" | "voucher" | "wallet" | "bank_transfer" | "credit_card" | "debit_card" | "cash" | "cheque" | "direct_bill";
185
+ amountCents: number;
186
+ currency: string;
187
+ paymentDate: string;
188
+ referenceNumber: string | null;
189
+ notes: string | null;
190
+ }[];
191
+ };
192
+ };
193
+ outputFormat: "json";
194
+ status: import("hono/utils/http-status").ContentfulStatusCode;
195
+ };
196
+ };
156
197
  } & {
157
198
  "/bookings/:bookingId/payment-options": {
158
199
  $get: {
@@ -1 +1 @@
1
- {"version":3,"file":"routes-public.d.ts","sourceRoot":"","sources":["../src/routes-public.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAY,MAAM,oBAAoB,CAAA;AAgBvD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CA4E5B,CAAA;AAEJ,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
1
+ {"version":3,"file":"routes-public.d.ts","sourceRoot":"","sources":["../src/routes-public.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAY,MAAM,oBAAoB,CAAA;AAgBvD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAoF5B,CAAA;AAEJ,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
@@ -16,6 +16,10 @@ export const publicFinanceRoutes = new Hono()
16
16
  .get("/bookings/:bookingId/documents", async (c) => {
17
17
  const documents = await publicFinanceService.getBookingDocuments(c.get("db"), c.req.param("bookingId"));
18
18
  return documents ? c.json({ data: documents }) : notFound(c, "Booking documents not found");
19
+ })
20
+ .get("/bookings/:bookingId/payments", async (c) => {
21
+ const payments = await publicFinanceService.getBookingPayments(c.get("db"), c.req.param("bookingId"));
22
+ return payments ? c.json({ data: payments }) : notFound(c, "Booking payments not found");
19
23
  })
20
24
  .get("/bookings/:bookingId/payment-options", async (c) => {
21
25
  const options = await publicFinanceService.getBookingPaymentOptions(c.get("db"), c.req.param("bookingId"), publicPaymentOptionsQuerySchema.parse(Object.fromEntries(new URL(c.req.url).searchParams)));
@@ -0,0 +1,63 @@
1
+ import { type InvoiceSettlementPoller } from "./service-settlement.js";
2
+ type Env = {
3
+ Bindings: Record<string, unknown>;
4
+ Variables: {
5
+ db: import("drizzle-orm/postgres-js").PostgresJsDatabase;
6
+ userId?: string;
7
+ };
8
+ };
9
+ export interface FinanceSettlementRouteOptions {
10
+ invoiceSettlementPollers?: Record<string, InvoiceSettlementPoller>;
11
+ resolveInvoiceSettlementPollers?: (bindings: Record<string, unknown>) => Record<string, InvoiceSettlementPoller> | undefined;
12
+ }
13
+ export declare function createFinanceAdminSettlementRoutes(options?: FinanceSettlementRouteOptions): import("hono/hono-base").HonoBase<Env, {
14
+ "/invoices/:id/poll-settlement": {
15
+ $post: {
16
+ input: {
17
+ param: {
18
+ id: string;
19
+ };
20
+ };
21
+ output: {
22
+ error: string;
23
+ };
24
+ outputFormat: "json";
25
+ status: 404;
26
+ } | {
27
+ input: {
28
+ param: {
29
+ id: string;
30
+ };
31
+ };
32
+ output: {
33
+ data: {
34
+ invoiceId: string;
35
+ invoiceStatus: "draft" | "sent" | "partially_paid" | "paid" | "overdue" | "void";
36
+ paidCents: number;
37
+ balanceDueCents: number;
38
+ results: {
39
+ provider: string;
40
+ externalRefId: string;
41
+ externalId: string | null;
42
+ externalNumber: string | null;
43
+ externalUrl: string | null;
44
+ status: string | null;
45
+ paidAmountCents: number | null;
46
+ unpaidAmountCents: number | null;
47
+ syncedAt: string | null;
48
+ settledAt: string | null;
49
+ createdPaymentId: string | null;
50
+ newlyAppliedAmountCents: number;
51
+ syncError: string | null;
52
+ }[];
53
+ } | {
54
+ status: "not_found";
55
+ };
56
+ };
57
+ outputFormat: "json";
58
+ status: import("hono/utils/http-status").ContentfulStatusCode;
59
+ };
60
+ };
61
+ }, "/", "/invoices/:id/poll-settlement">;
62
+ export type { InvoiceSettlementPoller } from "./service-settlement.js";
63
+ //# sourceMappingURL=routes-settlement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-settlement.d.ts","sourceRoot":"","sources":["../src/routes-settlement.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAGhG,KAAK,GAAG,GAAG;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE;QACT,EAAE,EAAE,OAAO,yBAAyB,EAAE,kBAAkB,CAAA;QACxD,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,MAAM,WAAW,6BAA6B;IAC5C,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IAClE,+BAA+B,CAAC,EAAE,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,CAAA;CACzD;AAWD,wBAAgB,kCAAkC,CAAC,OAAO,GAAE,6BAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAkB7F;AAED,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { Hono } from "hono";
2
+ import { financeSettlementService } from "./service-settlement.js";
3
+ import { pollInvoiceSettlementInputSchema } from "./validation.js";
4
+ function resolveInvoiceSettlementPollers(options, bindings) {
5
+ return (options?.resolveInvoiceSettlementPollers?.(bindings) ?? options?.invoiceSettlementPollers ?? {});
6
+ }
7
+ export function createFinanceAdminSettlementRoutes(options = {}) {
8
+ return new Hono().post("/invoices/:id/poll-settlement", async (c) => {
9
+ const result = await financeSettlementService.pollInvoiceSettlement(c.get("db"), c.req.param("id"), pollInvoiceSettlementInputSchema.parse(await c.req.json().catch(() => ({}))), {
10
+ bindings: c.env,
11
+ invoiceSettlementPollers: resolveInvoiceSettlementPollers(options, c.env),
12
+ });
13
+ if ("status" in result && result.status === "not_found") {
14
+ return c.json({ error: "Invoice not found" }, 404);
15
+ }
16
+ return c.json({ data: result });
17
+ });
18
+ }
@@ -0,0 +1,67 @@
1
+ import type { StorageProvider, StorageUploadBody } from "@voyantjs/voyant-storage";
2
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
3
+ import { type invoiceLineItems, type invoiceRenditions, type invoices, invoiceTemplates, type payments } from "./schema.js";
4
+ import type { GenerateInvoiceDocumentInput } from "./validation.js";
5
+ export interface GeneratedInvoiceRenditionArtifact {
6
+ format?: "html" | "pdf" | "xml" | "json";
7
+ storageKey?: string | null;
8
+ fileSize?: number | null;
9
+ checksum?: string | null;
10
+ language?: string | null;
11
+ metadata?: Record<string, unknown> | null;
12
+ }
13
+ export interface InvoiceDocumentGeneratorContext {
14
+ db: PostgresJsDatabase;
15
+ invoice: typeof invoices.$inferSelect;
16
+ template: typeof invoiceTemplates.$inferSelect | null;
17
+ lineItems: Array<typeof invoiceLineItems.$inferSelect>;
18
+ payments: Array<typeof payments.$inferSelect>;
19
+ renderedBody: string;
20
+ renderedBodyFormat: "html" | "markdown" | "lexical_json";
21
+ variables: Record<string, unknown>;
22
+ bindings: Record<string, unknown>;
23
+ targetFormat: "html" | "pdf" | "xml" | "json";
24
+ language: string | null;
25
+ }
26
+ export type InvoiceDocumentGenerator = (context: InvoiceDocumentGeneratorContext) => Promise<GeneratedInvoiceRenditionArtifact>;
27
+ export interface InvoiceDocumentRuntimeOptions {
28
+ bindings?: Record<string, unknown>;
29
+ generator: InvoiceDocumentGenerator;
30
+ }
31
+ export interface StorageBackedInvoiceDocumentUpload {
32
+ body: StorageUploadBody;
33
+ format?: "html" | "pdf" | "xml" | "json";
34
+ key?: string | null;
35
+ metadata?: Record<string, unknown> | null;
36
+ language?: string | null;
37
+ }
38
+ export type StorageBackedInvoiceDocumentSerializer = (context: InvoiceDocumentGeneratorContext) => Promise<StorageBackedInvoiceDocumentUpload> | StorageBackedInvoiceDocumentUpload;
39
+ export interface StorageBackedInvoiceDocumentGeneratorOptions {
40
+ storage: StorageProvider;
41
+ keyPrefix?: string | ((context: InvoiceDocumentGeneratorContext) => Promise<string> | string);
42
+ serializer?: StorageBackedInvoiceDocumentSerializer;
43
+ signedUrlExpiresIn?: number;
44
+ }
45
+ export interface GeneratedInvoiceDocumentRecord {
46
+ invoiceId: string;
47
+ renderedBodyFormat: "html" | "markdown" | "lexical_json";
48
+ renderedBody: string;
49
+ rendition: typeof invoiceRenditions.$inferSelect;
50
+ }
51
+ export declare function defaultStorageBackedInvoiceDocumentSerializer(context: InvoiceDocumentGeneratorContext): Promise<StorageBackedInvoiceDocumentUpload> | StorageBackedInvoiceDocumentUpload;
52
+ export declare function defaultPdfInvoiceDocumentSerializer(context: InvoiceDocumentGeneratorContext): Promise<StorageBackedInvoiceDocumentUpload>;
53
+ export declare function createStorageBackedInvoiceDocumentGenerator(options: StorageBackedInvoiceDocumentGeneratorOptions): InvoiceDocumentGenerator;
54
+ export declare function createPdfInvoiceDocumentGenerator(options: Omit<StorageBackedInvoiceDocumentGeneratorOptions, "serializer">): InvoiceDocumentGenerator;
55
+ export declare const financeDocumentsService: {
56
+ generateInvoiceDocument(db: PostgresJsDatabase, invoiceId: string, input: GenerateInvoiceDocumentInput, runtime: InvoiceDocumentRuntimeOptions): Promise<{
57
+ status: "not_found" | "generator_failed";
58
+ } | ({
59
+ status: "generated";
60
+ } & GeneratedInvoiceDocumentRecord)>;
61
+ regenerateInvoiceDocument(db: PostgresJsDatabase, invoiceId: string, input: GenerateInvoiceDocumentInput, runtime: InvoiceDocumentRuntimeOptions): Promise<{
62
+ status: "not_found" | "generator_failed";
63
+ } | ({
64
+ status: "generated";
65
+ } & GeneratedInvoiceDocumentRecord)>;
66
+ };
67
+ //# sourceMappingURL=service-documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-documents.d.ts","sourceRoot":"","sources":["../src/service-documents.ts"],"names":[],"mappings":"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"}