@amalaika/form-sdk-package 1.0.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 (75) hide show
  1. package/README.md +342 -0
  2. package/dist/cjs/client/__tests__/client.spec.d.ts +2 -0
  3. package/dist/cjs/client/__tests__/client.spec.d.ts.map +1 -0
  4. package/dist/cjs/client/__tests__/client.spec.js +300 -0
  5. package/dist/cjs/client/__tests__/client.spec.js.map +1 -0
  6. package/dist/cjs/client/index.d.ts +26 -0
  7. package/dist/cjs/client/index.d.ts.map +1 -0
  8. package/dist/cjs/client/index.js +179 -0
  9. package/dist/cjs/client/index.js.map +1 -0
  10. package/dist/cjs/client.d.ts +22 -0
  11. package/dist/cjs/client.d.ts.map +1 -0
  12. package/dist/cjs/client.js +111 -0
  13. package/dist/cjs/client.js.map +1 -0
  14. package/dist/cjs/index.d.ts +4 -0
  15. package/dist/cjs/index.d.ts.map +1 -0
  16. package/dist/cjs/index.js +10 -0
  17. package/dist/cjs/index.js.map +1 -0
  18. package/dist/cjs/package.json +1 -0
  19. package/dist/cjs/types/index.d.ts +91 -0
  20. package/dist/cjs/types/index.d.ts.map +1 -0
  21. package/dist/cjs/types/index.js +3 -0
  22. package/dist/cjs/types/index.js.map +1 -0
  23. package/dist/cjs/types.d.ts +78 -0
  24. package/dist/cjs/types.d.ts.map +1 -0
  25. package/dist/cjs/types.js +3 -0
  26. package/dist/cjs/types.js.map +1 -0
  27. package/dist/cjs/utils/__tests__/utils.spec.d.ts +2 -0
  28. package/dist/cjs/utils/__tests__/utils.spec.d.ts.map +1 -0
  29. package/dist/cjs/utils/__tests__/utils.spec.js +172 -0
  30. package/dist/cjs/utils/__tests__/utils.spec.js.map +1 -0
  31. package/dist/cjs/utils/index.d.ts +5 -0
  32. package/dist/cjs/utils/index.d.ts.map +1 -0
  33. package/dist/cjs/utils/index.js +45 -0
  34. package/dist/cjs/utils/index.js.map +1 -0
  35. package/dist/cjs/utils.d.ts +5 -0
  36. package/dist/cjs/utils.d.ts.map +1 -0
  37. package/dist/cjs/utils.js +45 -0
  38. package/dist/cjs/utils.js.map +1 -0
  39. package/dist/esm/client/__tests__/client.spec.d.ts +2 -0
  40. package/dist/esm/client/__tests__/client.spec.d.ts.map +1 -0
  41. package/dist/esm/client/__tests__/client.spec.js +355 -0
  42. package/dist/esm/client/__tests__/client.spec.js.map +1 -0
  43. package/dist/esm/client/index.d.ts +26 -0
  44. package/dist/esm/client/index.d.ts.map +1 -0
  45. package/dist/esm/client/index.js +175 -0
  46. package/dist/esm/client/index.js.map +1 -0
  47. package/dist/esm/client.d.ts +22 -0
  48. package/dist/esm/client.d.ts.map +1 -0
  49. package/dist/esm/client.js +107 -0
  50. package/dist/esm/client.js.map +1 -0
  51. package/dist/esm/index.d.ts +4 -0
  52. package/dist/esm/index.d.ts.map +1 -0
  53. package/dist/esm/index.js +3 -0
  54. package/dist/esm/index.js.map +1 -0
  55. package/dist/esm/types/index.d.ts +91 -0
  56. package/dist/esm/types/index.d.ts.map +1 -0
  57. package/dist/esm/types/index.js +2 -0
  58. package/dist/esm/types/index.js.map +1 -0
  59. package/dist/esm/types.d.ts +78 -0
  60. package/dist/esm/types.d.ts.map +1 -0
  61. package/dist/esm/types.js +2 -0
  62. package/dist/esm/types.js.map +1 -0
  63. package/dist/esm/utils/__tests__/utils.spec.d.ts +2 -0
  64. package/dist/esm/utils/__tests__/utils.spec.d.ts.map +1 -0
  65. package/dist/esm/utils/__tests__/utils.spec.js +182 -0
  66. package/dist/esm/utils/__tests__/utils.spec.js.map +1 -0
  67. package/dist/esm/utils/index.d.ts +5 -0
  68. package/dist/esm/utils/index.d.ts.map +1 -0
  69. package/dist/esm/utils/index.js +40 -0
  70. package/dist/esm/utils/index.js.map +1 -0
  71. package/dist/esm/utils.d.ts +5 -0
  72. package/dist/esm/utils.d.ts.map +1 -0
  73. package/dist/esm/utils.js +40 -0
  74. package/dist/esm/utils.js.map +1 -0
  75. package/package.json +54 -0
