@smartico/public-api 0.0.2

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.
Files changed (46) hide show
  1. package/.nvmrc +1 -0
  2. package/README.md +75 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +269 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.modern.mjs +264 -0
  7. package/dist/index.modern.mjs.map +1 -0
  8. package/dist/service/index.d.ts +4 -0
  9. package/dist/util/Util.d.ts +51 -0
  10. package/package.json +23 -0
  11. package/src/index.ts +2 -0
  12. package/src/service/index.ts +12 -0
  13. package/src/service/types/ErrorCodes.ts +19 -0
  14. package/src/service/types/GRequest.ts +18 -0
  15. package/src/service/types/GResponse.ts +12 -0
  16. package/src/service/types/Game/GameAttemptType.ts +8 -0
  17. package/src/service/types/Game/GameCanPlayType.ts +11 -0
  18. package/src/service/types/Game/GameExternalStatus.ts +7 -0
  19. package/src/service/types/Game/GameInfo.ts +11 -0
  20. package/src/service/types/Game/GamePick.ts +104 -0
  21. package/src/service/types/Game/GameUtil.ts +30 -0
  22. package/src/service/types/SmarticoProto/GetTranslationsRequest.ts +9 -0
  23. package/src/service/types/SmarticoProto/GetTranslationsResponse.ts +8 -0
  24. package/src/service/types/SmarticoProto/ProtocolMessage.ts +6 -0
  25. package/src/service/types/SmarticoProto/ProtocolRequest.ts +8 -0
  26. package/src/service/types/SmarticoProto/ProtocolResponse.ts +8 -0
  27. package/src/service/types/SmarticoProto/PublicLabelInfo.ts +39 -0
  28. package/src/service/types/SmarticoProto/PublicProperties.ts +11 -0
  29. package/src/service/types/SmarticoProto/ResponseIdentify.ts +16 -0
  30. package/src/service/types/SmarticoProto/SAW/SAWAcknowledgeType.ts +6 -0
  31. package/src/service/types/SmarticoProto/SAW/SAWBuyInType.ts +5 -0
  32. package/src/service/types/SmarticoProto/SAW/SAWDoSpinRequest.ts +8 -0
  33. package/src/service/types/SmarticoProto/SAW/SAWDoSpinResponse.ts +18 -0
  34. package/src/service/types/SmarticoProto/SAW/SAWGameType.ts +11 -0
  35. package/src/service/types/SmarticoProto/SAW/SAWGetTemplatesRequest.ts +5 -0
  36. package/src/service/types/SmarticoProto/SAW/SAWGetTemplatesResponse.ts +8 -0
  37. package/src/service/types/SmarticoProto/SAW/SAWPrize.ts +13 -0
  38. package/src/service/types/SmarticoProto/SAW/SAWPrizeType.ts +9 -0
  39. package/src/service/types/SmarticoProto/SAW/SAWPrizeUI.ts +14 -0
  40. package/src/service/types/SmarticoProto/SAW/SAWTemplate.ts +29 -0
  41. package/src/service/types/SmarticoProto/SAW/SAWTemplateUI.ts +33 -0
  42. package/src/service/types/SmarticoProto/SAW/SAWWinSoundType.ts +14 -0
  43. package/src/service/types/SmarticoProto/TranslationArea.ts +11 -0
  44. package/src/service/types/User/UserInfo.ts +12 -0
  45. package/src/util/Util.ts +306 -0
  46. package/test/package.json +11 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.modern.mjs","sources":["../src/util/Util.ts"],"sourcesContent":["import { Md5 } from \"md5-typescript\";\nimport {TSMap} from \"typescript-map\";\n\nclass Util {\n\n private constructor() {\n }\n\n public static isNumber(value: string): boolean {\n return /^\\d+$/.test(value);\n }\n\n public static parseNumber(v: string): number | null {\n if (Util.isNotEmpty(v)) {\n const result: number = parseFloat(v);\n if (isNaN(result)) {\n return null;\n }\n return result;\n }\n return null;\n }\n\n public static parseBoolean(v: string | boolean): boolean | null {\n return v === \"true\" || v === true ? true : v === \"false\" || v === false ? false : null;\n }\n\n public static escapeRegExp(v: string): string {\n if (Util.isNotEmpty(v)) {\n return v.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n return v;\n }\n\n public static nullToEmpty(val: string): string {\n return this.isNotEmpty(val) ? val : \"\";\n }\n\n public static nullTo0(val: number): number {\n return this.isNotNull(val) ? val : 0;\n }\n\n public static isNotEmpty(val: string): boolean {\n return typeof val !== \"undefined\" && val !== null && val.length > 0;\n }\n\n public static isNotNull(val: any): boolean {\n return typeof val !== \"undefined\" && val !== null;\n }\n\n public static isNull(val: any): boolean {\n return typeof val === \"undefined\" || val === null;\n }\n\n public static isArrayNotEmpty(val: any[]): boolean {\n return typeof val !== \"undefined\" && val !== null && val.length > 0;\n }\n\n public static isArrayEmpty(val: any[]): boolean {\n return typeof val === \"undefined\" || val === null || val.length === 0;\n }\n\n public static isObjectEmpty(val: any): boolean {\n return Util.isNull(val) || (Object.keys(val).length === 0 && val.constructor === Object);\n }\n\n public static isMapNotEmpty(val: TSMap<any, any>): boolean {\n return typeof val !== \"undefined\" && val !== null && (val.size() > 0 || val.keys().length > 0);\n }\n\n public static isMapEmpty(val: TSMap<any, any>): boolean {\n return typeof val === \"undefined\" || val === null || val.size() === 0 || val.keys().length === 0;\n }\n\n public static objectToMap<K, V>(obj: any): TSMap<K, V> | null {\n if (Util.isNotNull(obj)) {\n const map: TSMap<K, V> = new TSMap();\n Object.keys(obj).forEach((key: any) => {\n map.set(key, obj[key]);\n });\n return map;\n }\n return null;\n }\n\n public static keyByValue(obj: any, value: any): string | null {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n if (obj[prop] === value) {\n return prop;\n }\n }\n }\n return null;\n }\n\n public static greaterThen0(val: number): boolean {\n return this.isNotNull(val) && val > 0;\n }\n\n public static not0(val: number): boolean {\n return this.isNotNull(val) && val !== 0;\n }\n\n public static lessThen0(val: number): boolean {\n return this.isNotNull(val) && val < 0;\n }\n\n public static compareUndefined(o1: any, o2: any): number {\n if (this.isNotNull(o1) && this.isNull(o2)) {\n return -1;\n }\n if (this.isNull(o1) && this.isNotNull(o2)) {\n return 1;\n }\n return 0;\n }\n\n public static compareArrayLength<T>(o1: T[], o2: T[]): number {\n const result: number = Util.compareUndefined(o1, o2);\n if (result === 0 && Util.isNotNull(o1) && Util.isNotNull(o2)) {\n return o1.length < o2.length ? -1 : (o1.length > o2.length ? 1 : 0);\n }\n return result;\n }\n\n public static compareObject(a: { [key: string]: any }, b: { [key: string]: any }) {\n for (const key in a) {\n if (!(key in b) || a[key] !== b[key]) {\n return false;\n }\n }\n for (const key in b) {\n if (!(key in a) || a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n }\n\n public static compareArrays<T>(arr1: T[], arr2: T[], comparator: (t1: T, t2: T) => number): number {\n Util.checkNotNull(comparator);\n let result: number = this.compareArrayLength(arr1, arr2);\n if (result === 0 && Util.isNotNull(arr1) && Util.isNotNull(arr2)) {\n for (let i = 0; i < arr1.length; i++) {\n result = comparator(arr1[i], arr2[i]);\n if (result !== 0) {\n break;\n }\n }\n }\n return result;\n }\n\n public static compareBool(o1: boolean, o2: boolean): number {\n const result: number = this.compareUndefined(o1, o2);\n if (result === 0 && this.isNotNull(o1) && this.isNotNull(o2)) {\n return (Boolean(o2) as any) - (Boolean(o1) as any)\n }\n return result;\n }\n\n public static compareNumber(o1: number, o2: number): number {\n const result: number = this.compareUndefined(o1, o2);\n if (result === 0 && this.isNotNull(o1) && this.isNotNull(o2)) {\n return o1 === o2 ? 0 : o1 < o2 ? -1 : 1;\n }\n return result;\n }\n\n public static compareString(o1: string, o2: string): number {\n const result: number = Util.compareUndefined(o1, o2);\n if (result === 0 && Util.isNotNull(o1) && Util.isNotNull(o2)) {\n return o1 < o2 ? -1 : (o1 > o2 ? 1 : 0);\n }\n return result;\n }\n\n public static range(from: number, to: number): number[] {\n return Array(to - from + 1).fill(null).map((_, idx) => from + idx);\n }\n\n public static has(array: any[], val: any): boolean {\n if (Util.isArrayNotEmpty(array) && Util.isNotNull(val)) {\n for (let i = 0; i < array.length; i++) {\n if (array[i] === val) {\n return true;\n }\n }\n }\n return false;\n }\n\n public static isEmpty(val: string): boolean {\n return typeof val === \"undefined\" || val === null || val.length === 0;\n }\n\n public static checkNotNull<T>(reference: T, msg?: string): T {\n if (Util.isNull(reference)) {\n throw new ReferenceError(msg);\n }\n return reference;\n }\n\n public static randomInt(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n public static randomArr<T>(arr: T[]): T | undefined {\n if (Util.isArrayEmpty(arr)) {\n return undefined;\n }\n return arr[Util.randomInt(0, arr.length - 1)];\n }\n\n public static remove<T>(arr: T[], item: T): boolean {\n if (Util.isArrayNotEmpty(arr) && item) {\n for (let i: number = 0; i < arr.length; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1);\n return true;\n }\n }\n }\n return false;\n }\n\n public static replaceAll(value: string, regex: string, replacement: string | number): string {\n if (Util.isNotNull(value)) {\n return value.replace(new RegExp(Util.escapeRegExp(regex), \"g\"), replacement as string);\n }\n return value;\n }\n\n public static to<T, U = any>(\n promise: Promise<T>,\n errorExt?: object\n ): Promise<[U | null, T | undefined]> {\n return promise\n .then<[null, T]>((data: T) => [null, data])\n .catch<[U, undefined]>((err) => {\n if (errorExt) {\n Object.assign(err, errorExt);\n }\n return [err, undefined];\n });\n }\n\n public static isObject(item: any): boolean {\n return (item && typeof item === \"object\" && !Array.isArray(item));\n }\n\n public static merge(target: any, ...sources: any[]): any {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n if (this.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n this.merge(target[key], source[key]);\n } else if (Array.isArray(source[key])) {\n Object.assign(target, { [key]: [...source[key]] });\n } else if (typeof source[key] !== \"undefined\") {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n return this.merge(target, ...sources);\n }\n\n public static deepCopy(source: object): object {\n return JSON.parse(JSON.stringify(source));\n }\n\n public static uuid = () => {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-mixed-operators\n const r = Math.random() * 16 | 0, v = c === \"x\" ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n public static getStackTrace(): string | undefined {\n return (new Error()).stack;\n }\n\n public static shuffleArray(array: any[]) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n };\n return array;\n }\n\n public static buildValidationHash(ext_user_id: string, ext_game_id: number, customer_id: string, secretKey: string): string {\n const toHash = `${ext_user_id}|${ext_game_id}|${customer_id}:${secretKey}`;\n return Md5.init(toHash);\n } \n}\n\n\nexport { Util };"],"names":["Util","constructor","isNumber","value","test","parseNumber","v","isNotEmpty","result","parseFloat","isNaN","parseBoolean","escapeRegExp","replace","nullToEmpty","val","nullTo0","isNotNull","length","isNull","isArrayNotEmpty","isArrayEmpty","isObjectEmpty","Object","keys","isMapNotEmpty","size","isMapEmpty","objectToMap","obj","map","TSMap","forEach","key","set","keyByValue","prop","hasOwnProperty","greaterThen0","not0","lessThen0","compareUndefined","o1","o2","compareArrayLength","compareObject","a","b","compareArrays","arr1","arr2","comparator","checkNotNull","i","compareBool","Boolean","compareNumber","compareString","range","from","to","Array","fill","_","idx","has","array","isEmpty","reference","msg","ReferenceError","randomInt","min","max","Math","floor","random","randomArr","arr","undefined","remove","item","splice","replaceAll","regex","replacement","RegExp","promise","errorExt","then","data","catch","err","assign","isObject","isArray","merge","target","sources","source","shift","deepCopy","JSON","parse","stringify","getStackTrace","Error","stack","shuffleArray","j","buildValidationHash","ext_user_id","ext_game_id","customer_id","secretKey","toHash","Md5","init","uuid","c","r","toString"],"mappings":";;;AAGA,MAAMA,IAAI,CAAA;AAENC,EAAAA,WAAA,GAAA,EACA;EAEO,OAAOC,QAAQ,CAACC,KAAa,EAAA;AAChC,IAAA,OAAO,OAAO,CAACC,IAAI,CAACD,KAAK,CAAC,CAAA;AAC9B,GAAA;EAEO,OAAOE,WAAW,CAACC,CAAS,EAAA;AAC/B,IAAA,IAAIN,IAAI,CAACO,UAAU,CAACD,CAAC,CAAC,EAAE;AACpB,MAAA,MAAME,MAAM,GAAWC,UAAU,CAACH,CAAC,CAAC,CAAA;AACpC,MAAA,IAAII,KAAK,CAACF,MAAM,CAAC,EAAE;AACf,QAAA,OAAO,IAAI,CAAA;AACd,OAAA;AACD,MAAA,OAAOA,MAAM,CAAA;AAChB,KAAA;AACD,IAAA,OAAO,IAAI,CAAA;AACf,GAAA;EAEO,OAAOG,YAAY,CAACL,CAAmB,EAAA;IAC1C,OAAOA,CAAC,KAAK,MAAM,IAAIA,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGA,CAAC,KAAK,OAAO,IAAIA,CAAC,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,CAAA;AAC1F,GAAA;EAEO,OAAOM,YAAY,CAACN,CAAS,EAAA;AAChC,IAAA,IAAIN,IAAI,CAACO,UAAU,CAACD,CAAC,CAAC,EAAE;AACpB,MAAA,OAAOA,CAAC,CAACO,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AAClD,KAAA;AACD,IAAA,OAAOP,CAAC,CAAA;AACZ,GAAA;EAEO,OAAOQ,WAAW,CAACC,GAAW,EAAA;IACjC,OAAO,IAAI,CAACR,UAAU,CAACQ,GAAG,CAAC,GAAGA,GAAG,GAAG,EAAE,CAAA;AAC1C,GAAA;EAEO,OAAOC,OAAO,CAACD,GAAW,EAAA;IAC7B,OAAO,IAAI,CAACE,SAAS,CAACF,GAAG,CAAC,GAAGA,GAAG,GAAG,CAAC,CAAA;AACxC,GAAA;EAEO,OAAOR,UAAU,CAACQ,GAAW,EAAA;AAChC,IAAA,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,IAAIA,GAAG,CAACG,MAAM,GAAG,CAAC,CAAA;AACvE,GAAA;EAEO,OAAOD,SAAS,CAACF,GAAQ,EAAA;AAC5B,IAAA,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,CAAA;AACrD,GAAA;EAEO,OAAOI,MAAM,CAACJ,GAAQ,EAAA;AACzB,IAAA,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,CAAA;AACrD,GAAA;EAEO,OAAOK,eAAe,CAACL,GAAU,EAAA;AACpC,IAAA,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,IAAIA,GAAG,CAACG,MAAM,GAAG,CAAC,CAAA;AACvE,GAAA;EAEO,OAAOG,YAAY,CAACN,GAAU,EAAA;AACjC,IAAA,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,IAAIA,GAAG,CAACG,MAAM,KAAK,CAAC,CAAA;AACzE,GAAA;EAEO,OAAOI,aAAa,CAACP,GAAQ,EAAA;IAChC,OAAOf,IAAI,CAACmB,MAAM,CAACJ,GAAG,CAAC,IAAKQ,MAAM,CAACC,IAAI,CAACT,GAAG,CAAC,CAACG,MAAM,KAAK,CAAC,IAAIH,GAAG,CAACd,WAAW,KAAKsB,MAAO,CAAA;AAC5F,GAAA;EAEO,OAAOE,aAAa,CAACV,GAAoB,EAAA;IAC5C,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,KAAKA,GAAG,CAACW,IAAI,EAAE,GAAG,CAAC,IAAIX,GAAG,CAACS,IAAI,EAAE,CAACN,MAAM,GAAG,CAAC,CAAC,CAAA;AAClG,GAAA;EAEO,OAAOS,UAAU,CAACZ,GAAoB,EAAA;IACzC,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,IAAIA,GAAG,CAACW,IAAI,EAAE,KAAK,CAAC,IAAIX,GAAG,CAACS,IAAI,EAAE,CAACN,MAAM,KAAK,CAAC,CAAA;AACpG,GAAA;EAEO,OAAOU,WAAW,CAAOC,GAAQ,EAAA;AACpC,IAAA,IAAI7B,IAAI,CAACiB,SAAS,CAACY,GAAG,CAAC,EAAE;AACrB,MAAA,MAAMC,GAAG,GAAgB,IAAIC,KAAK,EAAE,CAAA;MACpCR,MAAM,CAACC,IAAI,CAACK,GAAG,CAAC,CAACG,OAAO,CAAEC,GAAQ,IAAI;QAClCH,GAAG,CAACI,GAAG,CAACD,GAAG,EAAEJ,GAAG,CAACI,GAAG,CAAC,CAAC,CAAA;AAC1B,OAAC,CAAC,CAAA;AACF,MAAA,OAAOH,GAAG,CAAA;AACb,KAAA;AACD,IAAA,OAAO,IAAI,CAAA;AACf,GAAA;AAEO,EAAA,OAAOK,UAAU,CAACN,GAAQ,EAAE1B,KAAU,EAAA;AACzC,IAAA,KAAK,MAAMiC,IAAI,IAAIP,GAAG,EAAE;AACpB,MAAA,IAAIA,GAAG,CAACQ,cAAc,CAACD,IAAI,CAAC,EAAE;AAC1B,QAAA,IAAIP,GAAG,CAACO,IAAI,CAAC,KAAKjC,KAAK,EAAE;AACrB,UAAA,OAAOiC,IAAI,CAAA;AACd,SAAA;AACJ,OAAA;AACJ,KAAA;AACD,IAAA,OAAO,IAAI,CAAA;AACf,GAAA;EAEO,OAAOE,YAAY,CAACvB,GAAW,EAAA;IAClC,OAAO,IAAI,CAACE,SAAS,CAACF,GAAG,CAAC,IAAIA,GAAG,GAAG,CAAC,CAAA;AACzC,GAAA;EAEO,OAAOwB,IAAI,CAACxB,GAAW,EAAA;IAC1B,OAAO,IAAI,CAACE,SAAS,CAACF,GAAG,CAAC,IAAIA,GAAG,KAAK,CAAC,CAAA;AAC3C,GAAA;EAEO,OAAOyB,SAAS,CAACzB,GAAW,EAAA;IAC/B,OAAO,IAAI,CAACE,SAAS,CAACF,GAAG,CAAC,IAAIA,GAAG,GAAG,CAAC,CAAA;AACzC,GAAA;AAEO,EAAA,OAAO0B,gBAAgB,CAACC,EAAO,EAAEC,EAAO,EAAA;AAC3C,IAAA,IAAI,IAAI,CAAC1B,SAAS,CAACyB,EAAE,CAAC,IAAI,IAAI,CAACvB,MAAM,CAACwB,EAAE,CAAC,EAAE;AACvC,MAAA,OAAO,CAAC,CAAC,CAAA;AACZ,KAAA;AACD,IAAA,IAAI,IAAI,CAACxB,MAAM,CAACuB,EAAE,CAAC,IAAI,IAAI,CAACzB,SAAS,CAAC0B,EAAE,CAAC,EAAE;AACvC,MAAA,OAAO,CAAC,CAAA;AACX,KAAA;AACD,IAAA,OAAO,CAAC,CAAA;AACZ,GAAA;AAEO,EAAA,OAAOC,kBAAkB,CAAIF,EAAO,EAAEC,EAAO,EAAA;IAChD,MAAMnC,MAAM,GAAWR,IAAI,CAACyC,gBAAgB,CAACC,EAAE,EAAEC,EAAE,CAAC,CAAA;AACpD,IAAA,IAAInC,MAAM,KAAK,CAAC,IAAIR,IAAI,CAACiB,SAAS,CAACyB,EAAE,CAAC,IAAI1C,IAAI,CAACiB,SAAS,CAAC0B,EAAE,CAAC,EAAE;MAC1D,OAAOD,EAAE,CAACxB,MAAM,GAAGyB,EAAE,CAACzB,MAAM,GAAG,CAAC,CAAC,GAAIwB,EAAE,CAACxB,MAAM,GAAGyB,EAAE,CAACzB,MAAM,GAAG,CAAC,GAAG,CAAE,CAAA;AACtE,KAAA;AACD,IAAA,OAAOV,MAAM,CAAA;AACjB,GAAA;AAEO,EAAA,OAAOqC,aAAa,CAACC,CAAyB,EAAEC,CAAyB,EAAA;AAC5E,IAAA,KAAK,MAAMd,GAAG,IAAIa,CAAC,EAAE;AACjB,MAAA,IAAI,EAAEb,GAAG,IAAIc,CAAC,CAAC,IAAID,CAAC,CAACb,GAAG,CAAC,KAAKc,CAAC,CAACd,GAAG,CAAC,EAAE;AAClC,QAAA,OAAO,KAAK,CAAA;AACf,OAAA;AACJ,KAAA;AACD,IAAA,KAAK,MAAMA,GAAG,IAAIc,CAAC,EAAE;AACjB,MAAA,IAAI,EAAEd,GAAG,IAAIa,CAAC,CAAC,IAAIA,CAAC,CAACb,GAAG,CAAC,KAAKc,CAAC,CAACd,GAAG,CAAC,EAAE;AAClC,QAAA,OAAO,KAAK,CAAA;AACf,OAAA;AACJ,KAAA;AACD,IAAA,OAAO,IAAI,CAAA;AACf,GAAA;AAEO,EAAA,OAAOe,aAAa,CAAIC,IAAS,EAAEC,IAAS,EAAEC,UAAoC,EAAA;AACrFnD,IAAAA,IAAI,CAACoD,YAAY,CAACD,UAAU,CAAC,CAAA;IAC7B,IAAI3C,MAAM,GAAW,IAAI,CAACoC,kBAAkB,CAACK,IAAI,EAAEC,IAAI,CAAC,CAAA;AACxD,IAAA,IAAI1C,MAAM,KAAK,CAAC,IAAIR,IAAI,CAACiB,SAAS,CAACgC,IAAI,CAAC,IAAIjD,IAAI,CAACiB,SAAS,CAACiC,IAAI,CAAC,EAAE;AAC9D,MAAA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,IAAI,CAAC/B,MAAM,EAAEmC,CAAC,EAAE,EAAE;AAClC7C,QAAAA,MAAM,GAAG2C,UAAU,CAACF,IAAI,CAACI,CAAC,CAAC,EAAEH,IAAI,CAACG,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI7C,MAAM,KAAK,CAAC,EAAE;AACd,UAAA,MAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;AACD,IAAA,OAAOA,MAAM,CAAA;AACjB,GAAA;AAEO,EAAA,OAAO8C,WAAW,CAACZ,EAAW,EAAEC,EAAW,EAAA;IAC9C,MAAMnC,MAAM,GAAW,IAAI,CAACiC,gBAAgB,CAACC,EAAE,EAAEC,EAAE,CAAC,CAAA;AACpD,IAAA,IAAInC,MAAM,KAAK,CAAC,IAAI,IAAI,CAACS,SAAS,CAACyB,EAAE,CAAC,IAAI,IAAI,CAACzB,SAAS,CAAC0B,EAAE,CAAC,EAAE;MAC1D,OAAQY,OAAO,CAACZ,EAAE,CAAS,GAAIY,OAAO,CAACb,EAAE,CAAS,CAAA;AACrD,KAAA;AACD,IAAA,OAAOlC,MAAM,CAAA;AACjB,GAAA;AAEO,EAAA,OAAOgD,aAAa,CAACd,EAAU,EAAEC,EAAU,EAAA;IAC9C,MAAMnC,MAAM,GAAW,IAAI,CAACiC,gBAAgB,CAACC,EAAE,EAAEC,EAAE,CAAC,CAAA;AACpD,IAAA,IAAInC,MAAM,KAAK,CAAC,IAAI,IAAI,CAACS,SAAS,CAACyB,EAAE,CAAC,IAAI,IAAI,CAACzB,SAAS,CAAC0B,EAAE,CAAC,EAAE;AAC1D,MAAA,OAAOD,EAAE,KAAKC,EAAE,GAAG,CAAC,GAAGD,EAAE,GAAGC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAC1C,KAAA;AACD,IAAA,OAAOnC,MAAM,CAAA;AACjB,GAAA;AAEO,EAAA,OAAOiD,aAAa,CAACf,EAAU,EAAEC,EAAU,EAAA;IAC9C,MAAMnC,MAAM,GAAWR,IAAI,CAACyC,gBAAgB,CAACC,EAAE,EAAEC,EAAE,CAAC,CAAA;AACpD,IAAA,IAAInC,MAAM,KAAK,CAAC,IAAIR,IAAI,CAACiB,SAAS,CAACyB,EAAE,CAAC,IAAI1C,IAAI,CAACiB,SAAS,CAAC0B,EAAE,CAAC,EAAE;AAC1D,MAAA,OAAOD,EAAE,GAAGC,EAAE,GAAG,CAAC,CAAC,GAAID,EAAE,GAAGC,EAAE,GAAG,CAAC,GAAG,CAAE,CAAA;AAC1C,KAAA;AACD,IAAA,OAAOnC,MAAM,CAAA;AACjB,GAAA;AAEO,EAAA,OAAOkD,KAAK,CAACC,IAAY,EAAEC,EAAU,EAAA;IACxC,OAAOC,KAAK,CAACD,EAAE,GAAGD,IAAI,GAAG,CAAC,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC,CAAChC,GAAG,CAAC,CAACiC,CAAC,EAAEC,GAAG,KAAKL,IAAI,GAAGK,GAAG,CAAC,CAAA;AACtE,GAAA;AAEO,EAAA,OAAOC,GAAG,CAACC,KAAY,EAAEnD,GAAQ,EAAA;AACpC,IAAA,IAAIf,IAAI,CAACoB,eAAe,CAAC8C,KAAK,CAAC,IAAIlE,IAAI,CAACiB,SAAS,CAACF,GAAG,CAAC,EAAE;AACpD,MAAA,KAAK,IAAIsC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGa,KAAK,CAAChD,MAAM,EAAEmC,CAAC,EAAE,EAAE;AACnC,QAAA,IAAIa,KAAK,CAACb,CAAC,CAAC,KAAKtC,GAAG,EAAE;AAClB,UAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACJ,OAAA;AACJ,KAAA;AACD,IAAA,OAAO,KAAK,CAAA;AAChB,GAAA;EAEO,OAAOoD,OAAO,CAACpD,GAAW,EAAA;AAC7B,IAAA,OAAO,OAAOA,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,IAAI,IAAIA,GAAG,CAACG,MAAM,KAAK,CAAC,CAAA;AACzE,GAAA;AAEO,EAAA,OAAOkC,YAAY,CAAIgB,SAAY,EAAEC,GAAY,EAAA;AACpD,IAAA,IAAIrE,IAAI,CAACmB,MAAM,CAACiD,SAAS,CAAC,EAAE;AACxB,MAAA,MAAM,IAAIE,cAAc,CAACD,GAAG,CAAC,CAAA;AAChC,KAAA;AACD,IAAA,OAAOD,SAAS,CAAA;AACpB,GAAA;AAEO,EAAA,OAAOG,SAAS,CAACC,GAAW,EAAEC,GAAW,EAAA;AAC5C,IAAA,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,IAAIH,GAAG,GAAGD,GAAG,GAAG,CAAC,CAAC,CAAC,GAAGA,GAAG,CAAA;AAC5D,GAAA;EAEO,OAAOK,SAAS,CAAIC,GAAQ,EAAA;AAC/B,IAAA,IAAI9E,IAAI,CAACqB,YAAY,CAACyD,GAAG,CAAC,EAAE;AACxB,MAAA,OAAOC,SAAS,CAAA;AACnB,KAAA;AACD,IAAA,OAAOD,GAAG,CAAC9E,IAAI,CAACuE,SAAS,CAAC,CAAC,EAAEO,GAAG,CAAC5D,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AACjD,GAAA;AAEO,EAAA,OAAO8D,MAAM,CAAIF,GAAQ,EAAEG,IAAO,EAAA;IACrC,IAAIjF,IAAI,CAACoB,eAAe,CAAC0D,GAAG,CAAC,IAAIG,IAAI,EAAE;AACnC,MAAA,KAAK,IAAI5B,CAAC,GAAW,CAAC,EAAEA,CAAC,GAAGyB,GAAG,CAAC5D,MAAM,EAAEmC,CAAC,EAAE,EAAE;AACzC,QAAA,IAAIyB,GAAG,CAACzB,CAAC,CAAC,KAAK4B,IAAI,EAAE;AACjBH,UAAAA,GAAG,CAACI,MAAM,CAAC7B,CAAC,EAAE,CAAC,CAAC,CAAA;AAChB,UAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACJ,OAAA;AACJ,KAAA;AACD,IAAA,OAAO,KAAK,CAAA;AAChB,GAAA;AAEO,EAAA,OAAO8B,UAAU,CAAChF,KAAa,EAAEiF,KAAa,EAAEC,WAA4B,EAAA;AAC/E,IAAA,IAAIrF,IAAI,CAACiB,SAAS,CAACd,KAAK,CAAC,EAAE;AACvB,MAAA,OAAOA,KAAK,CAACU,OAAO,CAAC,IAAIyE,MAAM,CAACtF,IAAI,CAACY,YAAY,CAACwE,KAAK,CAAC,EAAE,GAAG,CAAC,EAAEC,WAAqB,CAAC,CAAA;AACzF,KAAA;AACD,IAAA,OAAOlF,KAAK,CAAA;AAChB,GAAA;AAEO,EAAA,OAAOyD,EAAE,CACZ2B,OAAmB,EACnBC,QAAiB,EAAA;AAEjB,IAAA,OAAOD,OAAO,CACTE,IAAI,CAAaC,IAAO,IAAK,CAAC,IAAI,EAAEA,IAAI,CAAC,CAAC,CAC1CC,KAAK,CAAkBC,GAAG,IAAI;AAC3B,MAAA,IAAIJ,QAAQ,EAAE;AACVjE,QAAAA,MAAM,CAACsE,MAAM,CAACD,GAAG,EAAEJ,QAAQ,CAAC,CAAA;AAC/B,OAAA;AACD,MAAA,OAAO,CAACI,GAAG,EAAEb,SAAS,CAAC,CAAA;AAC3B,KAAC,CAAC,CAAA;AACV,GAAA;EAEO,OAAOe,QAAQ,CAACb,IAAS,EAAA;AAC5B,IAAA,OAAQA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,CAACpB,KAAK,CAACkC,OAAO,CAACd,IAAI,CAAC,CAAA;AACpE,GAAA;AAEO,EAAA,OAAOe,KAAK,CAACC,MAAW,EAAE,GAAGC,OAAc,EAAA;AAC9C,IAAA,IAAI,CAACA,OAAO,CAAChF,MAAM,EAAE;AACjB,MAAA,OAAO+E,MAAM,CAAA;AAChB,KAAA;AACD,IAAA,MAAME,MAAM,GAAGD,OAAO,CAACE,KAAK,EAAE,CAAA;AAC9B,IAAA,IAAI,IAAI,CAACN,QAAQ,CAACG,MAAM,CAAC,IAAI,IAAI,CAACH,QAAQ,CAACK,MAAM,CAAC,EAAE;AAChD,MAAA,KAAK,MAAMlE,GAAG,IAAIkE,MAAM,EAAE;QACtB,IAAI,IAAI,CAACL,QAAQ,CAACK,MAAM,CAAClE,GAAG,CAAC,CAAC,EAAE;AAC5B,UAAA,IAAI,CAACgE,MAAM,CAAChE,GAAG,CAAC,EAAE;AACdV,YAAAA,MAAM,CAACsE,MAAM,CAACI,MAAM,EAAE;cAAE,CAAChE,GAAG,GAAG,EAAE;AAAA,aAAE,CAAC,CAAA;AACvC,WAAA;AACD,UAAA,IAAI,CAAC+D,KAAK,CAACC,MAAM,CAAChE,GAAG,CAAC,EAAEkE,MAAM,CAAClE,GAAG,CAAC,CAAC,CAAA;SACvC,MAAM,IAAI4B,KAAK,CAACkC,OAAO,CAACI,MAAM,CAAClE,GAAG,CAAC,CAAC,EAAE;AACnCV,UAAAA,MAAM,CAACsE,MAAM,CAACI,MAAM,EAAE;AAAE,YAAA,CAAChE,GAAG,GAAG,CAAC,GAAGkE,MAAM,CAAClE,GAAG,CAAC,CAAA;AAAC,WAAE,CAAC,CAAA;SACrD,MAAM,IAAI,OAAOkE,MAAM,CAAClE,GAAG,CAAC,KAAK,WAAW,EAAE;AAC3CV,UAAAA,MAAM,CAACsE,MAAM,CAACI,MAAM,EAAE;AAAE,YAAA,CAAChE,GAAG,GAAGkE,MAAM,CAAClE,GAAG,CAAA;AAAC,WAAE,CAAC,CAAA;AAChD,SAAA;AACJ,OAAA;AACJ,KAAA;IACD,OAAO,IAAI,CAAC+D,KAAK,CAACC,MAAM,EAAE,GAAGC,OAAO,CAAC,CAAA;AACzC,GAAA;EAEO,OAAOG,QAAQ,CAACF,MAAc,EAAA;IACjC,OAAOG,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACL,MAAM,CAAC,CAAC,CAAA;AAC7C,GAAA;AAUO,EAAA,OAAOM,aAAa,GAAA;AACvB,IAAA,OAAQ,IAAIC,KAAK,EAAE,CAAEC,KAAK,CAAA;AAC9B,GAAA;EAEO,OAAQC,YAAY,CAAC1C,KAAY,EAAA;AACpC,IAAA,KAAK,IAAIb,CAAC,GAAGa,KAAK,CAAChD,MAAM,GAAG,CAAC,EAAEmC,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;AACvC,MAAA,MAAMwD,CAAC,GAAGnC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,IAAIvB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;MAC7C,CAACa,KAAK,CAACb,CAAC,CAAC,EAAEa,KAAK,CAAC2C,CAAC,CAAC,CAAC,GAAG,CAAC3C,KAAK,CAAC2C,CAAC,CAAC,EAAE3C,KAAK,CAACb,CAAC,CAAC,CAAC,CAAA;AAC9C,KAAA;AACD,IAAA,OAAOa,KAAK,CAAA;AAChB,GAAA;EAEO,OAAO4C,mBAAmB,CAACC,WAAmB,EAAEC,WAAmB,EAAEC,WAAmB,EAAEC,SAAiB,EAAA;IAC9G,MAAMC,MAAM,GAAG,CAAA,EAAGJ,WAAW,CAAA,CAAA,EAAIC,WAAW,CAAIC,CAAAA,EAAAA,WAAW,CAAIC,CAAAA,EAAAA,SAAS,CAAE,CAAA,CAAA;AAC1E,IAAA,OAAOE,GAAG,CAACC,IAAI,CAACF,MAAM,CAAC,CAAA;AAC3B,GAAA;;AA1SEnH,IAAI,CAmRQsH,IAAI,GAAG,MAAK;AACtB,EAAA,OAAO,sCAAsC,CAACzG,OAAO,CAAC,OAAO,EAAG0G,CAAC,IAAI;AACjE;IACA,MAAMC,CAAC,GAAG9C,IAAI,CAACE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;MAAEtE,CAAC,GAAGiH,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAG,GAAI,CAAA;AACrE,IAAA,OAAOlH,CAAC,CAACmH,QAAQ,CAAC,EAAE,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AACN,CAAC;;;;"}
