@opexa/portal-sdk 0.59.89 → 0.59.91

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.
@@ -1,4 +1,4 @@
1
- import { callIfFn, statusCodeToOperationError } from './chunk-WVFSGB7Y.js';
1
+ import { callIfFn, statusCodeToOperationError } from './chunk-ROBGEUSE.js';
2
2
 
3
3
  // src/utils/is-plain-object.ts
4
4
  function isPlainObject(value) {
@@ -221,5 +221,5 @@ function mergeHeaders(i, j) {
221
221
  }
222
222
 
223
223
  export { GraphQLClient, isPlainObject };
224
- //# sourceMappingURL=chunk-7APXFZ5G.js.map
225
- //# sourceMappingURL=chunk-7APXFZ5G.js.map
224
+ //# sourceMappingURL=chunk-5WRVWQBT.js.map
225
+ //# sourceMappingURL=chunk-5WRVWQBT.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-5WRVWQBT.js","sourcesContent":["export function isPlainObject(value: unknown): value is Record<string, any> {\n\treturn (\n\t\tObject.prototype.toString.call(value) === '[object Object]' &&\n\t\tObject(value) === value\n\t);\n}\n","import { isPlainObject } from './is-plain-object.js';\n\nexport function flatten(value: Record<string, any> | any[]) {\n\tconst result: {\n\t\tkey: string[];\n\t\tvalue: any;\n\t}[] = [];\n\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\n\t\tfor (const k in o) {\n\t\t\tconst v = o[k];\n\n\t\t\tif (isPlainObject(v)) {\n\t\t\t\tfn(v, [...parentKeys, k]);\n\t\t\t} else if (Array.isArray(v)) {\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\n\t\t\t} else {\n\t\t\t\tresult.push({\n\t\t\t\t\tkey: [...parentKeys, k],\n\t\t\t\t\tvalue: v,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tfn(value);\n\n\treturn result;\n}\n\nfunction arrayToObject(array: unknown[]) {\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\n\t\to[i] = v;\n\t\treturn o;\n\t}, {});\n}\n","import type { GenericObject, OperationResult } from '../types/index.js';\nimport { callIfFn } from './call-if-fn.js';\nimport { flatten } from './flatten.js';\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\n\ntype ModifiableKey =\n\t| 'mode'\n\t| 'cache'\n\t| 'signal'\n\t| 'headers'\n\t| 'integrity'\n\t| 'keepalive'\n\t| 'credentials';\n\ntype Modifiable = {\n\t[K in ModifiableKey]: Request[K];\n};\n\nexport interface ModifiedRequest\n\textends Readonly<Omit<Request, ModifiableKey>>,\n\t\tModifiable {}\n\nexport type GraphQLClientMiddleware = (\n\trequest: ModifiedRequest,\n) => ModifiedRequest | Promise<ModifiedRequest>;\n\nexport interface GraphQLClientFetchOptions extends Omit<RequestInit, 'body'> {}\n\nexport interface GraphQLClientConfig {\n\tfetch?: typeof globalThis.fetch | null;\n\tfetchOptions?: GraphQLClientFetchOptions;\n\tmiddlewares?: GraphQLClientMiddleware[];\n}\n\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\ntype GraphQLErrorExtensionCode =\n\t| 'FORBIDDEN'\n\t| 'UNAUTHORIZED'\n\t| 'BAD_REQUEST'\n\t| 'BAD_USER_INPUT'\n\t| 'INTERNAL_SERVER_ERROR'\n\t| 'ACCESS_TOKEN_EXPIRED';\n\ninterface GraphQLErrorExtensions {\n\tcode: GraphQLErrorExtensionCode;\n\tstacktrace: string[];\n}\n\ninterface GraphQLErrorLocation {\n\tline: number;\n\tcolumn: number;\n}\n\ninterface GraphQLError {\n\tpath: string[];\n\tmessage?: string;\n\textensions?: GraphQLErrorExtensions;\n\tlocations: GraphQLErrorLocation[];\n}\n\ntype Getter<T> = () => T;\n\nexport class GraphQLClient {\n\tprivate url: string;\n\tprivate config: Getter<GraphQLClientConfig> | GraphQLClientConfig;\n\n\tconstructor(\n\t\turl: string,\n\t\tconfig: Getter<GraphQLClientConfig> | GraphQLClientConfig = {},\n\t) {\n\t\tthis.url = url;\n\t\tthis.config = config;\n\t}\n\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables?: Variables,\n\t\tuserOptions?: GraphQLClientFetchOptions,\n\t) {\n\t\tconst config = callIfFn(this.config);\n\t\tconst options = mergeFetchOptions(\n\t\t\t{\n\t\t\t\t...config?.fetchOptions,\n\t\t\t\theaders: new Headers(config?.fetchOptions?.headers),\n\t\t\t},\n\t\t\tuserOptions,\n\t\t);\n\n\t\tconst url = new URL(this.url);\n\t\tconst operationInfo = getOperationInfo(query);\n\n\t\tif (operationInfo) {\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\n\t\t}\n\n\t\tconst method = options.method?.toUpperCase() ?? 'POST';\n\t\tconst headers = new Headers(options.headers);\n\n\t\tlet body: string | undefined;\n\n\t\tif (method === 'GET') {\n\t\t\turl.searchParams.set('query', minify(query));\n\n\t\t\tif (variables) {\n\t\t\t\turl.searchParams.set('variables', JSON.stringify(variables));\n\t\t\t}\n\n\t\t\theaders.delete('Content-Type');\n\t\t} else {\n\t\t\tbody = JSON.stringify({\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t});\n\n\t\t\theaders.set('Content-Type', 'application/json');\n\t\t}\n\n\t\theaders.set('Accept', 'application/json');\n\n\t\tconst req = await this.runMiddlewares(\n\t\t\tnew Request(url, {\n\t\t\t\t...options,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod,\n\t\t\t}),\n\t\t\tconfig?.middlewares ?? [],\n\t\t);\n\n\t\treturn await this.exec<Data>(req);\n\t}\n\n\t/** Single file upload */\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables: Variables,\n\t\toptions?: GraphQLClientFetchOptions,\n\t) {\n\t\tconst cfg = callIfFn(this.config);\n\t\tconst opts = mergeFetchOptions(\n\t\t\t{\n\t\t\t\t...cfg?.fetchOptions,\n\t\t\t\theaders: new Headers(cfg?.fetchOptions?.headers),\n\t\t\t},\n\t\t\toptions,\n\t\t);\n\n\t\tconst body = this.createUploadBody(query, variables);\n\t\tconst headers = new Headers(opts.headers);\n\n\t\theaders.delete('Content-Type');\n\n\t\tconst url = new URL(this.url);\n\t\tconst operationInfo = getOperationInfo(query);\n\n\t\tif (operationInfo) {\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\n\t\t}\n\n\t\tconst req = await this.runMiddlewares(\n\t\t\tnew Request(url, {\n\t\t\t\t...opts,\n\t\t\t\tbody,\n\t\t\t\theaders,\n\t\t\t\tmethod: 'POST',\n\t\t\t}),\n\t\t\tcfg?.middlewares ?? [],\n\t\t);\n\n\t\treturn await this.exec<Data>(req);\n\t}\n\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\n\t\tconst config = callIfFn(this.config);\n\n\t\tconst fetch_ = config.fetch ?? fetch;\n\n\t\ttry {\n\t\t\tconst res = await fetch_(request);\n\n\t\t\tif (!res.ok) {\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\n\t\t\t}\n\n\t\t\tconst json = await res.json();\n\t\t\tconst data = json.data;\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\n\n\t\t\tif (error) {\n\t\t\t\tif (\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(403, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(401, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: statusCodeToOperationError(400, error.message),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t/* Fallback for unknown error codes */\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: statusCodeToOperationError(500),\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate async runMiddlewares(\n\t\treq: ModifiedRequest,\n\t\tmiddlewares: GraphQLClientMiddleware[],\n\t): Promise<ModifiedRequest> {\n\t\tlet result = req.clone();\n\n\t\tfor (const middleware of middlewares) {\n\t\t\tresult = await middleware(result);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\n\t\tquery: string,\n\t\tvariables: Variables,\n\t) {\n\t\tconst files = flatten(variables).filter(\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\n\t\t);\n\n\t\tconst body = new FormData();\n\n\t\tbody.append(\n\t\t\t'operations',\n\t\t\tJSON.stringify({\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t}),\n\t\t);\n\n\t\tconst map: GenericObject = {};\n\n\t\tfiles.forEach((o, i) => {\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\n\t\t});\n\n\t\tbody.append('map', JSON.stringify(map));\n\n\t\tfiles.forEach((o, i) => {\n\t\t\tbody.append(i.toString(), o.value);\n\t\t});\n\n\t\treturn body;\n\t}\n}\n\nfunction getOperationInfo(query: string) {\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\n\n\tif (!l) return null;\n\n\tconst k = l.at(1);\n\tconst v = l.at(2);\n\n\treturn k && v ? { type: k, name: v } : null;\n}\n\nfunction mergeFetchOptions(\n\ti: GraphQLClientFetchOptions | undefined,\n\tj: GraphQLClientFetchOptions | undefined,\n): GraphQLClientFetchOptions {\n\tif (!i) return j ?? {};\n\tif (!j) return i ?? {};\n\n\treturn {\n\t\t...i,\n\t\t...j,\n\n\t\theaders: mergeHeaders(i.headers, j.headers),\n\t};\n}\n\nfunction minify(input: string): string {\n\treturn input.replace(/\\s+/g, ' ').trim();\n}\n\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\n\tif (!i) return j;\n\tif (!j) return i;\n\n\tconst h = new Headers();\n\n\tnew Headers(i).forEach((v, k) => {\n\t\th.append(k, v);\n\t});\n\n\tnew Headers(j).forEach((v, k) => {\n\t\th.append(k, v);\n\t});\n\n\treturn h;\n}\n"]}
@@ -39,5 +39,5 @@ function callIfFn(value, ...args) {
39
39
  }
40
40
 
41
41
  export { callIfFn, gql, statusCodeToOperationError };
42
- //# sourceMappingURL=chunk-WVFSGB7Y.js.map
43
- //# sourceMappingURL=chunk-WVFSGB7Y.js.map
42
+ //# sourceMappingURL=chunk-ROBGEUSE.js.map
43
+ //# sourceMappingURL=chunk-ROBGEUSE.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-ROBGEUSE.js","sourcesContent":["export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\n\tlet result = '';\n\n\tfor (const [index, string] of strings.entries()) {\n\t\tconst value = values.at(index) ?? '';\n\n\t\tresult = `${result}${string}${value}`;\n\t}\n\n\treturn result.trim();\n}\n","import type { HttpError, OperationError } from '../types/index.js';\n\nexport function statusCodeToOperationError(\n\tvalue: number,\n\tmessage?: string,\n): OperationError<HttpError> {\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\n\n\treturn {\n\t\tname: e.name,\n\t\tmessage: message ?? e.message,\n\t};\n}\n\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\n};\n","function isFunction<Return, Args = never>(\n\tvalue: unknown | ((...args: Args[]) => Return),\n): value is (...args: Args[]) => Return {\n\treturn typeof value === 'function';\n}\n\nexport function callIfFn<Return, Args = never>(\n\tvalue: Return | ((...args: Args[]) => Return),\n\t...args: Args[]\n) {\n\tif (isFunction<Return, Args>(value)) {\n\t\treturn value(...args);\n\t} else {\n\t\treturn value;\n\t}\n}\n"]}
package/dist/index.cjs CHANGED
@@ -4838,6 +4838,12 @@ var AuthService = class {
4838
4838
  error: createOperationError("AccountSuspendedError")
4839
4839
  };
4840
4840
  }
