ropegeo-common 1.18.3 → 1.19.1
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 +21 -7
- package/dist/download/dependencies/downloadDependencyKeys.d.ts +1 -0
- package/dist/download/dependencies/downloadDependencyKeys.d.ts.map +1 -1
- package/dist/download/dependencies/downloadDependencyKeys.js +1 -0
- package/dist/download/dependencies/fetchDownloadFolderTaskDependency.d.ts +14 -0
- package/dist/download/dependencies/fetchDownloadFolderTaskDependency.d.ts.map +1 -0
- package/dist/download/dependencies/fetchDownloadFolderTaskDependency.js +31 -0
- package/dist/download/helpers/downloadDependencyRegistry.d.ts.map +1 -1
- package/dist/download/helpers/downloadDependencyRegistry.js +2 -0
- package/dist/download/helpers/downloadPhaseTitles.d.ts.map +1 -1
- package/dist/download/helpers/downloadPhaseTitles.js +4 -0
- package/dist/download/helpers/downloadTaskRegistry.d.ts.map +1 -1
- package/dist/download/helpers/downloadTaskRegistry.js +2 -0
- package/dist/download/index.d.ts +2 -2
- package/dist/download/index.d.ts.map +1 -1
- package/dist/download/index.js +5 -5
- package/dist/download/tasks/fetchDownloadFolderTask.d.ts +14 -0
- package/dist/download/tasks/fetchDownloadFolderTask.d.ts.map +1 -0
- package/dist/download/tasks/fetchDownloadFolderTask.js +113 -0
- package/dist/download/tasks/fetchPageJsonTask.d.ts.map +1 -1
- package/dist/download/tasks/fetchPageJsonTask.js +4 -6
- package/dist/download/tasks/fetchRopeGeoTileFilesTask.d.ts.map +1 -1
- package/dist/download/tasks/fetchRopeGeoTileFilesTask.js +3 -2
- package/dist/download/tasks/saveOfflinePageTask.js +2 -2
- package/dist/download/types.d.ts +5 -0
- package/dist/download/types.d.ts.map +1 -1
- package/dist/helpers/hydrateOfflinePageWirePaths.d.ts +3 -0
- package/dist/helpers/hydrateOfflinePageWirePaths.d.ts.map +1 -0
- package/dist/helpers/hydrateOfflinePageWirePaths.js +47 -0
- package/dist/helpers/index.d.ts +2 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +10 -1
- package/dist/helpers/offlinePageBundlePaths.d.ts +12 -0
- package/dist/helpers/offlinePageBundlePaths.d.ts.map +1 -0
- package/dist/helpers/offlinePageBundlePaths.js +34 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +4 -2
- package/dist/models/minimap/abstract/onlineMiniMap.d.ts +6 -0
- package/dist/models/minimap/abstract/onlineMiniMap.d.ts.map +1 -1
- package/dist/models/minimap/abstract/pageMiniMap.d.ts +5 -1
- package/dist/models/minimap/abstract/pageMiniMap.d.ts.map +1 -1
- package/dist/models/minimap/abstract/pageMiniMap.js +16 -1
- package/dist/models/minimap/concrete/offlinePageMiniMap.d.ts +1 -1
- package/dist/models/minimap/concrete/offlinePageMiniMap.d.ts.map +1 -1
- package/dist/models/minimap/concrete/offlinePageMiniMap.js +3 -2
- package/dist/models/minimap/concrete/onlineCenteredRegionMiniMap.d.ts +1 -0
- package/dist/models/minimap/concrete/onlineCenteredRegionMiniMap.d.ts.map +1 -1
- package/dist/models/minimap/concrete/onlineCenteredRegionMiniMap.js +3 -0
- package/dist/models/minimap/concrete/onlinePageMiniMap.d.ts +1 -1
- package/dist/models/minimap/concrete/onlinePageMiniMap.d.ts.map +1 -1
- package/dist/models/minimap/concrete/onlinePageMiniMap.js +3 -3
- package/dist/models/minimap/concrete/onlineRegionMiniMap.d.ts +3 -0
- package/dist/models/minimap/concrete/onlineRegionMiniMap.d.ts.map +1 -1
- package/dist/models/minimap/concrete/onlineRegionMiniMap.js +7 -0
- package/dist/models/pageViews/offlinePageView.d.ts +5 -2
- package/dist/models/pageViews/offlinePageView.d.ts.map +1 -1
- package/dist/models/pageViews/offlineRopewikiPageView.d.ts +3 -2
- package/dist/models/pageViews/offlineRopewikiPageView.d.ts.map +1 -1
- package/dist/models/pageViews/offlineRopewikiPageView.js +18 -4
- package/dist/models/pageViews/onlinePageView.d.ts +9 -4
- package/dist/models/pageViews/onlinePageView.d.ts.map +1 -1
- package/dist/models/pageViews/onlineRopewikiPageView.d.ts +16 -7
- package/dist/models/pageViews/onlineRopewikiPageView.d.ts.map +1 -1
- package/dist/models/pageViews/onlineRopewikiPageView.js +268 -38
- package/dist/models/pageViews/pageView.d.ts +13 -0
- package/dist/models/pageViews/pageView.d.ts.map +1 -0
- package/dist/models/pageViews/pageView.js +55 -0
- package/dist/models/pageViews/registerPageViewParsers.d.ts +1 -0
- package/dist/models/pageViews/registerPageViewParsers.d.ts.map +1 -1
- package/dist/models/pageViews/registerPageViewParsers.js +1 -0
- package/dist/models/pageViews/ropewikiPageView.d.ts +2 -4
- package/dist/models/pageViews/ropewikiPageView.d.ts.map +1 -1
- package/dist/models/pageViews/ropewikiPageView.js +4 -11
- package/dist/models/previews/onlinePagePreview.d.ts +2 -1
- package/dist/models/previews/onlinePagePreview.d.ts.map +1 -1
- package/dist/models/previews/onlinePagePreview.js +29 -1
- package/package.json +1 -1
- package/dist/download/helpers/planDownloadPhases.d.ts +0 -4
- package/dist/download/helpers/planDownloadPhases.d.ts.map +0 -1
- package/dist/download/helpers/planDownloadPhases.js +0 -69
- package/dist/download/helpers/seedConsumerDependencies.d.ts +0 -5
- package/dist/download/helpers/seedConsumerDependencies.d.ts.map +0 -1
- package/dist/download/helpers/seedConsumerDependencies.js +0 -77
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ npm install ropegeo-common
|
|
|
12
12
|
|
|
13
13
|
- **Models** — `import { … } from 'ropegeo-common/models'` (or `import type { … }` for symbols that are type-only in TypeScript). The package root `ropegeo-common` re-exports everything from `./models` for convenience. The subpath `ropegeo-common/classes` is kept as an alias of `./models` for older imports until dependents switch over.
|
|
14
14
|
- **Helpers** — `import { … } from 'ropegeo-common/helpers'` (and `import type { … }` for helper types such as `GetS3ObjectResult`). The full barrel includes Node-only modules (S3 folder upload uses `fs`); **React Native / Metro** should use **`ropegeo-common/helpers/network`** (sources under `src/helpers/network/`, barrel `index.ts`) for the request-timeout / abort helpers only (`NETWORK_REQUEST_*`, `installNetworkRequestPolicyTimers`, `mergeParentSignalWithDeadline`, `resolveRequestTimeoutMs`, `isAbortError`, `isNetworkRequestTimeoutError`, and related types).
|
|
15
|
-
- **Download** — `import { … } from 'ropegeo-common/download'` for job orchestration (`DownloadJobQueue`, `DownloadJob`, tasks, dependencies). Not re-exported from `ropegeo-common/models`. Mobile implements `DownloadPlatformHarness` in its own `lib/download/` folder.
|
|
15
|
+
- **Download** — `import { … } from 'ropegeo-common/download'` for job orchestration (`DownloadJobQueue`, `DownloadJob`, tasks, dependencies). Not re-exported from `ropegeo-common/models`. Mobile implements `DownloadPlatformHarness` in its own `lib/download/` folder (including `paths.pageJson` for the offline page JSON filename/location).
|
|
16
16
|
|
|
17
17
|
Helper tables use columns **Name**, **Description**, **Import**. Model tables add **Base class** after **Name** (`N/A` for enums, TypeScript-only type aliases, constants, registration functions, and classes without an exported superclass; otherwise the direct superclass).
|
|
18
18
|
|
|
@@ -69,6 +69,19 @@ Helper tables use columns **Name**, **Description**, **Import**. Model tables ad
|
|
|
69
69
|
| --- | --- | --- |
|
|
70
70
|
| `createCloudFrontInvalidation` | Creates a CloudFront cache invalidation for the given distribution paths. | `import { createCloudFrontInvalidation } from 'ropegeo-common/helpers'` |
|
|
71
71
|
|
|
72
|
+
### Offline page bundle paths (`src/helpers/offlinePageBundlePaths.ts`)
|
|
73
|
+
|
|
74
|
+
Shared relative paths for server-built ZIP bundles and client on-disk storage. Backend zipper and mobile extract both use the same layout under the page root. The page JSON filename comes from `DownloadPlatformHarness.paths.pageJson`. Bundle extraction resolves absolute paths via `OnlinePageView.toOfflineFromExtractedBundle()` (no wire hydration).
|
|
75
|
+
|
|
76
|
+
| Name | Description | Import |
|
|
77
|
+
| --- | --- | --- |
|
|
78
|
+
| `imageFileRelativePath` | Relative path for a downloaded image slot. | `import { imageFileRelativePath } from 'ropegeo-common/helpers'` |
|
|
79
|
+
| `tileFileRelativePath` | Relative path for a vector tile (`.pbf`). | `import { tileFileRelativePath } from 'ropegeo-common/helpers'` |
|
|
80
|
+
| `offlineTilesTemplateRelative` | Mapbox-style tile URL template with `{z}/{x}/{y}` placeholders. | `import { offlineTilesTemplateRelative } from 'ropegeo-common/helpers'` |
|
|
81
|
+
| `regionRoutesGeojsonRelativePath` | Relative path for centered-region routes GeoJSON. | `import { regionRoutesGeojsonRelativePath } from 'ropegeo-common/helpers'` |
|
|
82
|
+
| `joinPageRootUri` | Joins page root URI with a relative bundle path. | `import { joinPageRootUri } from 'ropegeo-common/helpers'` |
|
|
83
|
+
| `hydrateOfflinePageWirePaths` | Rewrites relative paths in offline page wire JSON to absolute URIs (used by `OfflineRopewikiPageView.fromResult`). | `import { hydrateOfflinePageWirePaths } from 'ropegeo-common/helpers'` |
|
|
84
|
+
|
|
72
85
|
---
|
|
73
86
|
|
|
74
87
|
### Core enums (`src/models/` root files)
|
|
@@ -187,11 +200,12 @@ Helper tables use columns **Name**, **Description**, **Import**. Model tables ad
|
|
|
187
200
|
|
|
188
201
|
| Name | Base class | Description | Import |
|
|
189
202
|
| --- | --- | --- | --- |
|
|
203
|
+
| `PageView` | N/A | Registry: `fromResult()` → `OnlinePageView`, `fromOfflineResult()` → `OfflinePageView`. | `import { PageView } from 'ropegeo-common/models'` |
|
|
190
204
|
| `RopewikiPageView` | `BaseRopewikiPageView` | Backward-compatible alias exported as the online page view class. | `import { RopewikiPageView } from 'ropegeo-common/models'` |
|
|
191
|
-
| `BaseRopewikiPageView` | N/A | Abstract Ropewiki page view base
|
|
192
|
-
| `OnlineRopewikiPageView` | `BaseRopewikiPageView` | Online Ropewiki page view
|
|
205
|
+
| `BaseRopewikiPageView` | N/A | Abstract Ropewiki page view base with shared validation/fields. | `import { BaseRopewikiPageView } from 'ropegeo-common/models'` |
|
|
206
|
+
| `OnlineRopewikiPageView` | `BaseRopewikiPageView` | Online Ropewiki page view: `planDownloadPhases()`, `getDependenciesForPhases()`, `toOfflineFromExtractedBundle()`. | `import { OnlineRopewikiPageView } from 'ropegeo-common/models'` |
|
|
193
207
|
| `OfflineRopewikiPageView` | `BaseRopewikiPageView` | Offline Ropewiki page view with downloaded paths and offline minimap variants. | `import { OfflineRopewikiPageView } from 'ropegeo-common/models'` |
|
|
194
|
-
| `OnlinePageView` | N/A | Interface for online page-view behavior (`toOffline`, `
|
|
208
|
+
| `OnlinePageView` | N/A | Interface for online page-view behavior (`planDownloadPhases`, `getDependenciesForPhases`, `toOffline`, `toDownloadJob`, etc.). | `import type { OnlinePageView } from 'ropegeo-common/models'` |
|
|
195
209
|
| `OfflinePageView` | N/A | Interface for offline page-view behavior (`toPagePreview`). | `import type { OfflinePageView } from 'ropegeo-common/models'` |
|
|
196
210
|
| `RopewikiPageViewResult` | `Result` | API result wrapping `RopewikiPageView`. | `import { RopewikiPageViewResult } from 'ropegeo-common/models'` |
|
|
197
211
|
|
|
@@ -287,10 +301,10 @@ Import from **`ropegeo-common/download`**. Platform I/O (Expo FileSystem, Mapbox
|
|
|
287
301
|
| `DownloadJobQueueStoredState` | Persisted queue envelope (`queueOrder`, `jobs`). | `import type { DownloadJobQueueStoredState } from 'ropegeo-common/download'` |
|
|
288
302
|
| `DownloadJobStoredState` | Persisted single in-flight job. | `import type { DownloadJobStoredState } from 'ropegeo-common/download'` |
|
|
289
303
|
| `DownloadDependencyKeys` | String keys for task dependency map entries. | `import { DownloadDependencyKeys } from 'ropegeo-common/download'` |
|
|
290
|
-
| `planDownloadPhases` | Builds content phases for a full `OnlineRopewikiPageView` (explore path). | `import { planDownloadPhases } from 'ropegeo-common/download'` |
|
|
291
|
-
| `seedConsumerDependencies` | Seeds dependency objects for tasks in a phase plan. | `import { seedConsumerDependencies } from 'ropegeo-common/download'` |
|
|
292
304
|
| `DeleteStoredPageTask` | Phase 1: delete existing offline bundle for the page. | `import { DeleteStoredPageTask } from 'ropegeo-common/download'` |
|
|
293
|
-
| `FetchPageJsonTask` | Preview path: fetch page JSON
|
|
305
|
+
| `FetchPageJsonTask` | Preview path: fetch page JSON, append `planDownloadPhases()`, seed `getDependenciesForPhases()`. | `import { FetchPageJsonTask } from 'ropegeo-common/download'` |
|
|
306
|
+
| `FetchDownloadFolderTask` | Bundle path: download ZIP, extract, `PageView.fromResult` + `toOfflineFromExtractedBundle`. | `import { FetchDownloadFolderTask } from 'ropegeo-common/download'` |
|
|
307
|
+
| `FetchDownloadFolderTaskDependency` | Dependency: `downloadFolderUrl`, `parallelMapbox`. | `import { FetchDownloadFolderTaskDependency } from 'ropegeo-common/download'` |
|
|
294
308
|
| `FetchImageFilesTask` | Download beta/banner image files. | `import { FetchImageFilesTask } from 'ropegeo-common/download'` |
|
|
295
309
|
| `FetchMapboxPackTask` | Download Mapbox offline pack for page minimap bounds. | `import { FetchMapboxPackTask } from 'ropegeo-common/download'` |
|
|
296
310
|
| `FetchRopeGeoTileListTask` | Parallel paginated tile key list fetches. | `import { FetchRopeGeoTileListTask } from 'ropegeo-common/download'` |
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const DownloadDependencyKeys: {
|
|
2
2
|
readonly FetchPageJson: "fetchPageJson";
|
|
3
|
+
readonly FetchDownloadFolder: "fetchDownloadFolder";
|
|
3
4
|
readonly FetchImageFiles: "fetchImageFiles";
|
|
4
5
|
readonly FetchMapboxPack: "fetchMapboxPack";
|
|
5
6
|
readonly FetchRopeGeoTileList: "fetchRopeGeoTileList";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadDependencyKeys.d.ts","sourceRoot":"","sources":["../../../src/download/dependencies/downloadDependencyKeys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"downloadDependencyKeys.d.ts","sourceRoot":"","sources":["../../../src/download/dependencies/downloadDependencyKeys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;;;;;;;;CAWzB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAC7B,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DownloadDependencyKeys = void 0;
|
|
4
4
|
exports.DownloadDependencyKeys = {
|
|
5
5
|
FetchPageJson: 'fetchPageJson',
|
|
6
|
+
FetchDownloadFolder: 'fetchDownloadFolder',
|
|
6
7
|
FetchImageFiles: 'fetchImageFiles',
|
|
7
8
|
FetchMapboxPack: 'fetchMapboxPack',
|
|
8
9
|
FetchRopeGeoTileList: 'fetchRopeGeoTileList',
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DownloadTaskDependency } from '../types';
|
|
2
|
+
export declare class FetchDownloadFolderTaskDependency implements DownloadTaskDependency {
|
|
3
|
+
readonly dependencyKind: "fetchDownloadFolder";
|
|
4
|
+
readonly downloadFolderUrl: string;
|
|
5
|
+
/** When true, Mapbox runs in parallel with this task (explore path with page minimap). */
|
|
6
|
+
readonly parallelMapbox: boolean;
|
|
7
|
+
constructor(args: {
|
|
8
|
+
downloadFolderUrl: string;
|
|
9
|
+
parallelMapbox?: boolean;
|
|
10
|
+
});
|
|
11
|
+
toStoredState(): unknown;
|
|
12
|
+
static fromStoredState(raw: unknown): FetchDownloadFolderTaskDependency;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=fetchDownloadFolderTaskDependency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchDownloadFolderTaskDependency.d.ts","sourceRoot":"","sources":["../../../src/download/dependencies/fetchDownloadFolderTaskDependency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,qBAAa,iCAAkC,YAAW,sBAAsB;IAC5E,QAAQ,CAAC,cAAc,EAAG,qBAAqB,CAAU;IACzD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,0FAA0F;IAC1F,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;gBAErB,IAAI,EAAE;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC5B;IAKD,aAAa,IAAI,OAAO;IAQxB,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,iCAAiC;CAa1E"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FetchDownloadFolderTaskDependency = void 0;
|
|
4
|
+
class FetchDownloadFolderTaskDependency {
|
|
5
|
+
constructor(args) {
|
|
6
|
+
this.dependencyKind = 'fetchDownloadFolder';
|
|
7
|
+
this.downloadFolderUrl = args.downloadFolderUrl;
|
|
8
|
+
this.parallelMapbox = args.parallelMapbox ?? false;
|
|
9
|
+
}
|
|
10
|
+
toStoredState() {
|
|
11
|
+
return {
|
|
12
|
+
dependencyKind: this.dependencyKind,
|
|
13
|
+
downloadFolderUrl: this.downloadFolderUrl,
|
|
14
|
+
parallelMapbox: this.parallelMapbox,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
static fromStoredState(raw) {
|
|
18
|
+
if (raw == null || typeof raw !== 'object') {
|
|
19
|
+
throw new Error('FetchDownloadFolderTaskDependency must be an object');
|
|
20
|
+
}
|
|
21
|
+
const value = raw;
|
|
22
|
+
if (typeof value.downloadFolderUrl !== 'string' || value.downloadFolderUrl.length === 0) {
|
|
23
|
+
throw new Error('FetchDownloadFolderTaskDependency.downloadFolderUrl must be a non-empty string');
|
|
24
|
+
}
|
|
25
|
+
return new FetchDownloadFolderTaskDependency({
|
|
26
|
+
downloadFolderUrl: value.downloadFolderUrl,
|
|
27
|
+
parallelMapbox: value.parallelMapbox === true,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.FetchDownloadFolderTaskDependency = FetchDownloadFolderTaskDependency;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadDependencyRegistry.d.ts","sourceRoot":"","sources":["../../../src/download/helpers/downloadDependencyRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"downloadDependencyRegistry.d.ts","sourceRoot":"","sources":["../../../src/download/helpers/downloadDependencyRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AA2BvD,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAczF"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.hydrateTaskDependencyFromStoredState = hydrateTaskDependencyFromStoredState;
|
|
4
4
|
const fetchImageFilesTaskDependency_1 = require("../dependencies/fetchImageFilesTaskDependency");
|
|
5
5
|
const fetchMapboxPackTaskDependency_1 = require("../dependencies/fetchMapboxPackTaskDependency");
|
|
6
|
+
const fetchDownloadFolderTaskDependency_1 = require("../dependencies/fetchDownloadFolderTaskDependency");
|
|
6
7
|
const fetchPageJsonTaskDependency_1 = require("../dependencies/fetchPageJsonTaskDependency");
|
|
7
8
|
const fetchRegionRouteListTaskDependency_1 = require("../dependencies/fetchRegionRouteListTaskDependency");
|
|
8
9
|
const fetchRopeGeoTileFilesTaskDependency_1 = require("../dependencies/fetchRopeGeoTileFilesTaskDependency");
|
|
@@ -12,6 +13,7 @@ const saveOfflinePageMiniMapTaskDependency_1 = require("../dependencies/saveOffl
|
|
|
12
13
|
const saveOfflinePageViewTaskDependency_1 = require("../dependencies/saveOfflinePageViewTaskDependency");
|
|
13
14
|
const dependencyParsers = {
|
|
14
15
|
fetchPageJson: fetchPageJsonTaskDependency_1.FetchPageJsonTaskDependency.fromStoredState,
|
|
16
|
+
fetchDownloadFolder: fetchDownloadFolderTaskDependency_1.FetchDownloadFolderTaskDependency.fromStoredState,
|
|
15
17
|
fetchImageFiles: fetchImageFilesTaskDependency_1.FetchImageFilesTaskDependency.fromStoredState,
|
|
16
18
|
fetchMapboxPack: fetchMapboxPackTaskDependency_1.FetchMapboxPackTaskDependency.fromStoredState,
|
|
17
19
|
fetchRopeGeoTileList: fetchRopeGeoTileListTaskDependency_1.FetchRopeGeoTileListTaskDependency.fromStoredState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadPhaseTitles.d.ts","sourceRoot":"","sources":["../../../src/download/helpers/downloadPhaseTitles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"downloadPhaseTitles.d.ts","sourceRoot":"","sources":["../../../src/download/helpers/downloadPhaseTitles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CA2B3D;AAED,wBAAgB,0BAA0B,IAAI,aAAa,CAM1D"}
|
|
@@ -6,6 +6,7 @@ const downloadPhase_1 = require("../downloadPhase");
|
|
|
6
6
|
const deleteStoredPageTask_1 = require("../tasks/deleteStoredPageTask");
|
|
7
7
|
const fetchImageFilesTask_1 = require("../tasks/fetchImageFilesTask");
|
|
8
8
|
const fetchMapboxPackTask_1 = require("../tasks/fetchMapboxPackTask");
|
|
9
|
+
const fetchDownloadFolderTask_1 = require("../tasks/fetchDownloadFolderTask");
|
|
9
10
|
const fetchPageJsonTask_1 = require("../tasks/fetchPageJsonTask");
|
|
10
11
|
const fetchRegionRouteListTask_1 = require("../tasks/fetchRegionRouteListTask");
|
|
11
12
|
const fetchRopeGeoTileFilesTask_1 = require("../tasks/fetchRopeGeoTileFilesTask");
|
|
@@ -17,6 +18,9 @@ function titleForPhase(tasks) {
|
|
|
17
18
|
if (tasks.length === 1 && tasks[0] instanceof fetchPageJsonTask_1.FetchPageJsonTask) {
|
|
18
19
|
return 'Downloading page';
|
|
19
20
|
}
|
|
21
|
+
if (tasks.some((task) => task instanceof fetchDownloadFolderTask_1.FetchDownloadFolderTask)) {
|
|
22
|
+
return 'Downloading page bundle';
|
|
23
|
+
}
|
|
20
24
|
if (tasks.some((task) => task instanceof fetchRopeGeoTileFilesTask_1.FetchRopeGeoTileFilesTask)) {
|
|
21
25
|
return 'Downloading map data';
|
|
22
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadTaskRegistry.d.ts","sourceRoot":"","sources":["../../../src/download/helpers/downloadTaskRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"downloadTaskRegistry.d.ts","sourceRoot":"","sources":["../../../src/download/helpers/downloadTaskRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA0BlE,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAmB7E"}
|
|
@@ -5,6 +5,7 @@ const errors_1 = require("../errors");
|
|
|
5
5
|
const deleteStoredPageTask_1 = require("../tasks/deleteStoredPageTask");
|
|
6
6
|
const fetchImageFilesTask_1 = require("../tasks/fetchImageFilesTask");
|
|
7
7
|
const fetchMapboxPackTask_1 = require("../tasks/fetchMapboxPackTask");
|
|
8
|
+
const fetchDownloadFolderTask_1 = require("../tasks/fetchDownloadFolderTask");
|
|
8
9
|
const fetchPageJsonTask_1 = require("../tasks/fetchPageJsonTask");
|
|
9
10
|
const fetchRegionRouteListTask_1 = require("../tasks/fetchRegionRouteListTask");
|
|
10
11
|
const fetchRopeGeoTileFilesTask_1 = require("../tasks/fetchRopeGeoTileFilesTask");
|
|
@@ -13,6 +14,7 @@ const saveOfflinePageTask_1 = require("../tasks/saveOfflinePageTask");
|
|
|
13
14
|
const taskParsers = {
|
|
14
15
|
deleteStoredPage: deleteStoredPageTask_1.DeleteStoredPageTask.fromStoredState,
|
|
15
16
|
fetchPageJson: fetchPageJsonTask_1.FetchPageJsonTask.fromStoredState,
|
|
17
|
+
fetchDownloadFolder: fetchDownloadFolderTask_1.FetchDownloadFolderTask.fromStoredState,
|
|
16
18
|
fetchImageFiles: fetchImageFilesTask_1.FetchImageFilesTask.fromStoredState,
|
|
17
19
|
fetchMapboxPack: fetchMapboxPackTask_1.FetchMapboxPackTask.fromStoredState,
|
|
18
20
|
fetchRopeGeoTileList: fetchRopeGeoTileListTask_1.FetchRopeGeoTileListTask.fromStoredState,
|
package/dist/download/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export type { DownloadPlatformHarness, DownloadJobConfig, DownloadJobContext, DownloadTaskDependency, DownloadJobUISnapshot, DownloadJobUIState, DownloadJobQueueStoredState, DownloadJobStoredState, TaskTickResult, DownloadTaskStoredState, FetchImageFilesSlot, DownloadedImageVersions, PendingFileTransfer, } from './types';
|
|
2
2
|
export { hydrateTaskDependencyFromStoredState } from './helpers/downloadDependencyRegistry';
|
|
3
|
-
export { seedConsumerDependencies } from './helpers/seedConsumerDependencies';
|
|
4
3
|
export { DownloadDependencyKeys } from './dependencies/downloadDependencyKeys';
|
|
5
4
|
export { FetchPageJsonTaskDependency } from './dependencies/fetchPageJsonTaskDependency';
|
|
6
5
|
export { FetchImageFilesTaskDependency } from './dependencies/fetchImageFilesTaskDependency';
|
|
@@ -26,6 +25,7 @@ export { FetchImageFilesTask } from './tasks/fetchImageFilesTask';
|
|
|
26
25
|
export { FetchMapboxPackTask } from './tasks/fetchMapboxPackTask';
|
|
27
26
|
export { FetchRopeGeoTileFilesTask } from './tasks/fetchRopeGeoTileFilesTask';
|
|
28
27
|
export { FetchRegionRouteListTask } from './tasks/fetchRegionRouteListTask';
|
|
28
|
+
export { FetchDownloadFolderTask } from './tasks/fetchDownloadFolderTask';
|
|
29
29
|
export { SaveOfflinePageTask } from './tasks/saveOfflinePageTask';
|
|
30
|
-
export {
|
|
30
|
+
export { FetchDownloadFolderTaskDependency } from './dependencies/fetchDownloadFolderTaskDependency';
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/download/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oCAAoC,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/download/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oCAAoC,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,kCAAkC,EAAE,MAAM,mDAAmD,CAAC;AACvG,OAAO,EAAE,mCAAmC,EAAE,MAAM,oDAAoD,CAAC;AACzG,OAAO,EAAE,kCAAkC,EAAE,MAAM,mDAAmD,CAAC;AACvG,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,mCAAmC,EAAE,MAAM,oDAAoD,CAAC;AACzG,OAAO,EAAE,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,0BAA0B,EAC1B,sBAAsB,EACtB,kCAAkC,EAClC,wBAAwB,GAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,EACH,4BAA4B,EAC5B,0BAA0B,GAC7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC"}
|
package/dist/download/index.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.FetchDownloadFolderTaskDependency = exports.SaveOfflinePageTask = exports.FetchDownloadFolderTask = exports.FetchRegionRouteListTask = exports.FetchRopeGeoTileFilesTask = exports.FetchMapboxPackTask = exports.FetchImageFilesTask = exports.FetchRopeGeoTileListTask = exports.FetchPageJsonTask = exports.DeleteStoredPageTask = exports.DownloadTask = exports.enqueuePendingFileTransfer = exports.reconcilePendingFileTransfer = exports.isDownloadCancelledError = exports.InvalidDownloadJobStoredStateError = exports.DownloadCancelledError = exports.DOWNLOAD_CANCELLED_MESSAGE = exports.REGION_PAGES_PER_CHUNK = exports.TILE_FILE_BATCH_SIZE = exports.IMAGE_FILE_BATCH_SIZE = exports.LIST_HTTP_BATCH_SIZE = exports.TILE_LIST_PAGE_LIMIT = exports.buildDeleteStoredPagePhase = exports.titleForPhase = exports.DownloadJobQueue = exports.DownloadPhase = exports.DownloadJob = exports.SaveOfflinePageMiniMapTaskDependency = exports.SaveOfflinePageImagesTaskDependency = exports.SaveOfflinePageViewTaskDependency = exports.FetchRegionRouteListTaskDependency = exports.FetchRopeGeoTileFilesTaskDependency = exports.FetchRopeGeoTileListTaskDependency = exports.FetchMapboxPackTaskDependency = exports.FetchImageFilesTaskDependency = exports.FetchPageJsonTaskDependency = exports.DownloadDependencyKeys = exports.hydrateTaskDependencyFromStoredState = void 0;
|
|
4
4
|
var downloadDependencyRegistry_1 = require("./helpers/downloadDependencyRegistry");
|
|
5
5
|
Object.defineProperty(exports, "hydrateTaskDependencyFromStoredState", { enumerable: true, get: function () { return downloadDependencyRegistry_1.hydrateTaskDependencyFromStoredState; } });
|
|
6
|
-
var seedConsumerDependencies_1 = require("./helpers/seedConsumerDependencies");
|
|
7
|
-
Object.defineProperty(exports, "seedConsumerDependencies", { enumerable: true, get: function () { return seedConsumerDependencies_1.seedConsumerDependencies; } });
|
|
8
6
|
var downloadDependencyKeys_1 = require("./dependencies/downloadDependencyKeys");
|
|
9
7
|
Object.defineProperty(exports, "DownloadDependencyKeys", { enumerable: true, get: function () { return downloadDependencyKeys_1.DownloadDependencyKeys; } });
|
|
10
8
|
var fetchPageJsonTaskDependency_1 = require("./dependencies/fetchPageJsonTaskDependency");
|
|
@@ -64,7 +62,9 @@ var fetchRopeGeoTileFilesTask_1 = require("./tasks/fetchRopeGeoTileFilesTask");
|
|
|
64
62
|
Object.defineProperty(exports, "FetchRopeGeoTileFilesTask", { enumerable: true, get: function () { return fetchRopeGeoTileFilesTask_1.FetchRopeGeoTileFilesTask; } });
|
|
65
63
|
var fetchRegionRouteListTask_1 = require("./tasks/fetchRegionRouteListTask");
|
|
66
64
|
Object.defineProperty(exports, "FetchRegionRouteListTask", { enumerable: true, get: function () { return fetchRegionRouteListTask_1.FetchRegionRouteListTask; } });
|
|
65
|
+
var fetchDownloadFolderTask_1 = require("./tasks/fetchDownloadFolderTask");
|
|
66
|
+
Object.defineProperty(exports, "FetchDownloadFolderTask", { enumerable: true, get: function () { return fetchDownloadFolderTask_1.FetchDownloadFolderTask; } });
|
|
67
67
|
var saveOfflinePageTask_1 = require("./tasks/saveOfflinePageTask");
|
|
68
68
|
Object.defineProperty(exports, "SaveOfflinePageTask", { enumerable: true, get: function () { return saveOfflinePageTask_1.SaveOfflinePageTask; } });
|
|
69
|
-
var
|
|
70
|
-
Object.defineProperty(exports, "
|
|
69
|
+
var fetchDownloadFolderTaskDependency_1 = require("./dependencies/fetchDownloadFolderTaskDependency");
|
|
70
|
+
Object.defineProperty(exports, "FetchDownloadFolderTaskDependency", { enumerable: true, get: function () { return fetchDownloadFolderTaskDependency_1.FetchDownloadFolderTaskDependency; } });
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DownloadJobContext, DownloadPlatformHarness, DownloadTaskStoredState, TaskTickResult } from '../types';
|
|
2
|
+
import { DownloadTask } from './abstractDownloadTask';
|
|
3
|
+
export declare class FetchDownloadFolderTask extends DownloadTask {
|
|
4
|
+
readonly taskKind = "fetchDownloadFolder";
|
|
5
|
+
readonly dependencyKeys: readonly ["fetchDownloadFolder"];
|
|
6
|
+
total: number;
|
|
7
|
+
constructor(completed?: number, total?: number);
|
|
8
|
+
runTick(ctx: DownloadJobContext, platformHarness: DownloadPlatformHarness, _signal: AbortSignal): Promise<TaskTickResult>;
|
|
9
|
+
private downloadExtractAndConvert;
|
|
10
|
+
private maybeAppendMapboxPhaseAfterExtract;
|
|
11
|
+
toStoredState(): DownloadTaskStoredState;
|
|
12
|
+
static fromStoredState(raw: unknown): FetchDownloadFolderTask;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=fetchDownloadFolderTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchDownloadFolderTask.d.ts","sourceRoot":"","sources":["../../../src/download/tasks/fetchDownloadFolderTask.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,qBAAa,uBAAwB,SAAQ,YAAY;IACrD,QAAQ,CAAC,QAAQ,yBAAyB;IAC1C,QAAQ,CAAC,cAAc,mCAAyD;IAChF,KAAK,EAAE,MAAM,CAAC;gBAEF,SAAS,SAAI,EAAE,KAAK,SAAI;IAK9B,OAAO,CACT,GAAG,EAAE,kBAAkB,EACvB,eAAe,EAAE,uBAAuB,EACxC,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,cAAc,CAAC;YAmBZ,yBAAyB;YAuBzB,kCAAkC;IAmChD,aAAa,IAAI,uBAAuB;IAQxC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB;CAIhE"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.FetchDownloadFolderTask = void 0;
|
|
37
|
+
const pageView_1 = require("../../models/pageViews/pageView");
|
|
38
|
+
const downloadDependencyKeys_1 = require("../dependencies/downloadDependencyKeys");
|
|
39
|
+
const abstractDownloadTask_1 = require("./abstractDownloadTask");
|
|
40
|
+
class FetchDownloadFolderTask extends abstractDownloadTask_1.DownloadTask {
|
|
41
|
+
constructor(completed = 0, total = 1) {
|
|
42
|
+
super(completed);
|
|
43
|
+
this.taskKind = 'fetchDownloadFolder';
|
|
44
|
+
this.dependencyKeys = [downloadDependencyKeys_1.DownloadDependencyKeys.FetchDownloadFolder];
|
|
45
|
+
this.total = total;
|
|
46
|
+
}
|
|
47
|
+
async runTick(ctx, platformHarness, _signal) {
|
|
48
|
+
this.requireAllDependencies(ctx);
|
|
49
|
+
if (this.completed >= this.total) {
|
|
50
|
+
return { done: true };
|
|
51
|
+
}
|
|
52
|
+
const dep = this.requireDependency(ctx, downloadDependencyKeys_1.DownloadDependencyKeys.FetchDownloadFolder);
|
|
53
|
+
await this.downloadExtractAndConvert(ctx, platformHarness, dep);
|
|
54
|
+
if (!dep.parallelMapbox) {
|
|
55
|
+
await this.maybeAppendMapboxPhaseAfterExtract(ctx, platformHarness);
|
|
56
|
+
}
|
|
57
|
+
this.completed = this.total;
|
|
58
|
+
return { done: true };
|
|
59
|
+
}
|
|
60
|
+
async downloadExtractAndConvert(ctx, platformHarness, _dep) {
|
|
61
|
+
const pageRoot = platformHarness.paths.pageRoot(ctx.pageId);
|
|
62
|
+
const zipPath = platformHarness.paths.zipTemp(ctx.pageId);
|
|
63
|
+
await platformHarness.downloadFile({
|
|
64
|
+
url: _dep.downloadFolderUrl,
|
|
65
|
+
destPath: zipPath,
|
|
66
|
+
background: true,
|
|
67
|
+
});
|
|
68
|
+
await platformHarness.extractZipArchive({ zipPath, destRoot: pageRoot });
|
|
69
|
+
const jsonPath = platformHarness.paths.pageJson(ctx.pageId);
|
|
70
|
+
const rawJson = await platformHarness.readTextFile(jsonPath);
|
|
71
|
+
const onlineView = pageView_1.PageView.fromResult(JSON.parse(rawJson));
|
|
72
|
+
const offlineView = await onlineView.toOfflineFromExtractedBundle(pageRoot, platformHarness);
|
|
73
|
+
await platformHarness.writeTextFile(jsonPath, JSON.stringify(offlineView));
|
|
74
|
+
await platformHarness.setRoutePreviewsForPage(ctx.pageId, [
|
|
75
|
+
offlineView.toPagePreview(),
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
async maybeAppendMapboxPhaseAfterExtract(ctx, platformHarness) {
|
|
79
|
+
const jsonPath = platformHarness.paths.pageJson(ctx.pageId);
|
|
80
|
+
const jsonText = await platformHarness.readTextFile(jsonPath);
|
|
81
|
+
const offlineView = pageView_1.PageView.fromOfflineResult(JSON.parse(jsonText));
|
|
82
|
+
const bounds = offlineView.getMapboxPackBounds();
|
|
83
|
+
if (bounds == null) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const [{ DownloadPhase }, { FetchMapboxPackTask }, { FetchMapboxPackTaskDependency }, { titleForPhase },] = await Promise.all([
|
|
87
|
+
Promise.resolve().then(() => __importStar(require('../downloadPhase'))),
|
|
88
|
+
Promise.resolve().then(() => __importStar(require('./fetchMapboxPackTask'))),
|
|
89
|
+
Promise.resolve().then(() => __importStar(require('../dependencies/fetchMapboxPackTaskDependency'))),
|
|
90
|
+
Promise.resolve().then(() => __importStar(require('../helpers/downloadPhaseTitles'))),
|
|
91
|
+
]);
|
|
92
|
+
const mapboxTask = new FetchMapboxPackTask();
|
|
93
|
+
ctx.appendPhases([
|
|
94
|
+
new DownloadPhase({
|
|
95
|
+
title: titleForPhase([mapboxTask]),
|
|
96
|
+
tasks: [mapboxTask],
|
|
97
|
+
}),
|
|
98
|
+
]);
|
|
99
|
+
ctx.setDependency(downloadDependencyKeys_1.DownloadDependencyKeys.FetchMapboxPack, new FetchMapboxPackTaskDependency(bounds));
|
|
100
|
+
}
|
|
101
|
+
toStoredState() {
|
|
102
|
+
return {
|
|
103
|
+
taskKind: this.taskKind,
|
|
104
|
+
completed: this.completed,
|
|
105
|
+
total: this.total,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
static fromStoredState(raw) {
|
|
109
|
+
const value = raw;
|
|
110
|
+
return new FetchDownloadFolderTask(value.completed, value.total);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.FetchDownloadFolderTask = FetchDownloadFolderTask;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchPageJsonTask.d.ts","sourceRoot":"","sources":["../../../src/download/tasks/fetchPageJsonTask.ts"],"names":[],"mappings":"AACA,OAAO,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"fetchPageJsonTask.d.ts","sourceRoot":"","sources":["../../../src/download/tasks/fetchPageJsonTask.ts"],"names":[],"mappings":"AACA,OAAO,mDAAmD,CAAC;AAI3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAetD,qBAAa,iBAAkB,SAAQ,YAAY;IAC/C,QAAQ,CAAC,QAAQ,mBAAmB;IACpC,QAAQ,CAAC,cAAc,6BAAmD;IAC1E,KAAK,EAAE,MAAM,CAAC;gBAEF,SAAS,SAAI,EAAE,KAAK,SAAI;IAK9B,OAAO,CACT,GAAG,EAAE,kBAAkB,EACvB,gBAAgB,EAAE,uBAAuB,EACzC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC;IA4B1B,aAAa,IAAI,uBAAuB;IAQxC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB;CAI1D"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FetchPageJsonTask = void 0;
|
|
4
|
-
const downloadHttpRequest_1 = require("../helpers/downloadHttpRequest");
|
|
5
4
|
require("../../models/api/results/registerAllResultParsers");
|
|
6
5
|
const result_1 = require("../../models/api/results/result");
|
|
7
6
|
const downloadDependencyKeys_1 = require("../dependencies/downloadDependencyKeys");
|
|
8
|
-
const planDownloadPhases_1 = require("../helpers/planDownloadPhases");
|
|
9
|
-
const seedConsumerDependencies_1 = require("../helpers/seedConsumerDependencies");
|
|
10
7
|
const abstractDownloadTask_1 = require("./abstractDownloadTask");
|
|
8
|
+
const downloadHttpRequest_1 = require("../helpers/downloadHttpRequest");
|
|
11
9
|
function unwrapData(value) {
|
|
12
10
|
if (value != null &&
|
|
13
11
|
typeof value === 'object' &&
|
|
@@ -36,10 +34,10 @@ class FetchPageJsonTask extends abstractDownloadTask_1.DownloadTask {
|
|
|
36
34
|
});
|
|
37
35
|
const text = await response.text();
|
|
38
36
|
const parsedResponse = result_1.Result.fromResponseBody(unwrapData(JSON.parse(text)));
|
|
39
|
-
const
|
|
40
|
-
const appendedPhases =
|
|
37
|
+
const onlineView = parsedResponse.result;
|
|
38
|
+
const appendedPhases = onlineView.planDownloadPhases();
|
|
41
39
|
ctx.appendPhases(appendedPhases);
|
|
42
|
-
const seeded =
|
|
40
|
+
const seeded = onlineView.getDependenciesForPhases(appendedPhases);
|
|
43
41
|
for (const [key, dependency] of Object.entries(seeded)) {
|
|
44
42
|
ctx.setDependency(key, dependency);
|
|
45
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchRopeGeoTileFilesTask.d.ts","sourceRoot":"","sources":["../../../src/download/tasks/fetchRopeGeoTileFilesTask.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetchRopeGeoTileFilesTask.d.ts","sourceRoot":"","sources":["../../../src/download/tasks/fetchRopeGeoTileFilesTask.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAgBtD,qBAAa,yBAA0B,SAAQ,YAAY;IACvD,QAAQ,CAAC,QAAQ,2BAA2B;IAC5C,QAAQ,CAAC,cAAc,qCAA2D;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,MAAM,CAAS;gBAEX,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,EAAE,MAAM,SAAI;IAM9C,OAAO,CACT,GAAG,EAAE,kBAAkB,EACvB,eAAe,EAAE,uBAAuB,EACxC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC;YAyCZ,qBAAqB;IAqBnC,aAAa,IAAI,uBAAuB;IASxC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,yBAAyB;CAQlE"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FetchRopeGeoTileFilesTask = void 0;
|
|
4
4
|
const miniMapType_1 = require("../../models/minimap/abstract/miniMapType");
|
|
5
5
|
const onlinePageMiniMap_1 = require("../../models/minimap/concrete/onlinePageMiniMap");
|
|
6
|
+
const offlinePageBundlePaths_1 = require("../../helpers/offlinePageBundlePaths");
|
|
6
7
|
const downloadDependencyKeys_1 = require("../dependencies/downloadDependencyKeys");
|
|
7
8
|
const saveOfflinePageMiniMapTaskDependency_1 = require("../dependencies/saveOfflinePageMiniMapTaskDependency");
|
|
8
9
|
const downloadConstants_1 = require("../helpers/downloadConstants");
|
|
@@ -43,7 +44,7 @@ class FetchRopeGeoTileFilesTask extends abstractDownloadTask_1.DownloadTask {
|
|
|
43
44
|
if (signal.aborted) {
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
46
|
-
const relativePath = relativePathFromTileUrl(tileUrl)
|
|
47
|
+
const relativePath = `mapdata/tiles/${relativePathFromTileUrl(tileUrl)}`;
|
|
47
48
|
const destPath = platformHarness.paths.tileDest(ctx.pageId, relativePath);
|
|
48
49
|
await platformHarness.ensureParentDir(destPath);
|
|
49
50
|
await platformHarness.downloadFile({
|
|
@@ -67,7 +68,7 @@ class FetchRopeGeoTileFilesTask extends abstractDownloadTask_1.DownloadTask {
|
|
|
67
68
|
throw new Error('FetchRopeGeoTileFilesTask expects a page minimap wire payload');
|
|
68
69
|
}
|
|
69
70
|
const onlineMiniMap = onlinePageMiniMap_1.OnlinePageMiniMap.fromResult(wire);
|
|
70
|
-
const offlineTemplate = platformHarness.paths.tileDest(ctx.pageId,
|
|
71
|
+
const offlineTemplate = platformHarness.paths.tileDest(ctx.pageId, (0, offlinePageBundlePaths_1.offlineTilesTemplateRelative)(dep.mapDataId));
|
|
71
72
|
const offlineMiniMap = onlineMiniMap.toOffline(offlineTemplate);
|
|
72
73
|
ctx.setDependency(downloadDependencyKeys_1.DownloadDependencyKeys.SaveOfflinePageMiniMap, new saveOfflinePageMiniMapTaskDependency_1.SaveOfflinePageMiniMapTaskDependency(offlineMiniMap.toPlain()));
|
|
73
74
|
}
|
|
@@ -5,7 +5,7 @@ const imageVersions_1 = require("../../models/mobile/imageVersions");
|
|
|
5
5
|
const miniMapType_1 = require("../../models/minimap/abstract/miniMapType");
|
|
6
6
|
const offlineCenteredRegionMiniMap_1 = require("../../models/minimap/concrete/offlineCenteredRegionMiniMap");
|
|
7
7
|
const offlinePageMiniMap_1 = require("../../models/minimap/concrete/offlinePageMiniMap");
|
|
8
|
-
const
|
|
8
|
+
const pageView_1 = require("../../models/pageViews/pageView");
|
|
9
9
|
const downloadDependencyKeys_1 = require("../dependencies/downloadDependencyKeys");
|
|
10
10
|
const abstractDownloadTask_1 = require("./abstractDownloadTask");
|
|
11
11
|
class SaveOfflinePageTask extends abstractDownloadTask_1.DownloadTask {
|
|
@@ -21,7 +21,7 @@ class SaveOfflinePageTask extends abstractDownloadTask_1.DownloadTask {
|
|
|
21
21
|
return { done: true };
|
|
22
22
|
}
|
|
23
23
|
const viewDep = this.requireDependency(ctx, downloadDependencyKeys_1.DownloadDependencyKeys.SaveOfflinePageView);
|
|
24
|
-
const onlineView =
|
|
24
|
+
const onlineView = pageView_1.PageView.fromResult(viewDep.onlineViewWire);
|
|
25
25
|
const downloadedImages = this.getDownloadedImages(ctx);
|
|
26
26
|
const offlineMiniMap = this.getOfflineMiniMapIfPresent(ctx);
|
|
27
27
|
const offlineView = onlineView.toOffline(downloadedImages, offlineMiniMap);
|
package/dist/download/types.d.ts
CHANGED
|
@@ -66,10 +66,15 @@ export type DownloadPlatformHarness = {
|
|
|
66
66
|
ensureParentDir(filePath: string): Promise<void>;
|
|
67
67
|
deletePageBundle(pageId: string): Promise<void>;
|
|
68
68
|
gunzipTileIfNeeded(path: string): Promise<void>;
|
|
69
|
+
extractZipArchive(args: {
|
|
70
|
+
zipPath: string;
|
|
71
|
+
destRoot: string;
|
|
72
|
+
}): Promise<void>;
|
|
69
73
|
paths: {
|
|
70
74
|
pageRoot(pageId: string): string;
|
|
71
75
|
pageJson(pageId: string): string;
|
|
72
76
|
pageJsonTemp(pageId: string): string;
|
|
77
|
+
zipTemp(pageId: string): string;
|
|
73
78
|
imageDest(pageId: string, imageId: string, slot: string, ext: string): string;
|
|
74
79
|
tileDest(pageId: string, relativePath: string): string;
|
|
75
80
|
regionGeojson(pageId: string, regionId: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/download/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/download/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydrateOfflinePageWirePaths.d.ts","sourceRoot":"","sources":["../../src/helpers/hydrateOfflinePageWirePaths.ts"],"names":[],"mappings":"AA6BA,qGAAqG;AACrG,wBAAgB,2BAA2B,CACvC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAiBN"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hydrateOfflinePageWirePaths = hydrateOfflinePageWirePaths;
|
|
4
|
+
const offlinePageBundlePaths_1 = require("./offlinePageBundlePaths");
|
|
5
|
+
const PATH_LIKE_KEYS = new Set([
|
|
6
|
+
'downloadedBannerPath',
|
|
7
|
+
'downloadedFullPath',
|
|
8
|
+
'offlineTilesTemplate',
|
|
9
|
+
'downloadedGeojson',
|
|
10
|
+
]);
|
|
11
|
+
function isRelativeBundlePath(value) {
|
|
12
|
+
if (value.length === 0) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (value.startsWith('file://')) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (value.startsWith('http://') || value.startsWith('https://')) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return !value.includes('://');
|
|
22
|
+
}
|
|
23
|
+
function hydratePathValue(pageRootUri, value) {
|
|
24
|
+
if (typeof value !== 'string' || !isRelativeBundlePath(value)) {
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
return (0, offlinePageBundlePaths_1.joinPageRootUri)(pageRootUri, value);
|
|
28
|
+
}
|
|
29
|
+
/** Rewrites relative bundle paths in offline page wire JSON to absolute URIs under `pageRootUri`. */
|
|
30
|
+
function hydrateOfflinePageWirePaths(pageRootUri, node) {
|
|
31
|
+
for (const [key, value] of Object.entries(node)) {
|
|
32
|
+
if (PATH_LIKE_KEYS.has(key)) {
|
|
33
|
+
node[key] = hydratePathValue(pageRootUri, value);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (value != null && typeof value === 'object' && !Array.isArray(value)) {
|
|
37
|
+
hydrateOfflinePageWirePaths(pageRootUri, value);
|
|
38
|
+
}
|
|
39
|
+
if (Array.isArray(value)) {
|
|
40
|
+
for (const item of value) {
|
|
41
|
+
if (item != null && typeof item === 'object') {
|
|
42
|
+
hydrateOfflinePageWirePaths(pageRootUri, item);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
package/dist/helpers/index.d.ts
CHANGED
|
@@ -15,4 +15,6 @@ export { default as sendSQSMessage } from './sqs/sendSQSMessage';
|
|
|
15
15
|
export { default as deleteSQSMessage } from './sqs/deleteSQSMessage';
|
|
16
16
|
export { default as changeSQSMessageVisibilityTimeout } from './sqs/changeSQSMessageVisibilityTimeout';
|
|
17
17
|
export { createCloudFrontInvalidation } from './cloudfront/createCloudFrontInvalidation';
|
|
18
|
+
export { imageFileRelativePath, mapDataTilesDirectoryRelative, tileFileRelativePath, offlineTilesTemplateRelative, regionRoutesGeojsonRelativePath, joinPageRootUri, } from './offlinePageBundlePaths';
|
|
19
|
+
export { hydrateOfflinePageWirePaths } from './hydrateOfflinePageWirePaths';
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACH,iCAAiC,EACjC,iCAAiC,EACjC,YAAY,EACZ,4BAA4B,EAC5B,6BAA6B,EAC7B,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kCAAkC,GAC1C,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAEvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACH,iCAAiC,EACjC,iCAAiC,EACjC,YAAY,EACZ,4BAA4B,EAC5B,6BAA6B,EAC7B,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kCAAkC,GAC1C,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAEvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAEzF,OAAO,EACH,qBAAqB,EACrB,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,+BAA+B,EAC/B,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC"}
|