@airwallex/components-sdk
Advanced tools
Comparing version 1.4.2 to 1.4.4
649
lib/index.js
'use strict'; | ||
var __defProp = Object.defineProperty; | ||
var __defProps = Object.defineProperties; | ||
var __getOwnPropDescs = Object.getOwnPropertyDescriptors; | ||
var __getOwnPropSymbols = Object.getOwnPropertySymbols; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __propIsEnum = Object.prototype.propertyIsEnumerable; | ||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||
var __spreadValues = (a, b) => { | ||
for (var prop in b || (b = {})) | ||
if (__hasOwnProp.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
if (__getOwnPropSymbols) | ||
for (var prop of __getOwnPropSymbols(b)) { | ||
if (__propIsEnum.call(b, prop)) | ||
__defNormalProp(a, prop, b[prop]); | ||
var AirTracker = require('@airwallex/airtracker'); | ||
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } | ||
var AirTracker__default = /*#__PURE__*/_interopDefaultCompat(AirTracker); | ||
/****************************************************************************** | ||
Copyright (c) Microsoft Corporation. | ||
Permission to use, copy, modify, and/or distribute this software for any | ||
purpose with or without fee is hereby granted. | ||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | ||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | ||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | ||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | ||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | ||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */ | ||
/* global Reflect, Promise, SuppressedError, Symbol */ | ||
var __assign = function() { | ||
__assign = Object.assign || function __assign(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
function __awaiter(thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
} | ||
function __generator(thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
return a; | ||
} | ||
function __spreadArray(to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
} | ||
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { | ||
var e = new Error(message); | ||
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; | ||
}; | ||
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); | ||
var __async = (__this, __arguments, generator) => { | ||
return new Promise((resolve, reject) => { | ||
var fulfilled = (value) => { | ||
try { | ||
step(generator.next(value)); | ||
} catch (e) { | ||
reject(e); | ||
} | ||
}; | ||
var rejected = (value) => { | ||
try { | ||
step(generator.throw(value)); | ||
} catch (e) { | ||
reject(e); | ||
} | ||
}; | ||
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); | ||
step((generator = generator.apply(__this, __arguments)).next()); | ||
}); | ||
var name = "@airwallex/components-sdk"; | ||
var version = "1.4.2"; | ||
var main = "./lib/index.js"; | ||
var types = "./lib/index.d.ts"; | ||
var files = [ | ||
"lib/**" | ||
]; | ||
var license = "MIT"; | ||
var scripts = { | ||
prebuild: "node ./load-types.js && yarn clean", | ||
build: "yarn rollup --config", | ||
postbuild: "yarn bundle-types", | ||
"bundle-types": "dts-bundle-generator -o ./lib/index.d.ts ./src/index.ts --no-check", | ||
clean: "rm -rf dist lib", | ||
dev: "yarn clean & tsup --env.NODE_ENV development --watch --config tsup.config.ts", | ||
lint: "eslint \"src/**/*.ts*\"", | ||
test: "jest", | ||
sonar: "sonar-scanner", | ||
release: "semantic-release" | ||
}; | ||
var publishConfig = { | ||
access: "public" | ||
}; | ||
var devDependencies = { | ||
"@babel/preset-typescript": "^7.18.6", | ||
"@rollup/plugin-commonjs": "^25.0.7", | ||
"@rollup/plugin-json": "^6.1.0", | ||
"@rollup/plugin-node-resolve": "^15.2.3", | ||
"@rollup/plugin-terser": "^0.4.4", | ||
"@rollup/plugin-typescript": "^11.1.6", | ||
"@semantic-release/changelog": "^5.0.1", | ||
"@semantic-release/commit-analyzer": "^8.0.1", | ||
"@semantic-release/git": "^9.0.0", | ||
"@semantic-release/gitlab": "^6.1.0", | ||
"@semantic-release/release-notes-generator": "^9.0.0", | ||
"@swc/core": "^1.3.46", | ||
"@types/jest": "^29.5.0", | ||
"@types/node": "^17.0.12", | ||
"@typescript-eslint/eslint-plugin": "^5.57.0", | ||
"@typescript-eslint/parser": "^5.57.0", | ||
"dts-bundle-generator": "^9.0.0", | ||
eslint: "^7.23.0", | ||
"eslint-config-prettier": "^8.3.0", | ||
jest: "^29.5.0", | ||
"jest-environment-jsdom": "^29.5.0", | ||
prettier: "^2.8.1", | ||
rollup: "^4.9.6", | ||
"semantic-release": "^17.3.8", | ||
"sonarqube-scanner": "^3.0.1", | ||
"ts-jest": "^29.0.5", | ||
"ts-loader": "^9.5.1", | ||
tslib: "^2.6.2", | ||
typescript: "^4.5.2" | ||
}; | ||
var dependencies = { | ||
"@airwallex/airtracker": "1.1.0" | ||
}; | ||
var packageJson = { | ||
name: name, | ||
version: version, | ||
main: main, | ||
types: types, | ||
files: files, | ||
license: license, | ||
scripts: scripts, | ||
publishConfig: publishConfig, | ||
devDependencies: devDependencies, | ||
dependencies: dependencies | ||
}; | ||
// src/constants.ts | ||
var ENV = /* @__PURE__ */ ((ENV2) => { | ||
ENV2["dev"] = "dev"; | ||
ENV2["staging"] = "staging"; | ||
ENV2["demo"] = "demo"; | ||
ENV2["prod"] = "prod"; | ||
return ENV2; | ||
})(ENV || {}); | ||
var STATIC_HOST = { | ||
["dev" /* dev */]: "https://static-staging.airwallex.com", | ||
["staging" /* staging */]: "https://static-staging.airwallex.com", | ||
["demo" /* demo */]: "https://static-demo.airwallex.com", | ||
["prod" /* prod */]: "https://static.airwallex.com" | ||
var airTrackerENV = { | ||
dev: AirTracker.Environment.staging, | ||
staging: AirTracker.Environment.staging, | ||
demo: AirTracker.Environment.demo, | ||
prod: AirTracker.Environment.production | ||
}; | ||
var SDK_CONTROLLER = "sdkController"; | ||
var initializeAirTracker = function (env, clientId) { | ||
if (env === void 0) { env = AirTracker.Environment.production; } | ||
if (!window._AirwallexSDKs.airTracker) { | ||
window._AirwallexSDKs.airTracker = new AirTracker__default.default({ | ||
config: { | ||
appName: 'components-sdk', | ||
appVersion: packageJson.version, | ||
env: airTrackerENV[env] || AirTracker.Environment.production | ||
} | ||
}); | ||
window._AirwallexSDKs.airTracker.updateCommonData({ clientId: clientId }); | ||
} | ||
return window._AirwallexSDKs.airTracker; | ||
}; | ||
var maskPII = function (data) { | ||
if (typeof data !== 'object') { | ||
return data; | ||
} | ||
try { | ||
var result_1 = JSON.parse(JSON.stringify(data)); | ||
Object.keys(result_1).forEach(function (key) { | ||
if (typeof key === 'string' && ['auth', 'code'].some(function (sens) { return key.includes(sens); })) { | ||
result_1[key] = '***'; | ||
} | ||
}); | ||
return result_1; | ||
} | ||
catch (_a) { | ||
return data; | ||
} | ||
}; | ||
var logError = function (eventName, data) { | ||
var _a; | ||
(_a = window._AirwallexSDKs.airTracker) === null || _a === void 0 ? void 0 : _a.error(eventName, __assign(__assign({}, data), { context: 'components-sdk' })); | ||
}; | ||
var logWarning = function (eventName, data) { | ||
var _a; | ||
(_a = window._AirwallexSDKs.airTracker) === null || _a === void 0 ? void 0 : _a.warn(eventName, __assign(__assign({}, data), { context: 'components-sdk' })); | ||
}; | ||
var logInfo = function (eventName, data) { | ||
var _a; | ||
(_a = window._AirwallexSDKs.airTracker) === null || _a === void 0 ? void 0 : _a.info(eventName, __assign(__assign({}, data), { context: 'components-sdk' })); | ||
}; | ||
var _a; | ||
var ENV; | ||
(function (ENV) { | ||
ENV["dev"] = "dev"; | ||
ENV["staging"] = "staging"; | ||
ENV["demo"] = "demo"; | ||
ENV["prod"] = "prod"; | ||
})(ENV || (ENV = {})); | ||
var STATIC_HOST = (_a = {}, | ||
_a[ENV.dev] = 'https://static-staging.airwallex.com', | ||
_a[ENV.staging] = 'https://static-staging.airwallex.com', | ||
_a[ENV.demo] = 'https://static-demo.airwallex.com', | ||
_a[ENV.prod] = 'https://static.airwallex.com', | ||
_a); | ||
var SDK_CONTROLLER = 'sdkController'; | ||
var SDK_URL_MAPPING = { | ||
kyc: "/widgets/kyc/sdk/v1/index.js", | ||
rfi: "/widgets/kycRfi/sdk/v1/index.js", | ||
paymentsKyb: "/widgets/paymentsKyb/sdk/v1/index.js", | ||
sdkController: "/widgets/sdk-controller/sdk/v1/index.js", | ||
payouts: "/widgets/payouts/sdk/v1/index.js", | ||
payment: "/checkout/assets/elements.bundle.min.js" | ||
kyc: '/widgets/kyc/sdk/v1/index.js', | ||
rfi: '/widgets/kycRfi/sdk/v1/index.js', | ||
paymentsKyb: '/widgets/paymentsKyb/sdk/v1/index.js', | ||
sdkController: '/widgets/sdk-controller/sdk/v1/index.js', | ||
payouts: '/widgets/payouts/sdk/v1/index.js', | ||
payment: '/checkout/assets/elements.bundle.min.js' | ||
}; | ||
var ELEMENT_TO_SDK = { | ||
// rfi elements | ||
kycRfi: "rfi", | ||
transactionRfi: "rfi", | ||
kybRfi: "rfi", | ||
// payouts elements | ||
payoutForm: "payouts", | ||
beneficiaryForm: "payouts", | ||
// payment elements | ||
hpp: "payment", | ||
cvc: "payment", | ||
card: "payment", | ||
qrcode: "payment", | ||
expiry: "payment", | ||
wechat: "payment", | ||
dropIn: "payment", | ||
redirect: "payment", | ||
cardNumber: "payment", | ||
applePayButton: "payment", | ||
googlePayButton: "payment", | ||
fullFeaturedCard: "payment" | ||
// rfi elements | ||
kycRfi: 'rfi', | ||
transactionRfi: 'rfi', | ||
kybRfi: 'rfi', | ||
// payouts elements | ||
payoutForm: 'payouts', | ||
beneficiaryForm: 'payouts', | ||
// payment elements | ||
hpp: 'payment', | ||
cvc: 'payment', | ||
card: 'payment', | ||
qrcode: 'payment', | ||
expiry: 'payment', | ||
wechat: 'payment', | ||
dropIn: 'payment', | ||
redirect: 'payment', | ||
cardNumber: 'payment', | ||
applePayButton: 'payment', | ||
googlePayButton: 'payment', | ||
fullFeaturedCard: 'payment' | ||
}; | ||
var DOMAIN_FUNCTIONS_NAMESPACES = ["payment"]; | ||
var DOMAIN_FUNCTIONS_NAMESPACES = ['payment']; | ||
// src/utils.ts | ||
var sleep = (delay = 500) => new Promise((resolve) => window.setTimeout(resolve, delay)); | ||
var getInternalSDKByElementName = (elementName) => ELEMENT_TO_SDK[elementName]; | ||
var getSDKUrl = ({ name, env = "prod" /* prod */ }) => { | ||
const staticHost = STATIC_HOST[env] || STATIC_HOST.prod; | ||
const elementUri = SDK_URL_MAPPING[name]; | ||
if (!elementUri) { | ||
throw new Error(`Element ${name} static resource URL is invalid.`); | ||
} | ||
return `${staticHost}${elementUri}?ts=${Date.now()}`; | ||
var sleep = function (delay) { | ||
if (delay === void 0) { delay = 500; } | ||
return new Promise(function (resolve) { return window.setTimeout(resolve, delay); }); | ||
}; | ||
var getFunctionsInstanceWithNamespace = () => { | ||
return DOMAIN_FUNCTIONS_NAMESPACES.reduce( | ||
(result, namespace) => __spreadProps(__spreadValues({}, result), { | ||
[namespace]: window._AirwallexSDKs.__controller__.internalSDKs[namespace] | ||
}), | ||
{} | ||
); | ||
var getInternalSDKByElementName = function (elementName) { | ||
return ELEMENT_TO_SDK[elementName]; | ||
}; | ||
/** | ||
* get the CDN url of a specific package | ||
* @param name declare the element name | ||
* @param env the environment of package | ||
* @returns string the CDN url | ||
*/ | ||
var getSDKUrl = function (_a) { | ||
var name = _a.name, _b = _a.env, env = _b === void 0 ? ENV.prod : _b; | ||
var staticHost = STATIC_HOST[env] || STATIC_HOST.prod; | ||
var elementUri = SDK_URL_MAPPING[name]; | ||
if (!elementUri) { | ||
logError('[components-sdk] Element static resource not found', { elementName: name }); | ||
throw new Error("Element ".concat(name, " static resource URL is invalid.")); | ||
} | ||
return "".concat(staticHost).concat(elementUri, "?ts=").concat(Date.now()); | ||
}; | ||
var getFunctionsInstanceWithNamespace = function () { | ||
return DOMAIN_FUNCTIONS_NAMESPACES.reduce(function (result, namespace) { | ||
var _a; | ||
return (__assign(__assign({}, result), (_a = {}, _a[namespace] = window._AirwallexSDKs.__controller__.internalSDKs[namespace], _a))); | ||
}, {}); | ||
}; | ||
// src/load-script.ts | ||
var createScript = (url) => { | ||
const script = document.createElement("script"); | ||
script.src = url; | ||
script.type = "module"; | ||
const parentDom = document.head || document.body; | ||
parentDom.appendChild(script); | ||
return script; | ||
var createScript = function (url) { | ||
var script = document.createElement('script'); | ||
script.src = url; | ||
script.type = 'module'; | ||
var parentDom = document.head || document.body; | ||
parentDom.appendChild(script); | ||
return script; | ||
}; | ||
var MAX_RETRY_COUNT = 3; | ||
var loadScript = (url) => __async(void 0, null, function* () { | ||
if (typeof window === "undefined") { | ||
throw new Error("Please load script in browser environment"); | ||
} | ||
let retryCount = 0; | ||
const tryToResolve = () => __async(void 0, null, function* () { | ||
const script = createScript(url); | ||
return new Promise((resolve, reject) => { | ||
script.addEventListener("load", () => { | ||
resolve(true); | ||
}); | ||
script.addEventListener("error", (err) => { | ||
script.remove(); | ||
console.error(err); | ||
reject(new Error(`Failed to load Airwallex SDK scripts: ${url}`)); | ||
}); | ||
var loadScript = function (url) { return __awaiter(void 0, void 0, void 0, function () { | ||
var retryCount, tryToResolve; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (typeof window === 'undefined') { | ||
throw new Error('Please load script in browser environment'); | ||
} | ||
retryCount = 0; | ||
tryToResolve = function () { return __awaiter(void 0, void 0, void 0, function () { | ||
var script; | ||
return __generator(this, function (_a) { | ||
script = createScript(url); | ||
return [2 /*return*/, new Promise(function (resolve, reject) { | ||
script.addEventListener('load', function () { | ||
resolve(true); | ||
}); | ||
script.addEventListener('error', function (err) { | ||
script.remove(); | ||
console.error(err); | ||
logError('[components-sdk] Failed to load script', { | ||
scriptUrl: url, | ||
error: err | ||
}); | ||
reject(new Error("Failed to load Airwallex SDK scripts: ".concat(url))); | ||
}); | ||
})]; | ||
}); | ||
}); }; | ||
_a.label = 1; | ||
case 1: | ||
if (!(retryCount < MAX_RETRY_COUNT)) return [3 /*break*/, 7]; | ||
_a.label = 2; | ||
case 2: | ||
_a.trys.push([2, 4, , 6]); | ||
return [4 /*yield*/, tryToResolve()]; | ||
case 3: return [2 /*return*/, _a.sent()]; | ||
case 4: | ||
_a.sent(); | ||
retryCount++; | ||
return [4 /*yield*/, sleep()]; | ||
case 5: | ||
_a.sent(); | ||
return [3 /*break*/, 6]; | ||
case 6: return [3 /*break*/, 1]; | ||
case 7: | ||
logError('[components-sdk] Failed to load script after retry', { scriptUrl: url }); | ||
throw new Error("Failed to load Airwallex SDK scripts: ".concat(url)); | ||
} | ||
}); | ||
}); | ||
while (retryCount < MAX_RETRY_COUNT) { | ||
try { | ||
return yield tryToResolve(); | ||
} catch (error) { | ||
retryCount++; | ||
yield sleep(); | ||
} | ||
} | ||
throw new Error(`Failed to load Airwallex SDK scripts: ${url}`); | ||
}); | ||
}); }; | ||
// src/apis.ts | ||
var initPromise; | ||
var promiseMap = /* @__PURE__ */ new Map(); | ||
var getLoadScriptPromise = ({ env, scriptName }) => { | ||
const url = getSDKUrl({ name: scriptName, env }); | ||
const sdkPromise = promiseMap.get(scriptName); | ||
if (sdkPromise) { | ||
return sdkPromise; | ||
} | ||
const loadScriptPromise = loadScript(url); | ||
promiseMap.set(scriptName, loadScriptPromise); | ||
return loadScriptPromise; | ||
/** | ||
* ensure one script one promise | ||
*/ | ||
var promiseMap = new Map(); | ||
/** | ||
* get the Promise to load the element script | ||
* @param scriptName declare the SDK or Functions namespace | ||
* @param env the resource url | ||
* @returns Promise to load the script | ||
*/ | ||
var getLoadScriptPromise = function (_a) { | ||
var env = _a.env, scriptName = _a.scriptName; | ||
var url = getSDKUrl({ name: scriptName, env: env }); | ||
// if promise was made | ||
var sdkPromise = promiseMap.get(scriptName); | ||
if (sdkPromise) { | ||
return sdkPromise; | ||
} | ||
var loadScriptPromise = loadScript(url); | ||
promiseMap.set(scriptName, loadScriptPromise); | ||
return loadScriptPromise; | ||
}; | ||
var init = (options) => __async(void 0, null, function* () { | ||
if (typeof window === "undefined") { | ||
throw new Error("Please call init function in browser environment"); | ||
} | ||
initPromise = new Promise((resolve, reject) => { | ||
const initOptions = __spreadProps(__spreadValues({}, options), { | ||
env: options.env && ENV[options.env] ? options.env : "prod" /* prod */ | ||
/** | ||
* SDK init, load controller script | ||
* @param options SDK init options | ||
* @returns Promise to load the script | ||
*/ | ||
var init = function (options) { return __awaiter(void 0, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
if (typeof window === 'undefined') { | ||
throw new Error('Please call init function in browser environment'); | ||
} | ||
// initialize airTracker | ||
initializeAirTracker(options.env, options.clientId); | ||
initPromise = new Promise(function (resolve, reject) { | ||
var initOptions = __assign(__assign({}, options), { env: options.env && ENV[options.env] ? options.env : ENV.prod }); | ||
window.AirwallexComponentsSDK.__env__ = initOptions.env; | ||
// load SDK controller script | ||
var controllerPromise = getLoadScriptPromise({ | ||
env: initOptions.env, | ||
scriptName: SDK_CONTROLLER | ||
}).then(function () { return window._AirwallexSDKs.__controller__.init(initOptions); }); | ||
// load SDK functions scripts | ||
var functionsPromises = DOMAIN_FUNCTIONS_NAMESPACES.map(function (functionsNamespace) { | ||
return getLoadScriptPromise({ | ||
env: initOptions.env, | ||
scriptName: functionsNamespace | ||
}) | ||
.then(function () { return controllerPromise; }) | ||
.then(function () { | ||
return window._AirwallexSDKs.__controller__.registerFunctions({ | ||
functionsNamespace: functionsNamespace, | ||
instance: window._AirwallexSDKs[functionsNamespace] | ||
}); | ||
}); | ||
}); | ||
Promise.all(__spreadArray([controllerPromise], functionsPromises, true)) | ||
.then(function () { | ||
logInfo('[components-sdk] SDK initialized', { options: maskPII(options) }); | ||
resolve(getFunctionsInstanceWithNamespace()); | ||
})["catch"](function (error) { | ||
logError('[components-sdk] Unexpected errors when init', { error: error }); | ||
reject(error); | ||
}); | ||
}); | ||
return [2 /*return*/, initPromise]; | ||
}); | ||
window.AirwallexComponentsSDK.__env__ = initOptions.env; | ||
const controllerPromise = getLoadScriptPromise({ | ||
env: initOptions.env, | ||
scriptName: SDK_CONTROLLER | ||
}).then(() => window._AirwallexSDKs.__controller__.init(initOptions)); | ||
const functionsPromises = DOMAIN_FUNCTIONS_NAMESPACES.map( | ||
(functionsNamespace) => getLoadScriptPromise({ | ||
env: initOptions.env, | ||
scriptName: functionsNamespace | ||
}).then(() => controllerPromise).then( | ||
() => window._AirwallexSDKs.__controller__.registerFunctions({ | ||
functionsNamespace, | ||
instance: window._AirwallexSDKs[functionsNamespace] | ||
}) | ||
) | ||
); | ||
Promise.all([controllerPromise, ...functionsPromises]).then(() => { | ||
resolve(getFunctionsInstanceWithNamespace()); | ||
}).catch((error) => { | ||
reject(error); | ||
}); }; | ||
/** | ||
* load SDK element script and call SDK instance.createElement | ||
* @param elementName the element name to create | ||
* @param options createElement options | ||
* @returns return type of SDK instance.createElement | ||
*/ | ||
var createElement = function (elementName, options) { return __awaiter(void 0, void 0, void 0, function () { | ||
var sdkName; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (!initPromise) { | ||
logWarning('[components-sdk] Did not call init before createElement'); | ||
throw new Error('Please initialize Airwallex SDK before createElement()'); | ||
} | ||
return [4 /*yield*/, initPromise]; | ||
case 1: | ||
_a.sent(); | ||
sdkName = getInternalSDKByElementName(elementName) || elementName; | ||
return [4 /*yield*/, getLoadScriptPromise({ | ||
scriptName: sdkName, | ||
env: window.AirwallexComponentsSDK.__env__ || ENV.prod | ||
}) | ||
.then(function () { | ||
return window._AirwallexSDKs.__controller__.registerElement({ | ||
sdkName: sdkName, | ||
elementName: elementName, | ||
instance: window._AirwallexSDKs[sdkName] | ||
}); | ||
})["catch"](function (error) { | ||
logError('[components-sdk] Unexpected errors when createElement', { error: error }); | ||
})]; | ||
case 2: | ||
_a.sent(); | ||
logInfo('[components-sdk] SDK createElement being called', { elementName: elementName, options: maskPII(options) }); | ||
return [2 /*return*/, window._AirwallexSDKs.__controller__.createElement(elementName, options)]; | ||
} | ||
}); | ||
}); | ||
return initPromise; | ||
}); | ||
var createElement = (elementName, options) => __async(void 0, null, function* () { | ||
if (!initPromise) { | ||
throw new Error("Please initialize Airwallex SDK before createElement()"); | ||
} | ||
yield initPromise; | ||
const sdkName = getInternalSDKByElementName(elementName) || elementName; | ||
yield getLoadScriptPromise({ | ||
scriptName: sdkName, | ||
env: window.AirwallexComponentsSDK.__env__ || "prod" /* prod */ | ||
}).then( | ||
() => window._AirwallexSDKs.__controller__.registerElement({ | ||
sdkName, | ||
elementName, | ||
instance: window._AirwallexSDKs[sdkName] | ||
}) | ||
); | ||
return window._AirwallexSDKs.__controller__.createElement(elementName, options); | ||
}); | ||
}); }; | ||
// src/index.ts | ||
if (typeof window !== "undefined") { | ||
Object.defineProperties(window, { | ||
AirwallexComponentsSDK: { | ||
value: {}, | ||
writable: false | ||
}, | ||
_AirwallexSDKs: { | ||
value: {}, | ||
writable: false | ||
} | ||
}); | ||
window.AirwallexComponentsSDK.init = init; | ||
window.AirwallexComponentsSDK.createElement = createElement; | ||
if (typeof window !== 'undefined') { | ||
Object.defineProperties(window, { | ||
AirwallexComponentsSDK: { | ||
value: {}, | ||
writable: false | ||
}, | ||
_AirwallexSDKs: { | ||
value: {}, | ||
writable: false | ||
} | ||
}); | ||
window.AirwallexComponentsSDK.init = init; | ||
window.AirwallexComponentsSDK.createElement = createElement; | ||
} | ||
@@ -231,3 +474,1 @@ | ||
exports.init = init; | ||
//# sourceMappingURL=out.js.map | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@airwallex/components-sdk", | ||
"version": "1.4.2", | ||
"version": "1.4.4", | ||
"main": "./lib/index.js", | ||
"module": "./lib/index.mjs", | ||
"types": "./lib/index.d.ts", | ||
@@ -12,9 +11,7 @@ "files": [ | ||
"scripts": { | ||
"build": "yarn clean & webpack --progress --config ./webpack.config.js", | ||
"build-npm": "yarn clean-npm & tsup src/index.ts --env.NODE_ENV production --config tsup.config.ts", | ||
"prebuild": "node ./load-types.js && yarn clean", | ||
"build": "yarn rollup --config", | ||
"postbuild": "yarn bundle-types", | ||
"bundle-types": "dts-bundle-generator -o ./lib/index.d.ts ./src/index.ts --no-check", | ||
"prebuild-npm": "node ./load-types.js", | ||
"prebuild": "node ./load-types.js", | ||
"clean": "rm -rf dist", | ||
"clean-npm": "rm -rf lib", | ||
"clean": "rm -rf dist lib", | ||
"dev": "yarn clean & tsup --env.NODE_ENV development --watch --config tsup.config.ts", | ||
@@ -31,2 +28,7 @@ "lint": "eslint \"src/**/*.ts*\"", | ||
"@babel/preset-typescript": "^7.18.6", | ||
"@rollup/plugin-commonjs": "^25.0.7", | ||
"@rollup/plugin-json": "^6.1.0", | ||
"@rollup/plugin-node-resolve": "^15.2.3", | ||
"@rollup/plugin-terser": "^0.4.4", | ||
"@rollup/plugin-typescript": "^11.1.6", | ||
"@semantic-release/changelog": "^5.0.1", | ||
@@ -48,2 +50,3 @@ "@semantic-release/commit-analyzer": "^8.0.1", | ||
"prettier": "^2.8.1", | ||
"rollup": "^4.9.6", | ||
"semantic-release": "^17.3.8", | ||
@@ -53,7 +56,8 @@ "sonarqube-scanner": "^3.0.1", | ||
"ts-loader": "^9.5.1", | ||
"tsup": "^6.6.3", | ||
"typescript": "^4.5.2", | ||
"webpack": "^5.89.0", | ||
"webpack-cli": "^5.1.4" | ||
"tslib": "^2.6.2", | ||
"typescript": "^4.5.2" | ||
}, | ||
"dependencies": { | ||
"@airwallex/airtracker": "1.1.0" | ||
} | ||
} |
Sorry, the diff of this file is too big to display
14804
609838
1
29
5
+ Added@airwallex/airtracker@1.1.0
+ Added@airwallex/airtracker@1.1.0(transitive)
+ Addedweb-vitals@3.5.2(transitive)