@bprotsyk/aso-core 2.0.46 → 2.0.48

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 (241) hide show
  1. package/README.md +1 -1
  2. package/docs/assets/highlight.css +22 -22
  3. package/docs/assets/main.js +58 -58
  4. package/docs/assets/style.css +1279 -1279
  5. package/docs/enums/PanelUserAccessScope.html +126 -126
  6. package/docs/functions/ASO_v0.toDefault.html +80 -80
  7. package/docs/functions/ASO_v1.toDefault.html +80 -80
  8. package/docs/functions/ASO_v2.toDefault.html +78 -78
  9. package/docs/functions/ASO_v3.toDefault.html +77 -77
  10. package/docs/functions/ASO_v4.toDefault.html +75 -75
  11. package/docs/functions/ASO_v5.toDefault.html +76 -76
  12. package/docs/functions/ColoredText.html +92 -92
  13. package/docs/functions/ShapeDiv.html +109 -109
  14. package/docs/index.html +82 -82
  15. package/docs/interfaces/ASOConfigFetch.IUsageLogEntry.html +1413 -1413
  16. package/docs/interfaces/ASOConfigFetch.IUsageLogRequest.html +103 -103
  17. package/docs/interfaces/ASOConfigFetch.IUsageLogResponse.html +108 -108
  18. package/docs/interfaces/ASO_v0.IAuthorizationActionMapping.html +145 -145
  19. package/docs/interfaces/ASO_v0.IColoredSpan.html +89 -89
  20. package/docs/interfaces/ASO_v0.IColoredSpanMapping.html +89 -89
  21. package/docs/interfaces/ASO_v0.IColoredString.html +89 -89
  22. package/docs/interfaces/ASO_v0.IColoredStringMapping.html +89 -89
  23. package/docs/interfaces/ASO_v0.IConfig.html +556 -556
  24. package/docs/interfaces/ASO_v0.IConfigMapping.html +229 -229
  25. package/docs/interfaces/ASO_v0.ILocalization.html +516 -516
  26. package/docs/interfaces/ASO_v0.ILocalizationMap.html +77 -77
  27. package/docs/interfaces/ASO_v0.ILocalizationMapping.html +502 -502
  28. package/docs/interfaces/ASO_v0.IOfferResult.html +103 -103
  29. package/docs/interfaces/ASO_v0.IOfferResultEmoji.html +82 -82
  30. package/docs/interfaces/ASO_v0.IOfferResultMapping.html +117 -117
  31. package/docs/interfaces/ASO_v0.IOfferSectionMapping.html +108 -108
  32. package/docs/interfaces/ASO_v0.IOffersSection.html +96 -96
  33. package/docs/interfaces/ASO_v0.ISectionPalette.html +152 -152
  34. package/docs/interfaces/ASO_v0.ISectionPaletteMapping.html +152 -152
  35. package/docs/interfaces/ASO_v1.IAuthorizationActionMapping.html +145 -145
  36. package/docs/interfaces/ASO_v1.IColoredSpan.html +89 -89
  37. package/docs/interfaces/ASO_v1.IColoredSpanMapping.html +89 -89
  38. package/docs/interfaces/ASO_v1.IColoredString.html +89 -89
  39. package/docs/interfaces/ASO_v1.IColoredStringMapping.html +89 -89
  40. package/docs/interfaces/ASO_v1.IConfig.html +549 -549
  41. package/docs/interfaces/ASO_v1.IConfigMapping.html +229 -229
  42. package/docs/interfaces/ASO_v1.ILocalization.html +481 -481
  43. package/docs/interfaces/ASO_v1.ILocalizationMap.html +77 -77
  44. package/docs/interfaces/ASO_v1.ILocalizationMapping.html +481 -481
  45. package/docs/interfaces/ASO_v1.IOfferResult.html +103 -103
  46. package/docs/interfaces/ASO_v1.IOfferResultEmoji.html +82 -82
  47. package/docs/interfaces/ASO_v1.IOfferResultMapping.html +117 -117
  48. package/docs/interfaces/ASO_v1.IOfferSectionMapping.html +108 -108
  49. package/docs/interfaces/ASO_v1.IOffersSection.html +101 -101
  50. package/docs/interfaces/ASO_v1.ISectionPalette.html +152 -152
  51. package/docs/interfaces/ASO_v1.ISectionPaletteMapping.html +152 -152
  52. package/docs/interfaces/ASO_v2.IAuthorizationActionMapping.html +138 -138
  53. package/docs/interfaces/ASO_v2.IColoredSpanMapping.html +89 -89
  54. package/docs/interfaces/ASO_v2.IColoredString.html +89 -89
  55. package/docs/interfaces/ASO_v2.IColoredStringMapping.html +89 -89
  56. package/docs/interfaces/ASO_v2.IConfig.html +493 -493
  57. package/docs/interfaces/ASO_v2.IConfigMapping.html +201 -201
  58. package/docs/interfaces/ASO_v2.ILocalization.html +474 -474
  59. package/docs/interfaces/ASO_v2.ILocalizationMap.html +75 -75
  60. package/docs/interfaces/ASO_v2.ILocalizationMapping.html +362 -362
  61. package/docs/interfaces/ASO_v2.IOfferResult.html +110 -110
  62. package/docs/interfaces/ASO_v2.IOfferResultMapping.html +117 -117
  63. package/docs/interfaces/ASO_v2.IOfferSectionMapping.html +108 -108
  64. package/docs/interfaces/ASO_v2.IOffersSection.html +101 -101
  65. package/docs/interfaces/ASO_v2.ISectionPalette.html +152 -152
  66. package/docs/interfaces/ASO_v2.ISectionPaletteMapping.html +152 -152
  67. package/docs/interfaces/ASO_v3.IAuthorizationActionMapping.html +138 -138
  68. package/docs/interfaces/ASO_v3.IColoredSpanMapping.html +89 -89
  69. package/docs/interfaces/ASO_v3.IColoredString.html +89 -89
  70. package/docs/interfaces/ASO_v3.IColoredStringMapping.html +89 -89
  71. package/docs/interfaces/ASO_v3.IConfig.html +514 -514
  72. package/docs/interfaces/ASO_v3.IConfigMapping.html +208 -208
  73. package/docs/interfaces/ASO_v3.ILocalization.html +446 -446
  74. package/docs/interfaces/ASO_v3.ILocalizationMap.html +74 -74
  75. package/docs/interfaces/ASO_v3.ILocalizationMapping.html +341 -341
  76. package/docs/interfaces/ASO_v3.IOfferResultMapping.html +117 -117
  77. package/docs/interfaces/ASO_v3.IOfferSectionMapping.html +108 -108
  78. package/docs/interfaces/ASO_v3.IOffersSection.html +101 -101
  79. package/docs/interfaces/ASO_v3.ISectionPalette.html +152 -152
  80. package/docs/interfaces/ASO_v3.ISectionPaletteMapping.html +152 -152
  81. package/docs/interfaces/ASO_v4.IAuthorizationActionMapping.html +138 -138
  82. package/docs/interfaces/ASO_v4.IColoredSpanMapping.html +89 -89
  83. package/docs/interfaces/ASO_v4.IColoredString.html +89 -89
  84. package/docs/interfaces/ASO_v4.IColoredStringMapping.html +89 -89
  85. package/docs/interfaces/ASO_v4.IConfig.html +514 -514
  86. package/docs/interfaces/ASO_v4.IConfigMapping.html +131 -131
  87. package/docs/interfaces/ASO_v4.ILocalization.html +369 -369
  88. package/docs/interfaces/ASO_v4.ILocalizationMap.html +72 -72
  89. package/docs/interfaces/ASO_v4.ILocalizationMapping.html +257 -257
  90. package/docs/interfaces/ASO_v4.IOfferResultMapping.html +117 -117
  91. package/docs/interfaces/ASO_v4.IOfferSectionMapping.html +89 -89
  92. package/docs/interfaces/ASO_v4.LocalizedString.html +82 -82
  93. package/docs/interfaces/ASO_v5.IAuthorizationActionMapping.html +138 -138
  94. package/docs/interfaces/ASO_v5.IColoredSpan.html +89 -89
  95. package/docs/interfaces/ASO_v5.IColoredSpanMapping.html +89 -89
  96. package/docs/interfaces/ASO_v5.IColoredString.html +89 -89
  97. package/docs/interfaces/ASO_v5.IColoredStringMapping.html +89 -89
  98. package/docs/interfaces/ASO_v5.IConfig.html +542 -542
  99. package/docs/interfaces/ASO_v5.IConfigMapping.html +159 -159
  100. package/docs/interfaces/ASO_v5.ILocalization.html +411 -411
  101. package/docs/interfaces/ASO_v5.ILocalizationMap.html +73 -73
  102. package/docs/interfaces/ASO_v5.ILocalizationMapping.html +299 -299
  103. package/docs/interfaces/ASO_v5.IOfferResultMapping.html +117 -117
  104. package/docs/interfaces/ASO_v5.IOfferSectionMapping.html +89 -89
  105. package/docs/interfaces/ASO_v5.LocalizedString.html +82 -82
  106. package/docs/interfaces/IAsoConfigResponse.html +81 -81
  107. package/docs/interfaces/IAsoCustomizedOffer.html +116 -116
  108. package/docs/interfaces/IAsoDefaultConfig.html +443 -443
  109. package/docs/interfaces/IAsoOfferResponse.html +81 -81
  110. package/docs/interfaces/IAsoSection.html +88 -88
  111. package/docs/interfaces/IAsoSingleOffer.html +88 -88
  112. package/docs/interfaces/IAuthToken.html +102 -102
  113. package/docs/interfaces/IColoredTextProps.html +74 -74
  114. package/docs/interfaces/IFlashApp.html +144 -144
  115. package/docs/interfaces/IFlashAppListItem.html +88 -88
  116. package/docs/interfaces/IGradient.html +95 -95
  117. package/docs/interfaces/IOffer.html +137 -137
  118. package/docs/interfaces/IOfferWallAuthConfig.html +130 -130
  119. package/docs/interfaces/IOfferWallAuthLocalization.html +102 -102
  120. package/docs/interfaces/IOfferWallAuthSubmitRequest.html +74 -74
  121. package/docs/interfaces/IOfferWallAuthSubmitResponse.html +74 -74
  122. package/docs/interfaces/IOfferWallHomeDialogData.html +95 -95
  123. package/docs/interfaces/IOfferWallOffer.html +109 -109
  124. package/docs/interfaces/IOfferWallResponse.html +81 -81
  125. package/docs/interfaces/IOfferWallSection.html +88 -88
  126. package/docs/interfaces/IPanelUser.html +1405 -1405
  127. package/docs/interfaces/IPush.html +95 -95
  128. package/docs/interfaces/IShape.html +102 -102
  129. package/docs/interfaces/IStroke.html +81 -81
  130. package/docs/interfaces/IUpsertFlashAppRequest.html +214 -214
  131. package/docs/interfaces/IUpsertFlashAppResponse.html +81 -81
  132. package/docs/modules/ASOConfigFetch.html +63 -63
  133. package/docs/modules/ASO_v0.html +96 -96
  134. package/docs/modules/ASO_v1.html +96 -96
  135. package/docs/modules/ASO_v2.html +92 -92
  136. package/docs/modules/ASO_v3.html +90 -90
  137. package/docs/modules/ASO_v4.html +86 -86
  138. package/docs/modules/ASO_v5.html +88 -88
  139. package/docs/modules.html +133 -133
  140. package/docs/variables/FlashAppSchema.html +83 -83
  141. package/docs/variables/PanelUserSchema.html +83 -83
  142. package/lib/app/app-integration.d.ts +53 -53
  143. package/lib/app/app-integration.js +63 -63
  144. package/lib/app/app-list-item.d.ts +5 -5
  145. package/lib/app/app-list-item.js +2 -2
  146. package/lib/app/app-type.d.ts +4 -4
  147. package/lib/app/app-type.js +8 -8
  148. package/lib/app/app.d.ts +206 -191
  149. package/lib/app/app.js +232 -222
  150. package/lib/general/cloudflare-domain.d.ts +42 -42
  151. package/lib/general/cloudflare-domain.js +12 -12
  152. package/lib/general/domain.d.ts +106 -106
  153. package/lib/general/domain.js +60 -60
  154. package/lib/general/namecheap-domain.d.ts +85 -86
  155. package/lib/general/namecheap-domain.js +14 -14
  156. package/lib/general/push.d.ts +6 -6
  157. package/lib/general/push.js +2 -2
  158. package/lib/general/queue.d.ts +2 -2
  159. package/lib/general/queue.js +1 -1
  160. package/lib/general/shape.d.ts +18 -18
  161. package/lib/general/shape.js +36 -36
  162. package/lib/index.d.ts +26 -26
  163. package/lib/index.js +69 -68
  164. package/lib/keitaro/keitaro-campaign.d.ts +31 -31
  165. package/lib/keitaro/keitaro-campaign.js +5 -5
  166. package/lib/keitaro/keitaro-domain.d.ts +6 -6
  167. package/lib/keitaro/keitaro-domain.js +2 -2
  168. package/lib/keitaro/keitaro-offer.d.ts +7 -7
  169. package/lib/keitaro/keitaro-offer.js +2 -2
  170. package/lib/keitaro/keitaro-stream.d.ts +20 -20
  171. package/lib/keitaro/keitaro-stream.js +2 -2
  172. package/lib/network/keitaro/http.d.ts +2 -2
  173. package/lib/network/keitaro/http.js +12 -12
  174. package/lib/network/keitaro/keitaro-service.d.ts +50 -50
  175. package/lib/network/keitaro/keitaro-service.js +260 -260
  176. package/lib/offers/list.d.ts +37 -37
  177. package/lib/offers/list.js +12 -12
  178. package/lib/offers/offer.d.ts +91 -91
  179. package/lib/offers/offer.js +42 -42
  180. package/lib/offers/offerwall/offerwall-home-dialog-data.d.ts +6 -6
  181. package/lib/offers/offerwall/offerwall-home-dialog-data.js +2 -2
  182. package/lib/offers/offerwall/offerwall-offer.d.ts +12 -12
  183. package/lib/offers/offerwall/offerwall-offer.js +2 -2
  184. package/lib/offers/offerwall/offerwall-response.d.ts +6 -6
  185. package/lib/offers/offerwall/offerwall-response.js +2 -2
  186. package/lib/offers/offerwall/offerwall-section.d.ts +6 -6
  187. package/lib/offers/offerwall/offerwall-section.js +2 -2
  188. package/lib/offers/section.d.ts +47 -47
  189. package/lib/offers/section.js +20 -20
  190. package/lib/panel/auth.d.ts +8 -8
  191. package/lib/panel/auth.js +2 -2
  192. package/lib/panel/flash/upsert-flash-app-request.d.ts +31 -29
  193. package/lib/panel/flash/upsert-flash-app-request.js +2 -2
  194. package/lib/panel/user.d.ts +46 -46
  195. package/lib/panel/user.js +28 -28
  196. package/lib/templates/nginx-template.conf +35 -35
  197. package/lib/utils/general.d.ts +11 -11
  198. package/lib/utils/general.js +40 -40
  199. package/lib/utils/huawei/converter.d.ts +2 -2
  200. package/lib/utils/huawei/converter.js +53 -53
  201. package/lib/utils/keitaro-utils.d.ts +15 -15
  202. package/lib/utils/keitaro-utils.js +541 -541
  203. package/lib/utils/server-util.d.ts +42 -42
  204. package/lib/utils/server-util.js +292 -292
  205. package/package.json +54 -54
  206. package/src/app/app-integration.ts +66 -66
  207. package/src/app/app-list-item.ts +4 -4
  208. package/src/app/app-type.ts +3 -3
  209. package/src/app/app.ts +384 -368
  210. package/src/general/cloudflare-domain.ts +44 -44
  211. package/src/general/domain.ts +104 -104
  212. package/src/general/namecheap-domain.ts +63 -63
  213. package/src/general/push.ts +5 -5
  214. package/src/general/queue.ts +4 -4
  215. package/src/general/shape.tsx +55 -55
  216. package/src/index.ts +32 -32
  217. package/src/keitaro/keitaro-campaign.ts +35 -35
  218. package/src/keitaro/keitaro-domain.ts +5 -5
  219. package/src/keitaro/keitaro-offer.ts +6 -6
  220. package/src/keitaro/keitaro-stream.ts +19 -19
  221. package/src/network/keitaro/http.ts +8 -8
  222. package/src/network/keitaro/keitaro-service.ts +322 -322
  223. package/src/offers/list.ts +19 -19
  224. package/src/offers/offer.ts +80 -80
  225. package/src/offers/offerwall/offerwall-home-dialog-data.ts +6 -6
  226. package/src/offers/offerwall/offerwall-offer.ts +12 -12
  227. package/src/offers/offerwall/offerwall-response.ts +7 -7
  228. package/src/offers/offerwall/offerwall-section.ts +7 -7
  229. package/src/offers/section.ts +29 -29
  230. package/src/panel/auth.ts +8 -8
  231. package/src/panel/flash/upsert-flash-app-request.ts +42 -40
  232. package/src/panel/user.ts +38 -38
  233. package/src/templates/nginx-template.conf +35 -35
  234. package/src/utils/data.csv +65 -65
  235. package/src/utils/general.ts +36 -36
  236. package/src/utils/huawei/converter.ts +55 -55
  237. package/src/utils/keitaro-utils.ts +626 -626
  238. package/src/utils/map-apps.json +4747 -4747
  239. package/src/utils/server-util.ts +368 -368
  240. package/src/utils/update-postbacks.js +27 -27
  241. package/tsconfig.json +20 -20
