@segment/action-destinations 3.102.1-alpha.3 → 3.102.1-alpha.4

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 (100) hide show
  1. package/dist/destinations/actions-pardot/prospects/index.js.map +1 -1
  2. package/dist/destinations/amplitude/logEvent/generated-types.d.ts +21 -0
  3. package/dist/destinations/amplitude/logEvent/index.js +96 -10
  4. package/dist/destinations/amplitude/logEvent/index.js.map +1 -1
  5. package/dist/destinations/cordial/addProductToCart/index.js +1 -1
  6. package/dist/destinations/cordial/addProductToCart/index.js.map +1 -1
  7. package/dist/destinations/cordial/index.js +1 -1
  8. package/dist/destinations/cordial/index.js.map +1 -1
  9. package/dist/destinations/cordial/removeProductFromCart/index.js.map +1 -1
  10. package/dist/destinations/cordial/upsertOrder/index.js +8 -8
  11. package/dist/destinations/cordial/upsertOrder/index.js.map +1 -1
  12. package/dist/destinations/customerio/trackEvent/index.js.map +1 -1
  13. package/dist/destinations/engage-messaging-sendgrid/generated-types.d.ts +1 -0
  14. package/dist/destinations/engage-messaging-sendgrid/index.js +5 -0
  15. package/dist/destinations/engage-messaging-sendgrid/index.js.map +1 -1
  16. package/dist/destinations/engage-messaging-sendgrid/sendEmail/generated-types.d.ts +4 -0
  17. package/dist/destinations/engage-messaging-sendgrid/sendEmail/index.js +38 -1
  18. package/dist/destinations/engage-messaging-sendgrid/sendEmail/index.js.map +1 -1
  19. package/dist/destinations/engage-messaging-twilio/sendSms/index.js +1 -0
  20. package/dist/destinations/engage-messaging-twilio/sendSms/index.js.map +1 -1
  21. package/dist/destinations/google-enhanced-conversions/constants.d.ts +1 -0
  22. package/dist/destinations/google-enhanced-conversions/constants.js +185 -0
  23. package/dist/destinations/google-enhanced-conversions/constants.js.map +1 -0
  24. package/dist/destinations/google-enhanced-conversions/functions.d.ts +3 -0
  25. package/dist/destinations/google-enhanced-conversions/functions.js +36 -0
  26. package/dist/destinations/google-enhanced-conversions/functions.js.map +1 -0
  27. package/dist/destinations/google-enhanced-conversions/generated-types.d.ts +2 -1
  28. package/dist/destinations/google-enhanced-conversions/index.js +15 -8
  29. package/dist/destinations/google-enhanced-conversions/index.js.map +1 -1
  30. package/dist/destinations/google-enhanced-conversions/postConversion/index.js +7 -1
  31. package/dist/destinations/google-enhanced-conversions/postConversion/index.js.map +1 -1
  32. package/dist/destinations/google-enhanced-conversions/uploadCallConversion/generated-types.d.ts +11 -0
  33. package/dist/destinations/{linkedin-audiences → google-enhanced-conversions/uploadCallConversion}/generated-types.js +0 -0
  34. package/dist/destinations/google-enhanced-conversions/uploadCallConversion/generated-types.js.map +1 -0
  35. package/dist/destinations/google-enhanced-conversions/uploadCallConversion/index.d.ts +5 -0
  36. package/dist/destinations/google-enhanced-conversions/uploadCallConversion/index.js +99 -0
  37. package/dist/destinations/google-enhanced-conversions/uploadCallConversion/index.js.map +1 -0
  38. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/generated-types.d.ts +25 -0
  39. package/dist/destinations/{linkedin-audiences/updateAudience → google-enhanced-conversions/uploadClickConversion}/generated-types.js +0 -0
  40. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/generated-types.js.map +1 -0
  41. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.d.ts +5 -0
  42. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js +238 -0
  43. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/index.js.map +1 -0
  44. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/types.d.ts +5 -0
  45. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/types.js +3 -0
  46. package/dist/destinations/google-enhanced-conversions/uploadClickConversion/types.js.map +1 -0
  47. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/generated-types.d.ts +20 -0
  48. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/generated-types.js +3 -0
  49. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/generated-types.js.map +1 -0
  50. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/index.d.ts +5 -0
  51. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/index.js +269 -0
  52. package/dist/destinations/google-enhanced-conversions/uploadConversionAdjustment/index.js.map +1 -0
  53. package/dist/destinations/google-sheets/postSheet/index.js +1 -1
  54. package/dist/destinations/index.js +2 -1
  55. package/dist/destinations/index.js.map +1 -1
  56. package/dist/destinations/mixpanel/index.js +1 -1
  57. package/dist/destinations/mixpanel/trackEvent/index.js.map +1 -1
  58. package/dist/destinations/salesforce/lead/index.js +2 -1
  59. package/dist/destinations/salesforce/lead/index.js.map +1 -1
  60. package/dist/destinations/salesforce-marketing-cloud/contact/generated-types.d.ts +2 -0
  61. package/dist/destinations/salesforce-marketing-cloud/contact/generated-types.js +3 -0
  62. package/dist/destinations/salesforce-marketing-cloud/contact/generated-types.js.map +1 -0
  63. package/dist/destinations/{linkedin-audiences/updateAudience → salesforce-marketing-cloud/contact}/index.d.ts +0 -0
  64. package/dist/destinations/salesforce-marketing-cloud/contact/index.js +11 -0
  65. package/dist/destinations/salesforce-marketing-cloud/contact/index.js.map +1 -0
  66. package/dist/destinations/{linkedin-audiences → salesforce-marketing-cloud}/generated-types.d.ts +0 -1
  67. package/dist/destinations/salesforce-marketing-cloud/generated-types.js +3 -0
  68. package/dist/destinations/salesforce-marketing-cloud/generated-types.js.map +1 -0
  69. package/dist/destinations/{linkedin-audiences → salesforce-marketing-cloud}/index.d.ts +0 -0
  70. package/dist/destinations/salesforce-marketing-cloud/index.js +27 -0
  71. package/dist/destinations/salesforce-marketing-cloud/index.js.map +1 -0
  72. package/dist/destinations/sendgrid/generated-types.d.ts +3 -0
  73. package/dist/destinations/sendgrid/generated-types.js +3 -0
  74. package/dist/destinations/sendgrid/generated-types.js.map +1 -0
  75. package/dist/destinations/sendgrid/index.d.ts +4 -0
  76. package/dist/destinations/sendgrid/index.js +31 -0
  77. package/dist/destinations/sendgrid/index.js.map +1 -0
  78. package/dist/destinations/sendgrid/sendgrid-properties.d.ts +23 -0
  79. package/dist/destinations/sendgrid/sendgrid-properties.js +23 -0
  80. package/dist/destinations/sendgrid/sendgrid-properties.js.map +1 -0
  81. package/dist/destinations/sendgrid/updateUserProfile/generated-types.d.ts +21 -0
  82. package/dist/destinations/sendgrid/updateUserProfile/generated-types.js +3 -0
  83. package/dist/destinations/sendgrid/updateUserProfile/generated-types.js.map +1 -0
  84. package/dist/destinations/sendgrid/updateUserProfile/index.d.ts +5 -0
  85. package/dist/destinations/sendgrid/updateUserProfile/index.js +239 -0
  86. package/dist/destinations/sendgrid/updateUserProfile/index.js.map +1 -0
  87. package/dist/lib/engage-test-data/create-messaging-test-event.d.ts +15 -1
  88. package/dist/lib/engage-test-data/create-messaging-test-event.js +15 -0
  89. package/dist/lib/engage-test-data/create-messaging-test-event.js.map +1 -1
  90. package/package.json +4 -4
  91. package/dist/destinations/linkedin-audiences/generated-types.js.map +0 -1
  92. package/dist/destinations/linkedin-audiences/index.js +0 -61
  93. package/dist/destinations/linkedin-audiences/index.js.map +0 -1
  94. package/dist/destinations/linkedin-audiences/linkedin-properties.d.ts +0 -1
  95. package/dist/destinations/linkedin-audiences/linkedin-properties.js +0 -5
  96. package/dist/destinations/linkedin-audiences/linkedin-properties.js.map +0 -1
  97. package/dist/destinations/linkedin-audiences/updateAudience/generated-types.d.ts +0 -11
  98. package/dist/destinations/linkedin-audiences/updateAudience/generated-types.js.map +0 -1
  99. package/dist/destinations/linkedin-audiences/updateAudience/index.js +0 -179
  100. package/dist/destinations/linkedin-audiences/updateAudience/index.js.map +0 -1
