@jolibox/implement 1.2.4 → 1.2.5-beta.3

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 (61) hide show
  1. package/.rush/temp/package-deps_build.json +36 -23
  2. package/CHANGELOG.json +11 -0
  3. package/CHANGELOG.md +9 -0
  4. package/dist/common/report/base-tracker.d.ts +2 -1
  5. package/dist/common/rewards/cached-fetch-reward.d.ts +46 -0
  6. package/dist/common/rewards/cached-reward-service.d.ts +24 -0
  7. package/dist/common/rewards/fetch-reward.d.ts +2 -3
  8. package/dist/common/rewards/index.d.ts +3 -0
  9. package/dist/common/rewards/registers/use-subscription.d.ts +7 -0
  10. package/dist/common/rewards/registers/utils/coins/jolicoin/cached-fetch-balance.d.ts +34 -0
  11. package/dist/common/rewards/registers/utils/coins/jolicoin/fetch-balance.d.ts +2 -1
  12. package/dist/common/rewards/registers/utils/coins/joligem/cached-fetch-gem-balance.d.ts +34 -0
  13. package/dist/common/rewards/registers/utils/coins/joligem/fetch-gem-balance.d.ts +2 -1
  14. package/dist/common/rewards/registers/utils/subscription/commands/index.d.ts +1 -0
  15. package/dist/common/rewards/registers/utils/subscription/commands/use-subscription.d.ts +4 -0
  16. package/dist/common/rewards/registers/utils/subscription/sub-handler.d.ts +13 -0
  17. package/dist/common/rewards/reward-emitter.d.ts +7 -0
  18. package/dist/common/rewards/reward-helper.d.ts +2 -1
  19. package/dist/common/utils/index.d.ts +18 -0
  20. package/dist/h5/api/platformAdsHandle/JoliboxAdsHandler.d.ts +1 -0
  21. package/dist/h5/bootstrap/auth/__tests__/auth.test.d.ts +1 -0
  22. package/dist/h5/bootstrap/auth/index.d.ts +2 -0
  23. package/dist/h5/bootstrap/auth/sub.d.ts +2 -0
  24. package/dist/index.js +9 -9
  25. package/dist/index.native.js +49 -49
  26. package/dist/native/payment/payment-service.d.ts +36 -30
  27. package/implement.build.log +2 -2
  28. package/package.json +7 -7
  29. package/src/common/report/base-tracker.ts +2 -2
  30. package/src/common/rewards/cached-fetch-reward.ts +258 -0
  31. package/src/common/rewards/cached-reward-service.ts +255 -0
  32. package/src/common/rewards/fetch-reward.ts +17 -93
  33. package/src/common/rewards/index.ts +4 -0
  34. package/src/common/rewards/registers/use-subscription.ts +34 -0
  35. package/src/common/rewards/registers/utils/coins/jolicoin/cached-fetch-balance.ts +177 -0
  36. package/src/common/rewards/registers/utils/coins/jolicoin/fetch-balance.ts +13 -1
  37. package/src/common/rewards/registers/utils/coins/jolicoin/jolicoin-handler.ts +2 -0
  38. package/src/common/rewards/registers/utils/coins/joligem/cached-fetch-gem-balance.ts +181 -0
  39. package/src/common/rewards/registers/utils/coins/joligem/fetch-gem-balance.ts +13 -1
  40. package/src/common/rewards/registers/utils/coins/joligem/gem-handler.ts +2 -0
  41. package/src/common/rewards/registers/utils/subscription/commands/index.ts +1 -0
  42. package/src/common/rewards/registers/utils/subscription/commands/use-subscription.ts +29 -0
  43. package/src/common/rewards/registers/utils/subscription/sub-handler.ts +88 -0
  44. package/src/common/rewards/reward-emitter.ts +8 -0
  45. package/src/common/rewards/reward-helper.ts +8 -1
  46. package/src/common/utils/index.ts +23 -0
  47. package/src/h5/api/ads.ts +18 -12
  48. package/src/h5/api/platformAdsHandle/JoliboxAdsHandler.ts +25 -1
  49. package/src/h5/api/storage.ts +2 -2
  50. package/src/h5/bootstrap/auth/__tests__/auth.test.ts +308 -0
  51. package/src/h5/bootstrap/auth/index.ts +20 -0
  52. package/src/h5/bootstrap/auth/sub.ts +56 -0
  53. package/src/h5/bootstrap/index.ts +4 -19
  54. package/src/h5/http/index.ts +2 -2
  55. package/src/h5/report/event-tracker.ts +2 -2
  56. package/src/h5/rewards/index.ts +18 -1
  57. package/src/native/api/ads.ts +7 -1
  58. package/src/native/api/payment.ts +4 -4
  59. package/src/native/payment/__tests__/payment-service-simple.test.ts +97 -31
  60. package/src/native/payment/payment-service.ts +224 -210
  61. package/src/native/rewards/ui/payment-modal.ts +14 -7
