@pvh-afl/core 1.2.51 → 1.2.52
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/attribution/appsflyer.service.d.ts +102 -0
- package/dist/attribution/appsflyer.service.d.ts.map +1 -0
- package/dist/attribution/appsflyer.service.js +241 -0
- package/dist/attribution/appsflyer.service.js.map +1 -0
- package/dist/attribution/attribution.module.d.ts +4 -0
- package/dist/attribution/attribution.module.d.ts.map +1 -0
- package/dist/attribution/attribution.module.js +19 -0
- package/dist/attribution/attribution.module.js.map +1 -0
- package/dist/attribution/index.d.ts +3 -0
- package/dist/attribution/index.d.ts.map +1 -0
- package/dist/attribution/index.js +6 -0
- package/dist/attribution/index.js.map +1 -0
- package/dist/common/feature-flags.d.ts +2 -0
- package/dist/common/feature-flags.d.ts.map +1 -1
- package/dist/common/feature-flags.js +5 -0
- package/dist/common/feature-flags.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/messaging/messaging.types.d.ts +2 -0
- package/dist/messaging/messaging.types.d.ts.map +1 -1
- package/dist/messaging/service-bus.service.d.ts.map +1 -1
- package/dist/messaging/service-bus.service.js +2 -0
- package/dist/messaging/service-bus.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ConfigService } from '../config/config.service';
|
|
2
|
+
import { QueueService } from '../queue/queue.service';
|
|
3
|
+
import { ShopifyAdminService } from '../integrations/commerce/shopify-admin.service';
|
|
4
|
+
/**
|
|
5
|
+
* AppsFlyer S2S purchase events for app orders. Orders without the app's
|
|
6
|
+
* `appsflyer_device_id` cart attribute are skipped — they can't be attributed.
|
|
7
|
+
*/
|
|
8
|
+
export declare const APP_SOURCE_CHANNELS: string[];
|
|
9
|
+
export declare const SOURCE_CHANNEL_KEY = "source_channel";
|
|
10
|
+
export declare const DEVICE_ID_KEY = "appsflyer_device_id";
|
|
11
|
+
/** `rejected` is permanent (4xx: bad key/app ID); `failed` is worth a retry. */
|
|
12
|
+
export type AppsFlyerResult = 'sent' | 'skipped' | 'rejected' | 'failed';
|
|
13
|
+
export interface AppsFlyerOptions {
|
|
14
|
+
androidAppId?: string;
|
|
15
|
+
iosAppId?: string;
|
|
16
|
+
androidBundleId?: string;
|
|
17
|
+
iosBundleId?: string;
|
|
18
|
+
currency?: string;
|
|
19
|
+
events?: {
|
|
20
|
+
purchase?: string;
|
|
21
|
+
firstPurchase?: string;
|
|
22
|
+
};
|
|
23
|
+
retry?: {
|
|
24
|
+
attempts?: number;
|
|
25
|
+
delaySeconds?: number;
|
|
26
|
+
};
|
|
27
|
+
/** Order tags that name the payment method (the checkout tags every order), e.g. `COD`, `UPI`. */
|
|
28
|
+
paymentTags?: string[];
|
|
29
|
+
/** Fallback when no payment tag: raw gateway name (lower-case) -> label. */
|
|
30
|
+
gatewayLabels?: Record<string, string>;
|
|
31
|
+
}
|
|
32
|
+
/** Delivery attempts for a failed purchase job, and the wait between them. */
|
|
33
|
+
export interface AppsFlyerRetryPolicy {
|
|
34
|
+
attempts: number;
|
|
35
|
+
delaySeconds: number;
|
|
36
|
+
}
|
|
37
|
+
type Money = {
|
|
38
|
+
shopMoney?: {
|
|
39
|
+
amount?: string;
|
|
40
|
+
currencyCode?: string;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export interface AppsFlyerOrder {
|
|
44
|
+
id: string;
|
|
45
|
+
name?: string;
|
|
46
|
+
email?: string | null;
|
|
47
|
+
phone?: string | null;
|
|
48
|
+
tags?: string[];
|
|
49
|
+
discountCodes?: string[];
|
|
50
|
+
paymentGatewayNames?: string[];
|
|
51
|
+
subtotalLineItemsQuantity?: number;
|
|
52
|
+
customAttributes?: Array<{
|
|
53
|
+
key: string;
|
|
54
|
+
value: string;
|
|
55
|
+
}>;
|
|
56
|
+
totalPriceSet?: Money;
|
|
57
|
+
totalDiscountsSet?: Money;
|
|
58
|
+
lineItems?: {
|
|
59
|
+
nodes?: Array<{
|
|
60
|
+
sku?: string | null;
|
|
61
|
+
title?: string;
|
|
62
|
+
quantity?: number;
|
|
63
|
+
vendor?: string | null;
|
|
64
|
+
product?: {
|
|
65
|
+
productType?: string | null;
|
|
66
|
+
} | null;
|
|
67
|
+
}>;
|
|
68
|
+
};
|
|
69
|
+
customer?: {
|
|
70
|
+
legacyResourceId?: string;
|
|
71
|
+
numberOfOrders?: string | number;
|
|
72
|
+
firstName?: string | null;
|
|
73
|
+
lastName?: string | null;
|
|
74
|
+
defaultEmailAddress?: {
|
|
75
|
+
emailAddress?: string | null;
|
|
76
|
+
} | null;
|
|
77
|
+
defaultPhoneNumber?: {
|
|
78
|
+
phoneNumber?: string | null;
|
|
79
|
+
} | null;
|
|
80
|
+
} | null;
|
|
81
|
+
}
|
|
82
|
+
export declare class AppsFlyerService {
|
|
83
|
+
private readonly configService;
|
|
84
|
+
private readonly shopifyAdminService;
|
|
85
|
+
private readonly queueService;
|
|
86
|
+
constructor(configService: ConfigService, shopifyAdminService: ShopifyAdminService, queueService: QueueService);
|
|
87
|
+
/** Retry policy from the brand's `attribution.options.retry`, defaulting to 3 x 60s. */
|
|
88
|
+
getRetryPolicy(brand: string): AppsFlyerRetryPolicy;
|
|
89
|
+
sendPurchase(brand: string, orderId: string | number): Promise<AppsFlyerResult>;
|
|
90
|
+
/** `af_purchase` parameters, per the brand's AppsFlyer event specification. Empty values are left out. */
|
|
91
|
+
private purchaseValue;
|
|
92
|
+
/**
|
|
93
|
+
* The payment tag as the order has it (`COD`, `UPI`, `Cards`, ...). A COD order has
|
|
94
|
+
* no gateway at creation, so the tag is the only signal; the gateway is the fallback.
|
|
95
|
+
*/
|
|
96
|
+
private paymentMethod;
|
|
97
|
+
/** `first_purchase` parameters, per the specification. */
|
|
98
|
+
private firstPurchaseValue;
|
|
99
|
+
private post;
|
|
100
|
+
}
|
|
101
|
+
export {};
|
|
102
|
+
//# sourceMappingURL=appsflyer.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appsflyer.service.d.ts","sourceRoot":"","sources":["../../src/attribution/appsflyer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppsFlyerService = exports.DEVICE_ID_KEY = exports.SOURCE_CHANNEL_KEY = exports.APP_SOURCE_CHANNELS = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
7
|
+
const logger_1 = require("../common/logger");
|
|
8
|
+
const config_service_1 = require("../config/config.service");
|
|
9
|
+
const utils_1 = require("../auth/utils");
|
|
10
|
+
const queue_service_1 = require("../queue/queue.service");
|
|
11
|
+
const shopify_admin_service_1 = require("../integrations/commerce/shopify-admin.service");
|
|
12
|
+
const order_email_mapper_1 = require("../notifications/order-email.mapper");
|
|
13
|
+
/**
|
|
14
|
+
* AppsFlyer S2S purchase events for app orders. Orders without the app's
|
|
15
|
+
* `appsflyer_device_id` cart attribute are skipped — they can't be attributed.
|
|
16
|
+
*/
|
|
17
|
+
exports.APP_SOURCE_CHANNELS = ['ios', 'android'];
|
|
18
|
+
exports.SOURCE_CHANNEL_KEY = 'source_channel';
|
|
19
|
+
exports.DEVICE_ID_KEY = 'appsflyer_device_id';
|
|
20
|
+
const APP_VERSION_KEY = 'app_version';
|
|
21
|
+
/** Device OS version from the app (e.g. `12`, `17.4`); AppsFlyer's `os` is the version, not the platform. */
|
|
22
|
+
const OS_VERSION_KEY = 'os_version';
|
|
23
|
+
/** Matches the webhook dedup window. */
|
|
24
|
+
const DEDUP_TTL_SECONDS = 7 * 24 * 60 * 60;
|
|
25
|
+
/** Matches the reference integration: 3 attempts, 60 seconds apart. */
|
|
26
|
+
const DEFAULT_RETRY = { attempts: 3, delaySeconds: 60 };
|
|
27
|
+
const ORDER_QUERY = `query AppsFlyerOrder($id: ID!) {
|
|
28
|
+
order(id: $id) {
|
|
29
|
+
id
|
|
30
|
+
name
|
|
31
|
+
email
|
|
32
|
+
phone
|
|
33
|
+
tags
|
|
34
|
+
discountCodes
|
|
35
|
+
paymentGatewayNames
|
|
36
|
+
subtotalLineItemsQuantity
|
|
37
|
+
customAttributes { key value }
|
|
38
|
+
totalPriceSet { shopMoney { amount currencyCode } }
|
|
39
|
+
totalDiscountsSet { shopMoney { amount } }
|
|
40
|
+
lineItems(first: 250) { nodes { sku title quantity vendor product { productType } } }
|
|
41
|
+
customer {
|
|
42
|
+
legacyResourceId
|
|
43
|
+
numberOfOrders
|
|
44
|
+
firstName
|
|
45
|
+
lastName
|
|
46
|
+
defaultEmailAddress { emailAddress }
|
|
47
|
+
defaultPhoneNumber { phoneNumber }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}`;
|
|
51
|
+
const toAmount = (money) => Number(money?.shopMoney?.amount ?? 0);
|
|
52
|
+
/** Shopify order number as the storefront shows it, e.g. `THUAT1276` (no `#`). */
|
|
53
|
+
const orderNumber = (order) => (order.name ?? '').replace(/^#/, '');
|
|
54
|
+
const sha256 = (value) => (0, crypto_1.createHash)('sha256').update(value).digest('hex');
|
|
55
|
+
/** Distinct, non-empty values joined without spaces, as in the spec (`SKU123,SKU456`). */
|
|
56
|
+
const joinDistinct = (values) => [...new Set(values.map((v) => v?.trim()).filter((v) => !!v))].join(',');
|
|
57
|
+
let AppsFlyerService = class AppsFlyerService {
|
|
58
|
+
configService;
|
|
59
|
+
shopifyAdminService;
|
|
60
|
+
queueService;
|
|
61
|
+
constructor(configService, shopifyAdminService, queueService) {
|
|
62
|
+
this.configService = configService;
|
|
63
|
+
this.shopifyAdminService = shopifyAdminService;
|
|
64
|
+
this.queueService = queueService;
|
|
65
|
+
}
|
|
66
|
+
/** Retry policy from the brand's `attribution.options.retry`, defaulting to 3 x 60s. */
|
|
67
|
+
getRetryPolicy(brand) {
|
|
68
|
+
const options = (this.configService.getBrand(brand)?.integrations?.attribution?.options ??
|
|
69
|
+
{});
|
|
70
|
+
const positive = (n, fallback) => Number.isFinite(n) && n > 0 ? Math.floor(n) : fallback;
|
|
71
|
+
return {
|
|
72
|
+
attempts: positive(options.retry?.attempts, DEFAULT_RETRY.attempts),
|
|
73
|
+
delaySeconds: positive(options.retry?.delaySeconds, DEFAULT_RETRY.delaySeconds),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
async sendPurchase(brand, orderId) {
|
|
77
|
+
const config = this.configService.getBrand(brand)?.integrations?.attribution;
|
|
78
|
+
const options = (config?.options ?? {});
|
|
79
|
+
// Account-level S2S token; api3 rejects the app Dev Key.
|
|
80
|
+
const token = config?.apiKey;
|
|
81
|
+
if (!config?.baseUrl || !token) {
|
|
82
|
+
logger_1.logger.warn('AppsFlyer skipped - not configured', { brand, orderId });
|
|
83
|
+
return 'skipped';
|
|
84
|
+
}
|
|
85
|
+
let order;
|
|
86
|
+
try {
|
|
87
|
+
const result = await this.shopifyAdminService.adminGraphQL(brand, ORDER_QUERY, { id: `gid://shopify/Order/${orderId}` });
|
|
88
|
+
order = result.data?.order;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
logger_1.logger.error('AppsFlyer order fetch failed', {
|
|
92
|
+
brand,
|
|
93
|
+
orderId,
|
|
94
|
+
error: error instanceof Error ? error.message : 'Unknown',
|
|
95
|
+
});
|
|
96
|
+
return 'failed';
|
|
97
|
+
}
|
|
98
|
+
if (!order) {
|
|
99
|
+
logger_1.logger.error('AppsFlyer order not found', { brand, orderId });
|
|
100
|
+
return 'failed';
|
|
101
|
+
}
|
|
102
|
+
const attrs = new Map((order.customAttributes ?? []).map((a) => [a.key, a.value]));
|
|
103
|
+
const os = attrs.get(exports.SOURCE_CHANNEL_KEY);
|
|
104
|
+
const deviceId = attrs.get(exports.DEVICE_ID_KEY);
|
|
105
|
+
if (!os || !exports.APP_SOURCE_CHANNELS.includes(os) || !deviceId) {
|
|
106
|
+
logger_1.logger.info('AppsFlyer skipped - not an app order or no device id', {
|
|
107
|
+
brand,
|
|
108
|
+
orderId,
|
|
109
|
+
os,
|
|
110
|
+
});
|
|
111
|
+
return 'skipped';
|
|
112
|
+
}
|
|
113
|
+
const isAndroid = os === 'android';
|
|
114
|
+
const appId = isAndroid ? options.androidAppId : options.iosAppId;
|
|
115
|
+
if (!appId) {
|
|
116
|
+
logger_1.logger.warn('AppsFlyer skipped - no app id for os', { brand, orderId, os });
|
|
117
|
+
return 'skipped';
|
|
118
|
+
}
|
|
119
|
+
const currency = order.totalPriceSet?.shopMoney?.currencyCode ?? options.currency ?? 'INR';
|
|
120
|
+
// Cancelled orders count too, so a first order that was cancelled makes the next one Repeat.
|
|
121
|
+
const isFirst = Number(order.customer?.numberOfOrders ?? 0) <= 1;
|
|
122
|
+
const events = [
|
|
123
|
+
{ name: options.events?.purchase, value: this.purchaseValue(order, currency, isFirst, options) },
|
|
124
|
+
...(isFirst
|
|
125
|
+
? [{ name: options.events?.firstPurchase, value: this.firstPurchaseValue(order) }]
|
|
126
|
+
: []),
|
|
127
|
+
];
|
|
128
|
+
const common = {
|
|
129
|
+
appsflyer_id: deviceId,
|
|
130
|
+
eventCurrency: currency,
|
|
131
|
+
...(attrs.get(OS_VERSION_KEY) && { os: attrs.get(OS_VERSION_KEY) }),
|
|
132
|
+
bundleIdentifier: isAndroid ? options.androidBundleId : options.iosBundleId,
|
|
133
|
+
...(attrs.get(APP_VERSION_KEY) && { app_version_name: attrs.get(APP_VERSION_KEY) }),
|
|
134
|
+
};
|
|
135
|
+
for (const event of events) {
|
|
136
|
+
if (!event.name)
|
|
137
|
+
continue;
|
|
138
|
+
// Claimed per event, so a redelivery re-sends only the one that failed.
|
|
139
|
+
const dedupKey = `appsflyer:${brand}:${event.name}:${orderId}`;
|
|
140
|
+
if (!(await this.queueService.claimOnce(dedupKey, DEDUP_TTL_SECONDS))) {
|
|
141
|
+
logger_1.logger.info('AppsFlyer event already sent', { brand, orderId, event: event.name });
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const result = await this.post(`${config.baseUrl}/${appId}`, token, {
|
|
145
|
+
...common,
|
|
146
|
+
eventName: event.name,
|
|
147
|
+
eventValue: JSON.stringify(event.value),
|
|
148
|
+
});
|
|
149
|
+
if (result !== 'sent') {
|
|
150
|
+
await this.queueService.release(dedupKey);
|
|
151
|
+
logger_1.logger.error('AppsFlyer event failed', { brand, orderId, event: event.name, result });
|
|
152
|
+
return result;
|
|
153
|
+
}
|
|
154
|
+
logger_1.logger.info('AppsFlyer event sent', { brand, orderId, event: event.name });
|
|
155
|
+
}
|
|
156
|
+
return 'sent';
|
|
157
|
+
}
|
|
158
|
+
/** `af_purchase` parameters, per the brand's AppsFlyer event specification. Empty values are left out. */
|
|
159
|
+
purchaseValue(order, currency, isFirst, options) {
|
|
160
|
+
const lines = order.lineItems?.nodes ?? [];
|
|
161
|
+
const customer = order.customer;
|
|
162
|
+
const email = (customer?.defaultEmailAddress?.emailAddress ?? order.email ?? '').trim().toLowerCase();
|
|
163
|
+
// `91` + national number, no `+`: the same form the app hashes, so both match.
|
|
164
|
+
const rawPhone = customer?.defaultPhoneNumber?.phoneNumber ?? order.phone ?? '';
|
|
165
|
+
const phone = rawPhone ? (0, utils_1.normalizePhone)(rawPhone) : '';
|
|
166
|
+
const paymentMethod = this.paymentMethod(order, options);
|
|
167
|
+
const value = {
|
|
168
|
+
af_revenue: toAmount(order.totalPriceSet),
|
|
169
|
+
af_currency: currency,
|
|
170
|
+
af_order_id: orderNumber(order),
|
|
171
|
+
af_content_id: lines.map((l) => l.sku?.trim()).filter(Boolean).join(','),
|
|
172
|
+
af_content: lines.map((l) => l.title?.trim()).filter(Boolean).join(','),
|
|
173
|
+
af_content_type: joinDistinct(lines.map((l) => l.product?.productType)),
|
|
174
|
+
af_quantity: order.subtotalLineItemsQuantity ?? 0,
|
|
175
|
+
brand: joinDistinct(lines.map((l) => l.vendor)),
|
|
176
|
+
category: joinDistinct(lines.map((l) => l.product?.productType)),
|
|
177
|
+
coupon_code: (order.discountCodes ?? []).join(','),
|
|
178
|
+
discount: toAmount(order.totalDiscountsSet),
|
|
179
|
+
payment_method: paymentMethod,
|
|
180
|
+
customer_type: isFirst ? 'New' : 'Repeat',
|
|
181
|
+
customer_name: [customer?.firstName, customer?.lastName].map((n) => n?.trim()).filter(Boolean).join(' '),
|
|
182
|
+
customer_email: email ? sha256(email) : '',
|
|
183
|
+
customer_mobile: phone ? sha256(phone) : '',
|
|
184
|
+
customer_id: customer?.legacyResourceId ?? '',
|
|
185
|
+
};
|
|
186
|
+
return Object.fromEntries(Object.entries(value).filter(([, v]) => v !== ''));
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* The payment tag as the order has it (`COD`, `UPI`, `Cards`, ...). A COD order has
|
|
190
|
+
* no gateway at creation, so the tag is the only signal; the gateway is the fallback.
|
|
191
|
+
*/
|
|
192
|
+
paymentMethod(order, options) {
|
|
193
|
+
const known = (options.paymentTags ?? []).map((t) => t.toLowerCase());
|
|
194
|
+
const tag = (order.tags ?? []).map((t) => t.trim()).find((t) => known.includes(t.toLowerCase()));
|
|
195
|
+
if (tag)
|
|
196
|
+
return tag;
|
|
197
|
+
return (order.paymentGatewayNames ?? [])
|
|
198
|
+
.map((name) => (0, order_email_mapper_1.prettyGateway)(name, options.gatewayLabels))
|
|
199
|
+
.filter(Boolean)
|
|
200
|
+
.join(',');
|
|
201
|
+
}
|
|
202
|
+
/** `first_purchase` parameters, per the specification. */
|
|
203
|
+
firstPurchaseValue(order) {
|
|
204
|
+
return { af_revenue: toAmount(order.totalPriceSet), af_order_id: orderNumber(order) };
|
|
205
|
+
}
|
|
206
|
+
async post(url, token, body) {
|
|
207
|
+
try {
|
|
208
|
+
const response = await fetch(url, {
|
|
209
|
+
method: 'POST',
|
|
210
|
+
headers: {
|
|
211
|
+
accept: 'application/json',
|
|
212
|
+
'content-type': 'application/json',
|
|
213
|
+
authentication: token,
|
|
214
|
+
},
|
|
215
|
+
body: JSON.stringify(body),
|
|
216
|
+
});
|
|
217
|
+
if (response.ok)
|
|
218
|
+
return 'sent';
|
|
219
|
+
logger_1.logger.error('AppsFlyer API error', {
|
|
220
|
+
status: response.status,
|
|
221
|
+
body: await response.text().catch(() => ''),
|
|
222
|
+
});
|
|
223
|
+
const permanent = response.status >= 400 && response.status < 500 && response.status !== 429;
|
|
224
|
+
return permanent ? 'rejected' : 'failed';
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
logger_1.logger.error('AppsFlyer request failed', {
|
|
228
|
+
error: error instanceof Error ? error.message : 'Unknown',
|
|
229
|
+
});
|
|
230
|
+
return 'failed';
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
exports.AppsFlyerService = AppsFlyerService;
|
|
235
|
+
exports.AppsFlyerService = AppsFlyerService = tslib_1.__decorate([
|
|
236
|
+
(0, common_1.Injectable)(),
|
|
237
|
+
tslib_1.__metadata("design:paramtypes", [config_service_1.ConfigService,
|
|
238
|
+
shopify_admin_service_1.ShopifyAdminService,
|
|
239
|
+
queue_service_1.QueueService])
|
|
240
|
+
], AppsFlyerService);
|
|
241
|
+
//# sourceMappingURL=appsflyer.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appsflyer.service.js","sourceRoot":"","sources":["../../src/attribution/appsflyer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attribution.module.d.ts","sourceRoot":"","sources":["../../src/attribution/attribution.module.ts"],"names":[],"mappings":"AAIA,6FAA6F;AAC7F,qBAKa,iBAAiB;CAAG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AttributionModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const integrations_module_1 = require("../integrations/integrations.module");
|
|
7
|
+
const appsflyer_service_1 = require("./appsflyer.service");
|
|
8
|
+
/** Ad-attribution events, shared by every brand. Needs `QueueModule` (global) in the app. */
|
|
9
|
+
let AttributionModule = class AttributionModule {
|
|
10
|
+
};
|
|
11
|
+
exports.AttributionModule = AttributionModule;
|
|
12
|
+
exports.AttributionModule = AttributionModule = tslib_1.__decorate([
|
|
13
|
+
(0, common_1.Module)({
|
|
14
|
+
imports: [integrations_module_1.IntegrationsModule],
|
|
15
|
+
providers: [appsflyer_service_1.AppsFlyerService],
|
|
16
|
+
exports: [appsflyer_service_1.AppsFlyerService],
|
|
17
|
+
})
|
|
18
|
+
], AttributionModule);
|
|
19
|
+
//# sourceMappingURL=attribution.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attribution.module.js","sourceRoot":"","sources":["../../src/attribution/attribution.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,6EAAyE;AACzE,2DAAuD;AAEvD,6FAA6F;AAMtF,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAL7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,wCAAkB,CAAC;QAC7B,SAAS,EAAE,CAAC,oCAAgB,CAAC;QAC7B,OAAO,EAAE,CAAC,oCAAgB,CAAC;KAC5B,CAAC;GACW,iBAAiB,CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/attribution/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./appsflyer.service"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./attribution.module"), exports);
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/attribution/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,+DAAqC"}
|
|
@@ -30,4 +30,6 @@ export declare function isCapillaryEnabled(): boolean;
|
|
|
30
30
|
export declare function isOrderEmailEnabled(): boolean;
|
|
31
31
|
export declare function isOrderWhatsAppEnabled(): boolean;
|
|
32
32
|
export declare function isOrderSmsEnabled(): boolean;
|
|
33
|
+
/** AppsFlyer S2S purchase events. Same contract: only the exact string "true". */
|
|
34
|
+
export declare function isAppsFlyerEnabled(): boolean;
|
|
33
35
|
//# sourceMappingURL=feature-flags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/common/feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|
|
1
|
+
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/common/feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C"}
|
|
@@ -4,6 +4,7 @@ exports.isCapillaryEnabled = isCapillaryEnabled;
|
|
|
4
4
|
exports.isOrderEmailEnabled = isOrderEmailEnabled;
|
|
5
5
|
exports.isOrderWhatsAppEnabled = isOrderWhatsAppEnabled;
|
|
6
6
|
exports.isOrderSmsEnabled = isOrderSmsEnabled;
|
|
7
|
+
exports.isAppsFlyerEnabled = isAppsFlyerEnabled;
|
|
7
8
|
/**
|
|
8
9
|
* Master runtime switch for the Capillary loyalty integration.
|
|
9
10
|
*
|
|
@@ -44,4 +45,8 @@ function isOrderWhatsAppEnabled() {
|
|
|
44
45
|
function isOrderSmsEnabled() {
|
|
45
46
|
return process.env.ORDER_SMS_ENABLED === 'true';
|
|
46
47
|
}
|
|
48
|
+
/** AppsFlyer S2S purchase events. Same contract: only the exact string "true". */
|
|
49
|
+
function isAppsFlyerEnabled() {
|
|
50
|
+
return process.env.APPSFLYER_ENABLED === 'true';
|
|
51
|
+
}
|
|
47
52
|
//# sourceMappingURL=feature-flags.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/common/feature-flags.ts"],"names":[],"mappings":";;AAeA,gDAEC;AAeD,kDAEC;AAED,wDAEC;AAED,8CAEC;
|
|
1
|
+
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/common/feature-flags.ts"],"names":[],"mappings":";;AAeA,gDAEC;AAeD,kDAEC;AAED,wDAEC;AAED,8CAEC;AAGD,gDAEC;AA/CD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,mBAAmB;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAAC;AACpD,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM,CAAC;AACvD,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AAClD,CAAC;AAED,kFAAkF;AAClF,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AAClD,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAGhC,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -26,4 +26,6 @@ tslib_1.__exportStar(require("./messaging"), exports);
|
|
|
26
26
|
tslib_1.__exportStar(require("./theme"), exports);
|
|
27
27
|
// Order notifications (shared across brands)
|
|
28
28
|
tslib_1.__exportStar(require("./notifications"), exports);
|
|
29
|
+
// Ad attribution (AppsFlyer S2S)
|
|
30
|
+
tslib_1.__exportStar(require("./attribution"), exports);
|
|
29
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,OAAO;AACP,iDAAuB;AAEvB,QAAQ;AACR,kDAAwB;AAExB,SAAS;AACT,mDAAyB;AAEzB,mBAAmB;AACnB,mDAAyB;AAEzB,2EAA2E;AAC3E,oDAA0B;AAE1B,eAAe;AACf,yDAA+B;AAE/B,sBAAsB;AACtB,kDAAwB;AAExB,0CAA0C;AAC1C,sDAA4B;AAE5B,sBAAsB;AACtB,kDAAwB;AAExB,6CAA6C;AAC7C,0DAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,OAAO;AACP,iDAAuB;AAEvB,QAAQ;AACR,kDAAwB;AAExB,SAAS;AACT,mDAAyB;AAEzB,mBAAmB;AACnB,mDAAyB;AAEzB,2EAA2E;AAC3E,oDAA0B;AAE1B,eAAe;AACf,yDAA+B;AAE/B,sBAAsB;AACtB,kDAAwB;AAExB,0CAA0C;AAC1C,sDAA4B;AAE5B,sBAAsB;AACtB,kDAAwB;AAExB,6CAA6C;AAC7C,0DAAgC;AAEhC,iCAAiC;AACjC,wDAA8B"}
|
|
@@ -34,6 +34,8 @@ export interface SendOptions {
|
|
|
34
34
|
subject?: string;
|
|
35
35
|
/** Message id (enables Service Bus duplicate detection if the queue has it on). */
|
|
36
36
|
messageId?: string;
|
|
37
|
+
/** Deliver no earlier than this time. Unset sends immediately. */
|
|
38
|
+
scheduledEnqueueTimeUtc?: Date;
|
|
37
39
|
}
|
|
38
40
|
/** Options for subscribing to a queue. */
|
|
39
41
|
export interface SubscribeOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.types.d.ts","sourceRoot":"","sources":["../../src/messaging/messaging.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oDAAoD;AACpD,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,+EAA+E;IAC/E,IAAI,EAAE,CAAC,CAAC;IACR,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,+CAA+C;AAC/C,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CACxC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,KACxB,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"messaging.types.d.ts","sourceRoot":"","sources":["../../src/messaging/messaging.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oDAAoD;AACpD,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,+EAA+E;IAC/E,IAAI,EAAE,CAAC,CAAC;IACR,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,+CAA+C;AAC/C,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CACxC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,KACxB,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,uBAAuB,CAAC,EAAE,IAAI,CAAC;CAChC;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-bus.service.d.ts","sourceRoot":"","sources":["../../src/messaging/service-bus.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAC;AASxB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;GAUG;AACH,qBACa,iBAAkB,YAAW,YAAY,EAAE,eAAe;IAWzD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAV1C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IAIvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;gBAEnB,aAAa,EAAE,aAAa;IAEzD,YAAY,IAAI,IAAI;IAoBpB,uFAAuF;IACvF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,CAAC,SAAS;IAUjB;;;OAGG;IACG,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"service-bus.service.d.ts","sourceRoot":"","sources":["../../src/messaging/service-bus.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAC;AASxB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;GAUG;AACH,qBACa,iBAAkB,YAAW,YAAY,EAAE,eAAe;IAWzD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAV1C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IAIvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;gBAEnB,aAAa,EAAE,aAAa;IAEzD,YAAY,IAAI,IAAI;IAoBpB,uFAAuF;IACvF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,CAAC,SAAS;IAUjB;;;OAGG;IACG,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B9E;;;;OAIG;IACH,SAAS,CAAC,CAAC,EACT,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,IAAI,CAAC,EAAE,gBAAgB,GACtB,IAAI;IAqCP,6EAA6E;YAC/D,MAAM;IAyCd,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAiBvC"}
|
|
@@ -80,6 +80,8 @@ let ServiceBusService = class ServiceBusService {
|
|
|
80
80
|
contentType: 'application/json',
|
|
81
81
|
subject: opts?.subject,
|
|
82
82
|
messageId: opts?.messageId,
|
|
83
|
+
// Only when asked for, so every other send is unchanged.
|
|
84
|
+
...(opts?.scheduledEnqueueTimeUtc && { scheduledEnqueueTimeUtc: opts.scheduledEnqueueTimeUtc }),
|
|
83
85
|
};
|
|
84
86
|
try {
|
|
85
87
|
await sender.sendMessages(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-bus.service.js","sourceRoot":"","sources":["../../src/messaging/service-bus.service.ts"],"names":[],"mappings":";;;;;AAAA,2CAIwB;AACxB,oDAO4B;AAC5B,6DAAyD;AACzD,6CAA0C;AAO1C;;;;;;;;;;GAUG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;;IAWC;IAVrB,MAAM,GAA4B,IAAI,CAAC;IAC9B,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC9C,SAAS,GAAyB,EAAE,CAAC;IACrC,aAAa,GAAsC,EAAE,CAAC;IAEvE,8EAA8E;IAC9E,4DAA4D;IACpD,MAAM,CAAU,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,CAAU,mBAAmB,GAAG,CAAC,CAAC;IAEhD,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,YAAY;QACV,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;QAC/E,IAAI,CAAC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClC,eAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,8BAAgB,CAAC,gBAAgB,CAAC,CAAC;YACrD,eAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yEAAyE;YACzE,0BAA0B;YAC1B,eAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBACtD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAC9B,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAI,KAAa,EAAE,OAAU,EAAE,IAAkB;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,eAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAsB;YACjC,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,IAAI,EAAE,OAAO;YACtB,SAAS,EAAE,IAAI,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"service-bus.service.js","sourceRoot":"","sources":["../../src/messaging/service-bus.service.ts"],"names":[],"mappings":"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"}
|