package/src/app/app.ts CHANGED
@@ -1,369 +1,385 @@
1
- import { AlternativeLayoutType, AlternativeLogicType, AlternativeNavigation, AlternativeNetworkTool, AlternativeOnActivityResult, AlternativeOnBackPressed, AlternativeSourceType, AlternativeStorageType } from "index";
2
- import { AppType } from "./app-type";
3
- import mongoose, { Document, Model, model, PipelineStage, Schema, UpdateQuery, UpdateWithAggregationPipeline } from "mongoose";
4
- import { AlternativeFullscreen } from "app/app-integration";
5
- const util = require("util")
6
-
7
- export interface IApp extends Document {
8
- id: number
9
- enabled: boolean,
10
- name: string
11
- trackingUrl?: string
12
- bundle: string
13
-
14
- pushesEnabled?: boolean
15
- sourceUrl?: string,
16
- policyUrl?: string
17
- type: AppType,
18
- geos: string,
19
-
20
- onesignalAppId: string
21
- onesignalRestApiKey: string
22
-
23
- webInterfaceName: string
24
-
25
- generationOptions: IAppGenerationOptions
26
- keitaroData: IAppKeitaroData | null
27
- integrationVersion: IntegrationVersion
28
- integrationAlterations?: IntegrationAlterations
29
-
30
- removeDataParams?: IRemoveDataParams
31
- privacyPolicyParams?: IPrivacyPolicyParams
32
- offersStubParams?: IOffersStubParams
33
- directParams?: IDirectParams,
34
- bannerParams?: IBannerParams,
35
- remoteServerParams?: IRemoteServerParams,
36
- domainParams: IDomainParams
37
- developerParams: IDeveloperParams
38
-
39
- offersListId: number
40
- externalParams?:IExternalParams
41
- }
42
-
43
- export interface IExternalParams {
44
- showButton: boolean;
45
- schema: string;
46
- autoRedirect: boolean;
47
- repeatAutoRedirect:boolean;
48
- }
49
-
50
- export interface IRemoteServerParams {
51
- ip: string,
52
- port: string,
53
- password: string
54
- }
55
-
56
- export interface IOffersStubParams {
57
- offersPath: string,
58
- imagesPath: string
59
- }
60
-
61
- export interface IDomainParams {
62
- name: string,
63
- clouflareZone: string,
64
- }
65
-
66
- export interface IDirectParams {
67
- path: string,
68
- response: string,
69
- }
70
-
71
- export interface IBannerParams {
72
- dataPath: string,
73
- imagePath: string,
74
- imageParam: string,
75
- linkParam: string,
76
- showStubOnError?: boolean
77
- }
78
-
79
- export interface IRemoveDataParams {
80
- buttonText: string,
81
- resultText: string,
82
- errorText: string,
83
- inputHint: string,
84
- dark: boolean,
85
-
86
- path: string
87
-
88
- callbackFunctionName: string
89
- toSplashAfterSuccess: boolean
90
- }
91
-
92
- export interface IPrivacyPolicyParams {
93
- showButtonQuery: string,
94
- button?: {
95
- text: string
96
- },
97
- mustRead: boolean,
98
- dark: boolean,
99
-
100
- path: string,
101
- advertisingIdQuery: string
102
- confirmFunctionName: string,
103
- redirectFunctionName: string,
104
-
105
- redirect: boolean
106
- }
107
-
108
- export enum IntegrationVersion {
109
- NONE = "MVVM",
110
- POLICY = "POLICY",
111
- OFFER_STUB = "OFFER_STUB",
112
- DIRECT = "DIRECT",
113
- WEB = "WEB",
114
- WEB_DIRECT = "WEB_DIRECT",
115
- BANNER = "BANNER",
116
- PWA = "PWA"
117
- }
118
-
119
- export interface IntegrationAlterations {
120
- networkTool: AlternativeNetworkTool, // Network
121
- logicType: AlternativeLogicType, // Logic
122
- navigation: AlternativeNavigation, // Navigation
123
- storageType: AlternativeStorageType, // Storage
124
- sourceType: AlternativeSourceType, // Source
125
- onBackPressed: AlternativeOnBackPressed,
126
- onActivityResult: AlternativeOnActivityResult,
127
- layoutType: AlternativeLayoutType,
128
- fullscreen: AlternativeFullscreen
129
- }
130
-
131
- export interface IAppGenerationOptions {
132
- splashName: string
133
- webViewName: string
134
- linkName: string,
135
- }
136
-
137
- export interface IDeveloperParams {
138
- name: string
139
- email: string
140
- organization: string
141
- }
142
-
143
- export interface IAppKeitaroData {
144
- redirectCampaignId: number
145
- redirectCampaignName: string
146
- redirectCampaignAlias: string
147
- redirectDomainId: number
148
- redirectDomainName: string
149
- trackingCampaignId: number
150
- trackingCampaignName: string
151
- trackingCampaignAlias: string
152
- trackingDomainId: number
153
- trackingDomainName: string
154
-
155
- clickIdParameterName: string,
156
- offerIdParameterName: string,
157
- }
158
-
159
- export enum PlugType {
160
- PASTEBIN = "PASTEBIN",
161
- GIST = "GIST",
162
- OTHER = "OTHER"
163
- }
164
-
165
- export const AppSchema = new Schema({
166
- id: {
167
- type: Number,
168
- unique: true,
169
- required: true
170
- },
171
- enabled: {
172
- type: Boolean,
173
- required: true,
174
- default: false
175
- },
176
- bundle: {
177
- type: String,
178
- unique: true,
179
- required: true
180
- },
181
- name: String,
182
- trackingUrl: {
183
- type: String,
184
- default: null
185
- },
186
-
187
- webInterfaceName: String,
188
- pushesEnabled: Boolean,
189
- sourceUrl: String,
190
- policyUrl: {
191
- type: String,
192
- // unique: true,
193
- required: false
194
- },
195
- type: {
196
- type: String,
197
- enum: AppType,
198
- default: AppType.GAMBLING
199
- },
200
- geos: {
201
- type: String,
202
- required: true
203
- },
204
-
205
- onesignalAppId: {
206
- type: String,
207
- required: false
208
- },
209
- onesignalRestApiKey: {
210
- type: String,
211
- required: false
212
- },
213
-
214
- linkPath: {
215
- type: String
216
- },
217
- externalParams : {
218
- showButton: Boolean,
219
- schema: String,
220
- autoRedirect: Boolean,
221
- repeatAutoRedirect:Boolean
222
- },
223
-
224
- integrationVersion: {
225
- type: String,
226
- default: IntegrationVersion.OFFER_STUB,
227
- enum: IntegrationVersion
228
- },
229
- integrationAlterations: Object,
230
-
231
- generationOptions: {
232
- splashName: {
233
- type: String,
234
- },
235
- webViewName: {
236
- type: String,
237
- },
238
- linkName: {
239
- type: String,
240
- },
241
- savedName: {
242
- type: String,
243
- },
244
- },
245
-
246
- keitaroData: {
247
- redirectCampaignId: {
248
- type: Number,
249
- // unique: true,
250
- required: true,
251
- default: 0
252
- },
253
- redirectCampaignName: {
254
- type: String,
255
- // unique: true,
256
- required: true,
257
- default: "none"
258
- },
259
- redirectCampaignAlias: {
260
- type: String,
261
- // unique: true,
262
- required: true,
263
- default: "none"
264
- },
265
- redirectDomainId: {
266
- type: Number,
267
- required: true,
268
- default: 0
269
- },
270
- redirectDomainName: {
271
- type: String,
272
- required: true,
273
- default: "none"
274
- },
275
- trackingCampaignId: {
276
- type: Number,
277
- // unique: true,
278
- required: true,
279
- default: 0
280
- },
281
- trackingCampaignName: {
282
- type: String,
283
- // unique: true,
284
- required: true,
285
- default: "none"
286
- },
287
- trackingCampaignAlias: {
288
- type: String,
289
- // unique: true,
290
- required: true,
291
- default: "none"
292
- },
293
- trackingDomainId: {
294
- type: Number,
295
- required: true,
296
- default: 0
297
- },
298
- trackingDomainName: {
299
- type: String,
300
- required: true,
301
- default: "none"
302
- },
303
-
304
- clickIdParameterName: String,
305
- offerIdParameterName: String,
306
- },
307
- removeDataParams: Object,
308
- privacyPolicyParams: Object,
309
- offersStubParams: Object,
310
- bannerParams: Object,
311
- directParams: Object,
312
- remoteServerParams: Object,
313
- domainParams: {
314
- name: {
315
- type: String,
316
- unique: true
317
- },
318
- clouflareZone: {
319
- type: String,
320
- },
321
- }
322
-
323
- })
324
-
325
- // TODO app type (casino / fin)
326
- export async function updateSchemaAndMoveValue(model: Model<IApp>): Promise<void> {
327
- await model.syncIndexes()
328
- let pipelineStage: PipelineStage[] = [
329
- {
330
- // $set: {
331
- // city: "$employee_addr.city",
332
- // street: "$employee_addr.street",
333
- // apartment: "$employee_addr.apartment",
334
- // employee_addr: "$$REMOVE"
335
- // },
336
- $set: {
337
- "plugStatus": "$$REMOVE",
338
- "reservePlugStatus": "$$REMOVE",
339
- }
340
- }
341
- ]
342
-
343
- let aggregation = model.aggregate(pipelineStage)
344
- try { await model.collection.dropIndex("plugStatus") } catch (e) { }
345
- try { await model.collection.dropIndex("reservePlugStatus") } catch (e) { }
346
-
347
- // await model.schema.dropIndex("generationOptions.keyPassword_1")
348
- await aggregation.exec()
349
-
350
- const updateOperation: UpdateQuery<IApp> = {
351
- $set: {
352
- plugId: "none"
353
- },
354
- // $addToSet
355
- $unset: [
356
- "pastebinUrl",
357
- "email",
358
- "generationOptions.keyFileName",
359
- "generationOptions.keyDeveloperName",
360
- "generationOptions.keyDeveloperOrganization",
361
- "generationOptions.keyCountryCode",
362
- "generationOptions.keyCity",
363
- "generationOptions.keyAlias",
364
- "generationOptions.keyPassword",
365
- ],
366
- };
367
-
368
- await model.updateMany({}, updateOperation);
1
+ import { AlternativeLayoutType, AlternativeLogicType, AlternativeNavigation, AlternativeNetworkTool, AlternativeOnActivityResult, AlternativeOnBackPressed, AlternativeSourceType, AlternativeStorageType } from "index";
2
+ import { AppType } from "./app-type";
3
+ import mongoose, { Document, Model, model, PipelineStage, Schema, UpdateQuery, UpdateWithAggregationPipeline } from "mongoose";
4
+ import { AlternativeFullscreen } from "app/app-integration";
5
+ const util = require("util")
6
+
7
+ export interface IApp extends Document {
8
+ id: number
9
+ enabled: boolean,
10
+ name: string
11
+ trackingUrl?: string
12
+ bundle: string
13
+
14
+ pushesEnabled?: boolean
15
+ sourceUrl?: string,
16
+ policyUrl?: string
17
+ type: AppType
18
+ geos: string
19
+ geo: string[]
20
+
21
+ onesignalAppId: string
22
+ onesignalRestApiKey: string
23
+
24
+ webInterfaceName: string
25
+
26
+ generationOptions: IAppGenerationOptions
27
+ keitaroData: IAppKeitaroData | null
28
+ integrationVersion: IntegrationVersion
29
+ integrationAlterations?: IntegrationAlterations
30
+
31
+ removeDataParams?: IRemoveDataParams
32
+ privacyPolicyParams?: IPrivacyPolicyParams
33
+ offersStubParams?: IOffersStubParams
34
+ directParams?: IDirectParams,
35
+ bannerParams?: IBannerParams,
36
+ remoteServerParams?: IRemoteServerParams,
37
+ domainParams: IDomainParams
38
+ developerParams: IDeveloperParams,
39
+ platforms: { [key: string]: IPlatformParams }
40
+
41
+ offersListId: number
42
+ externalParams?: IExternalParams
43
+ }
44
+
45
+ export enum EPlatform {
46
+ GENERAL = '@',
47
+ HUAWEI = 'hw',
48
+ SAMSUNG = 'sm',
49
+ ruSTORE = 'rs'
50
+ }
51
+
52
+ export interface IPlatformParams {
53
+ enabled: boolean,
54
+ geo: string[],
55
+ customCampaignData?: IAppKeitaroData
56
+ }
57
+
58
+ export interface IExternalParams {
59
+ showButton: boolean;
60
+ schema: string;
61
+ autoRedirect: boolean;
62
+ }
63
+
64
+ export interface IRemoteServerParams {
65
+ ip: string,
66
+ port: string,
67
+ password: string
68
+ }
69
+
70
+ export interface IOffersStubParams {
71
+ offersPath: string,
72
+ imagesPath: string
73
+ }
74
+
75
+ export interface IDomainParams {
76
+ name: string,
77
+ clouflareZone: string,
78
+ }
79
+
80
+ export interface IDirectParams {
81
+ path: string,
82
+ response: string,
83
+ }
84
+
85
+ export interface IBannerParams {
86
+ dataPath: string,
87
+ imagePath: string,
88
+ imageParam: string,
89
+ linkParam: string,
90
+ showStubOnError?: boolean
91
+ }
92
+
93
+ export interface IRemoveDataParams {
94
+ buttonText: string,
95
+ resultText: string,
96
+ errorText: string,
97
+ inputHint: string,
98
+ dark: boolean,
99
+
100
+ path: string
101
+
102
+ callbackFunctionName: string
103
+ toSplashAfterSuccess: boolean
104
+ }
105
+
106
+ export interface IPrivacyPolicyParams {
107
+ showButtonQuery: string,
108
+ button?: {
109
+ text: string
110
+ },
111
+ mustRead: boolean,
112
+ dark: boolean,
113
+
114
+ path: string,
115
+ advertisingIdQuery: string
116
+ confirmFunctionName: string,
117
+ redirectFunctionName: string,
118
+
119
+ redirect: boolean
120
+ }
121
+
122
+ export enum IntegrationVersion {
123
+ NONE = "MVVM",
124
+ POLICY = "POLICY",
125
+ OFFER_STUB = "OFFER_STUB",
126
+ DIRECT = "DIRECT",
127
+ WEB = "WEB",
128
+ WEB_DIRECT = "WEB_DIRECT",
129
+ BANNER = "BANNER",
130
+ PWA = "PWA"
131
+ }
132
+
133
+ export interface IntegrationAlterations {
134
+ networkTool: AlternativeNetworkTool, // Network
135
+ logicType: AlternativeLogicType, // Logic
136
+ navigation: AlternativeNavigation, // Navigation
137
+ storageType: AlternativeStorageType, // Storage
138
+ sourceType: AlternativeSourceType, // Source
139
+ onBackPressed: AlternativeOnBackPressed,
140
+ onActivityResult: AlternativeOnActivityResult,
141
+ layoutType: AlternativeLayoutType,
142
+ fullscreen: AlternativeFullscreen
143
+ }
144
+
145
+ export interface IAppGenerationOptions {
146
+ splashName: string
147
+ webViewName: string
148
+ linkName: string,
149
+ }
150
+
151
+ export interface IDeveloperParams {
152
+ name: string
153
+ email: string
154
+ organization: string
155
+ }
156
+
157
+ export interface IAppKeitaroData {
158
+ redirectCampaignId: number
159
+ redirectCampaignName: string
160
+ redirectCampaignAlias: string
161
+ redirectDomainId: number
162
+ redirectDomainName: string
163
+ trackingCampaignId: number
164
+ trackingCampaignName: string
165
+ trackingCampaignAlias: string
166
+ trackingDomainId: number
167
+ trackingDomainName: string
168
+
169
+ clickIdParameterName: string,
170
+ offerIdParameterName: string,
171
+ }
172
+
173
+ export enum PlugType {
174
+ PASTEBIN = "PASTEBIN",
175
+ GIST = "GIST",
176
+ OTHER = "OTHER"
177
+ }
178
+
179
+ export const AppSchema = new Schema({
180
+ id: {
181
+ type: Number,
182
+ unique: true,
183
+ required: true
184
+ },
185
+ enabled: {
186
+ type: Boolean,
187
+ required: true,
188
+ default: false
189
+ },
190
+ bundle: {
191
+ type: String,
192
+ unique: true,
193
+ required: true
194
+ },
195
+ name: String,
196
+ trackingUrl: {
197
+ type: String,
198
+ default: null
199
+ },
200
+
201
+ webInterfaceName: String,
202
+ pushesEnabled: Boolean,
203
+ sourceUrl: String,
204
+ policyUrl: {
205
+ type: String,
206
+ // unique: true,
207
+ required: false
208
+ },
209
+ type: {
210
+ type: String,
211
+ enum: AppType,
212
+ default: AppType.GAMBLING
213
+ },
214
+ geos: {
215
+ type: String,
216
+ required: true
217
+ },
218
+ geo: {
219
+ type: [String]
220
+ },
221
+ onesignalAppId: {
222
+ type: String,
223
+ required: false
224
+ },
225
+ onesignalRestApiKey: {
226
+ type: String,
227
+ required: false
228
+ },
229
+
230
+ linkPath: {
231
+ type: String
232
+ },
233
+ externalParams: {
234
+ showButton: Boolean,
235
+ schema: String,
236
+ autoRedirect: Boolean,
237
+ },
238
+
239
+ integrationVersion: {
240
+ type: String,
241
+ default: IntegrationVersion.OFFER_STUB,
242
+ enum: IntegrationVersion
243
+ },
244
+ integrationAlterations: Object,
245
+
246
+ generationOptions: {
247
+ splashName: {
248
+ type: String,
249
+ },
250
+ webViewName: {
251
+ type: String,
252
+ },
253
+ linkName: {
254
+ type: String,
255
+ },
256
+ savedName: {
257
+ type: String,
258
+ },
259
+ },
260
+
261
+ keitaroData: {
262
+ redirectCampaignId: {
263
+ type: Number,
264
+ // unique: true,
265
+ required: true,
266
+ default: 0
267
+ },
268
+ redirectCampaignName: {
269
+ type: String,
270
+ // unique: true,
271
+ required: true,
272
+ default: "none"
273
+ },
274
+ redirectCampaignAlias: {
275
+ type: String,
276
+ // unique: true,
277
+ required: true,
278
+ default: "none"
279
+ },
280
+ redirectDomainId: {
281
+ type: Number,
282
+ required: true,
283
+ default: 0
284
+ },
285
+ redirectDomainName: {
286
+ type: String,
287
+ required: true,
288
+ default: "none"
289
+ },
290
+ trackingCampaignId: {
291
+ type: Number,
292
+ // unique: true,
293
+ required: true,
294
+ default: 0
295
+ },
296
+ trackingCampaignName: {
297
+ type: String,
298
+ // unique: true,
299
+ required: true,
300
+ default: "none"
301
+ },
302
+ trackingCampaignAlias: {
303
+ type: String,
304
+ // unique: true,
305
+ required: true,
306
+ default: "none"
307
+ },
308
+ trackingDomainId: {
309
+ type: Number,
310
+ required: true,
311
+ default: 0
312
+ },
313
+ trackingDomainName: {
314
+ type: String,
315
+ required: true,
316
+ default: "none"
317
+ },
318
+
319
+ clickIdParameterName: String,
320
+ offerIdParameterName: String,
321
+ },
322
+ removeDataParams: Object,
323
+ privacyPolicyParams: Object,
324
+ offersStubParams: Object,
325
+ bannerParams: Object,
326
+ directParams: Object,
327
+ remoteServerParams: Object,
328
+ domainParams: {
329
+ name: {
330
+ type: String,
331
+ unique: true
332
+ },
333
+ clouflareZone: {
334
+ type: String,
335
+ },
336
+ },
337
+ platforms: { type: [Object] }
338
+
339
+ })
340
+
341
+ // TODO app type (casino / fin)
342
+ export async function updateSchemaAndMoveValue(model: Model<IApp>): Promise<void> {
343
+ await model.syncIndexes()
344
+ let pipelineStage: PipelineStage[] = [
345
+ {
346
+ // $set: {
347
+ // city: "$employee_addr.city",
348
+ // street: "$employee_addr.street",
349
+ // apartment: "$employee_addr.apartment",
350
+ // employee_addr: "$$REMOVE"
351
+ // },
352
+ $set: {
353
+ "plugStatus": "$$REMOVE",
354
+ "reservePlugStatus": "$$REMOVE",
355
+ }
356
+ }
357
+ ]
358
+
359
+ let aggregation = model.aggregate(pipelineStage)
360
+ try { await model.collection.dropIndex("plugStatus") } catch (e) { }
361
+ try { await model.collection.dropIndex("reservePlugStatus") } catch (e) { }
362
+
363
+ // await model.schema.dropIndex("generationOptions.keyPassword_1")
364
+ await aggregation.exec()
365
+
366
+ const updateOperation: UpdateQuery<IApp> = {
367
+ $set: {
368
+ plugId: "none"
369
+ },
370
+ // $addToSet
371
+ $unset: [
372
+ "pastebinUrl",
373
+ "email",
374
+ "generationOptions.keyFileName",
375
+ "generationOptions.keyDeveloperName",
376
+ "generationOptions.keyDeveloperOrganization",
377
+ "generationOptions.keyCountryCode",
378
+ "generationOptions.keyCity",
379
+ "generationOptions.keyAlias",
380
+ "generationOptions.keyPassword",
381
+ ],
382
+ };
383
+
384
+ await model.updateMany({}, updateOperation);
369
385
  }