@brandlab-digital/site-next 1.0.0-rc.8 → 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.
- package/dist/analytics.d.ts +33 -1
- package/dist/analytics.d.ts.map +1 -1
- package/dist/analytics.js +65 -4
- package/dist/analytics.js.map +1 -1
- package/dist/blog.d.ts +1 -86
- package/dist/blog.d.ts.map +1 -1
- package/dist/blog.js +29 -54
- package/dist/blog.js.map +1 -1
- package/dist/breadcrumbs.d.ts +2 -10
- package/dist/breadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs.js +3 -6
- package/dist/breadcrumbs.js.map +1 -1
- package/dist/contact/client.d.ts +9 -39
- package/dist/contact/client.d.ts.map +1 -1
- package/dist/contact/client.js +121 -253
- package/dist/contact/client.js.map +1 -1
- package/dist/contact/contract.d.ts +1 -1
- package/dist/contact/contract.d.ts.map +1 -1
- package/dist/contact/email.d.ts.map +1 -1
- package/dist/contact/email.js +1 -27
- package/dist/contact/email.js.map +1 -1
- package/dist/contact/image-sanitizer.d.ts +1 -1
- package/dist/contact/image-sanitizer.js +1 -1
- package/dist/contact/index.d.ts +1 -0
- package/dist/contact/index.d.ts.map +1 -1
- package/dist/contact/index.js +1 -0
- package/dist/contact/index.js.map +1 -1
- package/dist/contact/resend.d.ts +10 -1
- package/dist/contact/resend.d.ts.map +1 -1
- package/dist/contact/resend.js +36 -6
- package/dist/contact/resend.js.map +1 -1
- package/dist/contact/server-entry.d.ts +3 -0
- package/dist/contact/server-entry.d.ts.map +1 -0
- package/dist/contact/server-entry.js +3 -0
- package/dist/contact/server-entry.js.map +1 -0
- package/dist/contact/server.d.ts +30 -18
- package/dist/contact/server.d.ts.map +1 -1
- package/dist/contact/server.js +468 -722
- package/dist/contact/server.js.map +1 -1
- package/dist/contact/shared.d.ts +13 -124
- package/dist/contact/shared.d.ts.map +1 -1
- package/dist/contact/shared.js +9 -3
- package/dist/contact/shared.js.map +1 -1
- package/dist/contact/testing.d.ts +1 -60
- package/dist/contact/testing.d.ts.map +1 -1
- package/dist/contact/testing.js +1 -86
- package/dist/contact/testing.js.map +1 -1
- package/dist/google-reviews-client.d.ts +22 -0
- package/dist/google-reviews-client.d.ts.map +1 -0
- package/dist/google-reviews-client.js +87 -0
- package/dist/google-reviews-client.js.map +1 -0
- package/dist/google-reviews-server.d.ts +43 -0
- package/dist/google-reviews-server.d.ts.map +1 -0
- package/dist/google-reviews-server.js +90 -0
- package/dist/google-reviews-server.js.map +1 -0
- package/dist/google-reviews-ui.d.ts +610 -0
- package/dist/google-reviews-ui.d.ts.map +1 -0
- package/dist/{google-reviews.js → google-reviews-ui.js} +50 -137
- package/dist/google-reviews-ui.js.map +1 -0
- package/dist/google-tag-plan.d.ts +19 -0
- package/dist/google-tag-plan.d.ts.map +1 -0
- package/dist/google-tag-plan.js +87 -0
- package/dist/google-tag-plan.js.map +1 -0
- package/dist/google-tag.d.ts +17 -0
- package/dist/google-tag.d.ts.map +1 -0
- package/dist/google-tag.js +18 -0
- package/dist/google-tag.js.map +1 -0
- package/dist/headers.d.ts +1 -1
- package/dist/headers.d.ts.map +1 -1
- package/dist/headers.js +6 -2
- package/dist/headers.js.map +1 -1
- package/dist/reviews.d.ts +1 -5
- package/dist/reviews.d.ts.map +1 -1
- package/dist/reviews.js +2 -6
- package/dist/reviews.js.map +1 -1
- package/package.json +25 -41
- package/dist/contact/context.d.ts +0 -30
- package/dist/contact/context.d.ts.map +0 -1
- package/dist/contact/context.js +0 -315
- package/dist/contact/context.js.map +0 -1
- package/dist/contact/durable.d.ts +0 -31
- package/dist/contact/durable.d.ts.map +0 -1
- package/dist/contact/durable.js +0 -331
- package/dist/contact/durable.js.map +0 -1
- package/dist/contact/production.d.ts +0 -50
- package/dist/contact/production.d.ts.map +0 -1
- package/dist/contact/production.js +0 -383
- package/dist/contact/production.js.map +0 -1
- package/dist/contact/request.d.ts +0 -19
- package/dist/contact/request.d.ts.map +0 -1
- package/dist/contact/request.js +0 -116
- package/dist/contact/request.js.map +0 -1
- package/dist/contact/route.d.ts +0 -15
- package/dist/contact/route.d.ts.map +0 -1
- package/dist/contact/route.js +0 -128
- package/dist/contact/route.js.map +0 -1
- package/dist/google-reviews.d.ts +0 -326
- package/dist/google-reviews.d.ts.map +0 -1
- package/dist/google-reviews.js.map +0 -1
package/dist/contact/client.d.ts
CHANGED
|
@@ -1,61 +1,33 @@
|
|
|
1
1
|
import type { GtagTransport } from '@brandlab-digital/site-core/analytics';
|
|
2
|
-
import type
|
|
2
|
+
import { type ContactActionResult } from '@brandlab-digital/site-core/contact';
|
|
3
3
|
import { type SafeContactAdsParams, type SafeContactAnalyticsParams } from '../analytics.js';
|
|
4
4
|
import { createContactSubmissionId, type BrandlabContactDefinition } from './shared.js';
|
|
5
5
|
export { createContactSubmissionId };
|
|
6
|
-
|
|
6
|
+
export declare function normalizeContactUploadFile(original: File, processed: Blob): File;
|
|
7
7
|
export declare function parseContactActionResult(value: unknown): ContactActionResult | undefined;
|
|
8
|
-
export interface ContactClientSubmissionContext {
|
|
9
|
-
clientSubmissionId: string;
|
|
10
|
-
signedContext: string;
|
|
11
|
-
}
|
|
12
8
|
export type ContactSubmissionPhase = 'idle' | 'submitting' | 'accepted' | 'accepted-silently' | 'error';
|
|
13
9
|
export interface ContactSubmissionState {
|
|
14
10
|
phase: ContactSubmissionPhase;
|
|
15
11
|
pending: boolean;
|
|
16
12
|
canRetry: boolean;
|
|
17
|
-
contextReady: boolean;
|
|
18
13
|
result?: ContactActionResult;
|
|
19
14
|
}
|
|
20
|
-
export interface
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/** Uses only the shared privacy-safe analytics adapter after acceptance. */
|
|
15
|
+
export interface ContactHttpSubmissionControllerOptions {
|
|
16
|
+
pagePath: string;
|
|
17
|
+
pageLabel?: string;
|
|
18
|
+
contactEndpoint?: string;
|
|
19
|
+
fetcher?: typeof fetch;
|
|
20
|
+
now?: () => Date;
|
|
27
21
|
analytics?: Omit<Parameters<typeof trackDeliveredContactResult>[1], 'formData'>;
|
|
28
22
|
onStateChange?: (state: ContactSubmissionState) => void;
|
|
29
23
|
}
|
|
30
24
|
export interface ContactSubmissionController {
|
|
31
25
|
getState(): ContactSubmissionState;
|
|
32
|
-
prepare(): Promise<void>;
|
|
33
26
|
submit(formData: FormData): Promise<ContactActionResult>;
|
|
34
27
|
retry(): Promise<ContactActionResult>;
|
|
35
|
-
reset():
|
|
28
|
+
reset(): void;
|
|
36
29
|
}
|
|
37
|
-
export interface ContactHttpSubmissionControllerOptions extends Omit<ContactSubmissionControllerOptions, 'issueContext' | 'submitForm'> {
|
|
38
|
-
pagePath: string;
|
|
39
|
-
pageLabel?: string;
|
|
40
|
-
contactEndpoint?: string;
|
|
41
|
-
contextEndpoint?: string;
|
|
42
|
-
fetcher?: typeof fetch;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Owns one browser submission at a time. A network retry reuses the exact
|
|
46
|
-
* context/UUID; any terminal success rotates both before another submission.
|
|
47
|
-
*/
|
|
48
|
-
export declare function createContactSubmissionController(options: ContactSubmissionControllerOptions): ContactSubmissionController;
|
|
49
|
-
/** Canonical same-origin HTTP adapter for the shared context and contact routes. */
|
|
50
30
|
export declare function createContactHttpSubmissionController(options: ContactHttpSubmissionControllerOptions): ContactSubmissionController;
|
|
51
|
-
/** Adds the stable ID and server-signed context issued for this form instance. */
|
|
52
|
-
export declare function addContactSubmissionContext(formData: FormData, options: {
|
|
53
|
-
clientSubmissionId: string;
|
|
54
|
-
signedContext: string;
|
|
55
|
-
}): {
|
|
56
|
-
formData: FormData;
|
|
57
|
-
clientSubmissionId: string;
|
|
58
|
-
};
|
|
59
31
|
export declare function shouldTrackContactResult(result: ContactActionResult): result is Extract<ContactActionResult, {
|
|
60
32
|
ok: true;
|
|
61
33
|
accepted: true;
|
|
@@ -65,9 +37,7 @@ export declare function trackDeliveredContactResult(result: ContactActionResult,
|
|
|
65
37
|
definition: BrandlabContactDefinition;
|
|
66
38
|
formData: FormData;
|
|
67
39
|
enabled: boolean;
|
|
68
|
-
/** Explicit project opt-in for Enhanced Conversions. */
|
|
69
40
|
enhancedConversionsEnabled?: boolean;
|
|
70
|
-
/** Live Consent Mode decision for ad_user_data; absence must be deny. */
|
|
71
41
|
adUserDataConsent: boolean;
|
|
72
42
|
measurementId?: string | null;
|
|
73
43
|
googleAdsConversionId?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/contact/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/contact/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,qCAAqC,CAAA;AAG5C,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAChC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAGL,yBAAyB,EACzB,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,yBAAyB,EAAE,CAAA;AAEpC,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,CAgBhF;AA8CD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CA+CxF;AAED,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,YAAY,GACZ,UAAU,GACV,mBAAmB,GACnB,OAAO,CAAA;AAEX,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,sBAAsB,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAC7B;AAED,MAAM,WAAW,sCAAsC;IACrD,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CACd,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAAC,EACjD,UAAU,CACX,CAAA;IACD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACxD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,IAAI,sBAAsB,CAAA;IAClC,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACxD,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACrC,KAAK,IAAI,IAAI,CAAA;CACd;AAkFD,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,sCAAsC,GAC9C,2BAA2B,CAwH7B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,GAC1B,MAAM,IAAI,OAAO,CAAC,mBAAmB,EAAE;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,CAEtE;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,yBAAyB,CAAA;IACrC,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,MAAM,CAAC,EAAE,0BAA0B,CAAA;IACnC,SAAS,CAAC,EAAE,oBAAoB,CAAA;CACjC,+EAmBF"}
|
package/dist/contact/client.js
CHANGED
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
'use client';
|
|
2
|
+
import { resolveContactAttachmentType, } from '@brandlab-digital/site-core/contact';
|
|
2
3
|
import { normalizeBrandlabRoutePath } from '@brandlab-digital/site-core/routes';
|
|
3
4
|
import { getInitialContactAttribution } from '../instrumentation-client.js';
|
|
4
5
|
import { trackDeliveredContactWithEnhancedConversions, } from '../analytics.js';
|
|
5
|
-
import {
|
|
6
|
+
import { CONTACT_CONFIRMATION_ID_PATTERN, CONTACT_FORM_FIELDS, createContactSubmissionId, } from './shared.js';
|
|
6
7
|
export { createContactSubmissionId };
|
|
7
|
-
|
|
8
|
+
export function normalizeContactUploadFile(original, processed) {
|
|
9
|
+
if (!(original instanceof File) || !(processed instanceof Blob)) {
|
|
10
|
+
throw new TypeError('Contact image normalisation requires browser File and Blob values.');
|
|
11
|
+
}
|
|
12
|
+
const contentType = processed.type || original.type;
|
|
13
|
+
const filenameType = resolveContactAttachmentType(original.name);
|
|
14
|
+
const processedType = resolveContactAttachmentType('', contentType);
|
|
15
|
+
const normalizedFilenameType = filenameType === 'image/jpg' ? 'image/jpeg' : filenameType;
|
|
16
|
+
const normalizedProcessedType = processedType === 'image/jpg' ? 'image/jpeg' : processedType;
|
|
17
|
+
if (!normalizedFilenameType || normalizedFilenameType !== normalizedProcessedType) {
|
|
18
|
+
throw new TypeError('The processed contact image does not match its reviewed filename.');
|
|
19
|
+
}
|
|
20
|
+
return new File([processed], original.name, {
|
|
21
|
+
type: normalizedFilenameType,
|
|
22
|
+
lastModified: original.lastModified,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
8
25
|
const CONTACT_FIELD_ERROR_KEY_PATTERN = /^[a-z][a-z0-9_-]{0,63}$/;
|
|
9
26
|
const CONTACT_ERROR_CODES = new Set([
|
|
10
27
|
'validation',
|
|
11
|
-
'rate_limited',
|
|
12
28
|
'attachment_rejected',
|
|
13
29
|
'delivery_unavailable',
|
|
14
30
|
]);
|
|
@@ -43,7 +59,6 @@ function parseFieldErrors(value) {
|
|
|
43
59
|
}
|
|
44
60
|
return result;
|
|
45
61
|
}
|
|
46
|
-
/** Parses the untrusted HTTP/Server Action result before UI or analytics use it. */
|
|
47
62
|
export function parseContactActionResult(value) {
|
|
48
63
|
const record = objectRecord(value);
|
|
49
64
|
if (!record || typeof record.ok !== 'boolean')
|
|
@@ -88,23 +103,6 @@ export function parseContactActionResult(value) {
|
|
|
88
103
|
...(fieldErrors ? { fieldErrors } : {}),
|
|
89
104
|
};
|
|
90
105
|
}
|
|
91
|
-
function parseClientContext(value) {
|
|
92
|
-
const record = objectRecord(value);
|
|
93
|
-
if (!record ||
|
|
94
|
-
!hasOnlyKeys(record, ['clientSubmissionId', 'signedContext']) ||
|
|
95
|
-
typeof record.clientSubmissionId !== 'string' ||
|
|
96
|
-
typeof record.signedContext !== 'string') {
|
|
97
|
-
return undefined;
|
|
98
|
-
}
|
|
99
|
-
const clientSubmissionId = record.clientSubmissionId.trim().toLowerCase();
|
|
100
|
-
const signedContext = record.signedContext.trim();
|
|
101
|
-
if (!CONTACT_CLIENT_SUBMISSION_ID_PATTERN.test(clientSubmissionId) ||
|
|
102
|
-
!signedContext ||
|
|
103
|
-
new TextEncoder().encode(signedContext).byteLength > 4_096) {
|
|
104
|
-
return undefined;
|
|
105
|
-
}
|
|
106
|
-
return { clientSubmissionId, signedContext };
|
|
107
|
-
}
|
|
108
106
|
function copyFormData(formData) {
|
|
109
107
|
if (!formData || typeof formData.entries !== 'function') {
|
|
110
108
|
throw new TypeError('A FormData submission is required.');
|
|
@@ -114,66 +112,95 @@ function copyFormData(formData) {
|
|
|
114
112
|
copy.append(name, value);
|
|
115
113
|
return copy;
|
|
116
114
|
}
|
|
115
|
+
function rootRelativeEndpoint(value, fallback) {
|
|
116
|
+
const endpoint = value ?? fallback;
|
|
117
|
+
if (!/^\/[a-z0-9/_-]+$/.test(endpoint) ||
|
|
118
|
+
endpoint.includes('//') ||
|
|
119
|
+
endpoint.endsWith('/')) {
|
|
120
|
+
throw new TypeError('Contact endpoints must be canonical root-relative paths.');
|
|
121
|
+
}
|
|
122
|
+
return endpoint;
|
|
123
|
+
}
|
|
124
|
+
async function boundedJson(response, maximumBytes) {
|
|
125
|
+
const contentType = response.headers
|
|
126
|
+
.get('content-type')
|
|
127
|
+
?.split(';', 1)[0]
|
|
128
|
+
?.trim()
|
|
129
|
+
.toLowerCase();
|
|
130
|
+
if (contentType !== 'application/json') {
|
|
131
|
+
throw new Error('The contact response did not use the required JSON media type.');
|
|
132
|
+
}
|
|
133
|
+
const text = await response.text();
|
|
134
|
+
if (new TextEncoder().encode(text).byteLength > maximumBytes) {
|
|
135
|
+
throw new Error('The contact response exceeded its safe bound.');
|
|
136
|
+
}
|
|
137
|
+
return JSON.parse(text);
|
|
138
|
+
}
|
|
117
139
|
const RETRYABLE_CLIENT_FAILURE = {
|
|
118
140
|
ok: false,
|
|
119
141
|
code: 'delivery_unavailable',
|
|
120
142
|
retryable: true,
|
|
121
143
|
};
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (typeof options.issueContext !== 'function' || typeof options.submitForm !== 'function') {
|
|
128
|
-
throw new TypeError('Contact submission controller dependencies are invalid.');
|
|
144
|
+
function reviewedPageLabel(value) {
|
|
145
|
+
const label = value?.trim();
|
|
146
|
+
if (label !== undefined &&
|
|
147
|
+
(!label || label.length > 160 || /[\u0000-\u001f\u007f]/.test(label))) {
|
|
148
|
+
throw new TypeError('pageLabel must be bounded reviewed text.');
|
|
129
149
|
}
|
|
150
|
+
return label;
|
|
151
|
+
}
|
|
152
|
+
function addSubmissionMetadata(formData, options) {
|
|
153
|
+
const attribution = typeof window === 'undefined'
|
|
154
|
+
? { initialLandingPath: options.pagePath, visitSource: 'direct-or-unknown' }
|
|
155
|
+
: getInitialContactAttribution(window);
|
|
156
|
+
formData.set(CONTACT_FORM_FIELDS.clientSubmissionId, createContactSubmissionId());
|
|
157
|
+
formData.set(CONTACT_FORM_FIELDS.submittedAt, options.now.toISOString());
|
|
158
|
+
formData.set(CONTACT_FORM_FIELDS.pagePath, options.pagePath);
|
|
159
|
+
if (options.pageLabel) {
|
|
160
|
+
formData.set(CONTACT_FORM_FIELDS.pageLabel, options.pageLabel);
|
|
161
|
+
}
|
|
162
|
+
formData.set(CONTACT_FORM_FIELDS.initialLandingPath, attribution.initialLandingPath);
|
|
163
|
+
formData.set(CONTACT_FORM_FIELDS.visitSource, attribution.visitSource);
|
|
164
|
+
if (attribution.visitSourceDetail) {
|
|
165
|
+
formData.set(CONTACT_FORM_FIELDS.visitSourceDetail, attribution.visitSourceDetail);
|
|
166
|
+
}
|
|
167
|
+
return formData;
|
|
168
|
+
}
|
|
169
|
+
export function createContactHttpSubmissionController(options) {
|
|
170
|
+
const contactEndpoint = rootRelativeEndpoint(options.contactEndpoint, '/api/contact');
|
|
171
|
+
const pagePath = normalizeBrandlabRoutePath(options.pagePath);
|
|
172
|
+
const pageLabel = reviewedPageLabel(options.pageLabel);
|
|
173
|
+
const fetcher = options.fetcher ?? fetch;
|
|
174
|
+
if (typeof fetcher !== 'function')
|
|
175
|
+
throw new TypeError('A fetch implementation is required.');
|
|
130
176
|
if (options.onStateChange !== undefined && typeof options.onStateChange !== 'function') {
|
|
131
177
|
throw new TypeError('onStateChange must be a function.');
|
|
132
178
|
}
|
|
133
|
-
let context = options.initialContext
|
|
134
|
-
? parseClientContext(options.initialContext)
|
|
135
|
-
: undefined;
|
|
136
|
-
if (options.initialContext && !context) {
|
|
137
|
-
throw new TypeError('The initial contact submission context is invalid.');
|
|
138
|
-
}
|
|
139
|
-
const issuedIds = new Set(context ? [context.clientSubmissionId] : []);
|
|
140
179
|
const trackedConfirmations = new Set();
|
|
141
180
|
let attempt;
|
|
142
|
-
let retryFormData;
|
|
143
181
|
let inFlight;
|
|
144
182
|
let state = {
|
|
145
183
|
phase: 'idle',
|
|
146
184
|
pending: false,
|
|
147
185
|
canRetry: false,
|
|
148
|
-
contextReady: Boolean(context),
|
|
149
186
|
};
|
|
150
187
|
const publish = (next) => {
|
|
151
188
|
state = Object.freeze({ ...next });
|
|
152
189
|
options.onStateChange?.(state);
|
|
153
190
|
};
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
if (!issued || issuedIds.has(issued.clientSubmissionId)) {
|
|
157
|
-
throw new Error('The contact context issuer did not return a fresh valid context.');
|
|
158
|
-
}
|
|
159
|
-
issuedIds.add(issued.clientSubmissionId);
|
|
160
|
-
context = issued;
|
|
161
|
-
};
|
|
162
|
-
const prepare = async () => {
|
|
163
|
-
if (!context)
|
|
164
|
-
await issueFreshContext();
|
|
165
|
-
publish({
|
|
166
|
-
...state,
|
|
167
|
-
contextReady: true,
|
|
168
|
-
});
|
|
169
|
-
};
|
|
170
|
-
const execute = async (currentAttempt) => {
|
|
171
|
-
publish({ phase: 'submitting', pending: true, canRetry: false, contextReady: true });
|
|
191
|
+
const post = async (formData) => {
|
|
192
|
+
publish({ phase: 'submitting', pending: true, canRetry: false });
|
|
172
193
|
let result;
|
|
173
194
|
try {
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
195
|
+
const response = await fetcher(contactEndpoint, {
|
|
196
|
+
method: 'POST',
|
|
197
|
+
credentials: 'same-origin',
|
|
198
|
+
cache: 'no-store',
|
|
199
|
+
body: copyFormData(formData),
|
|
200
|
+
});
|
|
201
|
+
result =
|
|
202
|
+
parseContactActionResult(await boundedJson(response, 64 * 1_024)) ??
|
|
203
|
+
RETRYABLE_CLIENT_FAILURE;
|
|
177
204
|
}
|
|
178
205
|
catch {
|
|
179
206
|
result = RETRYABLE_CLIENT_FAILURE;
|
|
@@ -183,241 +210,82 @@ export function createContactSubmissionController(options) {
|
|
|
183
210
|
phase: 'error',
|
|
184
211
|
pending: false,
|
|
185
212
|
canRetry: result.retryable,
|
|
186
|
-
contextReady: true,
|
|
187
213
|
result,
|
|
188
214
|
});
|
|
189
215
|
return result;
|
|
190
216
|
}
|
|
191
|
-
if (result.accepted &&
|
|
192
|
-
!trackedConfirmations.has(result.confirmationId)) {
|
|
217
|
+
if (result.accepted && !trackedConfirmations.has(result.confirmationId)) {
|
|
193
218
|
trackedConfirmations.add(result.confirmationId);
|
|
194
219
|
try {
|
|
195
220
|
if (options.analytics) {
|
|
196
221
|
trackDeliveredContactResult(result, {
|
|
197
222
|
...options.analytics,
|
|
198
|
-
formData: copyFormData(
|
|
223
|
+
formData: copyFormData(formData),
|
|
199
224
|
});
|
|
200
225
|
}
|
|
201
226
|
}
|
|
202
227
|
catch {
|
|
203
|
-
//
|
|
228
|
+
// Delivery has already succeeded; analytics cannot change that result.
|
|
204
229
|
}
|
|
205
230
|
}
|
|
206
231
|
attempt = undefined;
|
|
207
|
-
retryFormData = undefined;
|
|
208
|
-
context = undefined;
|
|
209
|
-
try {
|
|
210
|
-
await issueFreshContext();
|
|
211
|
-
}
|
|
212
|
-
catch {
|
|
213
|
-
context = undefined;
|
|
214
|
-
}
|
|
215
232
|
publish({
|
|
216
233
|
phase: result.accepted ? 'accepted' : 'accepted-silently',
|
|
217
234
|
pending: false,
|
|
218
235
|
canRetry: false,
|
|
219
|
-
contextReady: Boolean(context),
|
|
220
236
|
result,
|
|
221
237
|
});
|
|
222
238
|
return result;
|
|
223
239
|
};
|
|
224
|
-
const run = (
|
|
240
|
+
const run = (formData) => {
|
|
225
241
|
if (inFlight)
|
|
226
242
|
return inFlight;
|
|
227
243
|
let wrapped;
|
|
228
|
-
wrapped =
|
|
244
|
+
wrapped = post(formData).finally(() => {
|
|
229
245
|
if (inFlight === wrapped)
|
|
230
246
|
inFlight = undefined;
|
|
231
247
|
});
|
|
232
248
|
inFlight = wrapped;
|
|
233
249
|
return wrapped;
|
|
234
250
|
};
|
|
235
|
-
const submit = (formData) => {
|
|
236
|
-
if (inFlight)
|
|
237
|
-
return inFlight;
|
|
238
|
-
const source = copyFormData(formData);
|
|
239
|
-
retryFormData = source;
|
|
240
|
-
const start = async () => {
|
|
241
|
-
if (!context) {
|
|
242
|
-
try {
|
|
243
|
-
await issueFreshContext();
|
|
244
|
-
}
|
|
245
|
-
catch {
|
|
246
|
-
publish({
|
|
247
|
-
phase: 'error',
|
|
248
|
-
pending: false,
|
|
249
|
-
canRetry: true,
|
|
250
|
-
contextReady: false,
|
|
251
|
-
result: RETRYABLE_CLIENT_FAILURE,
|
|
252
|
-
});
|
|
253
|
-
return RETRYABLE_CLIENT_FAILURE;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
attempt = { formData: copyFormData(source), context: context };
|
|
257
|
-
return execute(attempt);
|
|
258
|
-
};
|
|
259
|
-
const promise = start();
|
|
260
|
-
let wrapped;
|
|
261
|
-
wrapped = promise.finally(() => {
|
|
262
|
-
if (inFlight === wrapped)
|
|
263
|
-
inFlight = undefined;
|
|
264
|
-
});
|
|
265
|
-
inFlight = wrapped;
|
|
266
|
-
return wrapped;
|
|
267
|
-
};
|
|
268
|
-
const retry = () => {
|
|
269
|
-
if (inFlight)
|
|
270
|
-
return inFlight;
|
|
271
|
-
if (!attempt && retryFormData && state.phase === 'error' && state.canRetry) {
|
|
272
|
-
return submit(retryFormData);
|
|
273
|
-
}
|
|
274
|
-
if (!attempt || state.phase !== 'error' || !state.canRetry) {
|
|
275
|
-
return Promise.reject(new Error('No retryable contact submission is available.'));
|
|
276
|
-
}
|
|
277
|
-
return run(attempt);
|
|
278
|
-
};
|
|
279
|
-
const reset = async () => {
|
|
280
|
-
if (inFlight)
|
|
281
|
-
throw new Error('A pending contact submission cannot be reset.');
|
|
282
|
-
attempt = undefined;
|
|
283
|
-
retryFormData = undefined;
|
|
284
|
-
context = undefined;
|
|
285
|
-
await issueFreshContext();
|
|
286
|
-
publish({ phase: 'idle', pending: false, canRetry: false, contextReady: true });
|
|
287
|
-
};
|
|
288
251
|
return {
|
|
289
252
|
getState: () => ({ ...state }),
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
return endpoint;
|
|
304
|
-
}
|
|
305
|
-
async function boundedJson(response, maximumBytes) {
|
|
306
|
-
const contentType = response.headers
|
|
307
|
-
.get('content-type')
|
|
308
|
-
?.split(';', 1)[0]
|
|
309
|
-
?.trim()
|
|
310
|
-
.toLowerCase();
|
|
311
|
-
if (contentType !== 'application/json') {
|
|
312
|
-
throw new Error('The contact response did not use the required JSON media type.');
|
|
313
|
-
}
|
|
314
|
-
const declaredLength = response.headers.get('content-length');
|
|
315
|
-
if (declaredLength !== null &&
|
|
316
|
-
(!/^\d{1,10}$/.test(declaredLength) || Number(declaredLength) > maximumBytes)) {
|
|
317
|
-
throw new Error('The contact response exceeded its safe bound.');
|
|
318
|
-
}
|
|
319
|
-
if (!response.body)
|
|
320
|
-
throw new Error('The contact response body is unavailable.');
|
|
321
|
-
const reader = response.body.getReader();
|
|
322
|
-
const chunks = [];
|
|
323
|
-
let totalBytes = 0;
|
|
324
|
-
try {
|
|
325
|
-
while (true) {
|
|
326
|
-
const { done, value } = await reader.read();
|
|
327
|
-
if (done)
|
|
328
|
-
break;
|
|
329
|
-
if (!(value instanceof Uint8Array)) {
|
|
330
|
-
throw new Error('The contact response body is invalid.');
|
|
331
|
-
}
|
|
332
|
-
totalBytes += value.byteLength;
|
|
333
|
-
if (totalBytes > maximumBytes) {
|
|
334
|
-
throw new Error('The contact response exceeded its safe bound.');
|
|
253
|
+
submit(formData) {
|
|
254
|
+
if (inFlight)
|
|
255
|
+
return inFlight;
|
|
256
|
+
const now = options.now?.() ?? new Date();
|
|
257
|
+
if (!Number.isFinite(now.getTime())) {
|
|
258
|
+
attempt = undefined;
|
|
259
|
+
publish({
|
|
260
|
+
phase: 'error',
|
|
261
|
+
pending: false,
|
|
262
|
+
canRetry: false,
|
|
263
|
+
result: RETRYABLE_CLIENT_FAILURE,
|
|
264
|
+
});
|
|
265
|
+
return Promise.resolve(RETRYABLE_CLIENT_FAILURE);
|
|
335
266
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
await reader.cancel().catch(() => undefined);
|
|
341
|
-
throw error;
|
|
342
|
-
}
|
|
343
|
-
finally {
|
|
344
|
-
reader.releaseLock();
|
|
345
|
-
}
|
|
346
|
-
const bytes = new Uint8Array(totalBytes);
|
|
347
|
-
let offset = 0;
|
|
348
|
-
for (const chunk of chunks) {
|
|
349
|
-
bytes.set(chunk, offset);
|
|
350
|
-
offset += chunk.byteLength;
|
|
351
|
-
}
|
|
352
|
-
const text = new TextDecoder('utf-8', { fatal: true }).decode(bytes);
|
|
353
|
-
return JSON.parse(text);
|
|
354
|
-
}
|
|
355
|
-
/** Canonical same-origin HTTP adapter for the shared context and contact routes. */
|
|
356
|
-
export function createContactHttpSubmissionController(options) {
|
|
357
|
-
const contactEndpoint = rootRelativeEndpoint(options.contactEndpoint, '/api/contact');
|
|
358
|
-
const contextEndpoint = rootRelativeEndpoint(options.contextEndpoint, '/api/contact/context');
|
|
359
|
-
const pagePath = normalizeBrandlabRoutePath(options.pagePath);
|
|
360
|
-
const pageLabel = options.pageLabel?.trim();
|
|
361
|
-
if (pageLabel !== undefined &&
|
|
362
|
-
(!pageLabel || pageLabel.length > 160 || /[\u0000-\u001f\u007f]/.test(pageLabel))) {
|
|
363
|
-
throw new TypeError('pageLabel must be bounded reviewed text.');
|
|
364
|
-
}
|
|
365
|
-
const fetcher = options.fetcher ?? fetch;
|
|
366
|
-
if (typeof fetcher !== 'function')
|
|
367
|
-
throw new TypeError('A fetch implementation is required.');
|
|
368
|
-
return createContactSubmissionController({
|
|
369
|
-
...(options.initialContext ? { initialContext: options.initialContext } : {}),
|
|
370
|
-
...(options.analytics ? { analytics: options.analytics } : {}),
|
|
371
|
-
...(options.onStateChange ? { onStateChange: options.onStateChange } : {}),
|
|
372
|
-
async issueContext() {
|
|
373
|
-
const attribution = typeof window === 'undefined'
|
|
374
|
-
? { initialLandingPath: pagePath, visitSource: 'direct-or-unknown' }
|
|
375
|
-
: getInitialContactAttribution(window);
|
|
376
|
-
const response = await fetcher(contextEndpoint, {
|
|
377
|
-
method: 'POST',
|
|
378
|
-
credentials: 'same-origin',
|
|
379
|
-
cache: 'no-store',
|
|
380
|
-
headers: { 'content-type': 'application/json' },
|
|
381
|
-
body: JSON.stringify({
|
|
382
|
-
pagePath,
|
|
383
|
-
...(pageLabel ? { pageLabel } : {}),
|
|
384
|
-
...attribution,
|
|
385
|
-
}),
|
|
267
|
+
attempt = addSubmissionMetadata(copyFormData(formData), {
|
|
268
|
+
pagePath,
|
|
269
|
+
...(pageLabel ? { pageLabel } : {}),
|
|
270
|
+
now,
|
|
386
271
|
});
|
|
387
|
-
|
|
388
|
-
throw new Error('The contact context endpoint is unavailable.');
|
|
389
|
-
return boundedJson(response, 8_192);
|
|
272
|
+
return run(attempt);
|
|
390
273
|
},
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
274
|
+
retry() {
|
|
275
|
+
if (inFlight)
|
|
276
|
+
return inFlight;
|
|
277
|
+
if (!attempt || state.phase !== 'error' || !state.canRetry) {
|
|
278
|
+
return Promise.reject(new Error('No retryable contact submission is available.'));
|
|
279
|
+
}
|
|
280
|
+
return run(attempt);
|
|
281
|
+
},
|
|
282
|
+
reset() {
|
|
283
|
+
if (inFlight)
|
|
284
|
+
throw new Error('A pending contact submission cannot be reset.');
|
|
285
|
+
attempt = undefined;
|
|
286
|
+
publish({ phase: 'idle', pending: false, canRetry: false });
|
|
399
287
|
},
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
/** Adds the stable ID and server-signed context issued for this form instance. */
|
|
403
|
-
export function addContactSubmissionContext(formData, options) {
|
|
404
|
-
const clientSubmissionId = options.clientSubmissionId.trim().toLowerCase();
|
|
405
|
-
if (!CONTACT_CLIENT_SUBMISSION_ID_PATTERN.test(clientSubmissionId)) {
|
|
406
|
-
throw new Error('clientSubmissionId must be a valid UUID v4.');
|
|
407
|
-
}
|
|
408
|
-
const signedContext = options.signedContext.trim();
|
|
409
|
-
if (!signedContext || new TextEncoder().encode(signedContext).byteLength > 4_096) {
|
|
410
|
-
throw new Error('signedContext must be a bounded non-empty token.');
|
|
411
|
-
}
|
|
412
|
-
const entries = {
|
|
413
|
-
[CONTACT_CONTEXT_FIELD_NAMES.clientSubmissionId]: clientSubmissionId,
|
|
414
|
-
[CONTACT_CONTEXT_FIELD_NAMES.signedContext]: signedContext,
|
|
415
288
|
};
|
|
416
|
-
for (const [name, value] of Object.entries(entries)) {
|
|
417
|
-
if (value)
|
|
418
|
-
formData.set(name, value);
|
|
419
|
-
}
|
|
420
|
-
return { formData, clientSubmissionId };
|
|
421
289
|
}
|
|
422
290
|
export function shouldTrackContactResult(result) {
|
|
423
291
|
return result.ok && result.accepted && result.trackConversion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/contact/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EACL,4CAA4C,GAG7C,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oCAAoC,EACpC,2BAA2B,EAC3B,yBAAyB,GAE1B,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,yBAAyB,EAAE,CAAA;AAEpC,MAAM,+BAA+B,GAAG,gBAAgB,CAAA;AACxD,MAAM,+BAA+B,GAAG,yBAAyB,CAAA;AACjE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,YAAY;IACZ,cAAc;IACd,qBAAqB;IACrB,sBAAsB;CACvB,CAAC,CAAA;AAEF,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B,EAAE,OAA0B;IAC9E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,SAAS,CAAA;IAChE,MAAM,MAAM,GAA6B,EAAE,CAAA;IAC3C,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,IACE,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5C,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxB,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnB,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnB,QAAQ,CAAC,IAAI,CACX,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,OAAO,KAAK,QAAQ;gBAC3B,CAAC,OAAO,CAAC,IAAI,EAAE;gBACf,OAAO,CAAC,MAAM,GAAG,GAAG;gBACpB,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CACxC,EACD,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC/D,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,IACE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;gBAC7E,MAAM,CAAC,eAAe,KAAK,IAAI;gBAC/B,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ;gBACzC,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAC5D,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAA;QACH,CAAC;QACD,IACE,MAAM,CAAC,QAAQ,KAAK,KAAK;YACzB,MAAM,CAAC,eAAe,KAAK,KAAK;YAChC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,EAC3D,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;IAC9D,CAAC;IAED,IACE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACrC,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EACrC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACxD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IACtE,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,WAAW;QAAE,OAAO,SAAS,CAAA;IACjE,OAAO;QACL,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,MAAM,CAAC,IAA2D;QACxE,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAA;AACH,CAAC;AAqDD,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAClC,IACE,CAAC,MAAM;QACP,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ;QAC7C,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EACxC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACzE,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;IACjD,IACE,CAAC,oCAAoC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC9D,CAAC,aAAa;QACd,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,KAAK,EAC1D,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB;IACtC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,wBAAwB,GAAwB;IACpD,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,sBAAsB;IAC5B,SAAS,EAAE,IAAI;CAChB,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAC/C,OAA2C;IAE3C,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC3F,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAA;IAChF,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QACvF,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,CAAC,cAAc;QAClC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAA;IAC3E,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACtE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9C,IAAI,OAAoF,CAAA;IACxF,IAAI,aAAmC,CAAA;IACvC,IAAI,QAAkD,CAAA;IACtD,IAAI,KAAK,GAA2B;QAClC,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC;KAC/B,CAAA;IAED,MAAM,OAAO,GAAG,CAAC,IAA4B,EAAE,EAAE;QAC/C,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QAClC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;QACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;QACrF,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACxC,OAAO,GAAG,MAAM,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC,OAAO;YAAE,MAAM,iBAAiB,EAAE,CAAA;QACvC,OAAO,CAAC;YACN,GAAG,KAAK;YACR,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,KAAK,EACnB,cAA+E,EAC/E,EAAE;QACF,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;QACpF,IAAI,MAA2B,CAAA;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtD,2BAA2B,CAAC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;YAC7D,MAAM,GAAG,wBAAwB,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,wBAAwB,CAAA;QACnG,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,wBAAwB,CAAA;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC;gBACN,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,YAAY,EAAE,IAAI;gBAClB,MAAM;aACP,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IACE,MAAM,CAAC,QAAQ;YACf,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAChD,CAAC;YACD,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAC/C,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACtB,2BAA2B,CAAC,MAAM,EAAE;wBAClC,GAAG,OAAO,CAAC,SAAS;wBACpB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC;qBAChD,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;QACH,CAAC;QAED,OAAO,GAAG,SAAS,CAAA;QACnB,aAAa,GAAG,SAAS,CAAA;QACzB,OAAO,GAAG,SAAS,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,iBAAiB,EAAE,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC;QACD,OAAO,CAAC;YACN,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB;YACzD,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC;YAC9B,MAAM;SACP,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,CACV,cAA+E,EAC/E,EAAE;QACF,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,IAAI,OAAqC,CAAA;QACzC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7C,IAAI,QAAQ,KAAK,OAAO;gBAAE,QAAQ,GAAG,SAAS,CAAA;QAChD,CAAC,CAAC,CAAA;QACF,QAAQ,GAAG,OAAO,CAAA;QAClB,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,QAAkB,EAAE,EAAE;QACpC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACrC,aAAa,GAAG,MAAM,CAAA;QACtB,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,MAAM,iBAAiB,EAAE,CAAA;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC;wBACN,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,IAAI;wBACd,YAAY,EAAE,KAAK;wBACnB,MAAM,EAAE,wBAAwB;qBACjC,CAAC,CAAA;oBACF,OAAO,wBAAwB,CAAA;gBACjC,CAAC;YACH,CAAC;YACD,OAAO,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAQ,EAAE,CAAA;YAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;QACzB,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;QACvB,IAAI,OAAqC,CAAA;QACzC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7B,IAAI,QAAQ,KAAK,OAAO;gBAAE,QAAQ,GAAG,SAAS,CAAA;QAChD,CAAC,CAAC,CAAA;QACF,QAAQ,GAAG,OAAO,CAAA;QAClB,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,IAAI,CAAC,OAAO,IAAI,aAAa,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3E,OAAO,MAAM,CAAC,aAAa,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAA;QACnF,CAAC;QACD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAC9E,OAAO,GAAG,SAAS,CAAA;QACnB,aAAa,GAAG,SAAS,CAAA;QACzB,OAAO,GAAG,SAAS,CAAA;QACnB,MAAM,iBAAiB,EAAE,CAAA;QACzB,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IACjF,CAAC,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;QAC9B,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;KACN,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB,EAAE,QAAgB;IACvE,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAA;IAClC,IACE,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EACtB,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAkB,EAAE,YAAoB;IACjE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO;SACjC,GAAG,CAAC,cAAc,CAAC;QACpB,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,EAAE,IAAI,EAAE;SACP,WAAW,EAAE,CAAA;IAChB,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC7D,IACE,cAAc,KAAK,IAAI;QACvB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,EAC7E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAEhF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IACxC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI;gBAAE,MAAK;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;YAC1D,CAAC;YACD,UAAU,IAAI,KAAK,CAAC,UAAU,CAAA;YAC9B,IAAI,UAAU,GAAG,YAAY,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;YAClE,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC5C,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAA;IACxC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACxB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAA;AACpC,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,qCAAqC,CACnD,OAA+C;IAE/C,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;IACrF,MAAM,eAAe,GAAG,oBAAoB,CAC1C,OAAO,CAAC,eAAe,EACvB,sBAAsB,CACvB,CAAA;IACD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAA;IAC3C,IACE,SAAS,KAAK,SAAS;QACvB,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACjF,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAA;IACjE,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAA;IACxC,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAA;IAE7F,OAAO,iCAAiC,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,KAAK,CAAC,YAAY;YAChB,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,WAAW;gBAC/C,CAAC,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAA4B,EAAE;gBAC7E,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE;gBAC9C,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,aAAa;gBAC1B,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,QAAQ;oBACR,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,WAAW;iBACf,CAAC;aACH,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;YACjF,OAAO,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,QAAQ;YACvB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE;gBAC9C,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,aAAa;gBAC1B,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAA;YACF,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,CAAA;QAC1C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,2BAA2B,CACzC,QAAkB,EAClB,OAGC;IAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC1E,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,CAAC,aAAa,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,KAAK,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,OAAO,GAAuC;QAClD,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,EAAE,kBAAkB;QACpE,CAAC,2BAA2B,CAAC,aAAa,CAAC,EAAE,aAAa;KAC3D,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,KAAK;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAA2B;IAE3B,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAA2B,EAC3B,OAeC;IAED,MAAM,EACJ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,GAAG,MAAM,EACV,GAAG,OAAO,CAAA;IACX,OAAO,4CAA4C,CAAC,MAAM,EAAE,MAAM,EAAE;QAClE,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,iBAAiB;QACjB,MAAM;QACN,SAAS;KACV,CAAC,CAAA;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/contact/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAGZ,OAAO,EACL,4BAA4B,GAE7B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EACL,4CAA4C,GAG7C,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,yBAAyB,GAE1B,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,yBAAyB,EAAE,CAAA;AAEpC,MAAM,UAAU,0BAA0B,CAAC,QAAc,EAAE,SAAe;IACxE,IAAI,CAAC,CAAC,QAAQ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC,CAAA;IAC3F,CAAC;IACD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAA;IACnD,MAAM,YAAY,GAAG,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChE,MAAM,aAAa,GAAG,4BAA4B,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IACnE,MAAM,sBAAsB,GAAG,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAA;IACzF,MAAM,uBAAuB,GAAG,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAA;IAC5F,IAAI,CAAC,sBAAsB,IAAI,sBAAsB,KAAK,uBAAuB,EAAE,CAAC;QAClF,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE;QAC1C,IAAI,EAAE,sBAAsB;QAC5B,YAAY,EAAE,QAAQ,CAAC,YAAY;KACpC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,+BAA+B,GAAG,yBAAyB,CAAA;AACjE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,YAAY;IACZ,qBAAqB;IACrB,sBAAsB;CACvB,CAAC,CAAA;AAEF,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B,EAAE,OAA0B;IAC9E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,SAAS,CAAA;IAChE,MAAM,MAAM,GAA6B,EAAE,CAAA;IAC3C,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,IACE,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5C,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxB,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnB,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnB,QAAQ,CAAC,IAAI,CACX,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,OAAO,KAAK,QAAQ;gBAC3B,CAAC,OAAO,CAAC,IAAI,EAAE;gBACf,OAAO,CAAC,MAAM,GAAG,GAAG;gBACpB,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CACxC,EACD,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC/D,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,IACE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;gBAC7E,MAAM,CAAC,eAAe,KAAK,IAAI;gBAC/B,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ;gBACzC,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAC5D,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAA;QACH,CAAC;QACD,IACE,MAAM,CAAC,QAAQ,KAAK,KAAK;YACzB,MAAM,CAAC,eAAe,KAAK,KAAK;YAChC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,EAC3D,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;IAC9D,CAAC;IAED,IACE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACrC,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EACrC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACxD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IACtE,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,WAAW;QAAE,OAAO,SAAS,CAAA;IACjE,OAAO;QACL,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,MAAM,CAAC,IAA2D;QACxE,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAA;AACH,CAAC;AAoCD,SAAS,YAAY,CAAC,QAAkB;IACtC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB,EAAE,QAAgB;IACvE,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAA;IAClC,IACE,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EACtB,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAkB,EAAE,YAAoB;IACjE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO;SACjC,GAAG,CAAC,cAAc,CAAC;QACpB,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,EAAE,IAAI,EAAE;SACP,WAAW,EAAE,CAAA;IAChB,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,YAAY,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAA;AACpC,CAAC;AAED,MAAM,wBAAwB,GAAwB;IACpD,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,sBAAsB;IAC5B,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,SAAS,iBAAiB,CAAC,KAAyB;IAClD,MAAM,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;IAC3B,IACE,KAAK,KAAK,SAAS;QACnB,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACrE,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAkB,EAClB,OAIC;IAED,MAAM,WAAW,GACf,OAAO,MAAM,KAAK,WAAW;QAC3B,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,mBAA4B,EAAE;QACrF,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,CAAC,CAAA;IACjF,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;IACxE,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5D,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAChE,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACpF,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IACtE,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAClC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAA;IACpF,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,OAA+C;IAE/C,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;IACrF,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAA;IACxC,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAA;IAC7F,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QACvF,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9C,IAAI,OAA6B,CAAA;IACjC,IAAI,QAAkD,CAAA;IACtD,IAAI,KAAK,GAA2B;QAClC,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;KAChB,CAAA;IAED,MAAM,OAAO,GAAG,CAAC,IAA4B,EAAE,EAAE;QAC/C,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QAClC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;QACxC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAChE,IAAI,MAA2B,CAAA;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE;gBAC9C,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,aAAa;gBAC1B,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;aAC7B,CAAC,CAAA;YACF,MAAM;gBACJ,wBAAwB,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;oBACjE,wBAAwB,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,wBAAwB,CAAA;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC;gBACN,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,MAAM;aACP,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YACxE,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAC/C,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACtB,2BAA2B,CAAC,MAAM,EAAE;wBAClC,GAAG,OAAO,CAAC,SAAS;wBACpB,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;qBACjC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;YACzE,CAAC;QACH,CAAC;QAED,OAAO,GAAG,SAAS,CAAA;QACnB,OAAO,CAAC;YACN,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB;YACzD,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;YACf,MAAM;SACP,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,CAAC,QAAkB,EAAE,EAAE;QACjC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,IAAI,OAAqC,CAAA;QACzC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACpC,IAAI,QAAQ,KAAK,OAAO;gBAAE,QAAQ,GAAG,SAAS,CAAA;QAChD,CAAC,CAAC,CAAA;QACF,QAAQ,GAAG,OAAO,CAAA;QAClB,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,QAAQ;YACb,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAA;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAA;YACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBACpC,OAAO,GAAG,SAAS,CAAA;gBACnB,OAAO,CAAC;oBACN,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,wBAAwB;iBACjC,CAAC,CAAA;gBACF,OAAO,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;YAClD,CAAC;YACD,OAAO,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;gBACtD,QAAQ;gBACR,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,GAAG;aACJ,CAAC,CAAA;YACF,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;QACD,KAAK;YACH,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAA;YAC7B,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAA;YACnF,CAAC;YACD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;QACD,KAAK;YACH,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;YAC9E,OAAO,GAAG,SAAS,CAAA;YACnB,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAA2B;IAE3B,OAAO,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAA2B,EAC3B,OAaC;IAED,MAAM,EACJ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,GAAG,MAAM,EACV,GAAG,OAAO,CAAA;IACX,OAAO,4CAA4C,CAAC,MAAM,EAAE,MAAM,EAAE;QAClE,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,iBAAiB;QACjB,MAAM;QACN,SAAS;KACV,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type BrandlabContactContract, type ContactAttachmentPolicy } from '@brandlab-digital/site-core/contact';
|
|
2
2
|
import { type BrandlabContactDefinition } from './shared.js';
|
|
3
|
-
export type ContactRuntimeDefinitionOptions = Pick<BrandlabContactDefinition, 'brandName' | 'siteUrl' | '
|
|
3
|
+
export type ContactRuntimeDefinitionOptions = Pick<BrandlabContactDefinition, 'brandName' | 'siteUrl' | 'deploymentMode'> & {
|
|
4
4
|
labels: Readonly<Record<string, string>>;
|
|
5
5
|
attachment?: Partial<ContactAttachmentPolicy> & {
|
|
6
6
|
fieldPrefix?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contact/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAE7B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,yBAAyB,EACzB,WAAW,GAAG,SAAS,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contact/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAE7B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,yBAAyB,EACzB,WAAW,GAAG,SAAS,GAAG,gBAAgB,CAC3C,GAAG;IACF,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE,KAAK,CAAC,EAAE,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAA;CACxD,CAAA;AAuBD,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,+BAA+B,qCAgDzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/contact/email.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,yBAAyB,CAAA;IACrC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAA;CACnD;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAMD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,UAOpD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,UAExD;
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/contact/email.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,yBAAyB,CAAA;IACrC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAA;CACnD;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAMD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,UAOpD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,UAExD;AAoCD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,UAOtE;AA4ED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,oBAAoB,CA4EvF"}
|