@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.
- package/README.md +1 -1
- package/lib/app/app-integration.d.ts +53 -53
- package/lib/app/app-integration.js +63 -63
- package/lib/app/app-list-item.d.ts +5 -5
- package/lib/app/app-list-item.js +2 -2
- package/lib/app/app-type.d.ts +4 -4
- package/lib/app/app-type.js +8 -8
- package/lib/app/app.d.ts +208 -290
- package/lib/app/app.js +156 -156
- package/lib/general/cloudflare-domain.d.ts +42 -42
- package/lib/general/cloudflare-domain.js +12 -12
- package/lib/general/domain.d.ts +110 -169
- package/lib/general/domain.js +62 -62
- package/lib/general/namecheap-domain.d.ts +85 -132
- package/lib/general/namecheap-domain.js +14 -14
- package/lib/general/push.d.ts +6 -6
- package/lib/general/push.js +2 -2
- package/lib/general/queue.d.ts +2 -2
- package/lib/general/queue.js +1 -1
- package/lib/general/shape.d.ts +18 -18
- package/lib/general/shape.js +36 -36
- package/lib/index.d.ts +26 -26
- package/lib/index.js +69 -69
- package/lib/keitaro/keitaro-campaign.d.ts +31 -31
- package/lib/keitaro/keitaro-campaign.js +5 -5
- package/lib/keitaro/keitaro-domain.d.ts +6 -6
- package/lib/keitaro/keitaro-domain.js +2 -2
- package/lib/keitaro/keitaro-offer.d.ts +7 -7
- package/lib/keitaro/keitaro-offer.js +2 -2
- package/lib/keitaro/keitaro-stream.d.ts +20 -20
- package/lib/keitaro/keitaro-stream.js +2 -2
- package/lib/network/keitaro/http.d.ts +2 -2
- package/lib/network/keitaro/http.js +12 -12
- package/lib/network/keitaro/keitaro-service.d.ts +50 -48
- package/lib/network/keitaro/keitaro-service.js +283 -293
- package/lib/offers/list.d.ts +42 -435
- package/lib/offers/list.js +12 -12
- package/lib/offers/offer.d.ts +91 -152
- package/lib/offers/offer.js +42 -42
- package/lib/offers/offerwall/offerwall-home-dialog-data.d.ts +6 -6
- package/lib/offers/offerwall/offerwall-home-dialog-data.js +2 -2
- package/lib/offers/offerwall/offerwall-offer.d.ts +12 -12
- package/lib/offers/offerwall/offerwall-offer.js +2 -2
- package/lib/offers/offerwall/offerwall-response.d.ts +6 -6
- package/lib/offers/offerwall/offerwall-response.js +2 -2
- package/lib/offers/offerwall/offerwall-section.d.ts +6 -6
- package/lib/offers/offerwall/offerwall-section.js +2 -2
- package/lib/offers/section.d.ts +47 -60
- package/lib/offers/section.js +20 -20
- package/lib/panel/app/upsert-flash-app-request.d.ts +31 -31
- package/lib/panel/app/upsert-flash-app-request.js +2 -2
- package/lib/panel/auth.d.ts +9 -9
- package/lib/panel/auth.js +2 -2
- package/lib/panel/flash/upsert-flash-app-request.d.ts +31 -31
- package/lib/panel/flash/upsert-flash-app-request.js +2 -2
- package/lib/panel/user.d.ts +46 -59
- package/lib/panel/user.js +28 -28
- package/lib/templates/nginx-template.conf +35 -35
- package/lib/templates/nginx-template.d.ts +1 -1
- package/lib/templates/nginx-template.js +39 -39
- package/lib/templates/nginx-template.ts +35 -35
- package/lib/utils/general.d.ts +11 -11
- package/lib/utils/general.js +40 -40
- package/lib/utils/huawei/converter.d.ts +2 -2
- package/lib/utils/huawei/converter.js +53 -53
- package/lib/utils/keitaro-utils.d.ts +13 -13
- package/lib/utils/keitaro-utils.js +614 -569
- package/lib/utils/server-util.js +303 -303
- package/package.json +51 -51
- package/src/app/app-integration.ts +66 -66
- package/src/app/app-list-item.ts +4 -4
- package/src/app/app-type.ts +3 -3
- package/src/app/app.ts +317 -317
- package/src/general/cloudflare-domain.ts +44 -44
- package/src/general/domain.ts +106 -106
- package/src/general/namecheap-domain.ts +63 -63
- package/src/general/push.ts +5 -5
- package/src/general/queue.ts +4 -4
- package/src/general/shape.tsx +55 -55
- package/src/index.ts +32 -32
- package/src/keitaro/keitaro-campaign.ts +35 -35
- package/src/keitaro/keitaro-domain.ts +5 -5
- package/src/keitaro/keitaro-offer.ts +6 -6
- package/src/keitaro/keitaro-stream.ts +19 -19
- package/src/network/keitaro/http.ts +8 -8
- package/src/network/keitaro/keitaro-service.ts +348 -364
- package/src/offers/list.ts +22 -19
- package/src/offers/offer.ts +80 -80
- package/src/offers/offerwall/offerwall-home-dialog-data.ts +6 -6
- package/src/offers/offerwall/offerwall-offer.ts +12 -12
- package/src/offers/offerwall/offerwall-response.ts +7 -7
- package/src/offers/offerwall/offerwall-section.ts +7 -7
- package/src/offers/section.ts +29 -29
- package/src/panel/app/upsert-flash-app-request.ts +39 -39
- package/src/panel/auth.ts +9 -9
- package/src/panel/user.ts +38 -38
- package/src/templates/nginx-template.ts +35 -35
- package/src/utils/data.csv +65 -65
- package/src/utils/general.ts +36 -36
- package/src/utils/huawei/converter.ts +55 -55
- package/src/utils/keitaro-utils.ts +717 -664
- package/src/utils/map-apps.json +4747 -4747
- package/src/utils/server-util.ts +368 -368
- package/src/utils/update-postbacks.js +27 -27
- package/tsconfig.json +20 -20
package/src/offers/list.ts
CHANGED
|
@@ -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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
})
|
package/src/offers/offer.ts
CHANGED
|
@@ -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
|
+
}
|
package/src/offers/section.ts
CHANGED
|
@@ -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
|
`
|