@@ -2,9 +2,11 @@
2
2
  "files": {
3
3
  "packages/implement/.rush/temp/shrinkwrap-deps.json": "2dd88ea37bc8007dcfea646210b48ae672c04c03",
4
4
  "packages/implement/.eslintrc.js": "7a3d2747dc887655ca9e2d3ff621f7dfd98500b9",
5
+ "packages/implement/CHANGELOG.json": "b8051ddc064cd9e78bdb08b65dc4252c7931535e",
6
+ "packages/implement/CHANGELOG.md": "35bc0ac3c4124ac92f573b8d2f592f2f0e1d8999",
5
7
  "packages/implement/README.md": "5660cd88848b7a5428394cc34d881a35dd402188",
6
8
  "packages/implement/esbuild.config.js": "876db4e384d8543b66a0b61d8f7b277a36dfb4e0",
7
- "packages/implement/package.json": "5701fdfc59101034d97902cfd0dc4c73bee81fa0",
9
+ "packages/implement/package.json": "2a760858bfd72d0ae0db4eb08366f68b7cad200d",
8
10
  "packages/implement/src/common/ads/ads-action-detection.ts": "5a7b9f85d7eab9e744f8a9fc7638063f43baa214",
9
11
  "packages/implement/src/common/ads/anti-cheating.test.ts": "e2ff3dc6760cfd28d0f8c15703d7fb20d43df583",
10
12
  "packages/implement/src/common/ads/anti-cheating.ts": "a3ffb6a78e289e1c0ce45c7f7c0cee000e75e541",
@@ -37,7 +39,7 @@
37
39
  "packages/implement/src/common/http/index.ts": "5087185d80e1e239262f849b3015eb9b810e2945",
38
40
  "packages/implement/src/common/http/uuid.ts": "72e0bcc38976f6d25a55128843c6e3b0dbfd978e",
39
41
  "packages/implement/src/common/http/xua.ts": "2ef571b8467fe5e8ecb470c26cb6da99b24be9a8",
40
- "packages/implement/src/common/report/base-tracker.ts": "3da0af0e67052f488639df7c0a6f40f5c8d3bdd7",
42
+ "packages/implement/src/common/report/base-tracker.ts": "7e39031901ed133e1bedf1073d6e64e161a07c94",
41
43
  "packages/implement/src/common/report/create-trace.ts": "38f54dbbf2e3aa55553395dbe2bb93dbdb9e07df",
42
44
  "packages/implement/src/common/report/errors/index.ts": "346132103c1f6b2a7c1324bea0c78896b5c6fca8",
43
45
  "packages/implement/src/common/report/errors/report/index.ts": "bee6f5f324ebddcc423c3549916a0eee04e880cf",
@@ -47,13 +49,16 @@
47
49
  "packages/implement/src/common/report/track.ts": "4072dee69ace09d8099e1131507b35f0cb6bd92e",
48
50
  "packages/implement/src/common/report/types.ts": "9c25c62b85b9ac5dbde674601924703f7df33773",
49
51
  "packages/implement/src/common/rewards/__tests__/can-use-jolicoin.test.ts": "aac9c78779f1d8de33918cff9961326a5054ef3d",
50
- "packages/implement/src/common/rewards/fetch-reward.ts": "a2dd370ee4715ae2b52a35c13be9944d4819e5de",
51
- "packages/implement/src/common/rewards/index.ts": "58fce95c7d91e28646142c03fc9f9d7a9f90b9e9",
52
+ "packages/implement/src/common/rewards/cached-fetch-reward.ts": "1c4f28e4e12311ab4d3162c86fd60b9dfcf18d7e",
53
+ "packages/implement/src/common/rewards/cached-reward-service.ts": "3310dcab46db046abeec6d6e2a1478160e0d3934",
54
+ "packages/implement/src/common/rewards/fetch-reward.ts": "23f40af40ca4c3a594f7bc3ef6ea96a593648e35",
55
+ "packages/implement/src/common/rewards/index.ts": "92a31d63098d8dc874d3814a76819e96d7e9f269",
52
56
  "packages/implement/src/common/rewards/registers/use-ads.ts": "77c887f0e2065a8f3eec31cb5b62e1752d07298b",
53
57
  "packages/implement/src/common/rewards/registers/use-gem-only.ts": "944f012b2d7e6a786b0c1b8eb139db6b09fc309f",
54
58
  "packages/implement/src/common/rewards/registers/use-gem.ts": "4ec6e2e3888763b1e1ab63b6694eed95460f0684",
55
59
  "packages/implement/src/common/rewards/registers/use-jolicoin-only.ts": "57f8c7156ef4cb55a707746c287eed1e883be694",
56
60
  "packages/implement/src/common/rewards/registers/use-jolicoin.ts": "46c3e782cfa780bf262f1744bb7eff60d77cf2e3",
61
+ "packages/implement/src/common/rewards/registers/use-subscription.ts": "f6647b63b07f3d4d8324cb3138ec5e0d7b5262d4",
57
62
  "packages/implement/src/common/rewards/registers/utils/coins/commands/currency-handlers.ts": "77219e8ce3b7cfe8c26880f6c619d41e2cccf8cb",
58
63
  "packages/implement/src/common/rewards/registers/utils/coins/commands/index.ts": "1d5700642bf3bddb8eb598b6018cfd55bd7b3308",
59
64
  "packages/implement/src/common/rewards/registers/utils/coins/commands/use-jolicoin.ts": "1d4eca1b189d67db138b0ac93144c9d8b33f22bb",
@@ -61,19 +66,24 @@
61
66
  "packages/implement/src/common/rewards/registers/utils/coins/commands/use-unlogin.ts": "359ec6f2bfbf865ad1b03f3f7515e14fa438da8f",
62
67
  "packages/implement/src/common/rewards/registers/utils/coins/currency-config.ts": "e8c1c5c9280fcc24df95d1aad60d0ae795042198",
63
68
  "packages/implement/src/common/rewards/registers/utils/coins/index.ts": "454c807a24a64a0a7c2c8ce0f11539d3e08c9ebe",
64
- "packages/implement/src/common/rewards/registers/utils/coins/jolicoin/fetch-balance.ts": "ee5887ffe5289ba59ceb12133dc4f6de26b750a4",
65
- "packages/implement/src/common/rewards/registers/utils/coins/jolicoin/jolicoin-handler.ts": "7a6ea4dce6977784715c449607fde78fcb2dab8f",
66
- "packages/implement/src/common/rewards/registers/utils/coins/joligem/fetch-gem-balance.ts": "16e24d75cd2668ed331d0679c7ff82b0946222fb",
67
- "packages/implement/src/common/rewards/registers/utils/coins/joligem/gem-handler.ts": "cd23849651d85a7644a2a2eae038e88fc6b9599c",
69
+ "packages/implement/src/common/rewards/registers/utils/coins/jolicoin/cached-fetch-balance.ts": "4d4e504fb00ddd0de11a74d8e62cfb3190ec23e3",
70
+ "packages/implement/src/common/rewards/registers/utils/coins/jolicoin/fetch-balance.ts": "cb54beec6a430d42ff81410198adf892f7e11182",
71
+ "packages/implement/src/common/rewards/registers/utils/coins/jolicoin/jolicoin-handler.ts": "b52f2e2caef6d86512a41a5004a88dff1ce45496",
72
+ "packages/implement/src/common/rewards/registers/utils/coins/joligem/cached-fetch-gem-balance.ts": "e462c138142b2f51971c9596f864fc0b5f8a7dda",
73
+ "packages/implement/src/common/rewards/registers/utils/coins/joligem/fetch-gem-balance.ts": "78efdd85ea2b0141f2ff7614ef563a62e56efbfa",
74
+ "packages/implement/src/common/rewards/registers/utils/coins/joligem/gem-handler.ts": "fb056fe4155506c25a1ce335086b2e6d75d0a6fa",
68
75
  "packages/implement/src/common/rewards/registers/utils/coins/rewards-command.ts": "b7a5309a43869f5024022158e3c95b505ecb55df",
69
76
  "packages/implement/src/common/rewards/registers/utils/common.ts": "45f813bf8f1655d0533bc04e5d947f7e8b2262ec",
70
77
  "packages/implement/src/common/rewards/registers/utils/event-listener.ts": "cd6a393d4771833cc37e38d9fb8af1900c8b0487",
71
78
  "packages/implement/src/common/rewards/registers/utils/index.ts": "f496c92e3bf81418e463f0a9a95d44798c3424b9",
72
- "packages/implement/src/common/rewards/reward-emitter.ts": "1d5d9548ffe838d721e1eaa806168a770ac18590",
73
- "packages/implement/src/common/rewards/reward-helper.ts": "b4813747f0da4fbd05fb23758c504ae1bc6c0e87",
79
+ "packages/implement/src/common/rewards/registers/utils/subscription/commands/index.ts": "94b4f9510641773cb4f73a4544a36af3c1b4bd10",
80
+ "packages/implement/src/common/rewards/registers/utils/subscription/commands/use-subscription.ts": "69b0368bfffd19bffeff3de3d49ac096251df625",
81
+ "packages/implement/src/common/rewards/registers/utils/subscription/sub-handler.ts": "198624167153353416f295dcec92af99af161607",
82
+ "packages/implement/src/common/rewards/reward-emitter.ts": "b676f07ad0dfb841c6f795c7e3abe16e238d9f28",
83
+ "packages/implement/src/common/rewards/reward-helper.ts": "3f1a0064b1932b4e94140ed42b41d794a3ca0019",
74
84
  "packages/implement/src/common/rewards/type.ts": "80b082ce5193447ccf6c85151cb849f488f68cf9",
75
- "packages/implement/src/common/utils/index.ts": "54bfc80c8c20bc71504f997e445d3e8019bb762d",
76
- "packages/implement/src/h5/api/ads.ts": "0744787a5d6a8c04e7b9fda0d273d430afc11cc6",
85
+ "packages/implement/src/common/utils/index.ts": "36ad7410adb3fa99c2af3963f68ff30637025f6b",
86
+ "packages/implement/src/h5/api/ads.ts": "0c538537c0971de8d4bfb842613036607f88bbe6",
77
87
  "packages/implement/src/h5/api/base.ts": "ead2c3cdcbe174b0e725c31a3885c7985bd8f667",
78
88
  "packages/implement/src/h5/api/get-system-info.ts": "158d66156c720446457318b7eaa9112452114dbb",
79
89
  "packages/implement/src/h5/api/index.ts": "59b4a8a83134e52de589f77bf3a6591cbf3a0e11",
@@ -82,24 +92,27 @@
82
92
  "packages/implement/src/h5/api/platformAdsHandle/FunmaxAdsHandler.ts": "85d874af2aff253259756b05503a020642af2ca9",
83
93
  "packages/implement/src/h5/api/platformAdsHandle/GamedistributionAdsHandler.ts": "4d1b1460eb2cbd1ff06bf3ce4d69638320c760e1",
84
94
  "packages/implement/src/h5/api/platformAdsHandle/HuaweiQuickAdsHandler.ts": "fc2b9b91a4f18ccfb70539fba5b993c1e7d941cd",
85
- "packages/implement/src/h5/api/platformAdsHandle/JoliboxAdsHandler.ts": "c386afe11f21d1b67b42793514632b29afc6d2ca",
95
+ "packages/implement/src/h5/api/platformAdsHandle/JoliboxAdsHandler.ts": "81f04604c9e432f04dc096256e24b05cd7d6ce11",
86
96
  "packages/implement/src/h5/api/runtime.ts": "25e72f2af156fe2abaf0f25e34681511995ab22a",
87
- "packages/implement/src/h5/api/storage.ts": "a54e31767afe9188d4d97583279fbc5721b8d79a",
97
+ "packages/implement/src/h5/api/storage.ts": "d16fe40e39f1e04f5f527c0878edba6d618b5a05",
88
98
  "packages/implement/src/h5/api/task.ts": "c501814d9dc01a564b716fdcefa4a86427717a08",
89
- "packages/implement/src/h5/bootstrap/index.ts": "437392387e685d50134f4530db01ced21a92a396",
90
- "packages/implement/src/h5/http/index.ts": "be0d54678b4b5d546596bc21827265ea24766d31",
99
+ "packages/implement/src/h5/bootstrap/auth/__tests__/auth.test.ts": "5784f93b83026b9c973891e386f342c027753fa7",
100
+ "packages/implement/src/h5/bootstrap/auth/index.ts": "1f99932c09442673326b97c457427d8595104aca",
101
+ "packages/implement/src/h5/bootstrap/auth/sub.ts": "5406e11dcaa29c06e9522b97894ddff2b9e4fdf5",
102
+ "packages/implement/src/h5/bootstrap/index.ts": "6b0d615068762a5ab17e4c28a93ed19726989339",
103
+ "packages/implement/src/h5/http/index.ts": "1e3118ffc31a5e93d673c703d637b082f2420c15",
91
104
  "packages/implement/src/h5/http/utils/__tests__/xua.test.ts": "4345cfd10cae6f94cef673f04a5155b70123c048",
92
105
  "packages/implement/src/h5/http/utils/index.ts": "05f4d94be09b9bfdcbb1365b31a5559e44a74991",
93
106
  "packages/implement/src/h5/http/utils/session.ts": "4762a6a56762484f91ca5f2a456ab2cff3107659",
94
107
  "packages/implement/src/h5/report/errors/index.ts": "22ef4184d6a6d272a5fefc1453a4a6d78ae8f2ff",
95
- "packages/implement/src/h5/report/event-tracker.ts": "012df642748f830359f86d7592fb7eee25abc4f9",
108
+ "packages/implement/src/h5/report/event-tracker.ts": "146ff1f9e154e40f3b26679955a9b8dfe01d5462",
96
109
  "packages/implement/src/h5/report/index.ts": "7154000726a72f477183d069eea5de87d12ceb7d",
97
110
  "packages/implement/src/h5/report/task-tracker.ts": "07ffd3b6316221652528c7172869068cf4df0a15",
98
- "packages/implement/src/h5/rewards/index.ts": "b4e917c76972b6b79e24bd68180317185d971caa",
111
+ "packages/implement/src/h5/rewards/index.ts": "fb46cd07d2aa58fdeef38190b0f3df84d9aa62c3",
99
112
  "packages/implement/src/index.native.ts": "96cc46c8919ba2333600e9c3ee100f47c511a79a",
100
113
  "packages/implement/src/index.ts": "d0ca7b5312b0a258ae8887e725440c70190442f7",
101
114
  "packages/implement/src/native/api/__tests__/convertVersionCodeToVString.test.ts": "5f948265725f8ca48851de4bd41b24a10d754982",
102
- "packages/implement/src/native/api/ads.ts": "ab9284761e94249dd7ff0f530b5892653ae37a32",
115
+ "packages/implement/src/native/api/ads.ts": "1aff329e7233e35241d8ee6a023d3ef0a8e369af",
103
116
  "packages/implement/src/native/api/base.ts": "0ebf7c92ef5154ca1d321172e4f94a65e2d91b41",
104
117
  "packages/implement/src/native/api/call-host-method.ts": "4e922aade867f88970a78bc8ad60664ef4ef504e",
105
118
  "packages/implement/src/native/api/get-system-info.ts": "33aa88b7f4d6c4204bc7e81ee9cce05296587691",
@@ -109,7 +122,7 @@
109
122
  "packages/implement/src/native/api/lifecycle.ts": "af0f376f1283ed0e80062d1568225a334c7d22f9",
110
123
  "packages/implement/src/native/api/login.ts": "4e6a40ad7ed1e4dc5d328cafb449aff7a4f4469b",
111
124
  "packages/implement/src/native/api/navigate.ts": "278f1bc5d48b72a72c38762e47bac528e5138fec",
112
- "packages/implement/src/native/api/payment.ts": "8eeee8a894fff43c33b705215628de87d229d1f6",
125
+ "packages/implement/src/native/api/payment.ts": "fc9b24e160ee73dc85465f1f88ce2ae5223f6cad",
113
126
  "packages/implement/src/native/api/request.ts": "c02ca1163d13a17bc5e74e27a21f7fd204ec34d1",
114
127
  "packages/implement/src/native/api/runtime.ts": "3c66cc58685e3ed3b25554aca8979c1650ac9241",
115
128
  "packages/implement/src/native/api/storage.ts": "d395e86a04060a1e734f12c1b9c2e7b56eba392b",
@@ -122,10 +135,10 @@
122
135
  "packages/implement/src/native/network/report.ts": "705e9614faeb0611c9c57ced998885bdc3a02d11",
123
136
  "packages/implement/src/native/network/types.ts": "4e8eb72bf0b0b26a5298ce42d96855d27769be51",
124
137
  "packages/implement/src/native/network/utils.ts": "53877a6871dc3a6b173daef930872c44589659b9",
125
- "packages/implement/src/native/payment/__tests__/payment-service-simple.test.ts": "5aa6654a5c535b25eb9cafc505070170a44d3d50",
138
+ "packages/implement/src/native/payment/__tests__/payment-service-simple.test.ts": "65779c1a2032979aca0c90db012af52182f47d67",
126
139
  "packages/implement/src/native/payment/index.ts": "6ead1fc6e7261ba851f926afb315f6988639e74a",
127
140
  "packages/implement/src/native/payment/payment-helper.ts": "8ba410780450897fc9ee8f93cb38c67ae3dd7291",
128
- "packages/implement/src/native/payment/payment-service.ts": "4b1866834649b37ef9cc68f29bb577b63b655d5c",
141
+ "packages/implement/src/native/payment/payment-service.ts": "2e2e4dd1a167098e663d7fd87b2ed9fc05c79630",
129
142
  "packages/implement/src/native/payment/registers/base.ts": "63973fe618cfaa5bc0baa88c7f1d271638c65c1a",
130
143
  "packages/implement/src/native/payment/registers/const.ts": "cba0087bccbd01349acc46f69adaeed80f4d16a0",
131
144
  "packages/implement/src/native/payment/registers/joli-coin.ts": "caa3bd121e2159091dbe7cc3f58c2fba67d337a4",
@@ -136,7 +149,7 @@
136
149
  "packages/implement/src/native/report/task-tracker.ts": "f119c115ec3310b5eea53414587b263b18594bf6",
137
150
  "packages/implement/src/native/rewards/check-frequency.ts": "9216ec863acd9ae1a2ae7a8c144721fb262fda37",
138
151
  "packages/implement/src/native/rewards/index.ts": "543b4631fb8952aaf19e10863463a0e3a4f0b34e",
139
- "packages/implement/src/native/rewards/ui/payment-modal.ts": "88ec78904d792e91a296be1931f914ae45786385",
152
+ "packages/implement/src/native/rewards/ui/payment-modal.ts": "25322b421087db3b5b77450fed64543cbfb79240",
140
153
  "packages/implement/src/native/rewards/ui/unlogin-modal.ts": "da6f18bd2cc575592e216fed584d09f6765f1e96",
141
154
  "packages/implement/src/native/rewards/ui/use-modal.ts": "7ec80b389daac9660c20c46979e875fc00ebd0ac",
142
155
  "packages/implement/src/native/rewards/ui/utils.ts": "4ac58033bd35757b9519c1490abb70c4e6af66af",
package/CHANGELOG.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@jolibox/implement",
3
+ "entries": [
4
+ {
5
+ "version": "1.1.43",
6
+ "tag": "@jolibox/implement_v1.1.43",
7
+ "date": "Mon, 21 Jul 2025 10:06:33 GMT",
8
+ "comments": {}
9
+ }
10
+ ]
11
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ # Change Log - @jolibox/implement
2
+
3
+ This log was last generated on Mon, 21 Jul 2025 10:06:33 GMT and should not be manually modified.
4
+
5
+ ## 1.1.43
6
+ Mon, 21 Jul 2025 10:06:33 GMT
7
+
8
+ _Initial release_
9
+
@@ -5,12 +5,13 @@ import { IDevice, IPage, IEvent, EProject } from '@jolibox/common';
5
5
  * @abstract
6
6
  */
7
7
  export declare abstract class EventTracker {
8
+ readonly apiHost: string;
8
9
  deviceInfo: IDevice | null;
9
10
  abstract doReport(event: unknown[]): void;
10
11
  abstract doReport<T extends Record<string, unknown>>(event: unknown[], extra: T): void;
11
12
  abstract doReport<T extends Record<string, unknown>>(event: unknown[], extra?: T): void;
12
13
  private samplesConfig;
13
- constructor();
14
+ constructor(apiHost: string);
14
15
  private fetchSamplesConfig;
15
16
  private checkIsSampled;
16
17
  getDevice(): IDevice;
@@ -0,0 +1,46 @@
1
+ import { IHttpClient } from '../http';
2
+ import { RewardsHelper } from './reward-helper';
3
+ import { CachedRewardService } from './cached-reward-service';
4
+ /**
5
+ * 使用缓存的奖励获取器
6
+ * 优化版本:unlockOptions 使用缓存,余额信息实时获取
7
+ */
8
+ export declare const createCachedRewardFetcher: (rewardsHelper: RewardsHelper) => void;
9
+ /**
10
+ * 使用缓存的频率配置获取器
11
+ * 优化版本:全局配置使用纯缓存
12
+ */
13
+ export declare const createCachedRewardFrequencyConfigFetcher: (rewardsHelper: RewardsHelper) => void;
14
+ /**
15
+ * 获取缓存服务实例(用于手动管理缓存)
16
+ */
17
+ export declare const getRewardCacheService: (httpClient: IHttpClient) => CachedRewardService;
18
+ /**
19
+ * 强制刷新奖励数据缓存
20
+ */
21
+ export declare const refreshRewardCache: (httpClient: IHttpClient) => Promise<void>;
22
+ /**
23
+ * 强制刷新全局配置缓存
24
+ */
25
+ export declare const refreshGlobalConfigCache: (httpClient: IHttpClient) => Promise<void>;
26
+ /**
27
+ * 预热所有缓存
28
+ */
29
+ export declare const warmupRewardCache: (httpClient: IHttpClient) => Promise<void>;
30
+ /**
31
+ * 清除所有奖励相关缓存
32
+ */
33
+ export declare const clearRewardCache: (httpClient: IHttpClient) => void;
34
+ /**
35
+ * 获取缓存统计信息
36
+ */
37
+ export declare const getRewardCacheStats: (httpClient: IHttpClient) => {
38
+ unlockOptions: import("@jolibox/common").CacheStats & {
39
+ pendingRequestCount: number;
40
+ };
41
+ globalConfig: import("@jolibox/common").CacheStats & {
42
+ pendingRequestCount: number;
43
+ };
44
+ };
45
+ export declare const createRewardFetcher: (rewardsHelper: RewardsHelper) => void;
46
+ export declare const createRewardFrequencyConfigFetcher: (rewardsHelper: RewardsHelper) => void;
@@ -0,0 +1,24 @@
1
+ import { IHttpClient } from '../http';
2
+ import { StandardResponse, GlobalConfig } from '@jolibox/types';
3
+ import { IJolicoinRewardOption } from './type';
4
+ import { IUseModalFrequencyConfig } from './reward-emitter';
5
+ export declare class CachedRewardService {
6
+ private unlockOptionsService;
7
+ private globalConfigService;
8
+ constructor(httpClient: IHttpClient);
9
+ getUnlockOptions(body?: Record<string, unknown>): Promise<IJolicoinRewardOption>;
10
+ getGlobalConfig(): Promise<StandardResponse<GlobalConfig & IUseModalFrequencyConfig>>;
11
+ refreshUnlockOptions(body?: Record<string, unknown>): Promise<IJolicoinRewardOption>;
12
+ refreshGlobalConfig(): Promise<StandardResponse<GlobalConfig & IUseModalFrequencyConfig>>;
13
+ warmupCache(): Promise<void>;
14
+ clearAllCache(): void;
15
+ getCacheStats(): {
16
+ unlockOptions: import("@jolibox/common").CacheStats & {
17
+ pendingRequestCount: number;
18
+ };
19
+ globalConfig: import("@jolibox/common").CacheStats & {
20
+ pendingRequestCount: number;
21
+ };
22
+ };
23
+ clearExpiredCache(): void;
24
+ }
@@ -1,3 +1,2 @@
1
- import { RewardsHelper } from './reward-helper';
2
- export declare const createRewardFetcher: (rewardsHelper: RewardsHelper) => void;
3
- export declare const createRewardFrequencyConfigFetcher: (rewardsHelper: RewardsHelper) => void;
1
+ export { createCachedRewardFetcher as createRewardFetcher, createCachedRewardFrequencyConfigFetcher as createRewardFrequencyConfigFetcher, getRewardCacheService, refreshRewardCache, refreshGlobalConfigCache, warmupRewardCache, clearRewardCache, getRewardCacheStats } from './cached-fetch-reward';
2
+ export { createRewardFetcher as createRewardFetcherNonCached, createRewardFrequencyConfigFetcher as createRewardFrequencyConfigFetcherNonCached } from './cached-fetch-reward';
@@ -11,3 +11,6 @@ export * from './registers/use-jolicoin';
11
11
  export * from './registers/use-jolicoin-only';
12
12
  export * from './registers/use-gem';
13
13
  export * from './registers/use-gem-only';
14
+ export * from './registers/use-subscription';
15
+ export { warmupBalanceCache } from './registers/utils/coins/jolicoin/cached-fetch-balance';
16
+ export { warmupGemBalanceCache } from './registers/utils/coins/joligem/cached-fetch-gem-balance';
@@ -0,0 +1,7 @@
1
+ import { IHttpClient } from '@/common/http';
2
+ import { IAdBreakParams } from '@/common/ads';
3
+ export type SubscriptionRewardsHandler = (params: IAdBreakParams) => Promise<boolean>;
4
+ export declare const createSubscriptionRewardHandler: (httpClient: IHttpClient, { onSubSuccess, onSubFailed }: {
5
+ onSubSuccess?: () => void;
6
+ onSubFailed?: () => void;
7
+ }) => SubscriptionRewardsHandler;
@@ -0,0 +1,34 @@
1
+ import { IHttpClient } from '@/common/http';
2
+ interface BalanceResponse {
3
+ balance: number;
4
+ }
5
+ export declare class CachedBalanceService {
6
+ private balanceService;
7
+ constructor(httpClient: IHttpClient);
8
+ getBalance(type?: string): Promise<BalanceResponse | undefined>;
9
+ refreshBalance(type?: string): Promise<BalanceResponse | undefined>;
10
+ warmupBalance(type?: string): Promise<void>;
11
+ clearBalanceCache(): void;
12
+ getBalanceCacheStats(): import("@jolibox/common").CacheStats & {
13
+ pendingRequestCount: number;
14
+ };
15
+ clearExpiredCache(): void;
16
+ }
17
+ /**
18
+ * 缓存版本的 fetchBalance 函数
19
+ */
20
+ export declare const fetchBalanceCached: (httpClient: IHttpClient, type?: string) => Promise<BalanceResponse | undefined>;
21
+ /**
22
+ * 强制刷新余额缓存
23
+ */
24
+ export declare const refreshBalanceCache: (httpClient: IHttpClient, type?: string) => Promise<BalanceResponse | undefined>;
25
+ /**
26
+ * 预热余额缓存
27
+ */
28
+ export declare const warmupBalanceCache: (httpClient: IHttpClient, type?: string) => Promise<void>;
29
+ export declare const clearBalanceCache: (httpClient: IHttpClient) => void;
30
+ export declare const getBalanceCacheStats: (httpClient: IHttpClient) => import("@jolibox/common").CacheStats & {
31
+ pendingRequestCount: number;
32
+ };
33
+ export declare const getBalanceCacheService: (httpClient: IHttpClient) => CachedBalanceService;
34
+ export {};
@@ -1,4 +1,5 @@
1
1
  import { IHttpClient } from '@/common/http';
2
- export declare const fetchBalance: (httpClient: IHttpClient) => Promise<{
2
+ export { fetchBalanceCached as fetchBalance, refreshBalanceCache, warmupBalanceCache, clearBalanceCache, getBalanceCacheStats, getBalanceCacheService } from './cached-fetch-balance';
3
+ export declare const fetchBalanceNonCached: (httpClient: IHttpClient) => Promise<{
3
4
  balance: number;
4
5
  } | undefined>;
@@ -0,0 +1,34 @@
1
+ import { IHttpClient } from '@/common/http';
2
+ interface GemBalanceResponse {
3
+ balance: number;
4
+ }
5
+ export declare class CachedGemBalanceService {
6
+ private gemBalanceService;
7
+ constructor(httpClient: IHttpClient);
8
+ getGemBalance(type?: string): Promise<GemBalanceResponse | undefined>;
9
+ refreshGemBalance(type?: string): Promise<GemBalanceResponse | undefined>;
10
+ warmupGemBalance(type?: string): Promise<void>;
11
+ clearGemBalanceCache(): void;
12
+ getGemBalanceCacheStats(): import("@jolibox/common").CacheStats & {
13
+ pendingRequestCount: number;
14
+ };
15
+ clearExpiredCache(): void;
16
+ }
17
+ /**
18
+ * 缓存版本的 fetchGemBalance 函数
19
+ */
20
+ export declare const fetchGemBalanceCached: (httpClient: IHttpClient, type?: string) => Promise<GemBalanceResponse | undefined>;
21
+ /**
22
+ * 强制刷新宝石余额缓存
23
+ */
24
+ export declare const refreshGemBalanceCache: (httpClient: IHttpClient, type?: string) => Promise<GemBalanceResponse | undefined>;
25
+ /**
26
+ * 预热宝石余额缓存
27
+ */
28
+ export declare const warmupGemBalanceCache: (httpClient: IHttpClient, type?: string) => Promise<void>;
29
+ export declare const clearGemBalanceCache: (httpClient: IHttpClient) => void;
30
+ export declare const getGemBalanceCacheStats: (httpClient: IHttpClient) => import("@jolibox/common").CacheStats & {
31
+ pendingRequestCount: number;
32
+ };
33
+ export declare const getGemBalanceCacheService: (httpClient: IHttpClient) => CachedGemBalanceService;
34
+ export {};
@@ -1,4 +1,5 @@
1
1
  import { IHttpClient } from '@/common/http';
2
- export declare const fetchGemBalance: (httpClient: IHttpClient) => Promise<{
2
+ export { fetchGemBalanceCached as fetchGemBalance, refreshGemBalanceCache, warmupGemBalanceCache, clearGemBalanceCache, getGemBalanceCacheStats, getGemBalanceCacheService } from './cached-fetch-gem-balance';
3
+ export declare const fetchGemBalanceNonCached: (httpClient: IHttpClient) => Promise<{
3
4
  balance: number;
4
5
  } | undefined>;
@@ -0,0 +1 @@
1
+ export * from './use-subscription';
@@ -0,0 +1,4 @@
1
+ export declare const registerUseSubscriptionCommand: (params: {
2
+ showSubscriptionModal: () => Promise<"SUCCESS" | "CANCEL" | "FAILED">;
3
+ }) => void;
4
+ export declare const createShowSubscriptionModal: (type: "SUBSCRIPTION") => () => Promise<"SUCCESS" | "FAILED" | "CANCEL">;
@@ -0,0 +1,13 @@
1
+ import { IHttpClient } from '@/common/http';
2
+ import { IAdBreakParams } from '@/common/ads';
3
+ import { EventPromiseHandler } from '../event-listener';
4
+ import { UnlockOptionsEventName, IUnlockOptionsEvent } from '@/common/rewards/reward-emitter';
5
+ import { createShowSubscriptionModal } from './commands/use-subscription';
6
+ export declare const createCommonSubscriptionHandler: (type: "SUBSCRIPTION", httpClient: IHttpClient, { handlers: { handleSubSuccess, handleSubFailed, unlockOptionsHandler, showSubscriptionModal } }: {
7
+ handlers: {
8
+ handleSubSuccess?: () => void;
9
+ handleSubFailed?: (params: IAdBreakParams) => void;
10
+ unlockOptionsHandler: EventPromiseHandler<IUnlockOptionsEvent, typeof UnlockOptionsEventName>;
11
+ showSubscriptionModal: ReturnType<typeof createShowSubscriptionModal>;
12
+ };
13
+ }) => (params: IAdBreakParams) => Promise<boolean>;
@@ -13,6 +13,8 @@ export declare const UseModalResultEventName: "ON_USE_MODAL_RESULT";
13
13
  export declare const UseModalFrequencyEventName: "ON_USE_MODAL_FREQUENCY";
14
14
  export declare const UseUnloginModalResultEventName: "ON_USE_UNLOGIN_MODAL_EVENT";
15
15
  export declare const InvokeUnloginModalEventName: "INVOKE_UNLOGIN_MODAL_EVENT";
16
+ export declare const InvokeSubscriptionEventName: "INVOKE_SUBSCRIPTION_EVENT";
17
+ export declare const UseSubscriptionResultEventName: "ON_USE_SUBSCRIPTION_RESULT";
16
18
  type IPaymentResult = 'SUCCESS' | 'FAILED' | 'CANCEL';
17
19
  export interface IPaymentEvent {
18
20
  userJoliCoin?: IJoliCoin;
@@ -77,6 +79,9 @@ export interface IUseModalFrequencyConfig {
77
79
  minInterval?: number;
78
80
  };
79
81
  }
82
+ export interface IUseSubscriptionResultEvent {
83
+ result: 'SUCCESS' | 'CANCEL' | 'FAILED';
84
+ }
80
85
  export interface RewardsEventMap extends Record<string, unknown[]> {
81
86
  [UnlockOptionsEventName]: [IUnlockOptionsEvent];
82
87
  [InvokePaymentEventName]: [
@@ -92,6 +97,8 @@ export interface RewardsEventMap extends Record<string, unknown[]> {
92
97
  IUseUnloginModalEvent
93
98
  ];
94
99
  [UseUnloginModalResultEventName]: [IUseUnloginModalResultEvent];
100
+ [InvokeSubscriptionEventName]: ['SUBSCRIPTION'];
101
+ [UseSubscriptionResultEventName]: [IUseSubscriptionResultEvent];
95
102
  }
96
103
  export declare const originalRewardsEmitter: EventEmitter<RewardsEventMap, keyof RewardsEventMap>;
97
104
  export type RewardsEventType = keyof RewardsEventMap;
@@ -1,4 +1,4 @@
1
- export type RewardType = 'ADS' | 'JOLI_COIN' | 'JOLI_COIN_ONLY' | 'JOLI_GEM' | 'JOLI_GEM_ONLY';
1
+ export type RewardType = 'ADS' | 'JOLI_COIN' | 'JOLI_COIN_ONLY' | 'JOLI_GEM' | 'JOLI_GEM_ONLY' | 'SUBSCRIPTION';
2
2
  import type { AdsRewardsHandler } from './registers/use-ads';
3
3
  import { IUseModalFrequencyConfig } from './reward-emitter';
4
4
  export interface RewardHandlerMap {
@@ -7,6 +7,7 @@ export interface RewardHandlerMap {
7
7
  JOLI_COIN_ONLY: (params?: unknown) => Promise<boolean>;
8
8
  JOLI_GEM: (params?: unknown) => Promise<boolean>;
9
9
  JOLI_GEM_ONLY: (params?: unknown) => Promise<boolean>;
10
+ SUBSCRIPTION: (params?: unknown) => Promise<boolean>;
10
11
  }
11
12
  export type RewardHandler<T extends RewardType> = RewardHandlerMap[T];
12
13
  export declare function createRewardsHelper(): {
@@ -6,6 +6,8 @@ declare const JOLIBOX_CUSTOM_REWARDS_EVENT_TYPE = "JOLIBOX_CUSTOM_REWARDS_EVENT"
6
6
  declare const JOLIBOX_TOPUP_EVENT = "JOLIBOX_TOPUP_EVENT";
7
7
  declare const JOLIBOX_JOLI_COIN_USE_EVENT = "JOLIBOX_JOLI_COIN_USE_EVENT";
8
8
  declare const JOLIBOX_JOLI_UNLOGIN_MODAL_EVENT = "JOLIBOX_JOLI_UNLOGIN_MODAL_EVENT";
9
+ declare const JOLIBOX_GET_USER_SUB_STATUS = "JOLIBOX_GET_USER_SUB_STATUS";
10
+ declare const JOLIBOX_SUB_EVENT = "JOLIBOX_SUB_EVENT";
9
11
  interface JoliboxCustomEvent {
10
12
  [JOLIBOX_CUSTOM_ADS_EVENT_TYPE]: {
11
13
  isAdShowing: boolean;
@@ -38,6 +40,12 @@ interface JoliboxCustomEvent {
38
40
  sequenceId: string;
39
41
  type: 'ADS-JOLI_COIN' | 'JOLI_COIN';
40
42
  };
43
+ [JOLIBOX_GET_USER_SUB_STATUS]: {
44
+ sequenceId: string;
45
+ };
46
+ [JOLIBOX_SUB_EVENT]: {
47
+ sequenceId: string;
48
+ };
41
49
  }
42
50
  declare const notifyCustomEvent: <T extends keyof JoliboxCustomEvent>(eventName: T, data: JoliboxCustomEvent[T]) => void;
43
51
  /**
@@ -48,6 +56,8 @@ declare const notifyCustomEvent: <T extends keyof JoliboxCustomEvent>(eventName:
48
56
  declare const ON_JOLIBOX_TOPUP_JOLI_COIN_RESULT = "ON_JOLIBOX_TOPUP_JOLI_COIN_RESULT";
49
57
  declare const ON_JOLIBOX_JOLI_COIN_USE_RESULT = "ON_JOLIBOX_JOLI_COIN_USE_RESULT";
50
58
  declare const ON_JOLIBOX_JOLI_UNLOGIN_MODAL_RESULT_EVENT = "ON_JOLIBOX_JOLI_UNLOGIN_MODAL_RESULT_EVENT";
59
+ declare const ON_GET_USER_SUB_STATUS = "ON_GET_USER_SUB_STATUS";
60
+ declare const ON_JOLIBOX_SUB_RESULT_EVENT = "ON_JOLIBOX_SUB_RESULT_EVENT";
51
61
  interface ReceivedJoliboxCustomEvent {
52
62
  [ON_JOLIBOX_TOPUP_JOLI_COIN_RESULT]: {
53
63
  sequenceId: string;
@@ -75,6 +85,14 @@ interface ReceivedJoliboxCustomEvent {
75
85
  };
76
86
  isFirstLogin?: boolean;
77
87
  };
88
+ [ON_GET_USER_SUB_STATUS]: {
89
+ sequenceId: string;
90
+ isSubUser: boolean;
91
+ };
92
+ [ON_JOLIBOX_SUB_RESULT_EVENT]: {
93
+ sequenceId: string;
94
+ result: 'SUCCESS' | 'CANCEL' | 'FAILED';
95
+ };
78
96
  }
79
97
  type ReceivedJoliboxCustomEventResult = keyof ReceivedJoliboxCustomEvent;
80
98
  declare const onCustomEvent: <T extends ReceivedJoliboxCustomEventResult>(eventName: T, callback: (data: ReceivedJoliboxCustomEvent[T]) => void) => () => void;
@@ -10,4 +10,5 @@ export default class JoliboxAdsHandler implements IAdsHandler {
10
10
  adConfig(params: IAdConfigParams): void;
11
11
  adBreak(params: IAdBreakParams): Promise<void>;
12
12
  adUnit(params: IAdUnitParams): void;
13
+ private wrapAdBreadDoneViewed;
13
14
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare function checkSession(): Promise<boolean>;
2
+ export { getUserSubStatus } from './sub';
@@ -0,0 +1,2 @@
1
+ export declare const resetSubState: () => void;
2
+ export declare function getUserSubStatus(): Promise<boolean>;