Skip to content

Commit 7c52704

Browse files
feat: added new callback in hyper (#15)
2 parents bd92680 + 7283d98 commit 7c52704

File tree

8 files changed

+40
-15
lines changed

8 files changed

+40
-15
lines changed

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
function i(r){if(!(r!==null&&r.BS_PRIVATE_NESTED_SOME_NONE!==void 0))return r;var n=r.BS_PRIVATE_NESTED_SOME_NONE;if(n!==0)return{BS_PRIVATE_NESTED_SOME_NONE:n-1|0}}function d(r,n){if(r<=0)return[];for(var e=new Array(r),t=0;t<r;++t)e[t]=n;return e}function D(r){var n=Object.prototype.toString.call(r);switch(n){case"[object Array]":return{TAG:"Array",_0:r};case"[object Boolean]":return{TAG:"Bool",_0:r};case"[object Null]":return"Null";case"[object Number]":return{TAG:"Number",_0:r};case"[object String]":return{TAG:"String",_0:r};default:return{TAG:"Object",_0:r}}}var p={classify:D};function k(r){if(typeof r=="boolean")return r}function J(r){if(r===null)return null}function F(r){if(typeof r=="string")return r}function H(r){if(typeof r=="number")return r}function W(r){if(typeof r=="object"&&!Array.isArray(r)&&r!==null)return r}function L(r){if(Array.isArray(r))return r}var f={bool:k,$$null:J,string:F,$$float:H,object:W,array:L};function q(r){return Math.floor(r)|0}function x(r,n){var e=Math.random()*(n-r|0);return(Math.floor(e)|0)+r|0}var y={floor:q,random:x};function g(r,n,e){return r.reduce(e,n)}function E(r,n){if(r!==void 0)return n(i(r))}function a(r,n){return r!==void 0?i(r):n}function C(){var r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";return g(d(32,0),"",function(n,e){var t=y.random(0,r.length),o=r.charAt(t);return n+o})}function A(r){var n=r!==void 0?a(f.object(r),{}):{},e=n.env;if(e===void 0)return"";var t=f.string(e);return t!==void 0?t:""}function z(r,n){var e=p.classify(r),t;if(typeof e!="object")t="";else switch(e.TAG){case"String":t=e._0;break;case"Object":t=a(E(e._0.publishableKey,f.string),"");break;default:t=""}return new Promise(function(o,I){var O=C(),N=Date.now(),S=A(n),u;switch(S){case"PROD":u="https://checkout.hyperswitch.io/v0/HyperLoader.js";break;case"SANDBOX":u="https://beta.hyperswitch.io/v1/HyperLoader.js";break;default:u=t.startsWith("pk_prd_")?"https://checkout.hyperswitch.io/v0/HyperLoader.js":"https://beta.hyperswitch.io/v1/HyperLoader.js"}var v=Object.fromEntries([["sessionID",O],["timeStamp",N.toString()]]);if(document.querySelectorAll('script[src="'+u+'"]').length===0){var l=document.createElement("script");l.src=u,l.onload=function(){var c=window.Hyper;if(c!=null)return o(c(r,n,v))},l.onerror=function(c){I(c)},document.body.appendChild(l);return}console.warn("INTEGRATION WARNING: There is already an existing script tag for "+u+". Multiple additions of HyperLoader.js is not permitted, please add it on the top level only once.");var _=window.Hyper;if(_!=null)return o(_(r,n,v))})}function er(r,n){return console.warn("loadStripe is deprecated. Please use loadHyper instead."),z(r,n)}export{z as loadHyper,er as loadStripe};
1+
function f(r){if(!(r!==null&&r.BS_PRIVATE_NESTED_SOME_NONE!==void 0))return r;var e=r.BS_PRIVATE_NESTED_SOME_NONE;if(e!==0)return{BS_PRIVATE_NESTED_SOME_NONE:e-1|0}}function h(r,e){if(r<=0)return[];for(var n=new Array(r),t=0;t<r;++t)n[t]=e;return n}function H(r){var e=Object.prototype.toString.call(r);switch(e){case"[object Array]":return{TAG:"Array",_0:r};case"[object Boolean]":return{TAG:"Bool",_0:r};case"[object Null]":return"Null";case"[object Number]":return{TAG:"Number",_0:r};case"[object String]":return{TAG:"String",_0:r};default:return{TAG:"Object",_0:r}}}var y={classify:H};function F(r){if(typeof r=="boolean")return r}function L(r){if(r===null)return null}function W(r){if(typeof r=="string")return r}function x(r){if(typeof r=="number")return r}function V(r){if(typeof r=="object"&&!Array.isArray(r)&&r!==null)return r}function q(r){if(Array.isArray(r))return r}var i={bool:F,$$null:L,string:W,$$float:x,object:V,array:q};function G(r){return Math.floor(r)|0}function z(r,e){var n=Math.random()*(e-r|0);return(Math.floor(n)|0)+r|0}var w={floor:G,random:z};function E(r,e,n){return r.reduce(n,e)}function C(r,e){if(r!==void 0)return e(f(r))}function o(r,e){return r!==void 0?f(r):e}function I(){var r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";return E(h(32,0),"",function(e,n){var t=w.random(0,r.length),c=r.charAt(t);return e+c})}function O(r){var e=r!==void 0?o(i.object(r),{}):{},n=e.env;if(n===void 0)return"";var t=i.string(n);return t!==void 0?t.toLowerCase():""}function N(r){var e=r!==void 0?o(i.object(r),{}):{},n=e.version;if(n===void 0)return"";var t=i.string(n);return t!==void 0?t.toLowerCase():""}function Y(r,e){var n=y.classify(r),t;if(typeof n!="object")t="";else switch(n.TAG){case"String":t=n._0;break;case"Object":t=o(C(n._0.publishableKey,i.string),"");break;default:t=""}return new Promise(function(c,S){var b=I(),T=Date.now(),v=N(e),U=O(e),u,l=0;switch(U){case"prod":switch(v){case"v1":u="https://checkout.hyperswitch.io/v0/HyperLoader.js";break;case"v2":u="https://checkout.hyperswitch.io/v2/HyperLoader.js";break;default:l=1}break;case"sandbox":switch(v){case"v1":u="https://beta.hyperswitch.io/v1/HyperLoader.js";break;case"v2":u="https://beta.hyperswitch.io/v2/HyperLoader.js";break;default:l=1}break;default:l=1}l===1&&(u=v==="v2"?t.startsWith("pk_prd_")?"https://checkout.hyperswitch.io/v2/HyperLoader.js":"https://dev.hyperswitch.io/v2/HyperLoader.js":t.startsWith("pk_prd_")?"https://checkout.hyperswitch.io/v0/HyperLoader.js":"https://beta.hyperswitch.io/v1/HyperLoader.js");var m=Object.fromEntries([["sessionID",b],["timeStamp",T.toString()]]);if(document.querySelectorAll('script[src="'+u+'"]').length===0){var a=document.createElement("script");a.src=u,a.onload=function(){var s=window.Hyper;if(s!=null)return c(s(r,e,m))},a.onerror=function(s){S(s)},document.body.appendChild(a);return}console.warn("INTEGRATION WARNING: There is already an existing script tag for "+u+". Multiple additions of HyperLoader.js is not permitted, please add it on the top level only once.");var d=window.Hyper;if(d!=null)return c(d(r,e,m))})}function ir(r,e){return console.warn("loadStripe is deprecated. Please use loadHyper instead."),Y(r,e)}export{Y as loadHyper,ir as loadStripe};
22
//# sourceMappingURL=index.mjs.map

dist/index.mjs.map

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@juspay-tech/hyper-js",
3-
"version": "2.0.4",
3+
"version": "2.1.4",
44
"description": "A ReScript-based JavaScript library for dynamic script loading and HyperLoader initialization.",
55
"main": "index.js",
66
"module": "index.mjs",

src/Index.res

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,16 @@ let loadHyper = (hyperObject: JSON.t, option: option<JSON.t>) => {
1313
Promise.make((resolve, reject) => {
1414
let sessionID = generateSessionID()
1515
let timeStamp = Date.now()
16-
let scriptURL = switch getEnv(option) {
17-
| "SANDBOX" => "https://beta.hyperswitch.io/v1/HyperLoader.js"
18-
| "PROD" => "https://checkout.hyperswitch.io/v0/HyperLoader.js"
16+
let version = getVersion(option)
17+
let scriptURL = switch (getEnv(option), version) {
18+
| ("sandbox", "v1") => "https://beta.hyperswitch.io/v1/HyperLoader.js"
19+
| ("prod", "v1") => "https://checkout.hyperswitch.io/v0/HyperLoader.js"
20+
| ("sandbox", "v2") => "https://beta.hyperswitch.io/v2/HyperLoader.js"
21+
| ("prod", "v2") => "https://checkout.hyperswitch.io/v2/HyperLoader.js"
22+
| (_, "v2") =>
23+
str->String.startsWith("pk_prd_")
24+
? "https://checkout.hyperswitch.io/v2/HyperLoader.js"
25+
: "https://dev.hyperswitch.io/v2/HyperLoader.js"
1926
| _ =>
2027
str->String.startsWith("pk_prd_")
2128
? "https://checkout.hyperswitch.io/v0/HyperLoader.js"

src/Types.res

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,14 @@ type hyperInstance = {
5151
paymentRequest: JSON.t => JSON.t,
5252
completeUpdateIntent: string => promise<JSON.t>,
5353
initiateUpdateIntent: unit => promise<JSON.t>,
54+
confirmTokenization: JSON.t => Promise.t<JSON.t>,
5455
}
5556
type hyperInstanceMake = (JSON.t, option<JSON.t>, JSON.t) => hyperInstance
5657

5758
let confirmPaymentFn = (_elements: JSON.t) => {
5859
Promise.resolve(Dict.make()->JSON.Encode.object)
5960
}
61+
6062
let confirmCardPaymentFn = (
6163
_clientSecretId: string,
6264
_data: option<JSON.t>,
@@ -113,6 +115,7 @@ let emptyHyperInstance = {
113115
paymentRequest: _ev => JSON.Encode.null,
114116
completeUpdateIntent: _ => Promise.resolve(Dict.make()->JSON.Encode.object),
115117
initiateUpdateIntent: _ => Promise.resolve(Dict.make()->JSON.Encode.object),
118+
confirmTokenization: _ => Promise.resolve(Dict.make()->JSON.Encode.object),
116119
}
117120

118121
type eventType = Escape | Change | Click | Ready | Focus | Blur | None
@@ -146,7 +149,22 @@ let getEnv = option => {
146149
switch dict->Dict.get("env") {
147150
| Some(val) =>
148151
switch val->JSON.Decode.string {
149-
| Some(str) => str
152+
| Some(str) => str->String.toLowerCase
153+
| None => ""
154+
}
155+
| None => ""
156+
}
157+
}
158+
159+
let getVersion = option => {
160+
let dict = switch option {
161+
| Some(json) => json->JSON.Decode.object->Option.getOr(Dict.make())
162+
| None => Dict.make()
163+
}
164+
switch dict->Dict.get("version") {
165+
| Some(val) =>
166+
switch val->JSON.Decode.string {
167+
| Some(str) => str->String.toLowerCase
150168
| None => ""
151169
}
152170
| None => ""

0 commit comments

Comments
 (0)