@bprotsyk/aso-core 2.1.37 → 2.1.39

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 (105) hide show
  1. package/README.md +1 -1
  2. package/lib/app/app-integration.d.ts +53 -53
  3. package/lib/app/app-integration.js +63 -63
  4. package/lib/app/app-list-item.d.ts +5 -5
  5. package/lib/app/app-list-item.js +2 -2
  6. package/lib/app/app-type.d.ts +4 -4
  7. package/lib/app/app-type.js +8 -8
  8. package/lib/app/app.d.ts +208 -290
  9. package/lib/app/app.js +156 -156
  10. package/lib/general/cloudflare-domain.d.ts +42 -42
  11. package/lib/general/cloudflare-domain.js +12 -12
  12. package/lib/general/domain.d.ts +110 -169
  13. package/lib/general/domain.js +62 -62
  14. package/lib/general/namecheap-domain.d.ts +85 -132
  15. package/lib/general/namecheap-domain.js +14 -14
  16. package/lib/general/push.d.ts +6 -6
  17. package/lib/general/push.js +2 -2
  18. package/lib/general/queue.d.ts +2 -2
  19. package/lib/general/queue.js +1 -1
  20. package/lib/general/shape.d.ts +18 -18
  21. package/lib/general/shape.js +36 -36
  22. package/lib/index.d.ts +26 -26
  23. package/lib/index.js +69 -69
  24. package/lib/keitaro/keitaro-campaign.d.ts +31 -31
  25. package/lib/keitaro/keitaro-campaign.js +5 -5
  26. package/lib/keitaro/keitaro-domain.d.ts +6 -6
  27. package/lib/keitaro/keitaro-domain.js +2 -2
  28. package/lib/keitaro/keitaro-offer.d.ts +7 -7
  29. package/lib/keitaro/keitaro-offer.js +2 -2
  30. package/lib/keitaro/keitaro-stream.d.ts +20 -20
  31. package/lib/keitaro/keitaro-stream.js +2 -2
  32. package/lib/network/keitaro/http.d.ts +2 -2
  33. package/lib/network/keitaro/http.js +12 -12
  34. package/lib/network/keitaro/keitaro-service.d.ts +50 -48
  35. package/lib/network/keitaro/keitaro-service.js +283 -293
  36. package/lib/offers/list.d.ts +42 -435
  37. package/lib/offers/list.js +12 -12
  38. package/lib/offers/offer.d.ts +91 -152
  39. package/lib/offers/offer.js +42 -42
  40. package/lib/offers/offerwall/offerwall-home-dialog-data.d.ts +6 -6
  41. package/lib/offers/offerwall/offerwall-home-dialog-data.js +2 -2
  42. package/lib/offers/offerwall/offerwall-offer.d.ts +12 -12
  43. package/lib/offers/offerwall/offerwall-offer.js +2 -2
  44. package/lib/offers/offerwall/offerwall-response.d.ts +6 -6
  45. package/lib/offers/offerwall/offerwall-response.js +2 -2
  46. package/lib/offers/offerwall/offerwall-section.d.ts +6 -6
  47. package/lib/offers/offerwall/offerwall-section.js +2 -2
  48. package/lib/offers/section.d.ts +47 -60
  49. package/lib/offers/section.js +20 -20
  50. package/lib/panel/app/upsert-flash-app-request.d.ts +31 -31
  51. package/lib/panel/app/upsert-flash-app-request.js +2 -2
  52. package/lib/panel/auth.d.ts +9 -9
  53. package/lib/panel/auth.js +2 -2
  54. package/lib/panel/flash/upsert-flash-app-request.d.ts +31 -31
  55. package/lib/panel/flash/upsert-flash-app-request.js +2 -2
  56. package/lib/panel/user.d.ts +46 -59
  57. package/lib/panel/user.js +28 -28
  58. package/lib/templates/nginx-template.conf +35 -35
  59. package/lib/templates/nginx-template.d.ts +1 -1
  60. package/lib/templates/nginx-template.js +39 -39
  61. package/lib/templates/nginx-template.ts +35 -35
  62. package/lib/utils/general.d.ts +11 -11
  63. package/lib/utils/general.js +40 -40
  64. package/lib/utils/huawei/converter.d.ts +2 -2
  65. package/lib/utils/huawei/converter.js +53 -53
  66. package/lib/utils/keitaro-utils.d.ts +13 -13
  67. package/lib/utils/keitaro-utils.js +614 -569
  68. package/lib/utils/server-util.js +303 -303
  69. package/package.json +51 -51
  70. package/src/app/app-integration.ts +66 -66
  71. package/src/app/app-list-item.ts +4 -4
  72. package/src/app/app-type.ts +3 -3
  73. package/src/app/app.ts +317 -317
  74. package/src/general/cloudflare-domain.ts +44 -44
  75. package/src/general/domain.ts +106 -106
  76. package/src/general/namecheap-domain.ts +63 -63
  77. package/src/general/push.ts +5 -5
  78. package/src/general/queue.ts +4 -4
  79. package/src/general/shape.tsx +55 -55
  80. package/src/index.ts +32 -32
  81. package/src/keitaro/keitaro-campaign.ts +35 -35
  82. package/src/keitaro/keitaro-domain.ts +5 -5
  83. package/src/keitaro/keitaro-offer.ts +6 -6
  84. package/src/keitaro/keitaro-stream.ts +19 -19
  85. package/src/network/keitaro/http.ts +8 -8
  86. package/src/network/keitaro/keitaro-service.ts +348 -364
  87. package/src/offers/list.ts +22 -19
  88. package/src/offers/offer.ts +80 -80
  89. package/src/offers/offerwall/offerwall-home-dialog-data.ts +6 -6
  90. package/src/offers/offerwall/offerwall-offer.ts +12 -12
  91. package/src/offers/offerwall/offerwall-response.ts +7 -7
  92. package/src/offers/offerwall/offerwall-section.ts +7 -7
  93. package/src/offers/section.ts +29 -29
  94. package/src/panel/app/upsert-flash-app-request.ts +39 -39
  95. package/src/panel/auth.ts +9 -9
  96. package/src/panel/user.ts +38 -38
  97. package/src/templates/nginx-template.ts +35 -35
  98. package/src/utils/data.csv +65 -65
  99. package/src/utils/general.ts +36 -36
  100. package/src/utils/huawei/converter.ts +55 -55
  101. package/src/utils/keitaro-utils.ts +717 -664
  102. package/src/utils/map-apps.json +4747 -4747
  103. package/src/utils/server-util.ts +368 -368
  104. package/src/utils/update-postbacks.js +27 -27
  105. package/tsconfig.json +20 -20
