@voyant-travel/plugin-netopia 0.104.22 → 0.105.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.
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Netopia implementation of the finance {@link CardPaymentStarter} contract.
3
+ *
4
+ * This is the one place that couples Netopia to a checkout surface: it resolves
5
+ * the request-scoped Netopia runtime from the container, starts a hosted
6
+ * payment via {@link startPaymentSession}, and returns the neutral
7
+ * `redirectUrl` finance's contract expects. When the runtime isn't configured
8
+ * it returns `null` so callers fall back (bank transfer still works).
9
+ */
10
+ import type { CardPaymentStarter } from "@voyant-travel/finance/card-payment";
11
+ /**
12
+ * Build the Netopia card-payment starter. Select it as a deployment's
13
+ * `CardPaymentStarter` to route every checkout surface's card payments through
14
+ * Netopia.
15
+ */
16
+ export declare function netopiaCardPaymentStarter(): CardPaymentStarter;
17
+ //# sourceMappingURL=card-payment-starter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-payment-starter.d.ts","sourceRoot":"","sources":["../src/card-payment-starter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAM7E;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,kBAAkB,CAuB9D"}
@@ -0,0 +1,23 @@
1
+ import { NETOPIA_RUNTIME_CONTAINER_KEY } from "./plugin.js";
2
+ import { startPaymentSession } from "./service-start.js";
3
+ /**
4
+ * Build the Netopia card-payment starter. Select it as a deployment's
5
+ * `CardPaymentStarter` to route every checkout surface's card payments through
6
+ * Netopia.
7
+ */
8
+ export function netopiaCardPaymentStarter() {
9
+ return async (c, args) => {
10
+ const runtime = c.var.container?.resolve(NETOPIA_RUNTIME_CONTAINER_KEY);
11
+ if (!runtime)
12
+ return null;
13
+ const started = await startPaymentSession(args.db, args.sessionId, {
14
+ // The neutral CardPaymentBilling is structurally compatible with
15
+ // Netopia's billing (same field names); callers always supply the full
16
+ // Netopia-shaped object, so the cast is safe.
17
+ billing: args.billing,
18
+ description: args.description,
19
+ returnUrl: args.returnUrl,
20
+ }, runtime);
21
+ return { redirectUrl: started.session.redirectUrl ?? null };
22
+ };
23
+ }
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { netopiaCardPaymentStarter } from "./card-payment-starter.js";
1
2
  export { createNetopiaCheckoutStarter } from "./checkout.js";
2
3
  export { createNetopiaClient, NETOPIA_API_BASES, type NetopiaClientApi, type NetopiaClientOptions, resolveNetopiaRuntimeOptions, } from "./client.js";
3
4
  export type { NetopiaNotificationRuntime, NetopiaNotificationRuntimeOptions, } from "./notification-runtime.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,4BAA4B,GAC7B,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,IAAI,2BAA2B,EAC5D,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,IAAI,0BAA0B,EAC/C,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,cAAc,GACf,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,oCAAoC,EACpC,mCAAmC,EACnC,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,4BAA4B,GAC7B,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,IAAI,2BAA2B,EAC5D,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,IAAI,0BAA0B,EAC/C,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,cAAc,GACf,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,oCAAoC,EACpC,mCAAmC,EACnC,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export { netopiaCardPaymentStarter } from "./card-payment-starter.js";
1
2
  export { createNetopiaCheckoutStarter } from "./checkout.js";
2
3
  export { createNetopiaClient, NETOPIA_API_BASES, resolveNetopiaRuntimeOptions, } from "./client.js";
3
4
  export { buildNetopiaNotificationRuntime } from "./notification-runtime.js";