@@ -1,61 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const updateAudience_1 = __importDefault(require("./updateAudience"));
7
- const linkedin_properties_1 = require("./linkedin-properties");
8
- const https_1 = __importDefault(require("https"));
9
- const destination = {
10
- name: 'Linkedin Audiences',
11
- slug: 'actions-linkedin-audiences',
12
- mode: 'cloud',
13
- authentication: {
14
- scheme: 'oauth2',
15
- fields: {
16
- ad_account_id: {
17
- label: 'LinkedIn Ad Account Id',
18
- description: 'The id of the LinkedIn Ad Account where batches should be synced.',
19
- type: 'string',
20
- required: true
21
- }
22
- },
23
- testAuthentication: async (request, { auth, settings }) => {
24
- return request(`https://api.linkedin.com/rest/adAccountsV2/${settings.ad_account_id}`, {
25
- method: 'POST',
26
- headers: {
27
- 'X-Restli-Protocol-Version': '2.0.0',
28
- 'LinkedIn-Version': linkedin_properties_1.LINKEDIN_API_VERSION,
29
- authorization: auth.accessToken
30
- }
31
- });
32
- },
33
- refreshAccessToken: async (request, { auth }) => {
34
- const res = await request('https://www.linkedin.com/oauth/v2/accessToken', {
35
- method: 'POST',
36
- body: new URLSearchParams({
37
- refresh_token: auth.refreshToken,
38
- client_id: auth.clientId,
39
- client_secret: auth.clientSecret,
40
- grant_type: 'refresh_token'
41
- })
42
- });
43
- return { accessToken: res?.data?.access_token };
44
- }
45
- },
46
- extendRequest({ auth }) {
47
- const agent = new https_1.default.Agent({ keepAlive: true });
48
- return {
49
- headers: {
50
- authorization: `Bearer ${auth?.accessToken}`,
51
- 'LinkedIn-Version': linkedin_properties_1.LINKEDIN_API_VERSION
52
- },
53
- agent
54
- };
55
- },
56
- actions: {
57
- updateAudience: updateAudience_1.default
58
- }
59
- };
60
- exports.default = destination;
61
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/linkedin-audiences/index.ts"],"names":[],"mappings":";;;;;AAEA,sEAA6C;AAC7C,+DAA4D;AAC5D,kDAAyB;AASzB,MAAM,WAAW,GAAoC;IACnD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,OAAO;IAEb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,mEAAmE;gBAChF,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;aACf;SACF;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxD,OAAO,OAAO,CAAC,8CAA8C,QAAQ,CAAC,aAAa,EAAE,EAAE;gBACrF,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,2BAA2B,EAAE,OAAO;oBACpC,kBAAkB,EAAE,0CAAoB;oBACxC,aAAa,EAAE,IAAI,CAAC,WAAW;iBAChC;aACF,CAAC,CAAA;QACJ,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,+CAA+C,EAAE;gBAC/F,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;oBAChC,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;oBAChC,UAAU,EAAE,eAAe;iBAC5B,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QACjD,CAAC;KACF;IACD,aAAa,CAAC,EAAE,IAAI,EAAE;QAGpB,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAElD,OAAO;YACL,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,EAAE,WAAW,EAAE;gBAC5C,kBAAkB,EAAE,0CAAoB;aACzC;YACD,KAAK;SACN,CAAA;IACH,CAAC;IAED,OAAO,EAAE;QACP,cAAc,EAAd,wBAAc;KACf;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -1 +0,0 @@
1
- export declare const LINKEDIN_API_VERSION = "202207";
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LINKEDIN_API_VERSION = void 0;
4
- exports.LINKEDIN_API_VERSION = '202207';
5
- //# sourceMappingURL=linkedin-properties.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linkedin-properties.js","sourceRoot":"","sources":["../../../src/destinations/linkedin-audiences/linkedin-properties.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,QAAQ,CAAA"}
@@ -1,11 +0,0 @@
1
- export interface Payload {
2
- dmp_segment_name?: string;
3
- enable_batching?: boolean;
4
- email?: string;
5
- send_email?: boolean;
6
- google_advertising_id?: string;
7
- send_google_advertising_id?: boolean;
8
- source_segment_id?: string;
9
- personas_audience_key: string;
10
- event_name?: string;
11
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generated-types.js","sourceRoot":"","sources":["../../../../src/destinations/linkedin-audiences/updateAudience/generated-types.ts"],"names":[],"mappings":""}
@@ -1,179 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const actions_core_1 = require("@segment/actions-core");
4
- const crypto_1 = require("crypto");
5
- const actions_core_2 = require("@segment/actions-core");
6
- const action = {
7
- title: 'Sync To LinkedIn DMP Segment',
8
- description: 'Syncs contacts from a Personas Audience to a LinkedIn DMP Segment.',
9
- fields: {
10
- dmp_segment_name: {
11
- label: 'DMP Segment Display Name',
12
- description: 'The display name of the LinkedIn DMP Segment.',
13
- type: 'string',
14
- default: {
15
- '@path': '$.properties.audience_key'
16
- }
17
- },
18
- enable_batching: {
19
- label: 'Enable Batching',
20
- description: 'Enable batching of requests to the LinkedIn DMP Segment.',
21
- type: 'boolean',
22
- default: true
23
- },
24
- email: {
25
- label: 'User Email',
26
- description: "The user's email address to send to LinkedIn.",
27
- type: 'hidden',
28
- default: {
29
- '@path': '$.context.traits.email'
30
- }
31
- },
32
- send_email: {
33
- label: 'Send Email',
34
- description: 'Whether to send `email` to LinkedIn.',
35
- type: 'boolean',
36
- default: true
37
- },
38
- google_advertising_id: {
39
- label: 'User Google Advertising ID',
40
- description: "The user's Google Advertising ID to send to LinkedIn.",
41
- type: 'hidden',
42
- default: {
43
- '@path': '$.context.device.advertisingId'
44
- }
45
- },
46
- send_google_advertising_id: {
47
- label: 'Send Google Advertising ID',
48
- description: 'Whether to send Google Advertising ID to LinkedIn.',
49
- type: 'boolean',
50
- default: true
51
- },
52
- source_segment_id: {
53
- label: 'LinkedIn Source Segment ID',
54
- description: "A Segment-specific key associated with the LinkedIn DMP Segment. This is the lookup key Segment uses to fetch the DMP Segment from LinkedIn's API.",
55
- type: 'hidden',
56
- default: {
57
- '@path': '$.properties.audience_key'
58
- }
59
- },
60
- personas_audience_key: {
61
- label: 'Segment Personas Audience Key',
62
- description: 'The `audience_key` of the Personas audience you want to sync to LinkedIn. This value must be a hard-coded string variable, e.g. `personas_test_audience`, in order for batching to work properly.',
63
- type: 'string',
64
- required: true
65
- },
66
- event_name: {
67
- label: 'Event Name',
68
- description: 'The name of the current Segment event.',
69
- type: 'hidden',
70
- default: {
71
- '@path': '$.event'
72
- }
73
- }
74
- },
75
- perform: async (request, { settings, payload }) => {
76
- return processPayload(request, settings, [payload]);
77
- },
78
- performBatch: async (request, { settings, payload }) => {
79
- return processPayload(request, settings, payload);
80
- }
81
- };
82
- async function processPayload(request, settings, payloads) {
83
- if (payloads[0].source_segment_id !== payloads[0].personas_audience_key) {
84
- throw new actions_core_2.IntegrationError('The value of `source_segment_id` and `personas_audience_key` must match.', 'Invalid settings.', 400);
85
- }
86
- const dmpSegmentId = await getDmpSegmentId(request, settings, payloads[0]);
87
- const elements = extractUsers(payloads);
88
- const res = await request(`https://api.linkedin.com/rest/dmpSegments/${dmpSegmentId}/users`, {
89
- method: 'POST',
90
- headers: {
91
- 'X-RestLi-Method': 'BATCH_CREATE'
92
- },
93
- json: {
94
- elements
95
- },
96
- throwHttpErrors: false
97
- });
98
- if (res.status !== 200) {
99
- throw new actions_core_1.RetryableError('Error while attempting to update LinkedIn DMP Segment. This batch will be retried.');
100
- }
101
- }
102
- async function getDmpSegmentId(request, settings, payload) {
103
- const res = await getDmpSegment(request, settings, payload);
104
- const body = await res.json();
105
- if (body.elements?.length > 0) {
106
- return body.elements[0].id;
107
- }
108
- return createDmpSegment(request, settings, payload);
109
- }
110
- async function getDmpSegment(request, settings, payload) {
111
- return request('https://api.linkedin.com/rest/dmpSegments', {
112
- method: 'GET',
113
- searchParams: {
114
- q: 'account',
115
- account: `urn:li:sponsoredAccount:${settings.ad_account_id}`,
116
- sourceSegmentId: payload.source_segment_id || '',
117
- sourcePlatform: 'SEGMENT'
118
- }
119
- });
120
- }
121
- async function createDmpSegment(request, settings, payload) {
122
- const res = await request('https://api.linkedin.com/rest/dmpSegments', {
123
- method: 'POST',
124
- json: {
125
- name: payload.dmp_segment_name,
126
- sourcePlatform: 'SEGMENT',
127
- sourceSegmentId: payload.source_segment_id,
128
- account: `urn:li:sponsoredAccount:${settings.ad_account_id}`,
129
- accessPolicy: 'PRIVATE',
130
- type: 'USER',
131
- destinations: [
132
- {
133
- destination: 'LINKEDIN'
134
- }
135
- ]
136
- }
137
- });
138
- const headers = res.headers.toJSON();
139
- return headers['x-linkedin-id'];
140
- }
141
- function extractUsers(payloads) {
142
- const elements = [];
143
- payloads.forEach((payload) => {
144
- if (!payload.email && !payload.google_advertising_id) {
145
- return;
146
- }
147
- elements.push({
148
- action: getAction(payload),
149
- userIds: getUserIds(payload)
150
- });
151
- });
152
- return elements;
153
- }
154
- function getAction(payload) {
155
- if (payload.event_name === 'Audience Entered') {
156
- return 'ADD';
157
- }
158
- else if (payload.event_name === 'Audience Exited') {
159
- return 'REMOVE';
160
- }
161
- }
162
- function getUserIds(payload) {
163
- const users = [];
164
- if (payload.email) {
165
- users.push({
166
- idType: 'SHA256_EMAIL',
167
- idValue: crypto_1.createHash('sha256').update(payload.email).digest('hex')
168
- });
169
- }
170
- if (payload.google_advertising_id) {
171
- users.push({
172
- idType: 'GOOGLE_AID',
173
- idValue: payload.google_advertising_id
174
- });
175
- }
176
- return users;
177
- }
178
- exports.default = action;
179
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/linkedin-audiences/updateAudience/index.ts"],"names":[],"mappings":";;AAEA,wDAAsD;AAGtD,mCAAmC;AACnC,wDAAwD;AAExD,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,8BAA8B;IACrC,WAAW,EAAE,oEAAoE;IACjF,MAAM,EAAE;QACN,gBAAgB,EAAE;YAChB,KAAK,EAAE,0BAA0B;YACjC,WAAW,EAAE,+CAA+C;YAC5D,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,2BAA2B;aACrC;SACF;QACD,eAAe,EAAE;YACf,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,0DAA0D;YACvE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,KAAK,EAAE;YACL,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,+CAA+C;YAC5D,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,wBAAwB;aAClC;SACF;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,sCAAsC;YACnD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,qBAAqB,EAAE;YACrB,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,uDAAuD;YACpE,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,gCAAgC;aAC1C;SACF;QACD,0BAA0B,EAAE;YAC1B,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,oDAAoD;YACjE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,4BAA4B;YACnC,WAAW,EACT,oJAAoJ;YACtJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,2BAA2B;aACrC;SACF;QACD,qBAAqB,EAAE;YACrB,KAAK,EAAE,+BAA+B;YACtC,WAAW,EACT,mMAAmM;YACrM,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;SACf;QACD,UAAU,EAAE;YACV,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,wCAAwC;YACrD,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,SAAS;aACnB;SACF;KACF;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChD,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrD,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;CACF,CAAA;AAED,KAAK,UAAU,cAAc,CAAC,OAAsB,EAAE,QAAkB,EAAE,QAAmB;IAC3F,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE;QACvE,MAAM,IAAI,+BAAgB,CACxB,0EAA0E,EAC1E,mBAAmB,EACnB,GAAG,CACJ,CAAA;KACF;IAED,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1E,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,6CAA6C,YAAY,QAAQ,EAAE;QAC3F,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,iBAAiB,EAAE,cAAc;SAClC;QACD,IAAI,EAAE;YACJ,QAAQ;SACT;QACD,eAAe,EAAE,KAAK;KACvB,CAAC,CAAA;IAMF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;QACtB,MAAM,IAAI,6BAAc,CAAC,oFAAoF,CAAC,CAAA;KAC/G;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAsB,EAAE,QAAkB,EAAE,OAAgB;IACzF,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAE7B,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;KAC3B;IAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AACrD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAsB,EAAE,QAAkB,EAAE,OAAgB;IACvF,OAAO,OAAO,CAAC,2CAA2C,EAAE;QAC1D,MAAM,EAAE,KAAK;QACb,YAAY,EAAE;YACZ,CAAC,EAAE,SAAS;YACZ,OAAO,EAAE,2BAA2B,QAAQ,CAAC,aAAa,EAAE;YAC5D,eAAe,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE;YAChD,cAAc,EAAE,SAAS;SAC1B;KACF,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAsB,EAAE,QAAkB,EAAE,OAAgB;IAC1F,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,2CAA2C,EAAE;QACrE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,IAAI,EAAE,OAAO,CAAC,gBAAgB;YAC9B,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,OAAO,CAAC,iBAAiB;YAC1C,OAAO,EAAE,2BAA2B,QAAQ,CAAC,aAAa,EAAE;YAC5D,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE;gBACZ;oBACE,WAAW,EAAE,UAAU;iBACxB;aACF;SACF;KACF,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;IACpC,OAAO,OAAO,CAAC,eAAe,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,QAAmB;IACvC,MAAM,QAAQ,GAA0B,EAAE,CAAA;IAE1C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;YACpD,OAAM;SACP;QAED,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;YAC1B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;SAC7B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,OAAgB;IACjC,IAAI,OAAO,CAAC,UAAU,KAAK,kBAAkB,EAAE;QAC7C,OAAO,KAAK,CAAA;KACb;SAAM,IAAI,OAAO,CAAC,UAAU,KAAK,iBAAiB,EAAE;QACnD,OAAO,QAAQ,CAAA;KAChB;AACH,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB;IAClC,MAAM,KAAK,GAAG,EAAE,CAAA;IAEhB,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,mBAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAClE,CAAC,CAAA;KACH;IAED,IAAI,OAAO,CAAC,qBAAqB,EAAE;QACjC,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,OAAO,CAAC,qBAAqB;SACvC,CAAC,CAAA;KACH;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,kBAAe,MAAM,CAAA"}