@bprotsyk/aso-core 2.1.192 → 2.1.195
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/lib/app/app.d.ts +6 -11
- package/lib/app/app.js +2 -13
- package/lib/general/domain.js +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -3
- package/lib/network/keitaro/traffle/traffle-keitaro-service.js +6 -4
- package/lib/panel/app/upsert-flash-app-request.d.ts +4 -2
- package/package.json +1 -1
- package/src/app/app.ts +4 -14
- package/src/general/domain.ts +1 -1
- package/src/index.ts +1 -2
- package/src/network/keitaro/traffle/traffle-keitaro-service.ts +6 -4
- package/src/panel/app/upsert-flash-app-request.ts +4 -2
package/lib/app/app.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface IApp extends Document {
|
|
|
13
13
|
name: string;
|
|
14
14
|
bundle: string;
|
|
15
15
|
status: AppStatus;
|
|
16
|
-
|
|
16
|
+
geos?: string[];
|
|
17
17
|
onesignalAppId: string;
|
|
18
18
|
onesignalRestApiKey: string;
|
|
19
19
|
appmetricaApiKey?: string;
|
|
@@ -31,10 +31,6 @@ export interface IApp extends Document {
|
|
|
31
31
|
policyPath: string;
|
|
32
32
|
postbacks?: IAppsflyerPostback[];
|
|
33
33
|
}
|
|
34
|
-
export declare enum ETeam {
|
|
35
|
-
TRAFFLE = "traffle",
|
|
36
|
-
ELTRAFICO = "eltrafico"
|
|
37
|
-
}
|
|
38
34
|
export declare enum EPlatform {
|
|
39
35
|
GENERAL = "@",
|
|
40
36
|
HUAWEI = "hw",
|
|
@@ -48,9 +44,7 @@ export declare enum EPlatform {
|
|
|
48
44
|
}
|
|
49
45
|
export declare enum EDirectType {
|
|
50
46
|
KEITARO_OFFER = "keitaroOffer",
|
|
51
|
-
OFFER_DIRECT = "offerDirect"
|
|
52
|
-
TRAFFLE_KEITARO_OFFER = "traffleKeitaroOffer",
|
|
53
|
-
TRAFFLE_OFFER_DIRECT = "traffleOfferDirect"
|
|
47
|
+
OFFER_DIRECT = "offerDirect"
|
|
54
48
|
}
|
|
55
49
|
export declare const getPlatformName: (platform: EPlatform | undefined) => string | false;
|
|
56
50
|
export interface IPlatformParams {
|
|
@@ -148,6 +142,7 @@ export declare enum IntegrationVersion {
|
|
|
148
142
|
OFFERWALL = "OFFERWALL"
|
|
149
143
|
}
|
|
150
144
|
export interface IKeitaroDirectTrackingParams {
|
|
145
|
+
naming: string;
|
|
151
146
|
firebase_app_instance_id: string;
|
|
152
147
|
firebase_user_id: string;
|
|
153
148
|
firebase_device_language_code: string;
|
|
@@ -176,8 +171,8 @@ export declare const AppSchema: mongoose.Schema<any, mongoose.Model<any, any, an
|
|
|
176
171
|
enabled: boolean;
|
|
177
172
|
ech: boolean;
|
|
178
173
|
status: AppStatus;
|
|
179
|
-
team: ETeam;
|
|
180
174
|
bundle: string;
|
|
175
|
+
geos: string[];
|
|
181
176
|
removeInfo: any;
|
|
182
177
|
policyPath: string;
|
|
183
178
|
postbacks: mongoose.Types.DocumentArray<{
|
|
@@ -230,8 +225,8 @@ export declare const AppSchema: mongoose.Schema<any, mongoose.Model<any, any, an
|
|
|
230
225
|
enabled: boolean;
|
|
231
226
|
ech: boolean;
|
|
232
227
|
status: AppStatus;
|
|
233
|
-
team: ETeam;
|
|
234
228
|
bundle: string;
|
|
229
|
+
geos: string[];
|
|
235
230
|
removeInfo: any;
|
|
236
231
|
policyPath: string;
|
|
237
232
|
postbacks: mongoose.Types.DocumentArray<{
|
|
@@ -284,8 +279,8 @@ export declare const AppSchema: mongoose.Schema<any, mongoose.Model<any, any, an
|
|
|
284
279
|
enabled: boolean;
|
|
285
280
|
ech: boolean;
|
|
286
281
|
status: AppStatus;
|
|
287
|
-
team: ETeam;
|
|
288
282
|
bundle: string;
|
|
283
|
+
geos: string[];
|
|
289
284
|
removeInfo: any;
|
|
290
285
|
policyPath: string;
|
|
291
286
|
postbacks: mongoose.Types.DocumentArray<{
|
package/lib/app/app.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AppSchema = exports.PlugType = exports.IntegrationVersion = exports.AppStatus = exports.getPlatformName = exports.EDirectType = exports.EPlatform =
|
|
3
|
+
exports.AppSchema = exports.PlugType = exports.IntegrationVersion = exports.AppStatus = exports.getPlatformName = exports.EDirectType = exports.EPlatform = void 0;
|
|
4
4
|
const mongoose_1 = require("mongoose");
|
|
5
5
|
const util = require("util");
|
|
6
|
-
var ETeam;
|
|
7
|
-
(function (ETeam) {
|
|
8
|
-
ETeam["TRAFFLE"] = "traffle";
|
|
9
|
-
ETeam["ELTRAFICO"] = "eltrafico";
|
|
10
|
-
})(ETeam = exports.ETeam || (exports.ETeam = {}));
|
|
11
6
|
var EPlatform;
|
|
12
7
|
(function (EPlatform) {
|
|
13
8
|
EPlatform["GENERAL"] = "@";
|
|
@@ -24,8 +19,6 @@ var EDirectType;
|
|
|
24
19
|
(function (EDirectType) {
|
|
25
20
|
EDirectType["KEITARO_OFFER"] = "keitaroOffer";
|
|
26
21
|
EDirectType["OFFER_DIRECT"] = "offerDirect";
|
|
27
|
-
EDirectType["TRAFFLE_KEITARO_OFFER"] = "traffleKeitaroOffer";
|
|
28
|
-
EDirectType["TRAFFLE_OFFER_DIRECT"] = "traffleOfferDirect";
|
|
29
22
|
})(EDirectType = exports.EDirectType || (exports.EDirectType = {}));
|
|
30
23
|
// Removed IPublicationHistory interface
|
|
31
24
|
const getPlatformName = (platform) => {
|
|
@@ -94,17 +87,13 @@ exports.AppSchema = new mongoose_1.Schema({
|
|
|
94
87
|
enum: AppStatus,
|
|
95
88
|
default: AppStatus.IN_DEVELOPMENT
|
|
96
89
|
},
|
|
97
|
-
team: {
|
|
98
|
-
type: String,
|
|
99
|
-
enum: ETeam,
|
|
100
|
-
default: ETeam.ELTRAFICO
|
|
101
|
-
},
|
|
102
90
|
bundle: {
|
|
103
91
|
type: String,
|
|
104
92
|
unique: true,
|
|
105
93
|
required: true
|
|
106
94
|
},
|
|
107
95
|
name: String,
|
|
96
|
+
geos: [String],
|
|
108
97
|
onesignalAppId: {
|
|
109
98
|
type: String,
|
|
110
99
|
required: false
|
package/lib/general/domain.js
CHANGED
|
@@ -20,7 +20,7 @@ var DomainTarget;
|
|
|
20
20
|
})(DomainTarget = exports.DomainTarget || (exports.DomainTarget = {}));
|
|
21
21
|
let getDomainTargetByIp = (ip) => {
|
|
22
22
|
switch (ip) {
|
|
23
|
-
case "
|
|
23
|
+
case "194.61.120.94":
|
|
24
24
|
return DomainTarget.MAIN;
|
|
25
25
|
case "46.246.96.114":
|
|
26
26
|
return DomainTarget.KEITARO;
|
package/lib/index.d.ts
CHANGED
|
@@ -26,4 +26,3 @@ export { INamecheapDomain, INamecheapBuyRequest, INamecheapContactInfo, Namechea
|
|
|
26
26
|
export { NginxTemplate } from "./templates/nginx-template";
|
|
27
27
|
export { TraffleKeitaroService } from "./network/keitaro/traffle/traffle-keitaro-service";
|
|
28
28
|
export { KeitaroCLOGeosService } from "./keitaro/keitaro-clo-geos";
|
|
29
|
-
export { ETeam } from "./app/app";
|
package/lib/index.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.KeitaroCLOGeosService = exports.TraffleKeitaroService = exports.NginxTemplate = exports.NamecheapBuyRequestSchema = exports.getDomainTargetByIp = exports.CONST_CLOUFLARE_STATUS_READY = exports.DomainTarget = exports.DomainStatus = exports.ICloudflareDomainType = exports.ICloudflareDomainStatus = exports.KeitaroUtils = exports.KeitaroService = exports.ShapeDiv = exports.PanelUserSchema = exports.PanelUserAccessScope = exports.AlternativeOnActivityResult = exports.AlternativeOnBackPressed = exports.AlternativeNavigation = exports.AlternativeStorageType = exports.AlternativeNetworkTool = exports.AlternativeLogicType = exports.AlternativeSourceType = exports.AlternativeLayoutType = exports.AppType = exports.EDirectType = exports.AppStatus = exports.EPlatform = exports.PlugType = exports.AppSchema = exports.IntegrationVersion = exports.SectionsListSchema = exports.DefaultSectionId = exports.OffersSectionSchema = exports.IOfferType = void 0;
|
|
27
27
|
var offer_1 = require("./offers/offer");
|
|
28
28
|
Object.defineProperty(exports, "IOfferType", { enumerable: true, get: function () { return offer_1.IOfferType; } });
|
|
29
29
|
var section_1 = require("./offers/section");
|
|
@@ -73,5 +73,3 @@ var traffle_keitaro_service_1 = require("./network/keitaro/traffle/traffle-keita
|
|
|
73
73
|
Object.defineProperty(exports, "TraffleKeitaroService", { enumerable: true, get: function () { return traffle_keitaro_service_1.TraffleKeitaroService; } });
|
|
74
74
|
var keitaro_clo_geos_1 = require("./keitaro/keitaro-clo-geos");
|
|
75
75
|
Object.defineProperty(exports, "KeitaroCLOGeosService", { enumerable: true, get: function () { return keitaro_clo_geos_1.KeitaroCLOGeosService; } });
|
|
76
|
-
var app_2 = require("./app/app");
|
|
77
|
-
Object.defineProperty(exports, "ETeam", { enumerable: true, get: function () { return app_2.ETeam; } });
|
|
@@ -434,6 +434,7 @@ async function updateAppTrackingParams(app, platform, newParameters) {
|
|
|
434
434
|
const platformData = app.platforms[platform];
|
|
435
435
|
if (platformData?.direct?.keitaroData && typeof platformData.direct.keitaroData !== 'boolean' && platformData.direct.keitaroData.trackingParams) {
|
|
436
436
|
platformData.direct.keitaroData.trackingParams = {
|
|
437
|
+
naming: newParameters.sub_id_15?.name || "naming",
|
|
437
438
|
firebase_app_instance_id: newParameters.sub_id_11?.name || "firebase_app_instance_id",
|
|
438
439
|
firebase_user_id: newParameters.sub_id_12?.name || "firebase_user_id",
|
|
439
440
|
firebase_device_language_code: newParameters.sub_id_13?.name || "firebase_device_language_code",
|
|
@@ -557,6 +558,7 @@ async function updateAppWithCampaignParams(existingCampaign, app, platform) {
|
|
|
557
558
|
}
|
|
558
559
|
// Оновлюємо app з параметрами з Keitaro (нова структура)
|
|
559
560
|
platformData.direct.keitaroData.trackingParams = {
|
|
561
|
+
naming: campaignParams.sub_id_15?.name || "naming",
|
|
560
562
|
firebase_app_instance_id: campaignParams.sub_id_11?.name || "firebase_app_instance_id",
|
|
561
563
|
firebase_user_id: campaignParams.sub_id_12?.name || "firebase_user_id",
|
|
562
564
|
firebase_device_language_code: campaignParams.sub_id_13?.name || "firebase_device_language_code",
|
|
@@ -566,7 +568,7 @@ async function updateAppWithCampaignParams(existingCampaign, app, platform) {
|
|
|
566
568
|
campaign: campaignParams.sub_id_20?.name || "campaign",
|
|
567
569
|
bundle_id: campaignParams.sub_id_16?.placeholder || ""
|
|
568
570
|
};
|
|
569
|
-
console.log(`Updated app with campaign parameters (new structure): campaign=${platformData.direct.keitaroData.trackingParams
|
|
571
|
+
console.log(`Updated app with campaign parameters (new structure): campaign=${platformData.direct.keitaroData.trackingParams?.campaign}, advertising_id=${platformData.direct.keitaroData.trackingParams?.advertising_id}, appsflyer_device_id=${platformData.direct.keitaroData.trackingParams?.appsflyer_device_id}`);
|
|
570
572
|
return true;
|
|
571
573
|
}
|
|
572
574
|
catch (error) {
|
|
@@ -939,10 +941,10 @@ async function updateStreamsForApp(app, platform) {
|
|
|
939
941
|
console.log(`Skipping stream update for platform ${platform}: test platform is ignored`);
|
|
940
942
|
return false;
|
|
941
943
|
}
|
|
942
|
-
// Перевіряємо чи є directType
|
|
944
|
+
// Перевіряємо чи є directType
|
|
943
945
|
const directType = platformData.direct?.directType;
|
|
944
|
-
if (!directType
|
|
945
|
-
console.log(`Skipping stream update for platform ${platform}: directType
|
|
946
|
+
if (!directType) {
|
|
947
|
+
console.log(`Skipping stream update for platform ${platform}: no directType set`);
|
|
946
948
|
return false;
|
|
947
949
|
}
|
|
948
950
|
const campaign = await findCampaignForAppPlatform(app, platform);
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { AppStatus,
|
|
1
|
+
import { AppStatus, IAppKeitaroData, IBannerParams, IDomainParams, IOffersStubParams, IOfferwallParams, IntegrationVersion, IPlatformParams } from "app/app";
|
|
2
2
|
export interface IUpsertAppRequest {
|
|
3
3
|
id: number;
|
|
4
4
|
name?: string;
|
|
5
5
|
bundle?: string;
|
|
6
6
|
sourceUrl?: string;
|
|
7
7
|
enabled?: boolean;
|
|
8
|
+
geos?: string[];
|
|
9
|
+
integrationVersion?: IntegrationVersion;
|
|
8
10
|
appmetricaApiKey?: string;
|
|
9
11
|
appmetricaAppId?: number;
|
|
10
12
|
keitaroData?: Partial<IAppKeitaroData>;
|
|
11
13
|
bannerParams?: IBannerParams;
|
|
12
14
|
offersStubParams?: IOffersStubParams;
|
|
15
|
+
offerwallParams?: IOfferwallParams;
|
|
13
16
|
domainParams: IDomainParams;
|
|
14
17
|
platforms: {
|
|
15
18
|
[key: string]: IPlatformParams;
|
|
@@ -18,7 +21,6 @@ export interface IUpsertAppRequest {
|
|
|
18
21
|
file?: any;
|
|
19
22
|
status?: AppStatus;
|
|
20
23
|
policyPath?: string;
|
|
21
|
-
team?: ETeam;
|
|
22
24
|
}
|
|
23
25
|
export interface IUpsertAppResponse {
|
|
24
26
|
data: IUpsertAppRequest;
|
package/package.json
CHANGED
package/src/app/app.ts
CHANGED
|
@@ -19,7 +19,7 @@ export interface IApp extends Document {
|
|
|
19
19
|
name: string
|
|
20
20
|
bundle: string
|
|
21
21
|
status: AppStatus
|
|
22
|
-
|
|
22
|
+
geos?: string[]
|
|
23
23
|
onesignalAppId: string
|
|
24
24
|
onesignalRestApiKey: string
|
|
25
25
|
|
|
@@ -40,11 +40,6 @@ export interface IApp extends Document {
|
|
|
40
40
|
postbacks?: IAppsflyerPostback[]
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
export enum ETeam {
|
|
44
|
-
TRAFFLE = 'traffle',
|
|
45
|
-
ELTRAFICO = 'eltrafico'
|
|
46
|
-
}
|
|
47
|
-
|
|
48
43
|
export enum EPlatform {
|
|
49
44
|
GENERAL = '@',
|
|
50
45
|
HUAWEI = 'hw',
|
|
@@ -59,9 +54,7 @@ export enum EPlatform {
|
|
|
59
54
|
|
|
60
55
|
export enum EDirectType{
|
|
61
56
|
KEITARO_OFFER = 'keitaroOffer',
|
|
62
|
-
OFFER_DIRECT = 'offerDirect'
|
|
63
|
-
TRAFFLE_KEITARO_OFFER = 'traffleKeitaroOffer',
|
|
64
|
-
TRAFFLE_OFFER_DIRECT = 'traffleOfferDirect'
|
|
57
|
+
OFFER_DIRECT = 'offerDirect'
|
|
65
58
|
}
|
|
66
59
|
|
|
67
60
|
// Removed IPublicationHistory interface
|
|
@@ -199,6 +192,7 @@ export enum IntegrationVersion {
|
|
|
199
192
|
}
|
|
200
193
|
|
|
201
194
|
export interface IKeitaroDirectTrackingParams {
|
|
195
|
+
naming: string,
|
|
202
196
|
firebase_app_instance_id: string,
|
|
203
197
|
firebase_user_id: string,
|
|
204
198
|
firebase_device_language_code: string,
|
|
@@ -245,11 +239,6 @@ export const AppSchema = new Schema({
|
|
|
245
239
|
enum: AppStatus,
|
|
246
240
|
default: AppStatus.IN_DEVELOPMENT
|
|
247
241
|
},
|
|
248
|
-
team: {
|
|
249
|
-
type: String,
|
|
250
|
-
enum: ETeam,
|
|
251
|
-
default: ETeam.ELTRAFICO
|
|
252
|
-
},
|
|
253
242
|
|
|
254
243
|
bundle: {
|
|
255
244
|
type: String,
|
|
@@ -257,6 +246,7 @@ export const AppSchema = new Schema({
|
|
|
257
246
|
required: true
|
|
258
247
|
},
|
|
259
248
|
name: String,
|
|
249
|
+
geos: [String],
|
|
260
250
|
onesignalAppId: {
|
|
261
251
|
type: String,
|
|
262
252
|
required: false
|
package/src/general/domain.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -33,5 +33,4 @@ export { INamecheapDomain, INamecheapBuyRequest, INamecheapContactInfo, Namechea
|
|
|
33
33
|
export { NginxTemplate } from "./templates/nginx-template";
|
|
34
34
|
|
|
35
35
|
export { TraffleKeitaroService } from "./network/keitaro/traffle/traffle-keitaro-service"
|
|
36
|
-
export { KeitaroCLOGeosService } from "./keitaro/keitaro-clo-geos"
|
|
37
|
-
export { ETeam} from "./app/app";
|
|
36
|
+
export { KeitaroCLOGeosService } from "./keitaro/keitaro-clo-geos"
|
|
@@ -509,6 +509,7 @@ async function updateAppTrackingParams(app: IApp, platform: EPlatform, newParame
|
|
|
509
509
|
const platformData = app.platforms[platform];
|
|
510
510
|
if (platformData?.direct?.keitaroData && typeof platformData.direct.keitaroData !== 'boolean' && platformData.direct.keitaroData.trackingParams) {
|
|
511
511
|
platformData.direct.keitaroData.trackingParams = {
|
|
512
|
+
naming: newParameters.sub_id_15?.name || "naming",
|
|
512
513
|
firebase_app_instance_id: newParameters.sub_id_11?.name || "firebase_app_instance_id",
|
|
513
514
|
firebase_user_id: newParameters.sub_id_12?.name || "firebase_user_id",
|
|
514
515
|
firebase_device_language_code: newParameters.sub_id_13?.name || "firebase_device_language_code",
|
|
@@ -641,6 +642,7 @@ async function updateAppWithCampaignParams(existingCampaign: IKeitaroCampaign, a
|
|
|
641
642
|
|
|
642
643
|
// Оновлюємо app з параметрами з Keitaro (нова структура)
|
|
643
644
|
platformData.direct.keitaroData.trackingParams = {
|
|
645
|
+
naming: campaignParams.sub_id_15?.name || "naming",
|
|
644
646
|
firebase_app_instance_id: campaignParams.sub_id_11?.name || "firebase_app_instance_id",
|
|
645
647
|
firebase_user_id: campaignParams.sub_id_12?.name || "firebase_user_id",
|
|
646
648
|
firebase_device_language_code: campaignParams.sub_id_13?.name || "firebase_device_language_code",
|
|
@@ -651,7 +653,7 @@ async function updateAppWithCampaignParams(existingCampaign: IKeitaroCampaign, a
|
|
|
651
653
|
bundle_id: campaignParams.sub_id_16?.placeholder || ""
|
|
652
654
|
};
|
|
653
655
|
|
|
654
|
-
console.log(`Updated app with campaign parameters (new structure): campaign=${platformData.direct.keitaroData.trackingParams
|
|
656
|
+
console.log(`Updated app with campaign parameters (new structure): campaign=${platformData.direct.keitaroData.trackingParams?.campaign}, advertising_id=${platformData.direct.keitaroData.trackingParams?.advertising_id}, appsflyer_device_id=${platformData.direct.keitaroData.trackingParams?.appsflyer_device_id}`);
|
|
655
657
|
|
|
656
658
|
return true;
|
|
657
659
|
} catch (error) {
|
|
@@ -1079,10 +1081,10 @@ export async function updateStreamsForApp(app: IApp, platform: EPlatform): Promi
|
|
|
1079
1081
|
return false;
|
|
1080
1082
|
}
|
|
1081
1083
|
|
|
1082
|
-
// Перевіряємо чи є directType
|
|
1084
|
+
// Перевіряємо чи є directType
|
|
1083
1085
|
const directType = platformData.direct?.directType;
|
|
1084
|
-
if (!directType
|
|
1085
|
-
console.log(`Skipping stream update for platform ${platform}: directType
|
|
1086
|
+
if (!directType) {
|
|
1087
|
+
console.log(`Skipping stream update for platform ${platform}: no directType set`);
|
|
1086
1088
|
return false;
|
|
1087
1089
|
}
|
|
1088
1090
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppStatus,
|
|
1
|
+
import { AppStatus, IAppKeitaroData, IBannerParams, IDomainParams, IOffersStubParams, IOfferwallParams, IntegrationVersion, IPlatformParams, IPrivacyPolicyParams, IRemoveDataParams } from "app/app"
|
|
2
2
|
import { PlugType } from "index"
|
|
3
3
|
|
|
4
4
|
export interface IUpsertAppRequest {
|
|
@@ -7,6 +7,8 @@ export interface IUpsertAppRequest {
|
|
|
7
7
|
bundle?: string
|
|
8
8
|
sourceUrl?: string, // –
|
|
9
9
|
enabled?: boolean,
|
|
10
|
+
geos?: string[],
|
|
11
|
+
integrationVersion?: IntegrationVersion,
|
|
10
12
|
|
|
11
13
|
// onesignalAppId: string
|
|
12
14
|
// onesignalRestApiKey: string
|
|
@@ -17,13 +19,13 @@ export interface IUpsertAppRequest {
|
|
|
17
19
|
keitaroData?: Partial<IAppKeitaroData>,
|
|
18
20
|
bannerParams?: IBannerParams,
|
|
19
21
|
offersStubParams?: IOffersStubParams,
|
|
22
|
+
offerwallParams?: IOfferwallParams,
|
|
20
23
|
domainParams: IDomainParams,
|
|
21
24
|
platforms: { [key: string]: IPlatformParams },
|
|
22
25
|
ech?: boolean,
|
|
23
26
|
file?: any
|
|
24
27
|
status?: AppStatus
|
|
25
28
|
policyPath?: string
|
|
26
|
-
team?: ETeam
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
export interface IUpsertAppResponse {
|