@@ -0,0 +1,4 @@
1
+ import { ErrorCodes } from './types/ErrorCodes';
2
+ import { GBaseRequest } from './types/GRequest';
3
+ import { GResponseBase, GResponse } from './types/GResponse';
4
+ export { ErrorCodes, GBaseRequest, GResponseBase, GResponse, };
@@ -0,0 +1,51 @@
1
+ import { TSMap } from "typescript-map";
2
+ declare class Util {
3
+ private constructor();
4
+ static isNumber(value: string): boolean;
5
+ static parseNumber(v: string): number | null;
6
+ static parseBoolean(v: string | boolean): boolean | null;
7
+ static escapeRegExp(v: string): string;
8
+ static nullToEmpty(val: string): string;
9
+ static nullTo0(val: number): number;
10
+ static isNotEmpty(val: string): boolean;
11
+ static isNotNull(val: any): boolean;
12
+ static isNull(val: any): boolean;
13
+ static isArrayNotEmpty(val: any[]): boolean;
14
+ static isArrayEmpty(val: any[]): boolean;
15
+ static isObjectEmpty(val: any): boolean;
16
+ static isMapNotEmpty(val: TSMap<any, any>): boolean;
17
+ static isMapEmpty(val: TSMap<any, any>): boolean;
18
+ static objectToMap<K, V>(obj: any): TSMap<K, V> | null;
19
+ static keyByValue(obj: any, value: any): string | null;
20
+ static greaterThen0(val: number): boolean;
21
+ static not0(val: number): boolean;
22
+ static lessThen0(val: number): boolean;
23
+ static compareUndefined(o1: any, o2: any): number;
24
+ static compareArrayLength<T>(o1: T[], o2: T[]): number;
25
+ static compareObject(a: {
26
+ [key: string]: any;
27
+ }, b: {
28
+ [key: string]: any;
29
+ }): boolean;
30
+ static compareArrays<T>(arr1: T[], arr2: T[], comparator: (t1: T, t2: T) => number): number;
31
+ static compareBool(o1: boolean, o2: boolean): number;
32
+ static compareNumber(o1: number, o2: number): number;
33
+ static compareString(o1: string, o2: string): number;
34
+ static range(from: number, to: number): number[];
35
+ static has(array: any[], val: any): boolean;
36
+ static isEmpty(val: string): boolean;
37
+ static checkNotNull<T>(reference: T, msg?: string): T;
38
+ static randomInt(min: number, max: number): number;
39
+ static randomArr<T>(arr: T[]): T | undefined;
40
+ static remove<T>(arr: T[], item: T): boolean;
41
+ static replaceAll(value: string, regex: string, replacement: string | number): string;
42
+ static to<T, U = any>(promise: Promise<T>, errorExt?: object): Promise<[U | null, T | undefined]>;
43
+ static isObject(item: any): boolean;
44
+ static merge(target: any, ...sources: any[]): any;
45
+ static deepCopy(source: object): object;
46
+ static uuid: () => string;
47
+ static getStackTrace(): string | undefined;
48
+ static shuffleArray(array: any[]): any[];
49
+ static buildValidationHash(ext_user_id: string, ext_game_id: number, customer_id: string, secretKey: string): string;
50
+ }
51
+ export { Util };
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@smartico/public-api",
3
+ "version": "0.0.2",
4
+ "description": "Smartico public API",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "module": "dist/index.modern.mjs",
8
+ "source": "src/index.ts",
9
+ "scripts": {
10
+ "build": "microbundle --no-compress --format modern,cjs",
11
+ "start": "microbundle watch --no-compress --format modern,cjs",
12
+ "pub": "npm run build && npm publish"
13
+ },
14
+ "author": "",
15
+ "license": "ISC",
16
+ "dependencies": {
17
+ "md5-typescript": "^1.0.5",
18
+ "typescript-map": "^0.1.0"
19
+ },
20
+ "devDependencies": {
21
+ "microbundle": "0.15.0"
22
+ }
23
+ }
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { Util } from './util/Util';
2
+ export * from './service'
@@ -0,0 +1,12 @@
1
+ import { ErrorCodes } from './types/ErrorCodes';
2
+ import { GBaseRequest } from './types/GRequest';
3
+ import { GResponseBase, GResponse } from './types/GResponse';
4
+
5
+ export {
6
+
7
+ ErrorCodes,
8
+ GBaseRequest,
9
+ GResponseBase,
10
+ GResponse,
11
+
12
+ }
@@ -0,0 +1,19 @@
1
+ import { SAWSpinErrorCode } from "./SmarticoProto/SAW/SAWDoSpinResponse";
2
+
3
+ export const ErrorCodes_FatalStartingRange = 100000;
4
+
5
+ export enum ErrorCodesGame {
6
+ OK = 0,
7
+ NoBetsUpdatedOnSubmit = 3,
8
+ RepeatRequest_Unhandled = 4,
9
+
10
+ // Fatal errors starting from 100 000
11
+ Fatal_NotValidHash = ErrorCodes_FatalStartingRange,
12
+ Fatal_WrongCustomerID = ErrorCodes_FatalStartingRange + 1,
13
+ Fatal_TemplateNotFound = ErrorCodes_FatalStartingRange + 2,
14
+ Fatal_NoOpenRounds = ErrorCodes_FatalStartingRange + 3,
15
+ Fatal_Unhandled = ErrorCodes_FatalStartingRange + 4,
16
+ }
17
+
18
+
19
+ export type ErrorCodes = SAWSpinErrorCode | ErrorCodesGame;
@@ -0,0 +1,18 @@
1
+
2
+ interface GBaseRequest {
3
+ customer_id: string;
4
+ ext_user_id: string; // int in the smartico system
5
+ int_user_id: number; // int in the retention games
6
+ smartico_ext_user_id: string; // string in the smartico system, that is referencing to user identification in the partner system
7
+ ext_game_id: number;
8
+ lang: string;
9
+ hash: string;
10
+ zoom?: number;
11
+ label_api_key?: string;
12
+ brand_key?: string;
13
+ bridgeId?: string;
14
+ height?: 'auto' | string;
15
+ theme?: string;
16
+ }
17
+
18
+ export { GBaseRequest }
@@ -0,0 +1,12 @@
1
+ import { ErrorCodes } from "./ErrorCodes";
2
+
3
+ interface GResponseBase {
4
+ errCode: ErrorCodes;
5
+ errMessage?: string;
6
+ }
7
+
8
+ interface GResponse<T> extends GResponseBase {
9
+ data?: T;
10
+ }
11
+
12
+ export { GResponseBase, GResponse };
@@ -0,0 +1,8 @@
1
+ enum GameAttemptType {
2
+ Free = 1,
3
+ Points = 2,
4
+ Attempts = 3,
5
+ }
6
+
7
+
8
+ export { GameAttemptType }
@@ -0,0 +1,11 @@
1
+ enum GameCanPlayType {
2
+ Yes = 1,
3
+ NotEnoughPoints = 2,
4
+ NotEnoughAttempts = 3,
5
+ InactiveGame = 4,
6
+ TimeRestrictions = 5,
7
+ SegmentRestrictions = 6,
8
+ GameNotFound = 7
9
+ }
10
+
11
+ export { GameCanPlayType }
@@ -0,0 +1,7 @@
1
+ enum GameExternalStatus {
2
+ Draft = 1,
3
+ Active = 2,
4
+ Archived = 3
5
+ }
6
+
7
+ export { GameExternalStatus }
@@ -0,0 +1,11 @@
1
+ import { ResponseIdentifyLabelInfo } from "../SmarticoProto/PublicLabelInfo";
2
+ import { GamePickRoundBase } from "./GamePick";
3
+ import { SAWTemplate } from "../SmarticoProto/SAW/SAWTemplate";
4
+
5
+ interface GameInfo {
6
+ sawTemplate: SAWTemplate;
7
+ allRounds: GamePickRoundBase[];
8
+ labelInfo: ResponseIdentifyLabelInfo
9
+ }
10
+
11
+ export { GameInfo }
@@ -0,0 +1,104 @@
1
+ enum GamePickMarketType {
2
+ Goals = 1,
3
+ Winner = 2,
4
+ }
5
+
6
+ enum GamePickResolutionType {
7
+ None = 0,
8
+ Lost = 2,
9
+ PartialWin = 3,
10
+ FullWin = 4,
11
+ }
12
+
13
+ enum GPRoundStatus {
14
+ Other = -1,
15
+ NoEventsDefined = 1,
16
+ NoMoreBetsAllowed = 2,
17
+ AllEventsResolved_ButNotRound = 3,
18
+ RoundResolved = 4
19
+ }
20
+
21
+ interface GamePickEventMeta {
22
+ event_name?: string;
23
+ team1_name: string;
24
+ team1_image: string;
25
+ team2_name: string;
26
+ team2_image: string;
27
+ team1_result?: number;
28
+ team2_result?: number;
29
+ }
30
+
31
+ interface GamePickEvent {
32
+ gp_event_id: number;
33
+ event_resolution_date: number;
34
+ match_date: number;
35
+ market_type_id: GamePickMarketType;
36
+ event_meta: GamePickEventMeta;
37
+ user_placed_bet: boolean;
38
+ team1_user_selection: number;
39
+ team2_user_selection: number;
40
+ resolution_type_id: GamePickResolutionType;
41
+ resolution_score?: number;
42
+ is_open_for_bets?: boolean;
43
+ }
44
+
45
+ interface GamePickRoundBase {
46
+ round_id: number;
47
+ round_row_id: number;
48
+ round_name: string;
49
+ round_description: string;
50
+ open_date: number,
51
+ last_bet_date: number;
52
+ resolution_date: number;
53
+ score_full_win: number;
54
+ score_part_win: number;
55
+ score_lost: number;
56
+ is_active_now: boolean;
57
+ is_resolved: boolean;
58
+ round_status_id: GPRoundStatus;
59
+ events_total: number;
60
+ events_resolved: number;
61
+ public_meta: {
62
+ round_name: string;
63
+ round_description: string;
64
+ _translations: {[key: string] : {
65
+ round_name: string;
66
+ round_description: string;
67
+ }}
68
+ }
69
+ next_round_open_date: number;
70
+ }
71
+
72
+ interface GamePickRoundBoard extends GamePickRoundBase {
73
+ my_user: GamePickBoardUser;
74
+ users: GamePickBoardUser[];
75
+ }
76
+
77
+ interface GamePickRound extends GamePickRoundBase {
78
+ events: GamePickEvent[];
79
+ user_score: number;
80
+ user_placed_bet: boolean;
81
+ has_open_for_bet_events?: boolean;
82
+ has_not_submitted_changes?: boolean;
83
+ }
84
+
85
+ interface GamePickBoardUser {
86
+ ext_user_id: string;
87
+ int_user_id: number;
88
+ public_username: string;
89
+ avatar_url: string;
90
+ gp_position: number;
91
+ resolution_score: number;
92
+ full_wins_count: number;
93
+ part_wins_count: number;
94
+ lost_count: number;
95
+ }
96
+
97
+
98
+
99
+ export {
100
+ GamePickRoundBase, GamePickRound, GamePickEvent,
101
+ GamePickMarketType, GamePickResolutionType, GamePickEventMeta, GPRoundStatus,
102
+ GamePickRoundBoard,
103
+ GamePickBoardUser
104
+ };
@@ -0,0 +1,30 @@
1
+ import { GameInfo } from "./GameInfo";
2
+ import { GamePickRound, GamePickRoundBase } from "./GamePick";
3
+ import { Util } from "../../../util/Util";
4
+
5
+
6
+ class GameUtil {
7
+
8
+ public static getRoundName(round: GamePickRoundBase, gameInfo: GameInfo): string {
9
+ if (gameInfo.sawTemplate.jackpot_current) {
10
+ const t = gameInfo.sawTemplate;
11
+ const jackpotValue = t.jackpot_current + (t.saw_template_ui_definition?.jackpot_symbol ? ' ' + t.saw_template_ui_definition?.jackpot_symbol : '');
12
+ return Util.replaceAll(round.round_name, "{{jackpot}}", jackpotValue);
13
+ } else {
14
+ return round.round_name;
15
+ }
16
+ }
17
+
18
+ public static getRoundDescription(round: GamePickRound, gameInfo: GameInfo): string {
19
+ if (gameInfo.sawTemplate.jackpot_current) {
20
+ const t = gameInfo.sawTemplate;
21
+ const jackpotValue = t.jackpot_current + (t.saw_template_ui_definition?.jackpot_symbol ? ' ' + t.saw_template_ui_definition?.jackpot_symbol : '');
22
+ return Util.replaceAll(round.round_description, "{{jackpot}}", jackpotValue);
23
+ } else {
24
+ return round.round_description;
25
+ }
26
+ }
27
+ }
28
+
29
+
30
+ export { GameUtil }
@@ -0,0 +1,9 @@
1
+ import { ProtocolRequest } from "./ProtocolRequest";
2
+ import { TranslationArea } from "./TranslationArea";
3
+
4
+ export interface GetTranslationsRequest extends ProtocolRequest {
5
+
6
+ hash_code: number;
7
+ areas: TranslationArea[];
8
+ lang_code: string;
9
+ }
@@ -0,0 +1,8 @@
1
+ import { ProtocolResponse } from "./ProtocolResponse";
2
+
3
+ export interface GetTranslationsResponse extends ProtocolResponse {
4
+
5
+ hash_code: number;
6
+ translations: {[key: string]: string};
7
+ }
8
+
@@ -0,0 +1,6 @@
1
+
2
+ export interface ProtocolMessage {
3
+ cid: number;
4
+ ts?: number;
5
+ uuid?: string;
6
+ }
@@ -0,0 +1,8 @@
1
+ import { ProtocolMessage } from "./ProtocolMessage";
2
+
3
+
4
+ export interface ProtocolRequest extends ProtocolMessage {
5
+ api_key: string,
6
+ brand_key: string,
7
+ ext_user_id: string,
8
+ }
@@ -0,0 +1,8 @@
1
+ import { ProtocolMessage } from "./ProtocolMessage";
2
+
3
+
4
+ export interface ProtocolResponse extends ProtocolMessage {
5
+
6
+ errCode?: number;
7
+ errMsg?: string;
8
+ }
@@ -0,0 +1,39 @@
1
+ export enum PublicLabelSettings {
2
+ FCM_SENDER_ID = "FCM_SENDER_ID",
3
+ PUBLIC_API_URL = "PUBLIC_API_URL",
4
+ FCM_SW_URL = "FCM_SW_URL",
5
+ RECORDING_ENABLED_FOR_ALL_USERS = "RECORDING_ENABLED_FOR_ALL_USERS",
6
+ JS_INJECTION = "JS_INJECTION",
7
+ GAMIFICATION_UI_MAIN = "GAMIFICATION_UI_MAIN",
8
+ GAMIFICATION_UI_WIDGET = "GAMIFICATION_UI_WIDGET",
9
+ GAMIFICATION_UI_MINI_GAME = "GAMIFICATION_UI_MINI_GAME",
10
+ GAMIFICATION_UI_SETTINGS = "GAMIFICATION_UI_SETTINGS",
11
+ GAMIFICATION_UI_MAIN_TEST = "GAMIFICATION_UI_MAIN_TEST",
12
+ GAMIFICATION_UI_WIDGET_TEST = "GAMIFICATION_UI_WIDGET_TEST",
13
+ GAMIFICATION_UI_SETTINGS_TEST = "GAMIFICATION_UI_SETTINGS_TEST",
14
+ FRONT_END_ALLOWED_LANGUAGES = "FRONT_END_ALLOWED_LANGUAGES",
15
+ FRONT_END_ALLOW_DOMAINS = "FRONT_END_ALLOW_DOMAINS",
16
+ DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS = "DELAY_ENGAGEMENT_EXECUTION_ON_LOGIN_MS",
17
+ SHADOW_LABEL_PUBLIC_KEY = "SHADOW_LABEL_PUBLIC_KEY",
18
+ DYNAMIC_IMAGE_DOMAIN = "DYNAMIC_IMAGE_DOMAIN",
19
+
20
+ GAMIFICATION_UI_LEVEL_ENABLED = "GAMIFICATION_UI_LEVEL_ENABLED",
21
+ GAMIFICATION_UI_LEVEL_IMAGE_MOB = "GAMIFICATION_UI_LEVEL_IMAGE_MOB",
22
+ GAMIFICATION_UI_LEVEL_IMAGE_DESK = "GAMIFICATION_UI_LEVEL_IMAGE_DESK",
23
+
24
+ GAMIFICATION_LEVELS_LOGIC2 = "GAMIFICATION_LEVELS_LOGIC2",
25
+
26
+ AVATAR_CUSTOM_IMAGE_MAX_ID = "AVATAR_CUSTOM_IMAGE_MAX_ID",
27
+ AVATAR_CUSTOM_IMAGE_FOLDER = "AVATAR_CUSTOM_IMAGE_FOLDER",
28
+
29
+ RETENTION_GAMES_CUSTOMER_ID = "RETENTION_GAMES_CUSTOMER_ID",
30
+
31
+ GAMIFICATION_SHOW_POWERED_BY = "GAMIFICATION_SHOW_POWERED_BY",
32
+ _system_leader_board_mask_username = "_system_leader_board_mask_username",
33
+ }
34
+
35
+
36
+ export interface ResponseIdentifyLabelInfo {
37
+ settings: { [key: string]: string },
38
+ label_id: string,
39
+ }
@@ -0,0 +1,11 @@
1
+ export interface PublicProperties {
2
+ core_user_language?: string;
3
+ ach_points_balance?: number;
4
+ ach_points_ever?: number;
5
+ ach_points_board_period_type_1?: number;
6
+ ach_points_board_period_type_2?: number;
7
+ ach_level_current_id?: number;
8
+ ach_level_current?: string;
9
+ core_is_test_account?: boolean;
10
+ ach_gamification_in_control_group?: boolean;
11
+ }
@@ -0,0 +1,16 @@
1
+ import { ProtocolResponse } from "./ProtocolResponse";
2
+ import { PublicProperties } from "./PublicProperties";
3
+
4
+ interface ResponseIdentify extends ProtocolResponse {
5
+ user_id: number;
6
+ ext_user_id: string;
7
+ public_username: string;
8
+ avatar_id: string;
9
+ job: boolean;
10
+ props?: PublicProperties;
11
+ pubic_username_set: boolean;
12
+ // payload?: KeyValue,
13
+ // settings?: KeyValue
14
+ }
15
+
16
+ export { ResponseIdentify }
@@ -0,0 +1,6 @@
1
+ export enum SAWAcknowledgeType {
2
+
3
+ Silent = 1,
4
+ QuickMessage = 2,
5
+ FullMessage = 3
6
+ }
@@ -0,0 +1,5 @@
1
+ export enum SAWBuyInType {
2
+ Free = 1,
3
+ Points = 2,
4
+ Spins = 3
5
+ }
@@ -0,0 +1,8 @@
1
+ import { ProtocolRequest } from "./ProtocolRequest";
2
+
3
+
4
+ export interface SAWDoSpinRequest extends ProtocolRequest {
5
+
6
+ request_id: string; // guid
7
+ saw_template_id: number;
8
+ }
@@ -0,0 +1,18 @@
1
+ import { ProtocolResponse } from "../ProtocolResponse";
2
+
3
+
4
+ export enum SAWSpinErrorCode {
5
+ SAW_OK = 0,
6
+ SAW_NO_SPINS = 40001,
7
+ SAW_PRIZE_POOL_EMPTY = 40002,
8
+ SAW_NOT_ENOUGH_POINTS = 40003,
9
+ SAW_FAILED_MAX_SPINS_REACHED = 40004,
10
+ }
11
+
12
+ export interface SAWDoSpinResponse extends ProtocolResponse {
13
+ errCode: SAWSpinErrorCode;
14
+ errMsg?: string;
15
+ request_id: string; // guid
16
+ saw_prize_id: number;
17
+ first_spin_in_period: number;
18
+ };
@@ -0,0 +1,11 @@
1
+ export enum SAWGameType {
2
+ SpinAWheel = 1,
3
+ ScratchCard = 2,
4
+ SportPick = 3
5
+ }
6
+
7
+ export const SAWGameTypeName = {
8
+ [SAWGameType.SpinAWheel]: "wheel",
9
+ [SAWGameType.ScratchCard]: "scratch",
10
+ [SAWGameType.SportPick]: "sportpick",
11
+ }
@@ -0,0 +1,5 @@
1
+ import { ProtocolRequest } from "../ProtocolRequest";
2
+
3
+ export interface SAWGetTemplatesRequest extends ProtocolRequest {
4
+
5
+ }
@@ -0,0 +1,8 @@
1
+ import { ProtocolResponse } from "../ProtocolResponse";
2
+ import { SAWTemplate } from "./SAWTemplate";
3
+
4
+
5
+ export interface SAWGetTemplatesResponse extends ProtocolResponse {
6
+
7
+ templates: SAWTemplate[];
8
+ }
@@ -0,0 +1,13 @@
1
+ import { SAWPrizeType } from "./SAWPrizeType";
2
+ import { SAWPrizeUI } from "./SAWPrizeUI";
3
+
4
+
5
+ export interface SAWPrize {
6
+ saw_prize_id: number;
7
+ saw_prize_ui_definition: SAWPrizeUI;
8
+ prize_value?: number;
9
+ prize_type_id: SAWPrizeType;
10
+ place_from?: number;
11
+ place_to?: number;
12
+ sawUniqueWinId?: string;
13
+ }
@@ -0,0 +1,9 @@
1
+ export enum SAWPrizeType {
2
+
3
+ NO_PRIZE = 1,
4
+ POINTS = 2,
5
+ BONUS = 3,
6
+ MANUAL = 4,
7
+ SPIN = 5,
8
+ JACKPOT = 6
9
+ }
@@ -0,0 +1,14 @@
1
+ import { SAWAcknowledgeType } from "./SAWAcknowledgeType";
2
+ import { SAWWinSoundType } from "./SAWWinSoundType";
3
+
4
+ export interface SAWPrizeUI {
5
+ position?: number; // for scratch card defines position of prize in the list
6
+ name: string;
7
+ aknowledge_message: string;
8
+ sectors: number[];
9
+ acknowledge_type: SAWAcknowledgeType;
10
+ acknowledge_dp?: string;
11
+ font_size?: number;
12
+ sound_type: SAWWinSoundType;
13
+ icon?: string;
14
+ }
@@ -0,0 +1,29 @@
1
+ import { SAWBuyInType } from "./SAWBuyInType";
2
+ import { SAWGameType } from "./SAWGameType";
3
+ import { SAWPrize } from "./SAWPrize";
4
+ import { SAWTemplateUI } from "./SAWTemplateUI";
5
+
6
+ export interface SAWTemplate {
7
+ saw_template_id: number;
8
+ saw_game_type_id: SAWGameType;
9
+ saw_template_ui_definition: SAWTemplateUI;
10
+
11
+ saw_buyin_type_id: SAWBuyInType;
12
+ buyin_cost_points?: number;
13
+ visibile_when_can_spin: boolean;
14
+
15
+ spin_count?: number; // inital count, after that server will push SAWSpinsCountPush
16
+
17
+ prizes: SAWPrize[];
18
+
19
+ is_visible: boolean;
20
+
21
+ jackpot_add_on_attempt: number;
22
+ jackpot_current: number;
23
+ jackpot_guaranteed: number;
24
+
25
+ maxActiveSpinsAllowed: number;
26
+ maxSpinsCount: number;
27
+ maxSpinsPediodMs: number;
28
+
29
+ }