@jolibox/implement 1.1.12 → 1.1.13-beta.10

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 (85) hide show
  1. package/.rush/temp/package-deps_build.json +35 -41
  2. package/.rush/temp/shrinkwrap-deps.json +1 -1
  3. package/dist/common/ads/anti-cheating.d.ts +5 -0
  4. package/dist/common/context/index.d.ts +5 -0
  5. package/dist/common/context/url-parse.d.ts +8 -1
  6. package/dist/common/rewards/__tests__/can-use-jolicoin.test.d.ts +1 -0
  7. package/dist/common/rewards/fetch-reward.d.ts +2 -0
  8. package/dist/common/rewards/index.d.ts +18 -0
  9. package/dist/common/rewards/registers/use-ads.d.ts +3 -0
  10. package/dist/common/rewards/registers/use-jolicoin.d.ts +9 -0
  11. package/dist/common/rewards/registers/utils/index.d.ts +2 -0
  12. package/dist/common/rewards/reward-helper.d.ts +14 -0
  13. package/dist/common/rewards/type.d.ts +23 -0
  14. package/dist/common/utils/index.d.ts +7 -0
  15. package/dist/index.js +3 -3
  16. package/dist/index.native.js +131 -4
  17. package/dist/native/api/index.d.ts +1 -0
  18. package/dist/native/api/keyboard.d.ts +1 -1
  19. package/dist/native/api/navigate.d.ts +1 -0
  20. package/dist/native/network/create-fetch.d.ts +1 -0
  21. package/dist/native/ui/retention.d.ts +1 -0
  22. package/implement.build.log +2 -2
  23. package/package.json +5 -3
  24. package/src/common/ads/anti-cheating.test.ts +4 -2
  25. package/src/common/ads/anti-cheating.ts +12 -4
  26. package/src/common/ads/index.ts +51 -33
  27. package/src/common/context/index.ts +22 -3
  28. package/src/common/context/url-parse.ts +24 -1
  29. package/src/common/rewards/__tests__/can-use-jolicoin.test.ts +94 -0
  30. package/src/common/rewards/fetch-reward.ts +33 -0
  31. package/src/common/rewards/index.ts +20 -0
  32. package/src/common/rewards/registers/use-ads.ts +9 -0
  33. package/src/common/rewards/registers/use-jolicoin.ts +89 -0
  34. package/src/common/rewards/registers/utils/index.ts +11 -0
  35. package/src/common/rewards/reward-helper.ts +56 -0
  36. package/src/common/rewards/type.ts +25 -0
  37. package/src/common/utils/index.ts +7 -0
  38. package/src/h5/api/ads.ts +20 -1
  39. package/src/h5/api/get-system-info.ts +1 -1
  40. package/src/h5/http/utils/__tests__/xua.test.ts +1 -1
  41. package/src/native/api/ads.ts +31 -3
  42. package/src/native/api/get-system-info.ts +2 -2
  43. package/src/native/api/index.ts +1 -0
  44. package/src/native/api/keyboard.ts +1 -1
  45. package/src/native/api/lifecycle.ts +16 -4
  46. package/src/native/api/login.ts +1 -1
  47. package/src/native/api/navigate.ts +61 -0
  48. package/src/native/api/request.ts +19 -10
  49. package/src/native/api/storage.ts +1 -1
  50. package/src/native/bootstrap/index.ts +111 -27
  51. package/src/native/network/create-fetch.ts +7 -2
  52. package/src/native/network/utils.ts +13 -6
  53. package/src/native/report/errors/index.ts +1 -1
  54. package/src/native/report/index.ts +1 -1
  55. package/src/native/report/task-tracker.ts +1 -1
  56. package/src/native/ui/retention.ts +153 -0
  57. package/dist/native/bootstrap/bridge.d.ts +0 -4
  58. package/dist/native/js-bridge/const.d.ts +0 -5
  59. package/dist/native/js-bridge/index.d.ts +0 -2
  60. package/dist/native/js-bridge/invoke.d.ts +0 -21
  61. package/dist/native/js-bridge/js-bridge.d.ts +0 -6
  62. package/dist/native/js-bridge/report.d.ts +0 -63
  63. package/dist/native/js-bridge/subscribe.d.ts +0 -8
  64. package/dist/native/js-bridge/types.d.ts +0 -14
  65. package/dist/native/js-bridge/utils.d.ts +0 -17
  66. package/dist/native/js-core/index.d.ts +0 -3
  67. package/dist/native/js-core/jolibox-js-core.d.ts +0 -45
  68. package/dist/native/js-core/message-port.d.ts +0 -12
  69. package/dist/native/js-core/utils.d.ts +0 -7
  70. package/src/native/bootstrap/bridge.ts +0 -59
  71. package/src/native/js-bridge/const.ts +0 -11
  72. package/src/native/js-bridge/index.ts +0 -2
  73. package/src/native/js-bridge/invoke.ts +0 -208
  74. package/src/native/js-bridge/js-bridge.ts +0 -23
  75. package/src/native/js-bridge/report.ts +0 -311
  76. package/src/native/js-bridge/subscribe.ts +0 -50
  77. package/src/native/js-bridge/types.ts +0 -26
  78. package/src/native/js-bridge/utils.ts +0 -116
  79. package/src/native/js-core/index.ts +0 -4
  80. package/src/native/js-core/jolibox-js-core.ts +0 -188
  81. package/src/native/js-core/message-port.ts +0 -52
  82. package/src/native/js-core/utils.ts +0 -9
  83. package/src/native/types/global.d.ts +0 -26
  84. package/src/native/types/native-method-map.d.ts +0 -300
  85. package/src/native/types/native-method.d.ts +0 -30
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "files": {
3
- "packages/implement/.rush/temp/shrinkwrap-deps.json": "4156012fb48a38c7a8ff8830f12630f81c57f7bb",
3
+ "packages/implement/.rush/temp/shrinkwrap-deps.json": "409982f688cb8365b288673bcc40782cb7dedd5f",
4
4
  "packages/implement/.eslintrc.js": "7a3d2747dc887655ca9e2d3ff621f7dfd98500b9",
5
5
  "packages/implement/README.md": "5660cd88848b7a5428394cc34d881a35dd402188",
6
6
  "packages/implement/esbuild.config.js": "86f1fd21722a2cb05216751578dcca66326e664a",
7
- "packages/implement/package.json": "db9c06cd56df6cafc731425d47d7be2a262a0269",
7
+ "packages/implement/package.json": "6f91a5f04be9820dd05ddc3f68536e6db7f29972",
8
8
  "packages/implement/src/common/ads/ads-action-detection.ts": "5a7b9f85d7eab9e744f8a9fc7638063f43baa214",
9
- "packages/implement/src/common/ads/anti-cheating.test.ts": "433eb603b97fd7609f26af1522f309596a790829",
10
- "packages/implement/src/common/ads/anti-cheating.ts": "888c94ef55ca03849a79b3e0425850a097192816",
9
+ "packages/implement/src/common/ads/anti-cheating.test.ts": "e2ff3dc6760cfd28d0f8c15703d7fb20d43df583",
10
+ "packages/implement/src/common/ads/anti-cheating.ts": "a3ffb6a78e289e1c0ce45c7f7c0cee000e75e541",
11
11
  "packages/implement/src/common/ads/channel-policy.ts": "c6d036be5cedf0c5d545fac271c6c8447ca55d8a",
12
- "packages/implement/src/common/ads/index.ts": "e3d5b617f7a156583d50905d325c7ed13ecba6fb",
12
+ "packages/implement/src/common/ads/index.ts": "e5d6d4b5754b6735f54b6cad377320ac980efb29",
13
13
  "packages/implement/src/common/api-factory/index.ts": "a2b60f027384e37492ddde550dd46f3fb3e14cfe",
14
14
  "packages/implement/src/common/api-factory/validator/__tests__/validate/any.test.ts": "6e225e09fce401b374221ad2e4fe33bc91df4152",
15
15
  "packages/implement/src/common/api-factory/validator/__tests__/validate/array.test.ts": "8a9cc32be03e952f1176a970fea033d597c176cb",
@@ -31,9 +31,9 @@
31
31
  "packages/implement/src/common/api-factory/validator/index.ts": "204e86b97c854647d177805e3180d4cfd542b0f8",
32
32
  "packages/implement/src/common/api-factory/validator/validate.ts": "5fee8175a9a05a69fe709c7e7899e5372d81efb1",
33
33
  "packages/implement/src/common/can-i-use.ts": "9a28562870d92b82ce42ec656c8e9d868dd87528",
34
- "packages/implement/src/common/context/index.ts": "c9c05fb395302a12b4306baa339f429e3e82c8e3",
34
+ "packages/implement/src/common/context/index.ts": "b08ac6a2021c7e10701f87d88ab3f7e7a2ac90d7",
35
35
  "packages/implement/src/common/context/types.ts": "244ff65de52dcbce2457ffee427f5fa102987825",
36
- "packages/implement/src/common/context/url-parse.ts": "4e7010962db4e0b35c6fbe70e82efa54180d0de0",
36
+ "packages/implement/src/common/context/url-parse.ts": "bc25ab4dec5a92f02a8bf99a8e8da4e74f50aba3",
37
37
  "packages/implement/src/common/http/index.ts": "5087185d80e1e239262f849b3015eb9b810e2945",
38
38
  "packages/implement/src/common/http/uuid.ts": "72e0bcc38976f6d25a55128843c6e3b0dbfd978e",
39
39
  "packages/implement/src/common/http/xua.ts": "2ef571b8467fe5e8ecb470c26cb6da99b24be9a8",
@@ -46,17 +46,25 @@
46
46
  "packages/implement/src/common/report/task-track/index.ts": "056d4ce9121648e94aa177e8e6b261adb455d244",
47
47
  "packages/implement/src/common/report/track.ts": "1c71050f8caadfe7065f0db5a4a0708c264c21b4",
48
48
  "packages/implement/src/common/report/types.ts": "fd127bfd31586f1d712152ef60a4e9175f8bfe8f",
49
- "packages/implement/src/common/utils/index.ts": "a704a0628b1cf83ac917e265021b95d96ed42526",
50
- "packages/implement/src/h5/api/ads.ts": "e62a492f0ff6e3bb1be91b83439975151d9a89d8",
49
+ "packages/implement/src/common/rewards/__tests__/can-use-jolicoin.test.ts": "ec0f7225cb1b322e9278a3d8d6848bc50190696a",
50
+ "packages/implement/src/common/rewards/fetch-reward.ts": "bef4af1b9314cc4d06b2609edffdfad024b57081",
51
+ "packages/implement/src/common/rewards/index.ts": "f6160318ce7393684ebf229729b3168beb0c2d99",
52
+ "packages/implement/src/common/rewards/registers/use-ads.ts": "e6eb324d5ac39d0a5df478760fdf0ee75fded1b5",
53
+ "packages/implement/src/common/rewards/registers/use-jolicoin.ts": "ee28989dea8aca243439cb1508d3fac55a689ae1",
54
+ "packages/implement/src/common/rewards/registers/utils/index.ts": "a297dfc50b091368fba6e12e67663693f14ac1b8",
55
+ "packages/implement/src/common/rewards/reward-helper.ts": "2113cbd370da5be4beaf88bed865f1846e43d472",
56
+ "packages/implement/src/common/rewards/type.ts": "75c8444405686dbee1628f6d67c4a6b803e0623e",
57
+ "packages/implement/src/common/utils/index.ts": "6e2af1b721d5a9caf8fa40fd22fc73a2fdd5c4c0",
58
+ "packages/implement/src/h5/api/ads.ts": "35f3efdc7b7ca6399ba589d97691e2e6a811b4c2",
51
59
  "packages/implement/src/h5/api/base.ts": "ead2c3cdcbe174b0e725c31a3885c7985bd8f667",
52
- "packages/implement/src/h5/api/get-system-info.ts": "c7a866b5b06695774a7fd94df73156c4e15658a8",
60
+ "packages/implement/src/h5/api/get-system-info.ts": "158d66156c720446457318b7eaa9112452114dbb",
53
61
  "packages/implement/src/h5/api/index.ts": "81b815f5ac8e1bd3e3f019f94c28bd5522a36193",
54
62
  "packages/implement/src/h5/api/lifecycle.ts": "3bc23344a0975fd67ddea22bae580af401284067",
55
63
  "packages/implement/src/h5/api/storage.ts": "ac2d6aa75c8fd5fc2f9f06124db0b0b61ab40ac3",
56
64
  "packages/implement/src/h5/api/task.ts": "8bb87ad8874f6a3833901977b9b5659838c9aacf",
57
65
  "packages/implement/src/h5/bootstrap/index.ts": "8beec81dba25b479afe06f79f9b6e3d240eea32a",
58
66
  "packages/implement/src/h5/http/index.ts": "4f965ff49e89e0060a991545b409af857832ce1d",
59
- "packages/implement/src/h5/http/utils/__tests__/xua.test.ts": "c92a065460d421b9e0723b4d6e74b1c5eed58102",
67
+ "packages/implement/src/h5/http/utils/__tests__/xua.test.ts": "4345cfd10cae6f94cef673f04a5155b70123c048",
60
68
  "packages/implement/src/h5/http/utils/index.ts": "05f4d94be09b9bfdcbb1365b31a5559e44a74991",
61
69
  "packages/implement/src/h5/http/utils/session.ts": "4762a6a56762484f91ca5f2a456ab2cff3107659",
62
70
  "packages/implement/src/h5/report/errors/index.ts": "22ef4184d6a6d272a5fefc1453a4a6d78ae8f2ff",
@@ -65,42 +73,28 @@
65
73
  "packages/implement/src/h5/report/task-tracker.ts": "9b55e81e5c20d459ff851f70689e9280e89c0e63",
66
74
  "packages/implement/src/index.native.ts": "96cc46c8919ba2333600e9c3ee100f47c511a79a",
67
75
  "packages/implement/src/index.ts": "d0ca7b5312b0a258ae8887e725440c70190442f7",
68
- "packages/implement/src/native/api/ads.ts": "845fc0e95c00444e3f96d7c73318b29840d3bbe2",
76
+ "packages/implement/src/native/api/ads.ts": "61820883bebf9eb011dc78b48b614bfac69aed9b",
69
77
  "packages/implement/src/native/api/base.ts": "c4c4d04519cdbc3a08226c620f6314ee3b151435",
70
- "packages/implement/src/native/api/get-system-info.ts": "d0132211c53425eed4811721ac5d577781b118a7",
71
- "packages/implement/src/native/api/index.ts": "137dbcbeda2533a09d417d2b6c5d8dea992df9a6",
72
- "packages/implement/src/native/api/keyboard.ts": "89703b1d8b0929cd0366fd663fee7690be705b38",
73
- "packages/implement/src/native/api/lifecycle.ts": "1e4b012bdfdfc9eaddf41cb08885c0e4b0addbf3",
74
- "packages/implement/src/native/api/login.ts": "b957d3142462589395aeeee20e75ff6724ac6fbd",
75
- "packages/implement/src/native/api/request.ts": "a749e8ac9bb0bada4bca3008ac0be976621dcaf4",
76
- "packages/implement/src/native/api/storage.ts": "7f56694e3a7f47605512f9cee7fce48ac620c169",
78
+ "packages/implement/src/native/api/get-system-info.ts": "187333a4eca5304e896360d1496744cb7535ab49",
79
+ "packages/implement/src/native/api/index.ts": "39c85b6c6d93f91d9ecc4a96a38a39a425d5487a",
80
+ "packages/implement/src/native/api/keyboard.ts": "cb65da6e8cbfb7ef4a21582acd74f450a0e3c894",
81
+ "packages/implement/src/native/api/lifecycle.ts": "857beae3012fcb89396ac8e485c9d9b3df737db2",
82
+ "packages/implement/src/native/api/login.ts": "b820416100228e12df434238685a02e4b07a24c1",
83
+ "packages/implement/src/native/api/navigate.ts": "ff8b39101a714bed4d5cc287edb384b76b5b6045",
84
+ "packages/implement/src/native/api/request.ts": "d2b5fb71eff0dfda5f24ca7ddf11fa4704c35eee",
85
+ "packages/implement/src/native/api/storage.ts": "4e5886d5cdb4db50ab7fcdc24392569f749f4c93",
77
86
  "packages/implement/src/native/api/task.ts": "26e06a3d6bbeaed34fd704d096e712448296607e",
78
- "packages/implement/src/native/bootstrap/bridge.ts": "3dfce00262f240342d7e29ae155ce8c1732a02cd",
79
- "packages/implement/src/native/bootstrap/index.ts": "8b04d68a88b653917bb8ee2d4b6b1d7412cb96f8",
87
+ "packages/implement/src/native/bootstrap/index.ts": "12b491efeb62cc19c41fc613f725314cce38e969",
80
88
  "packages/implement/src/native/bootstrap/init-env.ts": "b7514d5d2db60da990575c1426243777aee57748",
81
- "packages/implement/src/native/js-bridge/const.ts": "96156a123e89d20b51d59865e21f216ea5a30821",
82
- "packages/implement/src/native/js-bridge/index.ts": "b65e1e20edcce8ce270381a9c7c79cc981761ad4",
83
- "packages/implement/src/native/js-bridge/invoke.ts": "f7fd744c9491e4eb21b8d5ec6ef314a602a5adcb",
84
- "packages/implement/src/native/js-bridge/js-bridge.ts": "a4b3c18e243aedf7d4aabc3b3791911bffb7b6ff",
85
- "packages/implement/src/native/js-bridge/report.ts": "056a4b6eea59219d1ea3af08a39fd35a4627abd2",
86
- "packages/implement/src/native/js-bridge/subscribe.ts": "757943dc68dcd8b87815126b2aa4b5fe291fea4f",
87
- "packages/implement/src/native/js-bridge/types.ts": "53d2bcc07e165faf36d969cb0c015822fd34bb7d",
88
- "packages/implement/src/native/js-bridge/utils.ts": "9a444bd1dc499fcdb45561eb06396a04c4d538e1",
89
- "packages/implement/src/native/js-core/index.ts": "d3fdbad44b2969e0d45d22e8c4da5b8f83782667",
90
- "packages/implement/src/native/js-core/jolibox-js-core.ts": "88908550c33392b1bf7f2909a218f9caedb7cab0",
91
- "packages/implement/src/native/js-core/message-port.ts": "7199fe2e9a89617bfce7853562ac0fd37772bce2",
92
- "packages/implement/src/native/js-core/utils.ts": "a3639631f50764a5498f17949d3b9204fcc86fbf",
93
- "packages/implement/src/native/network/create-fetch.ts": "e677cf812494994762afc48ddb8a6eca70a1936d",
89
+ "packages/implement/src/native/network/create-fetch.ts": "348e6af474257596663befbbf4179f18a2dec489",
94
90
  "packages/implement/src/native/network/index.ts": "f57653dfa388545cbe7fb0a3f1eb9603c6208f45",
95
91
  "packages/implement/src/native/network/report.ts": "705e9614faeb0611c9c57ced998885bdc3a02d11",
96
92
  "packages/implement/src/native/network/types.ts": "4e8eb72bf0b0b26a5298ce42d96855d27769be51",
97
- "packages/implement/src/native/network/utils.ts": "cc94ff34d8cda8e8a2a4731185c1d57c7dd04b92",
98
- "packages/implement/src/native/report/errors/index.ts": "d2cd492f07c9b98bd8d469d4a5a84bb8520a3dd2",
99
- "packages/implement/src/native/report/index.ts": "b30ccb9ef8e9124cbf156c6bdc3751465721383a",
100
- "packages/implement/src/native/report/task-tracker.ts": "09f8bc1dd157fe9a2159c261278bd2a92930cee3",
101
- "packages/implement/src/native/types/global.d.ts": "065076bbecdd9a0ffe7a71c19475356a6f816cee",
102
- "packages/implement/src/native/types/native-method-map.d.ts": "4f852c0331eaabb90849a652de3ea75905d98324",
103
- "packages/implement/src/native/types/native-method.d.ts": "e4e22c921a5b54d4e10fe5ca18158d691fbfe3e7",
93
+ "packages/implement/src/native/network/utils.ts": "53877a6871dc3a6b173daef930872c44589659b9",
94
+ "packages/implement/src/native/report/errors/index.ts": "40e60ee03e0b91cdb0a143a2bea07f5d1e5d6dd7",
95
+ "packages/implement/src/native/report/index.ts": "2df4598a1004c3f7764ac7a90528e44772b41943",
96
+ "packages/implement/src/native/report/task-tracker.ts": "8905391993830700027cc78c80a76c0750ab0d43",
97
+ "packages/implement/src/native/ui/retention.ts": "96e18984b55fb87463f6aff84c80351b9d4cc61c",
104
98
  "packages/implement/tsconfig.json": "b150f4b2ef4eb9d98f92135d481fe530eb7145b5"
105
99
  },