4841
+ if (body.code === "REFRESH_TOKEN_EXPIRED") {
4842
+ return {
4843
+ ok: false,
4844
+ error: createOperationError("SessionExpiredError")
4845
+ };
4846
+ }
4841
4847
  if (res.status === 403 || res.status === 401) {
4842
4848
  return {
4843
4849
  ok: false,
@@ -7484,7 +7490,8 @@ var SessionManager = class {
7484
7490
  if (input.type === "MOBILE_NUMBER") {
7485
7491
  const res2 = await this.authService.createSession(input, version);
7486
7492
  if (res2.ok) {
7487
- if (!this.persist(res2.data, version)) return this.malformedResponseError();
7493
+ if (!this.persist(res2.data, version))
7494
+ return this.malformedResponseError();
7488
7495
  return {
7489
7496
  ok: true,
7490
7497
  data: null
@@ -7502,7 +7509,8 @@ var SessionManager = class {
7502
7509
  version
7503
7510
  );
7504
7511
  if (res2.ok) {
7505
- if (!this.persist(res2.data, version)) return this.malformedResponseError();
7512
+ if (!this.persist(res2.data, version))
7513
+ return this.malformedResponseError();
7506
7514
  return {
7507
7515
  ok: true,
7508
7516
  data: null
@@ -7514,7 +7522,8 @@ var SessionManager = class {
7514
7522
  localStorage.setItem(this.platformStorageKey, "CABINET");
7515
7523
  const res2 = await this.authService.createSession(input, version);
7516
7524
  if (res2.ok) {
7517
- if (!this.persist(res2.data, version)) return this.malformedResponseError();
7525
+ if (!this.persist(res2.data, version))
7526
+ return this.malformedResponseError();
7518
7527
  return {
7519
7528
  ok: true,
7520
7529
  data: null
@@ -7738,7 +7747,7 @@ var SessionManager = class {
7738
7747
  this.refreshing = false;
7739
7748
  if (!res.ok) {
7740
7749
  this.logger.error(`Failed to refresh session: ${res.error.message}`);
7741
- if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
7750
+ if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError" || res.error.name === "SessionExpiredError") {
7742
7751
  this.v4AccessToken = null;
7743
7752
  this.v4AccessTokenExpiresAt = null;
7744
7753
  }
@@ -7785,35 +7794,38 @@ var SessionManager = class {
7785
7794
  async verify() {
7786
7795
  if (this.isServer) {
7787
7796
  this.logger.warn("'localStorage' is not available on the server.");
7788
- return true;
7797
+ return { valid: true };
7789
7798
  }
7790
7799
  const val = localStorage.getItem(this.storageKey);
7791
7800
  if (val) {
7792
7801
  try {
7793
7802
  const stored = JSON.parse(val);
7794
7803
  if (stored.version === 4) {
7795
- const valid = await this.verifyV4(stored.session);
7796
- if (!valid) localStorage.removeItem(this.storageKey);
7797
- return valid;
7804
+ const res = await this.verifyV4(stored.session);
7805
+ if (!res.valid) localStorage.removeItem(this.storageKey);
7806
+ return res;
7798
7807
  }
7799
7808
  } catch {
7800
7809
  }
7801
7810
  }
7802
7811
  const s = await this.get();
7803
- if (s.error?.name === "InvalidTokenError") return false;
7804
- if (s.error?.name === "SessionExpiredError") return false;
7805
- if (s.error?.name === "AccountBlacklistedError") return false;
7806
- if (!s.data) return true;
7812
+ if (s.error?.name === "InvalidTokenError" || s.error?.name === "SessionExpiredError" || s.error?.name === "AccountBlacklistedError") {
7813
+ return { valid: false, reason: "INVALID_SESSION" };
7814
+ }
7815
+ if (!s.data) return { valid: true };
7807
7816
  const v = await this.authService.verifySession(s.data.accessToken);
7808
7817
  if (!v) {
7809
7818
  localStorage.removeItem(this.storageKey);
7810
7819
  }
7811
- return v;
7820
+ return v ? { valid: true } : { valid: false, reason: "INVALID_SESSION" };
7812
7821
  }
7813
7822
  async verifyV4(session) {
7814
7823
  if (!this.v4AccessToken || !this.v4AccessTokenExpiresAt || isAfter(/* @__PURE__ */ new Date(), new Date(this.v4AccessTokenExpiresAt))) {
7815
7824
  const res = await this.refreshV4(session);
7816
- return res.ok;
7825
+ return res.ok ? { valid: true } : {
7826
+ valid: false,
7827
+ reason: res.error.name === "SessionExpiredError" ? "REFRESH_TOKEN_EXPIRED" : "INVALID_SESSION"
7828
+ };
7817
7829
  }
7818
7830
  const v = await this.authService.verifySession(this.v4AccessToken);
7819
7831
  if (!v) {
@@ -7821,7 +7833,7 @@ var SessionManager = class {
7821
7833
  this.v4AccessToken = null;
7822
7834
  this.v4AccessTokenExpiresAt = null;
7823
7835
  }
7824
- return v;
7836
+ return v ? { valid: true } : { valid: false, reason: "INVALID_SESSION" };
7825
7837
  }
7826
7838
  get onMaya() {
7827
7839
  if (this.isServer) {
@@ -8172,7 +8184,7 @@ var SessionManagerCookie = class {
8172
8184
  this.refreshing = false;
8173
8185
  if (!res.ok) {
8174
8186
  this.logger.error(`Failed to refresh session: ${res.error.message}`);
8175
- if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
8187
+ if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError" || res.error.name === "SessionExpiredError") {
8176
8188
  this.v4AccessToken = null;
8177
8189
  this.v4AccessTokenExpiresAt = null;
8178
8190
  }
@@ -8219,35 +8231,38 @@ var SessionManagerCookie = class {
8219
8231
  async verify() {
8220
8232
  if (this.isServer) {
8221
8233
  this.logger.warn("'client cookies' is not available on the server.");
8222
- return true;
8234
+ return { valid: true };
8223
8235
  }
8224
8236
  const val = cookies__default.default.get(this.storageKey);
8225
8237
  if (val) {
8226
8238
  try {
8227
8239
  const stored = JSON.parse(val);
8228
8240
  if (stored.version === 4) {
8229
- const valid = await this.verifyV4(stored.session);
8230
- if (!valid) cookies__default.default.remove(this.storageKey);
8231
- return valid;
8241
+ const res = await this.verifyV4(stored.session);
8242
+ if (!res.valid) cookies__default.default.remove(this.storageKey);
8243
+ return res;
8232
8244
  }
8233
8245
  } catch {
8234
8246
  }
8235
8247
  }
8236
8248
  const s = await this.get();
8237
- if (s.error?.name === "InvalidTokenError") return false;
8238
- if (s.error?.name === "SessionExpiredError") return false;
8239
- if (s.error?.name === "AccountBlacklistedError") return false;
8240
- if (!s.data) return true;
8249
+ if (s.error?.name === "InvalidTokenError" || s.error?.name === "SessionExpiredError" || s.error?.name === "AccountBlacklistedError") {
8250
+ return { valid: false, reason: "INVALID_SESSION" };
8251
+ }
8252
+ if (!s.data) return { valid: true };
8241
8253
  const v = await this.authService.verifySession(s.data.accessToken);
8242
8254
  if (!v) {
8243
8255
  cookies__default.default.remove(this.storageKey);
8244
8256
  }
8245
- return v;
8257
+ return v ? { valid: true } : { valid: false, reason: "INVALID_SESSION" };
8246
8258
  }
8247
8259
  async verifyV4(session) {
8248
8260
  if (!this.v4AccessToken || !this.v4AccessTokenExpiresAt || isAfter(/* @__PURE__ */ new Date(), new Date(this.v4AccessTokenExpiresAt))) {
8249
8261
  const res = await this.refreshV4(session);
8250
- return res.ok;
8262
+ return res.ok ? { valid: true } : {
8263
+ valid: false,
8264
+ reason: res.error.name === "SessionExpiredError" ? "REFRESH_TOKEN_EXPIRED" : "INVALID_SESSION"
8265
+ };
8251
8266
  }
8252
8267
  const v = await this.authService.verifySession(this.v4AccessToken);
8253
8268
  if (!v) {
@@ -8255,7 +8270,7 @@ var SessionManagerCookie = class {
8255
8270
  this.v4AccessToken = null;
8256
8271
  this.v4AccessTokenExpiresAt = null;
8257
8272
  }
8258
- return v;
8273
+ return v ? { valid: true } : { valid: false, reason: "INVALID_SESSION" };
8259
8274
  }
8260
8275
  get onMaya() {
8261
8276
  if (this.isServer) {
@@ -10135,6 +10150,7 @@ var Sdk = class {
10135
10150
  sitePlatform,
10136
10151
  platform,
10137
10152
  environment,
10153
+ authApiBaseUrl,
10138
10154
  logs
10139
10155
  } = Object.assign(defaultConfig, config);
10140
10156
  const production = environment === "production";
@@ -10144,7 +10160,7 @@ var Sdk = class {
10144
10160
  const adManager = new AdManager({ logger });
10145
10161
  const cellexpertManager = new CellexpertManager({ logger });
10146
10162
  const transformer = new Transformer();
10147
- const authUrl = ENDPOINTS[environment].auth;
10163
+ const authUrl = authApiBaseUrl || ENDPOINTS[environment].auth;
10148
10164
  const walletUrl = ENDPOINTS[environment].wallet;
10149
10165
  const extensionUrl = ENDPOINTS[environment].extension;
10150
10166
  const reportUrl = ENDPOINTS[environment].report;
@@ -10566,10 +10582,10 @@ var Sdk = class {
10566
10582
  try {
10567
10583
  res = await this.sessionManager.verify();
10568
10584
  } catch {
10569
- res = false;
10585
+ res = { valid: false, reason: "INVALID_SESSION" };
10570
10586
  }
10571
- if (!res) {
10572
- await input.onInvalid();
10587
+ if (!res.valid) {
10588
+ await input.onInvalid(res.reason ?? "INVALID_SESSION");
10573
10589
  }
10574
10590
  }
10575
10591
  timeout = assignTimeout();