@klingis/sdk 0.0.0 → 0.2.0

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 (107) hide show
  1. package/dist/generated/billing-portal/billing-portal.d.ts +93 -0
  2. package/dist/generated/billing-portal/billing-portal.d.ts.map +1 -0
  3. package/dist/generated/billing-portal/billing-portal.js +21 -0
  4. package/dist/generated/billing-portal/billing-portal.js.map +1 -0
  5. package/dist/generated/checkout-sessions/checkout-sessions.d.ts +105 -0
  6. package/dist/generated/checkout-sessions/checkout-sessions.d.ts.map +1 -0
  7. package/dist/generated/checkout-sessions/checkout-sessions.js +21 -0
  8. package/dist/generated/checkout-sessions/checkout-sessions.js.map +1 -0
  9. package/dist/generated/claims/claims.d.ts +258 -0
  10. package/dist/generated/claims/claims.d.ts.map +1 -0
  11. package/dist/generated/claims/claims.js +56 -0
  12. package/dist/generated/claims/claims.js.map +1 -0
  13. package/dist/generated/coupons/coupons.d.ts +198 -0
  14. package/dist/generated/coupons/coupons.d.ts.map +1 -0
  15. package/dist/generated/coupons/coupons.js +57 -0
  16. package/dist/generated/coupons/coupons.js.map +1 -0
  17. package/dist/generated/customers/customers.d.ts +234 -0
  18. package/dist/generated/customers/customers.d.ts.map +1 -0
  19. package/dist/generated/customers/customers.js +57 -0
  20. package/dist/generated/customers/customers.js.map +1 -0
  21. package/dist/generated/device-auth/device-auth.d.ts +45 -0
  22. package/dist/generated/device-auth/device-auth.d.ts.map +1 -0
  23. package/dist/generated/device-auth/device-auth.js +30 -0
  24. package/dist/generated/device-auth/device-auth.js.map +1 -0
  25. package/dist/generated/events/events.d.ts +23 -0
  26. package/dist/generated/events/events.d.ts.map +1 -0
  27. package/dist/generated/events/events.js +19 -0
  28. package/dist/generated/events/events.js.map +1 -0
  29. package/dist/generated/health/health.d.ts +30 -0
  30. package/dist/generated/health/health.d.ts.map +1 -0
  31. package/dist/generated/health/health.js +12 -0
  32. package/dist/generated/health/health.js.map +1 -0
  33. package/dist/generated/index.d.ts +23 -0
  34. package/dist/generated/index.d.ts.map +1 -0
  35. package/dist/generated/index.js +26 -0
  36. package/dist/generated/index.js.map +1 -0
  37. package/dist/generated/klingAPI.schemas.d.ts +17901 -0
  38. package/dist/generated/klingAPI.schemas.d.ts.map +1 -0
  39. package/dist/generated/klingAPI.schemas.js +2 -0
  40. package/dist/generated/klingAPI.schemas.js.map +1 -0
  41. package/dist/generated/merchant/merchant.d.ts +65 -0
  42. package/dist/generated/merchant/merchant.d.ts.map +1 -0
  43. package/dist/generated/merchant/merchant.js +44 -0
  44. package/dist/generated/merchant/merchant.js.map +1 -0
  45. package/dist/generated/meta/meta.d.ts +30 -0
  46. package/dist/generated/meta/meta.d.ts.map +1 -0
  47. package/dist/generated/meta/meta.js +12 -0
  48. package/dist/generated/meta/meta.js.map +1 -0
  49. package/dist/generated/notification-channels/notification-channels.d.ts +255 -0
  50. package/dist/generated/notification-channels/notification-channels.d.ts.map +1 -0
  51. package/dist/generated/notification-channels/notification-channels.js +83 -0
  52. package/dist/generated/notification-channels/notification-channels.js.map +1 -0
  53. package/dist/generated/payment-intents/payment-intents.d.ts +306 -0
  54. package/dist/generated/payment-intents/payment-intents.d.ts.map +1 -0
  55. package/dist/generated/payment-intents/payment-intents.js +76 -0
  56. package/dist/generated/payment-intents/payment-intents.js.map +1 -0
  57. package/dist/generated/payment-links/payment-links.d.ts +258 -0
  58. package/dist/generated/payment-links/payment-links.d.ts.map +1 -0
  59. package/dist/generated/payment-links/payment-links.js +75 -0
  60. package/dist/generated/payment-links/payment-links.js.map +1 -0
  61. package/dist/generated/payment-methods/payment-methods.d.ts +189 -0
  62. package/dist/generated/payment-methods/payment-methods.d.ts.map +1 -0
  63. package/dist/generated/payment-methods/payment-methods.js +40 -0
  64. package/dist/generated/payment-methods/payment-methods.js.map +1 -0
  65. package/dist/generated/pos-devices/pos-devices.d.ts +129 -0
  66. package/dist/generated/pos-devices/pos-devices.d.ts.map +1 -0
  67. package/dist/generated/pos-devices/pos-devices.js +30 -0
  68. package/dist/generated/pos-devices/pos-devices.js.map +1 -0
  69. package/dist/generated/products/products.d.ts +222 -0
  70. package/dist/generated/products/products.d.ts.map +1 -0
  71. package/dist/generated/products/products.js +57 -0
  72. package/dist/generated/products/products.js.map +1 -0
  73. package/dist/generated/promotion-codes/promotion-codes.d.ts +198 -0
  74. package/dist/generated/promotion-codes/promotion-codes.d.ts.map +1 -0
  75. package/dist/generated/promotion-codes/promotion-codes.js +58 -0
  76. package/dist/generated/promotion-codes/promotion-codes.js.map +1 -0
  77. package/dist/generated/reports/reports.d.ts +100 -0
  78. package/dist/generated/reports/reports.d.ts.map +1 -0
  79. package/dist/generated/reports/reports.js +107 -0
  80. package/dist/generated/reports/reports.js.map +1 -0
  81. package/dist/generated/subscriptions/subscriptions.d.ts +309 -0
  82. package/dist/generated/subscriptions/subscriptions.d.ts.map +1 -0
  83. package/dist/generated/subscriptions/subscriptions.js +75 -0
  84. package/dist/generated/subscriptions/subscriptions.js.map +1 -0
  85. package/dist/generated/terminal/terminal.d.ts +168 -0
  86. package/dist/generated/terminal/terminal.d.ts.map +1 -0
  87. package/dist/generated/terminal/terminal.js +32 -0
  88. package/dist/generated/terminal/terminal.js.map +1 -0
  89. package/dist/generated/testing/testing.d.ts +81 -0
  90. package/dist/generated/testing/testing.d.ts.map +1 -0
  91. package/dist/generated/testing/testing.js +12 -0
  92. package/dist/generated/testing/testing.js.map +1 -0
  93. package/dist/index.d.ts +3 -97
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +4 -393
  96. package/dist/index.js.map +1 -1
  97. package/dist/mutator.d.ts +8 -0
  98. package/dist/mutator.d.ts.map +1 -0
  99. package/dist/mutator.js +24 -0
  100. package/dist/mutator.js.map +1 -0
  101. package/package.json +14 -13
  102. package/README.md +0 -62
  103. package/dist/index.cjs +0 -394
  104. package/dist/index.cjs.map +0 -1
  105. package/dist/index.d.cts +0 -97
  106. package/dist/kling.min.js +0 -395
  107. package/dist/kling.min.js.map +0 -1
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Generated by orval v7.21.0 🍺
3
+ * Do not edit manually.
4
+ * Kling API
5
+ * Payments and subscriptions platform for Iceland.
6
+ * OpenAPI spec version: 1.0.0
7
+ */
8
+ import type { PostV1TestSubscriptionsByIdAdvanceBilling200One, PostV1TestSubscriptionsByIdAdvanceBilling200Three, PostV1TestSubscriptionsByIdAdvanceBilling200Two, PostV1TestSubscriptionsByIdAdvanceBilling400One, PostV1TestSubscriptionsByIdAdvanceBilling400Three, PostV1TestSubscriptionsByIdAdvanceBilling400Two, PostV1TestSubscriptionsByIdAdvanceBilling403One, PostV1TestSubscriptionsByIdAdvanceBilling403Three, PostV1TestSubscriptionsByIdAdvanceBilling403Two, PostV1TestSubscriptionsByIdAdvanceBilling404One, PostV1TestSubscriptionsByIdAdvanceBilling404Three, PostV1TestSubscriptionsByIdAdvanceBilling404Two, PostV1TestSubscriptionsByIdAdvanceBilling409One, PostV1TestSubscriptionsByIdAdvanceBilling409Three, PostV1TestSubscriptionsByIdAdvanceBilling409Two, PostV1TestSubscriptionsByIdAdvanceBillingBodyOne, PostV1TestSubscriptionsByIdAdvanceBillingBodyThree, PostV1TestSubscriptionsByIdAdvanceBillingBodyTwo } from '../klingAPI.schemas';
9
+ /**
10
+ * Advance a subscription's billing cycle immediately (test mode only, sk_test_ keys). Runs the real billing job off-schedule: creates a real payment intent, charges the saved payment method via the test-mode connector, and emits the same ledger/webhook events as a scheduled renewal. `to=next_period_end` runs one billing step (a renewal when active, the next dunning retry when past_due); `to=past_due` expects the renewal charge to fail; `to=canceled_nonpayment` keeps running dunning retries until the subscription cancels. Failure targets return 409 `advance_target_not_reached` if a charge unexpectedly succeeds — the executed billing steps are real and are NOT rolled back.
11
+ */
12
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse200ApplicationJson = {
13
+ data: PostV1TestSubscriptionsByIdAdvanceBilling200One;
14
+ status: 200;
15
+ };
16
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse200MultipartFormData = {
17
+ data: PostV1TestSubscriptionsByIdAdvanceBilling200Two;
18
+ status: 200;
19
+ };
20
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse200TextPlain = {
21
+ data: PostV1TestSubscriptionsByIdAdvanceBilling200Three;
22
+ status: 200;
23
+ };
24
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse400ApplicationJson = {
25
+ data: PostV1TestSubscriptionsByIdAdvanceBilling400One;
26
+ status: 400;
27
+ };
28
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse400MultipartFormData = {
29
+ data: PostV1TestSubscriptionsByIdAdvanceBilling400Two;
30
+ status: 400;
31
+ };
32
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse400TextPlain = {
33
+ data: PostV1TestSubscriptionsByIdAdvanceBilling400Three;
34
+ status: 400;
35
+ };
36
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse403ApplicationJson = {
37
+ data: PostV1TestSubscriptionsByIdAdvanceBilling403One;
38
+ status: 403;
39
+ };
40
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse403MultipartFormData = {
41
+ data: PostV1TestSubscriptionsByIdAdvanceBilling403Two;
42
+ status: 403;
43
+ };
44
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse403TextPlain = {
45
+ data: PostV1TestSubscriptionsByIdAdvanceBilling403Three;
46
+ status: 403;
47
+ };
48
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse404ApplicationJson = {
49
+ data: PostV1TestSubscriptionsByIdAdvanceBilling404One;
50
+ status: 404;
51
+ };
52
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse404MultipartFormData = {
53
+ data: PostV1TestSubscriptionsByIdAdvanceBilling404Two;
54
+ status: 404;
55
+ };
56
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse404TextPlain = {
57
+ data: PostV1TestSubscriptionsByIdAdvanceBilling404Three;
58
+ status: 404;
59
+ };
60
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse409ApplicationJson = {
61
+ data: PostV1TestSubscriptionsByIdAdvanceBilling409One;
62
+ status: 409;
63
+ };
64
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse409MultipartFormData = {
65
+ data: PostV1TestSubscriptionsByIdAdvanceBilling409Two;
66
+ status: 409;
67
+ };
68
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse409TextPlain = {
69
+ data: PostV1TestSubscriptionsByIdAdvanceBilling409Three;
70
+ status: 409;
71
+ };
72
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponseSuccess = (postV1TestSubscriptionsByIdAdvanceBillingResponse200ApplicationJson | postV1TestSubscriptionsByIdAdvanceBillingResponse200MultipartFormData | postV1TestSubscriptionsByIdAdvanceBillingResponse200TextPlain) & {
73
+ headers: Headers;
74
+ };
75
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponseError = (postV1TestSubscriptionsByIdAdvanceBillingResponse400ApplicationJson | postV1TestSubscriptionsByIdAdvanceBillingResponse400MultipartFormData | postV1TestSubscriptionsByIdAdvanceBillingResponse400TextPlain | postV1TestSubscriptionsByIdAdvanceBillingResponse403ApplicationJson | postV1TestSubscriptionsByIdAdvanceBillingResponse403MultipartFormData | postV1TestSubscriptionsByIdAdvanceBillingResponse403TextPlain | postV1TestSubscriptionsByIdAdvanceBillingResponse404ApplicationJson | postV1TestSubscriptionsByIdAdvanceBillingResponse404MultipartFormData | postV1TestSubscriptionsByIdAdvanceBillingResponse404TextPlain | postV1TestSubscriptionsByIdAdvanceBillingResponse409ApplicationJson | postV1TestSubscriptionsByIdAdvanceBillingResponse409MultipartFormData | postV1TestSubscriptionsByIdAdvanceBillingResponse409TextPlain) & {
76
+ headers: Headers;
77
+ };
78
+ export type postV1TestSubscriptionsByIdAdvanceBillingResponse = (postV1TestSubscriptionsByIdAdvanceBillingResponseSuccess | postV1TestSubscriptionsByIdAdvanceBillingResponseError);
79
+ export declare const getPostV1TestSubscriptionsByIdAdvanceBillingUrl: (id: string) => string;
80
+ export declare const postV1TestSubscriptionsByIdAdvanceBilling: (id: string, postV1TestSubscriptionsByIdAdvanceBillingBody: PostV1TestSubscriptionsByIdAdvanceBillingBodyOne | PostV1TestSubscriptionsByIdAdvanceBillingBodyTwo | PostV1TestSubscriptionsByIdAdvanceBillingBodyThree, options?: RequestInit) => Promise<postV1TestSubscriptionsByIdAdvanceBillingResponse>;
81
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/generated/testing/testing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { customFetch } from '../../mutator';
2
+ export const getPostV1TestSubscriptionsByIdAdvanceBillingUrl = (id) => {
3
+ return `http://localhost:3001/v1/test/subscriptions/${id}/advance-billing`;
4
+ };
5
+ export const postV1TestSubscriptionsByIdAdvanceBilling = async (id, postV1TestSubscriptionsByIdAdvanceBillingBody, options) => {
6
+ return customFetch(getPostV1TestSubscriptionsByIdAdvanceBillingUrl(id), {
7
+ ...options,
8
+ method: 'POST',
9
+ body: JSON.stringify(postV1TestSubscriptionsByIdAdvanceBillingBody)
10
+ });
11
+ };
12
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../src/generated/testing/testing.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAyF5C,MAAM,CAAC,MAAM,+CAA+C,GAAG,CAAC,EAAU,EAAG,EAAE;IAK7E,OAAO,+CAA+C,EAAE,kBAAkB,CAAA;AAC5E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yCAAyC,GAAG,KAAK,EAAE,EAAU,EACtE,6CAAuM,EAAE,OAAqB,EAA8D,EAAE;IAEhS,OAAO,WAAW,CAAoD,+CAA+C,CAAC,EAAE,CAAC,EACzH;QACE,GAAG,OAAO;QACV,MAAM,EAAE,MAAM;QAEd,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,6CAA6C,CAAE;KAClD,CACF,CAAC;AAAA,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,97 +1,3 @@
1
- /**
2
- * Kling SDK Types
3
- */
4
- interface KlingInitOptions {
5
- /**
6
- * Override the API base URL (defaults to production)
7
- */
8
- apiUrl?: string;
9
- /**
10
- * Override the web app base URL for checkout (defaults to production)
11
- * Use this for local testing: `baseUrl: 'http://localhost:3000'`
12
- */
13
- baseUrl?: string;
14
- /**
15
- * Locale for checkout UI
16
- */
17
- locale?: "is" | "en";
18
- }
19
- interface CheckoutOptions {
20
- /**
21
- * Checkout Session ID (created via API)
22
- */
23
- sessionId: string;
24
- /**
25
- * Callback fired on successful payment
26
- */
27
- onSuccess?: (result: CheckoutSuccessResult) => void;
28
- /**
29
- * Callback fired on payment error/decline
30
- */
31
- onError?: (error: CheckoutError) => void;
32
- /**
33
- * Callback fired when user cancels checkout
34
- */
35
- onCancel?: () => void;
36
- }
37
- interface CheckoutSuccessResult {
38
- paymentIntentId: string;
39
- paymentMethodId?: string;
40
- }
41
- interface CheckoutError {
42
- code: string;
43
- message: string;
44
- }
45
- type CheckoutStatus = "success" | "error" | "canceled";
46
- interface CheckoutResult {
47
- status: CheckoutStatus;
48
- success: boolean;
49
- paymentIntentId?: string;
50
- paymentMethodId?: string;
51
- error?: CheckoutError;
52
- canceled?: boolean;
53
- }
54
- interface CheckoutController {
55
- /**
56
- * Promise that resolves when checkout completes
57
- */
58
- then: Promise<CheckoutResult>["then"];
59
- catch: Promise<CheckoutResult>["catch"];
60
- finally: Promise<CheckoutResult>["finally"];
61
- /**
62
- * Programmatically close the checkout overlay
63
- */
64
- close: () => void;
65
- }
66
-
67
- declare class Kling {
68
- private apiUrl;
69
- private payUrl;
70
- private locale;
71
- private currentOverlay;
72
- private constructor();
73
- /**
74
- * Initialize the Kling SDK
75
- */
76
- static init(options?: KlingInitOptions): Kling;
77
- /**
78
- * Open checkout overlay
79
- */
80
- checkout(options: CheckoutOptions): CheckoutController;
81
- /**
82
- * Build the embed URL for the checkout iframe
83
- */
84
- private buildEmbedUrl;
85
- /**
86
- * Detect user's locale from browser
87
- */
88
- private detectLocale;
89
- /**
90
- * Preload checkout assets for faster opening
91
- */
92
- preload(options: {
93
- sessionId: string;
94
- }): void;
95
- }
96
-
97
- export { type CheckoutController, type CheckoutError, type CheckoutOptions, type CheckoutResult, type CheckoutStatus, type CheckoutSuccessResult, Kling, type KlingInitOptions, Kling as default };
1
+ export * from "./generated/index.js";
2
+ export { configure, type FetchConfig } from "./mutator.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,394 +1,5 @@
1
- var c=`
2
- * {
3
- box-sizing: border-box;
4
- }
5
-
6
- .kling-overlay {
7
- position: fixed;
8
- inset: 0;
9
- z-index: 2147483647;
10
- display: flex;
11
- align-items: center;
12
- justify-content: center;
13
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
14
- }
15
-
16
- .kling-backdrop {
17
- position: absolute;
18
- inset: 0;
19
- background: rgba(0, 0, 0, 0.5);
20
- backdrop-filter: blur(4px);
21
- animation: kling-fade-in 0.2s ease-out;
22
- }
23
-
24
- .kling-modal-wrapper {
25
- position: relative;
26
- margin: 16px;
27
- animation: kling-slide-up 0.3s ease-out;
28
- }
29
-
30
- .kling-modal {
31
- position: relative;
32
- width: min(400px, calc(100vw - 32px));
33
- min-height: 300px;
34
- max-height: 90vh;
35
- background: white;
36
- border-radius: 16px;
37
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
38
- overflow: hidden;
39
- }
40
-
41
- .kling-modal-wrapper-mobile {
42
- position: fixed;
43
- bottom: 0;
44
- left: 0;
45
- right: 0;
46
- margin: 0;
47
- animation: kling-slide-up-mobile 0.3s ease-out;
48
- }
49
-
50
- .kling-modal-wrapper-mobile .kling-modal {
51
- width: 100%;
52
- max-width: 100%;
53
- max-height: 95vh;
54
- border-radius: 16px 16px 0 0;
55
- }
56
-
57
- .kling-modal-wrapper-mobile .kling-close-button {
58
- top: -40px;
59
- right: 12px;
60
- }
61
-
62
- .kling-close-button {
63
- position: absolute;
64
- top: -12px;
65
- right: -12px;
66
- width: 32px;
67
- height: 32px;
68
- border: none;
69
- background: rgba(255, 255, 255, 0.9);
70
- border-radius: 50%;
71
- cursor: pointer;
72
- display: flex;
73
- align-items: center;
74
- justify-content: center;
75
- transition: background 0.15s;
76
- z-index: 10;
77
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
78
- }
79
-
80
- .kling-close-button:hover {
81
- background: rgba(255, 255, 255, 1);
82
- }
83
-
84
- .kling-close-button svg {
85
- width: 16px;
86
- height: 16px;
87
- color: #374151;
88
- }
89
-
90
- .kling-iframe {
91
- width: 100%;
92
- height: 0;
93
- border: none;
94
- display: block;
95
- opacity: 0;
96
- transition: opacity 0.15s ease-out, height 0.2s ease-out;
97
- }
98
-
99
- .kling-iframe.loaded {
100
- opacity: 1;
101
- max-height: calc(90vh - 32px);
102
- }
103
-
104
- .kling-modal-mobile .kling-iframe {
105
- height: calc(95vh - 32px);
106
- max-height: calc(95vh - 32px);
107
- }
108
-
109
- .kling-loading {
110
- display: flex;
111
- flex-direction: column;
112
- align-items: center;
113
- justify-content: center;
114
- height: 300px;
115
- max-height: 400px;
116
- gap: 16px;
117
- }
118
-
119
- .kling-spinner {
120
- width: 32px;
121
- height: 32px;
122
- border: 3px solid #e2e8f0;
123
- border-top-color: #6366f1;
124
- border-radius: 50%;
125
- animation: kling-spin 0.8s linear infinite;
126
- }
127
-
128
- .kling-loading-text {
129
- color: #64748b;
130
- font-size: 14px;
131
- }
132
-
133
- @keyframes kling-fade-in {
134
- from { opacity: 0; }
135
- to { opacity: 1; }
136
- }
137
-
138
- @keyframes kling-slide-up {
139
- from {
140
- opacity: 0;
141
- transform: translateY(20px) scale(0.98);
142
- }
143
- to {
144
- opacity: 1;
145
- transform: translateY(0) scale(1);
146
- }
147
- }
148
-
149
- @keyframes kling-slide-up-mobile {
150
- from {
151
- transform: translateY(100%);
152
- }
153
- to {
154
- transform: translateY(0);
155
- }
156
- }
157
-
158
- @keyframes kling-spin {
159
- to { transform: rotate(360deg); }
160
- }
161
-
162
- /* Success state */
163
- .kling-success {
164
- display: flex;
165
- flex-direction: column;
166
- align-items: center;
167
- justify-content: center;
168
- padding: 48px 32px;
169
- text-align: center;
170
- }
171
-
172
- .kling-success-icon {
173
- width: 64px;
174
- height: 64px;
175
- border-radius: 50%;
176
- background: linear-gradient(135deg, #10b981 0%, #059669 100%);
177
- display: flex;
178
- align-items: center;
179
- justify-content: center;
180
- margin-bottom: 24px;
181
- animation: kling-success-pop 0.4s ease-out;
182
- }
183
-
184
- .kling-success-icon svg {
185
- width: 32px;
186
- height: 32px;
187
- color: white;
188
- }
189
-
190
- .kling-success-title {
191
- font-size: 24px;
192
- font-weight: 700;
193
- color: #0f172a;
194
- margin: 0 0 8px 0;
195
- }
196
-
197
- .kling-success-amount {
198
- font-size: 18px;
199
- font-weight: 600;
200
- color: #10b981;
201
- margin: 0 0 8px 0;
202
- }
203
-
204
- .kling-success-message {
205
- font-size: 14px;
206
- color: #64748b;
207
- margin: 0;
208
- }
209
-
210
- .kling-success-button {
211
- background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
212
- color: white;
213
- border: none;
214
- padding: 12px 32px;
215
- border-radius: 8px;
216
- font-size: 14px;
217
- font-weight: 600;
218
- cursor: pointer;
219
- transition: transform 0.15s, box-shadow 0.15s;
220
- }
221
-
222
- .kling-success-button:hover {
223
- transform: translateY(-1px);
224
- box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);
225
- }
226
-
227
- @keyframes kling-success-pop {
228
- 0% { transform: scale(0); opacity: 0; }
229
- 50% { transform: scale(1.1); }
230
- 100% { transform: scale(1); opacity: 1; }
231
- }
232
-
233
- /* Error state */
234
- .kling-error {
235
- display: flex;
236
- flex-direction: column;
237
- align-items: center;
238
- justify-content: center;
239
- padding: 48px 32px;
240
- text-align: center;
241
- }
242
-
243
- .kling-error-icon {
244
- width: 64px;
245
- height: 64px;
246
- border-radius: 50%;
247
- background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
248
- display: flex;
249
- align-items: center;
250
- justify-content: center;
251
- margin-bottom: 24px;
252
- }
253
-
254
- .kling-error-icon svg {
255
- width: 32px;
256
- height: 32px;
257
- color: white;
258
- }
259
-
260
- .kling-error-title {
261
- font-size: 24px;
262
- font-weight: 700;
263
- color: #0f172a;
264
- margin: 0 0 8px 0;
265
- }
266
-
267
- .kling-error-message {
268
- font-size: 14px;
269
- color: #64748b;
270
- margin: 0 0 32px 0;
271
- max-width: 280px;
272
- }
273
-
274
- .kling-error-buttons {
275
- display: flex;
276
- gap: 12px;
277
- }
278
-
279
- .kling-error-retry {
280
- background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
281
- color: white;
282
- border: none;
283
- padding: 12px 24px;
284
- border-radius: 8px;
285
- font-size: 14px;
286
- font-weight: 600;
287
- cursor: pointer;
288
- transition: transform 0.15s, box-shadow 0.15s;
289
- }
290
-
291
- .kling-error-retry:hover {
292
- transform: translateY(-1px);
293
- box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);
294
- }
295
-
296
- .kling-error-cancel {
297
- background: transparent;
298
- color: #64748b;
299
- border: 1px solid #e2e8f0;
300
- padding: 12px 24px;
301
- border-radius: 8px;
302
- font-size: 14px;
303
- font-weight: 600;
304
- cursor: pointer;
305
- transition: background 0.15s;
306
- }
307
-
308
- .kling-error-cancel:hover {
309
- background: #f8fafc;
310
- }
311
-
312
- /* Closing animation */
313
- .kling-overlay.closing .kling-backdrop {
314
- animation: kling-fade-out 0.2s ease-in forwards;
315
- }
316
-
317
- .kling-overlay.closing .kling-modal-wrapper {
318
- animation: kling-slide-down 0.2s ease-in forwards;
319
- }
320
-
321
- .kling-overlay.closing .kling-modal-wrapper-mobile {
322
- animation: kling-slide-down-mobile 0.2s ease-in forwards;
323
- }
324
-
325
- @keyframes kling-fade-out {
326
- to { opacity: 0; }
327
- }
328
-
329
- @keyframes kling-slide-down {
330
- to {
331
- opacity: 0;
332
- transform: translateY(20px) scale(0.98);
333
- }
334
- }
335
-
336
- @keyframes kling-slide-down-mobile {
337
- to {
338
- transform: translateY(100%);
339
- }
340
- }
341
- `,d=`
342
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
343
- <line x1="18" y1="6" x2="6" y2="18"></line>
344
- <line x1="6" y1="6" x2="18" y2="18"></line>
345
- </svg>
346
- `;var o=class{constructor(e){this.host=null;this.shadow=null;this.iframe=null;this.messageHandler=null;this.isClosing=!1;this.handleKeyDown=e=>{e.key==="Escape"&&this.handleCancel()};this.options=e}open(){if(this.host)return;this.host=document.createElement("div"),this.host.id="kling-checkout-host",document.body.appendChild(this.host),this.shadow=this.host.attachShadow({mode:"closed"});let e=window.innerWidth<640;this.shadow.innerHTML=`
347
- <style>${c}</style>
348
- <div class="kling-overlay" role="dialog" aria-modal="true" aria-label="Checkout">
349
- <div class="kling-backdrop"></div>
350
- <div class="kling-modal-wrapper ${e?"kling-modal-wrapper-mobile":""}">
351
- <button class="kling-close-button" aria-label="Close checkout">
352
- ${d}
353
- </button>
354
- <div class="kling-modal">
355
- <div class="kling-loading">
356
- <div class="kling-spinner"></div>
357
- <div class="kling-loading-text">Loading checkout...</div>
358
- </div>
359
- </div>
360
- </div>
361
- </div>
362
- `;let t=this.shadow.querySelector(".kling-backdrop"),i=this.shadow.querySelector(".kling-close-button");t?.addEventListener("click",()=>this.handleCancel()),i?.addEventListener("click",()=>this.handleCancel()),document.addEventListener("keydown",this.handleKeyDown),document.body.style.overflow="hidden",setTimeout(()=>this.loadIframe(),50),this.messageHandler=this.handleMessage.bind(this),window.addEventListener("message",this.messageHandler)}loadIframe(){if(!this.shadow)return;let e=this.shadow.querySelector(".kling-modal"),t=this.shadow.querySelector(".kling-loading");!e||!t||(this.iframe=document.createElement("iframe"),this.iframe.className="kling-iframe",this.iframe.src=this.options.embedUrl,this.iframe.allow="payment",this.iframe.setAttribute("loading","eager"),e.insertBefore(this.iframe,t))}handleMessage(e){let t=e.data;if(!(!t||typeof t!="object"||t.source!=="kling-checkout"))switch(t.type){case"checkout:success":this.handleSuccess(t.payload);break;case"checkout:error":this.handleError(t.payload);break;case"checkout:cancel":this.handleCancel(t.payload?.cancelUrl);break;case"checkout:resize":this.handleResize(t.payload);break;case"checkout:ready":this.handleReady();break;case"payment:success":this.showPaymentSuccess(t.payload);break;case"payment:error":this.showPaymentError(t.payload);break}}handleSuccess(e){this.showPaymentSuccess(e)}handleError(e){this.options.callbacks?.onError?.(e)}handleCancel(e){this.isClosing||(this.options.callbacks?.onCancel?.(),this.options.onCancel(),this.close(),e&&(window.location.href=e))}handleResize(e){this.iframe&&e.height&&(this.iframe.style.height=`${Math.min(e.height,window.innerHeight*.9)}px`)}handleReady(){this.iframe&&!this.iframe.classList.contains("loaded")&&(this.iframe.classList.add("loaded"),this.shadow?.querySelector(".kling-loading")?.remove())}showPaymentSuccess(e){if(!this.shadow)return;let t=this.shadow.querySelector(".kling-modal");if(!t)return;let i={status:"success",success:!0,paymentIntentId:e.paymentIntentId,paymentMethodId:e.paymentMethodId};this.options.callbacks?.onSuccess?.(e),this.iframe&&(this.iframe.style.display="none");let n=e.amount&&e.currency?`${e.amount.toLocaleString()} ${e.currency}`:"",s=!!e.successUrl;t.innerHTML=`
363
- <div class="kling-success">
364
- <div class="kling-success-icon">
365
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
366
- <path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/>
367
- <polyline points="22 4 12 14.01 9 11.01"/>
368
- </svg>
369
- </div>
370
- <h2 class="kling-success-title">Payment Successful</h2>
371
- ${n?`<p class="kling-success-amount">${n}</p>`:""}
372
- ${s?'<p class="kling-success-message">Redirecting...</p>':'<button class="kling-success-button" type="button">Done</button>'}
373
- </div>
374
- `,s?setTimeout(()=>{this.close(),this.options.onComplete(i),window.location.href=e.successUrl},1e3):t.querySelector(".kling-success-button")?.addEventListener("click",()=>{this.close(),this.options.onComplete(i)})}showPaymentError(e){if(!this.shadow)return;let t=this.shadow.querySelector(".kling-modal");if(!t)return;this.iframe&&(this.iframe.style.display="none"),t.innerHTML=`
375
- <div class="kling-error">
376
- <div class="kling-error-icon">
377
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
378
- <circle cx="12" cy="12" r="10"/>
379
- <line x1="15" y1="9" x2="9" y2="15"/>
380
- <line x1="9" y1="9" x2="15" y2="15"/>
381
- </svg>
382
- </div>
383
- <h2 class="kling-error-title">Payment Failed</h2>
384
- <p class="kling-error-message">${e.message||"Something went wrong. Please try again."}</p>
385
- <div class="kling-error-buttons">
386
- <button class="kling-error-retry" type="button">Try Again</button>
387
- <button class="kling-error-cancel" type="button">Cancel</button>
388
- </div>
389
- </div>
390
- `,t.querySelector(".kling-error-retry")?.addEventListener("click",()=>{if(this.iframe){this.iframe.style.display="block",t.innerHTML="",t.appendChild(this.iframe);let s=document.createElement("div");s.className="kling-loading",s.innerHTML=`
391
- <div class="kling-spinner"></div>
392
- <div class="kling-loading-text">Loading checkout...</div>
393
- `,t.appendChild(s),this.iframe.src=this.iframe.src}}),t.querySelector(".kling-error-cancel")?.addEventListener("click",()=>{this.handleCancel()}),this.options.callbacks?.onError?.(e)}close(){if(this.isClosing||!this.shadow)return;this.isClosing=!0,this.shadow.querySelector(".kling-overlay")?.classList.add("closing"),setTimeout(()=>this.destroy(),200)}destroy(){document.removeEventListener("keydown",this.handleKeyDown),this.messageHandler&&window.removeEventListener("message",this.messageHandler),this.host&&(this.host.remove(),this.host=null),document.body.style.overflow="",this.shadow=null,this.iframe=null}};var g="https://api.kling.is",p="https://pay.kling.is",r=class l{constructor(e={}){this.currentOverlay=null;this.apiUrl=e.apiUrl||g,e.baseUrl?this.payUrl=e.baseUrl.replace(/\/$/,""):this.apiUrl.includes("localhost")?this.payUrl=this.apiUrl.replace(":3001",":3000"):this.payUrl=p,this.locale=e.locale||this.detectLocale()}static init(e={}){return new l(e)}checkout(e){if(!e.sessionId)throw new Error("Kling.checkout() requires a sessionId");this.currentOverlay&&(this.currentOverlay.close(),this.currentOverlay=null);let t=this.buildEmbedUrl(e),i,n=new Promise(a=>{i=a}),s=new o({embedUrl:t,onComplete:a=>{this.currentOverlay=null,i(a)},onCancel:()=>{this.currentOverlay=null,i({status:"canceled",success:!1,canceled:!0})},callbacks:{onSuccess:e.onSuccess,onError:e.onError,onCancel:e.onCancel}});return this.currentOverlay=s,s.open(),{then:n.then.bind(n),catch:n.catch.bind(n),finally:n.finally.bind(n),close:()=>{s.close(),i({status:"canceled",success:!1,canceled:!0})}}}buildEmbedUrl(e){let t=new URLSearchParams;return t.set("embed","1"),t.set("locale",this.locale),typeof window<"u"&&window.location?.href&&t.set("origin",window.location.href),`${this.payUrl}/checkout/${e.sessionId}?${t}`}detectLocale(){return typeof navigator>"u"?"en":(navigator.language?.toLowerCase()||"").startsWith("is")?"is":"en"}preload(e){let t=this.buildEmbedUrl(e),i=document.createElement("link");i.rel="prefetch",i.href=t,document.head.appendChild(i)}};export{r as Kling,r as default};
1
+ // Re-export the generated SDK
2
+ export * from "./generated/index.js";
3
+ // Export the configuration function
4
+ export { configure } from "./mutator.js";
394
5
  //# sourceMappingURL=index.js.map