@opexa/portal-sdk 0.59.72 → 0.59.73

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-ROBGEUSE.js';
1
+ import { callIfFn, statusCodeToOperationError } from './chunk-WVFSGB7Y.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-5WRVWQBT.js.map
225
- //# sourceMappingURL=chunk-5WRVWQBT.js.map
224
+ //# sourceMappingURL=chunk-7APXFZ5G.js.map
225
+ //# sourceMappingURL=chunk-7APXFZ5G.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":";;;AAAO,SAAS,cAAc,KAAA,EAA8C;AAC3E,EAAA,OACC,MAAA,CAAO,UAAU,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,KAAM,iBAAA,IAC1C,MAAA,CAAO,KAAK,CAAA,KAAM,KAAA;AAEpB;;;ACHO,SAAS,QAAQ,KAAA,EAAoC;AAC3D,EAAA,MAAM,SAGA,EAAC;AAEP,EAAA,SAAS,EAAA,CAAG,CAAA,EAAwB,UAAA,GAAuB,EAAC,EAAG;AAC9D,IAAA,KAAA,MAAW,KAAK,CAAA,EAAG;AAClB,MAAA,MAAM,CAAA,GAAI,EAAE,CAAC,CAAA;AAEb,MAAA,IAAI,aAAA,CAAc,CAAC,CAAA,EAAG;AACrB,QAAA,EAAA,CAAG,CAAA,EAAG,CAAC,GAAG,UAAA,EAAY,CAAC,CAAC,CAAA;AAAA,MACzB,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG;AAC5B,QAAA,EAAA,CAAG,cAAc,CAAC,CAAA,EAAG,CAAC,GAAG,UAAA,EAAY,CAAC,CAAC,CAAA;AAAA,MACxC,CAAA,MAAO;AACN,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACX,GAAA,EAAK,CAAC,GAAG,UAAA,EAAY,CAAC,CAAA;AAAA,UACtB,KAAA,EAAO;AAAA,SACP,CAAA;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAEA,EAAA,EAAA,CAAG,KAAK,CAAA;AAER,EAAA,OAAO,MAAA;AACR;AAEA,SAAS,cAAc,KAAA,EAAkB;AACxC,EAAA,OAAO,KAAA,CAAM,MAAA,CAA4B,CAAC,CAAA,EAAG,GAAG,CAAA,KAAM;AACrD,IAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA;AACP,IAAA,OAAO,CAAA;AAAA,EACR,CAAA,EAAG,EAAE,CAAA;AACN;;;AC2BO,IAAM,gBAAN,MAAoB;AAAA,EAClB,GAAA;AAAA,EACA,MAAA;AAAA,EAER,WAAA,CACC,GAAA,EACA,MAAA,GAA4D,EAAC,EAC5D;AACD,IAAA,IAAA,CAAK,GAAA,GAAM,GAAA;AACX,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EACf;AAAA,EAEA,MAAM,OAAA,CACL,KAAA,EACA,SAAA,EACA,WAAA,EACC;AACD,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AACnC,IAAA,MAAM,OAAA,GAAU,iBAAA;AAAA,MACf;AAAA,QACC,GAAG,MAAA,EAAQ,YAAA;AAAA,QACX,OAAA,EAAS,IAAI,OAAA,CAAQ,MAAA,EAAQ,cAAc,OAAO;AAAA,OACnD;AAAA,MACA;AAAA,KACD;AAEA,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAC5B,IAAA,MAAM,aAAA,GAAgB,iBAAiB,KAAK,CAAA;AAE5C,IAAA,IAAI,aAAA,EAAe;AAClB,MAAA,GAAA,CAAI,aAAa,GAAA,CAAI,CAAA,CAAA,EAAI,cAAc,IAAI,CAAA,CAAA,EAAI,cAAc,IAAI,CAAA;AAAA,IAClE;AAEA,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,EAAQ,WAAA,EAAY,IAAK,MAAA;AAChD,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA;AAE3C,IAAA,IAAI,IAAA;AAEJ,IAAA,IAAI,WAAW,KAAA,EAAO;AACrB,MAAA,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,OAAA,EAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAE3C,MAAA,IAAI,SAAA,EAAW;AACd,QAAA,GAAA,CAAI,aAAa,GAAA,CAAI,WAAA,EAAa,IAAA,CAAK,SAAA,CAAU,SAAS,CAAC,CAAA;AAAA,MAC5D;AAEA,MAAA,OAAA,CAAQ,OAAO,cAAc,CAAA;AAAA,IAC9B,CAAA,MAAO;AACN,MAAA,IAAA,GAAO,KAAK,SAAA,CAAU;AAAA,QACrB,KAAA;AAAA,QACA;AAAA,OACA,CAAA;AAED,MAAA,OAAA,CAAQ,GAAA,CAAI,gBAAgB,kBAAkB,CAAA;AAAA,IAC/C;AAEA,IAAA,OAAA,CAAQ,GAAA,CAAI,UAAU,kBAAkB,CAAA;AAExC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA;AAAA,MACtB,IAAI,QAAQ,GAAA,EAAK;AAAA,QAChB,GAAG,OAAA;AAAA,QACH,IAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACA,CAAA;AAAA,MACD,MAAA,EAAQ,eAAe;AAAC,KACzB;AAEA,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAW,GAAG,CAAA;AAAA,EACjC;AAAA;AAAA,EAGA,MAAM,MAAA,CACL,KAAA,EACA,SAAA,EACA,OAAA,EACC;AACD,IAAA,MAAM,GAAA,GAAM,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AAChC,IAAA,MAAM,IAAA,GAAO,iBAAA;AAAA,MACZ;AAAA,QACC,GAAG,GAAA,EAAK,YAAA;AAAA,QACR,OAAA,EAAS,IAAI,OAAA,CAAQ,GAAA,EAAK,cAAc,OAAO;AAAA,OAChD;AAAA,MACA;AAAA,KACD;AAEA,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,gBAAA,CAAiB,KAAA,EAAO,SAAS,CAAA;AACnD,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA;AAExC,IAAA,OAAA,CAAQ,OAAO,cAAc,CAAA;AAE7B,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAC5B,IAAA,MAAM,aAAA,GAAgB,iBAAiB,KAAK,CAAA;AAE5C,IAAA,IAAI,aAAA,EAAe;AAClB,MAAA,GAAA,CAAI,aAAa,GAAA,CAAI,CAAA,CAAA,EAAI,cAAc,IAAI,CAAA,CAAA,EAAI,cAAc,IAAI,CAAA;AAAA,IAClE;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA;AAAA,MACtB,IAAI,QAAQ,GAAA,EAAK;AAAA,QAChB,GAAG,IAAA;AAAA,QACH,IAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA,EAAQ;AAAA,OACR,CAAA;AAAA,MACD,GAAA,EAAK,eAAe;AAAC,KACtB;AAEA,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAW,GAAG,CAAA;AAAA,EACjC;AAAA,EAEA,MAAc,KAAQ,OAAA,EAAsD;AAC3E,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AAEnC,IAAA,MAAM,MAAA,GAAS,OAAO,KAAA,IAAS,KAAA;AAE/B,IAAA,IAAI;AACH,MAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAO,CAAA;AAEhC,MAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACZ,QAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,OAAO,0BAAA,CAA2B,GAAA,CAAI,MAAM,CAAA,EAAE;AAAA,MACnE;AAEA,MAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,IAAA,EAAK;AAC5B,MAAA,MAAM,OAAO,IAAA,CAAK,IAAA;AAClB,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,MAAA,EAAQ,EAAA,CAAG,CAAC,CAAA;AAE/B,MAAA,IAAI,KAAA,EAAO;AACV,QAAA,IACC,MAAM,UAAA,EAAY,IAAA,KAAS,eAC3B,KAAA,CAAM,UAAA,EAAY,SAAS,sBAAA,EAC1B;AACD,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,KAAA;AAAA,YACJ,KAAA,EAAO,0BAAA,CAA2B,GAAA,EAAK,KAAA,CAAM,OAAO;AAAA,WACrD;AAAA,QACD;AAEA,QAAA,IAAI,KAAA,CAAM,UAAA,EAAY,IAAA,KAAS,cAAA,EAAgB;AAC9C,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,KAAA;AAAA,YACJ,KAAA,EAAO,0BAAA,CAA2B,GAAA,EAAK,KAAA,CAAM,OAAO;AAAA,WACrD;AAAA,QACD;AAEA,QAAA,IACC,MAAM,UAAA,EAAY,IAAA,KAAS,oBAC3B,KAAA,CAAM,UAAA,EAAY,SAAS,aAAA,EAC1B;AACD,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,KAAA;AAAA,YACJ,KAAA,EAAO,0BAAA,CAA2B,GAAA,EAAK,KAAA,CAAM,OAAO;AAAA,WACrD;AAAA,QACD;AAGA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,KAAA;AAAA,UACJ,KAAA,EAAO,0BAAA,CAA2B,GAAA,EAAK,KAAA,CAAM,OAAO;AAAA,SACrD;AAAA,MACD;AAEA,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ;AAAA,OACD;AAAA,IACD,CAAA,CAAA,MAAQ;AACP,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO,2BAA2B,GAAG;AAAA,OACtC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAc,cAAA,CACb,GAAA,EACA,WAAA,EAC2B;AAC3B,IAAA,IAAI,MAAA,GAAS,IAAI,KAAA,EAAM;AAEvB,IAAA,KAAA,MAAW,cAAc,WAAA,EAAa;AACrC,MAAA,MAAA,GAAS,MAAM,WAAW,MAAM,CAAA;AAAA,IACjC;AAEA,IAAA,OAAO,MAAA;AAAA,EACR;AAAA,EAEQ,gBAAA,CACP,OACA,SAAA,EACC;AACD,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,SAAS,CAAA,CAAE,MAAA;AAAA,MAChC,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,YAAiB,IAAA,IAAQ,EAAE,KAAA,YAAiB;AAAA,KACtD;AAEA,IAAA,MAAM,IAAA,GAAO,IAAI,QAAA,EAAS;AAE1B,IAAA,IAAA,CAAK,MAAA;AAAA,MACJ,YAAA;AAAA,MACA,KAAK,SAAA,CAAU;AAAA,QACd,KAAA;AAAA,QACA;AAAA,OACA;AAAA,KACF;AAEA,IAAA,MAAM,MAAqB,EAAC;AAE5B,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM;AACvB,MAAA,GAAA,CAAI,CAAA,CAAE,QAAA,EAAU,CAAA,GAAI,CAAC,CAAA,UAAA,EAAa,CAAA,CAAE,GAAA,CAAI,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,CAAA;AAAA,IACpD,CAAC,CAAA;AAED,IAAA,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,IAAA,CAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAEtC,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM;AACvB,MAAA,IAAA,CAAK,MAAA,CAAO,CAAA,CAAE,QAAA,EAAS,EAAG,EAAE,KAAK,CAAA;AAAA,IAClC,CAAC,CAAA;AAED,IAAA,OAAO,IAAA;AAAA,EACR;AACD;AAEA,SAAS,iBAAiB,KAAA,EAAe;AACxC,EAAA,MAAM,CAAA,GAAI,KAAA,CAAM,KAAA,CAAM,0BAA0B,CAAA;AAEhD,EAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AAEf,EAAA,MAAM,CAAA,GAAI,CAAA,CAAE,EAAA,CAAG,CAAC,CAAA;AAChB,EAAA,MAAM,CAAA,GAAI,CAAA,CAAE,EAAA,CAAG,CAAC,CAAA;AAEhB,EAAA,OAAO,KAAK,CAAA,GAAI,EAAE,MAAM,CAAA,EAAG,IAAA,EAAM,GAAE,GAAI,IAAA;AACxC;AAEA,SAAS,iBAAA,CACR,GACA,CAAA,EAC4B;AAC5B,EAAA,IAAI,CAAC,CAAA,EAAG,OAAO,CAAA,IAAK,EAAC;AACrB,EAAA,IAAI,CAAC,CAAA,EAAG,OAAO,CAAA,IAAK,EAAC;AAErB,EAAA,OAAO;AAAA,IACN,GAAG,CAAA;AAAA,IACH,GAAG,CAAA;AAAA,IAEH,OAAA,EAAS,YAAA,CAAa,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO;AAAA,GAC3C;AACD;AAEA,SAAS,OAAO,KAAA,EAAuB;AACtC,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ,GAAG,EAAE,IAAA,EAAK;AACxC;AAEA,SAAS,YAAA,CAAa,GAA4B,CAAA,EAA4B;AAC7E,EAAA,IAAI,CAAC,GAAG,OAAO,CAAA;AACf,EAAA,IAAI,CAAC,GAAG,OAAO,CAAA;AAEf,EAAA,MAAM,CAAA,GAAI,IAAI,OAAA,EAAQ;AAEtB,EAAA,IAAI,QAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAG,CAAA,KAAM;AAChC,IAAA,CAAA,CAAE,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,EACd,CAAC,CAAA;AAED,EAAA,IAAI,QAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAG,CAAA,KAAM;AAChC,IAAA,CAAA,CAAE,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,EACd,CAAC,CAAA;AAED,EAAA,OAAO,CAAA;AACR","file":"chunk-7APXFZ5G.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 extends Omit<RequestInit, 'body'> {}\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 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 method = options.method?.toUpperCase() ?? 'POST';\r\n\t\tconst headers = new Headers(options.headers);\r\n\r\n\t\tlet body: string | undefined;\r\n\r\n\t\tif (method === 'GET') {\r\n\t\t\turl.searchParams.set('query', minify(query));\r\n\r\n\t\t\tif (variables) {\r\n\t\t\t\turl.searchParams.set('variables', JSON.stringify(variables));\r\n\t\t\t}\r\n\r\n\t\t\theaders.delete('Content-Type');\r\n\t\t} else {\r\n\t\t\tbody = JSON.stringify({\r\n\t\t\t\tquery,\r\n\t\t\t\tvariables,\r\n\t\t\t});\r\n\r\n\t\t\theaders.set('Content-Type', 'application/json');\r\n\t\t}\r\n\r\n\t\theaders.set('Accept', 'application/json');\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,\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 minify(input: string): string {\r\n\treturn input.replace(/\\s+/g, ' ').trim();\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) => {\r\n\t\th.append(k, v);\r\n\t});\r\n\r\n\tnew Headers(j).forEach((v, k) => {\r\n\t\th.append(k, v);\r\n\t});\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-ROBGEUSE.js.map
43
- //# sourceMappingURL=chunk-ROBGEUSE.js.map
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
@@ -87,6 +87,14 @@ var MEMBER_WALLET_ACCOUNT_QUERY = gql`
87
87
  }
88
88
  }
89
89
  `;