package/dist/plugin.d.ts CHANGED
@@ -23,26 +23,26 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
23
23
  output: {
24
24
  data: {
25
25
  session: {
26
+ amountCents: number;
27
+ currency: string;
26
28
  metadata: {
27
29
  [x: string]: import("hono/utils/types").JSONValue;
28
30
  } | null;
29
31
  idempotencyKey: string | null;
30
32
  status: "failed" | "pending" | "cancelled" | "expired" | "processing" | "paid" | "requires_redirect" | "authorized";
31
- currency: string;
32
33
  id: string;
33
34
  createdAt: string;
34
35
  updatedAt: string;
35
36
  expiresAt: string | null;
36
37
  notes: string | null;
38
+ provider: string | null;
39
+ completedAt: string | null;
37
40
  bookingId: string | null;
38
41
  expiredAt: string | null;
39
42
  cancelledAt: string | null;
40
- completedAt: string | null;
41
43
  orderId: string | null;
42
- targetType: "other" | "booking" | "order" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
44
+ targetType: "invoice" | "other" | "booking" | "order" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
43
45
  targetId: string | null;
44
- provider: string | null;
45
- amountCents: number;
46
46
  bookingPaymentScheduleId: string | null;
47
47
  paymentMethod: "other" | "voucher" | "wallet" | "bank_transfer" | "credit_card" | "debit_card" | "cash" | "cheque" | "direct_bill" | null;
48
48
  invoiceId: string | null;
@@ -157,13 +157,13 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
157
157
  createdAt: string;
158
158
  updatedAt: string;
159
159
  organizationId: string | null;
160
- bookingId: string | null;
161
- personId: string | null;
162
- targetType: "organization" | "other" | "booking" | "person" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
163
- targetId: string | null;
164
160
  provider: string;
165
161
  scheduledFor: string | null;
166
162
  errorMessage: string | null;
163
+ bookingId: string | null;
164
+ personId: string | null;
165
+ targetType: "invoice" | "organization" | "other" | "booking" | "person" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
166
+ targetId: string | null;
167
167
  paymentSessionId: string | null;
168
168
  channel: "email" | "sms";
169
169
  templateId: string | null;
@@ -190,13 +190,13 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
190
190
  createdAt: string;
191
191
  updatedAt: string;
192
192
  organizationId: string | null;
193
- bookingId: string | null;
194
- personId: string | null;
195
- targetType: "organization" | "other" | "booking" | "person" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
196
- targetId: string | null;
197
193
  provider: string;
198
194
  scheduledFor: string | null;
199
195
  errorMessage: string | null;
196
+ bookingId: string | null;
197
+ personId: string | null;
198
+ targetType: "invoice" | "organization" | "other" | "booking" | "person" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
199
+ targetId: string | null;
200
200
  paymentSessionId: string | null;
201
201
  channel: "email" | "sms";
202
202
  templateId: string | null;
@@ -215,26 +215,26 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
215
215
  } | null;
216
216
  } | null;
217
217
  session: {
218
+ amountCents: number;
219
+ currency: string;
218
220
  metadata: {
219
221
  [x: string]: import("hono/utils/types").JSONValue;
220
222
  } | null;
221
223
  idempotencyKey: string | null;
222
224
  status: "failed" | "pending" | "cancelled" | "expired" | "processing" | "paid" | "requires_redirect" | "authorized";
223
- currency: string;
224
225
  id: string;
225
226
  createdAt: string;
226
227
  updatedAt: string;
227
228
  expiresAt: string | null;
228
229
  notes: string | null;
230
+ provider: string | null;
231
+ completedAt: string | null;
229
232
  bookingId: string | null;
230
233
  expiredAt: string | null;
231
234
  cancelledAt: string | null;
232
- completedAt: string | null;
233
235
  orderId: string | null;
234
- targetType: "other" | "booking" | "order" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
236
+ targetType: "invoice" | "other" | "booking" | "order" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
235
237
  targetId: string | null;
236
- provider: string | null;
237
- amountCents: number;
238
238
  bookingPaymentScheduleId: string | null;
239
239
  paymentMethod: "other" | "voucher" | "wallet" | "bank_transfer" | "credit_card" | "debit_card" | "cash" | "cheque" | "direct_bill" | null;
240
240
  invoiceId: string | null;
@@ -318,13 +318,13 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
318
318
  createdAt: string;
319
319
  updatedAt: string;
320
320
  organizationId: string | null;
321
- bookingId: string | null;
322
- personId: string | null;
323
- targetType: "organization" | "other" | "booking" | "person" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
324
- targetId: string | null;
325
321
  provider: string;
326
322
  scheduledFor: string | null;
327
323
  errorMessage: string | null;
324
+ bookingId: string | null;
325
+ personId: string | null;
326
+ targetType: "invoice" | "organization" | "other" | "booking" | "person" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
327
+ targetId: string | null;
328
328
  paymentSessionId: string | null;
329
329
  channel: "email" | "sms";
330
330
  templateId: string | null;
@@ -351,13 +351,13 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
351
351
  createdAt: string;
352
352
  updatedAt: string;
353
353
  organizationId: string | null;
354
- bookingId: string | null;
355
- personId: string | null;
356
- targetType: "organization" | "other" | "booking" | "person" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
357
- targetId: string | null;
358
354
  provider: string;
359
355
  scheduledFor: string | null;
360
356
  errorMessage: string | null;
357
+ bookingId: string | null;
358
+ personId: string | null;
359
+ targetType: "invoice" | "organization" | "other" | "booking" | "person" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
360
+ targetId: string | null;
361
361
  paymentSessionId: string | null;
362
362
  channel: "email" | "sms";
363
363
  templateId: string | null;
@@ -376,26 +376,26 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
376
376
  } | null;
377
377
  } | null;
