@capibox/bridge-server 0.0.75 → 0.0.77
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/index.d.mts +152 -11
- package/dist/index.d.ts +152 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -2239,11 +2239,13 @@ interface components {
|
|
|
2239
2239
|
orderId: string;
|
|
2240
2240
|
relations: string[];
|
|
2241
2241
|
};
|
|
2242
|
-
|
|
2242
|
+
FacebookCapiPayloadEventDataDto: {
|
|
2243
2243
|
/** @example USD */
|
|
2244
2244
|
currency?: string;
|
|
2245
2245
|
/** @example 129.99 */
|
|
2246
2246
|
total?: number;
|
|
2247
|
+
/** @example 129.99 */
|
|
2248
|
+
profit?: number;
|
|
2247
2249
|
/** @example https://example.com/product/123 */
|
|
2248
2250
|
sourceUrl: string;
|
|
2249
2251
|
};
|
|
@@ -2314,7 +2316,7 @@ interface components {
|
|
|
2314
2316
|
eventId: string;
|
|
2315
2317
|
/** @example Purchase */
|
|
2316
2318
|
eventName: string;
|
|
2317
|
-
eventData: components["schemas"]["
|
|
2319
|
+
eventData: components["schemas"]["FacebookCapiPayloadEventDataDto"];
|
|
2318
2320
|
originalEventData?: components["schemas"]["FacebookCapiOriginalEventDataDto"];
|
|
2319
2321
|
testEventCode?: string;
|
|
2320
2322
|
clientData?: components["schemas"]["CustomClientData"];
|
|
@@ -4009,6 +4011,11 @@ interface components {
|
|
|
4009
4011
|
links: components["schemas"]["PaypalBillingAgreementLinkDto"][];
|
|
4010
4012
|
};
|
|
4011
4013
|
PaypalOrderV1CreateDto: {
|
|
4014
|
+
/**
|
|
4015
|
+
* @description The intent of the payment.
|
|
4016
|
+
* @example CAPTURE
|
|
4017
|
+
*/
|
|
4018
|
+
intent?: string;
|
|
4012
4019
|
/**
|
|
4013
4020
|
* @description The currency of the payment.
|
|
4014
4021
|
* @example USD
|
|
@@ -4189,6 +4196,11 @@ interface components {
|
|
|
4189
4196
|
links: components["schemas"]["PaypalOrderV1CreateLinkDto"][];
|
|
4190
4197
|
};
|
|
4191
4198
|
PaypalOrderV1CreateFromSessionDto: {
|
|
4199
|
+
/**
|
|
4200
|
+
* @description The intent of the payment.
|
|
4201
|
+
* @example CAPTURE
|
|
4202
|
+
*/
|
|
4203
|
+
intent?: string;
|
|
4192
4204
|
/**
|
|
4193
4205
|
* @description The URL to redirect to after the payment is canceled.
|
|
4194
4206
|
* @example https://example.com/cancel
|
|
@@ -6261,6 +6273,14 @@ interface components {
|
|
|
6261
6273
|
*/
|
|
6262
6274
|
phone?: string;
|
|
6263
6275
|
};
|
|
6276
|
+
FacebookCapiEventDataDto: {
|
|
6277
|
+
/** @example USD */
|
|
6278
|
+
currency?: string;
|
|
6279
|
+
/** @example 129.99 */
|
|
6280
|
+
total?: number;
|
|
6281
|
+
/** @example https://example.com/product/123 */
|
|
6282
|
+
sourceUrl: string;
|
|
6283
|
+
};
|
|
6264
6284
|
FacebookCapiEventDto: {
|
|
6265
6285
|
/** @example EVENT_ID_123 */
|
|
6266
6286
|
eventId: string;
|
|
@@ -7822,6 +7842,60 @@ interface components {
|
|
|
7822
7842
|
/** @example false */
|
|
7823
7843
|
lifetime: boolean;
|
|
7824
7844
|
};
|
|
7845
|
+
SubscriptionResponseDto: {
|
|
7846
|
+
/**
|
|
7847
|
+
* @description Subscription ID
|
|
7848
|
+
* @example 1
|
|
7849
|
+
*/
|
|
7850
|
+
id: number;
|
|
7851
|
+
/**
|
|
7852
|
+
* Format: date-time
|
|
7853
|
+
* @description Subscription start date
|
|
7854
|
+
* @example 2025-08-13T10:26:06.407Z
|
|
7855
|
+
*/
|
|
7856
|
+
startDate: string | null;
|
|
7857
|
+
/**
|
|
7858
|
+
* Format: date-time
|
|
7859
|
+
* @description Subscription finish date
|
|
7860
|
+
* @example 2025-08-13T10:26:06.407Z
|
|
7861
|
+
*/
|
|
7862
|
+
finishDate: string | null;
|
|
7863
|
+
/**
|
|
7864
|
+
* @description External source identifier
|
|
7865
|
+
* @example abc-11
|
|
7866
|
+
*/
|
|
7867
|
+
sourceId: string;
|
|
7868
|
+
/**
|
|
7869
|
+
* @description Subscription period (e.g., "28d", "1m", "3m", "2y")
|
|
7870
|
+
* @example 1m
|
|
7871
|
+
*/
|
|
7872
|
+
period: string;
|
|
7873
|
+
/**
|
|
7874
|
+
* @description Whether subscription is active
|
|
7875
|
+
* @example true
|
|
7876
|
+
*/
|
|
7877
|
+
active: boolean;
|
|
7878
|
+
/**
|
|
7879
|
+
* @description Total subscription price
|
|
7880
|
+
* @example 29.99
|
|
7881
|
+
*/
|
|
7882
|
+
total: number;
|
|
7883
|
+
/**
|
|
7884
|
+
* @description Order ID
|
|
7885
|
+
* @example Ord-12342
|
|
7886
|
+
*/
|
|
7887
|
+
orderId: string;
|
|
7888
|
+
/**
|
|
7889
|
+
* @description Subscription prefix
|
|
7890
|
+
* @example WE
|
|
7891
|
+
*/
|
|
7892
|
+
prefix: string;
|
|
7893
|
+
/**
|
|
7894
|
+
* @description Whether subscription is lifetime
|
|
7895
|
+
* @example false
|
|
7896
|
+
*/
|
|
7897
|
+
lifetime: boolean;
|
|
7898
|
+
};
|
|
7825
7899
|
NextPaymentDto: {
|
|
7826
7900
|
/**
|
|
7827
7901
|
* @description Payment due date
|
|
@@ -7878,6 +7952,11 @@ interface components {
|
|
|
7878
7952
|
lifetime?: boolean;
|
|
7879
7953
|
};
|
|
7880
7954
|
GetSubscriptionInfoResponseDto: {
|
|
7955
|
+
/**
|
|
7956
|
+
* @description Subscription ID
|
|
7957
|
+
* @example 1
|
|
7958
|
+
*/
|
|
7959
|
+
id: number;
|
|
7881
7960
|
/**
|
|
7882
7961
|
* @description Subscription period type
|
|
7883
7962
|
* @example 1m
|
|
@@ -7914,19 +7993,42 @@ interface components {
|
|
|
7914
7993
|
/** @example Customer requested cancellation */
|
|
7915
7994
|
reason: string;
|
|
7916
7995
|
};
|
|
7996
|
+
SubscriptionCancelResponseDto: {
|
|
7997
|
+
/**
|
|
7998
|
+
* @description Cancellation record ID
|
|
7999
|
+
* @example 1
|
|
8000
|
+
*/
|
|
8001
|
+
id: number;
|
|
8002
|
+
/**
|
|
8003
|
+
* @description Associated subscription ID
|
|
8004
|
+
* @example 1
|
|
8005
|
+
*/
|
|
8006
|
+
subscriptionId: number | null;
|
|
8007
|
+
/**
|
|
8008
|
+
* @description Cancellation reason
|
|
8009
|
+
* @example Customer requested cancellation
|
|
8010
|
+
*/
|
|
8011
|
+
reason: string;
|
|
8012
|
+
/**
|
|
8013
|
+
* Format: date
|
|
8014
|
+
* @description Cancellation date (date only)
|
|
8015
|
+
* @example 2025-08-13
|
|
8016
|
+
*/
|
|
8017
|
+
date: string | null;
|
|
8018
|
+
};
|
|
7917
8019
|
PauseSubscriptionDto: {
|
|
7918
8020
|
/** @example 1 */
|
|
7919
8021
|
subscriptionId: number;
|
|
7920
8022
|
/**
|
|
7921
|
-
* @description Date
|
|
7922
|
-
* @example
|
|
8023
|
+
* @description Date in YYYY-MM-DD format
|
|
8024
|
+
* @example 2025-01-02
|
|
7923
8025
|
*/
|
|
7924
|
-
dateFrom: string
|
|
8026
|
+
dateFrom: string;
|
|
7925
8027
|
/**
|
|
7926
|
-
* @description Date
|
|
8028
|
+
* @description Date in YYYY-MM-DD format
|
|
7927
8029
|
* @example 2025-09-15
|
|
7928
8030
|
*/
|
|
7929
|
-
dateTo: string
|
|
8031
|
+
dateTo: string;
|
|
7930
8032
|
description?: string;
|
|
7931
8033
|
};
|
|
7932
8034
|
SubscriptionPriceResponseDto: {
|
|
@@ -7978,6 +8080,28 @@ interface components {
|
|
|
7978
8080
|
discount: number;
|
|
7979
8081
|
description?: string;
|
|
7980
8082
|
};
|
|
8083
|
+
SubscriptionPaymentResponseDto: {
|
|
8084
|
+
/** @example 1 */
|
|
8085
|
+
id: number;
|
|
8086
|
+
/** @example 1 */
|
|
8087
|
+
subscriptionId: number;
|
|
8088
|
+
/**
|
|
8089
|
+
* Format: date-time
|
|
8090
|
+
* @description Payment date
|
|
8091
|
+
* @example 2025-08-13T10:00:00.000Z
|
|
8092
|
+
*/
|
|
8093
|
+
date: string;
|
|
8094
|
+
/**
|
|
8095
|
+
* @description Payment status
|
|
8096
|
+
* @example paid
|
|
8097
|
+
*/
|
|
8098
|
+
status: string;
|
|
8099
|
+
/**
|
|
8100
|
+
* @description Payment amount
|
|
8101
|
+
* @example 29.99
|
|
8102
|
+
*/
|
|
8103
|
+
total: number;
|
|
8104
|
+
};
|
|
7981
8105
|
UpdatePaymentDto: {
|
|
7982
8106
|
/**
|
|
7983
8107
|
* @description Payment due date
|
|
@@ -8019,6 +8143,13 @@ interface components {
|
|
|
8019
8143
|
*/
|
|
8020
8144
|
description?: string;
|
|
8021
8145
|
};
|
|
8146
|
+
BulkUpdateFileDto: {
|
|
8147
|
+
/**
|
|
8148
|
+
* Format: binary
|
|
8149
|
+
* @description CSV file with columns: sourceId, total
|
|
8150
|
+
*/
|
|
8151
|
+
file: string;
|
|
8152
|
+
};
|
|
8022
8153
|
BulkUpdateCsvResponseDto: {
|
|
8023
8154
|
/**
|
|
8024
8155
|
* @description Number of subscriptions successfully updated
|
|
@@ -8099,7 +8230,7 @@ interface components {
|
|
|
8099
8230
|
* @description Related subscription ID; nullable in schema
|
|
8100
8231
|
* @example 123
|
|
8101
8232
|
*/
|
|
8102
|
-
subscriptionId?:
|
|
8233
|
+
subscriptionId?: number;
|
|
8103
8234
|
/**
|
|
8104
8235
|
* @description Requester email
|
|
8105
8236
|
* @example user@example.com
|
|
@@ -8320,7 +8451,7 @@ interface components {
|
|
|
8320
8451
|
* @description Related subscription ID; nullable in schema
|
|
8321
8452
|
* @example 123
|
|
8322
8453
|
*/
|
|
8323
|
-
subscriptionId?:
|
|
8454
|
+
subscriptionId?: number;
|
|
8324
8455
|
/**
|
|
8325
8456
|
* @description Requester email
|
|
8326
8457
|
* @example user@example.com
|
|
@@ -8460,8 +8591,18 @@ declare const server: {
|
|
|
8460
8591
|
}[]>;
|
|
8461
8592
|
};
|
|
8462
8593
|
subscription: {
|
|
8463
|
-
cancelById: (id: number, data: components["schemas"]["CancelSubscriptionDto"]) => Promise<{
|
|
8464
|
-
|
|
8594
|
+
cancelById: (id: number, data: components["schemas"]["CancelSubscriptionDto"]) => Promise<{
|
|
8595
|
+
id: number;
|
|
8596
|
+
subscriptionId: number | null;
|
|
8597
|
+
reason: string;
|
|
8598
|
+
date: string | null;
|
|
8599
|
+
}>;
|
|
8600
|
+
cancelByOrderId: (uuid: string, data: components["schemas"]["CancelSubscriptionDto"]) => Promise<{
|
|
8601
|
+
id: number;
|
|
8602
|
+
subscriptionId: number | null;
|
|
8603
|
+
reason: string;
|
|
8604
|
+
date: string | null;
|
|
8605
|
+
}[]>;
|
|
8465
8606
|
applyDiscount: (data: components["schemas"]["DiscountSubscriptionDto"]) => Promise<{
|
|
8466
8607
|
id: number;
|
|
8467
8608
|
subscriptionId: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -2239,11 +2239,13 @@ interface components {
|
|
|
2239
2239
|
orderId: string;
|
|
2240
2240
|
relations: string[];
|
|
2241
2241
|
};
|
|
2242
|
-
|
|
2242
|
+
FacebookCapiPayloadEventDataDto: {
|
|
2243
2243
|
/** @example USD */
|
|
2244
2244
|
currency?: string;
|
|
2245
2245
|
/** @example 129.99 */
|
|
2246
2246
|
total?: number;
|
|
2247
|
+
/** @example 129.99 */
|
|
2248
|
+
profit?: number;
|
|
2247
2249
|
/** @example https://example.com/product/123 */
|
|
2248
2250
|
sourceUrl: string;
|
|
2249
2251
|
};
|
|
@@ -2314,7 +2316,7 @@ interface components {
|
|
|
2314
2316
|
eventId: string;
|
|
2315
2317
|
/** @example Purchase */
|
|
2316
2318
|
eventName: string;
|
|
2317
|
-
eventData: components["schemas"]["
|
|
2319
|
+
eventData: components["schemas"]["FacebookCapiPayloadEventDataDto"];
|
|
2318
2320
|
originalEventData?: components["schemas"]["FacebookCapiOriginalEventDataDto"];
|
|
2319
2321
|
testEventCode?: string;
|
|
2320
2322
|
clientData?: components["schemas"]["CustomClientData"];
|
|
@@ -4009,6 +4011,11 @@ interface components {
|
|
|
4009
4011
|
links: components["schemas"]["PaypalBillingAgreementLinkDto"][];
|
|
4010
4012
|
};
|
|
4011
4013
|
PaypalOrderV1CreateDto: {
|
|
4014
|
+
/**
|
|
4015
|
+
* @description The intent of the payment.
|
|
4016
|
+
* @example CAPTURE
|
|
4017
|
+
*/
|
|
4018
|
+
intent?: string;
|
|
4012
4019
|
/**
|
|
4013
4020
|
* @description The currency of the payment.
|
|
4014
4021
|
* @example USD
|
|
@@ -4189,6 +4196,11 @@ interface components {
|
|
|
4189
4196
|
links: components["schemas"]["PaypalOrderV1CreateLinkDto"][];
|
|
4190
4197
|
};
|
|
4191
4198
|
PaypalOrderV1CreateFromSessionDto: {
|
|
4199
|
+
/**
|
|
4200
|
+
* @description The intent of the payment.
|
|
4201
|
+
* @example CAPTURE
|
|
4202
|
+
*/
|
|
4203
|
+
intent?: string;
|
|
4192
4204
|
/**
|
|
4193
4205
|
* @description The URL to redirect to after the payment is canceled.
|
|
4194
4206
|
* @example https://example.com/cancel
|
|
@@ -6261,6 +6273,14 @@ interface components {
|
|
|
6261
6273
|
*/
|
|
6262
6274
|
phone?: string;
|
|
6263
6275
|
};
|
|
6276
|
+
FacebookCapiEventDataDto: {
|
|
6277
|
+
/** @example USD */
|
|
6278
|
+
currency?: string;
|
|
6279
|
+
/** @example 129.99 */
|
|
6280
|
+
total?: number;
|
|
6281
|
+
/** @example https://example.com/product/123 */
|
|
6282
|
+
sourceUrl: string;
|
|
6283
|
+
};
|
|
6264
6284
|
FacebookCapiEventDto: {
|
|
6265
6285
|
/** @example EVENT_ID_123 */
|
|
6266
6286
|
eventId: string;
|
|
@@ -7822,6 +7842,60 @@ interface components {
|
|
|
7822
7842
|
/** @example false */
|
|
7823
7843
|
lifetime: boolean;
|
|
7824
7844
|
};
|
|
7845
|
+
SubscriptionResponseDto: {
|
|
7846
|
+
/**
|
|
7847
|
+
* @description Subscription ID
|
|
7848
|
+
* @example 1
|
|
7849
|
+
*/
|
|
7850
|
+
id: number;
|
|
7851
|
+
/**
|
|
7852
|
+
* Format: date-time
|
|
7853
|
+
* @description Subscription start date
|
|
7854
|
+
* @example 2025-08-13T10:26:06.407Z
|
|
7855
|
+
*/
|
|
7856
|
+
startDate: string | null;
|
|
7857
|
+
/**
|
|
7858
|
+
* Format: date-time
|
|
7859
|
+
* @description Subscription finish date
|
|
7860
|
+
* @example 2025-08-13T10:26:06.407Z
|
|
7861
|
+
*/
|
|
7862
|
+
finishDate: string | null;
|
|
7863
|
+
/**
|
|
7864
|
+
* @description External source identifier
|
|
7865
|
+
* @example abc-11
|
|
7866
|
+
*/
|
|
7867
|
+
sourceId: string;
|
|
7868
|
+
/**
|
|
7869
|
+
* @description Subscription period (e.g., "28d", "1m", "3m", "2y")
|
|
7870
|
+
* @example 1m
|
|
7871
|
+
*/
|
|
7872
|
+
period: string;
|
|
7873
|
+
/**
|
|
7874
|
+
* @description Whether subscription is active
|
|
7875
|
+
* @example true
|
|
7876
|
+
*/
|
|
7877
|
+
active: boolean;
|
|
7878
|
+
/**
|
|
7879
|
+
* @description Total subscription price
|
|
7880
|
+
* @example 29.99
|
|
7881
|
+
*/
|
|
7882
|
+
total: number;
|
|
7883
|
+
/**
|
|
7884
|
+
* @description Order ID
|
|
7885
|
+
* @example Ord-12342
|
|
7886
|
+
*/
|
|
7887
|
+
orderId: string;
|
|
7888
|
+
/**
|
|
7889
|
+
* @description Subscription prefix
|
|
7890
|
+
* @example WE
|
|
7891
|
+
*/
|
|
7892
|
+
prefix: string;
|
|
7893
|
+
/**
|
|
7894
|
+
* @description Whether subscription is lifetime
|
|
7895
|
+
* @example false
|
|
7896
|
+
*/
|
|
7897
|
+
lifetime: boolean;
|
|
7898
|
+
};
|
|
7825
7899
|
NextPaymentDto: {
|
|
7826
7900
|
/**
|
|
7827
7901
|
* @description Payment due date
|
|
@@ -7878,6 +7952,11 @@ interface components {
|
|
|
7878
7952
|
lifetime?: boolean;
|
|
7879
7953
|
};
|
|
7880
7954
|
GetSubscriptionInfoResponseDto: {
|
|
7955
|
+
/**
|
|
7956
|
+
* @description Subscription ID
|
|
7957
|
+
* @example 1
|
|
7958
|
+
*/
|
|
7959
|
+
id: number;
|
|
7881
7960
|
/**
|
|
7882
7961
|
* @description Subscription period type
|
|
7883
7962
|
* @example 1m
|
|
@@ -7914,19 +7993,42 @@ interface components {
|
|
|
7914
7993
|
/** @example Customer requested cancellation */
|
|
7915
7994
|
reason: string;
|
|
7916
7995
|
};
|
|
7996
|
+
SubscriptionCancelResponseDto: {
|
|
7997
|
+
/**
|
|
7998
|
+
* @description Cancellation record ID
|
|
7999
|
+
* @example 1
|
|
8000
|
+
*/
|
|
8001
|
+
id: number;
|
|
8002
|
+
/**
|
|
8003
|
+
* @description Associated subscription ID
|
|
8004
|
+
* @example 1
|
|
8005
|
+
*/
|
|
8006
|
+
subscriptionId: number | null;
|
|
8007
|
+
/**
|
|
8008
|
+
* @description Cancellation reason
|
|
8009
|
+
* @example Customer requested cancellation
|
|
8010
|
+
*/
|
|
8011
|
+
reason: string;
|
|
8012
|
+
/**
|
|
8013
|
+
* Format: date
|
|
8014
|
+
* @description Cancellation date (date only)
|
|
8015
|
+
* @example 2025-08-13
|
|
8016
|
+
*/
|
|
8017
|
+
date: string | null;
|
|
8018
|
+
};
|
|
7917
8019
|
PauseSubscriptionDto: {
|
|
7918
8020
|
/** @example 1 */
|
|
7919
8021
|
subscriptionId: number;
|
|
7920
8022
|
/**
|
|
7921
|
-
* @description Date
|
|
7922
|
-
* @example
|
|
8023
|
+
* @description Date in YYYY-MM-DD format
|
|
8024
|
+
* @example 2025-01-02
|
|
7923
8025
|
*/
|
|
7924
|
-
dateFrom: string
|
|
8026
|
+
dateFrom: string;
|
|
7925
8027
|
/**
|
|
7926
|
-
* @description Date
|
|
8028
|
+
* @description Date in YYYY-MM-DD format
|
|
7927
8029
|
* @example 2025-09-15
|
|
7928
8030
|
*/
|
|
7929
|
-
dateTo: string
|
|
8031
|
+
dateTo: string;
|
|
7930
8032
|
description?: string;
|
|
7931
8033
|
};
|
|
7932
8034
|
SubscriptionPriceResponseDto: {
|
|
@@ -7978,6 +8080,28 @@ interface components {
|
|
|
7978
8080
|
discount: number;
|
|
7979
8081
|
description?: string;
|
|
7980
8082
|
};
|
|
8083
|
+
SubscriptionPaymentResponseDto: {
|
|
8084
|
+
/** @example 1 */
|
|
8085
|
+
id: number;
|
|
8086
|
+
/** @example 1 */
|
|
8087
|
+
subscriptionId: number;
|
|
8088
|
+
/**
|
|
8089
|
+
* Format: date-time
|
|
8090
|
+
* @description Payment date
|
|
8091
|
+
* @example 2025-08-13T10:00:00.000Z
|
|
8092
|
+
*/
|
|
8093
|
+
date: string;
|
|
8094
|
+
/**
|
|
8095
|
+
* @description Payment status
|
|
8096
|
+
* @example paid
|
|
8097
|
+
*/
|
|
8098
|
+
status: string;
|
|
8099
|
+
/**
|
|
8100
|
+
* @description Payment amount
|
|
8101
|
+
* @example 29.99
|
|
8102
|
+
*/
|
|
8103
|
+
total: number;
|
|
8104
|
+
};
|
|
7981
8105
|
UpdatePaymentDto: {
|
|
7982
8106
|
/**
|
|
7983
8107
|
* @description Payment due date
|
|
@@ -8019,6 +8143,13 @@ interface components {
|
|
|
8019
8143
|
*/
|
|
8020
8144
|
description?: string;
|
|
8021
8145
|
};
|
|
8146
|
+
BulkUpdateFileDto: {
|
|
8147
|
+
/**
|
|
8148
|
+
* Format: binary
|
|
8149
|
+
* @description CSV file with columns: sourceId, total
|
|
8150
|
+
*/
|
|
8151
|
+
file: string;
|
|
8152
|
+
};
|
|
8022
8153
|
BulkUpdateCsvResponseDto: {
|
|
8023
8154
|
/**
|
|
8024
8155
|
* @description Number of subscriptions successfully updated
|
|
@@ -8099,7 +8230,7 @@ interface components {
|
|
|
8099
8230
|
* @description Related subscription ID; nullable in schema
|
|
8100
8231
|
* @example 123
|
|
8101
8232
|
*/
|
|
8102
|
-
subscriptionId?:
|
|
8233
|
+
subscriptionId?: number;
|
|
8103
8234
|
/**
|
|
8104
8235
|
* @description Requester email
|
|
8105
8236
|
* @example user@example.com
|
|
@@ -8320,7 +8451,7 @@ interface components {
|
|
|
8320
8451
|
* @description Related subscription ID; nullable in schema
|
|
8321
8452
|
* @example 123
|
|
8322
8453
|
*/
|
|
8323
|
-
subscriptionId?:
|
|
8454
|
+
subscriptionId?: number;
|
|
8324
8455
|
/**
|
|
8325
8456
|
* @description Requester email
|
|
8326
8457
|
* @example user@example.com
|
|
@@ -8460,8 +8591,18 @@ declare const server: {
|
|
|
8460
8591
|
}[]>;
|
|
8461
8592
|
};
|
|
8462
8593
|
subscription: {
|
|
8463
|
-
cancelById: (id: number, data: components["schemas"]["CancelSubscriptionDto"]) => Promise<{
|
|
8464
|
-
|
|
8594
|
+
cancelById: (id: number, data: components["schemas"]["CancelSubscriptionDto"]) => Promise<{
|
|
8595
|
+
id: number;
|
|
8596
|
+
subscriptionId: number | null;
|
|
8597
|
+
reason: string;
|
|
8598
|
+
date: string | null;
|
|
8599
|
+
}>;
|
|
8600
|
+
cancelByOrderId: (uuid: string, data: components["schemas"]["CancelSubscriptionDto"]) => Promise<{
|
|
8601
|
+
id: number;
|
|
8602
|
+
subscriptionId: number | null;
|
|
8603
|
+
reason: string;
|
|
8604
|
+
date: string | null;
|
|
8605
|
+
}[]>;
|
|
8465
8606
|
applyDiscount: (data: components["schemas"]["DiscountSubscriptionDto"]) => Promise<{
|
|
8466
8607
|
id: number;
|
|
8467
8608
|
subscriptionId: number;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/server/middleware.ts","../src/server/_utils/is.ts","../src/server/_utils/client-ip.ts","../src/browser/crm-auth/path.ts","../src/server/_utils/server-fetch-utils.ts","../src/server/cache/cache.ts","../src/server/split/get-split-data.ts","../src/server/_utils/backend-url.ts","../src/server/_utils/trim-char.ts","../src/server/split/get-split-item.ts","../src/server/split/get-split-winner.ts","../src/browser/funnels/get-capibox-templates.ts","../src/browser/funnels/get.ts","../src/browser/funnels/get-templates.ts","../src/lib/api.ts","../src/server/session/get.ts","../src/server/capi/snapchat-s2s.ts","../src/server/funnels/clear-cache.ts","../src/server/capi/tiktok-s2s.ts","../src/server/capi/facebook-s2s.ts","../src/server/session/append.ts","../src/server/session/getByEmail.ts","../src/server/klaviyo/klaviyo-send-event.ts","../src/server/klaviyo/klaviyo-send-bulk.ts","../src/server/realtime/realtime-utm-order-data.ts","../src/server/order/order-get-by-uuid.ts","../src/server/order/order-get-by-email.ts","../src/server/payments/payment-first-payment.ts","../src/server/payments/payment-last-payments.ts","../src/server/subscription/cancel-subscription-by-id.ts","../src/server/subscription/cancel-subscriptions-by-order-id.ts","../src/server/subscription/subscription-apply-discount.ts","../src/server/subscription/subscription-pause.ts","../src/server/subscription/fill-subscription-cancel-request.ts"],"sourcesContent":["import {middleware} from \"./server/middleware\";\nimport {getFunnels} from \"./browser/funnels/get\";\nimport {getTemplates} from \"./browser/funnels/get-templates\";\nimport {getSession} from \"./server/session/get\";\nimport {snapchatS2s} from \"./server/capi/snapchat-s2s\";\nimport {funnelsClearCache} from \"./server/funnels/clear-cache\";\nimport {tiktokS2S} from \"./server/capi/tiktok-s2s\";\nimport {facebookS2S} from \"./server/capi/facebook-s2s\";\nimport {appendSession} from \"./server/session/append\";\nimport {getSessionByEmail} from \"./server/session/getByEmail\";\nimport {klaviyoSendEvent} from \"./server/klaviyo/klaviyo-send-event\";\nimport {klaviyoSendBulk} from \"./server/klaviyo/klaviyo-send-bulk\";\nimport {realtimeUtmOrderData} from \"./server/realtime/realtime-utm-order-data\";\nimport {orderGetByUuid} from \"./server/order/order-get-by-uuid\";\nimport {orderGetByEmail} from \"./server/order/order-get-by-email\";\nimport {paymentFirstPayment} from \"./server/payments/payment-first-payment\";\nimport {paymentLastPayments} from \"./server/payments/payment-last-payments\";\nimport {cancelSubscriptionById} from \"./server/subscription/cancel-subscription-by-id\";\nimport {cancelSubscriptionsByOrderId} from \"./server/subscription/cancel-subscriptions-by-order-id\";\nimport {subscriptionApplyDiscount} from \"./server/subscription/subscription-apply-discount\";\nimport {subscriptionPause} from \"./server/subscription/subscription-pause\";\nimport {fillSubscriptionCancelRequest} from \"./server/subscription/fill-subscription-cancel-request\";\n\n\nexport {SdkRemoteFunnel} from \"./browser/funnels/get\";\n\nconst server = {\n middleware,\n funnels: {\n get: getFunnels,\n getTemplates,\n clearCache: funnelsClearCache,\n },\n session: {\n get: getSession,\n append: appendSession,\n getByEmail: getSessionByEmail,\n },\n capi: {\n snapchat: snapchatS2s,\n tiktok: tiktokS2S,\n facebook: facebookS2S,\n },\n klaviyo: {\n send: klaviyoSendEvent,\n sendBulk: klaviyoSendBulk,\n },\n realtime: {\n orderUtmData: realtimeUtmOrderData,\n },\n order: {\n getByUuid: orderGetByUuid,\n getByEmail: orderGetByEmail\n },\n payments: {\n firstPayment: paymentFirstPayment,\n last5Payments: paymentLastPayments\n },\n subscription: {\n cancelById: cancelSubscriptionById,\n cancelByOrderId: cancelSubscriptionsByOrderId,\n applyDiscount: subscriptionApplyDiscount,\n pause: subscriptionPause,\n fillCancellationRequest: fillSubscriptionCancelRequest,\n }\n}\n\nexport {\n server\n}\n\n// v.0.0.74","import {NextRequest, NextResponse, userAgent} from \"next/server\";\nimport {getClientIp} from \"./_utils/client-ip\";\nimport {CRM_AUTH_SIGN_IN_PATH, CRM_AUTH_SIGN_OUT_PATH, CRM_AUTH_VERIFY_PATH} from \"../browser/crm-auth/path\";\nimport {serverProxyHeaders} from \"./_utils/server-fetch-utils\";\nimport cache from 'memory-cache';\nimport {CACHE_KEY_FUNNELS, CACHE_KEY_SPLIT} from \"./cache/cache\";\nimport {getSplitItemForReq} from \"./split/get-split-item\";\nimport {trimChar} from \"./_utils/trim-char\";\nimport {getSplitItemUrlWinner} from \"./split/get-split-winner\";\nimport {getBackendUrl} from \"./_utils/backend-url\";\nimport {getCapiboxTemplates} from \"../browser/funnels/get-capibox-templates\";\n\ntype Templates = {\n [key: string]: string[]\n}\n\ntype Options = {\n templates?: Templates,\n onCrmTokenCheck?: (res: any) => Promise<any>,\n}\n\nexport const middleware = async (\n req: NextRequest,\n options?: Options,\n) => {\n if (req.nextUrl.pathname.startsWith('/app/clear-cache')) {\n cache.del(CACHE_KEY_FUNNELS);\n cache.del(CACHE_KEY_SPLIT);\n\n const res = NextResponse.json({s: new Date().getTime()})\n\n res.headers.append('Access-Control-Allow-Credentials', \"true\")\n res.headers.append('Access-Control-Allow-Origin', '*') // replace this your actual origin\n res.headers.append('Access-Control-Allow-Methods', 'GET,DELETE,PATCH,POST,PUT')\n res.headers.append(\n 'Access-Control-Allow-Headers',\n 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n )\n return res;\n }\n\n if (options?.templates && req.nextUrl.pathname.startsWith('/app/get-templates')) {\n const res = NextResponse.json({\n success: true,\n\n data: options.templates,\n })\n res.headers.append('Access-Control-Allow-Credentials', \"true\")\n res.headers.append('Access-Control-Allow-Origin', '*') // replace this your actual origin\n res.headers.append('Access-Control-Allow-Methods', 'GET,DELETE,PATCH,POST,PUT')\n res.headers.append(\n 'Access-Control-Allow-Headers',\n 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n )\n\n return res\n }\n\n // SPLIT TEST\n const input = await getSplitItemForReq({req});\n if (input) {\n const currentSplit = getSplitItemUrlWinner(input);\n\n return NextResponse.redirect(\n new URL(`/${trimChar(currentSplit.url, '/')}${req.nextUrl.search}`, req.url),\n )\n }\n\n if (req.nextUrl.pathname.startsWith('/api-client-proxy')) {\n if (req.nextUrl.pathname === '/api-client-proxy/funnels/funnel') {\n const capiboxTemplates = await getCapiboxTemplates();\n const res = NextResponse.json(capiboxTemplates);\n res.headers.set('X-Cache', 'HIT');\n return res;\n }\n\n let urlClone = req.nextUrl.clone();\n\n const targetUrl = new URL(getBackendUrl())\n const requestHeaders = new Headers(req.headers)\n requestHeaders.set('host', targetUrl.hostname)\n requestHeaders.set('project-key', `${process.env.CAPIBOX_API_KEY}`)\n\n if (req.nextUrl.pathname.includes('/realtime/')) {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {device, browser, os} = userAgent(req)\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-os', `${os.name} / ${os.version}`)\n requestHeaders.set('x-browser', `${browser.name} / ${browser.version}`)\n requestHeaders.set('x-device', device.type ? device.type : '-')\n const anUuidV3Cookie = req.cookies.get('an_uuid_v3');\n if (anUuidV3Cookie) {\n requestHeaders.set('x-realtime', anUuidV3Cookie?.value)\n }\n }\n if (req.nextUrl.pathname === '/api-client-proxy/session') {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {ua} = userAgent(req);\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-user-agent', ua)\n }\n\n urlClone.protocol = targetUrl.protocol\n urlClone.hostname = targetUrl.hostname\n urlClone.port = targetUrl.port\n urlClone.pathname = urlClone.pathname.replace(/^\\/api-client-proxy/, '');\n\n return NextResponse.rewrite(urlClone, {\n request: {\n headers: requestHeaders,\n },\n })\n }\n\n // crm auth\n if (req.nextUrl.pathname === CRM_AUTH_SIGN_IN_PATH) {\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/sign-in',\n {\n method: 'POST',\n body: JSON.stringify(await req.json()),\n headers: serverProxyHeaders(),\n }\n )\n const resJson = await res.json();\n\n const result = NextResponse.json(resJson);\n if (!!resJson.action && !!resJson.token && resJson.action === 'logged-in') {\n result.cookies.set({\n name: \"token\",\n value: resJson.token,\n maxAge: 60 * 60 * 24 * 30,\n httpOnly: true,\n });\n }\n return result;\n }\n if (req.nextUrl.pathname === CRM_AUTH_VERIFY_PATH) {\n const tokenCookie = req.cookies.get('token')\n if (!tokenCookie || !tokenCookie.value) {\n return NextResponse.json({success: 0})\n }\n\n const payload = {\n data: {\n token: tokenCookie.value,\n }\n }\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/check',\n {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: serverProxyHeaders(),\n }\n )\n let resJson = await res.json();\n\n if (options?.onCrmTokenCheck) {\n resJson = await options.onCrmTokenCheck(resJson);\n }\n\n const result = NextResponse.json(resJson);\n if (!('id' in resJson && resJson.id > 0)) {\n result.cookies.delete(\"token\");\n }\n\n return result;\n }\n if (req.nextUrl.pathname === CRM_AUTH_SIGN_OUT_PATH) {\n const res = NextResponse.json({success: 1});\n res.cookies.delete(\"token\");\n return res;\n }\n}","\"use strict\";\n\nconst regexes = {\n ipv4: /^(?:(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])$/,\n ipv6: /^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i\n};\n\nfunction not(func: any) {\n return function () {\n return !func.apply(null, Array.prototype.slice.call(arguments));\n };\n}\n\nfunction existy(value: any) {\n return value != null;\n}\n\nfunction ip(value: any) {\n return existy(value) && regexes.ipv4.test(value) || regexes.ipv6.test(value);\n}\n\nfunction object(value: any) {\n return Object(value) === value;\n}\n\nfunction string(value: any) {\n return Object.prototype.toString.call(value) === '[object String]';\n}\n\nconst is = {\n existy: existy,\n ip: ip,\n object: object,\n string: string,\n not: {\n existy: not(existy),\n ip: not(ip),\n object: not(object),\n string: not(string)\n }\n};\nexport default is;\n","import is from \"./is\";\n\nfunction getClientIpFromXForwardedFor(value: any) {\n if (!is.existy(value)) {\n return null;\n }\n\n const forwardedIps = value.split(',').map(function (e: string) {\n const ip = e.trim();\n\n if (ip.includes(':')) {\n const splitted = ip.split(':');\n if (splitted.length === 2) {\n return splitted[0];\n }\n }\n return ip;\n });\n\n for (let i = 0; i < forwardedIps.length; i++) {\n if (is.ip(forwardedIps[i])) {\n return forwardedIps[i];\n }\n }\n\n return null;\n}\n\nexport function getClientIp(req: {\n headers?: {\n [key: string]: string\n },\n connection?: {\n remoteAddress?: string,\n socket?: {\n remoteAddress?: string,\n },\n },\n socket?: {\n remoteAddress?: string,\n },\n info?: {\n remoteAddress?: string,\n },\n requestContext?: {\n identity?: {\n sourceIp?: string,\n }\n },\n}) {\n if (req.headers) {\n if (is.ip(req.headers['x-client-ip'])) {\n return req.headers['x-client-ip'];\n }\n\n const xForwardedFor = getClientIpFromXForwardedFor(req.headers['x-forwarded-for']);\n\n if (is.ip(req.headers['cf-connecting-ip'])) {\n return req.headers['cf-connecting-ip'];\n }\n\n if (is.ip(req.headers['fastly-client-ip'])) {\n return req.headers['fastly-client-ip'];\n }\n\n if (is.ip(req.headers['true-client-ip'])) {\n return req.headers['true-client-ip'];\n }\n\n if (is.ip(req.headers['x-real-ip'])) {\n return req.headers['x-real-ip'];\n }\n\n if (is.ip(req.headers['x-cluster-client-ip'])) {\n return req.headers['x-cluster-client-ip'];\n }\n\n if (is.ip(req.headers['x-forwarded'])) {\n return req.headers['x-forwarded'];\n }\n\n if (is.ip(req.headers['forwarded-for'])) {\n return req.headers['forwarded-for'];\n }\n\n if (is.ip(xForwardedFor)) {\n return xForwardedFor;\n }\n\n if (is.ip(req.headers.forwarded)) {\n return req.headers.forwarded;\n }\n\n if (is.ip(req.headers['x-appengine-user-ip'])) {\n return req.headers['x-appengine-user-ip'];\n }\n }\n\n if (is.existy(req.connection) && !!req.connection) {\n if (is.ip(req.connection.remoteAddress)) {\n return req.connection.remoteAddress;\n }\n\n if (is.existy(req.connection.socket) && !!req.connection.socket && !!req.connection.socket.remoteAddress && is.ip(req.connection.socket.remoteAddress)) {\n return req.connection.socket.remoteAddress;\n }\n }\n\n if (is.existy(req.socket) && !!req.socket && !!req.socket.remoteAddress && is.ip(req.socket.remoteAddress)) {\n return req.socket.remoteAddress;\n }\n\n if (is.existy(req.info) && !!req.info && !!req.info.remoteAddress && is.ip(req.info.remoteAddress)) {\n return req.info.remoteAddress;\n }\n\n if (is.existy(req.requestContext) && !!req.requestContext && is.existy(req.requestContext.identity) && !!req.requestContext.identity && !!req.requestContext.identity.sourceIp && is.ip(req.requestContext.identity.sourceIp)) {\n return req.requestContext.identity.sourceIp;\n }\n\n if (req.headers) {\n if (is.ip(req.headers['Cf-Pseudo-IPv4'])) {\n return req.headers['Cf-Pseudo-IPv4'];\n }\n }\n\n return \"127.0.0.2\";\n}\n\n","export const CRM_AUTH_SIGN_IN_PATH = '/api/crm-auth/sign-in';\nexport const CRM_AUTH_SIGN_OUT_PATH = '/api/crm-auth/sign-out';\nexport const CRM_AUTH_VERIFY_PATH = '/api/crm-auth/verify';","import {NextRequest} from \"next/server\";\n// import {endpoint} from \"@capibox/bridge-interface\";\n\n// export const serverProxyPostRequest = async (req: NextRequest) => {\n// const res = await fetch(\n// req.nextUrl.pathname.replace(\n// endpoint.MAIN_ENDPOINT,\n// 'https://api.capibox.com'\n// ),\n// {\n// method: 'POST',\n// body: JSON.stringify(await req.json()),\n// headers: serverProxyHeaders(),\n// }\n// )\n// return await res.json();\n// }\n\nexport const serverProxyHeaders = () => {\n return {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_ENV}`.toLowerCase() === 'prod' ? `${process.env.CAPIBOX_API_KEY}` : 'dev'\n }\n}","export const CACHE_KEY_FUNNELS = 'funnels-data';\nexport const CACHE_KEY_SPLIT = 'split-data';","import cache from \"memory-cache\";\nimport {CACHE_KEY_SPLIT} from \"../cache/cache\";\nimport {components} from \"../../lib/api.def\";\nimport {getBackendUrl} from \"../_utils/backend-url\";\n\nexport const getSplitData = async (): Promise<components['schemas']['SplitResponseDto'][]> => {\n const cachedResponse = cache.get(CACHE_KEY_SPLIT);\n\n if (cachedResponse) {\n return cachedResponse;\n } else {\n try {\n const res = await fetch(`${getBackendUrl()}/funnels/split`, {\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_API_KEY}`\n },\n });\n let resJson: components['schemas']['SplitResponseDto'][] = [];\n if (res.ok) {\n resJson = await res.json();\n }\n cache.put(CACHE_KEY_SPLIT, resJson, 2147483647);\n\n return resJson;\n } catch (e) {\n return [];\n }\n }\n};","export const getBackendUrl = () => {\n return process.env.CLIENT_BACKEND_URL ? process.env.CLIENT_BACKEND_URL : 'https://api.capibox.com';\n}","export const trimChar = (string: string, charToRemove: string) => {\n while (string.charAt(0) == charToRemove) {\n string = string.substring(1)\n }\n\n while (string.charAt(string.length - 1) == charToRemove) {\n string = string.substring(0, string.length - 1)\n }\n\n return string\n}\n","import {getSplitData} from \"./get-split-data\";\nimport {NextRequest} from \"next/server\";\nimport {trimChar} from \"../_utils/trim-char\";\n\nexport const getSplitItemForPath = async ({path}: { path: string }) => {\n\n const splits = await getSplitData();\n\n // TODO make url required\n const inputs = splits.filter(i => i.active)\n .map((i) => `/${trimChar((i.url ? i.url : ''), '/')}`)\n\n const inputIndex = inputs.indexOf(path)\n if (inputIndex >= 0) {\n return splits[inputIndex]\n }\n return undefined;\n}\n\nexport const getSplitItemForReq = async ({req}: { req: NextRequest }) => {\n return await getSplitItemForPath({path: req.nextUrl.pathname});\n}","import {components} from \"../../lib/api.def\";\n\nexport type SplitItemUrlWithRange = {\n range: {\n start: number,\n finish: number,\n }\n} & components['schemas']['SplitItemDto'];\n\nexport const getSplitItemUrlWinner = (item: components['schemas']['SplitResponseDto']) => {\n const splitValues = fillSplitItemUrlsRange(item);\n\n const _time = new Date().getTime()\n const _seed100 = _time % 100\n\n let currentSplit = splitValues.find(\n (e) => e.range.start <= _seed100 && e.range.finish > _seed100,\n )\n if (!currentSplit) {\n currentSplit = splitValues[0]\n }\n return currentSplit;\n}\n\n// TODO make splits required\nexport const fillSplitItemUrlsRange = (item: components['schemas']['SplitResponseDto']): SplitItemUrlWithRange[] => {\n const splits = item.splits ? item.splits : [];\n return splits.map((curr, i, data) => {\n const minPercent = data\n .slice(0, i)\n .map((a) => a.split)\n .reduce((a, b) => a + b, 0)\n\n return {\n ...curr,\n range: {\n start: minPercent,\n finish: minPercent + curr.split,\n },\n }\n });\n}","import cache from \"memory-cache\";\nimport {CACHE_KEY_FUNNELS} from \"../../server/cache/cache\";\nimport {getBackendUrl} from \"../../server/_utils/backend-url\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getCapiboxTemplates = async (): Promise<components['schemas']['FunnelResponseDto'][]> => {\n const cachedResponse = cache.get(CACHE_KEY_FUNNELS);\n if (cachedResponse) {\n return cachedResponse;\n } else {\n const funnelRes = await fetch(`${getBackendUrl()}/funnels/funnel`, {\n headers: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n })\n const responseBody = await funnelRes.json();\n cache.put(CACHE_KEY_FUNNELS, responseBody, 2147483647);\n return responseBody;\n }\n}","import {components} from \"../../lib/api.def\";\nimport {getCapiboxTemplates} from \"./get-capibox-templates\";\n\nexport type SdkRemoteFunnel = {\n checkout: string,\n landing: string,\n\n angle: string,\n version: string,\n\n homePageTemplate: string,\n quizPageTemplate: string,\n resultPageTemplate: string,\n emailPageTemplate: string,\n checkoutPageTemplate: string,\n paymentWindowTemplate: string,\n upsellPageTemplate: string,\n\n options?: any,\n upsellOptions?: any,\n}\n\nexport const getFunnels = async (): Promise<SdkRemoteFunnel[]> => {\n const tmpFunnels: components['schemas']['FunnelResponseDto'][] = await getCapiboxTemplates();\n const output: SdkRemoteFunnel[] = [];\n for (const funnel of tmpFunnels) {\n output.push({\n landing: funnel.angle,\n checkout: funnel.version,\n\n angle: funnel.angle,\n version: funnel.version,\n\n homePageTemplate: funnel.home_page,\n quizPageTemplate: funnel.quiz_page,\n resultPageTemplate: funnel.results_page,\n emailPageTemplate: funnel.email_page,\n checkoutPageTemplate: funnel.checkout_page,\n paymentWindowTemplate: funnel.payment_window,\n upsellPageTemplate: funnel.upsell_page,\n\n options: funnel.options,\n upsellOptions: funnel.upsell_options,\n });\n }\n return output;\n}","import {getFunnels, SdkRemoteFunnel} from \"./get\";\nimport {ReadonlyURLSearchParams} from \"next/navigation\";\n\n\ntype SdkRemoteTemplate = Omit<SdkRemoteFunnel, \"checkout\" | \"angle\" | \"landing\" | \"version\" | \"options\" | \"upsellOptions\">\n\nconst defaultTemplate: SdkRemoteTemplate = {\n homePageTemplate: 'Default',\n quizPageTemplate: 'Default',\n resultPageTemplate: 'Default',\n emailPageTemplate: 'Default',\n checkoutPageTemplate: 'Default',\n paymentWindowTemplate: 'Default',\n upsellPageTemplate: 'Default',\n}\n\ntype Props = {\n angle: string,\n version: string,\n searchParams?: ReadonlyURLSearchParams\n}\n\nexport const getTemplates = async ({\n angle, version, searchParams\n }: Props): Promise<SdkRemoteFunnel> => {\n const funnelsData = await getFunnels();\n\n const filteredFunnelsData = funnelsData.filter((a) => {\n if (\n (a.checkout === version || a.checkout === 'any') &&\n (a.landing === angle || a.landing === 'any')\n ) {\n return true\n }\n return false\n })\n if (filteredFunnelsData.length > 0) {\n const _flowData: SdkRemoteFunnel = JSON.parse(\n JSON.stringify(filteredFunnelsData[filteredFunnelsData.length - 1])\n )\n if (searchParams) {\n const keys = Object.keys(defaultTemplate)\n for (const key of keys) {\n if (searchParams.get(key)) {\n // @ts-ignore\n _flowData[key] = searchParams.get(key);\n }\n }\n }\n\n return _flowData;\n }\n return {\n ...defaultTemplate,\n landing: angle,\n checkout: version,\n angle,\n version,\n }\n}","import createFetchClient from \"openapi-fetch\";\nimport type {paths} from \"./api.def\";\nimport {getBackendUrl} from \"../server/_utils/backend-url\";\n\nexport const $apiClient = createFetchClient<paths>({\n baseUrl: getBackendUrl(),\n headers: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n});","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getSession = async (\n uuid: string,\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.GET(\n '/session/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n }\n );\n if (!res.data) {\n throw new Error('Failed to get session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const snapchatS2s = async (data: components['schemas']['SnapchatCapiBridgeDto']) => {\n await $apiClient.POST('/analytics/capi/snapchat/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import cache from \"memory-cache\";\nimport {CACHE_KEY_FUNNELS, CACHE_KEY_SPLIT} from \"../cache/cache\";\n\nexport const funnelsClearCache = () => {\n cache.del(CACHE_KEY_FUNNELS);\n cache.del(CACHE_KEY_SPLIT);\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const tiktokS2S = async (data: components['schemas']['TiktokCapiPayloadSessionBridge']) => {\n await $apiClient.POST('/analytics/capi/tiktok/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const facebookS2S = async (data: components['schemas']['FbCapiPayloadSessionBridge']) => {\n await $apiClient.POST('/analytics/capi/facebook/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const appendSession = async (\n uuid: string,\n body: components['schemas']['AppendSessionDto'],\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.PUT(\n '/session/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body\n }\n );\n if (!res.data) {\n throw new Error('Failed to append session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getSessionByEmail = async (\n email: string,\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.GET(\n '/session/email/{email}',\n {\n params: {\n path: {\n uuid: email\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n }\n );\n if (!res.data) {\n throw new Error('Failed to get session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const klaviyoSendEvent = async (dto: components[\"schemas\"][\"CreateEventDto\"]) => {\n const res = await $apiClient.POST(\n '/dynamic-public-direct/klaviyo/events',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n\n },\n body: dto\n });\n if (!res.data) {\n throw new Error('Failed to create payment session.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const klaviyoSendBulk = async (dto: components[\"schemas\"][\"CreateBulkEventDto\"]) => {\n const res = await $apiClient.POST(\n '/dynamic-public-direct/klaviyo/events/bulk',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n\n },\n body: dto\n });\n if (!res.data) {\n throw new Error('Failed to create payment session.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\n\nexport const realtimeUtmOrderData = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/realtime/events/utm-data/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n }\n }\n );\n if (!res.data) {\n throw new Error('Failed to get realtime utm data.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const orderGetByUuid = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/orders-management/report-item/order/{orderId}',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n path: {\n orderId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get order by uuid.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const orderGetByEmail = async (email: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/orders-management/report-item/email/{email}',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n path: {\n email\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get order by email.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\n\nexport const paymentFirstPayment = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/payments-management/payments/first-payment',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n query: {\n referenceId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get first payment.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const paymentLastPayments = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/payments-management/payments/last-5-payments',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n query: {\n referenceId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get last payments.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const cancelSubscriptionById = async (id: number, data: components[\"schemas\"][\"CancelSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/{id}/cancel', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n path: {\n id: id\n }\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to cancel subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const cancelSubscriptionsByOrderId = async (uuid: string, data: components[\"schemas\"][\"CancelSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/order/{orderId}/cancel', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n path: {\n orderId: uuid\n }\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to cancel subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const subscriptionApplyDiscount = async (data: components[\"schemas\"][\"DiscountSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/discount', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to apply discount.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const subscriptionPause = async (data: components[\"schemas\"][\"PauseSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/pause', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to pause subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const fillSubscriptionCancelRequest = async (data: components[\"schemas\"][\"CreateSubscriptionCancelRequestDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscription-cancel-requests', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to fill request.')\n }\n return res.data;\n};"],"mappings":"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","names":["ip","import_memory_cache","cache","string","import_memory_cache","cache","cache","ip","createFetchClient","import_memory_cache","cache"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/server/middleware.ts","../src/server/_utils/is.ts","../src/server/_utils/client-ip.ts","../src/browser/crm-auth/path.ts","../src/server/_utils/server-fetch-utils.ts","../src/server/cache/cache.ts","../src/server/split/get-split-data.ts","../src/server/_utils/backend-url.ts","../src/server/_utils/trim-char.ts","../src/server/split/get-split-item.ts","../src/server/split/get-split-winner.ts","../src/browser/funnels/get-capibox-templates.ts","../src/browser/funnels/get.ts","../src/browser/funnels/get-templates.ts","../src/lib/api.ts","../src/server/session/get.ts","../src/server/capi/snapchat-s2s.ts","../src/server/funnels/clear-cache.ts","../src/server/capi/tiktok-s2s.ts","../src/server/capi/facebook-s2s.ts","../src/server/session/append.ts","../src/server/session/getByEmail.ts","../src/server/klaviyo/klaviyo-send-event.ts","../src/server/klaviyo/klaviyo-send-bulk.ts","../src/server/realtime/realtime-utm-order-data.ts","../src/server/order/order-get-by-uuid.ts","../src/server/order/order-get-by-email.ts","../src/server/payments/payment-first-payment.ts","../src/server/payments/payment-last-payments.ts","../src/server/subscription/cancel-subscription-by-id.ts","../src/server/subscription/cancel-subscriptions-by-order-id.ts","../src/server/subscription/subscription-apply-discount.ts","../src/server/subscription/subscription-pause.ts","../src/server/subscription/fill-subscription-cancel-request.ts"],"sourcesContent":["import {middleware} from \"./server/middleware\";\nimport {getFunnels} from \"./browser/funnels/get\";\nimport {getTemplates} from \"./browser/funnels/get-templates\";\nimport {getSession} from \"./server/session/get\";\nimport {snapchatS2s} from \"./server/capi/snapchat-s2s\";\nimport {funnelsClearCache} from \"./server/funnels/clear-cache\";\nimport {tiktokS2S} from \"./server/capi/tiktok-s2s\";\nimport {facebookS2S} from \"./server/capi/facebook-s2s\";\nimport {appendSession} from \"./server/session/append\";\nimport {getSessionByEmail} from \"./server/session/getByEmail\";\nimport {klaviyoSendEvent} from \"./server/klaviyo/klaviyo-send-event\";\nimport {klaviyoSendBulk} from \"./server/klaviyo/klaviyo-send-bulk\";\nimport {realtimeUtmOrderData} from \"./server/realtime/realtime-utm-order-data\";\nimport {orderGetByUuid} from \"./server/order/order-get-by-uuid\";\nimport {orderGetByEmail} from \"./server/order/order-get-by-email\";\nimport {paymentFirstPayment} from \"./server/payments/payment-first-payment\";\nimport {paymentLastPayments} from \"./server/payments/payment-last-payments\";\nimport {cancelSubscriptionById} from \"./server/subscription/cancel-subscription-by-id\";\nimport {cancelSubscriptionsByOrderId} from \"./server/subscription/cancel-subscriptions-by-order-id\";\nimport {subscriptionApplyDiscount} from \"./server/subscription/subscription-apply-discount\";\nimport {subscriptionPause} from \"./server/subscription/subscription-pause\";\nimport {fillSubscriptionCancelRequest} from \"./server/subscription/fill-subscription-cancel-request\";\n\n\nexport {SdkRemoteFunnel} from \"./browser/funnels/get\";\n\nconst server = {\n middleware,\n funnels: {\n get: getFunnels,\n getTemplates,\n clearCache: funnelsClearCache,\n },\n session: {\n get: getSession,\n append: appendSession,\n getByEmail: getSessionByEmail,\n },\n capi: {\n snapchat: snapchatS2s,\n tiktok: tiktokS2S,\n facebook: facebookS2S,\n },\n klaviyo: {\n send: klaviyoSendEvent,\n sendBulk: klaviyoSendBulk,\n },\n realtime: {\n orderUtmData: realtimeUtmOrderData,\n },\n order: {\n getByUuid: orderGetByUuid,\n getByEmail: orderGetByEmail\n },\n payments: {\n firstPayment: paymentFirstPayment,\n last5Payments: paymentLastPayments\n },\n subscription: {\n cancelById: cancelSubscriptionById,\n cancelByOrderId: cancelSubscriptionsByOrderId,\n applyDiscount: subscriptionApplyDiscount,\n pause: subscriptionPause,\n fillCancellationRequest: fillSubscriptionCancelRequest,\n }\n}\n\nexport {\n server\n}\n\n// v.0.0.77","import {NextRequest, NextResponse, userAgent} from \"next/server\";\nimport {getClientIp} from \"./_utils/client-ip\";\nimport {CRM_AUTH_SIGN_IN_PATH, CRM_AUTH_SIGN_OUT_PATH, CRM_AUTH_VERIFY_PATH} from \"../browser/crm-auth/path\";\nimport {serverProxyHeaders} from \"./_utils/server-fetch-utils\";\nimport cache from 'memory-cache';\nimport {CACHE_KEY_FUNNELS, CACHE_KEY_SPLIT} from \"./cache/cache\";\nimport {getSplitItemForReq} from \"./split/get-split-item\";\nimport {trimChar} from \"./_utils/trim-char\";\nimport {getSplitItemUrlWinner} from \"./split/get-split-winner\";\nimport {getBackendUrl} from \"./_utils/backend-url\";\nimport {getCapiboxTemplates} from \"../browser/funnels/get-capibox-templates\";\n\ntype Templates = {\n [key: string]: string[]\n}\n\ntype Options = {\n templates?: Templates,\n onCrmTokenCheck?: (res: any) => Promise<any>,\n}\n\nexport const middleware = async (\n req: NextRequest,\n options?: Options,\n) => {\n if (req.nextUrl.pathname.startsWith('/app/clear-cache')) {\n cache.del(CACHE_KEY_FUNNELS);\n cache.del(CACHE_KEY_SPLIT);\n\n const res = NextResponse.json({s: new Date().getTime()})\n\n res.headers.append('Access-Control-Allow-Credentials', \"true\")\n res.headers.append('Access-Control-Allow-Origin', '*') // replace this your actual origin\n res.headers.append('Access-Control-Allow-Methods', 'GET,DELETE,PATCH,POST,PUT')\n res.headers.append(\n 'Access-Control-Allow-Headers',\n 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n )\n return res;\n }\n\n if (options?.templates && req.nextUrl.pathname.startsWith('/app/get-templates')) {\n const res = NextResponse.json({\n success: true,\n\n data: options.templates,\n })\n res.headers.append('Access-Control-Allow-Credentials', \"true\")\n res.headers.append('Access-Control-Allow-Origin', '*') // replace this your actual origin\n res.headers.append('Access-Control-Allow-Methods', 'GET,DELETE,PATCH,POST,PUT')\n res.headers.append(\n 'Access-Control-Allow-Headers',\n 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n )\n\n return res\n }\n\n // SPLIT TEST\n const input = await getSplitItemForReq({req});\n if (input) {\n const currentSplit = getSplitItemUrlWinner(input);\n\n return NextResponse.redirect(\n new URL(`/${trimChar(currentSplit.url, '/')}${req.nextUrl.search}`, req.url),\n )\n }\n\n if (req.nextUrl.pathname.startsWith('/api-client-proxy')) {\n if (req.nextUrl.pathname === '/api-client-proxy/funnels/funnel') {\n const capiboxTemplates = await getCapiboxTemplates();\n const res = NextResponse.json(capiboxTemplates);\n res.headers.set('X-Cache', 'HIT');\n return res;\n }\n\n let urlClone = req.nextUrl.clone();\n\n const targetUrl = new URL(getBackendUrl())\n const requestHeaders = new Headers(req.headers)\n requestHeaders.set('host', targetUrl.hostname)\n requestHeaders.set('project-key', `${process.env.CAPIBOX_API_KEY}`)\n\n if (req.nextUrl.pathname.includes('/realtime/')) {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {device, browser, os} = userAgent(req)\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-os', `${os.name} / ${os.version}`)\n requestHeaders.set('x-browser', `${browser.name} / ${browser.version}`)\n requestHeaders.set('x-device', device.type ? device.type : '-')\n const anUuidV3Cookie = req.cookies.get('an_uuid_v3');\n if (anUuidV3Cookie) {\n requestHeaders.set('x-realtime', anUuidV3Cookie?.value)\n }\n }\n if (req.nextUrl.pathname === '/api-client-proxy/session') {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {ua} = userAgent(req);\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-user-agent', ua)\n }\n\n urlClone.protocol = targetUrl.protocol\n urlClone.hostname = targetUrl.hostname\n urlClone.port = targetUrl.port\n urlClone.pathname = urlClone.pathname.replace(/^\\/api-client-proxy/, '');\n\n return NextResponse.rewrite(urlClone, {\n request: {\n headers: requestHeaders,\n },\n })\n }\n\n // crm auth\n if (req.nextUrl.pathname === CRM_AUTH_SIGN_IN_PATH) {\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/sign-in',\n {\n method: 'POST',\n body: JSON.stringify(await req.json()),\n headers: serverProxyHeaders(),\n }\n )\n const resJson = await res.json();\n\n const result = NextResponse.json(resJson);\n if (!!resJson.action && !!resJson.token && resJson.action === 'logged-in') {\n result.cookies.set({\n name: \"token\",\n value: resJson.token,\n maxAge: 60 * 60 * 24 * 30,\n httpOnly: true,\n });\n }\n return result;\n }\n if (req.nextUrl.pathname === CRM_AUTH_VERIFY_PATH) {\n const tokenCookie = req.cookies.get('token')\n if (!tokenCookie || !tokenCookie.value) {\n return NextResponse.json({success: 0})\n }\n\n const payload = {\n data: {\n token: tokenCookie.value,\n }\n }\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/check',\n {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: serverProxyHeaders(),\n }\n )\n let resJson = await res.json();\n\n if (options?.onCrmTokenCheck) {\n resJson = await options.onCrmTokenCheck(resJson);\n }\n\n const result = NextResponse.json(resJson);\n if (!('id' in resJson && resJson.id > 0)) {\n result.cookies.delete(\"token\");\n }\n\n return result;\n }\n if (req.nextUrl.pathname === CRM_AUTH_SIGN_OUT_PATH) {\n const res = NextResponse.json({success: 1});\n res.cookies.delete(\"token\");\n return res;\n }\n}","\"use strict\";\n\nconst regexes = {\n ipv4: /^(?:(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])$/,\n ipv6: /^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i\n};\n\nfunction not(func: any) {\n return function () {\n return !func.apply(null, Array.prototype.slice.call(arguments));\n };\n}\n\nfunction existy(value: any) {\n return value != null;\n}\n\nfunction ip(value: any) {\n return existy(value) && regexes.ipv4.test(value) || regexes.ipv6.test(value);\n}\n\nfunction object(value: any) {\n return Object(value) === value;\n}\n\nfunction string(value: any) {\n return Object.prototype.toString.call(value) === '[object String]';\n}\n\nconst is = {\n existy: existy,\n ip: ip,\n object: object,\n string: string,\n not: {\n existy: not(existy),\n ip: not(ip),\n object: not(object),\n string: not(string)\n }\n};\nexport default is;\n","import is from \"./is\";\n\nfunction getClientIpFromXForwardedFor(value: any) {\n if (!is.existy(value)) {\n return null;\n }\n\n const forwardedIps = value.split(',').map(function (e: string) {\n const ip = e.trim();\n\n if (ip.includes(':')) {\n const splitted = ip.split(':');\n if (splitted.length === 2) {\n return splitted[0];\n }\n }\n return ip;\n });\n\n for (let i = 0; i < forwardedIps.length; i++) {\n if (is.ip(forwardedIps[i])) {\n return forwardedIps[i];\n }\n }\n\n return null;\n}\n\nexport function getClientIp(req: {\n headers?: {\n [key: string]: string\n },\n connection?: {\n remoteAddress?: string,\n socket?: {\n remoteAddress?: string,\n },\n },\n socket?: {\n remoteAddress?: string,\n },\n info?: {\n remoteAddress?: string,\n },\n requestContext?: {\n identity?: {\n sourceIp?: string,\n }\n },\n}) {\n if (req.headers) {\n if (is.ip(req.headers['x-client-ip'])) {\n return req.headers['x-client-ip'];\n }\n\n const xForwardedFor = getClientIpFromXForwardedFor(req.headers['x-forwarded-for']);\n\n if (is.ip(req.headers['cf-connecting-ip'])) {\n return req.headers['cf-connecting-ip'];\n }\n\n if (is.ip(req.headers['fastly-client-ip'])) {\n return req.headers['fastly-client-ip'];\n }\n\n if (is.ip(req.headers['true-client-ip'])) {\n return req.headers['true-client-ip'];\n }\n\n if (is.ip(req.headers['x-real-ip'])) {\n return req.headers['x-real-ip'];\n }\n\n if (is.ip(req.headers['x-cluster-client-ip'])) {\n return req.headers['x-cluster-client-ip'];\n }\n\n if (is.ip(req.headers['x-forwarded'])) {\n return req.headers['x-forwarded'];\n }\n\n if (is.ip(req.headers['forwarded-for'])) {\n return req.headers['forwarded-for'];\n }\n\n if (is.ip(xForwardedFor)) {\n return xForwardedFor;\n }\n\n if (is.ip(req.headers.forwarded)) {\n return req.headers.forwarded;\n }\n\n if (is.ip(req.headers['x-appengine-user-ip'])) {\n return req.headers['x-appengine-user-ip'];\n }\n }\n\n if (is.existy(req.connection) && !!req.connection) {\n if (is.ip(req.connection.remoteAddress)) {\n return req.connection.remoteAddress;\n }\n\n if (is.existy(req.connection.socket) && !!req.connection.socket && !!req.connection.socket.remoteAddress && is.ip(req.connection.socket.remoteAddress)) {\n return req.connection.socket.remoteAddress;\n }\n }\n\n if (is.existy(req.socket) && !!req.socket && !!req.socket.remoteAddress && is.ip(req.socket.remoteAddress)) {\n return req.socket.remoteAddress;\n }\n\n if (is.existy(req.info) && !!req.info && !!req.info.remoteAddress && is.ip(req.info.remoteAddress)) {\n return req.info.remoteAddress;\n }\n\n if (is.existy(req.requestContext) && !!req.requestContext && is.existy(req.requestContext.identity) && !!req.requestContext.identity && !!req.requestContext.identity.sourceIp && is.ip(req.requestContext.identity.sourceIp)) {\n return req.requestContext.identity.sourceIp;\n }\n\n if (req.headers) {\n if (is.ip(req.headers['Cf-Pseudo-IPv4'])) {\n return req.headers['Cf-Pseudo-IPv4'];\n }\n }\n\n return \"127.0.0.2\";\n}\n\n","export const CRM_AUTH_SIGN_IN_PATH = '/api/crm-auth/sign-in';\nexport const CRM_AUTH_SIGN_OUT_PATH = '/api/crm-auth/sign-out';\nexport const CRM_AUTH_VERIFY_PATH = '/api/crm-auth/verify';","import {NextRequest} from \"next/server\";\n// import {endpoint} from \"@capibox/bridge-interface\";\n\n// export const serverProxyPostRequest = async (req: NextRequest) => {\n// const res = await fetch(\n// req.nextUrl.pathname.replace(\n// endpoint.MAIN_ENDPOINT,\n// 'https://api.capibox.com'\n// ),\n// {\n// method: 'POST',\n// body: JSON.stringify(await req.json()),\n// headers: serverProxyHeaders(),\n// }\n// )\n// return await res.json();\n// }\n\nexport const serverProxyHeaders = () => {\n return {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_ENV}`.toLowerCase() === 'prod' ? `${process.env.CAPIBOX_API_KEY}` : 'dev'\n }\n}","export const CACHE_KEY_FUNNELS = 'funnels-data';\nexport const CACHE_KEY_SPLIT = 'split-data';","import cache from \"memory-cache\";\nimport {CACHE_KEY_SPLIT} from \"../cache/cache\";\nimport {components} from \"../../lib/api.def\";\nimport {getBackendUrl} from \"../_utils/backend-url\";\n\nexport const getSplitData = async (): Promise<components['schemas']['SplitResponseDto'][]> => {\n const cachedResponse = cache.get(CACHE_KEY_SPLIT);\n\n if (cachedResponse) {\n return cachedResponse;\n } else {\n try {\n const res = await fetch(`${getBackendUrl()}/funnels/split`, {\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_API_KEY}`\n },\n });\n let resJson: components['schemas']['SplitResponseDto'][] = [];\n if (res.ok) {\n resJson = await res.json();\n }\n cache.put(CACHE_KEY_SPLIT, resJson, 2147483647);\n\n return resJson;\n } catch (e) {\n return [];\n }\n }\n};","export const getBackendUrl = () => {\n return process.env.CLIENT_BACKEND_URL ? process.env.CLIENT_BACKEND_URL : 'https://api.capibox.com';\n}","export const trimChar = (string: string, charToRemove: string) => {\n while (string.charAt(0) == charToRemove) {\n string = string.substring(1)\n }\n\n while (string.charAt(string.length - 1) == charToRemove) {\n string = string.substring(0, string.length - 1)\n }\n\n return string\n}\n","import {getSplitData} from \"./get-split-data\";\nimport {NextRequest} from \"next/server\";\nimport {trimChar} from \"../_utils/trim-char\";\n\nexport const getSplitItemForPath = async ({path}: { path: string }) => {\n\n const splits = await getSplitData();\n\n // TODO make url required\n const inputs = splits.filter(i => i.active)\n .map((i) => `/${trimChar((i.url ? i.url : ''), '/')}`)\n\n const inputIndex = inputs.indexOf(path)\n if (inputIndex >= 0) {\n return splits[inputIndex]\n }\n return undefined;\n}\n\nexport const getSplitItemForReq = async ({req}: { req: NextRequest }) => {\n return await getSplitItemForPath({path: req.nextUrl.pathname});\n}","import {components} from \"../../lib/api.def\";\n\nexport type SplitItemUrlWithRange = {\n range: {\n start: number,\n finish: number,\n }\n} & components['schemas']['SplitItemDto'];\n\nexport const getSplitItemUrlWinner = (item: components['schemas']['SplitResponseDto']) => {\n const splitValues = fillSplitItemUrlsRange(item);\n\n const _time = new Date().getTime()\n const _seed100 = _time % 100\n\n let currentSplit = splitValues.find(\n (e) => e.range.start <= _seed100 && e.range.finish > _seed100,\n )\n if (!currentSplit) {\n currentSplit = splitValues[0]\n }\n return currentSplit;\n}\n\n// TODO make splits required\nexport const fillSplitItemUrlsRange = (item: components['schemas']['SplitResponseDto']): SplitItemUrlWithRange[] => {\n const splits = item.splits ? item.splits : [];\n return splits.map((curr, i, data) => {\n const minPercent = data\n .slice(0, i)\n .map((a) => a.split)\n .reduce((a, b) => a + b, 0)\n\n return {\n ...curr,\n range: {\n start: minPercent,\n finish: minPercent + curr.split,\n },\n }\n });\n}","import cache from \"memory-cache\";\nimport {CACHE_KEY_FUNNELS} from \"../../server/cache/cache\";\nimport {getBackendUrl} from \"../../server/_utils/backend-url\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getCapiboxTemplates = async (): Promise<components['schemas']['FunnelResponseDto'][]> => {\n const cachedResponse = cache.get(CACHE_KEY_FUNNELS);\n if (cachedResponse) {\n return cachedResponse;\n } else {\n const funnelRes = await fetch(`${getBackendUrl()}/funnels/funnel`, {\n headers: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n })\n const responseBody = await funnelRes.json();\n cache.put(CACHE_KEY_FUNNELS, responseBody, 2147483647);\n return responseBody;\n }\n}","import {components} from \"../../lib/api.def\";\nimport {getCapiboxTemplates} from \"./get-capibox-templates\";\n\nexport type SdkRemoteFunnel = {\n checkout: string,\n landing: string,\n\n angle: string,\n version: string,\n\n homePageTemplate: string,\n quizPageTemplate: string,\n resultPageTemplate: string,\n emailPageTemplate: string,\n checkoutPageTemplate: string,\n paymentWindowTemplate: string,\n upsellPageTemplate: string,\n\n options?: any,\n upsellOptions?: any,\n}\n\nexport const getFunnels = async (): Promise<SdkRemoteFunnel[]> => {\n const tmpFunnels: components['schemas']['FunnelResponseDto'][] = await getCapiboxTemplates();\n const output: SdkRemoteFunnel[] = [];\n for (const funnel of tmpFunnels) {\n output.push({\n landing: funnel.angle,\n checkout: funnel.version,\n\n angle: funnel.angle,\n version: funnel.version,\n\n homePageTemplate: funnel.home_page,\n quizPageTemplate: funnel.quiz_page,\n resultPageTemplate: funnel.results_page,\n emailPageTemplate: funnel.email_page,\n checkoutPageTemplate: funnel.checkout_page,\n paymentWindowTemplate: funnel.payment_window,\n upsellPageTemplate: funnel.upsell_page,\n\n options: funnel.options,\n upsellOptions: funnel.upsell_options,\n });\n }\n return output;\n}","import {getFunnels, SdkRemoteFunnel} from \"./get\";\nimport {ReadonlyURLSearchParams} from \"next/navigation\";\n\n\ntype SdkRemoteTemplate = Omit<SdkRemoteFunnel, \"checkout\" | \"angle\" | \"landing\" | \"version\" | \"options\" | \"upsellOptions\">\n\nconst defaultTemplate: SdkRemoteTemplate = {\n homePageTemplate: 'Default',\n quizPageTemplate: 'Default',\n resultPageTemplate: 'Default',\n emailPageTemplate: 'Default',\n checkoutPageTemplate: 'Default',\n paymentWindowTemplate: 'Default',\n upsellPageTemplate: 'Default',\n}\n\ntype Props = {\n angle: string,\n version: string,\n searchParams?: ReadonlyURLSearchParams\n}\n\nexport const getTemplates = async ({\n angle, version, searchParams\n }: Props): Promise<SdkRemoteFunnel> => {\n const funnelsData = await getFunnels();\n\n const filteredFunnelsData = funnelsData.filter((a) => {\n if (\n (a.checkout === version || a.checkout === 'any') &&\n (a.landing === angle || a.landing === 'any')\n ) {\n return true\n }\n return false\n })\n if (filteredFunnelsData.length > 0) {\n const _flowData: SdkRemoteFunnel = JSON.parse(\n JSON.stringify(filteredFunnelsData[filteredFunnelsData.length - 1])\n )\n if (searchParams) {\n const keys = Object.keys(defaultTemplate)\n for (const key of keys) {\n if (searchParams.get(key)) {\n // @ts-ignore\n _flowData[key] = searchParams.get(key);\n }\n }\n }\n\n return _flowData;\n }\n return {\n ...defaultTemplate,\n landing: angle,\n checkout: version,\n angle,\n version,\n }\n}","import createFetchClient from \"openapi-fetch\";\nimport type {paths} from \"./api.def\";\nimport {getBackendUrl} from \"../server/_utils/backend-url\";\n\nexport const $apiClient = createFetchClient<paths>({\n baseUrl: getBackendUrl(),\n headers: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n});","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getSession = async (\n uuid: string,\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.GET(\n '/session/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n }\n );\n if (!res.data) {\n throw new Error('Failed to get session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const snapchatS2s = async (data: components['schemas']['SnapchatCapiBridgeDto']) => {\n await $apiClient.POST('/analytics/capi/snapchat/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import cache from \"memory-cache\";\nimport {CACHE_KEY_FUNNELS, CACHE_KEY_SPLIT} from \"../cache/cache\";\n\nexport const funnelsClearCache = () => {\n cache.del(CACHE_KEY_FUNNELS);\n cache.del(CACHE_KEY_SPLIT);\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const tiktokS2S = async (data: components['schemas']['TiktokCapiPayloadSessionBridge']) => {\n await $apiClient.POST('/analytics/capi/tiktok/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const facebookS2S = async (data: components['schemas']['FbCapiPayloadSessionBridge']) => {\n await $apiClient.POST('/analytics/capi/facebook/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const appendSession = async (\n uuid: string,\n body: components['schemas']['AppendSessionDto'],\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.PUT(\n '/session/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body\n }\n );\n if (!res.data) {\n throw new Error('Failed to append session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getSessionByEmail = async (\n email: string,\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.GET(\n '/session/email/{email}',\n {\n params: {\n path: {\n uuid: email\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n }\n );\n if (!res.data) {\n throw new Error('Failed to get session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const klaviyoSendEvent = async (dto: components[\"schemas\"][\"CreateEventDto\"]) => {\n const res = await $apiClient.POST(\n '/dynamic-public-direct/klaviyo/events',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n\n },\n body: dto\n });\n if (!res.data) {\n throw new Error('Failed to create payment session.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const klaviyoSendBulk = async (dto: components[\"schemas\"][\"CreateBulkEventDto\"]) => {\n const res = await $apiClient.POST(\n '/dynamic-public-direct/klaviyo/events/bulk',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n\n },\n body: dto\n });\n if (!res.data) {\n throw new Error('Failed to create payment session.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\n\nexport const realtimeUtmOrderData = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/realtime/events/utm-data/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n }\n }\n );\n if (!res.data) {\n throw new Error('Failed to get realtime utm data.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const orderGetByUuid = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/orders-management/report-item/order/{orderId}',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n path: {\n orderId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get order by uuid.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const orderGetByEmail = async (email: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/orders-management/report-item/email/{email}',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n path: {\n email\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get order by email.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\n\nexport const paymentFirstPayment = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/payments-management/payments/first-payment',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n query: {\n referenceId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get first payment.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const paymentLastPayments = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/payments-management/payments/last-5-payments',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n query: {\n referenceId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get last payments.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const cancelSubscriptionById = async (id: number, data: components[\"schemas\"][\"CancelSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/{id}/cancel', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n path: {\n id: id\n }\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to cancel subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const cancelSubscriptionsByOrderId = async (uuid: string, data: components[\"schemas\"][\"CancelSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/order/{orderId}/cancel', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n path: {\n orderId: uuid\n }\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to cancel subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const subscriptionApplyDiscount = async (data: components[\"schemas\"][\"DiscountSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/discount', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to apply discount.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const subscriptionPause = async (data: components[\"schemas\"][\"PauseSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/pause', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to pause subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const fillSubscriptionCancelRequest = async (data: components[\"schemas\"][\"CreateSubscriptionCancelRequestDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscription-cancel-requests', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to fill request.')\n }\n return res.data;\n};"],"mappings":"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","names":["ip","import_memory_cache","cache","string","import_memory_cache","cache","cache","ip","createFetchClient","import_memory_cache","cache"]}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/middleware.ts","../src/server/_utils/is.ts","../src/server/_utils/client-ip.ts","../src/browser/crm-auth/path.ts","../src/server/_utils/server-fetch-utils.ts","../src/server/cache/cache.ts","../src/server/split/get-split-data.ts","../src/server/_utils/backend-url.ts","../src/server/_utils/trim-char.ts","../src/server/split/get-split-item.ts","../src/server/split/get-split-winner.ts","../src/browser/funnels/get-capibox-templates.ts","../src/browser/funnels/get.ts","../src/browser/funnels/get-templates.ts","../src/lib/api.ts","../src/server/session/get.ts","../src/server/capi/snapchat-s2s.ts","../src/server/funnels/clear-cache.ts","../src/server/capi/tiktok-s2s.ts","../src/server/capi/facebook-s2s.ts","../src/server/session/append.ts","../src/server/session/getByEmail.ts","../src/server/klaviyo/klaviyo-send-event.ts","../src/server/klaviyo/klaviyo-send-bulk.ts","../src/server/realtime/realtime-utm-order-data.ts","../src/server/order/order-get-by-uuid.ts","../src/server/order/order-get-by-email.ts","../src/server/payments/payment-first-payment.ts","../src/server/payments/payment-last-payments.ts","../src/server/subscription/cancel-subscription-by-id.ts","../src/server/subscription/cancel-subscriptions-by-order-id.ts","../src/server/subscription/subscription-apply-discount.ts","../src/server/subscription/subscription-pause.ts","../src/server/subscription/fill-subscription-cancel-request.ts","../src/index.ts"],"sourcesContent":["import {NextRequest, NextResponse, userAgent} from \"next/server\";\nimport {getClientIp} from \"./_utils/client-ip\";\nimport {CRM_AUTH_SIGN_IN_PATH, CRM_AUTH_SIGN_OUT_PATH, CRM_AUTH_VERIFY_PATH} from \"../browser/crm-auth/path\";\nimport {serverProxyHeaders} from \"./_utils/server-fetch-utils\";\nimport cache from 'memory-cache';\nimport {CACHE_KEY_FUNNELS, CACHE_KEY_SPLIT} from \"./cache/cache\";\nimport {getSplitItemForReq} from \"./split/get-split-item\";\nimport {trimChar} from \"./_utils/trim-char\";\nimport {getSplitItemUrlWinner} from \"./split/get-split-winner\";\nimport {getBackendUrl} from \"./_utils/backend-url\";\nimport {getCapiboxTemplates} from \"../browser/funnels/get-capibox-templates\";\n\ntype Templates = {\n [key: string]: string[]\n}\n\ntype Options = {\n templates?: Templates,\n onCrmTokenCheck?: (res: any) => Promise<any>,\n}\n\nexport const middleware = async (\n req: NextRequest,\n options?: Options,\n) => {\n if (req.nextUrl.pathname.startsWith('/app/clear-cache')) {\n cache.del(CACHE_KEY_FUNNELS);\n cache.del(CACHE_KEY_SPLIT);\n\n const res = NextResponse.json({s: new Date().getTime()})\n\n res.headers.append('Access-Control-Allow-Credentials', \"true\")\n res.headers.append('Access-Control-Allow-Origin', '*') // replace this your actual origin\n res.headers.append('Access-Control-Allow-Methods', 'GET,DELETE,PATCH,POST,PUT')\n res.headers.append(\n 'Access-Control-Allow-Headers',\n 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n )\n return res;\n }\n\n if (options?.templates && req.nextUrl.pathname.startsWith('/app/get-templates')) {\n const res = NextResponse.json({\n success: true,\n\n data: options.templates,\n })\n res.headers.append('Access-Control-Allow-Credentials', \"true\")\n res.headers.append('Access-Control-Allow-Origin', '*') // replace this your actual origin\n res.headers.append('Access-Control-Allow-Methods', 'GET,DELETE,PATCH,POST,PUT')\n res.headers.append(\n 'Access-Control-Allow-Headers',\n 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n )\n\n return res\n }\n\n // SPLIT TEST\n const input = await getSplitItemForReq({req});\n if (input) {\n const currentSplit = getSplitItemUrlWinner(input);\n\n return NextResponse.redirect(\n new URL(`/${trimChar(currentSplit.url, '/')}${req.nextUrl.search}`, req.url),\n )\n }\n\n if (req.nextUrl.pathname.startsWith('/api-client-proxy')) {\n if (req.nextUrl.pathname === '/api-client-proxy/funnels/funnel') {\n const capiboxTemplates = await getCapiboxTemplates();\n const res = NextResponse.json(capiboxTemplates);\n res.headers.set('X-Cache', 'HIT');\n return res;\n }\n\n let urlClone = req.nextUrl.clone();\n\n const targetUrl = new URL(getBackendUrl())\n const requestHeaders = new Headers(req.headers)\n requestHeaders.set('host', targetUrl.hostname)\n requestHeaders.set('project-key', `${process.env.CAPIBOX_API_KEY}`)\n\n if (req.nextUrl.pathname.includes('/realtime/')) {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {device, browser, os} = userAgent(req)\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-os', `${os.name} / ${os.version}`)\n requestHeaders.set('x-browser', `${browser.name} / ${browser.version}`)\n requestHeaders.set('x-device', device.type ? device.type : '-')\n const anUuidV3Cookie = req.cookies.get('an_uuid_v3');\n if (anUuidV3Cookie) {\n requestHeaders.set('x-realtime', anUuidV3Cookie?.value)\n }\n }\n if (req.nextUrl.pathname === '/api-client-proxy/session') {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {ua} = userAgent(req);\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-user-agent', ua)\n }\n\n urlClone.protocol = targetUrl.protocol\n urlClone.hostname = targetUrl.hostname\n urlClone.port = targetUrl.port\n urlClone.pathname = urlClone.pathname.replace(/^\\/api-client-proxy/, '');\n\n return NextResponse.rewrite(urlClone, {\n request: {\n headers: requestHeaders,\n },\n })\n }\n\n // crm auth\n if (req.nextUrl.pathname === CRM_AUTH_SIGN_IN_PATH) {\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/sign-in',\n {\n method: 'POST',\n body: JSON.stringify(await req.json()),\n headers: serverProxyHeaders(),\n }\n )\n const resJson = await res.json();\n\n const result = NextResponse.json(resJson);\n if (!!resJson.action && !!resJson.token && resJson.action === 'logged-in') {\n result.cookies.set({\n name: \"token\",\n value: resJson.token,\n maxAge: 60 * 60 * 24 * 30,\n httpOnly: true,\n });\n }\n return result;\n }\n if (req.nextUrl.pathname === CRM_AUTH_VERIFY_PATH) {\n const tokenCookie = req.cookies.get('token')\n if (!tokenCookie || !tokenCookie.value) {\n return NextResponse.json({success: 0})\n }\n\n const payload = {\n data: {\n token: tokenCookie.value,\n }\n }\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/check',\n {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: serverProxyHeaders(),\n }\n )\n let resJson = await res.json();\n\n if (options?.onCrmTokenCheck) {\n resJson = await options.onCrmTokenCheck(resJson);\n }\n\n const result = NextResponse.json(resJson);\n if (!('id' in resJson && resJson.id > 0)) {\n result.cookies.delete(\"token\");\n }\n\n return result;\n }\n if (req.nextUrl.pathname === CRM_AUTH_SIGN_OUT_PATH) {\n const res = NextResponse.json({success: 1});\n res.cookies.delete(\"token\");\n return res;\n }\n}","\"use strict\";\n\nconst regexes = {\n ipv4: /^(?:(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])$/,\n ipv6: /^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i\n};\n\nfunction not(func: any) {\n return function () {\n return !func.apply(null, Array.prototype.slice.call(arguments));\n };\n}\n\nfunction existy(value: any) {\n return value != null;\n}\n\nfunction ip(value: any) {\n return existy(value) && regexes.ipv4.test(value) || regexes.ipv6.test(value);\n}\n\nfunction object(value: any) {\n return Object(value) === value;\n}\n\nfunction string(value: any) {\n return Object.prototype.toString.call(value) === '[object String]';\n}\n\nconst is = {\n existy: existy,\n ip: ip,\n object: object,\n string: string,\n not: {\n existy: not(existy),\n ip: not(ip),\n object: not(object),\n string: not(string)\n }\n};\nexport default is;\n","import is from \"./is\";\n\nfunction getClientIpFromXForwardedFor(value: any) {\n if (!is.existy(value)) {\n return null;\n }\n\n const forwardedIps = value.split(',').map(function (e: string) {\n const ip = e.trim();\n\n if (ip.includes(':')) {\n const splitted = ip.split(':');\n if (splitted.length === 2) {\n return splitted[0];\n }\n }\n return ip;\n });\n\n for (let i = 0; i < forwardedIps.length; i++) {\n if (is.ip(forwardedIps[i])) {\n return forwardedIps[i];\n }\n }\n\n return null;\n}\n\nexport function getClientIp(req: {\n headers?: {\n [key: string]: string\n },\n connection?: {\n remoteAddress?: string,\n socket?: {\n remoteAddress?: string,\n },\n },\n socket?: {\n remoteAddress?: string,\n },\n info?: {\n remoteAddress?: string,\n },\n requestContext?: {\n identity?: {\n sourceIp?: string,\n }\n },\n}) {\n if (req.headers) {\n if (is.ip(req.headers['x-client-ip'])) {\n return req.headers['x-client-ip'];\n }\n\n const xForwardedFor = getClientIpFromXForwardedFor(req.headers['x-forwarded-for']);\n\n if (is.ip(req.headers['cf-connecting-ip'])) {\n return req.headers['cf-connecting-ip'];\n }\n\n if (is.ip(req.headers['fastly-client-ip'])) {\n return req.headers['fastly-client-ip'];\n }\n\n if (is.ip(req.headers['true-client-ip'])) {\n return req.headers['true-client-ip'];\n }\n\n if (is.ip(req.headers['x-real-ip'])) {\n return req.headers['x-real-ip'];\n }\n\n if (is.ip(req.headers['x-cluster-client-ip'])) {\n return req.headers['x-cluster-client-ip'];\n }\n\n if (is.ip(req.headers['x-forwarded'])) {\n return req.headers['x-forwarded'];\n }\n\n if (is.ip(req.headers['forwarded-for'])) {\n return req.headers['forwarded-for'];\n }\n\n if (is.ip(xForwardedFor)) {\n return xForwardedFor;\n }\n\n if (is.ip(req.headers.forwarded)) {\n return req.headers.forwarded;\n }\n\n if (is.ip(req.headers['x-appengine-user-ip'])) {\n return req.headers['x-appengine-user-ip'];\n }\n }\n\n if (is.existy(req.connection) && !!req.connection) {\n if (is.ip(req.connection.remoteAddress)) {\n return req.connection.remoteAddress;\n }\n\n if (is.existy(req.connection.socket) && !!req.connection.socket && !!req.connection.socket.remoteAddress && is.ip(req.connection.socket.remoteAddress)) {\n return req.connection.socket.remoteAddress;\n }\n }\n\n if (is.existy(req.socket) && !!req.socket && !!req.socket.remoteAddress && is.ip(req.socket.remoteAddress)) {\n return req.socket.remoteAddress;\n }\n\n if (is.existy(req.info) && !!req.info && !!req.info.remoteAddress && is.ip(req.info.remoteAddress)) {\n return req.info.remoteAddress;\n }\n\n if (is.existy(req.requestContext) && !!req.requestContext && is.existy(req.requestContext.identity) && !!req.requestContext.identity && !!req.requestContext.identity.sourceIp && is.ip(req.requestContext.identity.sourceIp)) {\n return req.requestContext.identity.sourceIp;\n }\n\n if (req.headers) {\n if (is.ip(req.headers['Cf-Pseudo-IPv4'])) {\n return req.headers['Cf-Pseudo-IPv4'];\n }\n }\n\n return \"127.0.0.2\";\n}\n\n","export const CRM_AUTH_SIGN_IN_PATH = '/api/crm-auth/sign-in';\nexport const CRM_AUTH_SIGN_OUT_PATH = '/api/crm-auth/sign-out';\nexport const CRM_AUTH_VERIFY_PATH = '/api/crm-auth/verify';","import {NextRequest} from \"next/server\";\n// import {endpoint} from \"@capibox/bridge-interface\";\n\n// export const serverProxyPostRequest = async (req: NextRequest) => {\n// const res = await fetch(\n// req.nextUrl.pathname.replace(\n// endpoint.MAIN_ENDPOINT,\n// 'https://api.capibox.com'\n// ),\n// {\n// method: 'POST',\n// body: JSON.stringify(await req.json()),\n// headers: serverProxyHeaders(),\n// }\n// )\n// return await res.json();\n// }\n\nexport const serverProxyHeaders = () => {\n return {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_ENV}`.toLowerCase() === 'prod' ? `${process.env.CAPIBOX_API_KEY}` : 'dev'\n }\n}","export const CACHE_KEY_FUNNELS = 'funnels-data';\nexport const CACHE_KEY_SPLIT = 'split-data';","import cache from \"memory-cache\";\nimport {CACHE_KEY_SPLIT} from \"../cache/cache\";\nimport {components} from \"../../lib/api.def\";\nimport {getBackendUrl} from \"../_utils/backend-url\";\n\nexport const getSplitData = async (): Promise<components['schemas']['SplitResponseDto'][]> => {\n const cachedResponse = cache.get(CACHE_KEY_SPLIT);\n\n if (cachedResponse) {\n return cachedResponse;\n } else {\n try {\n const res = await fetch(`${getBackendUrl()}/funnels/split`, {\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_API_KEY}`\n },\n });\n let resJson: components['schemas']['SplitResponseDto'][] = [];\n if (res.ok) {\n resJson = await res.json();\n }\n cache.put(CACHE_KEY_SPLIT, resJson, 2147483647);\n\n return resJson;\n } catch (e) {\n return [];\n }\n }\n};","export const getBackendUrl = () => {\n return process.env.CLIENT_BACKEND_URL ? process.env.CLIENT_BACKEND_URL : 'https://api.capibox.com';\n}","export const trimChar = (string: string, charToRemove: string) => {\n while (string.charAt(0) == charToRemove) {\n string = string.substring(1)\n }\n\n while (string.charAt(string.length - 1) == charToRemove) {\n string = string.substring(0, string.length - 1)\n }\n\n return string\n}\n","import {getSplitData} from \"./get-split-data\";\nimport {NextRequest} from \"next/server\";\nimport {trimChar} from \"../_utils/trim-char\";\n\nexport const getSplitItemForPath = async ({path}: { path: string }) => {\n\n const splits = await getSplitData();\n\n // TODO make url required\n const inputs = splits.filter(i => i.active)\n .map((i) => `/${trimChar((i.url ? i.url : ''), '/')}`)\n\n const inputIndex = inputs.indexOf(path)\n if (inputIndex >= 0) {\n return splits[inputIndex]\n }\n return undefined;\n}\n\nexport const getSplitItemForReq = async ({req}: { req: NextRequest }) => {\n return await getSplitItemForPath({path: req.nextUrl.pathname});\n}","import {components} from \"../../lib/api.def\";\n\nexport type SplitItemUrlWithRange = {\n range: {\n start: number,\n finish: number,\n }\n} & components['schemas']['SplitItemDto'];\n\nexport const getSplitItemUrlWinner = (item: components['schemas']['SplitResponseDto']) => {\n const splitValues = fillSplitItemUrlsRange(item);\n\n const _time = new Date().getTime()\n const _seed100 = _time % 100\n\n let currentSplit = splitValues.find(\n (e) => e.range.start <= _seed100 && e.range.finish > _seed100,\n )\n if (!currentSplit) {\n currentSplit = splitValues[0]\n }\n return currentSplit;\n}\n\n// TODO make splits required\nexport const fillSplitItemUrlsRange = (item: components['schemas']['SplitResponseDto']): SplitItemUrlWithRange[] => {\n const splits = item.splits ? item.splits : [];\n return splits.map((curr, i, data) => {\n const minPercent = data\n .slice(0, i)\n .map((a) => a.split)\n .reduce((a, b) => a + b, 0)\n\n return {\n ...curr,\n range: {\n start: minPercent,\n finish: minPercent + curr.split,\n },\n }\n });\n}","import cache from \"memory-cache\";\nimport {CACHE_KEY_FUNNELS} from \"../../server/cache/cache\";\nimport {getBackendUrl} from \"../../server/_utils/backend-url\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getCapiboxTemplates = async (): Promise<components['schemas']['FunnelResponseDto'][]> => {\n const cachedResponse = cache.get(CACHE_KEY_FUNNELS);\n if (cachedResponse) {\n return cachedResponse;\n } else {\n const funnelRes = await fetch(`${getBackendUrl()}/funnels/funnel`, {\n headers: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n })\n const responseBody = await funnelRes.json();\n cache.put(CACHE_KEY_FUNNELS, responseBody, 2147483647);\n return responseBody;\n }\n}","import {components} from \"../../lib/api.def\";\nimport {getCapiboxTemplates} from \"./get-capibox-templates\";\n\nexport type SdkRemoteFunnel = {\n checkout: string,\n landing: string,\n\n angle: string,\n version: string,\n\n homePageTemplate: string,\n quizPageTemplate: string,\n resultPageTemplate: string,\n emailPageTemplate: string,\n checkoutPageTemplate: string,\n paymentWindowTemplate: string,\n upsellPageTemplate: string,\n\n options?: any,\n upsellOptions?: any,\n}\n\nexport const getFunnels = async (): Promise<SdkRemoteFunnel[]> => {\n const tmpFunnels: components['schemas']['FunnelResponseDto'][] = await getCapiboxTemplates();\n const output: SdkRemoteFunnel[] = [];\n for (const funnel of tmpFunnels) {\n output.push({\n landing: funnel.angle,\n checkout: funnel.version,\n\n angle: funnel.angle,\n version: funnel.version,\n\n homePageTemplate: funnel.home_page,\n quizPageTemplate: funnel.quiz_page,\n resultPageTemplate: funnel.results_page,\n emailPageTemplate: funnel.email_page,\n checkoutPageTemplate: funnel.checkout_page,\n paymentWindowTemplate: funnel.payment_window,\n upsellPageTemplate: funnel.upsell_page,\n\n options: funnel.options,\n upsellOptions: funnel.upsell_options,\n });\n }\n return output;\n}","import {getFunnels, SdkRemoteFunnel} from \"./get\";\nimport {ReadonlyURLSearchParams} from \"next/navigation\";\n\n\ntype SdkRemoteTemplate = Omit<SdkRemoteFunnel, \"checkout\" | \"angle\" | \"landing\" | \"version\" | \"options\" | \"upsellOptions\">\n\nconst defaultTemplate: SdkRemoteTemplate = {\n homePageTemplate: 'Default',\n quizPageTemplate: 'Default',\n resultPageTemplate: 'Default',\n emailPageTemplate: 'Default',\n checkoutPageTemplate: 'Default',\n paymentWindowTemplate: 'Default',\n upsellPageTemplate: 'Default',\n}\n\ntype Props = {\n angle: string,\n version: string,\n searchParams?: ReadonlyURLSearchParams\n}\n\nexport const getTemplates = async ({\n angle, version, searchParams\n }: Props): Promise<SdkRemoteFunnel> => {\n const funnelsData = await getFunnels();\n\n const filteredFunnelsData = funnelsData.filter((a) => {\n if (\n (a.checkout === version || a.checkout === 'any') &&\n (a.landing === angle || a.landing === 'any')\n ) {\n return true\n }\n return false\n })\n if (filteredFunnelsData.length > 0) {\n const _flowData: SdkRemoteFunnel = JSON.parse(\n JSON.stringify(filteredFunnelsData[filteredFunnelsData.length - 1])\n )\n if (searchParams) {\n const keys = Object.keys(defaultTemplate)\n for (const key of keys) {\n if (searchParams.get(key)) {\n // @ts-ignore\n _flowData[key] = searchParams.get(key);\n }\n }\n }\n\n return _flowData;\n }\n return {\n ...defaultTemplate,\n landing: angle,\n checkout: version,\n angle,\n version,\n }\n}","import createFetchClient from \"openapi-fetch\";\nimport type {paths} from \"./api.def\";\nimport {getBackendUrl} from \"../server/_utils/backend-url\";\n\nexport const $apiClient = createFetchClient<paths>({\n baseUrl: getBackendUrl(),\n headers: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n});","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getSession = async (\n uuid: string,\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.GET(\n '/session/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n }\n );\n if (!res.data) {\n throw new Error('Failed to get session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const snapchatS2s = async (data: components['schemas']['SnapchatCapiBridgeDto']) => {\n await $apiClient.POST('/analytics/capi/snapchat/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import cache from \"memory-cache\";\nimport {CACHE_KEY_FUNNELS, CACHE_KEY_SPLIT} from \"../cache/cache\";\n\nexport const funnelsClearCache = () => {\n cache.del(CACHE_KEY_FUNNELS);\n cache.del(CACHE_KEY_SPLIT);\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const tiktokS2S = async (data: components['schemas']['TiktokCapiPayloadSessionBridge']) => {\n await $apiClient.POST('/analytics/capi/tiktok/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const facebookS2S = async (data: components['schemas']['FbCapiPayloadSessionBridge']) => {\n await $apiClient.POST('/analytics/capi/facebook/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const appendSession = async (\n uuid: string,\n body: components['schemas']['AppendSessionDto'],\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.PUT(\n '/session/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body\n }\n );\n if (!res.data) {\n throw new Error('Failed to append session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getSessionByEmail = async (\n email: string,\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.GET(\n '/session/email/{email}',\n {\n params: {\n path: {\n uuid: email\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n }\n );\n if (!res.data) {\n throw new Error('Failed to get session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const klaviyoSendEvent = async (dto: components[\"schemas\"][\"CreateEventDto\"]) => {\n const res = await $apiClient.POST(\n '/dynamic-public-direct/klaviyo/events',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n\n },\n body: dto\n });\n if (!res.data) {\n throw new Error('Failed to create payment session.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const klaviyoSendBulk = async (dto: components[\"schemas\"][\"CreateBulkEventDto\"]) => {\n const res = await $apiClient.POST(\n '/dynamic-public-direct/klaviyo/events/bulk',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n\n },\n body: dto\n });\n if (!res.data) {\n throw new Error('Failed to create payment session.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\n\nexport const realtimeUtmOrderData = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/realtime/events/utm-data/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n }\n }\n );\n if (!res.data) {\n throw new Error('Failed to get realtime utm data.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const orderGetByUuid = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/orders-management/report-item/order/{orderId}',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n path: {\n orderId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get order by uuid.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const orderGetByEmail = async (email: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/orders-management/report-item/email/{email}',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n path: {\n email\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get order by email.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\n\nexport const paymentFirstPayment = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/payments-management/payments/first-payment',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n query: {\n referenceId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get first payment.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const paymentLastPayments = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/payments-management/payments/last-5-payments',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n query: {\n referenceId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get last payments.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const cancelSubscriptionById = async (id: number, data: components[\"schemas\"][\"CancelSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/{id}/cancel', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n path: {\n id: id\n }\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to cancel subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const cancelSubscriptionsByOrderId = async (uuid: string, data: components[\"schemas\"][\"CancelSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/order/{orderId}/cancel', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n path: {\n orderId: uuid\n }\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to cancel subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const subscriptionApplyDiscount = async (data: components[\"schemas\"][\"DiscountSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/discount', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to apply discount.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const subscriptionPause = async (data: components[\"schemas\"][\"PauseSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/pause', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to pause subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const fillSubscriptionCancelRequest = async (data: components[\"schemas\"][\"CreateSubscriptionCancelRequestDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscription-cancel-requests', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to fill request.')\n }\n return res.data;\n};","import {middleware} from \"./server/middleware\";\nimport {getFunnels} from \"./browser/funnels/get\";\nimport {getTemplates} from \"./browser/funnels/get-templates\";\nimport {getSession} from \"./server/session/get\";\nimport {snapchatS2s} from \"./server/capi/snapchat-s2s\";\nimport {funnelsClearCache} from \"./server/funnels/clear-cache\";\nimport {tiktokS2S} from \"./server/capi/tiktok-s2s\";\nimport {facebookS2S} from \"./server/capi/facebook-s2s\";\nimport {appendSession} from \"./server/session/append\";\nimport {getSessionByEmail} from \"./server/session/getByEmail\";\nimport {klaviyoSendEvent} from \"./server/klaviyo/klaviyo-send-event\";\nimport {klaviyoSendBulk} from \"./server/klaviyo/klaviyo-send-bulk\";\nimport {realtimeUtmOrderData} from \"./server/realtime/realtime-utm-order-data\";\nimport {orderGetByUuid} from \"./server/order/order-get-by-uuid\";\nimport {orderGetByEmail} from \"./server/order/order-get-by-email\";\nimport {paymentFirstPayment} from \"./server/payments/payment-first-payment\";\nimport {paymentLastPayments} from \"./server/payments/payment-last-payments\";\nimport {cancelSubscriptionById} from \"./server/subscription/cancel-subscription-by-id\";\nimport {cancelSubscriptionsByOrderId} from \"./server/subscription/cancel-subscriptions-by-order-id\";\nimport {subscriptionApplyDiscount} from \"./server/subscription/subscription-apply-discount\";\nimport {subscriptionPause} from \"./server/subscription/subscription-pause\";\nimport {fillSubscriptionCancelRequest} from \"./server/subscription/fill-subscription-cancel-request\";\n\n\nexport {SdkRemoteFunnel} from \"./browser/funnels/get\";\n\nconst server = {\n middleware,\n funnels: {\n get: getFunnels,\n getTemplates,\n clearCache: funnelsClearCache,\n },\n session: {\n get: getSession,\n append: appendSession,\n getByEmail: getSessionByEmail,\n },\n capi: {\n snapchat: snapchatS2s,\n tiktok: tiktokS2S,\n facebook: facebookS2S,\n },\n klaviyo: {\n send: klaviyoSendEvent,\n sendBulk: klaviyoSendBulk,\n },\n realtime: {\n orderUtmData: realtimeUtmOrderData,\n },\n order: {\n getByUuid: orderGetByUuid,\n getByEmail: orderGetByEmail\n },\n payments: {\n firstPayment: paymentFirstPayment,\n last5Payments: paymentLastPayments\n },\n subscription: {\n cancelById: cancelSubscriptionById,\n cancelByOrderId: cancelSubscriptionsByOrderId,\n applyDiscount: subscriptionApplyDiscount,\n pause: subscriptionPause,\n fillCancellationRequest: fillSubscriptionCancelRequest,\n }\n}\n\nexport {\n server\n}\n\n// v.0.0.74"],"mappings":"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","names":["ip","cache","string","cache","cache","cache","ip","cache","cache"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/middleware.ts","../src/server/_utils/is.ts","../src/server/_utils/client-ip.ts","../src/browser/crm-auth/path.ts","../src/server/_utils/server-fetch-utils.ts","../src/server/cache/cache.ts","../src/server/split/get-split-data.ts","../src/server/_utils/backend-url.ts","../src/server/_utils/trim-char.ts","../src/server/split/get-split-item.ts","../src/server/split/get-split-winner.ts","../src/browser/funnels/get-capibox-templates.ts","../src/browser/funnels/get.ts","../src/browser/funnels/get-templates.ts","../src/lib/api.ts","../src/server/session/get.ts","../src/server/capi/snapchat-s2s.ts","../src/server/funnels/clear-cache.ts","../src/server/capi/tiktok-s2s.ts","../src/server/capi/facebook-s2s.ts","../src/server/session/append.ts","../src/server/session/getByEmail.ts","../src/server/klaviyo/klaviyo-send-event.ts","../src/server/klaviyo/klaviyo-send-bulk.ts","../src/server/realtime/realtime-utm-order-data.ts","../src/server/order/order-get-by-uuid.ts","../src/server/order/order-get-by-email.ts","../src/server/payments/payment-first-payment.ts","../src/server/payments/payment-last-payments.ts","../src/server/subscription/cancel-subscription-by-id.ts","../src/server/subscription/cancel-subscriptions-by-order-id.ts","../src/server/subscription/subscription-apply-discount.ts","../src/server/subscription/subscription-pause.ts","../src/server/subscription/fill-subscription-cancel-request.ts","../src/index.ts"],"sourcesContent":["import {NextRequest, NextResponse, userAgent} from \"next/server\";\nimport {getClientIp} from \"./_utils/client-ip\";\nimport {CRM_AUTH_SIGN_IN_PATH, CRM_AUTH_SIGN_OUT_PATH, CRM_AUTH_VERIFY_PATH} from \"../browser/crm-auth/path\";\nimport {serverProxyHeaders} from \"./_utils/server-fetch-utils\";\nimport cache from 'memory-cache';\nimport {CACHE_KEY_FUNNELS, CACHE_KEY_SPLIT} from \"./cache/cache\";\nimport {getSplitItemForReq} from \"./split/get-split-item\";\nimport {trimChar} from \"./_utils/trim-char\";\nimport {getSplitItemUrlWinner} from \"./split/get-split-winner\";\nimport {getBackendUrl} from \"./_utils/backend-url\";\nimport {getCapiboxTemplates} from \"../browser/funnels/get-capibox-templates\";\n\ntype Templates = {\n [key: string]: string[]\n}\n\ntype Options = {\n templates?: Templates,\n onCrmTokenCheck?: (res: any) => Promise<any>,\n}\n\nexport const middleware = async (\n req: NextRequest,\n options?: Options,\n) => {\n if (req.nextUrl.pathname.startsWith('/app/clear-cache')) {\n cache.del(CACHE_KEY_FUNNELS);\n cache.del(CACHE_KEY_SPLIT);\n\n const res = NextResponse.json({s: new Date().getTime()})\n\n res.headers.append('Access-Control-Allow-Credentials', \"true\")\n res.headers.append('Access-Control-Allow-Origin', '*') // replace this your actual origin\n res.headers.append('Access-Control-Allow-Methods', 'GET,DELETE,PATCH,POST,PUT')\n res.headers.append(\n 'Access-Control-Allow-Headers',\n 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n )\n return res;\n }\n\n if (options?.templates && req.nextUrl.pathname.startsWith('/app/get-templates')) {\n const res = NextResponse.json({\n success: true,\n\n data: options.templates,\n })\n res.headers.append('Access-Control-Allow-Credentials', \"true\")\n res.headers.append('Access-Control-Allow-Origin', '*') // replace this your actual origin\n res.headers.append('Access-Control-Allow-Methods', 'GET,DELETE,PATCH,POST,PUT')\n res.headers.append(\n 'Access-Control-Allow-Headers',\n 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'\n )\n\n return res\n }\n\n // SPLIT TEST\n const input = await getSplitItemForReq({req});\n if (input) {\n const currentSplit = getSplitItemUrlWinner(input);\n\n return NextResponse.redirect(\n new URL(`/${trimChar(currentSplit.url, '/')}${req.nextUrl.search}`, req.url),\n )\n }\n\n if (req.nextUrl.pathname.startsWith('/api-client-proxy')) {\n if (req.nextUrl.pathname === '/api-client-proxy/funnels/funnel') {\n const capiboxTemplates = await getCapiboxTemplates();\n const res = NextResponse.json(capiboxTemplates);\n res.headers.set('X-Cache', 'HIT');\n return res;\n }\n\n let urlClone = req.nextUrl.clone();\n\n const targetUrl = new URL(getBackendUrl())\n const requestHeaders = new Headers(req.headers)\n requestHeaders.set('host', targetUrl.hostname)\n requestHeaders.set('project-key', `${process.env.CAPIBOX_API_KEY}`)\n\n if (req.nextUrl.pathname.includes('/realtime/')) {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {device, browser, os} = userAgent(req)\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-os', `${os.name} / ${os.version}`)\n requestHeaders.set('x-browser', `${browser.name} / ${browser.version}`)\n requestHeaders.set('x-device', device.type ? device.type : '-')\n const anUuidV3Cookie = req.cookies.get('an_uuid_v3');\n if (anUuidV3Cookie) {\n requestHeaders.set('x-realtime', anUuidV3Cookie?.value)\n }\n }\n if (req.nextUrl.pathname === '/api-client-proxy/session') {\n const ip = getClientIp({headers: Object.fromEntries(req.headers)})\n const {ua} = userAgent(req);\n requestHeaders.set('x-client-ip', ip)\n requestHeaders.set('x-user-agent', ua)\n }\n\n urlClone.protocol = targetUrl.protocol\n urlClone.hostname = targetUrl.hostname\n urlClone.port = targetUrl.port\n urlClone.pathname = urlClone.pathname.replace(/^\\/api-client-proxy/, '');\n\n return NextResponse.rewrite(urlClone, {\n request: {\n headers: requestHeaders,\n },\n })\n }\n\n // crm auth\n if (req.nextUrl.pathname === CRM_AUTH_SIGN_IN_PATH) {\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/sign-in',\n {\n method: 'POST',\n body: JSON.stringify(await req.json()),\n headers: serverProxyHeaders(),\n }\n )\n const resJson = await res.json();\n\n const result = NextResponse.json(resJson);\n if (!!resJson.action && !!resJson.token && resJson.action === 'logged-in') {\n result.cookies.set({\n name: \"token\",\n value: resJson.token,\n maxAge: 60 * 60 * 24 * 30,\n httpOnly: true,\n });\n }\n return result;\n }\n if (req.nextUrl.pathname === CRM_AUTH_VERIFY_PATH) {\n const tokenCookie = req.cookies.get('token')\n if (!tokenCookie || !tokenCookie.value) {\n return NextResponse.json({success: 0})\n }\n\n const payload = {\n data: {\n token: tokenCookie.value,\n }\n }\n const res = await fetch(\n 'https://auth.crm.apidata.app/api/check',\n {\n method: 'POST',\n body: JSON.stringify(payload),\n headers: serverProxyHeaders(),\n }\n )\n let resJson = await res.json();\n\n if (options?.onCrmTokenCheck) {\n resJson = await options.onCrmTokenCheck(resJson);\n }\n\n const result = NextResponse.json(resJson);\n if (!('id' in resJson && resJson.id > 0)) {\n result.cookies.delete(\"token\");\n }\n\n return result;\n }\n if (req.nextUrl.pathname === CRM_AUTH_SIGN_OUT_PATH) {\n const res = NextResponse.json({success: 1});\n res.cookies.delete(\"token\");\n return res;\n }\n}","\"use strict\";\n\nconst regexes = {\n ipv4: /^(?:(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])$/,\n ipv6: /^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i\n};\n\nfunction not(func: any) {\n return function () {\n return !func.apply(null, Array.prototype.slice.call(arguments));\n };\n}\n\nfunction existy(value: any) {\n return value != null;\n}\n\nfunction ip(value: any) {\n return existy(value) && regexes.ipv4.test(value) || regexes.ipv6.test(value);\n}\n\nfunction object(value: any) {\n return Object(value) === value;\n}\n\nfunction string(value: any) {\n return Object.prototype.toString.call(value) === '[object String]';\n}\n\nconst is = {\n existy: existy,\n ip: ip,\n object: object,\n string: string,\n not: {\n existy: not(existy),\n ip: not(ip),\n object: not(object),\n string: not(string)\n }\n};\nexport default is;\n","import is from \"./is\";\n\nfunction getClientIpFromXForwardedFor(value: any) {\n if (!is.existy(value)) {\n return null;\n }\n\n const forwardedIps = value.split(',').map(function (e: string) {\n const ip = e.trim();\n\n if (ip.includes(':')) {\n const splitted = ip.split(':');\n if (splitted.length === 2) {\n return splitted[0];\n }\n }\n return ip;\n });\n\n for (let i = 0; i < forwardedIps.length; i++) {\n if (is.ip(forwardedIps[i])) {\n return forwardedIps[i];\n }\n }\n\n return null;\n}\n\nexport function getClientIp(req: {\n headers?: {\n [key: string]: string\n },\n connection?: {\n remoteAddress?: string,\n socket?: {\n remoteAddress?: string,\n },\n },\n socket?: {\n remoteAddress?: string,\n },\n info?: {\n remoteAddress?: string,\n },\n requestContext?: {\n identity?: {\n sourceIp?: string,\n }\n },\n}) {\n if (req.headers) {\n if (is.ip(req.headers['x-client-ip'])) {\n return req.headers['x-client-ip'];\n }\n\n const xForwardedFor = getClientIpFromXForwardedFor(req.headers['x-forwarded-for']);\n\n if (is.ip(req.headers['cf-connecting-ip'])) {\n return req.headers['cf-connecting-ip'];\n }\n\n if (is.ip(req.headers['fastly-client-ip'])) {\n return req.headers['fastly-client-ip'];\n }\n\n if (is.ip(req.headers['true-client-ip'])) {\n return req.headers['true-client-ip'];\n }\n\n if (is.ip(req.headers['x-real-ip'])) {\n return req.headers['x-real-ip'];\n }\n\n if (is.ip(req.headers['x-cluster-client-ip'])) {\n return req.headers['x-cluster-client-ip'];\n }\n\n if (is.ip(req.headers['x-forwarded'])) {\n return req.headers['x-forwarded'];\n }\n\n if (is.ip(req.headers['forwarded-for'])) {\n return req.headers['forwarded-for'];\n }\n\n if (is.ip(xForwardedFor)) {\n return xForwardedFor;\n }\n\n if (is.ip(req.headers.forwarded)) {\n return req.headers.forwarded;\n }\n\n if (is.ip(req.headers['x-appengine-user-ip'])) {\n return req.headers['x-appengine-user-ip'];\n }\n }\n\n if (is.existy(req.connection) && !!req.connection) {\n if (is.ip(req.connection.remoteAddress)) {\n return req.connection.remoteAddress;\n }\n\n if (is.existy(req.connection.socket) && !!req.connection.socket && !!req.connection.socket.remoteAddress && is.ip(req.connection.socket.remoteAddress)) {\n return req.connection.socket.remoteAddress;\n }\n }\n\n if (is.existy(req.socket) && !!req.socket && !!req.socket.remoteAddress && is.ip(req.socket.remoteAddress)) {\n return req.socket.remoteAddress;\n }\n\n if (is.existy(req.info) && !!req.info && !!req.info.remoteAddress && is.ip(req.info.remoteAddress)) {\n return req.info.remoteAddress;\n }\n\n if (is.existy(req.requestContext) && !!req.requestContext && is.existy(req.requestContext.identity) && !!req.requestContext.identity && !!req.requestContext.identity.sourceIp && is.ip(req.requestContext.identity.sourceIp)) {\n return req.requestContext.identity.sourceIp;\n }\n\n if (req.headers) {\n if (is.ip(req.headers['Cf-Pseudo-IPv4'])) {\n return req.headers['Cf-Pseudo-IPv4'];\n }\n }\n\n return \"127.0.0.2\";\n}\n\n","export const CRM_AUTH_SIGN_IN_PATH = '/api/crm-auth/sign-in';\nexport const CRM_AUTH_SIGN_OUT_PATH = '/api/crm-auth/sign-out';\nexport const CRM_AUTH_VERIFY_PATH = '/api/crm-auth/verify';","import {NextRequest} from \"next/server\";\n// import {endpoint} from \"@capibox/bridge-interface\";\n\n// export const serverProxyPostRequest = async (req: NextRequest) => {\n// const res = await fetch(\n// req.nextUrl.pathname.replace(\n// endpoint.MAIN_ENDPOINT,\n// 'https://api.capibox.com'\n// ),\n// {\n// method: 'POST',\n// body: JSON.stringify(await req.json()),\n// headers: serverProxyHeaders(),\n// }\n// )\n// return await res.json();\n// }\n\nexport const serverProxyHeaders = () => {\n return {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_ENV}`.toLowerCase() === 'prod' ? `${process.env.CAPIBOX_API_KEY}` : 'dev'\n }\n}","export const CACHE_KEY_FUNNELS = 'funnels-data';\nexport const CACHE_KEY_SPLIT = 'split-data';","import cache from \"memory-cache\";\nimport {CACHE_KEY_SPLIT} from \"../cache/cache\";\nimport {components} from \"../../lib/api.def\";\nimport {getBackendUrl} from \"../_utils/backend-url\";\n\nexport const getSplitData = async (): Promise<components['schemas']['SplitResponseDto'][]> => {\n const cachedResponse = cache.get(CACHE_KEY_SPLIT);\n\n if (cachedResponse) {\n return cachedResponse;\n } else {\n try {\n const res = await fetch(`${getBackendUrl()}/funnels/split`, {\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `${process.env.CAPIBOX_API_KEY}`\n },\n });\n let resJson: components['schemas']['SplitResponseDto'][] = [];\n if (res.ok) {\n resJson = await res.json();\n }\n cache.put(CACHE_KEY_SPLIT, resJson, 2147483647);\n\n return resJson;\n } catch (e) {\n return [];\n }\n }\n};","export const getBackendUrl = () => {\n return process.env.CLIENT_BACKEND_URL ? process.env.CLIENT_BACKEND_URL : 'https://api.capibox.com';\n}","export const trimChar = (string: string, charToRemove: string) => {\n while (string.charAt(0) == charToRemove) {\n string = string.substring(1)\n }\n\n while (string.charAt(string.length - 1) == charToRemove) {\n string = string.substring(0, string.length - 1)\n }\n\n return string\n}\n","import {getSplitData} from \"./get-split-data\";\nimport {NextRequest} from \"next/server\";\nimport {trimChar} from \"../_utils/trim-char\";\n\nexport const getSplitItemForPath = async ({path}: { path: string }) => {\n\n const splits = await getSplitData();\n\n // TODO make url required\n const inputs = splits.filter(i => i.active)\n .map((i) => `/${trimChar((i.url ? i.url : ''), '/')}`)\n\n const inputIndex = inputs.indexOf(path)\n if (inputIndex >= 0) {\n return splits[inputIndex]\n }\n return undefined;\n}\n\nexport const getSplitItemForReq = async ({req}: { req: NextRequest }) => {\n return await getSplitItemForPath({path: req.nextUrl.pathname});\n}","import {components} from \"../../lib/api.def\";\n\nexport type SplitItemUrlWithRange = {\n range: {\n start: number,\n finish: number,\n }\n} & components['schemas']['SplitItemDto'];\n\nexport const getSplitItemUrlWinner = (item: components['schemas']['SplitResponseDto']) => {\n const splitValues = fillSplitItemUrlsRange(item);\n\n const _time = new Date().getTime()\n const _seed100 = _time % 100\n\n let currentSplit = splitValues.find(\n (e) => e.range.start <= _seed100 && e.range.finish > _seed100,\n )\n if (!currentSplit) {\n currentSplit = splitValues[0]\n }\n return currentSplit;\n}\n\n// TODO make splits required\nexport const fillSplitItemUrlsRange = (item: components['schemas']['SplitResponseDto']): SplitItemUrlWithRange[] => {\n const splits = item.splits ? item.splits : [];\n return splits.map((curr, i, data) => {\n const minPercent = data\n .slice(0, i)\n .map((a) => a.split)\n .reduce((a, b) => a + b, 0)\n\n return {\n ...curr,\n range: {\n start: minPercent,\n finish: minPercent + curr.split,\n },\n }\n });\n}","import cache from \"memory-cache\";\nimport {CACHE_KEY_FUNNELS} from \"../../server/cache/cache\";\nimport {getBackendUrl} from \"../../server/_utils/backend-url\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getCapiboxTemplates = async (): Promise<components['schemas']['FunnelResponseDto'][]> => {\n const cachedResponse = cache.get(CACHE_KEY_FUNNELS);\n if (cachedResponse) {\n return cachedResponse;\n } else {\n const funnelRes = await fetch(`${getBackendUrl()}/funnels/funnel`, {\n headers: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n })\n const responseBody = await funnelRes.json();\n cache.put(CACHE_KEY_FUNNELS, responseBody, 2147483647);\n return responseBody;\n }\n}","import {components} from \"../../lib/api.def\";\nimport {getCapiboxTemplates} from \"./get-capibox-templates\";\n\nexport type SdkRemoteFunnel = {\n checkout: string,\n landing: string,\n\n angle: string,\n version: string,\n\n homePageTemplate: string,\n quizPageTemplate: string,\n resultPageTemplate: string,\n emailPageTemplate: string,\n checkoutPageTemplate: string,\n paymentWindowTemplate: string,\n upsellPageTemplate: string,\n\n options?: any,\n upsellOptions?: any,\n}\n\nexport const getFunnels = async (): Promise<SdkRemoteFunnel[]> => {\n const tmpFunnels: components['schemas']['FunnelResponseDto'][] = await getCapiboxTemplates();\n const output: SdkRemoteFunnel[] = [];\n for (const funnel of tmpFunnels) {\n output.push({\n landing: funnel.angle,\n checkout: funnel.version,\n\n angle: funnel.angle,\n version: funnel.version,\n\n homePageTemplate: funnel.home_page,\n quizPageTemplate: funnel.quiz_page,\n resultPageTemplate: funnel.results_page,\n emailPageTemplate: funnel.email_page,\n checkoutPageTemplate: funnel.checkout_page,\n paymentWindowTemplate: funnel.payment_window,\n upsellPageTemplate: funnel.upsell_page,\n\n options: funnel.options,\n upsellOptions: funnel.upsell_options,\n });\n }\n return output;\n}","import {getFunnels, SdkRemoteFunnel} from \"./get\";\nimport {ReadonlyURLSearchParams} from \"next/navigation\";\n\n\ntype SdkRemoteTemplate = Omit<SdkRemoteFunnel, \"checkout\" | \"angle\" | \"landing\" | \"version\" | \"options\" | \"upsellOptions\">\n\nconst defaultTemplate: SdkRemoteTemplate = {\n homePageTemplate: 'Default',\n quizPageTemplate: 'Default',\n resultPageTemplate: 'Default',\n emailPageTemplate: 'Default',\n checkoutPageTemplate: 'Default',\n paymentWindowTemplate: 'Default',\n upsellPageTemplate: 'Default',\n}\n\ntype Props = {\n angle: string,\n version: string,\n searchParams?: ReadonlyURLSearchParams\n}\n\nexport const getTemplates = async ({\n angle, version, searchParams\n }: Props): Promise<SdkRemoteFunnel> => {\n const funnelsData = await getFunnels();\n\n const filteredFunnelsData = funnelsData.filter((a) => {\n if (\n (a.checkout === version || a.checkout === 'any') &&\n (a.landing === angle || a.landing === 'any')\n ) {\n return true\n }\n return false\n })\n if (filteredFunnelsData.length > 0) {\n const _flowData: SdkRemoteFunnel = JSON.parse(\n JSON.stringify(filteredFunnelsData[filteredFunnelsData.length - 1])\n )\n if (searchParams) {\n const keys = Object.keys(defaultTemplate)\n for (const key of keys) {\n if (searchParams.get(key)) {\n // @ts-ignore\n _flowData[key] = searchParams.get(key);\n }\n }\n }\n\n return _flowData;\n }\n return {\n ...defaultTemplate,\n landing: angle,\n checkout: version,\n angle,\n version,\n }\n}","import createFetchClient from \"openapi-fetch\";\nimport type {paths} from \"./api.def\";\nimport {getBackendUrl} from \"../server/_utils/backend-url\";\n\nexport const $apiClient = createFetchClient<paths>({\n baseUrl: getBackendUrl(),\n headers: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n});","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getSession = async (\n uuid: string,\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.GET(\n '/session/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n }\n );\n if (!res.data) {\n throw new Error('Failed to get session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const snapchatS2s = async (data: components['schemas']['SnapchatCapiBridgeDto']) => {\n await $apiClient.POST('/analytics/capi/snapchat/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import cache from \"memory-cache\";\nimport {CACHE_KEY_FUNNELS, CACHE_KEY_SPLIT} from \"../cache/cache\";\n\nexport const funnelsClearCache = () => {\n cache.del(CACHE_KEY_FUNNELS);\n cache.del(CACHE_KEY_SPLIT);\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const tiktokS2S = async (data: components['schemas']['TiktokCapiPayloadSessionBridge']) => {\n await $apiClient.POST('/analytics/capi/tiktok/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const facebookS2S = async (data: components['schemas']['FbCapiPayloadSessionBridge']) => {\n await $apiClient.POST('/analytics/capi/facebook/event', {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body: data\n });\n return {success: true};\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const appendSession = async (\n uuid: string,\n body: components['schemas']['AppendSessionDto'],\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.PUT(\n '/session/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n body\n }\n );\n if (!res.data) {\n throw new Error('Failed to append session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const getSessionByEmail = async (\n email: string,\n): Promise<components['schemas']['SessionResponseDto']> => {\n const res = await $apiClient.GET(\n '/session/email/{email}',\n {\n params: {\n path: {\n uuid: email\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n },\n }\n );\n if (!res.data) {\n throw new Error('Failed to get session.')\n }\n return res.data.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const klaviyoSendEvent = async (dto: components[\"schemas\"][\"CreateEventDto\"]) => {\n const res = await $apiClient.POST(\n '/dynamic-public-direct/klaviyo/events',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n\n },\n body: dto\n });\n if (!res.data) {\n throw new Error('Failed to create payment session.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const klaviyoSendBulk = async (dto: components[\"schemas\"][\"CreateBulkEventDto\"]) => {\n const res = await $apiClient.POST(\n '/dynamic-public-direct/klaviyo/events/bulk',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n\n },\n body: dto\n });\n if (!res.data) {\n throw new Error('Failed to create payment session.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\n\nexport const realtimeUtmOrderData = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/realtime/events/utm-data/{uuid}',\n {\n params: {\n path: {\n uuid\n },\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n }\n }\n }\n );\n if (!res.data) {\n throw new Error('Failed to get realtime utm data.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const orderGetByUuid = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/orders-management/report-item/order/{orderId}',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n path: {\n orderId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get order by uuid.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const orderGetByEmail = async (email: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/orders-management/report-item/email/{email}',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n path: {\n email\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get order by email.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\n\nexport const paymentFirstPayment = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/payments-management/payments/first-payment',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n query: {\n referenceId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get first payment.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const paymentLastPayments = async (uuid: string) => {\n const res = await $apiClient.GET(\n '/dynamic-public/payments-management/payments/last-5-payments',\n {\n params: {\n header: {\n 'project-key': `${process.env.CAPIBOX_API_KEY}`\n },\n query: {\n referenceId: uuid\n }\n },\n });\n if (!res.data) {\n throw new Error('Failed to get last payments.')\n }\n return res.data;\n}","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const cancelSubscriptionById = async (id: number, data: components[\"schemas\"][\"CancelSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/{id}/cancel', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n path: {\n id: id\n }\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to cancel subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const cancelSubscriptionsByOrderId = async (uuid: string, data: components[\"schemas\"][\"CancelSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/order/{orderId}/cancel', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n path: {\n orderId: uuid\n }\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to cancel subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const subscriptionApplyDiscount = async (data: components[\"schemas\"][\"DiscountSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/discount', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to apply discount.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const subscriptionPause = async (data: components[\"schemas\"][\"PauseSubscriptionDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscriptions/pause', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to pause subscription.')\n }\n return res.data;\n};","import {$apiClient} from \"../../lib/api\";\nimport {components} from \"../../lib/api.def\";\n\nexport const fillSubscriptionCancelRequest = async (data: components[\"schemas\"][\"CreateSubscriptionCancelRequestDto\"]) => {\n const res = await $apiClient.POST('/dynamic-public/subscriptions-management/subscription-cancel-requests', {\n params: {\n header: {\n 'project-key': 'Frontend'\n },\n },\n body: data\n });\n if (!res.data) {\n throw new Error('Failed to fill request.')\n }\n return res.data;\n};","import {middleware} from \"./server/middleware\";\nimport {getFunnels} from \"./browser/funnels/get\";\nimport {getTemplates} from \"./browser/funnels/get-templates\";\nimport {getSession} from \"./server/session/get\";\nimport {snapchatS2s} from \"./server/capi/snapchat-s2s\";\nimport {funnelsClearCache} from \"./server/funnels/clear-cache\";\nimport {tiktokS2S} from \"./server/capi/tiktok-s2s\";\nimport {facebookS2S} from \"./server/capi/facebook-s2s\";\nimport {appendSession} from \"./server/session/append\";\nimport {getSessionByEmail} from \"./server/session/getByEmail\";\nimport {klaviyoSendEvent} from \"./server/klaviyo/klaviyo-send-event\";\nimport {klaviyoSendBulk} from \"./server/klaviyo/klaviyo-send-bulk\";\nimport {realtimeUtmOrderData} from \"./server/realtime/realtime-utm-order-data\";\nimport {orderGetByUuid} from \"./server/order/order-get-by-uuid\";\nimport {orderGetByEmail} from \"./server/order/order-get-by-email\";\nimport {paymentFirstPayment} from \"./server/payments/payment-first-payment\";\nimport {paymentLastPayments} from \"./server/payments/payment-last-payments\";\nimport {cancelSubscriptionById} from \"./server/subscription/cancel-subscription-by-id\";\nimport {cancelSubscriptionsByOrderId} from \"./server/subscription/cancel-subscriptions-by-order-id\";\nimport {subscriptionApplyDiscount} from \"./server/subscription/subscription-apply-discount\";\nimport {subscriptionPause} from \"./server/subscription/subscription-pause\";\nimport {fillSubscriptionCancelRequest} from \"./server/subscription/fill-subscription-cancel-request\";\n\n\nexport {SdkRemoteFunnel} from \"./browser/funnels/get\";\n\nconst server = {\n middleware,\n funnels: {\n get: getFunnels,\n getTemplates,\n clearCache: funnelsClearCache,\n },\n session: {\n get: getSession,\n append: appendSession,\n getByEmail: getSessionByEmail,\n },\n capi: {\n snapchat: snapchatS2s,\n tiktok: tiktokS2S,\n facebook: facebookS2S,\n },\n klaviyo: {\n send: klaviyoSendEvent,\n sendBulk: klaviyoSendBulk,\n },\n realtime: {\n orderUtmData: realtimeUtmOrderData,\n },\n order: {\n getByUuid: orderGetByUuid,\n getByEmail: orderGetByEmail\n },\n payments: {\n firstPayment: paymentFirstPayment,\n last5Payments: paymentLastPayments\n },\n subscription: {\n cancelById: cancelSubscriptionById,\n cancelByOrderId: cancelSubscriptionsByOrderId,\n applyDiscount: subscriptionApplyDiscount,\n pause: subscriptionPause,\n fillCancellationRequest: fillSubscriptionCancelRequest,\n }\n}\n\nexport {\n server\n}\n\n// v.0.0.77"],"mappings":"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","names":["ip","cache","string","cache","cache","cache","ip","cache","cache"]}
|