@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.
- package/README.md +1634 -1634
- package/dist/{chunk-MQC7EE6J.js → chunk-2KACCSX3.js} +17 -3
- package/dist/chunk-2KACCSX3.js.map +1 -0
- package/dist/{chunk-5WRVWQBT.js → chunk-7APXFZ5G.js} +3 -3
- package/dist/chunk-7APXFZ5G.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 +112 -88
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +101 -91
- package/dist/index.js.map +1 -1
- package/dist/services/index.cjs +14 -0
- package/dist/services/index.cjs.map +1 -1
- package/dist/services/index.d.cts +4 -3
- package/dist/services/index.d.ts +4 -3
- package/dist/services/index.js +2 -2
- package/dist/{types-B8RFcTu9.d.ts → types-C2Mdipgs.d.ts} +13 -1
- package/dist/{types-BqFODW6R.d.cts → types-DXuCcBxY.d.cts} +13 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-5WRVWQBT.js.map +0 -1
- package/dist/chunk-MQC7EE6J.js.map +0 -1
- package/dist/chunk-ROBGEUSE.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) {
|
|
@@ -221,5 +221,5 @@ function mergeHeaders(i, j) {
|
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
export { GraphQLClient, isPlainObject };
|
|
224
|
-
//# sourceMappingURL=chunk-
|
|
225
|
-
//# sourceMappingURL=chunk-
|
|
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-
|
|
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
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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("'
|
|
7231
|
+
this.logger.warn("'client cookies' is not available on the server.");
|
|
7226
7232
|
} else {
|
|
7227
|
-
|
|
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("'
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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("'
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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("'
|
|
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
|
-
|
|
7404
|
+
cookies__default.default.remove(this.storageKey);
|
|
7392
7405
|
}
|
|
7393
7406
|
async verify() {
|
|
7394
7407
|
if (this.isServer) {
|
|
7395
|
-
this.logger.warn("'
|
|
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
|
-
|
|
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("'
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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("'
|
|
7608
|
+
this.logger.warn("'localStorage' is not available on the server.");
|
|
7586
7609
|
} else {
|
|
7587
|
-
|
|
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("'
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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("'
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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("'
|
|
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
|
-
|
|
7774
|
+
localStorage.removeItem(this.storageKey);
|
|
7759
7775
|
}
|
|
7760
7776
|
async verify() {
|
|
7761
7777
|
if (this.isServer) {
|
|
7762
|
-
this.logger.warn("'
|
|
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
|
-
|
|
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("'
|
|
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
|