@activepieces/piece-paddle 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.
Files changed (61) hide show
  1. package/package.json +17 -0
  2. package/src/index.d.ts +3 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js +58 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/actions/cancel-subscription.d.ts +6 -0
  7. package/src/lib/actions/cancel-subscription.d.ts.map +1 -0
  8. package/src/lib/actions/cancel-subscription.js +55 -0
  9. package/src/lib/actions/cancel-subscription.js.map +1 -0
  10. package/src/lib/actions/create-transaction.d.ts +9 -0
  11. package/src/lib/actions/create-transaction.d.ts.map +1 -0
  12. package/src/lib/actions/create-transaction.js +70 -0
  13. package/src/lib/actions/create-transaction.js.map +1 -0
  14. package/src/lib/actions/get-subscription.d.ts +5 -0
  15. package/src/lib/actions/get-subscription.d.ts.map +1 -0
  16. package/src/lib/actions/get-subscription.js +32 -0
  17. package/src/lib/actions/get-subscription.js.map +1 -0
  18. package/src/lib/actions/list-customers.d.ts +7 -0
  19. package/src/lib/actions/list-customers.d.ts.map +1 -0
  20. package/src/lib/actions/list-customers.js +75 -0
  21. package/src/lib/actions/list-customers.js.map +1 -0
  22. package/src/lib/actions/update-subscription.d.ts +9 -0
  23. package/src/lib/actions/update-subscription.d.ts.map +1 -0
  24. package/src/lib/actions/update-subscription.js +88 -0
  25. package/src/lib/actions/update-subscription.js.map +1 -0
  26. package/src/lib/auth.d.ts +6 -0
  27. package/src/lib/auth.d.ts.map +1 -0
  28. package/src/lib/auth.js +32 -0
  29. package/src/lib/auth.js.map +1 -0
  30. package/src/lib/common/client.d.ts +112 -0
  31. package/src/lib/common/client.d.ts.map +1 -0
  32. package/src/lib/common/client.js +210 -0
  33. package/src/lib/common/client.js.map +1 -0
  34. package/src/lib/common/props.d.ts +12 -0
  35. package/src/lib/common/props.d.ts.map +1 -0
  36. package/src/lib/common/props.js +319 -0
  37. package/src/lib/common/props.js.map +1 -0
  38. package/src/lib/common/utils.d.ts +33 -0
  39. package/src/lib/common/utils.d.ts.map +1 -0
  40. package/src/lib/common/utils.js +79 -0
  41. package/src/lib/common/utils.js.map +1 -0
  42. package/src/lib/triggers/new-active-subscription.d.ts +3 -0
  43. package/src/lib/triggers/new-active-subscription.d.ts.map +1 -0
  44. package/src/lib/triggers/new-active-subscription.js +56 -0
  45. package/src/lib/triggers/new-active-subscription.js.map +1 -0
  46. package/src/lib/triggers/payment-failed.d.ts +3 -0
  47. package/src/lib/triggers/payment-failed.d.ts.map +1 -0
  48. package/src/lib/triggers/payment-failed.js +63 -0
  49. package/src/lib/triggers/payment-failed.js.map +1 -0
  50. package/src/lib/triggers/subscription-canceled.d.ts +3 -0
  51. package/src/lib/triggers/subscription-canceled.d.ts.map +1 -0
  52. package/src/lib/triggers/subscription-canceled.js +57 -0
  53. package/src/lib/triggers/subscription-canceled.js.map +1 -0
  54. package/src/lib/triggers/subscription-past-due.d.ts +3 -0
  55. package/src/lib/triggers/subscription-past-due.d.ts.map +1 -0
  56. package/src/lib/triggers/subscription-past-due.js +56 -0
  57. package/src/lib/triggers/subscription-past-due.js.map +1 -0
  58. package/src/lib/triggers/transaction-completed.d.ts +3 -0
  59. package/src/lib/triggers/transaction-completed.d.ts.map +1 -0
  60. package/src/lib/triggers/transaction-completed.js +64 -0
  61. package/src/lib/triggers/transaction-completed.js.map +1 -0