90
+ var MEMBER_LEVEL_HISTORY_QUERY = gql`
91
+ query MemberLevelHistory {
92
+ self {
93
+ id
94
+ memberLevelHistory
95
+ }
96
+ }
97
+ `;
90
98
  var POINTS_WALLET_QUERY = gql`
91
99
  query PointsWallet {
92
100
  pointsWallet {
@@ -5654,6 +5662,12 @@ var WalletService = class {
5654
5662
  );
5655
5663
  return res.ok ? { ok: res.ok, data: res.data.self } : res;
5656
5664
  }
5665
+ async memberLevelHistory() {
5666
+ const res = await this.client.request(
5667
+ MEMBER_LEVEL_HISTORY_QUERY
5668
+ );
5669
+ return res.ok ? { ok: res.ok, data: res.data.self } : res;
5670
+ }
5657
5671
  async deposit(variables) {
5658
5672
  const res = await this.client.request(
5659
5673
  DEPOSIT_QUERY,
@@ -7055,8 +7069,8 @@ function pollable(func, config) {
7055
7069
  };
7056
7070
  }
7057
7071
 
7058
- // src/sdk/session-manager.ts
7059
- var SessionManager = class {
7072
+ // src/sdk/session-manager-cookie.ts
7073
+ var SessionManagerCookie = class {
7060
7074
  logger;
7061
7075
  storageKey = "session";
7062
7076
  platformStorageKey = "session/platform";
@@ -7067,10 +7081,6 @@ var SessionManager = class {
7067
7081
  this.authService = config.authService;
7068
7082
  this.walletService = config.walletService;
7069
7083
  this.logger = config.logger;
7070
- if (config.sessionPrefix) {
7071
- this.storageKey = `${config.sessionPrefix}/${this.storageKey}`;
7072
- this.platformStorageKey = `${config.sessionPrefix}/${this.platformStorageKey}`;
7073
- }
7074
7084
  }
7075
7085
  get refreshing() {
7076
7086
  return this._refreshing;
@@ -7079,16 +7089,6 @@ var SessionManager = class {
7079
7089
  this._refreshing = value;
7080
7090
  }
7081
7091
  async create(input, version = 1) {
7082
- if (this.isServer) {
7083
- this.logger.warn("'localStorage' is not available on the server.");
7084
- return {
7085
- ok: false,
7086
- error: {
7087
- name: "UnknownError",
7088
- message: "Server sign in is not supported."
7089
- }
7090
- };
7091
- }
7092
7092
  if (input.type === "MAYA") {
7093
7093
  localStorage.setItem(this.platformStorageKey, "MAYA");
7094
7094
  const f0 = () => this.walletService.mayaSession({ id: input.sessionId });
@@ -7115,13 +7115,14 @@ var SessionManager = class {
7115
7115
  })();
7116
7116
  if (!r1.ok) return r1;
7117
7117
  const now2 = /* @__PURE__ */ new Date();
7118
- localStorage.setItem(
7118
+ cookies__default.default.set(
7119
7119
  this.storageKey,
7120
7120
  JSON.stringify({
7121
7121
  ...r1.data,
7122
7122
  accessTokenExpiresAt: addMinutes(now2, 8).getTime(),
7123
7123
  refreshTokenExpiresAt: subMinutes(addDays(now2, 30), 2).getTime()
7124
- })
7124
+ }),
7125
+ { expires: subMinutes(addDays(now2, 30), 2).getTime() }
7125
7126
  );
7126
7127
  return {
7127
7128
  ok: true,
@@ -7132,13 +7133,16 @@ var SessionManager = class {
7132
7133
  const res2 = await this.authService.createSession(input, version);
7133
7134
  if (res2.ok) {
7134
7135
  const now2 = /* @__PURE__ */ new Date();
7135
- localStorage.setItem(
7136
+ cookies__default.default.set(
7136
7137
  this.storageKey,
7137
7138
  JSON.stringify({
7138
7139
  ...res2.data,
7139
7140
  accessTokenExpiresAt: addMinutes(now2, 8).getTime(),
7140
7141
  refreshTokenExpiresAt: subMinutes(addDays(now2, 30), 2).getTime()
7141
- })
7142
+ }),
7143
+ {
7144
+ expires: subMinutes(addDays(now2, 30), 2).getTime()
7145
+ }
7142
7146
  );
7143
7147
  return {
7144
7148
  ok: true,
@@ -7151,20 +7155,20 @@ var SessionManager = class {
7151
7155
  const res2 = await this.authService.createSession(
7152
7156
  {
7153
7157
  type: "SOCIALS",
7154
- token: input.token,
7155
- channel: input.channel
7158
+ token: input.token
7156
7159
  },
7157
7160
  version
7158
7161
  );
7159
7162
  if (res2.ok) {
7160
7163
  const now2 = /* @__PURE__ */ new Date();
7161
- localStorage.setItem(
7164
+ cookies__default.default.set(
7162
7165
  this.storageKey,
7163
7166
  JSON.stringify({
7164
7167
  ...res2.data,
7165
7168
  accessTokenExpiresAt: addMinutes(now2, 8).getTime(),
7166
7169
  refreshTokenExpiresAt: subMinutes(addDays(now2, 30), 2).getTime()
7167
- })
7170
+ }),
7171
+ { expires: subMinutes(addDays(now2, 30), 2).getTime() }
7168
7172
  );
7169
7173
  return {
7170
7174
  ok: true,
@@ -7178,13 +7182,14 @@ var SessionManager = class {
7178
7182
  const res2 = await this.authService.createSession(input, version);
7179
7183
  if (res2.ok) {
7180
7184
  const now2 = /* @__PURE__ */ new Date();
7181
- localStorage.setItem(
7185
+ cookies__default.default.set(
7182
7186
  this.storageKey,
7183
7187
  JSON.stringify({
7184
7188
  ...res2.data,
7185
7189
  accessTokenExpiresAt: addMinutes(now2, 8).getTime(),
7186
7190
  refreshTokenExpiresAt: subMinutes(addDays(now2, 30), 2).getTime()
7187
- })
7191
+ }),
7192
+ { expires: subMinutes(addDays(now2, 30), 2).getTime() }
7188
7193
  );
7189
7194
  return {
7190
7195
  ok: true,
@@ -7204,13 +7209,14 @@ var SessionManager = class {
7204
7209
  };
7205
7210
  }
7206
7211
  const now = /* @__PURE__ */ new Date();
7207
- localStorage.setItem(
7212
+ cookies__default.default.set(
7208
7213
  this.storageKey,
7209
7214
  JSON.stringify({
7210
7215
  ...res.data,
7211
7216
  accessTokenExpiresAt: addMinutes(now, 8).getTime(),
7212
7217
  refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
7213
- })
7218
+ }),
7219
+ {}
7214
7220
  );
7215
7221
  return {
7216
7222
  ok: true,
@@ -7222,15 +7228,18 @@ var SessionManager = class {
7222
7228
  if (res.ok) {
7223
7229
  const now = /* @__PURE__ */ new Date();
7224
7230
  if (this.isServer) {
7225
- this.logger.warn("'localStorage' is not available on the server.");
7231
+ this.logger.warn("'client cookies' is not available on the server.");
7226
7232
  } else {
7227
- localStorage.setItem(
7233
+ cookies__default.default.set(
7228
7234
  this.storageKey,
7229
7235
  JSON.stringify({
7230
7236
  ...res.data,
7231
7237
  accessTokenExpiresAt: addMinutes(now, 8).getTime(),
7232
7238
  refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
7233
- })
7239
+ }),
7240
+ {
7241
+ expires: subMinutes(addDays(now, 30), 2).getTime()
7242
+ }
7234
7243
  );
7235
7244
  }
7236
7245
  return { ok: true };
@@ -7240,7 +7249,7 @@ var SessionManager = class {
7240
7249
  }
7241
7250
  async get() {
7242
7251
  if (this.isServer) {
7243
- this.logger.warn("'localStorage' is not available on the server.");
7252
+ this.logger.warn("'client cookies' is not available on the server.");
7244
7253
  return {
7245
7254
  ok: true,
7246
7255
  data: null
@@ -7250,7 +7259,7 @@ var SessionManager = class {
7250
7259
  await sleep(1e3);
7251
7260
  return await this.get();
7252
7261
  }
7253
- const val = localStorage.getItem(this.storageKey);
7262
+ const val = cookies__default.default.get(this.storageKey);
7254
7263
  if (!val) {
7255
7264
  return {
7256
7265
  ok: true,
@@ -7264,7 +7273,7 @@ var SessionManager = class {
7264
7273
  const refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);
7265
7274
  if (isAfter(now, refreshTokenExpiresAt)) {
7266
7275
  this.logger.warn("Session expired. Logging out..");
7267
- localStorage.removeItem(this.storageKey);
7276
+ cookies__default.default.remove(this.storageKey);
7268
7277
  return {
7269
7278
  ok: false,
7270
7279
  error: {
@@ -7281,7 +7290,7 @@ var SessionManager = class {
7281
7290
  if (!res.ok) {
7282
7291
  this.logger.error(`Failed to refresh session: ${res.error.message}`);
7283
7292
  if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
7284
- localStorage.removeItem(this.storageKey);
7293
+ cookies__default.default.remove(this.storageKey);
7285
7294
  return {
7286
7295
  ok: false,
7287
7296
  error: res.error
@@ -7302,7 +7311,9 @@ var SessionManager = class {
7302
7311
  accessTokenExpiresAt: addMinutes(now, 8).getTime(),
7303
7312
  refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
7304
7313
  };
7305
- localStorage.setItem(this.storageKey, JSON.stringify(obj));
7314
+ cookies__default.default.set(this.storageKey, JSON.stringify(obj), {
7315
+ expires: subMinutes(addDays(now, 30), 2).getTime()
7316
+ });
7306
7317
  }
7307
7318
  return {
7308
7319
  ok: true,
@@ -7320,13 +7331,13 @@ var SessionManager = class {
7320
7331
  }
7321
7332
  async refresh() {
7322
7333
  if (this.isServer) {
7323
- this.logger.warn("'localStorage' is not available on the server.");
7334
+ this.logger.warn("'client cookies' is not available on the server.");
7324
7335
  return {
7325
7336
  ok: true,
7326
7337
  data: null
7327
7338
  };
7328
7339
  }
7329
- const val = localStorage.getItem(this.storageKey);
7340
+ const val = cookies__default.default.get(this.storageKey);
7330
7341
  if (!val) {
7331
7342
  return {
7332
7343
  ok: true,
@@ -7343,7 +7354,7 @@ var SessionManager = class {
7343
7354
  if (!res.ok) {
7344
7355
  this.logger.error(`Failed to refresh session: ${res.error.message}`);
7345
7356
  if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
7346
- localStorage.removeItem(this.storageKey);
7357
+ cookies__default.default.remove(this.storageKey);
7347
7358
  return {
7348
7359
  ok: false,
7349
7360
  error: res.error
@@ -7364,7 +7375,9 @@ var SessionManager = class {
7364
7375
  accessTokenExpiresAt: addMinutes(now, 8).getTime(),
7365
7376
  refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
7366
7377
  };
7367
- localStorage.setItem(this.storageKey, JSON.stringify(obj));
7378
+ cookies__default.default.set(this.storageKey, JSON.stringify(obj), {
7379
+ expires: subMinutes(addDays(now, 30), 2).getTime()
7380
+ });
7368
7381
  return {
7369
7382
  ok: true,
7370
7383
  data: obj
@@ -7381,18 +7394,18 @@ var SessionManager = class {
7381
7394
  }
7382
7395
  async destroy() {
7383
7396
  if (this.isServer) {
7384
- this.logger.warn("'localStorage' is not available on the server.");
7397
+ this.logger.warn("'client cookies' is not available on the server.");
7385
7398
  return;
7386
7399
  }
7387
7400
  const res = await this.get();
7388
7401
  if (res.data?.accessToken) {
7389
7402
  await this.authService.destroySession(res.data.accessToken);
7390
7403
  }
7391
- localStorage.removeItem(this.storageKey);
7404
+ cookies__default.default.remove(this.storageKey);
7392
7405
  }
7393
7406
  async verify() {
7394
7407
  if (this.isServer) {
7395
- this.logger.warn("'localStorage' is not available on the server.");
7408
+ this.logger.warn("'client cookies' is not available on the server.");
7396
7409
  return true;
7397
7410
  }
7398
7411
  const s = await this.get();
@@ -7402,13 +7415,13 @@ var SessionManager = class {
7402
7415
  if (!s.data) return true;
7403
7416
  const v = await this.authService.verifySession(s.data.accessToken);
7404
7417
  if (!v) {
7405
- localStorage.removeItem(this.storageKey);
7418
+ cookies__default.default.remove(this.storageKey);
7406
7419
  }
7407
7420
  return v;
7408
7421
  }
7409
7422
  get onMaya() {
7410
7423
  if (this.isServer) {
7411
- this.logger.warn("'localStorage' is not available on the server.");
7424
+ this.logger.warn("'client cookies' is not available on the server.");
7412
7425
  return false;
7413
7426
  }
7414
7427
  return localStorage.getItem(this.platformStorageKey) === "MAYA";
@@ -7424,7 +7437,9 @@ var SessionManager = class {
7424
7437
  return typeof window === "undefined";
7425
7438
  }
7426
7439
  };
7427
- var SessionManagerCookie = class {
7440
+
7441
+ // src/sdk/session-manager.ts
7442
+ var SessionManager = class {
7428
7443
  logger;
7429
7444
  storageKey = "session";
7430
7445
  platformStorageKey = "session/platform";
@@ -7435,6 +7450,10 @@ var SessionManagerCookie = class {
7435
7450
  this.authService = config.authService;
7436
7451
  this.walletService = config.walletService;
7437
7452
  this.logger = config.logger;
7453
+ if (config.sessionPrefix) {
7454
+ this.storageKey = `${config.sessionPrefix}/${this.storageKey}`;
7455
+ this.platformStorageKey = `${config.sessionPrefix}/${this.platformStorageKey}`;
7456
+ }
7438
7457
  }
7439
7458
  get refreshing() {
7440
7459
  return this._refreshing;
@@ -7443,6 +7462,16 @@ var SessionManagerCookie = class {
7443
7462
  this._refreshing = value;
7444
7463
  }
7445
7464
  async create(input, version = 1) {
7465
+ if (this.isServer) {
7466
+ this.logger.warn("'localStorage' is not available on the server.");
7467
+ return {
7468
+ ok: false,
7469
+ error: {
7470
+ name: "UnknownError",
7471
+ message: "Server sign in is not supported."
7472
+ }
7473
+ };
7474
+ }
7446
7475
  if (input.type === "MAYA") {
7447
7476
  localStorage.setItem(this.platformStorageKey, "MAYA");
7448
7477
  const f0 = () => this.walletService.mayaSession({ id: input.sessionId });
@@ -7469,14 +7498,13 @@ var SessionManagerCookie = class {
7469
7498
  })();
7470
7499
  if (!r1.ok) return r1;
7471
7500
  const now2 = /* @__PURE__ */ new Date();
7472
- cookies__default.default.set(
7501
+ localStorage.setItem(
7473
7502
  this.storageKey,
7474
7503
  JSON.stringify({
7475
7504
  ...r1.data,
7476
7505
  accessTokenExpiresAt: addMinutes(now2, 8).getTime(),
7477
7506
  refreshTokenExpiresAt: subMinutes(addDays(now2, 30), 2).getTime()
7478
- }),
7479
- { expires: subMinutes(addDays(now2, 30), 2).getTime() }
7507
+ })
7480
7508
  );
7481
7509
  return {
7482
7510
  ok: true,
@@ -7487,16 +7515,13 @@ var SessionManagerCookie = class {
7487
7515
  const res2 = await this.authService.createSession(input, version);
7488
7516
  if (res2.ok) {
7489
7517
  const now2 = /* @__PURE__ */ new Date();
7490
- cookies__default.default.set(
7518
+ localStorage.setItem(
7491
7519
  this.storageKey,
7492
7520
  JSON.stringify({
7493
7521
  ...res2.data,
7494
7522
  accessTokenExpiresAt: addMinutes(now2, 8).getTime(),
7495
7523
  refreshTokenExpiresAt: subMinutes(addDays(now2, 30), 2).getTime()
7496
- }),
7497
- {
7498
- expires: subMinutes(addDays(now2, 30), 2).getTime()
7499
- }
7524
+ })
7500
7525
  );
7501
7526
  return {
7502
7527
  ok: true,
@@ -7509,20 +7534,20 @@ var SessionManagerCookie = class {
7509
7534
  const res2 = await this.authService.createSession(
7510
7535
  {
7511
7536
  type: "SOCIALS",
7512
- token: input.token
7537
+ token: input.token,
7538
+ channel: input.channel
7513
7539
  },
7514
7540
  version
7515
7541
  );
7516
7542
  if (res2.ok) {
7517
7543
  const now2 = /* @__PURE__ */ new Date();
7518
- cookies__default.default.set(
7544
+ localStorage.setItem(
7519
7545
  this.storageKey,
7520
7546
  JSON.stringify({
7521
7547
  ...res2.data,
7522
7548
  accessTokenExpiresAt: addMinutes(now2, 8).getTime(),
7523
7549
  refreshTokenExpiresAt: subMinutes(addDays(now2, 30), 2).getTime()
7524
- }),
7525
- { expires: subMinutes(addDays(now2, 30), 2).getTime() }
7550
+ })
7526
7551
  );
7527
7552
  return {
7528
7553
  ok: true,
@@ -7536,14 +7561,13 @@ var SessionManagerCookie = class {
7536
7561
  const res2 = await this.authService.createSession(input, version);
7537
7562
  if (res2.ok) {
7538
7563
  const now2 = /* @__PURE__ */ new Date();
7539
- cookies__default.default.set(
7564
+ localStorage.setItem(
7540
7565
  this.storageKey,
7541
7566
  JSON.stringify({
7542
7567
  ...res2.data,
7543
7568
  accessTokenExpiresAt: addMinutes(now2, 8).getTime(),
7544
7569
  refreshTokenExpiresAt: subMinutes(addDays(now2, 30), 2).getTime()
7545
- }),
7546
- { expires: subMinutes(addDays(now2, 30), 2).getTime() }
7570
+ })
7547
7571
  );
7548
7572
  return {
7549
7573
  ok: true,
@@ -7563,14 +7587,13 @@ var SessionManagerCookie = class {
7563
7587
  };
7564
7588
  }
7565
7589
  const now = /* @__PURE__ */ new Date();
7566
- cookies__default.default.set(
7590
+ localStorage.setItem(
7567
7591
  this.storageKey,
7568
7592
  JSON.stringify({
7569
7593
  ...res.data,
7570
7594
  accessTokenExpiresAt: addMinutes(now, 8).getTime(),
7571
7595
  refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
7572
- }),
7573
- {}
7596
+ })
7574
7597
  );
7575
7598
  return {
7576
7599
  ok: true,
@@ -7582,18 +7605,15 @@ var SessionManagerCookie = class {
7582
7605
  if (res.ok) {
7583
7606
  const now = /* @__PURE__ */ new Date();
7584
7607
  if (this.isServer) {
7585
- this.logger.warn("'client cookies' is not available on the server.");
7608
+ this.logger.warn("'localStorage' is not available on the server.");
7586
7609
  } else {
7587
- cookies__default.default.set(
7610
+ localStorage.setItem(
7588
7611
  this.storageKey,
7589
7612
  JSON.stringify({
7590
7613
  ...res.data,
7591
7614
  accessTokenExpiresAt: addMinutes(now, 8).getTime(),
7592
7615
  refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
7593
- }),
7594
- {
7595
- expires: subMinutes(addDays(now, 30), 2).getTime()
7596
- }
7616
+ })
7597
7617
  );
7598
7618
  }
7599
7619
  return { ok: true };
@@ -7603,7 +7623,7 @@ var SessionManagerCookie = class {
7603
7623
  }
7604
7624
  async get() {
7605
7625
  if (this.isServer) {
7606
- this.logger.warn("'client cookies' is not available on the server.");
7626
+ this.logger.warn("'localStorage' is not available on the server.");
7607
7627
  return {
7608
7628
  ok: true,
7609
7629
  data: null
@@ -7613,7 +7633,7 @@ var SessionManagerCookie = class {
7613
7633
  await sleep(1e3);
7614
7634
  return await this.get();
7615
7635
  }
7616
- const val = cookies__default.default.get(this.storageKey);
7636
+ const val = localStorage.getItem(this.storageKey);
7617
7637
  if (!val) {
7618
7638
  return {
7619
7639
  ok: true,
@@ -7627,7 +7647,7 @@ var SessionManagerCookie = class {
7627
7647
  const refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);
7628
7648
  if (isAfter(now, refreshTokenExpiresAt)) {
7629
7649
  this.logger.warn("Session expired. Logging out..");
7630
- cookies__default.default.remove(this.storageKey);
7650
+ localStorage.removeItem(this.storageKey);
7631
7651
  return {
7632
7652
  ok: false,
7633
7653
  error: {
@@ -7644,7 +7664,7 @@ var SessionManagerCookie = class {
7644
7664
  if (!res.ok) {
7645
7665
  this.logger.error(`Failed to refresh session: ${res.error.message}`);
7646
7666
  if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
7647
- cookies__default.default.remove(this.storageKey);
7667
+ localStorage.removeItem(this.storageKey);
7648
7668
  return {
7649
7669
  ok: false,
7650
7670
  error: res.error
@@ -7665,9 +7685,7 @@ var SessionManagerCookie = class {
7665
7685
  accessTokenExpiresAt: addMinutes(now, 8).getTime(),
7666
7686
  refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
7667
7687
  };
7668
- cookies__default.default.set(this.storageKey, JSON.stringify(obj), {
7669
- expires: subMinutes(addDays(now, 30), 2).getTime()
7670
- });
7688
+ localStorage.setItem(this.storageKey, JSON.stringify(obj));
7671
7689
  }
7672
7690
  return {
7673
7691
  ok: true,
@@ -7685,13 +7703,13 @@ var SessionManagerCookie = class {
7685
7703
  }
7686
7704
  async refresh() {
7687
7705
  if (this.isServer) {
7688
- this.logger.warn("'client cookies' is not available on the server.");
7706
+ this.logger.warn("'localStorage' is not available on the server.");
7689
7707
  return {
7690
7708
  ok: true,
7691
7709
  data: null
7692
7710
  };
7693
7711
  }
7694
- const val = cookies__default.default.get(this.storageKey);
7712
+ const val = localStorage.getItem(this.storageKey);
7695
7713
  if (!val) {
7696
7714
  return {
7697
7715
  ok: true,
@@ -7708,7 +7726,7 @@ var SessionManagerCookie = class {
7708
7726
  if (!res.ok) {
7709
7727
  this.logger.error(`Failed to refresh session: ${res.error.message}`);
7710
7728
  if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
7711
- cookies__default.default.remove(this.storageKey);
7729
+ localStorage.removeItem(this.storageKey);
7712
7730
  return {
7713
7731
  ok: false,
7714
7732
  error: res.error
@@ -7729,9 +7747,7 @@ var SessionManagerCookie = class {
7729
7747
  accessTokenExpiresAt: addMinutes(now, 8).getTime(),
7730
7748
  refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
7731
7749
  };
7732
- cookies__default.default.set(this.storageKey, JSON.stringify(obj), {
7733
- expires: subMinutes(addDays(now, 30), 2).getTime()
7734
- });
7750
+ localStorage.setItem(this.storageKey, JSON.stringify(obj));
7735
7751
  return {
7736
7752
  ok: true,
7737
7753
  data: obj
@@ -7748,18 +7764,18 @@ var SessionManagerCookie = class {
7748
7764
  }
7749
7765
  async destroy() {
7750
7766
  if (this.isServer) {
7751
- this.logger.warn("'client cookies' is not available on the server.");
7767
+ this.logger.warn("'localStorage' is not available on the server.");
7752
7768
  return;
7753
7769
  }
7754
7770
  const res = await this.get();
7755
7771
  if (res.data?.accessToken) {
7756
7772
  await this.authService.destroySession(res.data.accessToken);
7757
7773
  }
7758
- cookies__default.default.remove(this.storageKey);
7774
+ localStorage.removeItem(this.storageKey);
7759
7775
  }
7760
7776
  async verify() {
7761
7777
  if (this.isServer) {
7762
- this.logger.warn("'client cookies' is not available on the server.");
7778
+ this.logger.warn("'localStorage' is not available on the server.");
7763
7779
  return true;
7764
7780
  }
7765
7781
  const s = await this.get();
@@ -7769,13 +7785,13 @@ var SessionManagerCookie = class {
7769
7785
  if (!s.data) return true;
7770
7786
  const v = await this.authService.verifySession(s.data.accessToken);
7771
7787
  if (!v) {
7772
- cookies__default.default.remove(this.storageKey);
7788
+ localStorage.removeItem(this.storageKey);
7773
7789
  }
7774
7790
  return v;
7775
7791
  }
7776
7792
  get onMaya() {
7777
7793
  if (this.isServer) {
7778
- this.logger.warn("'client cookies' is not available on the server.");
7794
+ this.logger.warn("'localStorage' is not available on the server.");
7779
7795
  return false;
7780
7796
  }
7781
7797
  return localStorage.getItem(this.platformStorageKey) === "MAYA";
@@ -10599,6 +10615,14 @@ var Sdk = class {
10599
10615
  data: res.data ? this.transformer.transform.memberWalletAccount(res.data) : null
10600
10616
  };
10601
10617
  }
10618
+ async memberLevelHistory() {
10619
+ const res = await this.walletService.memberLevelHistory();
10620
+ if (!res.ok) return res;
10621
+ return {
10622
+ ok: true,
10623
+ data: res.data
10624
+ };
10625
+ }
10602
10626
  /*
10603
10627
  *=============================================
10604
10628
  * ANNOUNCEMENT