@@ -1,20 +1,23 @@
1
- import { Schema } from "mongoose"
2
-
3
- export interface ISectionsList {
4
- id: number
5
- content: IAppOffersSection[]
6
- }
7
-
8
- export interface IAppOffersSection {
9
- sectionId: number,
10
- offerIdsOrdered: number[]
11
- }
12
-
13
- export const SectionsListSchema = new Schema({
14
- id: {
15
- type: Number,
16
- unique: true,
17
- required: true
18
- },
19
- content: [Object],
1
+ import { Schema } from "mongoose"
2
+
3
+ export interface ISectionsList {
4
+ id: number
5
+ content: IAppOffersSection[]
6
+ }
7
+
8
+ export interface IAppOffersSection {
9
+ sectionId: number,
10
+ offerStatesOrdered: { [key: string]: {
11
+ offerId: number,
12
+ hide: boolean
13
+ }[] }
14
+ }
15
+
16
+ export const SectionsListSchema = new Schema({
17
+ id: {
18
+ type: Number,
19
+ unique: true,
20
+ required: true
21
+ },
22
+ content: [Object],
20
23
  })
@@ -1,81 +1,81 @@
1
- import { Document, Model, Schema, model } from "mongoose";
2
-
3
- export interface IOffer extends Document {
4
- id: number,
5
- name: string,
6
- graphicFolder: string,
7
- graphic: {
8
- logo: string,
9
- bg: string
10
- }
11
- geo: string,
12
- caption: string,
13
- partnerId: number,
14
- link: string,
15
- type: IOfferType,
16
- keitaroId: string | null,
17
- hidden?: boolean,
18
- history: {
19
- link: string[],
20
- logo: string[],
21
- bg: string[],
22
- name: string[],
23
- caption: string[]
24
- }
25
- }
26
-
27
- // TODO в момент синхронізації з кейтаро підтягнути потрібні властивості
28
- // можна було б завантажувати офер з кейтаро кожен раз, але це буде повільніше
29
- // і доведеться назад на сервер закидати айді, який по факту там і має лежати
30
-
31
- export interface IPartner {
32
- partnerId: number,
33
- shortName: string,
34
- name: string,
35
- }
36
-
37
- export enum IOfferType {
38
- GAMBLING = "gambling",
39
- BETTING = "betting",
40
- FIN = "fin",
41
- }
42
-
43
- export interface IPartnerSection {
44
- id: number,
45
- name: string,
46
- offers: IOffer[],
47
- }
48
-
49
- export const PartnerSchema = new Schema({
50
- partnerId: Number,
51
- shortName: String,
52
- name: String
53
- })
54
-
55
- export const OfferSchema = new Schema({
56
- id: { type: Number, unique: true },
57
- name: String,
58
- graphicFolder: String,
59
- graphic: {
60
- logo: String,
61
- bg: String
62
- },
63
- geo: String,
64
- caption: String,
65
- link: String,
66
- partnerId: Number,
67
- type: {
68
- type: String,
69
- enum: IOfferType,
70
- default: IOfferType.GAMBLING
71
- },
72
- keitaroId: String,
73
- hidden: Boolean,
74
- history: {
75
- link: [String],
76
- logoNames: [String],
77
- bgNames: [String],
78
- name: [String],
79
- caption: [String]
80
- }
1
+ import { Document, Model, Schema, model } from "mongoose";
2
+
3
+ export interface IOffer extends Document {
4
+ id: number,
5
+ name: string,
6
+ graphicFolder: string,
7
+ graphic: {
8
+ logo: string,
9
+ bg: string
10
+ }
11
+ geo: string,
12
+ caption: string,
13
+ partnerId: number,
14
+ link: string,
15
+ type: IOfferType,
16
+ keitaroId: string | null,
17
+ hidden?: boolean,
18
+ history: {
19
+ link: string[],
20
+ logo: string[],
21
+ bg: string[],
22
+ name: string[],
23
+ caption: string[]
24
+ }
25
+ }
26
+
27
+ // TODO в момент синхронізації з кейтаро підтягнути потрібні властивості
28
+ // можна було б завантажувати офер з кейтаро кожен раз, але це буде повільніше
29
+ // і доведеться назад на сервер закидати айді, який по факту там і має лежати
30
+
31
+ export interface IPartner {
32
+ partnerId: number,
33
+ shortName: string,
34
+ name: string,
35
+ }
36
+
37
+ export enum IOfferType {
38
+ GAMBLING = "gambling",
39
+ BETTING = "betting",
40
+ FIN = "fin",
41
+ }
42
+
43
+ export interface IPartnerSection {
44
+ id: number,
45
+ name: string,
46
+ offers: IOffer[],
47
+ }
48
+
49
+ export const PartnerSchema = new Schema({
50
+ partnerId: Number,
51
+ shortName: String,
52
+ name: String
53
+ })
54
+
55
+ export const OfferSchema = new Schema({
56
+ id: { type: Number, unique: true },
57
+ name: String,
58
+ graphicFolder: String,
59
+ graphic: {
60
+ logo: String,
61
+ bg: String
62
+ },
63
+ geo: String,
64
+ caption: String,
65
+ link: String,
66
+ partnerId: Number,
67
+ type: {
68
+ type: String,
69
+ enum: IOfferType,
70
+ default: IOfferType.GAMBLING
71
+ },
72
+ keitaroId: String,
73
+ hidden: Boolean,
74
+ history: {
75
+ link: [String],
76
+ logoNames: [String],
77
+ bgNames: [String],
78
+ name: [String],
79
+ caption: [String]
80
+ }
81
81
  })
@@ -1,6 +1,6 @@
1
- export interface IOfferWallHomeDialogData {
2
- title: string;
3
- message: string;
4
- yes: string;
5
- no: string;
6
- }
1
+ export interface IOfferWallHomeDialogData {
2
+ title: string;
3
+ message: string;
4
+ yes: string;
5
+ no: string;
6
+ }
@@ -1,12 +1,12 @@
1
- export interface IOfferWallOffer {
2
- url: string
3
- foregroundUrl: string
4
- backgroundUrl: string
5
- emojiIcon?: string
6
- emojiCaption?: string
7
- caption: string
8
- name: string
9
- new: boolean
10
- conversionTime: number
11
- priority: number
12
- }
1
+ export interface IOfferWallOffer {
2
+ url: string
3
+ foregroundUrl: string
4
+ backgroundUrl: string
5
+ emojiIcon?: string
6
+ emojiCaption?: string
7
+ caption: string
8
+ name: string
9
+ new: boolean
10
+ conversionTime: number
11
+ priority: number
12
+ }
@@ -1,7 +1,7 @@
1
- import { IOfferWallHomeDialogData } from "offers/offerwall/offerwall-home-dialog-data";
2
- import { IOfferWallSection } from "offers/offerwall/offerwall-section";
3
-
4
- export interface IOfferWallResponse {
5
- sections: IOfferWallSection[];
6
- homeDialog: IOfferWallHomeDialogData;
7
- }
1
+ import { IOfferWallHomeDialogData } from "offers/offerwall/offerwall-home-dialog-data";
2
+ import { IOfferWallSection } from "offers/offerwall/offerwall-section";
3
+
4
+ export interface IOfferWallResponse {
5
+ sections: IOfferWallSection[];
6
+ homeDialog: IOfferWallHomeDialogData;
7
+ }
@@ -1,7 +1,7 @@
1
- import { IOfferWallOffer } from "offers/offerwall/offerwall-offer";
2
-
3
- export interface IOfferWallSection {
4
- offers: IOfferWallOffer[];
5
- title: string;
6
- buttonText: string;
7
- }
1
+ import { IOfferWallOffer } from "offers/offerwall/offerwall-offer";
2
+
3
+ export interface IOfferWallSection {
4
+ offers: IOfferWallOffer[];
5
+ title: string;
6
+ buttonText: string;
7
+ }
@@ -1,30 +1,30 @@
1
- import { Schema } from "mongoose"
2
-
3
- export interface IOffersSection {
4
- id: number,
5
- title: {
6
- none: string,
7
- [key: string]: string
8
- },
9
- button: {
10
- none: string,
11
- [key: string]: string
12
- }
13
- }
14
-
15
- export const OffersSectionSchema = new Schema({
16
- id: {
17
- type: Number,
18
- unique: true,
19
- required: true
20
- },
21
- title: Object,
22
- button: Object
23
- })
24
-
25
- export enum DefaultSectionId {
26
- GAMBLING_MAIN = 0,
27
- BETTING_MAIN = 1,
28
- GAMBLING_PLAYED = 2,
29
- BETTING_PLAYED = 3
1
+ import { Schema } from "mongoose"
2
+
3
+ export interface IOffersSection {
4
+ id: number,
5
+ title: {
6
+ none: string,
7
+ [key: string]: string
8
+ },
9
+ button: {
10
+ none: string,
11
+ [key: string]: string
12
+ }
13
+ }
14
+
15
+ export const OffersSectionSchema = new Schema({
16
+ id: {
17
+ type: Number,
18
+ unique: true,
19
+ required: true
20
+ },
21
+ title: Object,
22
+ button: Object
23
+ })
24
+
25
+ export enum DefaultSectionId {
26
+ GAMBLING_MAIN = 0,
27
+ BETTING_MAIN = 1,
28
+ GAMBLING_PLAYED = 2,
29
+ BETTING_PLAYED = 3
30
30
  }
@@ -1,39 +1,39 @@
1
- import { EImageFormat, IAppGenerationOptions, IAppKeitaroData, IBannerParams, IDeveloperParams, IDirectParams, IDomainParams, IExternalParams, IOffersStubParams, IPlatformParams, IPrivacyPolicyParams, IRemoteServerParams, IRemoveDataParams, IntegrationVersion } from "app/app"
2
- import { PlugType } from "index"
3
-
4
- export interface IUpsertAppRequest {
5
- id: number
6
- name?: string
7
- bundle?: string
8
- sourceUrl?: string, // –
9
- enabled?: boolean,
10
- geos?: string,
11
- geo?: string[],
12
-
13
- // onesignalAppId: string
14
- // onesignalRestApiKey: string
15
-
16
- appmetricaApiKey?: string
17
- appmetricaAppId?: number
18
-
19
- integrationVersion?: IntegrationVersion,
20
-
21
- keitaroData?: Partial<IAppKeitaroData>,
22
- offersStubParams?: IOffersStubParams,
23
- bannerParams?: IBannerParams,
24
- domainParams: IDomainParams,
25
- directParams?: IDirectParams,
26
- externalParams?: IExternalParams,
27
- platforms: { [key: string]: IPlatformParams },
28
- proxied: boolean,
29
- imageFormat?: EImageFormat,
30
- file?: any
31
- }
32
-
33
- export interface IUpsertAppResponse {
34
- data: IUpsertAppRequest,
35
- linkName: string,
36
- archive: string,
37
- externalParams?: IExternalParams,
38
- }
39
-
1
+ import { EImageFormat, IAppGenerationOptions, IAppKeitaroData, IBannerParams, IDeveloperParams, IDirectParams, IDomainParams, IExternalParams, IOffersStubParams, IPlatformParams, IPrivacyPolicyParams, IRemoteServerParams, IRemoveDataParams, IntegrationVersion } from "app/app"
2
+ import { PlugType } from "index"
3
+
4
+ export interface IUpsertAppRequest {
5
+ id: number
6
+ name?: string
7
+ bundle?: string
8
+ sourceUrl?: string, // –
9
+ enabled?: boolean,
10
+ geos?: string,
11
+ geo?: string[],
12
+
13
+ // onesignalAppId: string
14
+ // onesignalRestApiKey: string
15
+
16
+ appmetricaApiKey?: string
17
+ appmetricaAppId?: number
18
+
19
+ integrationVersion?: IntegrationVersion,
20
+
21
+ keitaroData?: Partial<IAppKeitaroData>,
22
+ offersStubParams?: IOffersStubParams,
23
+ bannerParams?: IBannerParams,
24
+ domainParams: IDomainParams,
25
+ directParams?: IDirectParams,
26
+ externalParams?: IExternalParams,
27
+ platforms: { [key: string]: IPlatformParams },
28
+ proxied: boolean,
29
+ imageFormat?: EImageFormat,
30
+ file?: any
31
+ }
32
+
33
+ export interface IUpsertAppResponse {
34
+ data: IUpsertAppRequest,
35
+ linkName: string,
36
+ archive: string,
37
+ externalParams?: IExternalParams,
38
+ }
39
+
package/src/panel/auth.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { PanelUserAccessScope } from "index";
2
-
3
- export interface IAuthToken {
4
- id: string,
5
- username: string,
6
- accessScopes: PanelUserAccessScope[],
7
- token: string,
8
- expiresIn: string
9
- refreshToken:string,
1
+ import { PanelUserAccessScope } from "index";
2
+
3
+ export interface IAuthToken {
4
+ id: string,
5
+ username: string,
6
+ accessScopes: PanelUserAccessScope[],
7
+ token: string,
8
+ expiresIn: string
9
+ refreshToken:string,
10
10
  }
package/src/panel/user.ts CHANGED
@@ -1,38 +1,38 @@
1
- import { Document, Schema } from "mongoose"
2
-
3
- export enum PanelUserAccessScope {
4
- ADMIN,
5
-
6
- POLICY_GENERATOR,
7
-
8
- FLASH_APPS_RO,
9
- FLASH_APPS_RW,
10
-
11
- OFFERS_RO,
12
- OFFERS_RW,
13
-
14
- OFFERWALL_RO,
15
- OFFERWALL_RW,
16
-
17
- ASO_LOGS
18
- }
19
-
20
- export interface IPanelUser extends Document {
21
- username: string,
22
- passwordHash: string,
23
- accessScopes: PanelUserAccessScope[]
24
- }
25
-
26
- export const PanelUserSchema = new Schema({
27
- username: {
28
- type: String,
29
- unique: true
30
- },
31
- passwordHash: String,
32
- accessScopes: [{
33
- type: String,
34
- enum: PanelUserAccessScope,
35
- default: [],
36
- }]
37
- })
38
-
1
+ import { Document, Schema } from "mongoose"
2
+
3
+ export enum PanelUserAccessScope {
4
+ ADMIN,
5
+
6
+ POLICY_GENERATOR,
7
+
8
+ FLASH_APPS_RO,
9
+ FLASH_APPS_RW,
10
+
11
+ OFFERS_RO,
12
+ OFFERS_RW,
13
+
14
+ OFFERWALL_RO,
15
+ OFFERWALL_RW,
16
+
17
+ ASO_LOGS
18
+ }
19
+
20
+ export interface IPanelUser extends Document {
21
+ username: string,
22
+ passwordHash: string,
23
+ accessScopes: PanelUserAccessScope[]
24
+ }
25
+
26
+ export const PanelUserSchema = new Schema({
27
+ username: {
28
+ type: String,
29
+ unique: true
30
+ },
31
+ passwordHash: String,
32
+ accessScopes: [{
33
+ type: String,
34
+ enum: PanelUserAccessScope,
35
+ default: [],
36
+ }]
37
+ })
38
+
@@ -1,36 +1,36 @@
1
- export const NginxTemplate=`server {
2
- server_name {{domain}};
3
- listen 80;
4
-
5
- return 301 https://{{domain}}$request_uri;
6
- }
7
-
8
- server {
9
- listen 443 ssl;
10
-
11
- ssl_certificate "/etc/letsencrypt/live/{{domain}}/fullchain.pem";
12
- ssl_certificate_key "/etc/letsencrypt/live/{{domain}}/privkey.pem";
13
- ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
14
- ssl_prefer_server_ciphers on;
15
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
16
- add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
17
- ssl_stapling on;
18
-
19
- error_log /var/log/nginx/{{domain}}.error.log error;
20
-
21
- root {{rootPath}}{{domain}};
22
- error_page 404 /policy/index.html;
23
-
24
- server_name www.{{domain}} {{domain}};
25
-
26
- location / {
27
- root {{rootPath}}{{domain}};
28
- add_header 'Access-Control-Allow-Origin' '*';
29
- add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
30
- add_header 'Access-Control-Allow-Headers' 'Origin, Authorization, Accept, Content-Type, X-Requested-With';
31
- if ($request_method = 'OPTIONS') {
32
- return 204;
33
- }
34
- }
35
- }
1
+ export const NginxTemplate=`server {
2
+ server_name {{domain}};
3
+ listen 80;
4
+
5
+ return 301 https://{{domain}}$request_uri;
6
+ }
7
+
8
+ server {
9
+ listen 443 ssl;
10
+
11
+ ssl_certificate "/etc/letsencrypt/live/{{domain}}/fullchain.pem";
12
+ ssl_certificate_key "/etc/letsencrypt/live/{{domain}}/privkey.pem";
13
+ ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
14
+ ssl_prefer_server_ciphers on;
15
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
16
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
17
+ ssl_stapling on;
18
+
19
+ error_log /var/log/nginx/{{domain}}.error.log error;
20
+
21
+ root {{rootPath}}{{domain}};
22
+ error_page 404 /policy/index.html;
23
+
24
+ server_name www.{{domain}} {{domain}};
25
+
26
+ location / {
27
+ root {{rootPath}}{{domain}};
28
+ add_header 'Access-Control-Allow-Origin' '*';
29
+ add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
30
+ add_header 'Access-Control-Allow-Headers' 'Origin, Authorization, Accept, Content-Type, X-Requested-With';
31
+ if ($request_method = 'OPTIONS') {
32
+ return 204;
33
+ }
34
+ }
35
+ }
36
36
  `