@amalaika/form-sdk-package 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +193 -233
  2. package/dist/cjs/client/index.d.ts +42 -3
  3. package/dist/cjs/client/index.d.ts.map +1 -1
  4. package/dist/cjs/client/index.js +274 -73
  5. package/dist/cjs/client/index.js.map +1 -1
  6. package/dist/cjs/i18n/en.json +7 -0
  7. package/dist/cjs/i18n/fr.json +7 -0
  8. package/dist/cjs/i18n/index.d.ts +2 -0
  9. package/dist/cjs/i18n/index.d.ts.map +1 -0
  10. package/dist/cjs/i18n/index.js +15 -0
  11. package/dist/cjs/i18n/index.js.map +1 -0
  12. package/dist/cjs/i18n/rw.json +7 -0
  13. package/dist/cjs/index.d.ts +4 -2
  14. package/dist/cjs/index.d.ts.map +1 -1
  15. package/dist/cjs/index.js +10 -1
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/integrations/checkout-script.d.ts +10 -0
  18. package/dist/cjs/integrations/checkout-script.d.ts.map +1 -0
  19. package/dist/cjs/integrations/checkout-script.js +38 -0
  20. package/dist/cjs/integrations/checkout-script.js.map +1 -0
  21. package/dist/cjs/integrations/index.d.ts +5 -0
  22. package/dist/cjs/integrations/index.d.ts.map +1 -0
  23. package/dist/cjs/integrations/index.js +49 -0
  24. package/dist/cjs/integrations/index.js.map +1 -0
  25. package/dist/cjs/integrations/mastercard.d.ts +11 -0
  26. package/dist/cjs/integrations/mastercard.d.ts.map +1 -0
  27. package/dist/cjs/integrations/mastercard.js +100 -0
  28. package/dist/cjs/integrations/mastercard.js.map +1 -0
  29. package/dist/cjs/integrations/types.d.ts +31 -0
  30. package/dist/cjs/integrations/types.d.ts.map +1 -0
  31. package/dist/cjs/{types.js.map → integrations/types.js.map} +1 -1
  32. package/dist/cjs/state/index.d.ts +29 -0
  33. package/dist/cjs/state/index.d.ts.map +1 -0
  34. package/dist/cjs/state/index.js +97 -0
  35. package/dist/cjs/state/index.js.map +1 -0
  36. package/dist/cjs/types/index.d.ts +80 -2
  37. package/dist/cjs/types/index.d.ts.map +1 -1
  38. package/dist/cjs/utils/index.d.ts +14 -1
  39. package/dist/cjs/utils/index.d.ts.map +1 -1
  40. package/dist/cjs/utils/index.js +122 -4
  41. package/dist/cjs/utils/index.js.map +1 -1
  42. package/dist/esm/client/index.d.ts +42 -3
  43. package/dist/esm/client/index.d.ts.map +1 -1
  44. package/dist/esm/client/index.js +274 -73
  45. package/dist/esm/client/index.js.map +1 -1
  46. package/dist/esm/i18n/en.json +7 -0
  47. package/dist/esm/i18n/fr.json +7 -0
  48. package/dist/esm/i18n/index.d.ts +2 -0
  49. package/dist/esm/i18n/index.d.ts.map +1 -0
  50. package/dist/esm/i18n/index.js +9 -0
  51. package/dist/esm/i18n/index.js.map +1 -0
  52. package/dist/esm/i18n/rw.json +7 -0
  53. package/dist/esm/index.d.ts +4 -2
  54. package/dist/esm/index.d.ts.map +1 -1
  55. package/dist/esm/index.js +3 -1
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/integrations/checkout-script.d.ts +10 -0
  58. package/dist/esm/integrations/checkout-script.d.ts.map +1 -0
  59. package/dist/esm/integrations/checkout-script.js +35 -0
  60. package/dist/esm/integrations/checkout-script.js.map +1 -0
  61. package/dist/esm/integrations/index.d.ts +5 -0
  62. package/dist/esm/integrations/index.d.ts.map +1 -0
  63. package/dist/esm/integrations/index.js +11 -0
  64. package/dist/esm/integrations/index.js.map +1 -0
  65. package/dist/esm/integrations/mastercard.d.ts +11 -0
  66. package/dist/esm/integrations/mastercard.d.ts.map +1 -0
  67. package/dist/esm/integrations/mastercard.js +97 -0
  68. package/dist/esm/integrations/mastercard.js.map +1 -0
  69. package/dist/esm/integrations/types.d.ts +31 -0
  70. package/dist/esm/integrations/types.d.ts.map +1 -0
  71. package/dist/esm/{types.js.map → integrations/types.js.map} +1 -1
  72. package/dist/esm/state/index.d.ts +29 -0
  73. package/dist/esm/state/index.d.ts.map +1 -0
  74. package/dist/esm/state/index.js +93 -0
  75. package/dist/esm/state/index.js.map +1 -0
  76. package/dist/esm/types/index.d.ts +80 -2
  77. package/dist/esm/types/index.d.ts.map +1 -1
  78. package/dist/esm/utils/index.d.ts +14 -1
  79. package/dist/esm/utils/index.d.ts.map +1 -1
  80. package/dist/esm/utils/index.js +117 -4
  81. package/dist/esm/utils/index.js.map +1 -1
  82. package/package.json +2 -4
  83. package/dist/cjs/client/__tests__/client.spec.d.ts +0 -2
  84. package/dist/cjs/client/__tests__/client.spec.d.ts.map +0 -1
  85. package/dist/cjs/client/__tests__/client.spec.js +0 -300
  86. package/dist/cjs/client/__tests__/client.spec.js.map +0 -1
  87. package/dist/cjs/client.d.ts +0 -22
  88. package/dist/cjs/client.d.ts.map +0 -1
  89. package/dist/cjs/client.js +0 -111
  90. package/dist/cjs/client.js.map +0 -1
  91. package/dist/cjs/types.d.ts +0 -78
  92. package/dist/cjs/types.d.ts.map +0 -1
  93. package/dist/cjs/utils/__tests__/utils.spec.d.ts +0 -2
  94. package/dist/cjs/utils/__tests__/utils.spec.d.ts.map +0 -1
  95. package/dist/cjs/utils/__tests__/utils.spec.js +0 -172
  96. package/dist/cjs/utils/__tests__/utils.spec.js.map +0 -1
  97. package/dist/cjs/utils.d.ts +0 -5
  98. package/dist/cjs/utils.d.ts.map +0 -1
  99. package/dist/cjs/utils.js +0 -45
  100. package/dist/cjs/utils.js.map +0 -1
  101. package/dist/esm/client/__tests__/client.spec.d.ts +0 -2
  102. package/dist/esm/client/__tests__/client.spec.d.ts.map +0 -1
  103. package/dist/esm/client/__tests__/client.spec.js +0 -355
  104. package/dist/esm/client/__tests__/client.spec.js.map +0 -1
  105. package/dist/esm/client.d.ts +0 -22
  106. package/dist/esm/client.d.ts.map +0 -1
  107. package/dist/esm/client.js +0 -107
  108. package/dist/esm/client.js.map +0 -1
  109. package/dist/esm/types.d.ts +0 -78
  110. package/dist/esm/types.d.ts.map +0 -1
  111. package/dist/esm/utils/__tests__/utils.spec.d.ts +0 -2
  112. package/dist/esm/utils/__tests__/utils.spec.d.ts.map +0 -1
  113. package/dist/esm/utils/__tests__/utils.spec.js +0 -182
  114. package/dist/esm/utils/__tests__/utils.spec.js.map +0 -1
  115. package/dist/esm/utils.d.ts +0 -5
  116. package/dist/esm/utils.d.ts.map +0 -1
  117. package/dist/esm/utils.js +0 -40
  118. package/dist/esm/utils.js.map +0 -1
  119. /package/dist/cjs/{types.js → integrations/types.js} +0 -0
  120. /package/dist/esm/{types.js → integrations/types.js} +0 -0