@@ -0,0 +1,26 @@
1
+ import type { EventFormConfig, FormData, Ticket } from "../types/index.js";
2
+ export declare class EventFormClient {
3
+ private readonly apiBase;
4
+ private readonly apiKey;
5
+ private readonly resourceType;
6
+ private readonly messages;
7
+ private locale;
8
+ constructor(config: EventFormConfig);
9
+ setLocale(locale: string): void;
10
+ getLocale(): string | undefined;
11
+ fetchTickets(options?: {
12
+ locale?: string;
13
+ name?: string;
14
+ }): Promise<Ticket[]>;
15
+ fetchTicketById(id: number, locale?: string): Promise<Ticket>;
16
+ fetchLanguages(): Promise<string[]>;
17
+ fetchForm(ticketId: number, locale?: string): Promise<FormData>;
18
+ authorizeUpload(formId: number, fieldId: string, file: File, locale?: string): Promise<string>;
19
+ uploadFile(formId: number, token: string, file: File, locale?: string): Promise<string>;
20
+ submitForm(formId: number, data: Record<string, unknown>, context: {
21
+ eventId: number;
22
+ ticketId: number;
23
+ locale?: string;
24
+ }): Promise<void>;
25
+ }
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,eAAe,EACf,QAAQ,EACR,MAAM,EACP,MAAM,mBAAmB,CAAC;AAmC3B,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,eAAe;IAQnC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,SAAS,IAAI,MAAM,GAAG,SAAS;IAIzB,YAAY,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBf,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB7D,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBnC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiB/D,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAyBZ,UAAU,CACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAqBZ,UAAU,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,IAAI,CAAC;CAuBjB"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventFormClient = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const ajax_1 = require("rxjs/ajax");
6
+ const DEFAULT_API_BASE = "https://api.eventsfactory.rw/api";
7
+ const DEFAULT_ERROR_MESSAGES = {
8
+ fetchTickets: "Failed to fetch tickets",
9
+ fetchTicketById: "Ticket not found",
10
+ fetchLanguages: "Failed to fetch languages",
11
+ fetchForm: "Form not found",
12
+ authorizeUpload: "Upload authorization failed",
13
+ uploadFile: "File upload failed",
14
+ submitForm: "Submission failed",
15
+ };
16
+ function getHeaders(locale) {
17
+ const headers = {};
18
+ if (locale)
19
+ headers["Accept-Language"] = locale;
20
+ return headers;
21
+ }
22
+ function extractErrorMessage(error, fallback) {
23
+ if (error instanceof ajax_1.AjaxError) {
24
+ const body = error.response;
25
+ return body?.message || fallback;
26
+ }
27
+ if (error instanceof Error)
28
+ return error.message;
29
+ return fallback;
30
+ }
31
+ class EventFormClient {
32
+ apiBase;
33
+ apiKey;
34
+ resourceType;
35
+ messages;
36
+ locale;
37
+ constructor(config) {
38
+ this.apiKey = config.apiKey;
39
+ this.resourceType = config.resourceType;
40
+ this.apiBase = (config.apiBaseUrl ?? DEFAULT_API_BASE).replace(/\/$/, "");
41
+ this.messages = { ...DEFAULT_ERROR_MESSAGES, ...config.errorMessages };
42
+ this.locale = config.locale;
43
+ }
44
+ setLocale(locale) {
45
+ this.locale = locale;
46
+ }
47
+ getLocale() {
48
+ return this.locale;
49
+ }
50
+ async fetchTickets(options) {
51
+ const effectiveLocale = options?.locale ?? this.locale;
52
+ const url = new URL(`${this.apiBase}/events/tickets/event/${this.apiKey}/public`);
53
+ if (effectiveLocale)
54
+ url.searchParams.set("locale", effectiveLocale);
55
+ if (options?.name)
56
+ url.searchParams.set("name", options.name);
57
+ try {
58
+ const res = await (0, rxjs_1.firstValueFrom)((0, ajax_1.ajax)({
59
+ url: url.toString(),
60
+ method: "GET",
61
+ headers: getHeaders(effectiveLocale),
62
+ }));
63
+ return res.response.data;
64
+ }
65
+ catch (error) {
66
+ const status = error instanceof ajax_1.AjaxError ? error.status : 0;
67
+ throw new Error(`${this.messages.fetchTickets} (${status})`, { cause: error });
68
+ }
69
+ }
70
+ async fetchTicketById(id, locale) {
71
+ const effectiveLocale = locale ?? this.locale;
72
+ try {
73
+ const res = await (0, rxjs_1.firstValueFrom)((0, ajax_1.ajax)({
74
+ url: `${this.apiBase}/events/tickets/${id}`,
75
+ method: "GET",
76
+ headers: getHeaders(effectiveLocale),
77
+ }));
78
+ return res.response.data;
79
+ }
80
+ catch (error) {
81
+ const status = error instanceof ajax_1.AjaxError ? error.status : 0;
82
+ throw new Error(`${this.messages.fetchTicketById} (${status})`, { cause: error });
83
+ }
84
+ }
85
+ async fetchLanguages() {
86
+ try {
87
+ const res = await (0, rxjs_1.firstValueFrom)((0, ajax_1.ajax)({
88
+ url: `${this.apiBase}/events/onboarding/main-info/${this.apiKey}/languages`,
89
+ method: "GET",
90
+ }));
91
+ const sorted = res.response.data.sort((a, b) => a.isDefault === b.isDefault ? 0 : a.isDefault ? -1 : 1);
92
+ return sorted.map((l) => l.languageCode);
93
+ }
94
+ catch (error) {
95
+ const status = error instanceof ajax_1.AjaxError ? error.status : 0;
96
+ throw new Error(`${this.messages.fetchLanguages} (${status})`, { cause: error });
97
+ }
98
+ }
99
+ async fetchForm(ticketId, locale) {
100
+ const effectiveLocale = locale ?? this.locale;
101
+ try {
102
+ const res = await (0, rxjs_1.firstValueFrom)((0, ajax_1.ajax)({
103
+ url: `${this.apiBase}/application/forms/ticketing/${ticketId}/public`,
104
+ method: "GET",
105
+ headers: getHeaders(effectiveLocale),
106
+ }));
107
+ return res.response.data;
108
+ }
109
+ catch (error) {
110
+ const status = error instanceof ajax_1.AjaxError ? error.status : 0;
111
+ throw new Error(`${this.messages.fetchForm} (${status})`, { cause: error });
112
+ }
113
+ }
114
+ async authorizeUpload(formId, fieldId, file, locale) {
115
+ const effectiveLocale = locale ?? this.locale;
116
+ try {
117
+ const res = await (0, rxjs_1.firstValueFrom)((0, ajax_1.ajax)({
118
+ url: `${this.apiBase}/application/forms/${formId}/submissions/authorize-upload`,
119
+ method: "POST",
120
+ headers: {
121
+ ...getHeaders(effectiveLocale),
122
+ "Content-Type": "application/json",
123
+ },
124
+ body: {
125
+ fieldId,
126
+ mimeType: file.type,
127
+ fileSize: file.size,
128
+ fileName: file.name,
129
+ },
130
+ }));
131
+ return res.response.data.uploadToken;
132
+ }
133
+ catch (error) {
134
+ throw new Error(extractErrorMessage(error, this.messages.authorizeUpload), { cause: error });
135
+ }
136
+ }
137
+ async uploadFile(formId, token, file, locale) {
138
+ const effectiveLocale = locale ?? this.locale;
139
+ const body = new globalThis.FormData();
140
+ body.append("file", file);
141
+ body.append("uploadToken", token);
142
+ try {
143
+ const res = await (0, rxjs_1.firstValueFrom)((0, ajax_1.ajax)({
144
+ url: `${this.apiBase}/application/forms/${formId}/submissions/upload`,
145
+ method: "POST",
146
+ headers: getHeaders(effectiveLocale),
147
+ body,
148
+ }));
149
+ return res.response.data.url;
150
+ }
151
+ catch (error) {
152
+ throw new Error(this.messages.uploadFile, { cause: error });
153
+ }
154
+ }
155
+ async submitForm(formId, data, context) {
156
+ const effectiveLocale = context.locale ?? this.locale;
157
+ try {
158
+ await (0, rxjs_1.firstValueFrom)((0, ajax_1.ajax)({
159
+ url: `${this.apiBase}/application/forms/${formId}/submissions`,
160
+ method: "POST",
161
+ headers: {
162
+ ...getHeaders(effectiveLocale),
163
+ "Content-Type": "application/json",
164
+ },
165
+ body: {
166
+ data,
167
+ eventId: context.eventId,
168
+ resourceType: this.resourceType,
169
+ resourceId: context.ticketId,
170
+ },
171
+ }));
172
+ }
173
+ catch (error) {
174
+ throw new Error(extractErrorMessage(error, this.messages.submitForm), { cause: error });
175
+ }
176
+ }
177
+ }
178
+ exports.EventFormClient = EventFormClient;
179
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { EventFormConfig, FormData, Ticket } from "./types.js";
2
+ export declare class EventFormClient {
3
+ private readonly apiBase;
4
+ private readonly apiKey;
5
+ private readonly resourceType;
6
+ constructor(config: EventFormConfig);
7
+ fetchTickets(options?: {
8
+ locale?: string;
9
+ name?: string;
10
+ }): Promise<Ticket[]>;
11
+ fetchTicketById(id: number, locale?: string): Promise<Ticket>;
12
+ fetchLanguages(): Promise<string[]>;
13
+ fetchForm(ticketId: number, locale?: string): Promise<FormData>;
14
+ authorizeUpload(formId: number, fieldId: string, file: File, locale?: string): Promise<string>;
15
+ uploadFile(formId: number, token: string, file: File, locale?: string): Promise<string>;
16
+ submitForm(formId: number, data: Record<string, unknown>, context: {
17
+ eventId: number;
18
+ ticketId: number;
19
+ locale?: string;
20
+ }): Promise<void>;
21
+ }
22
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,QAAQ,EACR,MAAM,EACP,MAAM,YAAY,CAAC;AAgBpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,eAAe;IAM7B,YAAY,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBf,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7D,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBnC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAY/D,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IA2BZ,UAAU,CACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAoBZ,UAAU,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,IAAI,CAAC;CAuBjB"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventFormClient = void 0;
4
+ const DEFAULT_API_BASE = "https://api.eventsfactory.rw/api";
5
+ function getHeaders(locale) {
6
+ const headers = {};
7
+ if (locale)
8
+ headers["Accept-Language"] = locale;
9
+ return headers;
10
+ }
11
+ class EventFormClient {
12
+ constructor(config) {
13
+ this.apiKey = config.apiKey;
14
+ this.resourceType = config.resourceType;
15
+ this.apiBase = (config.apiBaseUrl ?? DEFAULT_API_BASE).replace(/\/$/, "");
16
+ }
17
+ async fetchTickets(options) {
18
+ const url = new URL(`${this.apiBase}/events/tickets/event/${this.apiKey}/public`);
19
+ if (options?.locale)
20
+ url.searchParams.set("locale", options.locale);
21
+ if (options?.name)
22
+ url.searchParams.set("name", options.name);
23
+ const res = await fetch(url.toString(), {
24
+ headers: getHeaders(options?.locale),
25
+ });
26
+ if (!res.ok)
27
+ throw new Error(`Failed to fetch tickets (${res.status})`);
28
+ const json = await res.json();
29
+ return json.data;
30
+ }
31
+ async fetchTicketById(id, locale) {
32
+ const res = await fetch(`${this.apiBase}/events/tickets/${id}`, {
33
+ headers: getHeaders(locale),
34
+ });
35
+ if (!res.ok)
36
+ throw new Error(`Ticket not found (${res.status})`);
37
+ const json = await res.json();
38
+ return json.data;
39
+ }
40
+ async fetchLanguages() {
41
+ const res = await fetch(`${this.apiBase}/events/onboarding/main-info/${this.apiKey}/languages`);
42
+ if (!res.ok)
43
+ throw new Error(`Failed to fetch languages (${res.status})`);
44
+ const json = await res.json();
45
+ const sorted = json.data.sort((a, b) => a.isDefault === b.isDefault ? 0 : a.isDefault ? -1 : 1);
46
+ return sorted.map((l) => l.languageCode);
47
+ }
48
+ async fetchForm(ticketId, locale) {
49
+ const res = await fetch(`${this.apiBase}/application/forms/ticketing/${ticketId}/public`, { headers: getHeaders(locale) });
50
+ if (!res.ok)
51
+ throw new Error(`Form not found (${res.status})`);
52
+ const json = await res.json();
53
+ return json.data;
54
+ }
55
+ async authorizeUpload(formId, fieldId, file, locale) {
56
+ const res = await fetch(`${this.apiBase}/application/forms/${formId}/submissions/authorize-upload`, {
57
+ method: "POST",
58
+ headers: {
59
+ ...getHeaders(locale),
60
+ "Content-Type": "application/json",
61
+ },
62
+ body: JSON.stringify({
63
+ fieldId,
64
+ mimeType: file.type,
65
+ fileSize: file.size,
66
+ fileName: file.name,
67
+ }),
68
+ });
69
+ if (!res.ok) {
70
+ const err = await res.json();
71
+ throw new Error(err.message || "Upload authorization failed");
72
+ }
73
+ const json = await res.json();
74
+ return json.data.uploadToken;
75
+ }
76
+ async uploadFile(formId, token, file, locale) {
77
+ const formData = new globalThis.FormData();
78
+ formData.append("file", file);
79
+ formData.append("uploadToken", token);
80
+ const res = await fetch(`${this.apiBase}/application/forms/${formId}/submissions/upload`, {
81
+ method: "POST",
82
+ headers: getHeaders(locale),
83
+ body: formData,
84
+ });
85
+ if (!res.ok)
86
+ throw new Error("File upload failed");
87
+ const json = await res.json();
88
+ return json.data.url;
89
+ }
90
+ async submitForm(formId, data, context) {
91
+ const res = await fetch(`${this.apiBase}/application/forms/${formId}/submissions`, {
92
+ method: "POST",
93
+ headers: {
94
+ ...getHeaders(context.locale),
95
+ "Content-Type": "application/json",
96
+ },
97
+ body: JSON.stringify({
98
+ data,
99
+ eventId: context.eventId,
100
+ resourceType: this.resourceType,
101
+ resourceId: context.ticketId,
102
+ }),
103
+ });
104
+ if (!res.ok) {
105
+ const err = await res.json();
106
+ throw new Error(err.message || "Submission failed");
107
+ }
108
+ }
109
+ }
110
+ exports.EventFormClient = EventFormClient;
111
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { EventFormClient } from "./client/index.js";
2
+ export { getAllFields, isFieldVisible, getVisibleFieldIds, } from "./utils/index.js";
3
+ export type { ErrorMessages, EventFormConfig, FieldOption, FieldDefinition, StepDefinition, FormSchema, FormData, ApiResponse, TicketTranslation, Ticket, } from "./types/index.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,eAAe,EACf,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,MAAM,GACP,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVisibleFieldIds = exports.isFieldVisible = exports.getAllFields = exports.EventFormClient = void 0;
4
+ var index_js_1 = require("./client/index.js");
5
+ Object.defineProperty(exports, "EventFormClient", { enumerable: true, get: function () { return index_js_1.EventFormClient; } });
6
+ var index_js_2 = require("./utils/index.js");
7
+ Object.defineProperty(exports, "getAllFields", { enumerable: true, get: function () { return index_js_2.getAllFields; } });
8
+ Object.defineProperty(exports, "isFieldVisible", { enumerable: true, get: function () { return index_js_2.isFieldVisible; } });
9
+ Object.defineProperty(exports, "getVisibleFieldIds", { enumerable: true, get: function () { return index_js_2.getVisibleFieldIds; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,8CAAoD;AAA3C,2GAAA,eAAe,OAAA;AAExB,6CAI0B;AAHxB,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,8GAAA,kBAAkB,OAAA"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,91 @@
1
+ export interface ErrorMessages {
2
+ fetchTickets: string;
3
+ fetchTicketById: string;
4
+ fetchLanguages: string;
5
+ fetchForm: string;
6
+ authorizeUpload: string;
7
+ uploadFile: string;
8
+ submitForm: string;
9
+ }
10
+ export interface EventFormConfig {
11
+ /** Event API key (e.g. "Am_550e8400-...") */
12
+ apiKey: string;
13
+ /** Resource type for form submissions */
14
+ resourceType: "ticketing" | "accommodation" | "exhibition";
15
+ /** API base URL — defaults to production */
16
+ apiBaseUrl?: string;
17
+ /** Default locale for all requests — can be changed later via setLocale() */
18
+ locale?: string;
19
+ /** Custom error messages — override any or all defaults */
20
+ errorMessages?: Partial<ErrorMessages>;
21
+ }
22
+ export interface FieldOption {
23
+ id: string;
24
+ value: string;
25
+ }
26
+ export interface FieldDefinition {
27
+ id: string;
28
+ type: "text" | "email" | "password" | "number" | "select" | "radio" | "checkbox" | "date" | "file";
29
+ required: boolean;
30
+ system?: boolean;
31
+ label?: string;
32
+ placeholder?: string;
33
+ options?: FieldOption[];
34
+ accept?: string[];
35
+ maxSize?: number;
36
+ visibility?: {
37
+ dependsOn: string;
38
+ operator: "equals" | "not_equals" | "in";
39
+ value: string | string[];
40
+ };
41
+ }
42
+ export interface StepDefinition {
43
+ id: string;
44
+ label?: string;
45
+ fields: FieldDefinition[];
46
+ }
47
+ export interface FormSchema {
48
+ fields?: FieldDefinition[];
49
+ steps?: StepDefinition[];
50
+ }
51
+ export interface FormData {
52
+ id: number;
53
+ title: string;
54
+ description: string | null;
55
+ status?: string;
56
+ eventId: number | null;
57
+ schema: FormSchema;
58
+ createdBy?: number;
59
+ }
60
+ export interface ApiResponse<T> {
61
+ statusCode: number;
62
+ message: string;
63
+ data: T;
64
+ }
65
+ export interface TicketTranslation {
66
+ id: number;
67
+ ticketId: number;
68
+ locale: string;
69
+ name: string;
70
+ createdBy: number;
71
+ }
72
+ export interface Ticket {
73
+ id: number;
74
+ eventId: number;
75
+ price: string;
76
+ currency: string;
77
+ attendanceType: "VIRTUAL" | "PHYSICAL" | "HYBRID";
78
+ virtualPrice: string | null;
79
+ physicalPrice: string | null;
80
+ quantityTotal: number;
81
+ salesStartAt: string | null;
82
+ salesEndAt: string | null;
83
+ discountPercentage: number | null;
84
+ discountEndAt: string | null;
85
+ isActive: boolean;
86
+ createdBy: number;
87
+ locale?: string;
88
+ name?: string;
89
+ translations?: TicketTranslation[];
90
+ }
91
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
1
+ export interface EventFormConfig {
2
+ /** Event API key (e.g. "Am_550e8400-...") */
3
+ apiKey: string;
4
+ /** Resource type for form submissions */
5
+ resourceType: "ticketing" | "accommodation" | "exhibition";
6
+ /** API base URL — defaults to production */
7
+ apiBaseUrl?: string;
8
+ }
9
+ export interface FieldOption {
10
+ id: string;
11
+ value: string;
12
+ }
13
+ export interface FieldDefinition {
14
+ id: string;
15
+ type: "text" | "email" | "password" | "number" | "select" | "radio" | "checkbox" | "date" | "file";
16
+ required: boolean;
17
+ system?: boolean;
18
+ label?: string;
19
+ placeholder?: string;
20
+ options?: FieldOption[];
21
+ accept?: string[];
22
+ maxSize?: number;
23
+ visibility?: {
24
+ dependsOn: string;
25
+ operator: "equals" | "not_equals" | "in";
26
+ value: string | string[];
27
+ };
28
+ }
29
+ export interface StepDefinition {
30
+ id: string;
31
+ label?: string;
32
+ fields: FieldDefinition[];
33
+ }
34
+ export interface FormSchema {
35
+ fields?: FieldDefinition[];
36
+ steps?: StepDefinition[];
37
+ }
38
+ export interface FormData {
39
+ id: number;
40
+ title: string;
41
+ description: string | null;
42
+ status?: string;
43
+ eventId: number | null;
44
+ schema: FormSchema;
45
+ createdBy?: number;
46
+ }
47
+ export interface ApiResponse<T> {
48
+ statusCode: number;
49
+ message: string;
50
+ data: T;
51
+ }
52
+ export interface TicketTranslation {
53
+ id: number;
54
+ ticketId: number;
55
+ locale: string;
56
+ name: string;
57
+ createdBy: number;
58
+ }
59
+ export interface Ticket {
60
+ id: number;
61
+ eventId: number;
62
+ price: string;
63
+ currency: string;
64
+ attendanceType: "VIRTUAL" | "PHYSICAL" | "HYBRID";
65
+ virtualPrice: string | null;
66
+ physicalPrice: string | null;
67
+ quantityTotal: number;
68
+ salesStartAt: string | null;
69
+ salesEndAt: string | null;
70
+ discountPercentage: number | null;
71
+ discountEndAt: string | null;
72
+ isActive: boolean;
73
+ createdBy: number;
74
+ locale?: string;
75
+ name?: string;
76
+ translations?: TicketTranslation[];
77
+ }
78
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.spec.d.ts","sourceRoot":"","sources":["../../../../src/utils/__tests__/utils.spec.ts"],"names":[],"mappings":""}