378
378
  session: {
379
+ amountCents: number;
380
+ currency: string;
379
381
  metadata: {
380
382
  [x: string]: import("hono/utils/types").JSONValue;
381
383
  } | null;
382
384
  idempotencyKey: string | null;
383
385
  status: "failed" | "pending" | "cancelled" | "expired" | "processing" | "paid" | "requires_redirect" | "authorized";
384
- currency: string;
385
386
  id: string;
386
387
  createdAt: string;
387
388
  updatedAt: string;
388
389
  expiresAt: string | null;
389
390
  notes: string | null;
391
+ provider: string | null;
392
+ completedAt: string | null;
390
393
  bookingId: string | null;
391
394
  expiredAt: string | null;
392
395
  cancelledAt: string | null;
393
- completedAt: string | null;
394
396
  orderId: string | null;
395
- targetType: "other" | "booking" | "order" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
397
+ targetType: "invoice" | "other" | "booking" | "order" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
396
398
  targetId: string | null;
397
- provider: string | null;
398
- amountCents: number;
399
399
  bookingPaymentScheduleId: string | null;
400
400
  paymentMethod: "other" | "voucher" | "wallet" | "bank_transfer" | "credit_card" | "debit_card" | "cash" | "cheque" | "direct_bill" | null;
401
401
  invoiceId: string | null;
@@ -477,13 +477,13 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
477
477
  createdAt: string;
478
478
  updatedAt: string;
479
479
  organizationId: string | null;
480
- bookingId: string | null;
481
- personId: string | null;
482
- targetType: "organization" | "other" | "booking" | "person" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
483
- targetId: string | null;
484
480
  provider: string;
485
481
  scheduledFor: string | null;
486
482
  errorMessage: string | null;
483
+ bookingId: string | null;
484
+ personId: string | null;
485
+ targetType: "invoice" | "organization" | "other" | "booking" | "person" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
486
+ targetId: string | null;
487
487
  paymentSessionId: string | null;
488
488
  channel: "email" | "sms";
489
489
  templateId: string | null;
@@ -510,13 +510,13 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
510
510
  createdAt: string;
511
511
  updatedAt: string;
512
512
  organizationId: string | null;
513
- bookingId: string | null;
514
- personId: string | null;
515
- targetType: "organization" | "other" | "booking" | "person" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
516
- targetId: string | null;
517
513
  provider: string;
518
514
  scheduledFor: string | null;
519
515
  errorMessage: string | null;
516
+ bookingId: string | null;
517
+ personId: string | null;
518
+ targetType: "invoice" | "organization" | "other" | "booking" | "person" | "booking_payment_schedule" | "booking_guarantee" | "payment_session";
519
+ targetId: string | null;
520
520
  paymentSessionId: string | null;
521
521
  channel: "email" | "sms";
522
522
  templateId: string | null;
@@ -535,26 +535,26 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
535
535
  } | null;