@@ -0,0 +1,5 @@
1
+ import type { IntegrationHandler } from "./types.js";
2
+ export declare function getIntegrationHandler(methodName: string): Promise<IntegrationHandler | undefined>;
3
+ export { loadCheckoutScript } from "./checkout-script.js";
4
+ export type { IntegrationHandler, IntegrationHandlerParams } from "./types.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOrD,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAIzC;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.loadCheckoutScript = void 0;
37
+ exports.getIntegrationHandler = getIntegrationHandler;
38
+ const registry = {
39
+ mastercard_payment_gateway: () => Promise.resolve().then(() => __importStar(require("./mastercard.js"))).then((m) => m.mastercardPaymentGateway),
40
+ };
41
+ async function getIntegrationHandler(methodName) {
42
+ const loader = registry[methodName];
43
+ if (!loader)
44
+ return undefined;
45
+ return loader();
46
+ }
47
+ var checkout_script_js_1 = require("./checkout-script.js");
48
+ Object.defineProperty(exports, "loadCheckoutScript", { enumerable: true, get: function () { return checkout_script_js_1.loadCheckoutScript; } });
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,sDAMC;AAXD,MAAM,QAAQ,GAAsD;IAClE,0BAA0B,EAAE,GAAG,EAAE,CAC/B,kDAAO,iBAAiB,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC;CACpE,CAAC;AAEK,KAAK,UAAU,qBAAqB,CACzC,UAAkB;IAElB,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC;AAED,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,11 @@
1
+ import type { IntegrationResult } from "../types/index.js";
2
+ import type { IntegrationHandlerParams } from "./types.js";
3
+ declare global {
4
+ interface Window {
5
+ completeCallback?: (result: Record<string, unknown>) => void;
6
+ errorCallback?: (error: Record<string, unknown>) => void;
7
+ cancelCallback?: () => void;
8
+ }
9
+ }
10
+ export declare function mastercardPaymentGateway(params: IntegrationHandlerParams): Promise<IntegrationResult>;
11
+ //# sourceMappingURL=mastercard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mastercard.d.ts","sourceRoot":"","sources":["../../../src/integrations/mastercard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC7D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QACzD,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;KAC7B;CACF;AAyDD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAqE5B"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mastercardPaymentGateway = mastercardPaymentGateway;
4
+ const index_js_1 = require("../i18n/index.js");
5
+ const checkout_script_js_1 = require("./checkout-script.js");
6
+ const DEFAULT_CHECKOUT_SCRIPT_URL = "https://ap-gateway.mastercard.com/static/checkout/checkout.min.js";
7
+ const ELEMENT_WAIT_TIMEOUT_MS = 5_000;
8
+ function waitForElement(selector) {
9
+ return new Promise((resolve, reject) => {
10
+ const existing = document.querySelector(selector);
11
+ if (existing) {
12
+ resolve(existing);
13
+ return;
14
+ }
15
+ const timer = setTimeout(() => {
16
+ observer.disconnect();
17
+ reject(new Error(`Element "${selector}" not found within timeout`));
18
+ }, ELEMENT_WAIT_TIMEOUT_MS);
19
+ const observer = new MutationObserver(() => {
20
+ const el = document.querySelector(selector);
21
+ if (el) {
22
+ observer.disconnect();
23
+ clearTimeout(timer);
24
+ resolve(el);
25
+ }
26
+ });
27
+ observer.observe(document.body, { childList: true, subtree: true });
28
+ });
29
+ }
30
+ async function confirmPayment(params, resultIndicator) {
31
+ const res = await fetch(`${params.apiBase}/payments/mastercard-payment-gateway/confirm/public`, {
32
+ method: "POST",
33
+ headers: { ...params.headers, "Content-Type": "application/json" },
34
+ body: JSON.stringify({
35
+ orderId: params.orderId,
36
+ resultIndicator,
37
+ }),
38
+ });
39
+ if (!res.ok) {
40
+ const body = await res.json().catch(() => null);
41
+ throw new Error(body?.message
42
+ ?? "Payment confirmation failed");
43
+ }
44
+ }
45
+ async function mastercardPaymentGateway(params) {
46
+ const locale = params.locale;
47
+ if (typeof document === "undefined") {
48
+ return { success: false, error: (0, index_js_1.t)("mastercard_script_load_failed", locale) };
49
+ }
50
+ if (!params.sessionId || !params.orderId || !params.containerId) {
51
+ return { success: false, error: (0, index_js_1.t)("mastercard_missing_session", locale) };
52
+ }
53
+ return new Promise((resolve) => {
54
+ const cleanup = () => {
55
+ delete window.completeCallback;
56
+ delete window.errorCallback;
57
+ delete window.cancelCallback;
58
+ sessionStorage.clear();
59
+ };
60
+ const fail = (error, data) => {
61
+ cleanup();
62
+ resolve({ success: false, error, data });
63
+ };
64
+ const scriptUrl = params.checkoutUrl || DEFAULT_CHECKOUT_SCRIPT_URL;
65
+ (0, checkout_script_js_1.loadCheckoutScript)(scriptUrl)
66
+ .then(async () => {
67
+ if (!window.Checkout) {
68
+ fail((0, index_js_1.t)("mastercard_script_load_failed", locale));
69
+ return;
70
+ }
71
+ window.completeCallback = (result) => {
72
+ cleanup();
73
+ confirmPayment(params, String(result.resultIndicator ?? ""))
74
+ .then(() => resolve({ success: true, status: "complete", data: result }))
75
+ .catch(() => resolve({ success: false, error: (0, index_js_1.t)("mastercard_payment_failed", locale), data: result }));
76
+ };
77
+ window.errorCallback = (error) => {
78
+ const explanation = error?.["error.explanation"];
79
+ fail(typeof explanation === "string" ? explanation : (0, index_js_1.t)("mastercard_payment_failed", locale), error);
80
+ };
81
+ window.cancelCallback = () => {
82
+ fail((0, index_js_1.t)("mastercard_cancelled", locale));
83
+ };
84
+ window.Checkout.configure({
85
+ session: { id: params.sessionId },
86
+ });
87
+ try {
88
+ await waitForElement(params.containerId);
89
+ }
90
+ catch {
91
+ fail((0, index_js_1.t)("mastercard_script_load_failed", locale));
92
+ return;
93
+ }
94
+ document.dispatchEvent(new CustomEvent("mastercard-payment-start"));
95
+ window.Checkout.showEmbeddedPage(params.containerId);
96
+ })
97
+ .catch(() => fail((0, index_js_1.t)("mastercard_script_load_failed", locale)));
98
+ });
99
+ }
100
+ //# sourceMappingURL=mastercard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mastercard.js","sourceRoot":"","sources":["../../../src/integrations/mastercard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { IntegrationResult } from "../types/index.js";
2
+ export interface IntegrationHandlerParams {
3
+ /** SDK's configured API base URL */
4
+ apiBase: string;
5
+ /** Pre-built headers (locale, origin, cache-control) */
6
+ headers: Record<string, string>;
7
+ /** The integration method name as stored in the schema */
8
+ methodName: string;
9
+ /** All current form field values */
10
+ formData: Record<string, unknown>;
11
+ /** Event ID from submission context */
12
+ eventId: number;
13
+ /** Ticket / resource ID from submission context */
14
+ resourceId: number;
15
+ /** Resource type (ticketing, accommodation, exhibition) */
16
+ resourceType: string;
17
+ /** Active locale (e.g. "en", "fr", "rw") for localized error messages */
18
+ locale?: string;
19
+ /** Payment session ID from the submission response */
20
+ sessionId?: string;
21
+ /** Order ID from the submission response */
22
+ orderId?: string;
23
+ /** CSS selector for the container where embedded payment UI should render */
24
+ containerId?: string;
25
+ /** Mastercard checkout script URL override */
26
+ checkoutUrl?: string;
27
+ /** Merchant name shown in the Mastercard checkout UI */
28
+ merchantName?: string;
29
+ }
30
+ export type IntegrationHandler = (params: IntegrationHandlerParams) => Promise<IntegrationResult>;
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,MAAM,EAAE,wBAAwB,KAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import type { FieldDefinition, ResolvedIntegration } from "../types/index.js";
2
+ type ChangeCallback = (fieldId: string, value: unknown) => void;
3
+ export declare class FormStateManager {
4
+ private readonly fields;
5
+ private readonly values;
6
+ private readonly initialValues;
7
+ private readonly touched;
8
+ private readonly callbacks;
9
+ constructor(fields: FieldDefinition[]);
10
+ getValue(fieldId: string): unknown;
11
+ setValue(fieldId: string, value: unknown): void;
12
+ getValues(): Record<string, unknown>;
13
+ setValues(values: Record<string, unknown>): void;
14
+ isDirty(): boolean;
15
+ getDirtyFields(): Set<string>;
16
+ isTouched(fieldId: string): boolean;
17
+ touchField(fieldId: string): void;
18
+ reset(): void;
19
+ getVisibleFieldIds(): Set<string>;
20
+ getSubmissionData(): Record<string, unknown>;
21
+ /**
22
+ * Returns integrations that need to be executed based on the current
23
+ * visible field values (e.g. user selected "CARD" → "stripe_checkout").
24
+ */
25
+ getActiveIntegrations(): ResolvedIntegration[];
26
+ onChange(callback: ChangeCallback): () => void;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG9E,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAEhE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAE3C,MAAM,EAAE,eAAe,EAAE;IAIrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIlC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAO/C,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAShD,OAAO,IAAI,OAAO;IAIlB,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC;IAY7B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAInC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC,KAAK,IAAI,IAAI;IAQb,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC;IAUjC,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW5C;;;OAGG;IACH,qBAAqB,IAAI,mBAAmB,EAAE;IAM9C,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,IAAI;CAM/C"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormStateManager = void 0;
4
+ const index_js_1 = require("../utils/index.js");
5
+ class FormStateManager {
6
+ fields;
7
+ values = {};
8
+ initialValues = {};
9
+ touched = new Set();
10
+ callbacks = new Set();
11
+ constructor(fields) {
12
+ this.fields = fields;
13
+ }
14
+ getValue(fieldId) {
15
+ return this.values[fieldId];
16
+ }
17
+ setValue(fieldId, value) {
18
+ this.values[fieldId] = value;
19
+ for (const cb of this.callbacks) {
20
+ cb(fieldId, value);
21
+ }
22
+ }
23
+ getValues() {
24
+ return { ...this.values };
25
+ }
26
+ setValues(values) {
27
+ for (const [key, value] of Object.entries(values)) {
28
+ this.values[key] = value;
29
+ for (const cb of this.callbacks) {
30
+ cb(key, value);
31
+ }
32
+ }
33
+ }
34
+ isDirty() {
35
+ return this.getDirtyFields().size > 0;
36
+ }
37
+ getDirtyFields() {
38
+ const dirty = new Set();
39
+ for (const field of this.fields) {
40
+ const current = this.values[field.id];
41
+ const initial = this.initialValues[field.id];
42
+ if (current !== initial) {
43
+ dirty.add(field.id);
44
+ }
45
+ }
46
+ return dirty;
47
+ }
48
+ isTouched(fieldId) {
49
+ return this.touched.has(fieldId);
50
+ }
51
+ touchField(fieldId) {
52
+ this.touched.add(fieldId);
53
+ }
54
+ reset() {
55
+ for (const key of Object.keys(this.values)) {
56
+ delete this.values[key];
57
+ }
58
+ Object.assign(this.values, structuredClone(this.initialValues));
59
+ this.touched.clear();
60
+ }
61
+ getVisibleFieldIds() {
62
+ const visible = new Set();
63
+ for (const field of this.fields) {
64
+ if ((0, index_js_1.isFieldVisible)(field, this.values, this.fields)) {
65
+ visible.add(field.id);
66
+ }
67
+ }
68
+ return visible;
69
+ }
70
+ getSubmissionData() {
71
+ const visible = this.getVisibleFieldIds();
72
+ const data = {};
73
+ for (const [key, value] of Object.entries(this.values)) {
74
+ if (visible.has(key)) {
75
+ data[key] = value;
76
+ }
77
+ }
78
+ return data;
79
+ }
80
+ /**
81
+ * Returns integrations that need to be executed based on the current
82
+ * visible field values (e.g. user selected "CARD" → "stripe_checkout").
83
+ */
84
+ getActiveIntegrations() {
85
+ const visibleIds = this.getVisibleFieldIds();
86
+ const visibleFields = this.fields.filter((f) => visibleIds.has(f.id));
87
+ return (0, index_js_1.resolveIntegrations)(visibleFields, this.values);
88
+ }
89
+ onChange(callback) {
90
+ this.callbacks.add(callback);
91
+ return () => {
92
+ this.callbacks.delete(callback);
93
+ };
94
+ }
95
+ }
96
+ exports.FormStateManager = FormStateManager;
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export interface ErrorMessages {
2
2
  fetchTickets: string;
3
3
  fetchTicketById: string;
4
+ fetchPublicTicket: string;
4
5
  fetchLanguages: string;
5
6
  fetchForm: string;
6
7
  authorizeUpload: string;
@@ -18,6 +19,42 @@ export interface EventFormConfig {
18
19
  locale?: string;
19
20
  /** Custom error messages — override any or all defaults */
20
21
  errorMessages?: Partial<ErrorMessages>;
22
+ /** Origin header sent with every request (e.g. "https://myapp.com") */
23
+ origin?: string;
24
+ /** Request timeout in milliseconds (default: 30000) */
25
+ timeout?: number;
26
+ /** Retry configuration for failed requests */
27
+ retry?: {
28
+ maxRetries?: number;
29
+ delay?: number;
30
+ };
31
+ /** Response caching for GET requests */
32
+ cache?: {
33
+ enabled?: boolean;
34
+ ttl?: number;
35
+ };
36
+ /** Send Cache-Control: no-cache header with every request (default: false) */
37
+ noCache?: boolean;
38
+ /** Mastercard checkout script URL — defaults to production gateway */
39
+ mastercardCheckoutUrl?: string;
40
+ /** Merchant name shown in the Mastercard embedded checkout UI */
41
+ merchantName?: string;
42
+ /** Request/response interceptors */
43
+ interceptors?: {
44
+ request?: (config: {
45
+ url: string;
46
+ method: string;
47
+ headers: Record<string, string>;
48
+ body?: unknown;
49
+ }) => {
50
+ url: string;
51
+ method: string;
52
+ headers: Record<string, string>;
53
+ body?: unknown;
54
+ };
55
+ response?: (response: unknown) => unknown;
56
+ error?: (error: unknown) => unknown;
57
+ };
21
58
  }
22
59
  export interface FieldOption {
23
60
  id: string;
@@ -25,7 +62,7 @@ export interface FieldOption {
25
62
  }
26
63
  export interface FieldDefinition {
27
64
  id: string;
28
- type: "text" | "email" | "password" | "number" | "select" | "radio" | "checkbox" | "date" | "file";
65
+ type: "text" | "email" | "password" | "number" | "select" | "radio" | "checkbox" | "date" | "file" | "textarea" | "url" | "tel" | "time" | "datetime-local";
29
66
  required: boolean;
30
67
  system?: boolean;
31
68
  label?: string;
@@ -33,11 +70,22 @@ export interface FieldDefinition {
33
70
  options?: FieldOption[];
34
71
  accept?: string[];
35
72
  maxSize?: number;
73
+ minLength?: number;
74
+ maxLength?: number;
75
+ min?: number;
76
+ max?: number;
77
+ pattern?: string;
36
78
  visibility?: {
37
79
  dependsOn: string;
38
80
  operator: "equals" | "not_equals" | "in";
39
81
  value: string | string[];
40
82
  };
83
+ /** Maps option values to integration method names (e.g. { "CARD": "stripe_checkout" }) */
84
+ integrations?: Record<string, string>;
85
+ }
86
+ export interface ValidationResult {
87
+ valid: boolean;
88
+ error?: string;
41
89
  }
42
90
  export interface StepDefinition {
43
91
  id: string;
@@ -69,6 +117,37 @@ export interface TicketTranslation {
69
117
  name: string;
70
118
  createdBy: number;
71
119
  }
120
+ export interface IntegrationResult {
121
+ success: boolean;
122
+ /** "pending" means the handler started an async process (e.g. payment modal/redirect)
123
+ * and the consumer should NOT show a final success message yet.
124
+ * "complete" (or omitted) means the handler finished and `success` is the final outcome. */
125
+ status?: "pending" | "complete";
126
+ data?: unknown;
127
+ error?: string;
128
+ }
129
+ export interface ResolvedIntegration {
130
+ fieldId: string;
131
+ methodName: string;
132
+ selectedValue: string;
133
+ }
134
+ export interface PaymentInfo {
135
+ session_id: string;
136
+ order_id: string;
137
+ requiresPayment: boolean;
138
+ }
139
+ export interface SubmissionResponse {
140
+ id: number;
141
+ formId: number;
142
+ data: Record<string, unknown>;
143
+ eventId: number;
144
+ resourceType: string;
145
+ resourceId: number;
146
+ attendanceType: string | null;
147
+ submittedBy: number | null;
148
+ submittedAt: string;
149
+ payment: PaymentInfo | null;
150
+ }
72
151
  export interface Ticket {
73
152
  id: number;
74
153
  eventId: number;
@@ -76,7 +155,6 @@ export interface Ticket {
76
155
  currency: string;
77
156
  attendanceType: "VIRTUAL" | "PHYSICAL" | "HYBRID";
78
157
  virtualPrice: string | null;
79
- physicalPrice: string | null;
80
158
  quantityTotal: number;
81
159
  salesStartAt: string | null;
82
160
  salesEndAt: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,18 @@
1
- import type { FieldDefinition, FormSchema } from "../types/index.js";
1
+ import type { FieldDefinition, FormSchema, ResolvedIntegration, ValidationResult } from "../types/index.js";
2
2
  export declare function getAllFields(schema: FormSchema): FieldDefinition[];
3
3
  export declare function isFieldVisible(field: FieldDefinition, formValues: Record<string, unknown>, allFields: FieldDefinition[]): boolean;
4
4
  export declare function getVisibleFieldIds(allFields: FieldDefinition[], formValues: Record<string, unknown>): Set<string>;
5
+ export declare function validateField(field: FieldDefinition, value: unknown): ValidationResult;
6
+ export declare function validateForm(fields: FieldDefinition[], values: Record<string, unknown>): Record<string, ValidationResult>;
7
+ /** Returns true if the field has at least one integration mapping. */
8
+ export declare function hasIntegration(field: FieldDefinition): boolean;
9
+ /** Returns the integration method name for a given selected value or option object, or undefined. */
10
+ export declare function getIntegrationMethod(field: FieldDefinition, selectedValue: string | {
11
+ id: string;
12
+ }): string | undefined;
13
+ /**
14
+ * Scans all fields + current values and returns every integration that
15
+ * needs to be executed before submission.
16
+ */
17
+ export declare function resolveIntegrations(fields: FieldDefinition[], formValues: Record<string, unknown>): ResolvedIntegration[];
5
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAErE,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,EAAE,CAKlE;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,SAAS,EAAE,eAAe,EAAE,GAC3B,OAAO,CA0BT;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,eAAe,EAAE,EAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,GAAG,CAAC,MAAM,CAAC,CAQb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE5G,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,EAAE,CAKlE;AAwCD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,SAAS,EAAE,eAAe,EAAE,GAC3B,OAAO,CAET;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,eAAe,EAAE,EAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,GAAG,CAAC,MAAM,CAAC,CAQb;AAKD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,OAAO,GACb,gBAAgB,CAiElB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EAAE,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAWlC;AAID,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE9D;AAED,qGAAqG;AACrG,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GACrC,MAAM,GAAG,SAAS,CAGpB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,eAAe,EAAE,EACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,mBAAmB,EAAE,CAyBvB"}