@taskmagic/apps-tapfiliate 0.0.1

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/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # apps-tapfiliate
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build apps-tapfiliate` to build the library.
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@taskmagic/apps-tapfiliate",
3
+ "version": "0.0.1",
4
+ "dependencies": {
5
+ "@anthropic-ai/sdk": "0.33.1",
6
+ "@sinclair/typebox": "0.34.11",
7
+ "axios": "1.17.0",
8
+ "axios-retry": "4.4.1",
9
+ "deepmerge-ts": "7.1.0",
10
+ "mime-types": "2.1.35",
11
+ "nanoid": "3.3.8",
12
+ "openai": "4.67.1",
13
+ "replicate": "0.34.1",
14
+ "semver": "7.6.0",
15
+ "zod": "3.25.76",
16
+ "@taskmagic/pieces-common": "0.4.4",
17
+ "@taskmagic/pieces-framework": "0.7.46",
18
+ "@taskmagic/shared": "0.10.171",
19
+ "tslib": "1.14.1"
20
+ },
21
+ "overrides": {
22
+ "cross-spawn": "7.0.6",
23
+ "elliptic": "^6.6.1",
24
+ "fast-xml-parser": "^4.4.1",
25
+ "protobufjs": "^7.5.5",
26
+ "tmp": "^0.2.4",
27
+ "koa": "^2.16.4",
28
+ "picomatch": "^4.0.4",
29
+ "langsmith": "^0.6.0",
30
+ "serialize-javascript": "^6.0.2",
31
+ "elevenlabs": {
32
+ "form-data": "^4.0.4"
33
+ },
34
+ "@tryfabric/martian": {
35
+ "@notionhq/client": "$@notionhq/client"
36
+ },
37
+ "vite": {
38
+ "rollup": "npm:@rollup/wasm-node@^4.61.1"
39
+ }
40
+ },
41
+ "resolutions": {
42
+ "rollup": "npm:@rollup/wasm-node@^4.61.1"
43
+ },
44
+ "types": "./src/index.d.ts",
45
+ "main": "./src/index.js",
46
+ "type": "commonjs"
47
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const tapfiliate: import("@taskmagic/pieces-framework").Piece<import("@taskmagic/pieces-framework").SecretTextProperty<true>>;
package/src/index.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tapfiliate = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@taskmagic/pieces-common");
6
+ const pieces_framework_1 = require("@taskmagic/pieces-framework");
7
+ const shared_1 = require("@taskmagic/shared");
8
+ const create_affiliate_1 = require("./lib/actions/create-affiliate");
9
+ const create_conversion_1 = require("./lib/actions/create-conversion");
10
+ const get_affiliate_1 = require("./lib/actions/get-affiliate");
11
+ const list_affiliates_1 = require("./lib/actions/list-affiliates");
12
+ const auth_1 = require("./lib/common/auth");
13
+ const tapfiliate_client_1 = require("./lib/common/tapfiliate.client");
14
+ exports.tapfiliate = (0, pieces_framework_1.createPiece)({
15
+ displayName: 'Tapfiliate',
16
+ description: 'Affiliate tracking and conversion management platform.',
17
+ minimumSupportedRelease: '0.30.0',
18
+ logoUrl: 'https://cdn.activepieces.com/pieces/tapfiliate.png',
19
+ categories: [shared_1.PieceCategory.MARKETING, shared_1.PieceCategory.SALES_AND_CRM],
20
+ authors: ['Harmatta', 'onyedikachi-david'],
21
+ auth: auth_1.tapfiliateAuth,
22
+ actions: [
23
+ create_affiliate_1.createAffiliateAction,
24
+ get_affiliate_1.getAffiliateAction,
25
+ list_affiliates_1.listAffiliatesAction,
26
+ create_conversion_1.createConversionAction,
27
+ (0, pieces_common_1.createCustomApiCallAction)({
28
+ baseUrl: () => tapfiliate_client_1.TAPFILIATE_BASE_URL,
29
+ auth: auth_1.tapfiliateAuth,
30
+ authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
31
+ return ({
32
+ 'X-Api-Key': auth,
33
+ });
34
+ }),
35
+ }),
36
+ ],
37
+ triggers: [],
38
+ });
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/tapfiliate/src/index.ts"],"names":[],"mappings":";;;;AAAA,4DAAqE;AACrE,kEAA0D;AAC1D,8CAAkD;AAElD,qEAAuE;AACvE,uEAAyE;AACzE,+DAAiE;AACjE,mEAAqE;AACrE,4CAAmD;AACnD,sEAAqE;AAExD,QAAA,UAAU,GAAG,IAAA,8BAAW,EAAC;IACpC,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,wDAAwD;IACrE,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,oDAAoD;IAC7D,UAAU,EAAE,CAAC,sBAAa,CAAC,SAAS,EAAE,sBAAa,CAAC,aAAa,CAAC;IAClE,OAAO,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAC1C,IAAI,EAAE,qBAAc;IACpB,OAAO,EAAE;QACP,wCAAqB;QACrB,kCAAkB;QAClB,sCAAoB;QACpB,0CAAsB;QACtB,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,GAAG,EAAE,CAAC,uCAAmB;YAClC,IAAI,EAAE,qBAAc;YACpB,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,WAAW,EAAE,IAAc;iBAC5B,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export declare const createAffiliateAction: import("@taskmagic/pieces-framework").IAction<import("@taskmagic/pieces-framework").SecretTextProperty<true>, {
2
+ firstname: import("@taskmagic/pieces-framework").ShortTextProperty<true>;
3
+ lastname: import("@taskmagic/pieces-framework").ShortTextProperty<true>;
4
+ email: import("@taskmagic/pieces-framework").ShortTextProperty<true>;
5
+ password: import("@taskmagic/pieces-framework").ShortTextProperty<true>;
6
+ companyName: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
7
+ companyDescription: import("@taskmagic/pieces-framework").LongTextProperty<false>;
8
+ addressLine1: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
9
+ addressLine2: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
10
+ postalCode: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
11
+ city: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
12
+ state: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
13
+ countryCode: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
14
+ customFields: import("@taskmagic/pieces-framework").JsonProperty<false>;
15
+ }>;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAffiliateAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@taskmagic/pieces-common");
6
+ const pieces_framework_1 = require("@taskmagic/pieces-framework");
7
+ const auth_1 = require("../common/auth");
8
+ const tapfiliate_client_1 = require("../common/tapfiliate.client");
9
+ function isRecord(value) {
10
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
11
+ }
12
+ exports.createAffiliateAction = (0, pieces_framework_1.createAction)({
13
+ auth: auth_1.tapfiliateAuth,
14
+ name: 'create_affiliate',
15
+ displayName: 'Create Affiliate',
16
+ description: 'Creates a new affiliate in Tapfiliate.',
17
+ props: {
18
+ firstname: pieces_framework_1.Property.ShortText({
19
+ displayName: 'First Name',
20
+ required: true,
21
+ }),
22
+ lastname: pieces_framework_1.Property.ShortText({
23
+ displayName: 'Last Name',
24
+ required: true,
25
+ }),
26
+ email: pieces_framework_1.Property.ShortText({
27
+ displayName: 'Email',
28
+ required: true,
29
+ }),
30
+ password: pieces_framework_1.Property.ShortText({
31
+ displayName: 'Password',
32
+ description: 'Password for the new affiliate account.',
33
+ required: true,
34
+ }),
35
+ companyName: pieces_framework_1.Property.ShortText({
36
+ displayName: 'Company Name',
37
+ required: false,
38
+ }),
39
+ companyDescription: pieces_framework_1.Property.LongText({
40
+ displayName: 'Company Description',
41
+ required: false,
42
+ }),
43
+ addressLine1: pieces_framework_1.Property.ShortText({
44
+ displayName: 'Address Line 1',
45
+ required: false,
46
+ }),
47
+ addressLine2: pieces_framework_1.Property.ShortText({
48
+ displayName: 'Address Line 2',
49
+ required: false,
50
+ }),
51
+ postalCode: pieces_framework_1.Property.ShortText({
52
+ displayName: 'Postal Code',
53
+ required: false,
54
+ }),
55
+ city: pieces_framework_1.Property.ShortText({
56
+ displayName: 'City',
57
+ required: false,
58
+ }),
59
+ state: pieces_framework_1.Property.ShortText({
60
+ displayName: 'State',
61
+ required: false,
62
+ }),
63
+ countryCode: pieces_framework_1.Property.ShortText({
64
+ displayName: 'Country Code',
65
+ description: 'ISO 3166-1 alpha-2 code, e.g. US or NL.',
66
+ required: false,
67
+ }),
68
+ customFields: pieces_framework_1.Property.Json({
69
+ displayName: 'Custom Fields',
70
+ required: false,
71
+ }),
72
+ },
73
+ run(context) {
74
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
75
+ const company = context.propsValue.companyName || context.propsValue.companyDescription
76
+ ? Object.assign(Object.assign({}, (context.propsValue.companyName
77
+ ? { name: context.propsValue.companyName }
78
+ : {})), (context.propsValue.companyDescription
79
+ ? { description: context.propsValue.companyDescription }
80
+ : {})) : undefined;
81
+ const address = context.propsValue.addressLine1 ||
82
+ context.propsValue.addressLine2 ||
83
+ context.propsValue.postalCode ||
84
+ context.propsValue.city ||
85
+ context.propsValue.state ||
86
+ context.propsValue.countryCode
87
+ ? Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (context.propsValue.addressLine1
88
+ ? { address: context.propsValue.addressLine1 }
89
+ : {})), (context.propsValue.addressLine2
90
+ ? { address_two: context.propsValue.addressLine2 }
91
+ : {})), (context.propsValue.postalCode
92
+ ? { postal_code: context.propsValue.postalCode }
93
+ : {})), (context.propsValue.city ? { city: context.propsValue.city } : {})), (context.propsValue.state
94
+ ? { state: context.propsValue.state }
95
+ : {})), (context.propsValue.countryCode
96
+ ? { country: { code: context.propsValue.countryCode } }
97
+ : {})) : undefined;
98
+ const customFields = isRecord(context.propsValue.customFields)
99
+ ? context.propsValue.customFields
100
+ : undefined;
101
+ return yield (0, tapfiliate_client_1.tapfiliateApiCall)({
102
+ method: pieces_common_1.HttpMethod.POST,
103
+ path: '/affiliates/',
104
+ apiKey: context.auth,
105
+ body: Object.assign(Object.assign(Object.assign({ firstname: context.propsValue.firstname, lastname: context.propsValue.lastname, email: context.propsValue.email, password: context.propsValue.password }, (company ? { company } : {})), (address ? { address } : {})), (customFields ? { custom_fields: customFields } : {})),
106
+ });
107
+ });
108
+ },
109
+ });
110
+ //# sourceMappingURL=create-affiliate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-affiliate.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/tapfiliate/src/lib/actions/create-affiliate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare const createConversionAction: import("@taskmagic/pieces-framework").IAction<import("@taskmagic/pieces-framework").SecretTextProperty<true>, {
2
+ referralCode: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
3
+ trackingId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
4
+ clickId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
5
+ coupon: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
6
+ currency: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
7
+ assetId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
8
+ sourceId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
9
+ externalId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
10
+ amount: import("@taskmagic/pieces-framework").NumberProperty<true>;
11
+ customerId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
12
+ overrideMaxCookieTime: import("@taskmagic/pieces-framework").CheckboxProperty<false>;
13
+ userAgent: import("@taskmagic/pieces-framework").LongTextProperty<false>;
14
+ ip: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
15
+ metaData: import("@taskmagic/pieces-framework").JsonProperty<false>;
16
+ }>;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createConversionAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@taskmagic/pieces-common");
6
+ const pieces_framework_1 = require("@taskmagic/pieces-framework");
7
+ const auth_1 = require("../common/auth");
8
+ const tapfiliate_client_1 = require("../common/tapfiliate.client");
9
+ function isRecord(value) {
10
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
11
+ }
12
+ exports.createConversionAction = (0, pieces_framework_1.createAction)({
13
+ auth: auth_1.tapfiliateAuth,
14
+ name: 'create_conversion',
15
+ displayName: 'Create Conversion',
16
+ description: 'Creates a conversion in Tapfiliate. At least one attribution field is required: Customer ID, Referral Code, Tracking ID, Click ID, Coupon, or Asset ID + Source ID together.',
17
+ props: {
18
+ referralCode: pieces_framework_1.Property.ShortText({
19
+ displayName: 'Referral Code',
20
+ description: "The affiliate's referral code used to attribute this conversion.",
21
+ required: false,
22
+ }),
23
+ trackingId: pieces_framework_1.Property.ShortText({
24
+ displayName: 'Tracking ID',
25
+ description: 'The Tapfiliate tracking ID stored in the affiliate click cookie.',
26
+ required: false,
27
+ }),
28
+ clickId: pieces_framework_1.Property.ShortText({
29
+ displayName: 'Click ID',
30
+ description: 'The Tapfiliate click ID from the affiliate referral link.',
31
+ required: false,
32
+ }),
33
+ coupon: pieces_framework_1.Property.ShortText({
34
+ displayName: 'Coupon',
35
+ description: 'A coupon code linked to an affiliate to attribute this conversion.',
36
+ required: false,
37
+ }),
38
+ currency: pieces_framework_1.Property.ShortText({
39
+ displayName: 'Currency',
40
+ description: 'Three-letter ISO currency code such as USD or EUR.',
41
+ required: false,
42
+ }),
43
+ assetId: pieces_framework_1.Property.ShortText({
44
+ displayName: 'Asset ID',
45
+ description: 'The Tapfiliate asset ID. Must be provided together with Source ID.',
46
+ required: false,
47
+ }),
48
+ sourceId: pieces_framework_1.Property.ShortText({
49
+ displayName: 'Source ID',
50
+ description: 'The Tapfiliate source ID. Must be provided together with Asset ID.',
51
+ required: false,
52
+ }),
53
+ externalId: pieces_framework_1.Property.ShortText({
54
+ displayName: 'External ID',
55
+ description: 'Your own unique identifier for this conversion, such as an order number.',
56
+ required: false,
57
+ }),
58
+ amount: pieces_framework_1.Property.Number({
59
+ displayName: 'Amount',
60
+ description: 'Conversion amount used to calculate commissions.',
61
+ required: true,
62
+ }),
63
+ customerId: pieces_framework_1.Property.ShortText({
64
+ displayName: 'Customer ID',
65
+ description: 'Your customer identifier to attribute this conversion to the matching affiliate.',
66
+ required: false,
67
+ }),
68
+ overrideMaxCookieTime: pieces_framework_1.Property.Checkbox({
69
+ displayName: 'Override Max Cookie Time',
70
+ description: 'Override the maximum cookie time for this conversion.',
71
+ required: false,
72
+ defaultValue: false,
73
+ }),
74
+ userAgent: pieces_framework_1.Property.LongText({
75
+ displayName: 'User Agent',
76
+ required: false,
77
+ }),
78
+ ip: pieces_framework_1.Property.ShortText({
79
+ displayName: 'IP Address',
80
+ required: false,
81
+ }),
82
+ metaData: pieces_framework_1.Property.Json({
83
+ displayName: 'Meta Data',
84
+ required: false,
85
+ }),
86
+ },
87
+ run(context) {
88
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
+ const metaData = isRecord(context.propsValue.metaData)
90
+ ? context.propsValue.metaData
91
+ : undefined;
92
+ if (Boolean(context.propsValue.assetId) !== Boolean(context.propsValue.sourceId)) {
93
+ throw new Error('Asset ID and Source ID must be provided together.');
94
+ }
95
+ const hasAttribution = !!context.propsValue.customerId ||
96
+ !!context.propsValue.referralCode ||
97
+ !!context.propsValue.trackingId ||
98
+ !!context.propsValue.clickId ||
99
+ !!context.propsValue.coupon ||
100
+ (!!context.propsValue.assetId && !!context.propsValue.sourceId);
101
+ if (!hasAttribution) {
102
+ throw new Error('Tapfiliate requires at least one attribution key: Customer ID, Referral Code, Tracking ID, Click ID, Coupon, or Asset ID + Source ID.');
103
+ }
104
+ return yield (0, tapfiliate_client_1.tapfiliateApiCall)({
105
+ method: pieces_common_1.HttpMethod.POST,
106
+ path: '/conversions/',
107
+ apiKey: context.auth,
108
+ query: context.propsValue.overrideMaxCookieTime
109
+ ? { override_max_cookie_time: 'true' }
110
+ : undefined,
111
+ body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (context.propsValue.referralCode
112
+ ? { referral_code: context.propsValue.referralCode }
113
+ : {})), (context.propsValue.trackingId
114
+ ? { tracking_id: context.propsValue.trackingId }
115
+ : {})), (context.propsValue.clickId
116
+ ? { click_id: context.propsValue.clickId }
117
+ : {})), (context.propsValue.coupon
118
+ ? { coupon: context.propsValue.coupon }
119
+ : {})), (context.propsValue.currency
120
+ ? { currency: context.propsValue.currency }
121
+ : {})), (context.propsValue.assetId
122
+ ? { asset_id: context.propsValue.assetId }
123
+ : {})), (context.propsValue.sourceId
124
+ ? { source_id: context.propsValue.sourceId }
125
+ : {})), (context.propsValue.externalId
126
+ ? { external_id: context.propsValue.externalId }
127
+ : {})), { amount: context.propsValue.amount }), (context.propsValue.customerId
128
+ ? { customer_id: context.propsValue.customerId }
129
+ : {})), (context.propsValue.userAgent
130
+ ? { user_agent: context.propsValue.userAgent }
131
+ : {})), (context.propsValue.ip ? { ip: context.propsValue.ip } : {})), (metaData ? { meta_data: metaData } : {})),
132
+ });
133
+ });
134
+ },
135
+ });
136
+ //# sourceMappingURL=create-conversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-conversion.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/tapfiliate/src/lib/actions/create-conversion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const getAffiliateAction: import("@taskmagic/pieces-framework").IAction<import("@taskmagic/pieces-framework").SecretTextProperty<true>, {
2
+ affiliateId: import("@taskmagic/pieces-framework").ShortTextProperty<true>;
3
+ }>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAffiliateAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@taskmagic/pieces-common");
6
+ const pieces_framework_1 = require("@taskmagic/pieces-framework");
7
+ const auth_1 = require("../common/auth");
8
+ const tapfiliate_client_1 = require("../common/tapfiliate.client");
9
+ exports.getAffiliateAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.tapfiliateAuth,
11
+ name: 'get_affiliate',
12
+ displayName: 'Get Affiliate',
13
+ description: 'Retrieves a Tapfiliate affiliate by ID.',
14
+ props: {
15
+ affiliateId: pieces_framework_1.Property.ShortText({
16
+ displayName: 'Affiliate ID',
17
+ description: 'The unique Tapfiliate affiliate ID. Find it on the affiliate detail page in your Tapfiliate dashboard.',
18
+ required: true,
19
+ }),
20
+ },
21
+ run(context) {
22
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ return yield (0, tapfiliate_client_1.tapfiliateApiCall)({
24
+ method: pieces_common_1.HttpMethod.GET,
25
+ path: `/affiliates/${context.propsValue.affiliateId}/`,
26
+ apiKey: context.auth,
27
+ });
28
+ });
29
+ },
30
+ });
31
+ //# sourceMappingURL=get-affiliate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-affiliate.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/tapfiliate/src/lib/actions/get-affiliate.ts"],"names":[],"mappings":";;;;AAAA,4DAAsD;AACtD,kEAAqE;AACrE,yCAAgD;AAChD,mEAAgE;AAEnD,QAAA,kBAAkB,GAAG,IAAA,+BAAY,EAAC;IAC7C,IAAI,EAAE,qBAAc;IACpB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,yCAAyC;IACtD,KAAK,EAAE;QACL,WAAW,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,wGAAwG;YACrH,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,OAAO,MAAM,IAAA,qCAAiB,EAAC;gBAC7B,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,IAAI,EAAE,eAAe,OAAO,CAAC,UAAU,CAAC,WAAW,GAAG;gBACtD,MAAM,EAAE,OAAO,CAAC,IAAc;aAC/B,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const listAffiliatesAction: import("@taskmagic/pieces-framework").IAction<import("@taskmagic/pieces-framework").SecretTextProperty<true>, {
2
+ clickId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
3
+ sourceId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
4
+ email: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
5
+ referralCode: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
6
+ parentId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
7
+ affiliateGroupId: import("@taskmagic/pieces-framework").ShortTextProperty<false>;
8
+ }>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listAffiliatesAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@taskmagic/pieces-common");
6
+ const pieces_framework_1 = require("@taskmagic/pieces-framework");
7
+ const auth_1 = require("../common/auth");
8
+ const tapfiliate_client_1 = require("../common/tapfiliate.client");
9
+ exports.listAffiliatesAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.tapfiliateAuth,
11
+ name: 'list_affiliates',
12
+ displayName: 'List Affiliates',
13
+ description: 'Lists affiliates with optional Tapfiliate filters.',
14
+ props: {
15
+ clickId: pieces_framework_1.Property.ShortText({
16
+ displayName: 'Click ID',
17
+ required: false,
18
+ }),
19
+ sourceId: pieces_framework_1.Property.ShortText({
20
+ displayName: 'Source ID',
21
+ required: false,
22
+ }),
23
+ email: pieces_framework_1.Property.ShortText({
24
+ displayName: 'Email',
25
+ required: false,
26
+ }),
27
+ referralCode: pieces_framework_1.Property.ShortText({
28
+ displayName: 'Referral Code',
29
+ required: false,
30
+ }),
31
+ parentId: pieces_framework_1.Property.ShortText({
32
+ displayName: 'Parent Affiliate ID',
33
+ required: false,
34
+ }),
35
+ affiliateGroupId: pieces_framework_1.Property.ShortText({
36
+ displayName: 'Affiliate Group ID',
37
+ required: false,
38
+ }),
39
+ },
40
+ run(context) {
41
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
42
+ return yield (0, tapfiliate_client_1.tapfiliatePaginatedApiCall)({
43
+ method: pieces_common_1.HttpMethod.GET,
44
+ path: '/affiliates/',
45
+ apiKey: context.auth,
46
+ query: (0, tapfiliate_client_1.buildTapfiliateQuery)({
47
+ click_id: context.propsValue.clickId,
48
+ source_id: context.propsValue.sourceId,
49
+ email: context.propsValue.email,
50
+ referral_code: context.propsValue.referralCode,
51
+ parent_id: context.propsValue.parentId,
52
+ affiliate_group_id: context.propsValue.affiliateGroupId,
53
+ }),
54
+ });
55
+ });
56
+ },
57
+ });
58
+ //# sourceMappingURL=list-affiliates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-affiliates.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/tapfiliate/src/lib/actions/list-affiliates.ts"],"names":[],"mappings":";;;;AAAA,4DAAsD;AACtD,kEAAqE;AACrE,yCAAgD;AAChD,mEAGqC;AAExB,QAAA,oBAAoB,GAAG,IAAA,+BAAY,EAAC;IAC/C,IAAI,EAAE,qBAAc;IACpB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,oDAAoD;IACjE,KAAK,EAAE;QACL,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,YAAY,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC/B,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,gBAAgB,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACnC,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,OAAO,MAAM,IAAA,8CAA0B,EAAC;gBACtC,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,OAAO,CAAC,IAAc;gBAC9B,KAAK,EAAE,IAAA,wCAAoB,EAAC;oBAC1B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;oBACpC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;oBACtC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK;oBAC/B,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY;oBAC9C,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;oBACtC,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC,gBAAgB;iBACxD,CAAC;aACH,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const tapfiliateAuth: import("@taskmagic/pieces-framework").SecretTextProperty<true>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tapfiliateAuth = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@taskmagic/pieces-common");
6
+ const pieces_framework_1 = require("@taskmagic/pieces-framework");
7
+ const tapfiliate_client_1 = require("./tapfiliate.client");
8
+ exports.tapfiliateAuth = pieces_framework_1.PieceAuth.SecretText({
9
+ displayName: 'API Key',
10
+ description: `To obtain your API key:
11
+
12
+ 1. Log in to your Tapfiliate account.
13
+ 2. Open your account settings.
14
+ 3. Find the API key section.
15
+ 4. Copy the API key and paste it here.`,
16
+ required: true,
17
+ validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
18
+ try {
19
+ yield (0, tapfiliate_client_1.tapfiliateApiCall)({
20
+ method: pieces_common_1.HttpMethod.GET,
21
+ path: '/affiliates/',
22
+ apiKey: auth,
23
+ });
24
+ return { valid: true };
25
+ }
26
+ catch (_b) {
27
+ return { valid: false, error: 'Invalid API Key.' };
28
+ }
29
+ }),
30
+ });
31
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/tapfiliate/src/lib/common/auth.ts"],"names":[],"mappings":";;;;AAAA,4DAAsD;AACtD,kEAAwD;AAExD,2DAAwD;AAE3C,QAAA,cAAc,GAAG,4BAAS,CAAC,UAAU,CAAC;IACjD,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE;;;;;uCAKwB;IACrC,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,IAAA,qCAAiB,EAAC;gBACtB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,IAAc;aACvB,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QACrD,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { HttpMessageBody, HttpMethod, QueryParams } from '@taskmagic/pieces-common';
2
+ export declare const TAPFILIATE_BASE_URL = "https://api.tapfiliate.com/1.6";
3
+ export declare function buildTapfiliateQuery(values?: Record<string, unknown>): QueryParams;
4
+ type TapfiliateApiCallParams = {
5
+ method: HttpMethod;
6
+ path: string;
7
+ apiKey: string;
8
+ apiBaseUrl?: string;
9
+ query?: QueryParams;
10
+ body?: unknown;
11
+ };
12
+ export declare function parseTapfiliateNextPage(linkHeader: string | string[] | undefined): string | undefined;
13
+ export declare function tapfiliateApiCall<T extends HttpMessageBody>({ method, path, apiKey, apiBaseUrl, query, body, }: TapfiliateApiCallParams): Promise<T>;
14
+ export declare function tapfiliatePaginatedApiCall<T extends HttpMessageBody>({ method, path, apiKey, apiBaseUrl, query, body, }: TapfiliateApiCallParams): Promise<T[]>;
15
+ export {};
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TAPFILIATE_BASE_URL = void 0;
4
+ exports.buildTapfiliateQuery = buildTapfiliateQuery;
5
+ exports.parseTapfiliateNextPage = parseTapfiliateNextPage;
6
+ exports.tapfiliateApiCall = tapfiliateApiCall;
7
+ exports.tapfiliatePaginatedApiCall = tapfiliatePaginatedApiCall;
8
+ const tslib_1 = require("tslib");
9
+ const pieces_common_1 = require("@taskmagic/pieces-common");
10
+ exports.TAPFILIATE_BASE_URL = 'https://api.tapfiliate.com/1.6';
11
+ function shouldKeepValue(value) {
12
+ if (value === null || value === undefined) {
13
+ return false;
14
+ }
15
+ if (typeof value === 'string') {
16
+ return value.trim().length > 0;
17
+ }
18
+ return true;
19
+ }
20
+ function buildTapfiliateQuery(values) {
21
+ const query = {};
22
+ if (!values) {
23
+ return query;
24
+ }
25
+ for (const [key, value] of Object.entries(values)) {
26
+ if (!shouldKeepValue(value)) {
27
+ continue;
28
+ }
29
+ query[key] = String(value);
30
+ }
31
+ return query;
32
+ }
33
+ function buildTapfiliateRequest({ method, path, apiKey, apiBaseUrl = exports.TAPFILIATE_BASE_URL, query, body, }) {
34
+ return {
35
+ method,
36
+ url: `${apiBaseUrl}${path}`,
37
+ headers: {
38
+ 'Content-Type': 'application/json',
39
+ 'X-Api-Key': apiKey,
40
+ },
41
+ queryParams: query,
42
+ body,
43
+ };
44
+ }
45
+ function parseTapfiliateNextPage(linkHeader) {
46
+ var _a, _b, _c;
47
+ const normalizedHeader = Array.isArray(linkHeader)
48
+ ? linkHeader.join(',')
49
+ : linkHeader;
50
+ if (!normalizedHeader || !normalizedHeader.includes('rel="next"')) {
51
+ return undefined;
52
+ }
53
+ const nextLink = (_b = (_a = normalizedHeader
54
+ .split(',')
55
+ .find((segment) => segment.includes('rel="next"'))) === null || _a === void 0 ? void 0 : _a.match(/<(.*?)>/)) === null || _b === void 0 ? void 0 : _b[1];
56
+ if (!nextLink) {
57
+ return undefined;
58
+ }
59
+ return (_c = new URL(nextLink).searchParams.get('page')) !== null && _c !== void 0 ? _c : undefined;
60
+ }
61
+ function tapfiliateApiCall(_a) {
62
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ method, path, apiKey, apiBaseUrl = exports.TAPFILIATE_BASE_URL, query, body, }) {
63
+ const response = yield pieces_common_1.httpClient.sendRequest(buildTapfiliateRequest({
64
+ method,
65
+ path,
66
+ apiKey,
67
+ apiBaseUrl,
68
+ query,
69
+ body,
70
+ }));
71
+ return response.body;
72
+ });
73
+ }
74
+ function tapfiliatePaginatedApiCall(_a) {
75
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ method, path, apiKey, apiBaseUrl = exports.TAPFILIATE_BASE_URL, query, body, }) {
76
+ var _b, _c, _d;
77
+ const results = [];
78
+ let currentQuery = query;
79
+ let pageCount = 0;
80
+ while (pageCount < TAPFILIATE_MAX_PAGES) {
81
+ const response = yield pieces_common_1.httpClient.sendRequest(buildTapfiliateRequest({
82
+ method,
83
+ path,
84
+ apiKey,
85
+ apiBaseUrl,
86
+ query: currentQuery,
87
+ body,
88
+ }));
89
+ if (!Array.isArray(response.body) || response.body.length === 0) {
90
+ return results;
91
+ }
92
+ results.push(...response.body);
93
+ pageCount += 1;
94
+ const nextPage = parseTapfiliateNextPage((_c = (_b = response.headers) === null || _b === void 0 ? void 0 : _b['link']) !== null && _c !== void 0 ? _c : (_d = response.headers) === null || _d === void 0 ? void 0 : _d['Link']);
95
+ if (!nextPage) {
96
+ return results;
97
+ }
98
+ currentQuery = Object.assign(Object.assign({}, (query !== null && query !== void 0 ? query : {})), { page: nextPage });
99
+ }
100
+ return results;
101
+ });
102
+ }
103
+ const TAPFILIATE_MAX_PAGES = 500;
104
+ //# sourceMappingURL=tapfiliate.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tapfiliate.client.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/tapfiliate/src/lib/common/tapfiliate.client.ts"],"names":[],"mappings":"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"}