536
536
  } | null;
537
537
  session: {
538
+ amountCents: number;
539
+ currency: string;
538
540
  metadata: {
539
541
  [x: string]: import("hono/utils/types").JSONValue;
540
542
  } | null;
541
543
  idempotencyKey: string | null;
542
544
  status: "failed" | "pending" | "cancelled" | "expired" | "processing" | "paid" | "requires_redirect" | "authorized";
543
- currency: string;
544
545
  id: string;
545
546
  createdAt: string;
546
547
  updatedAt: string;
547
548
  expiresAt: string | null;
548
549
  notes: string | null;
550
+ provider: string | null;
551
+ completedAt: string | null;
549
552
  bookingId: string | null;
550
553
  expiredAt: string | null;
551
554
  cancelledAt: string | null;
552
- completedAt: string | null;
553
555
  orderId: string | null;
554
- targetType: "other" | "booking" | "order" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
556
+ targetType: "invoice" | "other" | "booking" | "order" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
555
557
  targetId: string | null;
556
- provider: string | null;
557
- amountCents: number;
558
558
  bookingPaymentScheduleId: string | null;
559
559
  paymentMethod: "other" | "voucher" | "wallet" | "bank_transfer" | "credit_card" | "debit_card" | "cash" | "cheque" | "direct_bill" | null;
560
560
  invoiceId: string | null;
@@ -640,26 +640,26 @@ export declare function createNetopiaFinanceRoutes(options?: NetopiaRuntimeOptio
640
640
  action: import("./service-shared.js").NetopiaCallbackAction;
641
641
  reason?: string | undefined;
642
642
  session: {
643
+ amountCents: number;
644
+ currency: string;
643
645
  metadata: {
644
646
  [x: string]: import("hono/utils/types").JSONValue;
645
647
  } | null;
646
648
  idempotencyKey: string | null;
647
649
  status: "failed" | "pending" | "cancelled" | "expired" | "processing" | "paid" | "requires_redirect" | "authorized";
648
- currency: string;
649
650
  id: string;
650
651
  createdAt: string;
651
652
  updatedAt: string;
652
653
  expiresAt: string | null;
653
654
  notes: string | null;
655
+ provider: string | null;
656
+ completedAt: string | null;
654
657
  bookingId: string | null;
655
658
  expiredAt: string | null;
656
659
  cancelledAt: string | null;
657
- completedAt: string | null;
658
660
  orderId: string | null;
659
- targetType: "other" | "booking" | "order" | "invoice" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
661
+ targetType: "invoice" | "other" | "booking" | "order" | "booking_payment_schedule" | "booking_guarantee" | "flight_order";
660
662
  targetId: string | null;
661
- provider: string | null;
662
- amountCents: number;
663
663
  bookingPaymentScheduleId: string | null;
664
664
  paymentMethod: "other" | "voucher" | "wallet" | "bank_transfer" | "credit_card" | "debit_card" | "cash" | "cheque" | "direct_bill" | null;
665
665
  invoiceId: string | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyant-travel/plugin-netopia",
3
- "version": "0.104.22",
3
+ "version": "0.105.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -39,11 +39,11 @@
39
39
  "drizzle-orm": "^0.45.2",
40
40
  "hono": "^4.12.10",
41
41
  "zod": "^4.3.6",
42
- "@voyant-travel/core": "^0.109.0",
43
- "@voyant-travel/finance": "^0.121.0",
44
- "@voyant-travel/hono": "^0.111.0",
45
- "@voyant-travel/utils": "^0.105.2",
46
- "@voyant-travel/notifications": "^0.111.10"
42
+ "@voyant-travel/core": "^0.110.0",
43
+ "@voyant-travel/finance": "^0.123.0",
44
+ "@voyant-travel/hono": "^0.112.0",
45
+ "@voyant-travel/notifications": "^0.112.0",
46
+ "@voyant-travel/utils": "^0.105.2"
47
47
  },
48
48
  "devDependencies": {
49
49
  "typescript": "^6.0.2",