incyclist-services 1.3.51 → 1.3.53
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/activities/base/index.d.ts +1 -1
- package/lib/activities/base/index.js +1 -1
- package/lib/activities/base/model/index.d.ts +10 -5
- package/lib/activities/base/model/index.js +2 -0
- package/lib/activities/base/repo/db.d.ts +5 -1
- package/lib/activities/base/repo/db.js +89 -1
- package/lib/activities/base/repo/migration/factory.d.ts +7 -0
- package/lib/activities/base/repo/migration/factory.js +25 -0
- package/lib/activities/base/repo/migration/folder.d.ts +0 -0
- package/lib/activities/base/repo/migration/folder.js +0 -0
- package/lib/activities/base/repo/migration/types.d.ts +15 -0
- package/lib/activities/base/repo/migration/types.js +17 -0
- package/lib/activities/base/repo/migration/v0 copy.d.ts +5 -0
- package/lib/activities/base/repo/migration/v0 copy.js +20 -0
- package/lib/activities/base/repo/migration/v0.d.ts +5 -0
- package/lib/activities/base/repo/migration/v0.js +18 -0
- package/lib/activities/base/repo/migration/v1 copy.d.ts +5 -0
- package/lib/activities/base/repo/migration/v1 copy.js +21 -0
- package/lib/activities/base/repo/migration/v1.d.ts +5 -0
- package/lib/activities/base/repo/migration/v1.js +19 -0
- package/lib/activities/base/repo/migration/v2.d.ts +5 -0
- package/lib/activities/base/repo/migration/v2.js +11 -0
- package/lib/activities/base/repo/migration/v3.d.ts +5 -0
- package/lib/activities/base/repo/migration/v3.js +27 -0
- package/lib/activities/base/utils/activity.d.ts +32 -0
- package/lib/activities/base/utils/activity.js +178 -0
- package/lib/activities/base/utils/helpers.d.ts +4 -0
- package/lib/activities/base/utils/helpers.js +66 -0
- package/lib/activities/base/utils/index.d.ts +2 -2
- package/lib/activities/base/utils/index.js +15 -21
- package/lib/activities/list/service.d.ts +16 -10
- package/lib/activities/list/service.js +69 -5
- package/lib/activities/list/types.d.ts +40 -0
- package/lib/activities/ride/service.js +6 -3
- package/lib/activities/upload/factory.d.ts +1 -0
- package/lib/activities/upload/factory.js +7 -0
- package/lib/activities/upload/strava.d.ts +1 -0
- package/lib/activities/upload/strava.js +16 -0
- package/lib/activities/upload/types.d.ts +2 -0
- package/lib/activities/upload/velohero.d.ts +6 -3
- package/lib/activities/upload/velohero.js +86 -37
- package/lib/api/repository/json/index.js +8 -0
- package/lib/apps/base/api/index.d.ts +1 -0
- package/lib/apps/base/api/index.js +1 -0
- package/lib/apps/base/api/velohero/api.d.ts +2 -2
- package/lib/apps/base/api/velohero/api.js +1 -1
- package/lib/apps/base/api/velohero/types.d.ts +2 -0
- package/lib/apps/base/index.d.ts +1 -0
- package/lib/apps/base/index.js +17 -0
- package/lib/apps/index.d.ts +2 -0
- package/lib/apps/index.js +18 -0
- package/lib/apps/service.d.ts +10 -0
- package/lib/apps/service.js +93 -0
- package/lib/apps/types.d.ts +6 -0
- package/lib/apps/types.js +2 -0
- package/lib/base/service.d.ts +3 -0
- package/lib/base/service.js +10 -1
- package/lib/base/types/singleton.js +9 -1
- package/lib/routes/base/parsers/incyclist.js +10 -2
- package/lib/routes/list/service.d.ts +1 -0
- package/lib/routes/list/service.js +9 -0
- package/lib/settings/user/service.d.ts +4 -0
- package/lib/settings/user/service.js +32 -25
- package/package.json +1 -1
|
@@ -16,6 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./repo"), exports);
|
|
18
18
|
__exportStar(require("./model"), exports);
|
|
19
|
-
__exportStar(require("./utils"), exports);
|
|
20
19
|
__exportStar(require("./convert"), exports);
|
|
21
20
|
__exportStar(require("./api/fitconvert"), exports);
|
|
21
|
+
__exportStar(require("./utils"), exports);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RoutePoint } from "../../../routes/base/types";
|
|
2
|
+
export declare const DEFAULT_ACTIVITY_TITLE = "Incyclist Ride";
|
|
2
3
|
export type ActivityUser = {
|
|
3
4
|
uuid?: string;
|
|
4
5
|
weight: number;
|
|
@@ -8,6 +9,7 @@ export type ActivityRoute = {
|
|
|
8
9
|
id?: string;
|
|
9
10
|
hash: string;
|
|
10
11
|
name: string;
|
|
12
|
+
title?: string;
|
|
11
13
|
};
|
|
12
14
|
export type ActivityStatsRecord = {
|
|
13
15
|
min: number;
|
|
@@ -26,12 +28,14 @@ export type ActivityStats = {
|
|
|
26
28
|
power: ActivityStatsRecord;
|
|
27
29
|
powerCurve?: Record<string, number>;
|
|
28
30
|
};
|
|
29
|
-
export
|
|
30
|
-
|
|
31
|
-
activity_id
|
|
32
|
-
|
|
31
|
+
export interface ActivityAppLink {
|
|
32
|
+
error?: string;
|
|
33
|
+
activity_id?: string;
|
|
34
|
+
url?: string;
|
|
35
|
+
}
|
|
33
36
|
export type ActivityAppLinks = {
|
|
34
|
-
strava?:
|
|
37
|
+
strava?: ActivityAppLink;
|
|
38
|
+
velohero?: ActivityAppLink;
|
|
35
39
|
};
|
|
36
40
|
export type ScreenShotInfo = {
|
|
37
41
|
fileName: string;
|
|
@@ -63,6 +67,7 @@ export type ActivitySummary = {
|
|
|
63
67
|
endPos?: number;
|
|
64
68
|
segment?: string;
|
|
65
69
|
realityFactor: number;
|
|
70
|
+
totalElevation: number;
|
|
66
71
|
uploadStatus: Array<UploadInfo>;
|
|
67
72
|
isCompleted?: boolean;
|
|
68
73
|
isSaved?: boolean;
|
|
@@ -3,7 +3,7 @@ import { JsonRepository } from "../../../api";
|
|
|
3
3
|
import { Observer, PromiseObserver } from "../../../base/types/observer";
|
|
4
4
|
import { ActivityDetails, ActivityInfo } from "../model";
|
|
5
5
|
import { ActivitySearchCriteria } from "./types";
|
|
6
|
-
export declare const DB_VERSION = "
|
|
6
|
+
export declare const DB_VERSION = "4";
|
|
7
7
|
export declare const DB_NAME = "db";
|
|
8
8
|
export declare class ActivitiesRepository {
|
|
9
9
|
protected repo: JsonRepository;
|
|
@@ -18,6 +18,8 @@ export declare class ActivitiesRepository {
|
|
|
18
18
|
load(): Observer;
|
|
19
19
|
stopLoad(): void;
|
|
20
20
|
save(activity: ActivityInfo, writeDetails?: boolean): Promise<void>;
|
|
21
|
+
migrate(activity: ActivityInfo, writeSummary?: boolean): ActivityDetails;
|
|
22
|
+
migrateDB(): Promise<void>;
|
|
21
23
|
getFilename(activityName: string): string;
|
|
22
24
|
delete(activity: ActivityInfo | string): Promise<void>;
|
|
23
25
|
get(id: string): ActivityInfo;
|
|
@@ -43,6 +45,7 @@ export declare class ActivitiesRepository {
|
|
|
43
45
|
protected listActivities(): Promise<Array<string>>;
|
|
44
46
|
protected fixMissingHash(): Promise<void>;
|
|
45
47
|
protected loadDetailsByName(name: string): Promise<ActivityDetails>;
|
|
48
|
+
protected loadDetailsById(id: string): Promise<ActivityDetails>;
|
|
46
49
|
protected loadDetails(name: string, id?: string): Promise<void>;
|
|
47
50
|
protected bulkAddActivities(names: Array<string>): Promise<void>;
|
|
48
51
|
protected writeDetails(activity: ActivityInfo): Promise<void>;
|
|
@@ -51,4 +54,5 @@ export declare class ActivitiesRepository {
|
|
|
51
54
|
protected getActivity(id: string): ActivityInfo;
|
|
52
55
|
protected logError(err: Error, fn: string, logProps?: any): void;
|
|
53
56
|
protected getRepo(): JsonRepository;
|
|
57
|
+
protected getRouteList(): import("../../../routes").RouteListService;
|
|
54
58
|
}
|
|
@@ -54,7 +54,9 @@ const types_1 = require("../../../base/types");
|
|
|
54
54
|
const observer_1 = require("../../../base/types/observer");
|
|
55
55
|
const utils_1 = require("../../../utils");
|
|
56
56
|
const utils_2 = require("../utils");
|
|
57
|
-
|
|
57
|
+
const routes_1 = require("../../../routes");
|
|
58
|
+
const factory_1 = require("./migration/factory");
|
|
59
|
+
exports.DB_VERSION = '4';
|
|
58
60
|
exports.DB_NAME = 'db';
|
|
59
61
|
let ActivitiesRepository = (() => {
|
|
60
62
|
let _classDecorators = [types_1.Singleton];
|
|
@@ -100,6 +102,73 @@ let ActivitiesRepository = (() => {
|
|
|
100
102
|
}
|
|
101
103
|
});
|
|
102
104
|
}
|
|
105
|
+
migrate(activity, writeSummary = true) {
|
|
106
|
+
try {
|
|
107
|
+
const { details } = activity !== null && activity !== void 0 ? activity : {};
|
|
108
|
+
if (!details)
|
|
109
|
+
return;
|
|
110
|
+
let summaryChanged = false;
|
|
111
|
+
let detailsChanged = false;
|
|
112
|
+
const { version } = details;
|
|
113
|
+
if (version === exports.DB_VERSION)
|
|
114
|
+
return details;
|
|
115
|
+
const verNo = version === undefined ? 0 : Number(version);
|
|
116
|
+
const currentVerNo = Number(exports.DB_VERSION);
|
|
117
|
+
factory_1.ActivitiesDBMigratorFactory.inject('repo', this);
|
|
118
|
+
factory_1.ActivitiesDBMigratorFactory.inject('routeList', this.getRouteList());
|
|
119
|
+
for (let i = 1; i <= currentVerNo; i++) {
|
|
120
|
+
if (verNo < i) {
|
|
121
|
+
const migrater = factory_1.ActivitiesDBMigratorFactory.create(i - 1);
|
|
122
|
+
if (migrater) {
|
|
123
|
+
const res = migrater.migrate(activity);
|
|
124
|
+
summaryChanged = summaryChanged || (res === null || res === void 0 ? void 0 : res.summaryChanged);
|
|
125
|
+
detailsChanged = detailsChanged || (res === null || res === void 0 ? void 0 : res.detailsChanged);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
details.version = exports.DB_VERSION;
|
|
130
|
+
this.writeDetails(activity);
|
|
131
|
+
if (summaryChanged && writeSummary) {
|
|
132
|
+
this.writeRepo();
|
|
133
|
+
}
|
|
134
|
+
return details;
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
this.logError(err, 'migrate', { activity });
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
migrateDB() {
|
|
141
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
142
|
+
let deleted = [];
|
|
143
|
+
try {
|
|
144
|
+
const promises = [];
|
|
145
|
+
this.activities.forEach(activity => {
|
|
146
|
+
if (activity.details) {
|
|
147
|
+
const details = this.migrate(activity);
|
|
148
|
+
activity.summary = (0, utils_2.buildSummary)(details !== null && details !== void 0 ? details : activity.details);
|
|
149
|
+
}
|
|
150
|
+
else
|
|
151
|
+
promises.push(this.loadDetailsById(activity.summary.id).then((details) => {
|
|
152
|
+
if (!details) {
|
|
153
|
+
deleted.push(activity.summary.id);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const updated = Object.assign(Object.assign({}, activity), { details });
|
|
157
|
+
const updatedDetails = this.migrate(updated, false);
|
|
158
|
+
activity.summary = (0, utils_2.buildSummary)(updatedDetails !== null && updatedDetails !== void 0 ? updatedDetails : details);
|
|
159
|
+
}));
|
|
160
|
+
});
|
|
161
|
+
yield Promise.allSettled(promises);
|
|
162
|
+
if (deleted.length) {
|
|
163
|
+
this.activities = this.activities.filter(ai => !deleted.includes(ai.summary.id));
|
|
164
|
+
}
|
|
165
|
+
yield this.writeRepo();
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
this.logError(err, 'migrateDB');
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
103
172
|
getFilename(activityName) {
|
|
104
173
|
const baseDir = this.getRepo().getPath();
|
|
105
174
|
const path = (0, api_1.getBindings)().path;
|
|
@@ -302,6 +371,16 @@ let ActivitiesRepository = (() => {
|
|
|
302
371
|
this.write(true);
|
|
303
372
|
}
|
|
304
373
|
yield this.fixMissingHash();
|
|
374
|
+
if (dbData.version !== exports.DB_VERSION) {
|
|
375
|
+
this.logger.logEvent({ message: 'migrating activities database', from: exports.DB_VERSION, to: exports.DB_VERSION });
|
|
376
|
+
try {
|
|
377
|
+
yield this.migrateDB();
|
|
378
|
+
this.logger.logEvent({ message: 'finished migrating activities database', from: exports.DB_VERSION, to: exports.DB_VERSION });
|
|
379
|
+
}
|
|
380
|
+
catch (err) {
|
|
381
|
+
this.logError(err, 'loadSummaries');
|
|
382
|
+
}
|
|
383
|
+
}
|
|
305
384
|
return;
|
|
306
385
|
}
|
|
307
386
|
yield this.buildFromLegacy();
|
|
@@ -354,6 +433,12 @@ let ActivitiesRepository = (() => {
|
|
|
354
433
|
return details;
|
|
355
434
|
});
|
|
356
435
|
}
|
|
436
|
+
loadDetailsById(id) {
|
|
437
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
438
|
+
const activity = this.getActivity(id);
|
|
439
|
+
return yield this.loadDetailsByName(activity.summary.name);
|
|
440
|
+
});
|
|
441
|
+
}
|
|
357
442
|
loadDetails(name, id) {
|
|
358
443
|
return __awaiter(this, void 0, void 0, function* () {
|
|
359
444
|
const details = yield this.loadDetailsByName(name);
|
|
@@ -431,6 +516,9 @@ let ActivitiesRepository = (() => {
|
|
|
431
516
|
this.repo = api_1.JsonRepository.create('activities');
|
|
432
517
|
return this.repo;
|
|
433
518
|
}
|
|
519
|
+
getRouteList() {
|
|
520
|
+
return (0, routes_1.useRouteList)();
|
|
521
|
+
}
|
|
434
522
|
};
|
|
435
523
|
__setFunctionName(_classThis, "ActivitiesRepository");
|
|
436
524
|
(() => {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActivitiesDBMigrator, IActivityDBMigrator } from "./types";
|
|
2
|
+
export declare class ActivitiesDBMigratorFactory {
|
|
3
|
+
static readonly migrators: Array<typeof ActivitiesDBMigrator>;
|
|
4
|
+
static readonly injected: Record<string, any>;
|
|
5
|
+
static inject(string: any, value: any): void;
|
|
6
|
+
static create(version: number): IActivityDBMigrator;
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActivitiesDBMigratorFactory = void 0;
|
|
4
|
+
const v0_1 = require("./v0");
|
|
5
|
+
const v1_1 = require("./v1");
|
|
6
|
+
const v2_1 = require("./v2");
|
|
7
|
+
const v3_1 = require("./v3");
|
|
8
|
+
class ActivitiesDBMigratorFactory {
|
|
9
|
+
static inject(string, value) {
|
|
10
|
+
this.injected[string] = value;
|
|
11
|
+
}
|
|
12
|
+
static create(version) {
|
|
13
|
+
const Migrator = this.migrators[version];
|
|
14
|
+
if (Migrator)
|
|
15
|
+
return new Migrator(this.injected);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ActivitiesDBMigratorFactory = ActivitiesDBMigratorFactory;
|
|
19
|
+
ActivitiesDBMigratorFactory.migrators = [
|
|
20
|
+
v0_1.MigrationV0,
|
|
21
|
+
v1_1.MigrationV1,
|
|
22
|
+
v2_1.MigrationV2,
|
|
23
|
+
v3_1.MigrationV3
|
|
24
|
+
];
|
|
25
|
+
ActivitiesDBMigratorFactory.injected = {};
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RouteListService } from "../../../../routes";
|
|
2
|
+
import { ActivityInfo } from "../../model";
|
|
3
|
+
export type MigrationResult = {
|
|
4
|
+
summaryChanged?: boolean;
|
|
5
|
+
detailsChanged?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export interface IActivityDBMigrator {
|
|
8
|
+
migrate(activity: ActivityInfo): MigrationResult;
|
|
9
|
+
}
|
|
10
|
+
export declare class ActivitiesDBMigrator implements IActivityDBMigrator {
|
|
11
|
+
protected injected: Record<string, any>;
|
|
12
|
+
constructor(injected?: Record<string, any>);
|
|
13
|
+
migrate(activity: ActivityInfo): MigrationResult;
|
|
14
|
+
getRouteList(): RouteListService;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActivitiesDBMigrator = void 0;
|
|
4
|
+
const routes_1 = require("../../../../routes");
|
|
5
|
+
class ActivitiesDBMigrator {
|
|
6
|
+
constructor(injected = {}) {
|
|
7
|
+
this.injected = injected;
|
|
8
|
+
}
|
|
9
|
+
migrate(activity) {
|
|
10
|
+
throw new Error("Method not implemented.");
|
|
11
|
+
}
|
|
12
|
+
getRouteList() {
|
|
13
|
+
var _a;
|
|
14
|
+
return (_a = this.injected['routeList']) !== null && _a !== void 0 ? _a : (0, routes_1.useRouteList)();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ActivitiesDBMigrator = ActivitiesDBMigrator;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationV0 = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
class MigrationV0 extends types_1.ActivitiesDBMigrator {
|
|
7
|
+
migrate(activity) {
|
|
8
|
+
if (!activity)
|
|
9
|
+
return {};
|
|
10
|
+
const { summary, details } = activity;
|
|
11
|
+
details.logs.forEach(log => {
|
|
12
|
+
log.lng = log.lon;
|
|
13
|
+
delete log.lon;
|
|
14
|
+
});
|
|
15
|
+
details.name = summary.name;
|
|
16
|
+
details.totalElevation = summary.totalElevation = (0, utils_1.getTotalElevation)(details);
|
|
17
|
+
return { summaryChanged: true };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.MigrationV0 = MigrationV0;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationV0 = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
class MigrationV0 extends types_1.ActivitiesDBMigrator {
|
|
7
|
+
migrate(activity) {
|
|
8
|
+
const { summary, details } = activity;
|
|
9
|
+
details.logs.forEach(log => {
|
|
10
|
+
log.lng = log.lon;
|
|
11
|
+
delete log.lon;
|
|
12
|
+
});
|
|
13
|
+
details.name = summary.name;
|
|
14
|
+
details.totalElevation = summary.totalElevation = (0, utils_1.getTotalElevation)(details);
|
|
15
|
+
return { summaryChanged: true };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.MigrationV0 = MigrationV0;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationV1 = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
class MigrationV1 extends types_1.ActivitiesDBMigrator {
|
|
6
|
+
migrate(activity) {
|
|
7
|
+
if (!activity)
|
|
8
|
+
return {};
|
|
9
|
+
const { summary, details } = activity;
|
|
10
|
+
let detailsChanged = false;
|
|
11
|
+
if (details.routeType === 'Video' && details.route) {
|
|
12
|
+
const route = this.getRouteList().getRouteDescription(details.route.id);
|
|
13
|
+
if (route.originalName) {
|
|
14
|
+
details.route.name = route.originalName;
|
|
15
|
+
detailsChanged = true;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return { detailsChanged };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.MigrationV1 = MigrationV1;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationV1 = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
class MigrationV1 extends types_1.ActivitiesDBMigrator {
|
|
6
|
+
migrate(activity) {
|
|
7
|
+
const { details } = activity;
|
|
8
|
+
let detailsChanged = false;
|
|
9
|
+
if (details.routeType === 'Video' && details.route) {
|
|
10
|
+
const route = this.getRouteList().getRouteDescription(details.route.id);
|
|
11
|
+
if (route === null || route === void 0 ? void 0 : route.originalName) {
|
|
12
|
+
details.route.name = route.originalName;
|
|
13
|
+
detailsChanged = true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return { detailsChanged };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.MigrationV1 = MigrationV1;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationV2 = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
class MigrationV2 extends types_1.ActivitiesDBMigrator {
|
|
6
|
+
migrate(activity) {
|
|
7
|
+
activity.details.startTime = new Date(activity.details.startTime).toISOString();
|
|
8
|
+
return { detailsChanged: true };
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MigrationV2 = MigrationV2;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationV3 = void 0;
|
|
4
|
+
const model_1 = require("../../model");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
class MigrationV3 extends types_1.ActivitiesDBMigrator {
|
|
7
|
+
migrate(activity) {
|
|
8
|
+
const { summary, details } = activity;
|
|
9
|
+
let detailsChanged = false;
|
|
10
|
+
if (details.routeType === 'Video' && details.route) {
|
|
11
|
+
const route = this.getRouteList().getRouteDescription(details.route.id);
|
|
12
|
+
if (route === null || route === void 0 ? void 0 : route.title) {
|
|
13
|
+
details.route.title = route.title;
|
|
14
|
+
detailsChanged = true;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (summary.title === model_1.DEFAULT_ACTIVITY_TITLE) {
|
|
18
|
+
if (details.routeType === 'Video' && details.route)
|
|
19
|
+
summary.title = details.route.title;
|
|
20
|
+
else if (details.route)
|
|
21
|
+
summary.title = details.route.name;
|
|
22
|
+
}
|
|
23
|
+
summary.totalElevation = details.totalElevation;
|
|
24
|
+
return { detailsChanged, summaryChanged: true };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.MigrationV3 = MigrationV3;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PromiseObserver } from "../../../base/types";
|
|
2
|
+
import { DisplayExportInfo, DisplayUploadInfo } from "../../list";
|
|
3
|
+
import { ActivityInfo } from "../model";
|
|
4
|
+
import { ActivitiesRepository } from "../repo";
|
|
5
|
+
import { RouteCard, RouteSettings } from "../../../routes/list/cards/RouteCard";
|
|
6
|
+
import { OnlineStateMonitoringService } from "../../../monitoring";
|
|
7
|
+
export declare class Activity implements ActivityInfo {
|
|
8
|
+
protected info: ActivityInfo;
|
|
9
|
+
protected loadingObserver: PromiseObserver<void>;
|
|
10
|
+
constructor(info: ActivityInfo);
|
|
11
|
+
get summary(): import("../model").ActivitySummary;
|
|
12
|
+
set summary(summary: import("../model").ActivitySummary);
|
|
13
|
+
get details(): import("../model").ActivityDetails;
|
|
14
|
+
set details(details: import("../model").ActivityDetails);
|
|
15
|
+
get id(): string;
|
|
16
|
+
setLoading(loading: PromiseObserver<void>): void;
|
|
17
|
+
isLoading(): boolean;
|
|
18
|
+
load(): Promise<void>;
|
|
19
|
+
isComplete(): boolean;
|
|
20
|
+
getTitle(): string;
|
|
21
|
+
getElevation(): number;
|
|
22
|
+
getExports(): Array<DisplayExportInfo>;
|
|
23
|
+
isRouteAvailable(): boolean;
|
|
24
|
+
getUploadStatus(): Array<DisplayUploadInfo>;
|
|
25
|
+
canStart(): boolean;
|
|
26
|
+
getRouteCard(): RouteCard;
|
|
27
|
+
createStartSettings(): RouteSettings;
|
|
28
|
+
protected getOnlineMonitoring(): OnlineStateMonitoringService;
|
|
29
|
+
protected save(): Promise<void>;
|
|
30
|
+
protected getRepo(): ActivitiesRepository;
|
|
31
|
+
protected getAppsService(): import("../../../apps").AppsService;
|
|
32
|
+
}
|