@bprotsyk/aso-core 1.2.235 → 1.2.237
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/docs/assets/highlight.css +22 -22
- package/docs/assets/main.js +58 -58
- package/docs/assets/style.css +1279 -1279
- package/docs/enums/PanelUserAccessScope.html +126 -126
- package/docs/functions/ASO_v0.toDefault.html +80 -80
- package/docs/functions/ASO_v1.toDefault.html +80 -80
- package/docs/functions/ASO_v2.toDefault.html +78 -78
- package/docs/functions/ASO_v3.toDefault.html +77 -77
- package/docs/functions/ASO_v4.toDefault.html +75 -75
- package/docs/functions/ASO_v5.toDefault.html +76 -76
- package/docs/functions/ColoredText.html +92 -92
- package/docs/functions/ShapeDiv.html +109 -109
- package/docs/index.html +82 -82
- package/docs/interfaces/ASOConfigFetch.IUsageLogEntry.html +1413 -1413
- package/docs/interfaces/ASOConfigFetch.IUsageLogRequest.html +103 -103
- package/docs/interfaces/ASOConfigFetch.IUsageLogResponse.html +108 -108
- package/docs/interfaces/ASO_v0.IAuthorizationActionMapping.html +145 -145
- package/docs/interfaces/ASO_v0.IColoredSpan.html +89 -89
- package/docs/interfaces/ASO_v0.IColoredSpanMapping.html +89 -89
- package/docs/interfaces/ASO_v0.IColoredString.html +89 -89
- package/docs/interfaces/ASO_v0.IColoredStringMapping.html +89 -89
- package/docs/interfaces/ASO_v0.IConfig.html +556 -556
- package/docs/interfaces/ASO_v0.IConfigMapping.html +229 -229
- package/docs/interfaces/ASO_v0.ILocalization.html +516 -516
- package/docs/interfaces/ASO_v0.ILocalizationMap.html +77 -77
- package/docs/interfaces/ASO_v0.ILocalizationMapping.html +502 -502
- package/docs/interfaces/ASO_v0.IOfferResult.html +103 -103
- package/docs/interfaces/ASO_v0.IOfferResultEmoji.html +82 -82
- package/docs/interfaces/ASO_v0.IOfferResultMapping.html +117 -117
- package/docs/interfaces/ASO_v0.IOfferSectionMapping.html +108 -108
- package/docs/interfaces/ASO_v0.IOffersSection.html +96 -96
- package/docs/interfaces/ASO_v0.ISectionPalette.html +152 -152
- package/docs/interfaces/ASO_v0.ISectionPaletteMapping.html +152 -152
- package/docs/interfaces/ASO_v1.IAuthorizationActionMapping.html +145 -145
- package/docs/interfaces/ASO_v1.IColoredSpan.html +89 -89
- package/docs/interfaces/ASO_v1.IColoredSpanMapping.html +89 -89
- package/docs/interfaces/ASO_v1.IColoredString.html +89 -89
- package/docs/interfaces/ASO_v1.IColoredStringMapping.html +89 -89
- package/docs/interfaces/ASO_v1.IConfig.html +549 -549
- package/docs/interfaces/ASO_v1.IConfigMapping.html +229 -229
- package/docs/interfaces/ASO_v1.ILocalization.html +481 -481
- package/docs/interfaces/ASO_v1.ILocalizationMap.html +77 -77
- package/docs/interfaces/ASO_v1.ILocalizationMapping.html +481 -481
- package/docs/interfaces/ASO_v1.IOfferResult.html +103 -103
- package/docs/interfaces/ASO_v1.IOfferResultEmoji.html +82 -82
- package/docs/interfaces/ASO_v1.IOfferResultMapping.html +117 -117
- package/docs/interfaces/ASO_v1.IOfferSectionMapping.html +108 -108
- package/docs/interfaces/ASO_v1.IOffersSection.html +101 -101
- package/docs/interfaces/ASO_v1.ISectionPalette.html +152 -152
- package/docs/interfaces/ASO_v1.ISectionPaletteMapping.html +152 -152
- package/docs/interfaces/ASO_v2.IAuthorizationActionMapping.html +138 -138
- package/docs/interfaces/ASO_v2.IColoredSpanMapping.html +89 -89
- package/docs/interfaces/ASO_v2.IColoredString.html +89 -89
- package/docs/interfaces/ASO_v2.IColoredStringMapping.html +89 -89
- package/docs/interfaces/ASO_v2.IConfig.html +493 -493
- package/docs/interfaces/ASO_v2.IConfigMapping.html +201 -201
- package/docs/interfaces/ASO_v2.ILocalization.html +474 -474
- package/docs/interfaces/ASO_v2.ILocalizationMap.html +75 -75
- package/docs/interfaces/ASO_v2.ILocalizationMapping.html +362 -362
- package/docs/interfaces/ASO_v2.IOfferResult.html +110 -110
- package/docs/interfaces/ASO_v2.IOfferResultMapping.html +117 -117
- package/docs/interfaces/ASO_v2.IOfferSectionMapping.html +108 -108
- package/docs/interfaces/ASO_v2.IOffersSection.html +101 -101
- package/docs/interfaces/ASO_v2.ISectionPalette.html +152 -152
- package/docs/interfaces/ASO_v2.ISectionPaletteMapping.html +152 -152
- package/docs/interfaces/ASO_v3.IAuthorizationActionMapping.html +138 -138
- package/docs/interfaces/ASO_v3.IColoredSpanMapping.html +89 -89
- package/docs/interfaces/ASO_v3.IColoredString.html +89 -89
- package/docs/interfaces/ASO_v3.IColoredStringMapping.html +89 -89
- package/docs/interfaces/ASO_v3.IConfig.html +514 -514
- package/docs/interfaces/ASO_v3.IConfigMapping.html +208 -208
- package/docs/interfaces/ASO_v3.ILocalization.html +446 -446
- package/docs/interfaces/ASO_v3.ILocalizationMap.html +74 -74
- package/docs/interfaces/ASO_v3.ILocalizationMapping.html +341 -341
- package/docs/interfaces/ASO_v3.IOfferResultMapping.html +117 -117
- package/docs/interfaces/ASO_v3.IOfferSectionMapping.html +108 -108
- package/docs/interfaces/ASO_v3.IOffersSection.html +101 -101
- package/docs/interfaces/ASO_v3.ISectionPalette.html +152 -152
- package/docs/interfaces/ASO_v3.ISectionPaletteMapping.html +152 -152
- package/docs/interfaces/ASO_v4.IAuthorizationActionMapping.html +138 -138
- package/docs/interfaces/ASO_v4.IColoredSpanMapping.html +89 -89
- package/docs/interfaces/ASO_v4.IColoredString.html +89 -89
- package/docs/interfaces/ASO_v4.IColoredStringMapping.html +89 -89
- package/docs/interfaces/ASO_v4.IConfig.html +514 -514
- package/docs/interfaces/ASO_v4.IConfigMapping.html +131 -131
- package/docs/interfaces/ASO_v4.ILocalization.html +369 -369
- package/docs/interfaces/ASO_v4.ILocalizationMap.html +72 -72
- package/docs/interfaces/ASO_v4.ILocalizationMapping.html +257 -257
- package/docs/interfaces/ASO_v4.IOfferResultMapping.html +117 -117
- package/docs/interfaces/ASO_v4.IOfferSectionMapping.html +89 -89
- package/docs/interfaces/ASO_v4.LocalizedString.html +82 -82
- package/docs/interfaces/ASO_v5.IAuthorizationActionMapping.html +138 -138
- package/docs/interfaces/ASO_v5.IColoredSpan.html +89 -89
- package/docs/interfaces/ASO_v5.IColoredSpanMapping.html +89 -89
- package/docs/interfaces/ASO_v5.IColoredString.html +89 -89
- package/docs/interfaces/ASO_v5.IColoredStringMapping.html +89 -89
- package/docs/interfaces/ASO_v5.IConfig.html +542 -542
- package/docs/interfaces/ASO_v5.IConfigMapping.html +159 -159
- package/docs/interfaces/ASO_v5.ILocalization.html +411 -411
- package/docs/interfaces/ASO_v5.ILocalizationMap.html +73 -73
- package/docs/interfaces/ASO_v5.ILocalizationMapping.html +299 -299
- package/docs/interfaces/ASO_v5.IOfferResultMapping.html +117 -117
- package/docs/interfaces/ASO_v5.IOfferSectionMapping.html +89 -89
- package/docs/interfaces/ASO_v5.LocalizedString.html +82 -82
- package/docs/interfaces/IAsoConfigResponse.html +81 -81
- package/docs/interfaces/IAsoCustomizedOffer.html +116 -116
- package/docs/interfaces/IAsoDefaultConfig.html +443 -443
- package/docs/interfaces/IAsoOfferResponse.html +81 -81
- package/docs/interfaces/IAsoSection.html +88 -88
- package/docs/interfaces/IAsoSingleOffer.html +88 -88
- package/docs/interfaces/IAuthToken.html +102 -102
- package/docs/interfaces/IColoredTextProps.html +74 -74
- package/docs/interfaces/IFlashApp.html +144 -144
- package/docs/interfaces/IFlashAppListItem.html +88 -88
- package/docs/interfaces/IGradient.html +95 -95
- package/docs/interfaces/IOffer.html +137 -137
- package/docs/interfaces/IOfferWallAuthConfig.html +130 -130
- package/docs/interfaces/IOfferWallAuthLocalization.html +102 -102
- package/docs/interfaces/IOfferWallAuthSubmitRequest.html +74 -74
- package/docs/interfaces/IOfferWallAuthSubmitResponse.html +74 -74
- package/docs/interfaces/IOfferWallHomeDialogData.html +95 -95
- package/docs/interfaces/IOfferWallOffer.html +109 -109
- package/docs/interfaces/IOfferWallResponse.html +81 -81
- package/docs/interfaces/IOfferWallSection.html +88 -88
- package/docs/interfaces/IPanelUser.html +1405 -1405
- package/docs/interfaces/IPush.html +95 -95
- package/docs/interfaces/IShape.html +102 -102
- package/docs/interfaces/IStroke.html +81 -81
- package/docs/interfaces/IUpsertFlashAppRequest.html +214 -214
- package/docs/interfaces/IUpsertFlashAppResponse.html +81 -81
- package/docs/modules/ASOConfigFetch.html +63 -63
- package/docs/modules/ASO_v0.html +96 -96
- package/docs/modules/ASO_v1.html +96 -96
- package/docs/modules/ASO_v2.html +92 -92
- package/docs/modules/ASO_v3.html +90 -90
- package/docs/modules/ASO_v4.html +86 -86
- package/docs/modules/ASO_v5.html +88 -88
- package/docs/modules.html +133 -133
- package/docs/variables/FlashAppSchema.html +83 -83
- package/docs/variables/PanelUserSchema.html +83 -83
- 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 +177 -178
- package/lib/app/app.js +216 -216
- package/lib/aso/config/aso-config-v0.d.ts +333 -0
- package/lib/aso/config/aso-config-v0.js +59 -0
- package/lib/aso/config/aso-config-v1.d.ts +330 -0
- package/lib/aso/config/aso-config-v1.js +58 -0
- package/lib/aso/config/aso-config-v2.d.ts +297 -0
- package/lib/aso/config/aso-config-v2.js +57 -0
- package/lib/aso/config/aso-config-v3.d.ts +294 -0
- package/lib/aso/config/aso-config-v3.js +58 -0
- package/lib/aso/config/aso-config-v4.d.ts +208 -0
- package/lib/aso/config/aso-config-v4.js +58 -0
- package/lib/aso/config/aso-config-v5.d.ts +227 -0
- package/lib/aso/config/aso-config-v5.js +58 -0
- package/lib/aso/config/aso-default-config.d.ts +57 -0
- package/lib/aso/config/aso-default-config.js +2 -0
- package/lib/aso/config/aso-single-response.d.ts +5 -0
- package/lib/aso/config/aso-single-response.js +2 -0
- package/lib/aso/offer/aso-customized-offer.d.ts +11 -0
- package/lib/aso/offer/aso-customized-offer.js +2 -0
- package/lib/aso/offer/aso-offer-response.d.ts +6 -0
- package/lib/aso/offer/aso-offer-response.js +2 -0
- package/lib/aso/offer/aso-offer-section.d.ts +6 -0
- package/lib/aso/offer/aso-offer-section.js +2 -0
- package/lib/aso/offer/aso-single-offer.d.ts +5 -0
- package/lib/aso/offer/aso-single-offer.js +2 -0
- package/lib/aso/offer/config/aso-config-v0.d.ts +271 -0
- package/lib/aso/offer/config/aso-config-v0.js +57 -0
- package/lib/aso/offer/config/aso-config-v1.d.ts +263 -0
- package/lib/aso/offer/config/aso-config-v1.js +57 -0
- package/lib/aso/offer/config/aso-config-v2.d.ts +230 -0
- package/lib/aso/offer/config/aso-config-v2.js +55 -0
- package/lib/aso/offer/config/aso-config-v3.d.ts +227 -0
- package/lib/aso/offer/config/aso-config-v3.js +56 -0
- package/lib/aso/offer/config/aso-config-v4.d.ts +205 -0
- package/lib/aso/offer/config/aso-config-v4.js +56 -0
- package/lib/aso/offer/config/aso-default-config.d.ts +56 -0
- package/lib/aso/offer/config/aso-default-config.js +2 -0
- package/lib/aso/offer/config/aso-single-response.d.ts +5 -0
- package/lib/aso/offer/config/aso-single-response.js +2 -0
- package/lib/aso/offerwall/auth/offerwall-auth-config.d.ts +14 -0
- package/lib/aso/offerwall/auth/offerwall-auth-config.js +2 -0
- package/lib/aso/offerwall/auth/offerwall-auth-localization.d.ts +8 -0
- package/lib/aso/offerwall/auth/offerwall-auth-localization.js +2 -0
- package/lib/aso/offerwall/auth/offerwall-auth-submit-request.d.ts +3 -0
- package/lib/aso/offerwall/auth/offerwall-auth-submit-request.js +2 -0
- package/lib/aso/offerwall/auth/offerwall-auth-submit-response.d.ts +3 -0
- package/lib/aso/offerwall/auth/offerwall-auth-submit-response.js +2 -0
- package/lib/aso/offerwall/offerwall-home-dialog-data.d.ts +6 -0
- package/lib/aso/offerwall/offerwall-home-dialog-data.js +2 -0
- package/lib/aso/offerwall/offerwall-offer.d.ts +8 -0
- package/lib/aso/offerwall/offerwall-offer.js +2 -0
- package/lib/aso/offerwall/offerwall-response.d.ts +6 -0
- package/lib/aso/offerwall/offerwall-response.js +2 -0
- package/lib/aso/offerwall/offerwall-section.d.ts +6 -0
- package/lib/aso/offerwall/offerwall-section.js +2 -0
- package/lib/aso/usage-logs/aso-config-fetch-entry.d.ts +28 -0
- package/lib/aso/usage-logs/aso-config-fetch-entry.js +2 -0
- package/lib/flash/flash-app-integration.d.ts +53 -0
- package/lib/flash/flash-app-integration.js +63 -0
- package/lib/flash/flash-app-list-item.d.ts +5 -0
- package/lib/flash/flash-app-list-item.js +2 -0
- package/lib/flash/flash-app-type.d.ts +4 -0
- package/lib/flash/flash-app-type.js +8 -0
- package/lib/flash/flash-app.d.ts +169 -0
- package/lib/flash/flash-app.js +215 -0
- package/lib/general/cloudflare-domain.d.ts +42 -42
- package/lib/general/cloudflare-domain.js +12 -12
- package/lib/general/colored-text.d.ts +7 -7
- package/lib/general/colored-text.js +28 -28
- package/lib/general/domain.d.ts +92 -92
- package/lib/general/domain.js +38 -38
- package/lib/general/namecheap-domain.d.ts +79 -80
- 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 +1 -2
- package/lib/general/queue.js +2 -1
- package/lib/general/shape.d.ts +18 -18
- package/lib/general/shape.js +36 -33
- package/lib/index.d.ts +25 -25
- package/lib/index.js +65 -42
- 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/models/cloudflare-domain.d.ts +42 -42
- package/lib/models/cloudflare-domain.js +12 -12
- package/lib/models/domain.d.ts +92 -92
- package/lib/models/domain.js +38 -38
- package/lib/models/namecheap-domain.d.ts +80 -80
- package/lib/models/namecheap-domain.js +14 -14
- package/lib/network/keitaro/http.d.ts +3 -2
- package/lib/network/keitaro/http.js +12 -9
- package/lib/network/keitaro/keitaro-service.d.ts +50 -50
- package/lib/network/keitaro/keitaro-service.js +260 -257
- package/lib/offers/list.d.ts +37 -37
- package/lib/offers/list.js +12 -12
- package/lib/offers/offer.d.ts +91 -91
- 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 -47
- package/lib/offers/section.js +20 -20
- package/lib/panel/auth.d.ts +8 -8
- package/lib/panel/auth.js +2 -2
- package/lib/panel/flash/create-flash-app-request.d.ts +28 -28
- package/lib/panel/flash/create-flash-app-request.js +2 -2
- package/lib/panel/flash/upsert-flash-app-request.d.ts +27 -27
- package/lib/panel/flash/upsert-flash-app-request.js +2 -2
- package/lib/panel/user.d.ts +46 -46
- package/lib/panel/user.js +28 -28
- package/lib/shared/colored-text.d.ts +7 -7
- package/lib/shared/colored-text.js +28 -28
- package/lib/shared/offer.d.ts +12 -12
- package/lib/shared/offer.js +2 -2
- package/lib/shared/push.d.ts +6 -6
- package/lib/shared/push.js +2 -2
- package/lib/shared/queue.d.ts +1 -1
- package/lib/shared/queue.js +2 -2
- package/lib/shared/shape.d.ts +18 -18
- package/lib/shared/shape.js +36 -36
- package/lib/shared/single-offer.d.ts +5 -5
- package/lib/shared/single-offer.js +2 -2
- package/lib/utils/app-gathering-utils.d.ts +15 -15
- package/lib/utils/app-gathering-utils.js +2 -2
- 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 +15 -15
- package/lib/utils/keitaro-utils.js +544 -541
- package/lib/utils/server-util.d.ts +26 -19
- package/lib/utils/server-util.js +176 -115
- package/package.json +46 -46
- 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 +353 -353
- package/src/general/cloudflare-domain.ts +44 -44
- package/src/general/domain.ts +75 -75
- package/src/general/namecheap-domain.ts +56 -56
- 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 +33 -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 +322 -322
- package/src/offers/list.ts +19 -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/auth.ts +8 -8
- package/src/panel/flash/upsert-flash-app-request.ts +37 -37
- package/src/panel/user.ts +38 -38
- package/src/templates/nginx-template.conf +35 -0
- package/src/types/ssh2-sftp-client.d.ts +59 -0
- 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 +626 -626
- package/src/utils/map-apps.json +4747 -4747
- package/src/utils/server-util.ts +246 -123
- package/src/utils/update-postbacks.js +27 -27
- package/tsconfig.json +17 -16
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
import { NodeSSH } from "node-ssh";
|
|
2
|
-
export declare let IP: string;
|
|
3
|
-
export declare let PASSWORD: string;
|
|
4
|
-
export declare let HOST: string;
|
|
5
|
-
export declare let PORT: number;
|
|
6
|
-
export declare class ServerUtil {
|
|
7
|
-
DOMAIN_HOME: string;
|
|
8
|
-
ssh?: NodeSSH;
|
|
9
|
-
constructor(ssh?: NodeSSH);
|
|
10
|
-
exec(command: string, options?: any): Promise<string>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
import { NodeSSH } from "node-ssh";
|
|
2
|
+
export declare let IP: string;
|
|
3
|
+
export declare let PASSWORD: string;
|
|
4
|
+
export declare let HOST: string;
|
|
5
|
+
export declare let PORT: number;
|
|
6
|
+
export declare class ServerUtil {
|
|
7
|
+
DOMAIN_HOME: string;
|
|
8
|
+
ssh?: NodeSSH;
|
|
9
|
+
constructor(ssh?: NodeSSH);
|
|
10
|
+
exec(command: string, options?: any): Promise<string>;
|
|
11
|
+
generateSSHKey(): Promise<string>;
|
|
12
|
+
createDirectories(): Promise<void>;
|
|
13
|
+
installGit(): Promise<void>;
|
|
14
|
+
addBitbucketToKnownHosts(): Promise<void>;
|
|
15
|
+
cloneRepository(repoName: string, targetPath: string): Promise<void>;
|
|
16
|
+
installNginx(): Promise<void>;
|
|
17
|
+
isNginxActive(): Promise<boolean>;
|
|
18
|
+
isMongoActive(): Promise<boolean>;
|
|
19
|
+
mongoInstallCommand: string;
|
|
20
|
+
domainNginxConfigExists(host: string): Promise<boolean>;
|
|
21
|
+
domainNginxCertsExist(host: string): Promise<boolean>;
|
|
22
|
+
isCerbotActive(): Promise<boolean>;
|
|
23
|
+
setupCertbot(): Promise<boolean>;
|
|
24
|
+
setupSSL(email: string, host: string): Promise<void>;
|
|
25
|
+
refresh(): Promise<boolean>;
|
|
26
|
+
}
|
package/lib/utils/server-util.js
CHANGED
|
@@ -1,115 +1,176 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
exports.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return await
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ServerUtil = exports.PORT = exports.HOST = exports.PASSWORD = exports.IP = void 0;
|
|
7
|
+
const child_process_1 = __importDefault(require("child_process"));
|
|
8
|
+
const { promisify } = require("util");
|
|
9
|
+
const execPromise = promisify(child_process_1.default.exec);
|
|
10
|
+
exports.IP = "185.123.53.227";
|
|
11
|
+
exports.PASSWORD = "xUA3oOX06Kfc9m12rZ";
|
|
12
|
+
exports.HOST = "cg-main-server.com";
|
|
13
|
+
exports.PORT = 56777;
|
|
14
|
+
class ServerUtil {
|
|
15
|
+
DOMAIN_HOME = "/etc/nginx/sites-enabled";
|
|
16
|
+
ssh;
|
|
17
|
+
constructor(ssh) {
|
|
18
|
+
this.ssh = ssh;
|
|
19
|
+
}
|
|
20
|
+
// Выконує команду або по SSH або локально, повертаючи текст незалежно від результату (помилка чи успіх)
|
|
21
|
+
async exec(command, options) {
|
|
22
|
+
if (this.ssh) {
|
|
23
|
+
return (await this.ssh.execCommand(command, options)).stdout;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return await new Promise((resolve) => {
|
|
27
|
+
execPromise(command, (err, stdout) => {
|
|
28
|
+
resolve(stdout);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// SSH
|
|
34
|
+
async generateSSHKey() {
|
|
35
|
+
await this.exec(`ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa <<< n`);
|
|
36
|
+
let sshFingerprint = await this.exec(`cat ~/.ssh/id_rsa.pub`);
|
|
37
|
+
return sshFingerprint;
|
|
38
|
+
}
|
|
39
|
+
// create Directories in /Var
|
|
40
|
+
async createDirectories() {
|
|
41
|
+
await this.exec(`mkdir -p /var/www/ai`);
|
|
42
|
+
}
|
|
43
|
+
// install git
|
|
44
|
+
async installGit() {
|
|
45
|
+
await this.exec(`apt-get update; apt-get install -y git`);
|
|
46
|
+
}
|
|
47
|
+
// add ssh to bitbucket
|
|
48
|
+
async addBitbucketToKnownHosts() {
|
|
49
|
+
await this.exec(`ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts`);
|
|
50
|
+
}
|
|
51
|
+
// clone bitbucket Repository
|
|
52
|
+
async cloneRepository(repoName, targetPath) {
|
|
53
|
+
let gitResponse = await this.exec(`git clone git@bitbucket.org:bprtsk/${repoName}.git`, { cwd: targetPath });
|
|
54
|
+
if (gitResponse.includes(`Please make sure you have the correct access rights`)) {
|
|
55
|
+
throw new Error(`No access to the remote repository!`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// не знаю чи треба але додав ?
|
|
59
|
+
// async checkoutBranch(branch: string, repoPath: string): Promise<void> {
|
|
60
|
+
// await this.exec(`git checkout -b ${branch}; git branch --set-upstream-to=origin/${branch} ${branch}; git reset --hard origin/${branch};`, { cwd: repoPath });
|
|
61
|
+
// }
|
|
62
|
+
// не знаю чи треба але додав ?
|
|
63
|
+
// async installJava(): Promise<void> {
|
|
64
|
+
// await this.exec(`apt-get update; apt-get install -y default-jre default-jdk`);
|
|
65
|
+
// }
|
|
66
|
+
// install Nginx
|
|
67
|
+
async installNginx() {
|
|
68
|
+
await this.exec(`apt-get update; apt-get install -y nginx`);
|
|
69
|
+
await this.exec(`systemctl enable nginx`);
|
|
70
|
+
await this.exec(`systemctl start nginx`);
|
|
71
|
+
}
|
|
72
|
+
// Nginx
|
|
73
|
+
async isNginxActive() {
|
|
74
|
+
try {
|
|
75
|
+
let result = await this.exec("systemctl status nginx");
|
|
76
|
+
if (result.includes("Active: active"))
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
console.error(e);
|
|
81
|
+
}
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
// Mongo
|
|
85
|
+
async isMongoActive() {
|
|
86
|
+
try {
|
|
87
|
+
let result = await this.exec("systemctl status mongod");
|
|
88
|
+
if (result.includes("Active: active"))
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
console.error(e);
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
mongoInstallCommand = `
|
|
97
|
+
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list.d/focal-security.list;
|
|
98
|
+
apt-get update;
|
|
99
|
+
apt-get install libssl1.1;
|
|
100
|
+
rm /etc/apt/sources.list.d/focal-security.list;
|
|
101
|
+
|
|
102
|
+
curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -;
|
|
103
|
+
echo "deb http://security.ubuntu.com/ubuntu impish-security main" | tee /etc/apt/sources.list.d/impish-security.list;
|
|
104
|
+
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list;
|
|
105
|
+
apt-get update;
|
|
106
|
+
apt-get install -y mongodb-org;
|
|
107
|
+
systemctl enable mongod.service;
|
|
108
|
+
systemctl start mongod;
|
|
109
|
+
`;
|
|
110
|
+
// Domains
|
|
111
|
+
async domainNginxConfigExists(host) {
|
|
112
|
+
try {
|
|
113
|
+
let result = await this.exec(`ls ${this.DOMAIN_HOME}/${host}.nginx.ssl.conf`);
|
|
114
|
+
if (result.includes("No such file or directory"))
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
catch (e) {
|
|
118
|
+
console.error(e);
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
async domainNginxCertsExist(host) {
|
|
123
|
+
try {
|
|
124
|
+
let result = await this.exec(`ls /etc/letsencrypt/live/${host}`);
|
|
125
|
+
if (result.includes("No such file or directory"))
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
console.error(e);
|
|
130
|
+
}
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
// Certbot CRON
|
|
134
|
+
async isCerbotActive() {
|
|
135
|
+
try {
|
|
136
|
+
let result = await this.exec("which certbot");
|
|
137
|
+
if (result.includes("/usr/bin/certbot"))
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
console.error(e);
|
|
142
|
+
}
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
// install certbot
|
|
146
|
+
async setupCertbot() {
|
|
147
|
+
await this.exec(`apt-get install -y certbot python3-certbot-nginx;`);
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
// creating a SSL certificate
|
|
151
|
+
async setupSSL(email, host) {
|
|
152
|
+
let certbotResponse = await this.exec(`certbot --non-interactive --agree-tos --nginx -m "${email}" -d "${host}"`);
|
|
153
|
+
if (certbotResponse.includes(`Some challenges have failed.`)) {
|
|
154
|
+
throw new Error("Certbot encountered an error");
|
|
155
|
+
}
|
|
156
|
+
await this.exec(`echo "0 12 * * * /usr/bin/certbot renew --quiet" | crontab -`);
|
|
157
|
+
}
|
|
158
|
+
// Git
|
|
159
|
+
async refresh() {
|
|
160
|
+
await this.exec(`git stash; rm-rf built; git pull`);
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.ServerUtil = ServerUtil;
|
|
165
|
+
// (async () => {
|
|
166
|
+
// const ssh = new NodeSSH()
|
|
167
|
+
// await ssh.connect({
|
|
168
|
+
// host: IP,
|
|
169
|
+
// port: PORT,
|
|
170
|
+
// username: `root`,
|
|
171
|
+
// password: PASSWORD
|
|
172
|
+
// })
|
|
173
|
+
// let util = new ServerUtil(ssh)
|
|
174
|
+
// console.log(`Nginx is active: ${await util.isNginxActive()}`)
|
|
175
|
+
// process.exit(0)
|
|
176
|
+
// })()
|
package/package.json
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@bprotsyk/aso-core",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"main": "lib/index.js",
|
|
5
|
-
"types": "lib/index.d.ts",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"prod": "tsc
|
|
8
|
-
"build": "tsc",
|
|
9
|
-
"test": "echo \"Error: no test specified\" && exit 1",
|
|
10
|
-
"keitaro": "tsc; node lib/utils/keitaro-utils.js",
|
|
11
|
-
"server": "tsc; node lib/utils/server-util.js"
|
|
12
|
-
},
|
|
13
|
-
"author": "bprotsyk",
|
|
14
|
-
"license": "ISC",
|
|
15
|
-
"repository": {
|
|
16
|
-
"type": "git",
|
|
17
|
-
"url": "git+ssh://git@bitbucket.org/bprtsk/aso-core.git"
|
|
18
|
-
},
|
|
19
|
-
"bugs": {
|
|
20
|
-
"url": "https://bitbucket.org/bprtsk/aso-core/issues"
|
|
21
|
-
},
|
|
22
|
-
"homepage": "https://bitbucket.org/bprtsk/aso-core#readme",
|
|
23
|
-
"description": "",
|
|
24
|
-
"dependencies": {
|
|
25
|
-
"@types/axios": "^0.14.0",
|
|
26
|
-
"@types/module-alias": "^2.0.1",
|
|
27
|
-
"@types/mongoose": "^5.11.97",
|
|
28
|
-
"@types/node-ssh": "^7.0.6",
|
|
29
|
-
"@types/
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"styled-components": "^5.3.9"
|
|
40
|
-
},
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@types/
|
|
43
|
-
"typedoc": "^0.23.28",
|
|
44
|
-
"typescript": "^4.
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@bprotsyk/aso-core",
|
|
3
|
+
"version": "1.2.237",
|
|
4
|
+
"main": "lib/index.js",
|
|
5
|
+
"types": "lib/index.d.ts",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"prod": "tsc; git add .; git commit -m \"Stub\"; git push origin master; npm version patch; npm publish;",
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
10
|
+
"keitaro": "tsc; node lib/utils/keitaro-utils.js",
|
|
11
|
+
"server": "tsc; node lib/utils/server-util.js"
|
|
12
|
+
},
|
|
13
|
+
"author": "bprotsyk",
|
|
14
|
+
"license": "ISC",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+ssh://git@bitbucket.org/bprtsk/aso-core.git"
|
|
18
|
+
},
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://bitbucket.org/bprtsk/aso-core/issues"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://bitbucket.org/bprtsk/aso-core#readme",
|
|
23
|
+
"description": "",
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@types/axios": "^0.14.0",
|
|
26
|
+
"@types/module-alias": "^2.0.1",
|
|
27
|
+
"@types/mongoose": "^5.11.97",
|
|
28
|
+
"@types/node-ssh": "^7.0.6",
|
|
29
|
+
"@types/styled-components": "^5.1.26",
|
|
30
|
+
"axios": "^1.4.0",
|
|
31
|
+
"module-alias": "^2.2.2",
|
|
32
|
+
"mongoose": "^6.8.3",
|
|
33
|
+
"mustache": "^4.2.0",
|
|
34
|
+
"node-ssh": "^13.2.0",
|
|
35
|
+
"react": "^18.2.0",
|
|
36
|
+
"replace-in-file": "^7.0.1",
|
|
37
|
+
"sleep-promise": "^9.1.0",
|
|
38
|
+
"ssh2-sftp-client": "^10.0.3",
|
|
39
|
+
"styled-components": "^5.3.9"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/mustache": "^4.2.5",
|
|
43
|
+
"typedoc": "^0.23.28",
|
|
44
|
+
"typescript": "^4.8.0-dev.20220623"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
export enum AlternativeNetworkTool {
|
|
2
|
-
RETROFIT = "Retrofit",
|
|
3
|
-
VOLLEY = "Volley",
|
|
4
|
-
HTTP_URL = "HTTPUrlConnection",
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export enum AlternativeLogicType {
|
|
8
|
-
CALLBACKS = "Callback",
|
|
9
|
-
RX = "RX",
|
|
10
|
-
COROUTINES = "Coroutines",
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export enum AlternativeNavigation {
|
|
14
|
-
ACTIVITY = "Activity",
|
|
15
|
-
FRAGMENT_FM = "Fragment",
|
|
16
|
-
FRAGMENT_NAV_HOST = "Fragment (NavHost)",
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export enum AlternativeStorageType {
|
|
20
|
-
FILE = "File",
|
|
21
|
-
ROOM = "Room",
|
|
22
|
-
ENCRYPTED_PREFS = "Encrypted Preferences",
|
|
23
|
-
SHARED_PREFERENCES = "Shared Preferences",
|
|
24
|
-
CONTENT_PROVIDER = "Content Provider",
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export enum AlternativeLayoutType {
|
|
28
|
-
DATA_BINDING = "DataBinding",
|
|
29
|
-
BY_ID = "findViewById",
|
|
30
|
-
PROGRAMATICALLY = "Create in code"
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export enum AlternativeFullscreen {
|
|
34
|
-
INSETS = "Insets",
|
|
35
|
-
FLAGS = "Flags",
|
|
36
|
-
IMMERSIVE = "Immersive"
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export enum AlternativeSourceType {
|
|
40
|
-
FIREBASE_REALTIME_DATABASE = "Firebase Realtime DB",
|
|
41
|
-
GET_RETROFIT = "From link via Retrofit",
|
|
42
|
-
GET_VOLLEY = "From link via Volley",
|
|
43
|
-
GET_HTTP_URL = "From link via HTTPUrlConnection",
|
|
44
|
-
DIRECT = "Directly from link"
|
|
45
|
-
// WITHIN_WEBVIEW = "Within webview",
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// backpress
|
|
49
|
-
// activity result
|
|
50
|
-
// fulscreen
|
|
51
|
-
|
|
52
|
-
export enum AlternativeOnBackPressed {
|
|
53
|
-
OLD = "Old",
|
|
54
|
-
NEW = "New"
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export enum AlternativeOnActivityResult {
|
|
58
|
-
OVERRIDE = "Override",
|
|
59
|
-
CALLBACK = "Callback"
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export interface IAppIntegration {
|
|
63
|
-
id: number,
|
|
64
|
-
name: string,
|
|
65
|
-
description: string,
|
|
66
|
-
alterations: [any[]]
|
|
1
|
+
export enum AlternativeNetworkTool {
|
|
2
|
+
RETROFIT = "Retrofit",
|
|
3
|
+
VOLLEY = "Volley",
|
|
4
|
+
HTTP_URL = "HTTPUrlConnection",
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export enum AlternativeLogicType {
|
|
8
|
+
CALLBACKS = "Callback",
|
|
9
|
+
RX = "RX",
|
|
10
|
+
COROUTINES = "Coroutines",
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export enum AlternativeNavigation {
|
|
14
|
+
ACTIVITY = "Activity",
|
|
15
|
+
FRAGMENT_FM = "Fragment",
|
|
16
|
+
FRAGMENT_NAV_HOST = "Fragment (NavHost)",
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export enum AlternativeStorageType {
|
|
20
|
+
FILE = "File",
|
|
21
|
+
ROOM = "Room",
|
|
22
|
+
ENCRYPTED_PREFS = "Encrypted Preferences",
|
|
23
|
+
SHARED_PREFERENCES = "Shared Preferences",
|
|
24
|
+
CONTENT_PROVIDER = "Content Provider",
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export enum AlternativeLayoutType {
|
|
28
|
+
DATA_BINDING = "DataBinding",
|
|
29
|
+
BY_ID = "findViewById",
|
|
30
|
+
PROGRAMATICALLY = "Create in code"
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export enum AlternativeFullscreen {
|
|
34
|
+
INSETS = "Insets",
|
|
35
|
+
FLAGS = "Flags",
|
|
36
|
+
IMMERSIVE = "Immersive"
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export enum AlternativeSourceType {
|
|
40
|
+
FIREBASE_REALTIME_DATABASE = "Firebase Realtime DB",
|
|
41
|
+
GET_RETROFIT = "From link via Retrofit",
|
|
42
|
+
GET_VOLLEY = "From link via Volley",
|
|
43
|
+
GET_HTTP_URL = "From link via HTTPUrlConnection",
|
|
44
|
+
DIRECT = "Directly from link"
|
|
45
|
+
// WITHIN_WEBVIEW = "Within webview",
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// backpress
|
|
49
|
+
// activity result
|
|
50
|
+
// fulscreen
|
|
51
|
+
|
|
52
|
+
export enum AlternativeOnBackPressed {
|
|
53
|
+
OLD = "Old",
|
|
54
|
+
NEW = "New"
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export enum AlternativeOnActivityResult {
|
|
58
|
+
OVERRIDE = "Override",
|
|
59
|
+
CALLBACK = "Callback"
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface IAppIntegration {
|
|
63
|
+
id: number,
|
|
64
|
+
name: string,
|
|
65
|
+
description: string,
|
|
66
|
+
alterations: [any[]]
|
|
67
67
|
}
|
package/src/app/app-list-item.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export interface IAppListItem {
|
|
2
|
-
id: number,
|
|
3
|
-
bundle: string,
|
|
4
|
-
name: string
|
|
1
|
+
export interface IAppListItem {
|
|
2
|
+
id: number,
|
|
3
|
+
bundle: string,
|
|
4
|
+
name: string
|
|
5
5
|
}
|
package/src/app/app-type.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export enum AppType {
|
|
2
|
-
GAMBLING = "gambling",
|
|
3
|
-
FINANCES = "finances" // do not change the order!
|
|
1
|
+
export enum AppType {
|
|
2
|
+
GAMBLING = "gambling",
|
|
3
|
+
FINANCES = "finances" // do not change the order!
|
|
4
4
|
}
|