ropegeo-common 1.6.0 → 1.8.0
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 +270 -36
- package/dist/classes/api/getRopewikiPageLinkPreview/ropewikiPageLinkPreviewResult.d.ts.map +1 -0
- package/dist/{types → classes}/api/getRopewikiPageView/ropewikiPageView.d.ts +2 -1
- package/dist/classes/api/getRopewikiPageView/ropewikiPageView.d.ts.map +1 -0
- package/dist/{types → classes}/api/getRopewikiPageView/ropewikiPageView.js +3 -2
- package/dist/classes/api/getRopewikiPageView/ropewikiPageViewResult.d.ts.map +1 -0
- package/dist/classes/api/getRopewikiRegionImages/ropewikiRegionImageView.d.ts.map +1 -0
- package/dist/classes/api/getRopewikiRegionImages/ropewikiRegionImagesParams.d.ts.map +1 -0
- package/dist/classes/api/getRopewikiRegionImages/ropewikiRegionImagesResult.d.ts.map +1 -0
- package/dist/classes/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsParams.d.ts.map +1 -0
- package/dist/classes/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsResult.d.ts.map +1 -0
- package/dist/classes/api/getRopewikiRegionView/ropewikiRegionView.d.ts.map +1 -0
- package/dist/classes/api/getRopewikiRegionView/ropewikiRegionViewResult.d.ts.map +1 -0
- package/dist/classes/api/getRoutePreview/routePreviewResult.d.ts.map +1 -0
- package/dist/classes/api/getRoutes/routeGeojson.d.ts.map +1 -0
- package/dist/classes/api/getRoutes/routesGeojsonResult.d.ts.map +1 -0
- package/dist/classes/api/listMapDataTileKeys/mapDataTileKeysResults.d.ts.map +1 -0
- package/dist/classes/api/search/searchResults.d.ts.map +1 -0
- package/dist/classes/betaSections/betaSection.d.ts.map +1 -0
- package/dist/classes/betaSections/betaSectionImage.d.ts.map +1 -0
- package/dist/classes/betaSections/downloadBytes.d.ts.map +1 -0
- package/dist/classes/cursors/cursor.d.ts.map +1 -0
- package/dist/classes/cursors/regionImagesCursor.d.ts.map +1 -0
- package/dist/classes/cursors/regionPreviewsCursor.d.ts.map +1 -0
- package/dist/classes/cursors/searchCursor.d.ts.map +1 -0
- package/dist/classes/difficulty/acaDifficulty.d.ts +30 -0
- package/dist/classes/difficulty/acaDifficulty.d.ts.map +1 -0
- package/dist/classes/difficulty/acaDifficulty.js +107 -0
- package/dist/classes/difficulty/acaRatings.d.ts +45 -0
- package/dist/classes/difficulty/acaRatings.d.ts.map +1 -0
- package/dist/classes/difficulty/acaRatings.js +78 -0
- package/dist/classes/difficulty/difficulty.d.ts +25 -0
- package/dist/classes/difficulty/difficulty.d.ts.map +1 -0
- package/dist/classes/difficulty/difficulty.js +55 -0
- package/dist/classes/difficulty/registerDifficultyParsers.d.ts +7 -0
- package/dist/classes/difficulty/registerDifficultyParsers.d.ts.map +1 -0
- package/dist/classes/difficulty/registerDifficultyParsers.js +8 -0
- package/dist/classes/filters/acaDifficultyFilterOptions.d.ts +40 -0
- package/dist/classes/filters/acaDifficultyFilterOptions.d.ts.map +1 -0
- package/dist/classes/filters/acaDifficultyFilterOptions.js +107 -0
- package/dist/classes/filters/difficultyFilterOptions.d.ts +24 -0
- package/dist/classes/filters/difficultyFilterOptions.d.ts.map +1 -0
- package/dist/classes/filters/difficultyFilterOptions.js +53 -0
- package/dist/classes/filters/registerDifficultyFilterOptionsParsers.d.ts +7 -0
- package/dist/classes/filters/registerDifficultyFilterOptionsParsers.d.ts.map +1 -0
- package/dist/classes/filters/registerDifficultyFilterOptionsParsers.js +8 -0
- package/dist/classes/filters/routeFilter.d.ts +23 -0
- package/dist/classes/filters/routeFilter.d.ts.map +1 -0
- package/dist/classes/filters/routeFilter.js +114 -0
- package/dist/classes/filters/savedFilters.d.ts +18 -0
- package/dist/classes/filters/savedFilters.d.ts.map +1 -0
- package/dist/classes/filters/savedFilters.js +58 -0
- package/dist/classes/filters/savedPagesFilter.d.ts +24 -0
- package/dist/classes/filters/savedPagesFilter.d.ts.map +1 -0
- package/dist/classes/filters/savedPagesFilter.js +79 -0
- package/dist/classes/filters/searchFilter.d.ts +41 -0
- package/dist/classes/filters/searchFilter.d.ts.map +1 -0
- package/dist/classes/filters/searchFilter.js +181 -0
- package/dist/{types → classes}/index.d.ts +26 -5
- package/dist/classes/index.d.ts.map +1 -0
- package/dist/{types → classes}/index.js +65 -9
- package/dist/classes/linkPreview/linkPreview.d.ts.map +1 -0
- package/dist/classes/linkPreview/linkPreviewImage.d.ts.map +1 -0
- package/dist/classes/minimap/bounds.d.ts.map +1 -0
- package/dist/classes/minimap/miniMap.d.ts.map +1 -0
- package/dist/classes/minimap/miniMapType.d.ts.map +1 -0
- package/dist/classes/minimap/pageMiniMap.d.ts.map +1 -0
- package/dist/{types → classes}/minimap/regionMiniMap.d.ts +1 -1
- package/dist/classes/minimap/regionMiniMap.d.ts.map +1 -0
- package/dist/{types → classes}/minimap/regionMiniMap.js +1 -1
- package/dist/classes/mobile/imageVersions.d.ts +25 -0
- package/dist/classes/mobile/imageVersions.d.ts.map +1 -0
- package/dist/classes/mobile/imageVersions.js +71 -0
- package/dist/classes/mobile/savedPage.d.ts.map +1 -0
- package/dist/{types → classes}/mobile/savedPage.js +21 -9
- package/dist/classes/pageDataSource.d.ts.map +1 -0
- package/dist/classes/params/cursorPaginationParams.d.ts.map +1 -0
- package/dist/classes/permitStatus.d.ts.map +1 -0
- package/dist/{types → classes}/previews/pagePreview.d.ts +3 -2
- package/dist/classes/previews/pagePreview.d.ts.map +1 -0
- package/dist/{types → classes}/previews/pagePreview.js +20 -23
- package/dist/classes/previews/preview.d.ts.map +1 -0
- package/dist/classes/previews/regionPreview.d.ts.map +1 -0
- package/dist/classes/requestParams/acaDifficultyParams.d.ts +25 -0
- package/dist/classes/requestParams/acaDifficultyParams.d.ts.map +1 -0
- package/dist/classes/requestParams/acaDifficultyParams.js +109 -0
- package/dist/classes/requestParams/difficultyParams.d.ts +39 -0
- package/dist/classes/requestParams/difficultyParams.d.ts.map +1 -0
- package/dist/classes/requestParams/difficultyParams.js +90 -0
- package/dist/classes/requestParams/registerDifficultyParamsParsers.d.ts +2 -0
- package/dist/classes/requestParams/registerDifficultyParamsParsers.d.ts.map +1 -0
- package/dist/classes/requestParams/registerDifficultyParamsParsers.js +41 -0
- package/dist/classes/requestParams/routesParams.d.ts +46 -0
- package/dist/classes/requestParams/routesParams.d.ts.map +1 -0
- package/dist/classes/requestParams/routesParams.js +219 -0
- package/dist/classes/requestParams/searchParams.d.ts +38 -0
- package/dist/classes/requestParams/searchParams.d.ts.map +1 -0
- package/dist/classes/requestParams/searchParams.js +211 -0
- package/dist/classes/results/cursorPaginationResults.d.ts.map +1 -0
- package/dist/classes/results/paginationResults.d.ts.map +1 -0
- package/dist/classes/results/registerAllResultParsers.d.ts.map +1 -0
- package/dist/classes/results/result.d.ts.map +1 -0
- package/dist/classes/routes/route.d.ts.map +1 -0
- package/dist/classes/routes/routeGeoJsonFeature.d.ts.map +1 -0
- package/dist/classes/routes/routeType.d.ts.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/package.json +5 -21
- package/dist/types/api/getRopewikiPageLinkPreview/ropewikiPageLinkPreviewResult.d.ts.map +0 -1
- package/dist/types/api/getRopewikiPageView/ropewikiPageView.d.ts.map +0 -1
- package/dist/types/api/getRopewikiPageView/ropewikiPageViewResult.d.ts.map +0 -1
- package/dist/types/api/getRopewikiRegionImages/ropewikiRegionImageView.d.ts.map +0 -1
- package/dist/types/api/getRopewikiRegionImages/ropewikiRegionImagesParams.d.ts.map +0 -1
- package/dist/types/api/getRopewikiRegionImages/ropewikiRegionImagesResult.d.ts.map +0 -1
- package/dist/types/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsParams.d.ts.map +0 -1
- package/dist/types/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsResult.d.ts.map +0 -1
- package/dist/types/api/getRopewikiRegionView/ropewikiRegionView.d.ts.map +0 -1
- package/dist/types/api/getRopewikiRegionView/ropewikiRegionViewResult.d.ts.map +0 -1
- package/dist/types/api/getRoutePreview/routePreviewResult.d.ts.map +0 -1
- package/dist/types/api/getRoutes/routeGeojson.d.ts.map +0 -1
- package/dist/types/api/getRoutes/routesGeojsonResult.d.ts.map +0 -1
- package/dist/types/api/getRoutes/routesParams.d.ts +0 -33
- package/dist/types/api/getRoutes/routesParams.d.ts.map +0 -1
- package/dist/types/api/getRoutes/routesParams.js +0 -100
- package/dist/types/api/listMapDataTileKeys/mapDataTileKeysResults.d.ts.map +0 -1
- package/dist/types/api/search/searchParams.d.ts +0 -33
- package/dist/types/api/search/searchParams.d.ts.map +0 -1
- package/dist/types/api/search/searchParams.js +0 -126
- package/dist/types/api/search/searchResults.d.ts.map +0 -1
- package/dist/types/betaSections/betaSection.d.ts.map +0 -1
- package/dist/types/betaSections/betaSectionImage.d.ts.map +0 -1
- package/dist/types/betaSections/downloadBytes.d.ts.map +0 -1
- package/dist/types/cursors/cursor.d.ts.map +0 -1
- package/dist/types/cursors/regionImagesCursor.d.ts.map +0 -1
- package/dist/types/cursors/regionPreviewsCursor.d.ts.map +0 -1
- package/dist/types/cursors/searchCursor.d.ts.map +0 -1
- package/dist/types/difficulty.d.ts +0 -52
- package/dist/types/difficulty.d.ts.map +0 -1
- package/dist/types/difficulty.js +0 -95
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/linkPreview/linkPreview.d.ts.map +0 -1
- package/dist/types/linkPreview/linkPreviewImage.d.ts.map +0 -1
- package/dist/types/minimap/bounds.d.ts.map +0 -1
- package/dist/types/minimap/miniMap.d.ts.map +0 -1
- package/dist/types/minimap/miniMapType.d.ts.map +0 -1
- package/dist/types/minimap/pageMiniMap.d.ts.map +0 -1
- package/dist/types/minimap/regionMiniMap.d.ts.map +0 -1
- package/dist/types/mobile/imageVersions.d.ts +0 -17
- package/dist/types/mobile/imageVersions.d.ts.map +0 -1
- package/dist/types/mobile/imageVersions.js +0 -37
- package/dist/types/mobile/savedPage.d.ts.map +0 -1
- package/dist/types/pageDataSource.d.ts.map +0 -1
- package/dist/types/params/cursorPaginationParams.d.ts.map +0 -1
- package/dist/types/permitStatus.d.ts.map +0 -1
- package/dist/types/previews/pagePreview.d.ts.map +0 -1
- package/dist/types/previews/preview.d.ts.map +0 -1
- package/dist/types/previews/regionPreview.d.ts.map +0 -1
- package/dist/types/results/cursorPaginationResults.d.ts.map +0 -1
- package/dist/types/results/paginationResults.d.ts.map +0 -1
- package/dist/types/results/registerAllResultParsers.d.ts.map +0 -1
- package/dist/types/results/result.d.ts.map +0 -1
- package/dist/types/routes/route.d.ts.map +0 -1
- package/dist/types/routes/routeGeoJsonFeature.d.ts.map +0 -1
- package/dist/types/routes/routeType.d.ts.map +0 -1
- /package/dist/{types → classes}/api/getRopewikiPageLinkPreview/ropewikiPageLinkPreviewResult.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiPageLinkPreview/ropewikiPageLinkPreviewResult.js +0 -0
- /package/dist/{types → classes}/api/getRopewikiPageView/ropewikiPageViewResult.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiPageView/ropewikiPageViewResult.js +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionImages/ropewikiRegionImageView.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionImages/ropewikiRegionImageView.js +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionImages/ropewikiRegionImagesParams.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionImages/ropewikiRegionImagesParams.js +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionImages/ropewikiRegionImagesResult.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionImages/ropewikiRegionImagesResult.js +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsParams.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsParams.js +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsResult.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsResult.js +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionView/ropewikiRegionView.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionView/ropewikiRegionView.js +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionView/ropewikiRegionViewResult.d.ts +0 -0
- /package/dist/{types → classes}/api/getRopewikiRegionView/ropewikiRegionViewResult.js +0 -0
- /package/dist/{types → classes}/api/getRoutePreview/routePreviewResult.d.ts +0 -0
- /package/dist/{types → classes}/api/getRoutePreview/routePreviewResult.js +0 -0
- /package/dist/{types → classes}/api/getRoutes/routeGeojson.d.ts +0 -0
- /package/dist/{types → classes}/api/getRoutes/routeGeojson.js +0 -0
- /package/dist/{types → classes}/api/getRoutes/routesGeojsonResult.d.ts +0 -0
- /package/dist/{types → classes}/api/getRoutes/routesGeojsonResult.js +0 -0
- /package/dist/{types → classes}/api/listMapDataTileKeys/mapDataTileKeysResults.d.ts +0 -0
- /package/dist/{types → classes}/api/listMapDataTileKeys/mapDataTileKeysResults.js +0 -0
- /package/dist/{types → classes}/api/search/searchResults.d.ts +0 -0
- /package/dist/{types → classes}/api/search/searchResults.js +0 -0
- /package/dist/{types → classes}/betaSections/betaSection.d.ts +0 -0
- /package/dist/{types → classes}/betaSections/betaSection.js +0 -0
- /package/dist/{types → classes}/betaSections/betaSectionImage.d.ts +0 -0
- /package/dist/{types → classes}/betaSections/betaSectionImage.js +0 -0
- /package/dist/{types → classes}/betaSections/downloadBytes.d.ts +0 -0
- /package/dist/{types → classes}/betaSections/downloadBytes.js +0 -0
- /package/dist/{types → classes}/cursors/cursor.d.ts +0 -0
- /package/dist/{types → classes}/cursors/cursor.js +0 -0
- /package/dist/{types → classes}/cursors/regionImagesCursor.d.ts +0 -0
- /package/dist/{types → classes}/cursors/regionImagesCursor.js +0 -0
- /package/dist/{types → classes}/cursors/regionPreviewsCursor.d.ts +0 -0
- /package/dist/{types → classes}/cursors/regionPreviewsCursor.js +0 -0
- /package/dist/{types → classes}/cursors/searchCursor.d.ts +0 -0
- /package/dist/{types → classes}/cursors/searchCursor.js +0 -0
- /package/dist/{types → classes}/linkPreview/linkPreview.d.ts +0 -0
- /package/dist/{types → classes}/linkPreview/linkPreview.js +0 -0
- /package/dist/{types → classes}/linkPreview/linkPreviewImage.d.ts +0 -0
- /package/dist/{types → classes}/linkPreview/linkPreviewImage.js +0 -0
- /package/dist/{types → classes}/minimap/bounds.d.ts +0 -0
- /package/dist/{types → classes}/minimap/bounds.js +0 -0
- /package/dist/{types → classes}/minimap/miniMap.d.ts +0 -0
- /package/dist/{types → classes}/minimap/miniMap.js +0 -0
- /package/dist/{types → classes}/minimap/miniMapType.d.ts +0 -0
- /package/dist/{types → classes}/minimap/miniMapType.js +0 -0
- /package/dist/{types → classes}/minimap/pageMiniMap.d.ts +0 -0
- /package/dist/{types → classes}/minimap/pageMiniMap.js +0 -0
- /package/dist/{types → classes}/mobile/savedPage.d.ts +0 -0
- /package/dist/{types → classes}/pageDataSource.d.ts +0 -0
- /package/dist/{types → classes}/pageDataSource.js +0 -0
- /package/dist/{types → classes}/params/cursorPaginationParams.d.ts +0 -0
- /package/dist/{types → classes}/params/cursorPaginationParams.js +0 -0
- /package/dist/{types → classes}/permitStatus.d.ts +0 -0
- /package/dist/{types → classes}/permitStatus.js +0 -0
- /package/dist/{types → classes}/previews/preview.d.ts +0 -0
- /package/dist/{types → classes}/previews/preview.js +0 -0
- /package/dist/{types → classes}/previews/regionPreview.d.ts +0 -0
- /package/dist/{types → classes}/previews/regionPreview.js +0 -0
- /package/dist/{types → classes}/results/cursorPaginationResults.d.ts +0 -0
- /package/dist/{types → classes}/results/cursorPaginationResults.js +0 -0
- /package/dist/{types → classes}/results/paginationResults.d.ts +0 -0
- /package/dist/{types → classes}/results/paginationResults.js +0 -0
- /package/dist/{types → classes}/results/registerAllResultParsers.d.ts +0 -0
- /package/dist/{types → classes}/results/registerAllResultParsers.js +0 -0
- /package/dist/{types → classes}/results/result.d.ts +0 -0
- /package/dist/{types → classes}/results/result.js +0 -0
- /package/dist/{types → classes}/routes/route.d.ts +0 -0
- /package/dist/{types → classes}/routes/route.js +0 -0
- /package/dist/{types → classes}/routes/routeGeoJsonFeature.d.ts +0 -0
- /package/dist/{types → classes}/routes/routeGeoJsonFeature.js +0 -0
- /package/dist/{types → classes}/routes/routeType.d.ts +0 -0
- /package/dist/{types → classes}/routes/routeType.js +0 -0
package/README.md
CHANGED
|
@@ -1,47 +1,281 @@
|
|
|
1
1
|
# ropegeo-common
|
|
2
2
|
|
|
3
|
-
Shared
|
|
3
|
+
Shared **domain classes** (validated models, enums, request params) and **helpers** (S3, SQS, HTTP, etc.) for [RopeGeo](https://github.com/yurst3/RopeGeo) and [WebScraper](https://github.com/yurst3/WebScraper). Published to npm as [`ropegeo-common`](https://www.npmjs.com/package/ropegeo-common) so both projects can share one package instead of duplicating code.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
- **Page preview types** – `PagePreview`, `Difficulty`, and related enums used by the route preview API (e.g. GET /route/{routeId}/preview). `PagePreview` includes optional `permit` (`PermitStatus` enum: Yes, No, Restricted, Closed, or null).
|
|
8
|
-
- **Page data source** – `PageDataSource` enum (e.g. Ropewiki) used when linking routes to pages.
|
|
9
|
-
- **Ropewiki page view types** – `RopewikiPageView`, `RopewikiBetaSectionView`, and `RopewikiImageView` for the getRopewikiPageView API (full Ropewiki page with beta sections and images). `BetaSectionImage` includes `id`, `downloadBytes` (`DownloadBytes`: preview/banner/full byte sizes), and **page-based pagination** – `PaginationResults` / `MapDataTileKeysResults` (e.g. `GET /mapdata/{mapDataId}/tiles` with `total`, `page`, `totalBytes`).
|
|
10
|
-
- **Routes (GET /routes)** – `Route`, `RouteType`, `RouteGeoJsonFeature`, and `RoutesGeojson` for the routes GeoJSON Feature Collection API. `RoutesGeojson.fromRoutes(routes)` builds the response shape from an array of `Route`.
|
|
11
|
-
- **Search API types** – `SearchResults` (paginated search response with `results: Preview[]` and `nextCursor: string`), `RegionPreview` (region search hit with id, name, parents, imageUrl, source), and `PagePreview` (page search hit; same type as route preview).
|
|
12
|
-
|
|
13
|
-
## Usage
|
|
5
|
+
## Install
|
|
14
6
|
|
|
15
7
|
```bash
|
|
16
8
|
npm install ropegeo-common
|
|
17
9
|
```
|
|
18
10
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
} from 'ropegeo-common'
|
|
42
|
-
|
|
11
|
+
## Imports
|
|
12
|
+
|
|
13
|
+
- **Classes** — `import { … } from 'ropegeo-common/classes'` (or `import type { … }` for symbols that are type-only in TypeScript). The package entry `ropegeo-common` also re-exports everything from `./classes` for convenience.
|
|
14
|
+
- **Helpers** — `import { … } from 'ropegeo-common/helpers'` (and `import type { … }` for helper types such as `GetS3ObjectResult`).
|
|
15
|
+
|
|
16
|
+
Helper tables use columns **Name**, **Description**, **Import**. Class 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).
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
### General HTTP and async helpers (`src/helpers/`)
|
|
21
|
+
|
|
22
|
+
| Name | Description | Import |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| `httpRequest` | HTTP client wrapper: headers, throws on non-OK responses, optional Lambda proxy routing. | `import { httpRequest } from 'ropegeo-common/helpers'` |
|
|
25
|
+
| `ProgressLogger` | Progress logging utility. | `import { ProgressLogger } from 'ropegeo-common/helpers'` |
|
|
26
|
+
| `timeoutAfter` | Promise helper that rejects after a timeout. | `import { timeoutAfter } from 'ropegeo-common/helpers'` |
|
|
27
|
+
|
|
28
|
+
### S3 helpers (`src/helpers/s3/`)
|
|
29
|
+
|
|
30
|
+
| Name | Description | Import |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| `getS3Client` | Returns a shared S3 client (singleton for Lambda reuse). | `import { getS3Client } from 'ropegeo-common/helpers'` |
|
|
33
|
+
| `resetS3ClientForTests` | Resets the S3 client singleton (tests). | `import { resetS3ClientForTests } from 'ropegeo-common/helpers'` |
|
|
34
|
+
| `listS3Objects` | Lists objects under an S3 prefix with optional pagination. | `import { listS3Objects } from 'ropegeo-common/helpers'` |
|
|
35
|
+
| `S3ObjectEntry` | Entry shape for listed S3 objects. | `import type { S3ObjectEntry } from 'ropegeo-common/helpers'` |
|
|
36
|
+
| `getS3Object` | Reads an S3 object by bucket and key; returns body string and optional `Content-Type`. | `import { getS3Object } from 'ropegeo-common/helpers'` |
|
|
37
|
+
| `GetS3ObjectResult` | Result type for `getS3Object`. | `import type { GetS3ObjectResult } from 'ropegeo-common/helpers'` |
|
|
38
|
+
| `putS3Object` | Writes an object to S3. | `import { putS3Object } from 'ropegeo-common/helpers'` |
|
|
39
|
+
| `deleteS3Object` | Deletes an object from S3. | `import { deleteS3Object } from 'ropegeo-common/helpers'` |
|
|
40
|
+
| `listS3Folder` | Lists keys under a folder-like prefix. | `import { listS3Folder } from 'ropegeo-common/helpers'` |
|
|
41
|
+
| `putS3Folder` | Uploads multiple objects as a folder. | `import { putS3Folder } from 'ropegeo-common/helpers'` |
|
|
42
|
+
| `replaceS3Folder` | Replaces contents of a folder prefix (delete then upload). | `import { replaceS3Folder } from 'ropegeo-common/helpers'` |
|
|
43
|
+
|
|
44
|
+
### SQS helpers (`src/helpers/sqs/`)
|
|
45
|
+
|
|
46
|
+
| Name | Description | Import |
|
|
47
|
+
| --- | --- | --- |
|
|
48
|
+
| `getSQSClient` | Returns a shared SQS client. | `import { getSQSClient } from 'ropegeo-common/helpers'` |
|
|
49
|
+
| `resetSQSClientForTests` | Resets the SQS client singleton (tests). | `import { resetSQSClientForTests } from 'ropegeo-common/helpers'` |
|
|
50
|
+
| `sendSQSMessage` | Sends a message to an SQS queue. | `import { sendSQSMessage } from 'ropegeo-common/helpers'` |
|
|
51
|
+
| `deleteSQSMessage` | Deletes a message from a queue (e.g. after processing). | `import { deleteSQSMessage } from 'ropegeo-common/helpers'` |
|
|
52
|
+
| `changeSQSMessageVisibilityTimeout` | Changes visibility timeout for an in-flight message. | `import { changeSQSMessageVisibilityTimeout } from 'ropegeo-common/helpers'` |
|
|
53
|
+
|
|
54
|
+
### CloudFront helpers (`src/helpers/cloudfront/`)
|
|
55
|
+
|
|
56
|
+
| Name | Description | Import |
|
|
57
|
+
| --- | --- | --- |
|
|
58
|
+
| `createCloudFrontInvalidation` | Creates a CloudFront cache invalidation for the given distribution paths. | `import { createCloudFrontInvalidation } from 'ropegeo-common/helpers'` |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### Core enums (`src/classes/` root files)
|
|
63
|
+
|
|
64
|
+
| Name | Base class | Description | Import |
|
|
65
|
+
| --- | --- | --- | --- |
|
|
66
|
+
| `PageDataSource` | N/A | Where linked page content comes from (e.g. Ropewiki). | `import { PageDataSource } from 'ropegeo-common/classes'` |
|
|
67
|
+
| `PermitStatus` | N/A | Permit state for a canyon page (Yes, No, Restricted, Closed). | `import { PermitStatus } from 'ropegeo-common/classes'` |
|
|
68
|
+
|
|
69
|
+
### Difficulty (`src/classes/difficulty/`)
|
|
70
|
+
|
|
71
|
+
| Name | Base class | Description | Import |
|
|
72
|
+
| --- | --- | --- | --- |
|
|
73
|
+
| `DifficultyType` | N/A | Discriminator for difficulty scales (e.g. ACA). | `import { DifficultyType } from 'ropegeo-common/classes'` |
|
|
74
|
+
| `Difficulty` | N/A | Abstract base for page/route difficulty; `fromResult` dispatches by `difficultyType`. | `import { Difficulty } from 'ropegeo-common/classes'` |
|
|
75
|
+
| `registerDifficultyParser` | N/A | Registers a `Difficulty.fromResult` parser for a `DifficultyType`. | `import { registerDifficultyParser } from 'ropegeo-common/classes'` |
|
|
76
|
+
| `ACA_RISK_ORDER` | N/A | Numeric total order for ACA risk ratings. | `import { ACA_RISK_ORDER } from 'ropegeo-common/classes'` |
|
|
77
|
+
| `ACA_TECHNICAL_ORDER` | N/A | Numeric total order for ACA technical ratings. | `import { ACA_TECHNICAL_ORDER } from 'ropegeo-common/classes'` |
|
|
78
|
+
| `ACA_TIME_ORDER` | N/A | Numeric total order for ACA time ratings. | `import { ACA_TIME_ORDER } from 'ropegeo-common/classes'` |
|
|
79
|
+
| `ACA_WATER_ORDER` | N/A | Numeric total order for ACA water ratings. | `import { ACA_WATER_ORDER } from 'ropegeo-common/classes'` |
|
|
80
|
+
| `AcaTechnicalRating` | N/A | ACA technical rating enum (1–4). | `import { AcaTechnicalRating } from 'ropegeo-common/classes'` |
|
|
81
|
+
| `AcaWaterRating` | N/A | ACA water rating enum. | `import { AcaWaterRating } from 'ropegeo-common/classes'` |
|
|
82
|
+
| `AcaTimeRating` | N/A | ACA time rating enum (I–VI). | `import { AcaTimeRating } from 'ropegeo-common/classes'` |
|
|
83
|
+
| `AcaRiskRating` | N/A | ACA risk rating enum. | `import { AcaRiskRating } from 'ropegeo-common/classes'` |
|
|
84
|
+
| `RISK_ORDER` | N/A | Deprecated alias for `ACA_RISK_ORDER`. | `import { RISK_ORDER } from 'ropegeo-common/classes'` |
|
|
85
|
+
| `AcaDifficulty` | `Difficulty` | ACA difficulty from DB/API strings; raw vs effective risk. | `import { AcaDifficulty } from 'ropegeo-common/classes'` |
|
|
86
|
+
| `DifficultyTechnical` | N/A | Deprecated alias for `AcaTechnicalRating`. | `import { DifficultyTechnical } from 'ropegeo-common/classes'` |
|
|
87
|
+
| `DifficultyWater` | N/A | Deprecated alias for `AcaWaterRating`. | `import { DifficultyWater } from 'ropegeo-common/classes'` |
|
|
88
|
+
| `DifficultyTime` | N/A | Deprecated alias for `AcaTimeRating`. | `import { DifficultyTime } from 'ropegeo-common/classes'` |
|
|
89
|
+
| `DifficultyRisk` | N/A | Deprecated alias for `AcaRiskRating`. | `import { DifficultyRisk } from 'ropegeo-common/classes'` |
|
|
90
|
+
|
|
91
|
+
### Request parameters (`src/classes/requestParams/`)
|
|
92
|
+
|
|
93
|
+
| Name | Base class | Description | Import |
|
|
94
|
+
| --- | --- | --- | --- |
|
|
95
|
+
| `DifficultyParams` | N/A | Abstract GET-query difficulty filter; `fromQueryStringParams` / `fromResult`. | `import { DifficultyParams } from 'ropegeo-common/classes'` |
|
|
96
|
+
| `DifficultyParamsQueryRecord` | N/A | Flat string map for difficulty query parsing. | `import type { DifficultyParamsQueryRecord } from 'ropegeo-common/classes'` |
|
|
97
|
+
| `registerDifficultyParamsQueryInference` | N/A | Registers inference when `difficulty-type` is omitted. | `import { registerDifficultyParamsQueryInference } from 'ropegeo-common/classes'` |
|
|
98
|
+
| `registerDifficultyParamsQueryParser` | N/A | Registers a query parser for a `DifficultyType`. | `import { registerDifficultyParamsQueryParser } from 'ropegeo-common/classes'` |
|
|
99
|
+
| `isDifficultyParamsActive` | N/A | True if difficulty params are non-null and active. | `import { isDifficultyParamsActive } from 'ropegeo-common/classes'` |
|
|
100
|
+
| `AcaDifficultyParams` | `DifficultyParams` | ACA pipe-list allow-lists for routes/search query strings. | `import { AcaDifficultyParams } from 'ropegeo-common/classes'` |
|
|
101
|
+
| `Q_DIFFICULTY_TYPE` | N/A | Query key constant for difficulty type. | `import { Q_DIFFICULTY_TYPE } from 'ropegeo-common/classes'` |
|
|
102
|
+
| `Q_ACA_TECHNICAL` | N/A | Query key for ACA technical rating list. | `import { Q_ACA_TECHNICAL } from 'ropegeo-common/classes'` |
|
|
103
|
+
| `Q_ACA_WATER` | N/A | Query key for ACA water rating list. | `import { Q_ACA_WATER } from 'ropegeo-common/classes'` |
|
|
104
|
+
| `Q_ACA_TIME` | N/A | Query key for ACA time rating list. | `import { Q_ACA_TIME } from 'ropegeo-common/classes'` |
|
|
105
|
+
| `Q_ACA_RISK` | N/A | Query key for ACA risk rating list. | `import { Q_ACA_RISK } from 'ropegeo-common/classes'` |
|
|
106
|
+
| `RoutesParams` | N/A | Validated GET /routes params (region, source, route type, difficulty). | `import { RoutesParams } from 'ropegeo-common/classes'` |
|
|
107
|
+
| `SearchParams` | `CursorPaginationParams` | Validated GET /search params including cursor pagination and difficulty. | `import { SearchParams } from 'ropegeo-common/classes'` |
|
|
108
|
+
| `SearchOrder` | N/A | Search sort order (`similarity` \| `quality` \| `distance`). | `import type { SearchOrder } from 'ropegeo-common/classes'` |
|
|
109
|
+
| `SearchParamsPosition` | N/A | `{ lat, lon }` for distance search. | `import type { SearchParamsPosition } from 'ropegeo-common/classes'` |
|
|
110
|
+
|
|
111
|
+
### Persisted filters (`src/classes/filters/`)
|
|
112
|
+
|
|
113
|
+
| Name | Base class | Description | Import |
|
|
114
|
+
| --- | --- | --- | --- |
|
|
115
|
+
| `DifficultyFilterOptions` | N/A | Abstract saved/modal difficulty filter; `fromResult` by `difficultyType`. | `import { DifficultyFilterOptions } from 'ropegeo-common/classes'` |
|
|
116
|
+
| `registerDifficultyFilterOptionsParser` | N/A | Registers `DifficultyFilterOptions.fromResult` for a scale. | `import { registerDifficultyFilterOptionsParser } from 'ropegeo-common/classes'` |
|
|
117
|
+
| `TechnicalMinMax` | N/A | Inclusive ACA technical min/max for filter UI. | `import { TechnicalMinMax } from 'ropegeo-common/classes'` |
|
|
118
|
+
| `WaterMinMax` | N/A | Inclusive ACA water min/max. | `import { WaterMinMax } from 'ropegeo-common/classes'` |
|
|
119
|
+
| `TimeMinMax` | N/A | Inclusive ACA time min/max. | `import { TimeMinMax } from 'ropegeo-common/classes'` |
|
|
120
|
+
| `RiskMinMax` | N/A | Inclusive ACA risk min/max. | `import { RiskMinMax } from 'ropegeo-common/classes'` |
|
|
121
|
+
| `AcaDifficultyFilterOptions` | `DifficultyFilterOptions` | ACA filter options; expands to `AcaDifficultyParams`. | `import { AcaDifficultyFilterOptions } from 'ropegeo-common/classes'` |
|
|
122
|
+
| `RouteFilter` | N/A | Persisted explore/minimap route filter → `RoutesParams`. | `import { RouteFilter } from 'ropegeo-common/classes'` |
|
|
123
|
+
| `SearchFilter` | N/A | Persisted mobile search filter → `SearchParams`. | `import { SearchFilter } from 'ropegeo-common/classes'` |
|
|
124
|
+
| `SavedPagesFilter` | N/A | Saved-pages list filter (name, order, difficulty). | `import { SavedPagesFilter } from 'ropegeo-common/classes'` |
|
|
125
|
+
| `SavedPagesOrder` | N/A | `'newest'` \| `'oldest'`. | `import type { SavedPagesOrder } from 'ropegeo-common/classes'` |
|
|
126
|
+
| `SavedFilters` | N/A | Bundle of explore, search, and saved-pages filter slots. | `import { SavedFilters } from 'ropegeo-common/classes'` |
|
|
127
|
+
|
|
128
|
+
### Previews (`src/classes/previews/`)
|
|
129
|
+
|
|
130
|
+
| Name | Base class | Description | Import |
|
|
131
|
+
| --- | --- | --- | --- |
|
|
132
|
+
| `PreviewType` | N/A | Discriminator for search hit kind (page vs region). | `import { PreviewType } from 'ropegeo-common/classes'` |
|
|
133
|
+
| `Preview` | N/A | Abstract union base for search/route preview payloads. | `import { Preview } from 'ropegeo-common/classes'` |
|
|
134
|
+
| `GetRopewikiPagePreviewRow` | N/A | DB row shape for building `PagePreview` from Ropewiki. | `import type { GetRopewikiPagePreviewRow } from 'ropegeo-common/classes'` |
|
|
135
|
+
| `PagePreview` | `Preview` | Page preview (route preview and search hits). | `import { PagePreview } from 'ropegeo-common/classes'` |
|
|
136
|
+
| `RegionPreview` | `Preview` | Region search preview. | `import { RegionPreview } from 'ropegeo-common/classes'` |
|
|
137
|
+
|
|
138
|
+
### Route domain (`src/classes/routes/`)
|
|
139
|
+
|
|
140
|
+
| Name | Base class | Description | Import |
|
|
141
|
+
| --- | --- | --- | --- |
|
|
142
|
+
| `RouteType` | N/A | Canyon, Cave, POI, Unknown. | `import { RouteType } from 'ropegeo-common/classes'` |
|
|
143
|
+
| `Route` | N/A | Route entity for APIs. | `import { Route } from 'ropegeo-common/classes'` |
|
|
144
|
+
| `RouteGeoJsonFeature` | N/A | One GeoJSON feature in the routes collection. | `import { RouteGeoJsonFeature } from 'ropegeo-common/classes'` |
|
|
145
|
+
|
|
146
|
+
### Routes GeoJSON API (`src/classes/api/getRoutes/`)
|
|
147
|
+
|
|
148
|
+
| Name | Base class | Description | Import |
|
|
149
|
+
| --- | --- | --- | --- |
|
|
150
|
+
| `RoutesGeojson` | N/A | FeatureCollection wrapper; `fromRoutes` builder. | `import { RoutesGeojson } from 'ropegeo-common/classes'` |
|
|
151
|
+
| `RoutesGeojsonResult` | `Result` | API wrapper for GET routes GeoJSON response. | `import { RoutesGeojsonResult } from 'ropegeo-common/classes'` |
|
|
152
|
+
|
|
153
|
+
### Route preview API (`src/classes/api/getRoutePreview/`)
|
|
154
|
+
|
|
155
|
+
| Name | Base class | Description | Import |
|
|
156
|
+
| --- | --- | --- | --- |
|
|
157
|
+
| `RoutePreviewResult` | `Result` | Result for GET route preview (page previews array). | `import { RoutePreviewResult } from 'ropegeo-common/classes'` |
|
|
158
|
+
|
|
159
|
+
### Ropewiki page view API (`src/classes/api/getRopewikiPageView/`)
|
|
160
|
+
|
|
161
|
+
| Name | Base class | Description | Import |
|
|
162
|
+
| --- | --- | --- | --- |
|
|
163
|
+
| `RopewikiPageView` | N/A | Full Ropewiki page view (sections, images, minimap). | `import { RopewikiPageView } from 'ropegeo-common/classes'` |
|
|
164
|
+
| `RopewikiPageViewResult` | `Result` | API result wrapping `RopewikiPageView`. | `import { RopewikiPageViewResult } from 'ropegeo-common/classes'` |
|
|
165
|
+
|
|
166
|
+
### Page link preview API (`src/classes/api/getRopewikiPageLinkPreview/`)
|
|
167
|
+
|
|
168
|
+
| Name | Base class | Description | Import |
|
|
169
|
+
| --- | --- | --- | --- |
|
|
170
|
+
| `RopewikiPageLinkPreviewResult` | `Result` | Result for lightweight link preview. | `import { RopewikiPageLinkPreviewResult } from 'ropegeo-common/classes'` |
|
|
171
|
+
|
|
172
|
+
### Map data tile keys API (`src/classes/api/listMapDataTileKeys/`)
|
|
173
|
+
|
|
174
|
+
| Name | Base class | Description | Import |
|
|
175
|
+
| --- | --- | --- | --- |
|
|
176
|
+
| `MapDataTileKeysResults` | `PaginationResults` | Page-based pagination of map tile keys (`total`, `page`, `totalBytes`). | `import { MapDataTileKeysResults } from 'ropegeo-common/classes'` |
|
|
177
|
+
|
|
178
|
+
### Search API (`src/classes/api/search/`)
|
|
179
|
+
|
|
180
|
+
| Name | Base class | Description | Import |
|
|
181
|
+
| --- | --- | --- | --- |
|
|
182
|
+
| `SearchResults` | `CursorPaginationResults` | Cursor-paginated search response (`Preview` items). | `import { SearchResults } from 'ropegeo-common/classes'` |
|
|
183
|
+
|
|
184
|
+
### Ropewiki region view API (`src/classes/api/getRopewikiRegionView/`)
|
|
185
|
+
|
|
186
|
+
| Name | Base class | Description | Import |
|
|
187
|
+
| --- | --- | --- | --- |
|
|
188
|
+
| `RopewikiRegionView` | N/A | Region detail view payload. | `import { RopewikiRegionView } from 'ropegeo-common/classes'` |
|
|
189
|
+
| `RopewikiRegionViewResult` | `Result` | API result wrapping region view. | `import { RopewikiRegionViewResult } from 'ropegeo-common/classes'` |
|
|
190
|
+
|
|
191
|
+
### Ropewiki region previews API (`src/classes/api/getRopewikiRegionPreviews/`)
|
|
192
|
+
|
|
193
|
+
| Name | Base class | Description | Import |
|
|
194
|
+
| --- | --- | --- | --- |
|
|
195
|
+
| `RopewikiRegionPreviewsParams` | `CursorPaginationParams` | Query/cursor params for region previews. | `import { RopewikiRegionPreviewsParams } from 'ropegeo-common/classes'` |
|
|
196
|
+
| `RopewikiRegionPreviewsResult` | `CursorPaginationResults` | Cursor-paginated region previews (`Preview`). | `import { RopewikiRegionPreviewsResult } from 'ropegeo-common/classes'` |
|
|
197
|
+
|
|
198
|
+
### Ropewiki region images API (`src/classes/api/getRopewikiRegionImages/`)
|
|
199
|
+
|
|
200
|
+
| Name | Base class | Description | Import |
|
|
201
|
+
| --- | --- | --- | --- |
|
|
202
|
+
| `RopewikiRegionImageView` | N/A | One image row in region images list. | `import { RopewikiRegionImageView } from 'ropegeo-common/classes'` |
|
|
203
|
+
| `RopewikiRegionImageViewRow` | N/A | Raw row shape for region image views. | `import type { RopewikiRegionImageViewRow } from 'ropegeo-common/classes'` |
|
|
204
|
+
| `RopewikiRegionImagesParams` | `CursorPaginationParams` | Query/cursor params for region images. | `import { RopewikiRegionImagesParams } from 'ropegeo-common/classes'` |
|
|
205
|
+
| `RopewikiRegionImagesResult` | `CursorPaginationResults` | Cursor-paginated region images. | `import { RopewikiRegionImagesResult } from 'ropegeo-common/classes'` |
|
|
206
|
+
|
|
207
|
+
### Beta sections (`src/classes/betaSections/`)
|
|
208
|
+
|
|
209
|
+
| Name | Base class | Description | Import |
|
|
210
|
+
| --- | --- | --- | --- |
|
|
211
|
+
| `BetaSectionImage` | N/A | Image in a beta section (URLs, pagination bytes). | `import { BetaSectionImage } from 'ropegeo-common/classes'` |
|
|
212
|
+
| `RopewikiImageView` | N/A | Type alias of `BetaSectionImage` for Ropewiki page view typings. | `import type { RopewikiImageView } from 'ropegeo-common/classes'` |
|
|
213
|
+
| `DownloadBytes` | N/A | Preview/banner/full byte sizes for downloads. | `import { DownloadBytes } from 'ropegeo-common/classes'` |
|
|
214
|
+
| `BetaSection` | N/A | Beta section with images. | `import { BetaSection } from 'ropegeo-common/classes'` |
|
|
215
|
+
| `RopewikiBetaSectionView` | N/A | Type alias of `BetaSection` for Ropewiki page view typings. | `import type { RopewikiBetaSectionView } from 'ropegeo-common/classes'` |
|
|
216
|
+
|
|
217
|
+
### Minimap (`src/classes/minimap/`)
|
|
218
|
+
|
|
219
|
+
| Name | Base class | Description | Import |
|
|
220
|
+
| --- | --- | --- | --- |
|
|
221
|
+
| `Bounds` | N/A | Geographic bounding box. | `import { Bounds } from 'ropegeo-common/classes'` |
|
|
222
|
+
| `MiniMapType` | N/A | Minimap discriminator (e.g. GeoJSON). | `import { MiniMapType } from 'ropegeo-common/classes'` |
|
|
223
|
+
| `MiniMap` | N/A | Abstract base for page/region minimaps. | `import { MiniMap } from 'ropegeo-common/classes'` |
|
|
224
|
+
| `RegionMiniMap` | `MiniMap` | Region minimap payload. | `import { RegionMiniMap } from 'ropegeo-common/classes'` |
|
|
225
|
+
| `PageMiniMap` | `MiniMap` | Page minimap payload. | `import { PageMiniMap } from 'ropegeo-common/classes'` |
|
|
226
|
+
|
|
227
|
+
### Link preview (`src/classes/linkPreview/`)
|
|
228
|
+
|
|
229
|
+
| Name | Base class | Description | Import |
|
|
230
|
+
| --- | --- | --- | --- |
|
|
231
|
+
| `LinkPreview` | N/A | Generic link preview (title, image, URL). | `import { LinkPreview } from 'ropegeo-common/classes'` |
|
|
232
|
+
| `LinkPreviewImage` | N/A | Image sub-object for link previews. | `import { LinkPreviewImage } from 'ropegeo-common/classes'` |
|
|
233
|
+
|
|
234
|
+
### Cursors (`src/classes/cursors/`)
|
|
235
|
+
|
|
236
|
+
| Name | Base class | Description | Import |
|
|
237
|
+
| --- | --- | --- | --- |
|
|
238
|
+
| `CursorType` | N/A | Discriminator for cursor encodings. | `import { CursorType } from 'ropegeo-common/classes'` |
|
|
239
|
+
| `Cursor` | N/A | Abstract base for typed API cursors. | `import { Cursor } from 'ropegeo-common/classes'` |
|
|
240
|
+
| `SearchCursor` | `Cursor` | Search pagination cursor (base64). | `import { SearchCursor } from 'ropegeo-common/classes'` |
|
|
241
|
+
| `SearchCursorType` | N/A | Type alias for search cursor payload typing. | `import type { SearchCursorType } from 'ropegeo-common/classes'` |
|
|
242
|
+
| `RegionPreviewsCursor` | `Cursor` | Cursor for region previews pagination. | `import { RegionPreviewsCursor } from 'ropegeo-common/classes'` |
|
|
243
|
+
| `RegionImagesCursor` | `Cursor` | Cursor for region images pagination. | `import { RegionImagesCursor } from 'ropegeo-common/classes'` |
|
|
244
|
+
|
|
245
|
+
### Pagination params (`src/classes/params/`)
|
|
246
|
+
|
|
247
|
+
| Name | Base class | Description | Import |
|
|
248
|
+
| --- | --- | --- | --- |
|
|
249
|
+
| `CursorPaginationParams` | N/A | Abstract limit + optional encoded cursor for GET APIs. | `import { CursorPaginationParams } from 'ropegeo-common/classes'` |
|
|
250
|
+
|
|
251
|
+
### Result wrappers (`src/classes/results/`)
|
|
252
|
+
|
|
253
|
+
| Name | Base class | Description | Import |
|
|
254
|
+
| --- | --- | --- | --- |
|
|
255
|
+
| `ResultType` | N/A | Discriminator enum for single-result API wrappers. | `import { ResultType } from 'ropegeo-common/classes'` |
|
|
256
|
+
| `Result` | N/A | Abstract single-result response; `fromResponseBody` dispatches to parsers. | `import { Result } from 'ropegeo-common/classes'` |
|
|
257
|
+
| `registerResultParser` | N/A | Registers `Result.fromResponseBody` for a `ResultType`. | `import { registerResultParser } from 'ropegeo-common/classes'` |
|
|
258
|
+
| `CursorPaginationResultType` | N/A | Discriminator for cursor-paginated result wrappers. | `import { CursorPaginationResultType } from 'ropegeo-common/classes'` |
|
|
259
|
+
| `CursorPaginationResults` | N/A | Abstract `results` + `nextCursor` response shape. | `import { CursorPaginationResults } from 'ropegeo-common/classes'` |
|
|
260
|
+
| `ValidatedCursorPaginationResponse` | N/A | Validated inner shape passed to specific cursor result classes. | `import type { ValidatedCursorPaginationResponse } from 'ropegeo-common/classes'` |
|
|
261
|
+
| `registerCursorPaginationParser` | N/A | Registers parser for a `CursorPaginationResultType`. | `import { registerCursorPaginationParser } from 'ropegeo-common/classes'` |
|
|
262
|
+
| `PaginationResultType` | N/A | Discriminator for page-based paginated result wrappers. | `import { PaginationResultType } from 'ropegeo-common/classes'` |
|
|
263
|
+
| `PaginationResults` | N/A | Abstract `results` + `total` + `page` response shape. | `import { PaginationResults } from 'ropegeo-common/classes'` |
|
|
264
|
+
| `ValidatedPaginationResponse` | N/A | Validated inner shape for page-based pagination. | `import type { ValidatedPaginationResponse } from 'ropegeo-common/classes'` |
|
|
265
|
+
| `registerPaginationParser` | N/A | Registers parser for a `PaginationResultType`. | `import { registerPaginationParser } from 'ropegeo-common/classes'` |
|
|
266
|
+
|
|
267
|
+
### Mobile / offline (`src/classes/mobile/`)
|
|
268
|
+
|
|
269
|
+
| Name | Base class | Description | Import |
|
|
270
|
+
| --- | --- | --- | --- |
|
|
271
|
+
| `ImageVersion` | N/A | Enum of cached image variant kinds. | `import { ImageVersion } from 'ropegeo-common/classes'` |
|
|
272
|
+
| `VERSION_FORMAT` | N/A | Format constant for version strings. | `import { VERSION_FORMAT } from 'ropegeo-common/classes'` |
|
|
273
|
+
| `ImageVersions` | N/A | Map of image URLs by `ImageVersion`; `fromResult` for persisted JSON. | `import { ImageVersions } from 'ropegeo-common/classes'` |
|
|
274
|
+
| `SavedPage` | N/A | Offline saved page record (`PagePreview` + metadata). | `import { SavedPage } from 'ropegeo-common/classes'` |
|
|
275
|
+
|
|
276
|
+
---
|
|
43
277
|
|
|
44
278
|
## Related repos
|
|
45
279
|
|
|
46
|
-
- **[RopeGeo](https://github.com/yurst3/RopeGeo)**
|
|
47
|
-
- **[WebScraper](https://github.com/yurst3/WebScraper)**
|
|
280
|
+
- **[RopeGeo](https://github.com/yurst3/RopeGeo)** — Expo app for canyoneering maps and route data.
|
|
281
|
+
- **[WebScraper](https://github.com/yurst3/WebScraper)** — Lambdas and jobs that scrape canyoneering sites (e.g. Ropewiki), parse data, and store it for the API.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiPageLinkPreviewResult.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiPageLinkPreview/ropewikiPageLinkPreviewResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,MAAM,CAAC,WAAW,CAAC;aACtC,MAAM,EAAE,WAAW;gBAAnB,MAAM,EAAE,WAAW;IAI/C;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,6BAA6B;CAIpE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import '../../difficulty/registerDifficultyParsers';
|
|
2
|
+
import { Difficulty } from '../../difficulty/difficulty';
|
|
2
3
|
import { PermitStatus } from '../../permitStatus';
|
|
3
4
|
import { BetaSection } from '../../betaSections/betaSection';
|
|
4
5
|
import { BetaSectionImage } from '../../betaSections/betaSectionImage';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiPageView.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiPageView/ropewikiPageView.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RopewikiPageView = void 0;
|
|
4
|
-
|
|
4
|
+
require("../../difficulty/registerDifficultyParsers");
|
|
5
|
+
const difficulty_1 = require("../../difficulty/difficulty");
|
|
5
6
|
const permitStatus_1 = require("../../permitStatus");
|
|
6
7
|
const betaSection_1 = require("../../betaSections/betaSection");
|
|
7
8
|
const betaSectionImage_1 = require("../../betaSections/betaSectionImage");
|
|
@@ -82,7 +83,7 @@ class RopewikiPageView {
|
|
|
82
83
|
RopewikiPageView.assertBetaSectionsArray(r, 'betaSections');
|
|
83
84
|
RopewikiPageView.assertNullableMiniMap(r, 'miniMap');
|
|
84
85
|
r.latestRevisionDate = new Date(r.latestRevisionDate);
|
|
85
|
-
r.difficulty =
|
|
86
|
+
r.difficulty = difficulty_1.Difficulty.fromResult(r.difficulty);
|
|
86
87
|
if (r.miniMap != null && r.miniMap !== undefined) {
|
|
87
88
|
r.miniMap = pageMiniMap_1.PageMiniMap.fromResult(r.miniMap);
|
|
88
89
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiPageViewResult.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiPageView/ropewikiPageViewResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,MAAM,CAAC,gBAAgB,CAAC;aACpC,MAAM,EAAE,gBAAgB;gBAAxB,MAAM,EAAE,gBAAgB;IAIpD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB;CAI7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiRegionImageView.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiRegionImages/ropewikiRegionImageView.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEhB,GAAG,EAAE,0BAA0B;IAU3C;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB;IAgB3D,OAAO,CAAC,MAAM,CAAC,YAAY;IAS3B,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAYtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiRegionImagesParams.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiRegionImages/ropewikiRegionImagesParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAItE;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,sBAAsB,CAAC,kBAAkB,CAAC;gBAC1E,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAsBjD,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,0BAA0B;IAOpE;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CACxB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,0BAA0B;CAOhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiRegionImagesResult.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiRegionImages/ropewikiRegionImagesResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EACH,uBAAuB,EACvB,KAAK,iCAAiC,EAGzC,MAAM,uCAAuC,CAAC;AAE/C;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,uBAAuB,CAAC,uBAAuB,CAAC;gBAExF,OAAO,EAAE,uBAAuB,EAAE,EAClC,UAAU,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAWlD;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CACnB,IAAI,EAAE,iCAAiC,GACxC,0BAA0B;CAQhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiRegionPreviewsParams.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAI1E;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,sBAAsB,CAAC,oBAAoB,CAAC;gBAC9E,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAsBjD,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,4BAA4B;IAOtE;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CACxB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,4BAA4B;CAOlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiRegionPreviewsResult.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiRegionPreviews/ropewikiRegionPreviewsResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EACH,uBAAuB,EACvB,KAAK,iCAAiC,EAGzC,MAAM,uCAAuC,CAAC;AAE/C;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,uBAAuB,CAAC,OAAO,CAAC;gBAE1E,OAAO,EAAE,OAAO,EAAE,EAClB,UAAU,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI;IAWpD;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CACnB,IAAI,EAAE,iCAAiC,GACxC,4BAA4B;CAQlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiRegionView.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiRegionView/ropewikiRegionView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,kBAAkB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,gHAAgH;IAChH,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,IAAI,CAAC;IACzB,wDAAwD;IACxD,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;gBAGpB,IAAI,EAAE,MAAM,EACZ,kBAAkB,EAAE,IAAI,EACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,EACxC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,EAC/B,4BAA4B,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAC5B,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI;IAqBlC;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,kBAAkB;IAmCtD,OAAO,CAAC,MAAM,CAAC,YAAY;IAS3B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAYnC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAarC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAYtC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA+BjC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAmBhC,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAkBtC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC,OAAO,CAAC,MAAM,CAAC,cAAc;CAkBhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ropewikiRegionViewResult.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRopewikiRegionView/ropewikiRegionViewResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,MAAM,CAAC,kBAAkB,CAAC;aACxC,MAAM,EAAE,kBAAkB;gBAA1B,MAAM,EAAE,kBAAkB;IAItD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,wBAAwB;CAI/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routePreviewResult.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRoutePreview/routePreviewResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAE,CAAC;aAC7B,MAAM,EAAE,WAAW,EAAE;gBAArB,MAAM,EAAE,WAAW,EAAE;IAIjD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,kBAAkB;CASzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routeGeojson.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRoutes/routeGeojson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;GAGG;AACH,qBAAa,aAAa;IACtB,IAAI,EAAE,mBAAmB,CAAuB;IAChD,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEV,QAAQ,EAAE,mBAAmB,EAAE,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW;IAKzE;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,UAAQ,GAAG,aAAa;IASrE,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAkBtC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa;IAoBjD,OAAO,CAAC,MAAM,CAAC,aAAa;IAa5B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAYlC,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAYtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routesGeojsonResult.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/getRoutes/routesGeojsonResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,MAAM,CAAC,aAAa,CAAC;aAC9B,MAAM,EAAE,aAAa;gBAArB,MAAM,EAAE,aAAa;IAIjD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,mBAAmB;CAI1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapDataTileKeysResults.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/listMapDataTileKeys/mapDataTileKeysResults.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EAGjB,KAAK,2BAA2B,EACnC,MAAM,iCAAiC,CAAC;AAEzC;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IACjE,SAAiB,UAAU,EAAE,MAAM,CAAC;gBAExB,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI9E;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,2BAA2B,GACvC,sBAAsB;IAmBzB,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAgBlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchResults.d.ts","sourceRoot":"","sources":["../../../../src/classes/api/search/searchResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACH,uBAAuB,EACvB,KAAK,iCAAiC,EAGzC,MAAM,uCAAuC,CAAC;AAE/C,qBAAa,aAAc,SAAQ,uBAAuB,CAAC,OAAO,CAAC;gBACnD,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAQxE;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,iCAAiC,GAAG,aAAa;CAQlF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"betaSection.d.ts","sourceRoot":"","sources":["../../../src/classes/betaSections/betaSection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,WAAW;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,kBAAkB,EAAE,IAAI,CAAC;gBAGrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,kBAAkB,EAAE,IAAI,EACxB,MAAM,CAAC,EAAE,gBAAgB,EAAE;IAS/B;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW;IAiBnD,OAAO,CAAC,MAAM,CAAC,YAAY;IAS3B,OAAO,CAAC,MAAM,CAAC,YAAY;IAS3B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAehC,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAiBzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"betaSectionImage.d.ts","sourceRoot":"","sources":["../../../src/classes/betaSections/betaSectionImage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,qBAAa,gBAAgB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,kBAAkB,EAAE,IAAI,CAAC;IACzB,+DAA+D;IAC/D,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;gBAGhC,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,kBAAkB,EAAE,IAAI,EACxB,aAAa,EAAE,aAAa,GAAG,IAAI;IAYvC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB;IAoBpD,OAAO,CAAC,MAAM,CAAC,YAAY;IAS3B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IASnC,OAAO,CAAC,MAAM,CAAC,YAAY;IAS3B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAYjC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAYxC,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAiBzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloadBytes.d.ts","sourceRoot":"","sources":["../../../src/classes/betaSections/downloadBytes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMzD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa;IAYjD,OAAO,CAAC,MAAM,CAAC,6BAA6B;CAgB/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/classes/cursors/cursor.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,cAAc,oBAAoB;IAClC,YAAY,kBAAkB;CACjC;AAuBD;;;GAGG;AACH,8BAAsB,MAAM;IACxB,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEzC,0EAA0E;IAC1E,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEvD,YAAY,IAAI,MAAM;IAMtB;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkB7F;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,MAAM,GACnB,IAAI;CAUV"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regionImagesCursor.d.ts","sourceRoot":"","sources":["../../../src/classes/cursors/regionImagesCursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,MAAM;aAItB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;aACd,OAAO,EAAE,MAAM;IALnC,QAAQ,CAAC,UAAU,2BAA2B;gBAG1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM;IAKnC,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;CAqB3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regionPreviewsCursor.d.ts","sourceRoot":"","sources":["../../../src/classes/cursors/regionPreviewsCursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,MAAM;aAIxB,OAAO,EAAE,MAAM;aACf,IAAI,EAAE,MAAM;aACZ,EAAE,EAAE,MAAM;IAL9B,QAAQ,CAAC,UAAU,6BAA6B;gBAG5B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM;IAK9B,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;CAqB7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchCursor.d.ts","sourceRoot":"","sources":["../../../src/classes/cursors/searchCursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAa,SAAQ,MAAM;aAIhB,OAAO,EAAE,MAAM;aACf,IAAI,EAAE,gBAAgB;aACtB,EAAE,EAAE,MAAM;IAL9B,QAAQ,CAAC,UAAU,qBAAqB;gBAGpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,MAAM;IAK9B,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;CAoBrD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Difficulty, DifficultyType } from './difficulty';
|
|
2
|
+
import { AcaRiskRating, AcaTechnicalRating, AcaTimeRating, AcaWaterRating } from './acaRatings';
|
|
3
|
+
/**
|
|
4
|
+
* ACA canyon difficulty from DB strings. `risk` is the raw stored value; `effectiveRisk`
|
|
5
|
+
* applies the technical default floor when `risk` is null or milder than that default.
|
|
6
|
+
*/
|
|
7
|
+
export declare class AcaDifficulty extends Difficulty {
|
|
8
|
+
readonly difficultyType = DifficultyType.ACA;
|
|
9
|
+
readonly technical: AcaTechnicalRating | null;
|
|
10
|
+
readonly water: AcaWaterRating | null;
|
|
11
|
+
readonly time: AcaTimeRating | null;
|
|
12
|
+
/** Raw risk from ropewiki (`riskRating` column), after enum parse; null if unset. */
|
|
13
|
+
readonly risk: AcaRiskRating | null;
|
|
14
|
+
/** Risk used for display and sorting (never milder than the default implied by technical). */
|
|
15
|
+
readonly effectiveRisk: AcaRiskRating | null;
|
|
16
|
+
constructor(technicalRating: string | null | undefined, waterRating: string | null | undefined, timeRating: string | null | undefined, riskRating: string | null | undefined);
|
|
17
|
+
getEffectiveRiskForDisplay(): AcaRiskRating | null;
|
|
18
|
+
private static assignParts;
|
|
19
|
+
private static defaultRiskFromTechnical;
|
|
20
|
+
private static computeEffectiveRisk;
|
|
21
|
+
private static parseField;
|
|
22
|
+
/**
|
|
23
|
+
* Parses JSON/API objects: `difficultyType: 'ACA'` (optional when dispatched via
|
|
24
|
+
* {@link Difficulty.fromResult}), `technical`, `water`, `time`, `risk` (raw), optional
|
|
25
|
+
* `effectiveRisk` override.
|
|
26
|
+
*/
|
|
27
|
+
static fromResult(result: unknown): AcaDifficulty;
|
|
28
|
+
private static coerceOptionalString;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=acaDifficulty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acaDifficulty.d.ts","sourceRoot":"","sources":["../../../src/classes/difficulty/acaDifficulty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAA4B,MAAM,cAAc,CAAC;AACpF,OAAO,EAEH,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,cAAc,EACjB,MAAM,cAAc,CAAC;AAUtB;;;GAGG;AACH,qBAAa,aAAc,SAAQ,UAAU;IACzC,QAAQ,CAAC,cAAc,sBAAsB;IAE7C,QAAQ,CAAC,SAAS,EAAG,kBAAkB,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAG,cAAc,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAG,aAAa,GAAG,IAAI,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAG,aAAa,GAAG,IAAI,CAAC;IACrC,8FAA8F;IAC9F,QAAQ,CAAC,aAAa,EAAG,aAAa,GAAG,IAAI,CAAC;gBAG1C,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACrC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAiCzC,0BAA0B,IAAI,aAAa,GAAG,IAAI;IAIlD,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAcvC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAanC,OAAO,CAAC,MAAM,CAAC,UAAU;IAezB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa;IAuCjD,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAOtC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AcaDifficulty = void 0;
|
|
4
|
+
const difficulty_1 = require("./difficulty");
|
|
5
|
+
const acaRatings_1 = require("./acaRatings");
|
|
6
|
+
/**
|
|
7
|
+
* ACA canyon difficulty from DB strings. `risk` is the raw stored value; `effectiveRisk`
|
|
8
|
+
* applies the technical default floor when `risk` is null or milder than that default.
|
|
9
|
+
*/
|
|
10
|
+
class AcaDifficulty extends difficulty_1.Difficulty {
|
|
11
|
+
constructor(technicalRating, waterRating, timeRating, riskRating) {
|
|
12
|
+
super();
|
|
13
|
+
this.difficultyType = difficulty_1.DifficultyType.ACA;
|
|
14
|
+
const technical = AcaDifficulty.parseField(technicalRating, Object.values(acaRatings_1.AcaTechnicalRating), 'technical');
|
|
15
|
+
const water = AcaDifficulty.parseField(waterRating, Object.values(acaRatings_1.AcaWaterRating), 'water');
|
|
16
|
+
const time = AcaDifficulty.parseField(timeRating, Object.values(acaRatings_1.AcaTimeRating), 'time');
|
|
17
|
+
const parsedRisk = AcaDifficulty.parseField(riskRating, Object.values(acaRatings_1.AcaRiskRating), 'risk');
|
|
18
|
+
const parts = {
|
|
19
|
+
technical,
|
|
20
|
+
water,
|
|
21
|
+
time,
|
|
22
|
+
risk: parsedRisk,
|
|
23
|
+
effectiveRisk: AcaDifficulty.computeEffectiveRisk(parsedRisk, technical),
|
|
24
|
+
};
|
|
25
|
+
AcaDifficulty.assignParts(this, parts);
|
|
26
|
+
}
|
|
27
|
+
getEffectiveRiskForDisplay() {
|
|
28
|
+
return this.effectiveRisk;
|
|
29
|
+
}
|
|
30
|
+
static assignParts(target, parts) {
|
|
31
|
+
target.technical = parts.technical;
|
|
32
|
+
target.water = parts.water;
|
|
33
|
+
target.time = parts.time;
|
|
34
|
+
target.risk = parts.risk;
|
|
35
|
+
target.effectiveRisk =
|
|
36
|
+
parts.effectiveRisk;
|
|
37
|
+
}
|
|
38
|
+
static defaultRiskFromTechnical(technical) {
|
|
39
|
+
if (technical === acaRatings_1.AcaTechnicalRating.One)
|
|
40
|
+
return acaRatings_1.AcaRiskRating.G;
|
|
41
|
+
if (technical === acaRatings_1.AcaTechnicalRating.Two)
|
|
42
|
+
return acaRatings_1.AcaRiskRating.PG;
|
|
43
|
+
if (technical === acaRatings_1.AcaTechnicalRating.Three ||
|
|
44
|
+
technical === acaRatings_1.AcaTechnicalRating.Four) {
|
|
45
|
+
return acaRatings_1.AcaRiskRating.PG13;
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
static computeEffectiveRisk(rawRisk, technical) {
|
|
50
|
+
const defaultRisk = AcaDifficulty.defaultRiskFromTechnical(technical);
|
|
51
|
+
if (rawRisk != null) {
|
|
52
|
+
return defaultRisk != null && acaRatings_1.ACA_RISK_ORDER[rawRisk] < acaRatings_1.ACA_RISK_ORDER[defaultRisk]
|
|
53
|
+
? defaultRisk
|
|
54
|
+
: rawRisk;
|
|
55
|
+
}
|
|
56
|
+
return defaultRisk;
|
|
57
|
+
}
|
|
58
|
+
static parseField(value, allowed, fieldName) {
|
|
59
|
+
if (value == null || value === '')
|
|
60
|
+
return null;
|
|
61
|
+
const trimmed = value.trim();
|
|
62
|
+
if (!allowed.includes(trimmed)) {
|
|
63
|
+
throw new Error(`Invalid difficulty ${fieldName}: "${value}" is not one of [${allowed.join(', ')}]`);
|
|
64
|
+
}
|
|
65
|
+
return trimmed;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Parses JSON/API objects: `difficultyType: 'ACA'` (optional when dispatched via
|
|
69
|
+
* {@link Difficulty.fromResult}), `technical`, `water`, `time`, `risk` (raw), optional
|
|
70
|
+
* `effectiveRisk` override.
|
|
71
|
+
*/
|
|
72
|
+
static fromResult(result) {
|
|
73
|
+
if (result == null || typeof result !== 'object') {
|
|
74
|
+
throw new Error('AcaDifficulty result must be an object');
|
|
75
|
+
}
|
|
76
|
+
const r = result;
|
|
77
|
+
const dtype = r.difficultyType ?? r.DifficultyType;
|
|
78
|
+
if (dtype !== undefined &&
|
|
79
|
+
dtype !== null &&
|
|
80
|
+
typeof dtype === 'string' &&
|
|
81
|
+
dtype.toUpperCase() !== difficulty_1.DifficultyType.ACA) {
|
|
82
|
+
throw new Error(`Unsupported difficultyType for AcaDifficulty.fromResult: ${JSON.stringify(dtype)}`);
|
|
83
|
+
}
|
|
84
|
+
const tech = AcaDifficulty.coerceOptionalString(r.technical ?? r.Technical);
|
|
85
|
+
const water = AcaDifficulty.coerceOptionalString(r.water ?? r.Water);
|
|
86
|
+
const time = AcaDifficulty.coerceOptionalString(r.time ?? r.Time);
|
|
87
|
+
const riskRaw = AcaDifficulty.coerceOptionalString(r.risk ?? r.Risk);
|
|
88
|
+
const effectiveRaw = AcaDifficulty.coerceOptionalString(r.effectiveRisk ?? r.EffectiveRisk);
|
|
89
|
+
if (effectiveRaw !== null) {
|
|
90
|
+
const inst = new AcaDifficulty(tech, water, time, riskRaw);
|
|
91
|
+
const effParsed = AcaDifficulty.parseField(effectiveRaw, Object.values(acaRatings_1.AcaRiskRating), 'effectiveRisk');
|
|
92
|
+
inst.effectiveRisk = effParsed;
|
|
93
|
+
return inst;
|
|
94
|
+
}
|
|
95
|
+
return new AcaDifficulty(tech, water, time, riskRaw);
|
|
96
|
+
}
|
|
97
|
+
static coerceOptionalString(v) {
|
|
98
|
+
if (v === undefined || v === null || v === '')
|
|
99
|
+
return null;
|
|
100
|
+
if (typeof v !== 'string') {
|
|
101
|
+
throw new Error('AcaDifficulty field must be string or null');
|
|
102
|
+
}
|
|
103
|
+
return v;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.AcaDifficulty = AcaDifficulty;
|
|
107
|
+
(0, difficulty_1.registerDifficultyParser)(difficulty_1.DifficultyType.ACA, (v) => AcaDifficulty.fromResult(v));
|