package/package.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@activepieces/piece-paddle",
3
+ "version": "0.0.1",
4
+ "type": "commonjs",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "dependencies": {
8
+ "tslib": "2.6.2",
9
+ "@activepieces/pieces-common": "0.12.1",
10
+ "@activepieces/pieces-framework": "0.26.2",
11
+ "@activepieces/shared": "0.57.0"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc -p tsconfig.lib.json && cp package.json dist/",
15
+ "lint": "eslint 'src/**/*.ts'"
16
+ }
17
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare const paddle: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").SecretTextProperty<true>>;
2
+ export { paddle };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAiBA,QAAA,MAAM,MAAM,mHAoCV,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/src/index.js ADDED
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.paddle = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const shared_1 = require("@activepieces/shared");
8
+ const cancel_subscription_1 = require("./lib/actions/cancel-subscription");
9
+ const create_transaction_1 = require("./lib/actions/create-transaction");
10
+ const get_subscription_1 = require("./lib/actions/get-subscription");
11
+ const list_customers_1 = require("./lib/actions/list-customers");
12
+ const update_subscription_1 = require("./lib/actions/update-subscription");
13
+ const auth_1 = require("./lib/auth");
14
+ const client_1 = require("./lib/common/client");
15
+ const new_active_subscription_1 = require("./lib/triggers/new-active-subscription");
16
+ const payment_failed_1 = require("./lib/triggers/payment-failed");
17
+ const subscription_canceled_1 = require("./lib/triggers/subscription-canceled");
18
+ const subscription_past_due_1 = require("./lib/triggers/subscription-past-due");
19
+ const transaction_completed_1 = require("./lib/triggers/transaction-completed");
20
+ const paddle = (0, pieces_framework_1.createPiece)({
21
+ displayName: 'Paddle',
22
+ description: 'Manage customers, subscriptions, and recurring billing with Paddle Billing.',
23
+ minimumSupportedRelease: '0.36.1',
24
+ logoUrl: 'https://cdn.activepieces.com/pieces/paddle.png',
25
+ categories: [shared_1.PieceCategory.COMMERCE, shared_1.PieceCategory.PAYMENT_PROCESSING],
26
+ authors: ['veri5ied'],
27
+ auth: auth_1.paddleAuth,
28
+ actions: [
29
+ list_customers_1.listCustomersAction,
30
+ get_subscription_1.getSubscriptionAction,
31
+ update_subscription_1.updateSubscriptionAction,
32
+ cancel_subscription_1.cancelSubscriptionAction,
33
+ create_transaction_1.createTransactionAction,
34
+ (0, pieces_common_1.createCustomApiCallAction)({
35
+ auth: auth_1.paddleAuth,
36
+ baseUrl: (auth) => auth
37
+ ? client_1.paddleClient.getBaseUrl({ apiKey: auth.secret_text })
38
+ : client_1.paddleClient.getBaseUrl({ apiKey: '' }),
39
+ authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
40
+ return ({
41
+ Accept: 'application/json',
42
+ Authorization: `Bearer ${auth.secret_text}`,
43
+ 'Content-Type': 'application/json',
44
+ 'Paddle-Version': '1',
45
+ });
46
+ }),
47
+ }),
48
+ ],
49
+ triggers: [
50
+ new_active_subscription_1.newActiveSubscription,
51
+ subscription_canceled_1.subscriptionCanceled,
52
+ subscription_past_due_1.subscriptionPastDue,
53
+ transaction_completed_1.transactionCompleted,
54
+ payment_failed_1.paymentFailed,
55
+ ],
56
+ });
57
+ exports.paddle = paddle;
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAwE;AACxE,qEAA6D;AAC7D,iDAAqD;AAErD,2EAA6E;AAC7E,yEAA2E;AAC3E,qEAAuE;AACvE,iEAAmE;AACnE,2EAA6E;AAC7E,qCAAwC;AACxC,gDAAmD;AACnD,oFAA+E;AAC/E,kEAA8D;AAC9D,gFAA4E;AAC5E,gFAA2E;AAC3E,gFAA4E;AAE5E,MAAM,MAAM,GAAG,IAAA,8BAAW,EAAC;IACzB,WAAW,EAAE,QAAQ;IACrB,WAAW,EACT,6EAA6E;IAC/E,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,gDAAgD;IACzD,UAAU,EAAE,CAAC,sBAAa,CAAC,QAAQ,EAAE,sBAAa,CAAC,kBAAkB,CAAC;IACtE,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,IAAI,EAAE,iBAAU;IAChB,OAAO,EAAE;QACP,oCAAmB;QACnB,wCAAqB;QACrB,8CAAwB;QACxB,8CAAwB;QACxB,4CAAuB;QACvB,IAAA,yCAAyB,EAAC;YACxB,IAAI,EAAE,iBAAU;YAChB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAChB,IAAI;gBACF,CAAC,CAAC,qBAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvD,CAAC,CAAC,qBAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAC7C,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,MAAM,EAAE,kBAAkB;oBAC1B,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;oBAC3C,cAAc,EAAE,kBAAkB;oBAClC,gBAAgB,EAAE,GAAG;iBACtB,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,QAAQ,EAAE;QACR,+CAAqB;QACrB,4CAAoB;QACpB,2CAAmB;QACnB,4CAAoB;QACpB,8BAAa;KACd;CACF,CAAC,CAAC;AAEM,wBAAM"}
@@ -0,0 +1,6 @@
1
+ declare const cancelSubscriptionAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ subscriptionId: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
+ effectiveFrom: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
4
+ }>;
5
+ export { cancelSubscriptionAction };
6
+ //# sourceMappingURL=cancel-subscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel-subscription.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/cancel-subscription.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,wBAAwB;;;EA0C5B,CAAC;AAEH,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cancelSubscriptionAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const auth_1 = require("../auth");
7
+ const client_1 = require("../common/client");
8
+ const props_1 = require("../common/props");
9
+ const utils_1 = require("../common/utils");
10
+ const cancelSubscriptionAction = (0, pieces_framework_1.createAction)({
11
+ auth: auth_1.paddleAuth,
12
+ name: 'cancel-subscription',
13
+ displayName: 'Cancel Subscription',
14
+ description: 'Cancels a Paddle subscription immediately or at the next billing period.',
15
+ props: {
16
+ subscriptionId: props_1.paddleProps.subscription(),
17
+ effectiveFrom: pieces_framework_1.Property.StaticDropdown({
18
+ displayName: 'Effective From',
19
+ description: 'Choose when Paddle should apply the cancellation.',
20
+ required: false,
21
+ options: {
22
+ options: [
23
+ {
24
+ label: 'Immediately',
25
+ value: 'immediately',
26
+ },
27
+ {
28
+ label: 'Next Billing Period',
29
+ value: 'next_billing_period',
30
+ },
31
+ ],
32
+ },
33
+ }),
34
+ },
35
+ run(context) {
36
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
+ const subscriptionId = utils_1.paddleUtils.getRequiredString({
38
+ value: context.propsValue.subscriptionId,
39
+ fieldName: 'Subscription',
40
+ });
41
+ const effectiveFrom = utils_1.paddleUtils.getOptionalString({
42
+ value: context.propsValue.effectiveFrom,
43
+ });
44
+ return client_1.paddleClient.cancelSubscription({
45
+ auth: context.auth,
46
+ subscriptionId,
47
+ request: utils_1.paddleUtils.compactRecord({
48
+ effective_from: effectiveFrom,
49
+ }),
50
+ });
51
+ });
52
+ },
53
+ });
54
+ exports.cancelSubscriptionAction = cancelSubscriptionAction;
55
+ //# sourceMappingURL=cancel-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel-subscription.js","sourceRoot":"","sources":["../../../../src/lib/actions/cancel-subscription.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AAExE,kCAAqC;AACrC,6CAAgD;AAChD,2CAA8C;AAC9C,2CAA8C;AAE9C,MAAM,wBAAwB,GAAG,IAAA,+BAAY,EAAC;IAC5C,IAAI,EAAE,iBAAU;IAChB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,0EAA0E;IACvF,KAAK,EAAE;QACL,cAAc,EAAE,mBAAW,CAAC,YAAY,EAAE;QAC1C,aAAa,EAAE,2BAAQ,CAAC,cAAc,CAAC;YACrC,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,aAAa;wBACpB,KAAK,EAAE,aAAa;qBACrB;oBACD;wBACE,KAAK,EAAE,qBAAqB;wBAC5B,KAAK,EAAE,qBAAqB;qBAC7B;iBACF;aACF;SACF,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,cAAc,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBACnD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc;gBACxC,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBAClD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa;aACxC,CAAC,CAAC;YAEH,OAAO,qBAAY,CAAC,kBAAkB,CAAC;gBACrC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,cAAc;gBACd,OAAO,EAAE,mBAAW,CAAC,aAAa,CAAC;oBACjC,cAAc,EAAE,aAAa;iBAC9B,CAAC;aACH,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC;AAEM,4DAAwB"}
@@ -0,0 +1,9 @@
1
+ declare const createTransactionAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ customerId: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
+ addressId: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ priceId: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
5
+ quantity: import("@activepieces/pieces-framework").NumberProperty<false>;
6
+ customData: import("@activepieces/pieces-framework").JsonProperty<false>;
7
+ }>;
8
+ export { createTransactionAction };
9
+ //# sourceMappingURL=create-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-transaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-transaction.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,uBAAuB;;;;;;EA0D3B,CAAC;AAEH,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTransactionAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const auth_1 = require("../auth");
7
+ const client_1 = require("../common/client");
8
+ const props_1 = require("../common/props");
9
+ const utils_1 = require("../common/utils");
10
+ const createTransactionAction = (0, pieces_framework_1.createAction)({
11
+ auth: auth_1.paddleAuth,
12
+ name: 'create-transaction',
13
+ displayName: 'Create Transaction',
14
+ description: 'Creates a Paddle transaction. When you use recurring prices, completing the transaction starts the subscription.',
15
+ props: {
16
+ customerId: props_1.paddleProps.customer(),
17
+ addressId: props_1.paddleProps.address(),
18
+ priceId: props_1.paddleProps.recurringPrice(),
19
+ quantity: pieces_framework_1.Property.Number({
20
+ displayName: 'Quantity',
21
+ description: 'Optional quantity for the recurring price.',
22
+ required: false,
23
+ }),
24
+ customData: pieces_framework_1.Property.Json({
25
+ displayName: 'Custom Data',
26
+ description: 'Optional JSON object to store on the transaction.',
27
+ required: false,
28
+ }),
29
+ },
30
+ run(context) {
31
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
32
+ const customerId = utils_1.paddleUtils.getRequiredString({
33
+ value: context.propsValue.customerId,
34
+ fieldName: 'Customer',
35
+ });
36
+ const addressId = utils_1.paddleUtils.getRequiredString({
37
+ value: context.propsValue.addressId,
38
+ fieldName: 'Address ID',
39
+ });
40
+ const priceId = utils_1.paddleUtils.getRequiredString({
41
+ value: context.propsValue.priceId,
42
+ fieldName: 'Recurring Price',
43
+ });
44
+ const quantity = utils_1.paddleUtils.getOptionalPositiveInteger({
45
+ value: context.propsValue.quantity,
46
+ fieldName: 'Quantity',
47
+ });
48
+ const customData = utils_1.paddleUtils.getOptionalObject({
49
+ value: context.propsValue.customData,
50
+ fieldName: 'Custom Data',
51
+ });
52
+ return client_1.paddleClient.createTransaction({
53
+ auth: context.auth,
54
+ request: utils_1.paddleUtils.compactRecord({
55
+ address_id: addressId,
56
+ customer_id: customerId,
57
+ custom_data: customData,
58
+ items: [
59
+ utils_1.paddleUtils.compactRecord({
60
+ price_id: priceId,
61
+ quantity,
62
+ }),
63
+ ],
64
+ }),
65
+ });
66
+ });
67
+ },
68
+ });
69
+ exports.createTransactionAction = createTransactionAction;
70
+ //# sourceMappingURL=create-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-transaction.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-transaction.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AAExE,kCAAqC;AACrC,6CAAgD;AAChD,2CAA8C;AAC9C,2CAA8C;AAE9C,MAAM,uBAAuB,GAAG,IAAA,+BAAY,EAAC;IAC3C,IAAI,EAAE,iBAAU;IAChB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,oBAAoB;IACjC,WAAW,EACT,kHAAkH;IACpH,KAAK,EAAE;QACL,UAAU,EAAE,mBAAW,CAAC,QAAQ,EAAE;QAClC,SAAS,EAAE,mBAAW,CAAC,OAAO,EAAE;QAChC,OAAO,EAAE,mBAAW,CAAC,cAAc,EAAE;QACrC,QAAQ,EAAE,2BAAQ,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,IAAI,CAAC;YACxB,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,UAAU,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBAC/C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU;gBACpC,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBAC9C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;gBACnC,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBAC5C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;gBACjC,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,mBAAW,CAAC,0BAA0B,CAAC;gBACtD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;gBAClC,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBAC/C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU;gBACpC,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;YAEH,OAAO,qBAAY,CAAC,iBAAiB,CAAC;gBACpC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,mBAAW,CAAC,aAAa,CAAC;oBACjC,UAAU,EAAE,SAAS;oBACrB,WAAW,EAAE,UAAU;oBACvB,WAAW,EAAE,UAAU;oBACvB,KAAK,EAAE;wBACL,mBAAW,CAAC,aAAa,CAAC;4BACxB,QAAQ,EAAE,OAAO;4BACjB,QAAQ;yBACT,CAAC;qBACH;iBACF,CAAC;aACH,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC;AAEM,0DAAuB"}
@@ -0,0 +1,5 @@
1
+ declare const getSubscriptionAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ subscriptionId: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
+ }>;
4
+ export { getSubscriptionAction };
5
+ //# sourceMappingURL=get-subscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-subscription.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/get-subscription.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,qBAAqB;;EAmBzB,CAAC;AAEH,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSubscriptionAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const auth_1 = require("../auth");
7
+ const client_1 = require("../common/client");
8
+ const props_1 = require("../common/props");
9
+ const utils_1 = require("../common/utils");
10
+ const getSubscriptionAction = (0, pieces_framework_1.createAction)({
11
+ auth: auth_1.paddleAuth,
12
+ name: 'get-subscription',
13
+ displayName: 'Get Subscription',
14
+ description: 'Retrieves a Paddle subscription by ID.',
15
+ props: {
16
+ subscriptionId: props_1.paddleProps.subscription(),
17
+ },
18
+ run(context) {
19
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
20
+ const subscriptionId = utils_1.paddleUtils.getRequiredString({
21
+ value: context.propsValue.subscriptionId,
22
+ fieldName: 'Subscription',
23
+ });
24
+ return client_1.paddleClient.getSubscription({
25
+ auth: context.auth,
26
+ subscriptionId,
27
+ });
28
+ });
29
+ },
30
+ });
31
+ exports.getSubscriptionAction = getSubscriptionAction;
32
+ //# sourceMappingURL=get-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-subscription.js","sourceRoot":"","sources":["../../../../src/lib/actions/get-subscription.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAE9D,kCAAqC;AACrC,6CAAgD;AAChD,2CAA8C;AAC9C,2CAA8C;AAE9C,MAAM,qBAAqB,GAAG,IAAA,+BAAY,EAAC;IACzC,IAAI,EAAE,iBAAU;IAChB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,wCAAwC;IACrD,KAAK,EAAE;QACL,cAAc,EAAE,mBAAW,CAAC,YAAY,EAAE;KAC3C;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,cAAc,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBACnD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc;gBACxC,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YAEH,OAAO,qBAAY,CAAC,eAAe,CAAC;gBAClC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,cAAc;aACf,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC;AAEM,sDAAqB"}
@@ -0,0 +1,7 @@
1
+ declare const listCustomersAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ email: import("@activepieces/pieces-framework").ShortTextProperty<false>;
3
+ status: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
4
+ limit: import("@activepieces/pieces-framework").NumberProperty<false>;
5
+ }>;
6
+ export { listCustomersAction };
7
+ //# sourceMappingURL=list-customers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-customers.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/list-customers.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,mBAAmB;;;;EAyDvB,CAAC;AAoBH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listCustomersAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const auth_1 = require("../auth");
7
+ const client_1 = require("../common/client");
8
+ const utils_1 = require("../common/utils");
9
+ const listCustomersAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.paddleAuth,
11
+ name: 'list-customers',
12
+ displayName: 'List Customers',
13
+ description: 'Lists customers from your Paddle account.',
14
+ props: {
15
+ email: pieces_framework_1.Property.ShortText({
16
+ displayName: 'Email',
17
+ description: 'Optionally filter customers by exact email address.',
18
+ required: false,
19
+ }),
20
+ status: pieces_framework_1.Property.StaticDropdown({
21
+ displayName: 'Status',
22
+ description: 'Optionally filter customers by status.',
23
+ required: false,
24
+ options: {
25
+ options: [
26
+ {
27
+ label: 'Active',
28
+ value: 'active',
29
+ },
30
+ {
31
+ label: 'Archived',
32
+ value: 'archived',
33
+ },
34
+ ],
35
+ },
36
+ }),
37
+ limit: pieces_framework_1.Property.Number({
38
+ displayName: 'Limit',
39
+ description: 'Maximum number of customers to return.',
40
+ required: false,
41
+ }),
42
+ },
43
+ run(context) {
44
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
45
+ var _a;
46
+ const email = utils_1.paddleUtils.getOptionalString({
47
+ value: context.propsValue.email,
48
+ });
49
+ const statusValue = utils_1.paddleUtils.getOptionalString({
50
+ value: context.propsValue.status,
51
+ });
52
+ const limit = (_a = utils_1.paddleUtils.getOptionalPositiveInteger({
53
+ value: context.propsValue.limit,
54
+ fieldName: 'Limit',
55
+ })) !== null && _a !== void 0 ? _a : DEFAULT_LIMIT;
56
+ const status = getCustomerStatus({
57
+ statusValue,
58
+ });
59
+ return client_1.paddleClient.listCustomers(Object.assign({ auth: context.auth, email,
60
+ limit }, (status ? { status } : {})));
61
+ });
62
+ },
63
+ });
64
+ exports.listCustomersAction = listCustomersAction;
65
+ function getCustomerStatus({ statusValue, }) {
66
+ if (!statusValue) {
67
+ return undefined;
68
+ }
69
+ if (statusValue === 'active' || statusValue === 'archived') {
70
+ return statusValue;
71
+ }
72
+ throw new Error('Status must be active or archived.');
73
+ }
74
+ const DEFAULT_LIMIT = 100;
75
+ //# sourceMappingURL=list-customers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-customers.js","sourceRoot":"","sources":["../../../../src/lib/actions/list-customers.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AAExE,kCAAqC;AACrC,6CAAgD;AAChD,2CAA8C;AAE9C,MAAM,mBAAmB,GAAG,IAAA,+BAAY,EAAC;IACvC,IAAI,EAAE,iBAAU;IAChB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,2CAA2C;IACxD,KAAK,EAAE;QACL,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAC9B,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,QAAQ;wBACf,KAAK,EAAE,QAAQ;qBAChB;oBACD;wBACE,KAAK,EAAE,UAAU;wBACjB,KAAK,EAAE,UAAU;qBAClB;iBACF;aACF;SACF,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,MAAM,CAAC;YACrB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,KAAK,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBAC1C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK;aAChC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBAChD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;aACjC,CAAC,CAAC;YACH,MAAM,KAAK,GACT,MAAA,mBAAW,CAAC,0BAA0B,CAAC;gBACrC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK;gBAC/B,SAAS,EAAE,OAAO;aACnB,CAAC,mCAAI,aAAa,CAAC;YACtB,MAAM,MAAM,GAAG,iBAAiB,CAAC;gBAC/B,WAAW;aACZ,CAAC,CAAC;YAEH,OAAO,qBAAY,CAAC,aAAa,iBAC/B,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,KAAK;gBACL,KAAK,IACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC7B,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC;AAoBM,kDAAmB;AAlB5B,SAAS,iBAAiB,CAAC,EACzB,WAAW,GAGZ;IACC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC3D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,aAAa,GAAG,GAAG,CAAC"}
@@ -0,0 +1,9 @@
1
+ declare const updateSubscriptionAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ subscriptionId: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
+ priceId: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ quantity: import("@activepieces/pieces-framework").NumberProperty<false>;
5
+ prorationBillingMode: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
6
+ customData: import("@activepieces/pieces-framework").JsonProperty<false>;
7
+ }>;
8
+ export { updateSubscriptionAction };
9
+ //# sourceMappingURL=update-subscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-subscription.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/update-subscription.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,wBAAwB;;;;;;EA4E5B,CAAC;AAEH,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateSubscriptionAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const auth_1 = require("../auth");
7
+ const client_1 = require("../common/client");
8
+ const props_1 = require("../common/props");
9
+ const utils_1 = require("../common/utils");
10
+ const updateSubscriptionAction = (0, pieces_framework_1.createAction)({
11
+ auth: auth_1.paddleAuth,
12
+ name: 'update-subscription',
13
+ displayName: 'Update Subscription',
14
+ description: 'Updates a Paddle subscription. Send the full recurring item list you want the subscription to keep.',
15
+ props: {
16
+ subscriptionId: props_1.paddleProps.subscription(),
17
+ priceId: props_1.paddleProps.recurringPrice(),
18
+ quantity: pieces_framework_1.Property.Number({
19
+ displayName: 'Quantity',
20
+ description: 'Optional quantity for the recurring price.',
21
+ required: false,
22
+ }),
23
+ prorationBillingMode: pieces_framework_1.Property.StaticDropdown({
24
+ displayName: 'Proration Billing Mode',
25
+ description: 'How Paddle should bill for the subscription change.',
26
+ required: false,
27
+ options: {
28
+ options: [
29
+ {
30
+ label: 'Prorated Immediately',
31
+ value: 'prorated_immediately',
32
+ },
33
+ {
34
+ label: 'Full Immediately',
35
+ value: 'full_immediately',
36
+ },
37
+ {
38
+ label: 'Prorated Next Billing Period',
39
+ value: 'prorated_next_billing_period',
40
+ },
41
+ {
42
+ label: 'Full Next Billing Period',
43
+ value: 'full_next_billing_period',
44
+ },
45
+ {
46
+ label: 'Do Not Bill',
47
+ value: 'do_not_bill',
48
+ },
49
+ ],
50
+ },
51
+ }),
52
+ customData: pieces_framework_1.Property.Json({
53
+ displayName: 'Custom Data',
54
+ description: 'Optional JSON object to store on the subscription.',
55
+ required: false,
56
+ }),
57
+ },
58
+ run(context) {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
+ const subscriptionId = utils_1.paddleUtils.getRequiredString({
61
+ value: context.propsValue.subscriptionId,
62
+ fieldName: 'Subscription',
63
+ });
64
+ const items = {
65
+ price_id: context.propsValue.priceId,
66
+ quantity: context.propsValue.quantity,
67
+ };
68
+ const prorationBillingMode = utils_1.paddleUtils.getOptionalString({
69
+ value: context.propsValue.prorationBillingMode,
70
+ });
71
+ const customData = utils_1.paddleUtils.getOptionalObject({
72
+ value: context.propsValue.customData,
73
+ fieldName: 'Custom Data',
74
+ });
75
+ return client_1.paddleClient.updateSubscription({
76
+ auth: context.auth,
77
+ subscriptionId,
78
+ request: utils_1.paddleUtils.compactRecord({
79
+ custom_data: customData,
80
+ items,
81
+ proration_billing_mode: prorationBillingMode,
82
+ }),
83
+ });
84
+ });
85
+ },
86
+ });
87
+ exports.updateSubscriptionAction = updateSubscriptionAction;
88
+ //# sourceMappingURL=update-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-subscription.js","sourceRoot":"","sources":["../../../../src/lib/actions/update-subscription.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AAExE,kCAAqC;AACrC,6CAAgD;AAChD,2CAA8C;AAC9C,2CAA8C;AAE9C,MAAM,wBAAwB,GAAG,IAAA,+BAAY,EAAC;IAC5C,IAAI,EAAE,iBAAU;IAChB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EACT,qGAAqG;IACvG,KAAK,EAAE;QACL,cAAc,EAAE,mBAAW,CAAC,YAAY,EAAE;QAC1C,OAAO,EAAE,mBAAW,CAAC,cAAc,EAAE;QACrC,QAAQ,EAAE,2BAAQ,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,oBAAoB,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAC5C,WAAW,EAAE,wBAAwB;YACrC,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,sBAAsB;wBAC7B,KAAK,EAAE,sBAAsB;qBAC9B;oBACD;wBACE,KAAK,EAAE,kBAAkB;wBACzB,KAAK,EAAE,kBAAkB;qBAC1B;oBACD;wBACE,KAAK,EAAE,8BAA8B;wBACrC,KAAK,EAAE,8BAA8B;qBACtC;oBACD;wBACE,KAAK,EAAE,0BAA0B;wBACjC,KAAK,EAAE,0BAA0B;qBAClC;oBACD;wBACE,KAAK,EAAE,aAAa;wBACpB,KAAK,EAAE,aAAa;qBACrB;iBACF;aACF;SACF,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,IAAI,CAAC;YACxB,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,cAAc,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBACnD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc;gBACxC,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YACH,MAAM,KAAK,GAAG;gBACZ,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;gBACpC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;aACtC,CAAC;YACF,MAAM,oBAAoB,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBACzD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB;aAC/C,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,mBAAW,CAAC,iBAAiB,CAAC;gBAC/C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU;gBACpC,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;YAEH,OAAO,qBAAY,CAAC,kBAAkB,CAAC;gBACrC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,cAAc;gBACd,OAAO,EAAE,mBAAW,CAAC,aAAa,CAAC;oBACjC,WAAW,EAAE,UAAU;oBACvB,KAAK;oBACL,sBAAsB,EAAE,oBAAoB;iBAC7C,CAAC;aACH,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC;AAEM,4DAAwB"}
@@ -0,0 +1,6 @@
1
+ import { AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
2
+ declare const paddleAuth: import("@activepieces/pieces-framework").SecretTextProperty<true>;
3
+ type PaddleAuthType = AppConnectionValueForAuthProperty<typeof paddleAuth>;
4
+ export { paddleAuth };
5
+ export type { PaddleAuthType };
6
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EAElC,MAAM,gCAAgC,CAAC;AAKxC,QAAA,MAAM,UAAU,mEA0Bd,CAAC;AAEH,KAAK,cAAc,GAAG,iCAAiC,CAAC,OAAO,UAAU,CAAC,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.paddleAuth = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const shared_1 = require("@activepieces/shared");
7
+ const client_1 = require("./common/client");
8
+ const paddleAuth = pieces_framework_1.PieceAuth.SecretText({
9
+ displayName: 'API Key',
10
+ description: `Authenticate with a Paddle API key.
11
+
12
+ Live and sandbox keys are supported automatically.
13
+
14
+ You can create API keys from **Developer Tools > Authentication** in the Paddle dashboard.`,
15
+ required: true,
16
+ validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
17
+ const { error } = yield (0, shared_1.tryCatch)(() => client_1.paddleClient.validateAuth({
18
+ apiKey: auth,
19
+ }));
20
+ if (error) {
21
+ return {
22
+ valid: false,
23
+ error: 'Invalid API key. Check the key and try again.',
24
+ };
25
+ }
26
+ return {
27
+ valid: true,
28
+ };
29
+ }),
30
+ });
31
+ exports.paddleAuth = paddleAuth;
32
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":";;;;AAAA,qEAGwC;AACxC,iDAAgD;AAEhD,4CAA+C;AAE/C,MAAM,UAAU,GAAG,4BAAS,CAAC,UAAU,CAAC;IACtC,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE;;;;2FAI4E;IACzF,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,iBAAQ,EAAC,GAAG,EAAE,CACpC,qBAAY,CAAC,YAAY,CAAC;YACxB,MAAM,EAAE,IAAI;SACb,CAAC,CACH,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,+CAA+C;aACvD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC;AAIM,gCAAU"}