@opexa/portal-sdk 0.59.59 → 0.59.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1634 -1634
- package/dist/{chunk-V25DDQFF.js → chunk-FUFD2LUS.js} +45 -10
- package/dist/chunk-FUFD2LUS.js.map +1 -0
- package/dist/{chunk-6PJLGY7R.js → chunk-JTAO2DVT.js} +3 -3
- package/dist/chunk-JTAO2DVT.js.map +1 -0
- package/dist/{chunk-ROBGEUSE.js → chunk-WVFSGB7Y.js} +2 -2
- package/dist/chunk-WVFSGB7Y.js.map +1 -0
- package/dist/index.cjs +43 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -25
- package/dist/index.js.map +1 -1
- package/dist/services/index.cjs +42 -6
- package/dist/services/index.cjs.map +1 -1
- package/dist/services/index.d.cts +2 -2
- package/dist/services/index.d.ts +2 -2
- package/dist/services/index.js +2 -2
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-6PJLGY7R.js.map +0 -1
- package/dist/chunk-ROBGEUSE.js.map +0 -1
- package/dist/chunk-V25DDQFF.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { callIfFn, statusCodeToOperationError } from './chunk-
|
|
1
|
+
import { callIfFn, statusCodeToOperationError } from './chunk-WVFSGB7Y.js';
|
|
2
2
|
|
|
3
3
|
// src/utils/is-plain-object.ts
|
|
4
4
|
function isPlainObject(value) {
|
|
@@ -204,5 +204,5 @@ function mergeHeaders(i, j) {
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
export { GraphQLClient, isPlainObject };
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
208
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-JTAO2DVT.js.map
|
|
208
|
+
//# sourceMappingURL=chunk-JTAO2DVT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/is-plain-object.ts","../src/utils/flatten.ts","../src/utils/graphql-client.ts"],"names":[],"mappings":"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","file":"chunk-JTAO2DVT.js","sourcesContent":["export function isPlainObject(value: unknown): value is Record<string, any> {\r\n\treturn (\r\n\t\tObject.prototype.toString.call(value) === '[object Object]' &&\r\n\t\tObject(value) === value\r\n\t);\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function flatten(value: Record<string, any> | any[]) {\r\n\tconst result: {\r\n\t\tkey: string[];\r\n\t\tvalue: any;\r\n\t}[] = [];\r\n\r\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\r\n\t\tfor (const k in o) {\r\n\t\t\tconst v = o[k];\r\n\r\n\t\t\tif (isPlainObject(v)) {\r\n\t\t\t\tfn(v, [...parentKeys, k]);\r\n\t\t\t} else if (Array.isArray(v)) {\r\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\r\n\t\t\t} else {\r\n\t\t\t\tresult.push({\r\n\t\t\t\t\tkey: [...parentKeys, k],\r\n\t\t\t\t\tvalue: v,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfn(value);\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction arrayToObject(array: unknown[]) {\r\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\r\n\t\to[i] = v;\r\n\t\treturn o;\r\n\t}, {});\r\n}\r\n","import type { GenericObject, OperationResult } from '../types/index.js';\r\nimport { callIfFn } from './call-if-fn.js';\r\nimport { flatten } from './flatten.js';\r\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\r\n\r\ntype ModifiableKey =\r\n\t| 'mode'\r\n\t| 'cache'\r\n\t| 'signal'\r\n\t| 'headers'\r\n\t| 'integrity'\r\n\t| 'keepalive'\r\n\t| 'credentials';\r\n\r\ntype Modifiable = {\r\n\t[K in ModifiableKey]: Request[K];\r\n};\r\n\r\nexport interface ModifiedRequest\r\n\textends Readonly<Omit<Request, ModifiableKey>>,\r\n\t\tModifiable {}\r\n\r\nexport type GraphQLClientMiddleware = (\r\n\trequest: ModifiedRequest,\r\n) => ModifiedRequest | Promise<ModifiedRequest>;\r\n\r\nexport interface GraphQLClientFetchOptions\r\n\textends Omit<RequestInit, 'body' | 'method'> {}\r\n\r\nexport interface GraphQLClientConfig {\r\n\tfetch?: typeof globalThis.fetch | null;\r\n\tfetchOptions?: GraphQLClientFetchOptions;\r\n\tmiddlewares?: GraphQLClientMiddleware[];\r\n}\r\n\r\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\r\ntype GraphQLErrorExtensionCode =\r\n\t| 'FORBIDDEN'\r\n\t| 'UNAUTHORIZED'\r\n\t| 'BAD_REQUEST'\r\n\t| 'BAD_USER_INPUT'\r\n\t| 'INTERNAL_SERVER_ERROR'\r\n\t| 'ACCESS_TOKEN_EXPIRED';\r\n\r\ninterface GraphQLErrorExtensions {\r\n\tcode: GraphQLErrorExtensionCode;\r\n\tstacktrace: string[];\r\n}\r\n\r\ninterface GraphQLErrorLocation {\r\n\tline: number;\r\n\tcolumn: number;\r\n}\r\n\r\ninterface GraphQLError {\r\n\tpath: string[];\r\n\tmessage?: string;\r\n\textensions?: GraphQLErrorExtensions;\r\n\tlocations: GraphQLErrorLocation[];\r\n}\r\n\r\ntype Getter<T> = () => T;\r\n\r\nexport class GraphQLClient {\r\n\tprivate url: string;\r\n\tprivate config: Getter<GraphQLClientConfig> | GraphQLClientConfig;\r\n\r\n\tconstructor(\r\n\t\turl: string,\r\n\t\tconfig: Getter<GraphQLClientConfig> | GraphQLClientConfig = {},\r\n\t) {\r\n\t\tthis.url = url;\r\n\t\tthis.config = config;\r\n\t}\r\n\r\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables?: Variables,\r\n\t\tuserOptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst config = callIfFn(this.config);\r\n\t\tconst options = mergeFetchOptions(\r\n\t\t\t{\r\n\t\t\t\t...config?.fetchOptions,\r\n\t\t\t\theaders: new Headers(config?.fetchOptions?.headers),\r\n\t\t\t},\r\n\t\t\tuserOptions,\r\n\t\t);\r\n\r\n\t\tconst body = JSON.stringify({\r\n\t\t\tquery,\r\n\t\t\tvariables,\r\n\t\t});\r\n\r\n\t\tconst headers = new Headers(options.headers);\r\n\r\n\t\theaders.set('Content-Type', 'application/json');\r\n\t\theaders.set('Accept', 'application/json');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...options,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t\tconfig?.middlewares ?? [],\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\t/** Single file upload */\r\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t\toptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst cfg = callIfFn(this.config);\r\n\t\tconst opts = mergeFetchOptions(\r\n\t\t\t{\r\n\t\t\t\t...cfg?.fetchOptions,\r\n\t\t\t\theaders: new Headers(cfg?.fetchOptions?.headers),\r\n\t\t\t},\r\n\t\t\toptions,\r\n\t\t);\r\n\r\n\t\tconst body = this.createUploadBody(query, variables);\r\n\t\tconst headers = new Headers(opts.headers);\r\n\r\n\t\theaders.delete('Content-Type');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...opts,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t\tcfg?.middlewares ?? [],\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\r\n\t\tconst config = callIfFn(this.config);\r\n\r\n\t\tconst fetch_ = config.fetch ?? fetch;\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch_(request);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\r\n\t\t\t}\r\n\r\n\t\t\tconst json = await res.json();\r\n\t\t\tconst data = json.data;\r\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\r\n\r\n\t\t\tif (error) {\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\r\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: statusCodeToOperationError(403, error.message),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: statusCodeToOperationError(401, error.message),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\r\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: statusCodeToOperationError(400, error.message),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Fallback for unknown error codes */\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async runMiddlewares(\r\n\t\treq: ModifiedRequest,\r\n\t\tmiddlewares: GraphQLClientMiddleware[],\r\n\t): Promise<ModifiedRequest> {\r\n\t\tlet result = req.clone();\r\n\r\n\t\tfor (const middleware of middlewares) {\r\n\t\t\tresult = await middleware(result);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t) {\r\n\t\tconst files = flatten(variables).filter(\r\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\r\n\t\t);\r\n\r\n\t\tconst body = new FormData();\r\n\r\n\t\tbody.append(\r\n\t\t\t'operations',\r\n\t\t\tJSON.stringify({\r\n\t\t\t\tquery,\r\n\t\t\t\tvariables,\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tconst map: GenericObject = {};\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\r\n\t\t});\r\n\r\n\t\tbody.append('map', JSON.stringify(map));\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tbody.append(i.toString(), o.value);\r\n\t\t});\r\n\r\n\t\treturn body;\r\n\t}\r\n}\r\n\r\nfunction getOperationInfo(query: string) {\r\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\r\n\r\n\tif (!l) return null;\r\n\r\n\tconst k = l.at(1);\r\n\tconst v = l.at(2);\r\n\r\n\treturn k && v ? { type: k, name: v } : null;\r\n}\r\n\r\nfunction mergeFetchOptions(\r\n\ti: GraphQLClientFetchOptions | undefined,\r\n\tj: GraphQLClientFetchOptions | undefined,\r\n): GraphQLClientFetchOptions {\r\n\tif (!i) return j ?? {};\r\n\tif (!j) return i ?? {};\r\n\r\n\treturn {\r\n\t\t...i,\r\n\t\t...j,\r\n\r\n\t\theaders: mergeHeaders(i.headers, j.headers),\r\n\t};\r\n}\r\n\r\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\r\n\tif (!i) return j;\r\n\tif (!j) return i;\r\n\r\n\tconst h = new Headers();\r\n\r\n\tnew Headers(i).forEach((v, k) => h.append(k, v));\r\n\tnew Headers(j).forEach((v, k) => h.append(k, v));\r\n\r\n\treturn h;\r\n}\r\n"]}
|
|
@@ -39,5 +39,5 @@ function callIfFn(value, ...args) {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
export { callIfFn, gql, statusCodeToOperationError };
|
|
42
|
-
//# sourceMappingURL=chunk-
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
//# sourceMappingURL=chunk-WVFSGB7Y.js.map
|
|
43
|
+
//# sourceMappingURL=chunk-WVFSGB7Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/gql.ts","../src/utils/status-code-to-operation-error.ts","../src/utils/call-if-fn.ts"],"names":[],"mappings":";AAAO,SAAS,GAAA,CAAI,YAAkC,MAAA,EAAmB;AACxE,EAAA,IAAI,MAAA,GAAS,EAAA;AAEb,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,MAAM,CAAA,IAAK,OAAA,CAAQ,SAAQ,EAAG;AAChD,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,EAAA,CAAG,KAAK,CAAA,IAAK,EAAA;AAElC,IAAA,MAAA,GAAS,CAAA,EAAG,MAAM,CAAA,EAAG,MAAM,GAAG,KAAK,CAAA,CAAA;AAAA,EACpC;AAEA,EAAA,OAAO,OAAO,IAAA,EAAK;AACpB;;;ACRO,SAAS,0BAAA,CACf,OACA,OAAA,EAC4B;AAC5B,EAAA,MAAM,CAAA,GAAI,UAAU,KAAK,CAAA,GAAI,UAAU,KAAK,CAAA,GAAI,UAAU,GAAG,CAAA;AAE7D,EAAA,OAAO;AAAA,IACN,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,OAAA,EAAS,WAAW,CAAA,CAAE;AAAA,GACvB;AACD;AAEA,IAAM,SAAA,GAAuD;AAAA,EAC5D,GAAA,EAAK,EAAE,IAAA,EAAM,gBAAA,EAAkB,SAAS,aAAA,EAAc;AAAA,EACtD,GAAA,EAAK,EAAE,IAAA,EAAM,kBAAA,EAAoB,SAAS,cAAA,EAAe;AAAA,EACzD,GAAA,EAAK,EAAE,IAAA,EAAM,eAAA,EAAiB,SAAS,WAAA,EAAY;AAAA,EACnD,GAAA,EAAK,EAAE,IAAA,EAAM,cAAA,EAAgB,SAAS,WAAA,EAAY;AAAA,EAClD,GAAA,EAAK,EAAE,IAAA,EAAM,oBAAA,EAAsB,SAAS,iBAAA,EAAkB;AAAA,EAC9D,GAAA,EAAK,EAAE,IAAA,EAAM,qBAAA,EAAuB,SAAS,mBAAA,EAAoB;AAAA,EACjE,GAAA,EAAK,EAAE,IAAA,EAAM,yBAAA,EAA2B,SAAS,uBAAA;AAClD,CAAA;;;ACtBA,SAAS,WACR,KAAA,EACuC;AACvC,EAAA,OAAO,OAAO,KAAA,KAAU,UAAA;AACzB;AAEO,SAAS,QAAA,CACf,UACG,IAAA,EACF;AACD,EAAA,IAAI,UAAA,CAAyB,KAAK,CAAA,EAAG;AACpC,IAAA,OAAO,KAAA,CAAM,GAAG,IAAI,CAAA;AAAA,EACrB,CAAA,MAAO;AACN,IAAA,OAAO,KAAA;AAAA,EACR;AACD","file":"chunk-WVFSGB7Y.js","sourcesContent":["export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\r\n\tlet result = '';\r\n\r\n\tfor (const [index, string] of strings.entries()) {\r\n\t\tconst value = values.at(index) ?? '';\r\n\r\n\t\tresult = `${result}${string}${value}`;\r\n\t}\r\n\r\n\treturn result.trim();\r\n}\r\n","import type { HttpError, OperationError } from '../types/index.js';\r\n\r\nexport function statusCodeToOperationError(\r\n\tvalue: number,\r\n\tmessage?: string,\r\n): OperationError<HttpError> {\r\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\r\n\r\n\treturn {\r\n\t\tname: e.name,\r\n\t\tmessage: message ?? e.message,\r\n\t};\r\n}\r\n\r\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\r\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\r\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\r\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\r\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\r\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\r\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\r\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\r\n};\r\n","function isFunction<Return, Args = never>(\r\n\tvalue: unknown | ((...args: Args[]) => Return),\r\n): value is (...args: Args[]) => Return {\r\n\treturn typeof value === 'function';\r\n}\r\n\r\nexport function callIfFn<Return, Args = never>(\r\n\tvalue: Return | ((...args: Args[]) => Return),\r\n\t...args: Args[]\r\n) {\r\n\tif (isFunction<Return, Args>(value)) {\r\n\t\treturn value(...args);\r\n\t} else {\r\n\t\treturn value;\r\n\t}\r\n}\r\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -4358,6 +4358,26 @@ var AccountService = class {
|
|
|
4358
4358
|
};
|
|
4359
4359
|
}
|
|
4360
4360
|
};
|
|
4361
|
+
var thumbmark_instance;
|
|
4362
|
+
async function getFingerPrint() {
|
|
4363
|
+
if (typeof window === "undefined") return null;
|
|
4364
|
+
if (!thumbmark_instance) {
|
|
4365
|
+
thumbmark_instance = new thumbmarkjs.Thumbmark({
|
|
4366
|
+
logging: false,
|
|
4367
|
+
timeout: 3e4,
|
|
4368
|
+
cache_lifetime_in_ms: 1 * 60 * 60 * 1e3
|
|
4369
|
+
});
|
|
4370
|
+
}
|
|
4371
|
+
try {
|
|
4372
|
+
const cached = sessionStorage.getItem("fingerprint");
|
|
4373
|
+
if (cached) return cached;
|
|
4374
|
+
const result = await thumbmark_instance.get();
|
|
4375
|
+
sessionStorage.setItem("fingerprint", result.thumbmark);
|
|
4376
|
+
return result.thumbmark;
|
|
4377
|
+
} catch {
|
|
4378
|
+
return null;
|
|
4379
|
+
}
|
|
4380
|
+
}
|
|
4361
4381
|
|
|
4362
4382
|
// src/utils/status-code-to-operation-error.ts
|
|
4363
4383
|
function statusCodeToOperationError(value, message) {
|
|
@@ -4391,8 +4411,14 @@ var AuthService = class {
|
|
|
4391
4411
|
headers.append("Content-Type", "application/json");
|
|
4392
4412
|
return headers;
|
|
4393
4413
|
}
|
|
4394
|
-
async createSession(input) {
|
|
4414
|
+
async createSession(input, version = 1) {
|
|
4395
4415
|
const headers = new Headers(this.headers);
|
|
4416
|
+
if (version === 3) {
|
|
4417
|
+
const fingerprint = await getFingerPrint();
|
|
4418
|
+
if (fingerprint) {
|
|
4419
|
+
headers.append("Fingerprint", fingerprint);
|
|
4420
|
+
}
|
|
4421
|
+
}
|
|
4396
4422
|
if (input.channel) {
|
|
4397
4423
|
headers.append("Channel", input.channel);
|
|
4398
4424
|
}
|
|
@@ -4425,9 +4451,10 @@ var AuthService = class {
|
|
|
4425
4451
|
headers.set("test-pass", input.testPass);
|
|
4426
4452
|
}
|
|
4427
4453
|
try {
|
|
4428
|
-
const res = await fetch(`${this.url}/sessions`, {
|
|
4454
|
+
const res = await fetch(`${this.url}${version === 3 ? "/v3/sessions" : "/sessions"}`, {
|
|
4429
4455
|
method: "POST",
|
|
4430
|
-
headers
|
|
4456
|
+
headers,
|
|
4457
|
+
body: JSON.stringify(input)
|
|
4431
4458
|
});
|
|
4432
4459
|
const data = await res.json();
|
|
4433
4460
|
if (res.ok) {
|
|
@@ -4579,7 +4606,7 @@ var AuthService = class {
|
|
|
4579
4606
|
return true;
|
|
4580
4607
|
}
|
|
4581
4608
|
}
|
|
4582
|
-
async sendVerificationCode(input) {
|
|
4609
|
+
async sendVerificationCode(input, recaptchaResponse) {
|
|
4583
4610
|
if (input.channel === "EMAIL")
|
|
4584
4611
|
throw new Error("Email channel is not yet supported");
|
|
4585
4612
|
function getErrorCode(message) {
|
|
@@ -4597,8 +4624,15 @@ var AuthService = class {
|
|
|
4597
4624
|
try {
|
|
4598
4625
|
const res = await fetch(`${this.url}/otps`, {
|
|
4599
4626
|
method: "POST",
|
|
4600
|
-
headers:
|
|
4601
|
-
|
|
4627
|
+
headers: {
|
|
4628
|
+
...this.headers,
|
|
4629
|
+
...recaptchaResponse && {
|
|
4630
|
+
"google-recaptcha-response": recaptchaResponse
|
|
4631
|
+
}
|
|
4632
|
+
},
|
|
4633
|
+
body: JSON.stringify({
|
|
4634
|
+
...input
|
|
4635
|
+
})
|
|
4602
4636
|
});
|
|
4603
4637
|
if (res.status === 403) {
|
|
4604
4638
|
const data = await res.json();
|
|
@@ -6723,6 +6757,8 @@ function addHours(date, hours) {
|
|
|
6723
6757
|
result.setHours(result.getHours() + hours);
|
|
6724
6758
|
return result;
|
|
6725
6759
|
}
|
|
6760
|
+
|
|
6761
|
+
// src/sdk/utils.ts
|
|
6726
6762
|
function getLocaleByCurrency(currency) {
|
|
6727
6763
|
if (currency === "INR") return "en-IN";
|
|
6728
6764
|
if (currency === "MYR") return "en-MY";
|
|
@@ -6752,26 +6788,6 @@ function parseFbCxd(input) {
|
|
|
6752
6788
|
const fbAdditionalCxd = input.split(cxd)[1].slice(1);
|
|
6753
6789
|
return { cxd, fbAdditionalCxd };
|
|
6754
6790
|
}
|
|
6755
|
-
var thumbmark_instance;
|
|
6756
|
-
async function getFingerprint() {
|
|
6757
|
-
if (typeof window === "undefined") return null;
|
|
6758
|
-
if (!thumbmark_instance) {
|
|
6759
|
-
thumbmark_instance = new thumbmarkjs.Thumbmark({
|
|
6760
|
-
logging: false,
|
|
6761
|
-
timeout: 3e4,
|
|
6762
|
-
cache_lifetime_in_ms: 1 * 60 * 60 * 1e3
|
|
6763
|
-
});
|
|
6764
|
-
}
|
|
6765
|
-
try {
|
|
6766
|
-
const cached = sessionStorage.getItem("fingerprint");
|
|
6767
|
-
if (cached) return cached;
|
|
6768
|
-
const result = await thumbmark_instance.get();
|
|
6769
|
-
sessionStorage.setItem("fingerprint", result.thumbmark);
|
|
6770
|
-
return result.thumbmark;
|
|
6771
|
-
} catch {
|
|
6772
|
-
return null;
|
|
6773
|
-
}
|
|
6774
|
-
}
|
|
6775
6791
|
function getCookie(name) {
|
|
6776
6792
|
if (typeof document === "undefined") return null;
|
|
6777
6793
|
const nameLenPlus = name.length + 1;
|
|
@@ -9742,7 +9758,7 @@ var Sdk = class {
|
|
|
9742
9758
|
};
|
|
9743
9759
|
}
|
|
9744
9760
|
async fingerprint() {
|
|
9745
|
-
return await
|
|
9761
|
+
return await getFingerPrint();
|
|
9746
9762
|
}
|
|
9747
9763
|
get miscMiddleware() {
|
|
9748
9764
|
return async (request) => {
|