106
100
  "arguments": "npm run clean && npm run build:esm && tsc "
@@ -1,5 +1,5 @@
1
1
  {
2
- "../../packages/implement": "../../packages/implement:W7XjBp7eadutjHQShLRROYpGOSwiTIW9kh58QX2qNao=:",
2
+ "../../packages/implement": "../../packages/implement:XNjV+nubYJ5Ea+L3nAHfmmaL+hefQPGR6Lf/+SGPCU0=:",
3
3
  "/@esbuild/aix-ppc64/0.24.2": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==",
4
4
  "/@esbuild/android-arm/0.24.2": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==",
5
5
  "/@esbuild/android-arm64/0.24.2": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==",
@@ -10,6 +10,11 @@ export interface IAdsAntiCheatingConfig {
10
10
  banForSessionThreshold?: number;
11
11
  highFreqThreshold?: number;
12
12
  }
13
+ declare global {
14
+ interface Window {
15
+ __joliboxLocalStorage__: Storage;
16
+ }
17
+ }
13
18
  export declare class AdsAntiCheating {
14
19
  readonly track: Track;
15
20
  readonly httpClient: IHttpClient;
@@ -1,5 +1,6 @@
1
1
  import { DeviceInfo, HostInfo, HostUserInfo, SdkInfo } from './types';
2
2
  import { Env } from '@jolibox/types';
3
+ import { QueryParams } from './url-parse';
3
4
  type MPType = 'game' | 'miniApp';
4
5
  export declare const context: {
5
6
  readonly testMode: boolean;
@@ -17,6 +18,10 @@ export declare const context: {
17
18
  readonly sessionId: string;
18
19
  readonly channel: string | undefined;
19
20
  readonly webviewId: number;
21
+ readonly shouldInterupt: boolean | undefined;
22
+ readonly from: number | undefined;
23
+ readonly baseApiHost: string;
20
24
  onEnvConfigChanged: (newConfig: Partial<Env>) => void;
25
+ encodeJoliSourceQuery: (newPayloadJson: QueryParams["payloadJson"]) => string;
21
26
  };
22
27
  export {};
@@ -10,15 +10,22 @@ interface PayloadJson {
10
10
  joliboxEnv?: 'staging' | 'production';
11
11
  sessionId?: string;
12
12
  __mpType?: 'game' | 'miniApp';
13
+ __orientation?: 'HORIZONTAL' | 'VERTICAL';
14
+ __transparent?: boolean;
15
+ __entryPath?: string;
16
+ __showStatusBar?: boolean;
17
+ __shouldInterupt?: boolean;
18
+ __from?: number;
13
19
  }
14
20
  interface Signature {
15
21
  headerSig?: string;
16
22
  payloadSig?: string;
17
23
  }
18
- interface QueryParams {
24
+ export interface QueryParams {
19
25
  headerJson: HeaderJson;
20
26
  payloadJson: PayloadJson;
21
27
  signature: Signature;
22
28
  }
23
29
  export declare const parseUrlQuery: (url: string) => QueryParams;
30
+ export declare const encodeJoliSourceQuery: (payloadJson: PayloadJson, originJoliSource: string) => string;
24
31
  export {};
@@ -0,0 +1,2 @@
1
+ import { RewardsHelper } from './reward-helper';
2
+ export declare const createRewardFetcher: (rewardsHelper: RewardsHelper) => void;
@@ -0,0 +1,18 @@
1
+ import { EventEmitter } from '@jolibox/common';
2
+ import { IUnlockOption, IJoliCoin } from './type';
3
+ export declare const rewardsHelper: {
4
+ registerRewardHandler<T extends import("./reward-helper").RewardType>(type: T, handler: import("./reward-helper").RewardHandler<T>): void;
5
+ handleReward<T extends import("./reward-helper").RewardType>(rewardsTypes: T[], ...args: Parameters<import("./reward-helper").RewardHandler<T>>): Promise<any>;
6
+ registerRewardsFetcher<T extends import("./reward-helper").RewardType>(fetcher: (...args: any[]) => Promise<T[]>): Promise<void>;
7
+ getRewardsTypes(...args: unknown[]): Promise<import("./reward-helper").RewardType[]>;
8
+ };
9
+ export * from './registers/use-ads';
10
+ export * from './registers/use-jolicoin';
11
+ export interface IUnlockOptionsEvent {
12
+ options: IUnlockOption[];
13
+ userJoliCoin: IJoliCoin;
14
+ }
15
+ export declare const UnlockOptionsEventName: "UNLOCK_OPTIONS_CHANGED";
16
+ export declare const unlockOptionsEmitter: EventEmitter<{
17
+ UNLOCK_OPTIONS_CHANGED: [IUnlockOptionsEvent];
18
+ }, "UNLOCK_OPTIONS_CHANGED">;
@@ -0,0 +1,3 @@
1
+ import { JoliboxAdsImpl, IRewardParams } from '../../ads';
2
+ export type AdsRewardsHandler = (params: IRewardParams) => Promise<boolean>;
3
+ export declare const createAdsRewardHandler: (ads: JoliboxAdsImpl) => AdsRewardsHandler;
@@ -0,0 +1,9 @@
1
+ import { IHttpClient } from '@/common/http';
2
+ export type JolicoinRewardsHandler = () => Promise<boolean>;
3
+ export declare const createJolicoinRewardHandler: (httpClient: IHttpClient, { onUnlockSuccess, onUnlockFailed }: {
4
+ onUnlockSuccess?: (data: {
5
+ quantity: number;
6
+ balance: number;
7
+ }) => void;
8
+ onUnlockFailed?: () => void;
9
+ }) => JolicoinRewardsHandler;
@@ -0,0 +1,2 @@
1
+ import { IJoliCoin, IUnlockOption } from '@/common/rewards/type';
2
+ export declare const canUseJolicoin: (unlockOptions: IUnlockOption[], joliCoin?: IJoliCoin) => boolean;
@@ -0,0 +1,14 @@
1
+ export type RewardType = 'ADS' | 'JOLI_COIN';
2
+ import type { AdsRewardsHandler } from './registers/use-ads';
3
+ export interface RewardHandlerMap {
4
+ ADS: AdsRewardsHandler;
5
+ JOLI_COIN: (params?: unknown) => Promise<boolean>;
6
+ }
7
+ export type RewardHandler<T extends RewardType> = RewardHandlerMap[T];
8
+ export declare function createRewardsHelper(): {
9
+ registerRewardHandler<T extends RewardType>(type: T, handler: RewardHandler<T>): void;
10
+ handleReward<T extends RewardType>(rewardsTypes: T[], ...args: Parameters<RewardHandler<T>>): Promise<any>;
11
+ registerRewardsFetcher<T extends RewardType>(fetcher: (...args: any[]) => Promise<T[]>): Promise<void>;
12
+ getRewardsTypes(...args: unknown[]): Promise<RewardType[]>;
13
+ };
14
+ export type RewardsHelper = ReturnType<typeof createRewardsHelper>;
@@ -0,0 +1,23 @@
1
+ export interface IJoliCoin {
2
+ balance: number;
3
+ enableAutoDeduct: boolean;
4
+ }
5
+ export type IUnlockOptionType = 'JOLI_COIN' | 'ADS';
6
+ interface IJoliCoinChoice {
7
+ joliCoinQuantity: number;
8
+ }
9
+ export interface IUnlockOption {
10
+ type: IUnlockOptionType;
11
+ joliCoinChoices: IJoliCoinChoice[];
12
+ }
13
+ export interface IJolicoinRewardOption {
14
+ code: 'SUCCESS' | 'ERROR' | 'PARAMETER_ERROR' | 'EPISODE_LOCK_JUMP';
15
+ message: string;
16
+ data: {
17
+ unlockOptions?: IUnlockOption[];
18
+ };
19
+ extra: {
20
+ joliCoin: IJoliCoin;
21
+ };
22
+ }
23
+ export {};
@@ -1,8 +1,15 @@
1
1
  declare const JOLIBOX_CUSTOM_ADS_EVENT_TYPE = "JOLIBOX_ADS_EVENT";
2
+ declare const JOLIBOX_CUSTOM_REWARDS_EVENT_TYPE = "JOLIBOX_CUSTOM_REWARDS_EVENT";
2
3
  interface JoliboxCustomEvent {
3
4
  [JOLIBOX_CUSTOM_ADS_EVENT_TYPE]: {
4
5
  isAdShowing: boolean;
5
6
  };
7
+ [JOLIBOX_CUSTOM_REWARDS_EVENT_TYPE]: {
8
+ ['JOLI_COIN']?: {
9
+ quantity: number;
10
+ balance: number;
11
+ };
12
+ };
6
13
  }
7
14
  export declare const notifyCustomEvent: <T extends keyof JoliboxCustomEvent>(eventName: T, data: JoliboxCustomEvent[T]) => void;
8
15
  export {};