@jsm-mit/tigi-sharded-package 0.4.0 → 0.5.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 +10 -1
- package/declarations/core/core.did +120 -58
- package/declarations/core/core.did.d.ts +105 -56
- package/declarations/core/core.did.js +94 -59
- package/dist/actors/profiles-actor.d.ts +20 -1
- package/dist/actors/profiles-actor.d.ts.map +1 -1
- package/dist/actors/profiles-actor.js +46 -12
- package/dist/actors/rides-actor.d.ts.map +1 -1
- package/dist/actors/rides-actor.js +3 -5
- package/dist/interfaces.d.ts +20 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/mappers.d.ts +14 -1
- package/dist/mappers.d.ts.map +1 -1
- package/dist/mappers.js +45 -0
- package/package.json +6 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Identity } from "@icp-sdk/core/agent";
|
|
2
2
|
import { type GroupOptions } from "../group/canister-actor.js";
|
|
3
|
-
import type { MyRatingView, Profile, RideHistoryPage } from "../interfaces.js";
|
|
3
|
+
import type { MyRatingView, Profile, RateRideOutcome, RideHistoryEntry, RideHistoryPage } from "../interfaces.js";
|
|
4
4
|
/** KU-1: a page of the rider's history. */
|
|
5
5
|
export declare const RIDES_PAGE = 20;
|
|
6
6
|
export declare class ProfilesActor {
|
|
@@ -37,5 +37,24 @@ export declare class ProfilesActor {
|
|
|
37
37
|
* @throws Error with message `CriticalCanisterError` — the core could not be reached
|
|
38
38
|
*/
|
|
39
39
|
getMyRidesAsyncUnsafe(cursor?: string, limit?: number): Promise<RideHistoryPage>;
|
|
40
|
+
/**
|
|
41
|
+
* C-8, KU-4 (0.5.0): one line of the rider's history by its `rideRef` — for the details
|
|
42
|
+
* screen after a reload (Skąd, Dokąd) and to show the stars after a rating.
|
|
43
|
+
* @returns undefined while the ride is not in the core yet (K-9, KU-2: up to a minute)
|
|
44
|
+
* @throws Error with message `CanisterError` — `NotAuthorized` (anonymous, another rider's ride), `InvalidToken`
|
|
45
|
+
* @throws Error with message `CriticalCanisterError` — the core could not be reached
|
|
46
|
+
*/
|
|
47
|
+
getMyRideAsyncUnsafe(rideRef: string): Promise<RideHistoryEntry | undefined>;
|
|
48
|
+
/**
|
|
49
|
+
* KU-5 (0.5.0, core C-23): the rider rates the driver of a past ride, 1–5 stars, no
|
|
50
|
+
* comment (U-33). Only a completed ride, within 24 h of its end, once — a rating given
|
|
51
|
+
* live after the ride (`RideRequest.rateDriverAsyncUnsafe`) counts as the one. Show the
|
|
52
|
+
* stars only when `RideHistoryEntry.ratable`.
|
|
53
|
+
* @returns `ok` | `alreadyRated` | `notRatable` | `notAuthorized` (see `RateRideOutcome`)
|
|
54
|
+
* @throws Error with message `CanisterError` — `InvalidData` (stars outside 1–5), `InvalidToken`
|
|
55
|
+
* @throws Error with message `CallRefusedAtInspectionStage` — anonymous, or the daily limit (20, shared with the profile)
|
|
56
|
+
* @throws Error with message `CriticalCanisterError` — the core could not be reached
|
|
57
|
+
*/
|
|
58
|
+
ratePastRideAsyncUnsafe(rideRef: string, stars: number): Promise<RateRideOutcome>;
|
|
40
59
|
}
|
|
41
60
|
//# sourceMappingURL=profiles-actor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles-actor.d.ts","sourceRoot":"","sources":["../../src/actors/profiles-actor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,
|
|
1
|
+
{"version":3,"file":"profiles-actor.d.ts","sourceRoot":"","sources":["../../src/actors/profiles-actor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAiD,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9G,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGlH,2CAA2C;AAC3C,eAAO,MAAM,UAAU,KAAK,CAAC;AAQ7B,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAEtB,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,YAAiB;IAIjF;;;;;;OAMG;IACU,uBAAuB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IASpE;;;;;OAKG;IACU,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpE;;;;;;OAMG;IACU,sBAAsB,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAUxE;;;;;;OAMG;IACU,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAUzG;;;;;;OAMG;IACU,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAUzF;;;;;;;;;OASG;IACU,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAajG"}
|
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
// The rider's account and history in the core (core.md C-2, C-3, C-8; U-20, U-21). The core
|
|
2
2
|
// is found through the coordinator (sharding.md): the consumer gives the coordinator's id.
|
|
3
|
-
import { errorKeyOf, executeAsyncUnsafe } from "../group/canister-actor.js";
|
|
3
|
+
import { canisterError, errorKeyOf, executeAsyncUnsafe } from "../group/canister-actor.js";
|
|
4
4
|
import { TigiGroup } from "../group/group.js";
|
|
5
|
-
import { decodeToken, encodeToken,
|
|
5
|
+
import { decodeToken, encodeToken, historyEntryOf, rateOutcomeOf, rideOfRideRef } from "../mappers.js";
|
|
6
6
|
/** KU-1: a page of the rider's history. */
|
|
7
7
|
export const RIDES_PAGE = 20;
|
|
8
8
|
const NS_PER_MS_INT = 1000000n;
|
|
9
9
|
function profileOf(profile) {
|
|
10
10
|
return { name: profile.name, createdMs: Number(profile.createdAtNs / NS_PER_MS_INT), updatedMs: Number(profile.updatedAtNs / NS_PER_MS_INT) };
|
|
11
11
|
}
|
|
12
|
-
function entryOf(entry) {
|
|
13
|
-
return {
|
|
14
|
-
rideRef: encodeToken({ c: entry.driverCanister.toText(), k: entry.driverKey, r: entry.requestId }),
|
|
15
|
-
requestId: entry.requestId,
|
|
16
|
-
end: Object.keys(entry.end)[0],
|
|
17
|
-
endedAtMs: msOf(entry.endedAtNs),
|
|
18
|
-
price: entry.price[0] === undefined ? undefined : moneyOf(entry.price[0]),
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
12
|
export class ProfilesActor {
|
|
22
13
|
group;
|
|
23
14
|
constructor(coordinatorId, identity, options = {}) {
|
|
@@ -76,8 +67,51 @@ export class ProfilesActor {
|
|
|
76
67
|
const beforeIndex = cursor === undefined ? [] : [BigInt(decodeToken(cursor).b)];
|
|
77
68
|
const page = await executeAsyncUnsafe(async () => (await this.group.coreAsync()).getMyRides({ beforeIndex: beforeIndex, limit: BigInt(limit) }));
|
|
78
69
|
return {
|
|
79
|
-
rides: page.rides.map(
|
|
70
|
+
rides: page.rides.map(historyEntryOf),
|
|
80
71
|
nextCursor: page.nextBeforeIndex[0] === undefined ? undefined : encodeToken({ b: page.nextBeforeIndex[0].toString() }),
|
|
81
72
|
};
|
|
82
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* C-8, KU-4 (0.5.0): one line of the rider's history by its `rideRef` — for the details
|
|
76
|
+
* screen after a reload (Skąd, Dokąd) and to show the stars after a rating.
|
|
77
|
+
* @returns undefined while the ride is not in the core yet (K-9, KU-2: up to a minute)
|
|
78
|
+
* @throws Error with message `CanisterError` — `NotAuthorized` (anonymous, another rider's ride), `InvalidToken`
|
|
79
|
+
* @throws Error with message `CriticalCanisterError` — the core could not be reached
|
|
80
|
+
*/
|
|
81
|
+
async getMyRideAsyncUnsafe(rideRef) {
|
|
82
|
+
const ride = rideOfRideRef(rideRef);
|
|
83
|
+
try {
|
|
84
|
+
return historyEntryOf(await executeAsyncUnsafe(async () => (await this.group.coreAsync()).getMyRide({ requestId: ride.requestId })));
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
if (errorKeyOf(err) === "NotFound")
|
|
88
|
+
return undefined;
|
|
89
|
+
throw err;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* KU-5 (0.5.0, core C-23): the rider rates the driver of a past ride, 1–5 stars, no
|
|
94
|
+
* comment (U-33). Only a completed ride, within 24 h of its end, once — a rating given
|
|
95
|
+
* live after the ride (`RideRequest.rateDriverAsyncUnsafe`) counts as the one. Show the
|
|
96
|
+
* stars only when `RideHistoryEntry.ratable`.
|
|
97
|
+
* @returns `ok` | `alreadyRated` | `notRatable` | `notAuthorized` (see `RateRideOutcome`)
|
|
98
|
+
* @throws Error with message `CanisterError` — `InvalidData` (stars outside 1–5), `InvalidToken`
|
|
99
|
+
* @throws Error with message `CallRefusedAtInspectionStage` — anonymous, or the daily limit (20, shared with the profile)
|
|
100
|
+
* @throws Error with message `CriticalCanisterError` — the core could not be reached
|
|
101
|
+
*/
|
|
102
|
+
async ratePastRideAsyncUnsafe(rideRef, stars) {
|
|
103
|
+
const ride = rideOfRideRef(rideRef);
|
|
104
|
+
if (!Number.isInteger(stars) || stars < 1 || stars > 5)
|
|
105
|
+
throw canisterError("InvalidData", "stars: 1 to 5");
|
|
106
|
+
try {
|
|
107
|
+
const answer = await executeAsyncUnsafe(async () => (await this.group.coreAsync()).rateMyRide({ requestId: ride.requestId, stars }));
|
|
108
|
+
return rateOutcomeOf(answer) ?? "notRatable";
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
const outcome = rateOutcomeOf({ errorKey: errorKeyOf(err) });
|
|
112
|
+
if (outcome !== undefined)
|
|
113
|
+
return outcome;
|
|
114
|
+
throw err;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
83
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rides-actor.d.ts","sourceRoot":"","sources":["../../src/actors/rides-actor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKpD,OAAO,EAAgJ,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC7M,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAa,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAInI,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,OAAQ,CAAC;AAC1C,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AACxC,yEAAyE;AACzE,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,qFAAqF;AACrF,eAAO,MAAM,eAAe,OAAQ,CAAC;AACrC;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAS,CAAC;AACtC,+GAA+G;AAC/G,eAAO,MAAM,YAAY,OAAQ,CAAC;AAClC,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AAEvC,wFAAwF;AACxF,UAAU,YAAY;IAClB,CAAC,EAAE,CAAC,CAAC;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,GAAG,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,GAAG,CAAC;IACjB,wGAAwG;IACxG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAS/D;AAUD;;;GAGG;AACH,qBAAa,UAAU;IAOf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAqB;gBAGlC,aAAa,EAAE,MAAM,EACJ,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,YAAiB;IAK/C;;;;;;;;;;OAUG;IACU,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBhF;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAOhD;;;;OAIG;IACU,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rides-actor.d.ts","sourceRoot":"","sources":["../../src/actors/rides-actor.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { TigiGroup } from "../group/group.js";
|
|
|
11
11
|
import { geohashesByWorker } from "../group/prefixes.js";
|
|
12
12
|
import { cellsWithin, isValidGeo } from "../geo.js";
|
|
13
13
|
import { driverChatPlaceAsyncUnsafe } from "../chat.js";
|
|
14
|
-
import { cardOf, closeReasonOf, decodeToken, driverOfOfferId, encodeToken, mergedPhase, mergeOffers, moneyOf, msOf, offerIdOf, offerOf, phaseOf, placeOffers, rideStatusOf, routeLineOf } from "../mappers.js";
|
|
14
|
+
import { cardOf, closeReasonOf, decodeToken, driverOfOfferId, encodeToken, mergedPhase, mergeOffers, moneyOf, msOf, offerIdOf, offerOf, phaseOf, placeOffers, rideOfRideRef, rideStatusOf, routeLineOf } from "../mappers.js";
|
|
15
15
|
/** U-29: the rider's radius, and the radius after `WIDEN_AFTER_MS` without offers. */
|
|
16
16
|
export const SEARCH_RADIUS_METERS = 3_000;
|
|
17
17
|
export const WIDE_RADIUS_METERS = 6_000;
|
|
@@ -110,10 +110,8 @@ export class RidesActor {
|
|
|
110
110
|
* @throws Error with message `CriticalCanisterError` — the driver canister does not answer ("brak połączenia z kierowcą")
|
|
111
111
|
*/
|
|
112
112
|
async getPastRideAsyncUnsafe(rideRef) {
|
|
113
|
-
const ref =
|
|
114
|
-
|
|
115
|
-
throw canisterError("InvalidToken", "not a ride of this package");
|
|
116
|
-
return getRideOfAsyncUnsafe(this.identity, this.options, { canister: ref.c, driverKey: ref.k }, ref.r);
|
|
113
|
+
const ref = rideOfRideRef(rideRef);
|
|
114
|
+
return getRideOfAsyncUnsafe(this.identity, this.options, { canister: ref.canister, driverKey: ref.driverKey }, ref.requestId);
|
|
117
115
|
}
|
|
118
116
|
async riderNameAsyncUnsafe() {
|
|
119
117
|
try {
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -150,7 +150,27 @@ export interface RideHistoryEntry {
|
|
|
150
150
|
endedAtMs: number;
|
|
151
151
|
/** None for a cancelled ride (K-N4). */
|
|
152
152
|
price?: Money;
|
|
153
|
+
/** KU-4 (0.5.0): where the ride began ("Skąd"); none for a ride before stage 7 or from an old worker. */
|
|
154
|
+
pickup?: Geo;
|
|
155
|
+
/** KU-4 (0.5.0): where it went ("Dokąd"); none as for `pickup`. */
|
|
156
|
+
destination?: Geo;
|
|
157
|
+
/**
|
|
158
|
+
* KU-5 (0.5.0, core C-23): the rider can rate the driver now with
|
|
159
|
+
* `ProfilesActor.ratePastRideAsyncUnsafe` — a completed ride, within 24 h of its end, not
|
|
160
|
+
* rated yet (from the history or live). False on an old core.
|
|
161
|
+
*/
|
|
162
|
+
ratable: boolean;
|
|
163
|
+
/** KU-5 (0.5.0): the stars the rider gave, when the core knows them (rated from stage 7 on). */
|
|
164
|
+
myRating?: number;
|
|
153
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* KU-5 (0.5.0, core C-23): the answer to `ratePastRideAsyncUnsafe`.
|
|
168
|
+
* - `ok` — counted now (the driver's rating changes once);
|
|
169
|
+
* - `alreadyRated` — rated before (from the history or live after the ride);
|
|
170
|
+
* - `notRatable` — not completed, the 24 h are over, or the ride is not in the core yet (K-9: up to a minute);
|
|
171
|
+
* - `notAuthorized` — not the caller's ride (or the rider is blocked).
|
|
172
|
+
*/
|
|
173
|
+
export type RateRideOutcome = "ok" | "alreadyRated" | "notRatable" | "notAuthorized";
|
|
154
174
|
export interface RideHistoryPage {
|
|
155
175
|
rides: RideHistoryEntry[];
|
|
156
176
|
/** Opaque: the next, older page; undefined at the end. */
|
package/dist/interfaces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { CarrierKind as CandidCarrierKind, DriverCard, Money as CandidMoney, RideStatus, RouteLine } from "../declarations/tigi-driver/tigi-driver.did.js";
|
|
2
2
|
import type { OfferView as CandidOfferView, RequestView as CandidRequestView } from "../declarations/worker/worker.did.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { RateRideOutcome as CandidRateRideOutcome, RideView as CandidHistoryRide } from "../declarations/core/core.did.js";
|
|
4
|
+
import type { CarrierKind, CloseReason, DriverCardView, Money, OfferView, RateRideOutcome, RequestPhase, RideHistoryEntry, RideStatusView, RouteLineView } from "./interfaces.js";
|
|
4
5
|
export declare const NS_PER_MS = 1000000n;
|
|
5
6
|
export declare function msOf(ns: bigint): number;
|
|
6
7
|
export declare function moneyOf(money: CandidMoney): Money;
|
|
@@ -33,6 +34,18 @@ export interface DriverRef {
|
|
|
33
34
|
driverKey: string;
|
|
34
35
|
}
|
|
35
36
|
export declare function offerIdOf(driverCanister: string, driverKey: string): string;
|
|
37
|
+
/** KU-3: the opaque text of a past ride — its driver canister, driver and request. */
|
|
38
|
+
export declare function rideRefOf(driverCanister: string, driverKey: string, requestId: string): string;
|
|
39
|
+
/** @throws Error with message `CanisterError` (errorKey `InvalidToken`) for a text the package did not make. */
|
|
40
|
+
export declare function rideOfRideRef(rideRef: string): DriverRef & {
|
|
41
|
+
requestId: string;
|
|
42
|
+
};
|
|
43
|
+
/** C-8: a line of the history. The stage-7 fields are absent on an old core (`ratable` = false). */
|
|
44
|
+
export declare function historyEntryOf(entry: CandidHistoryRide): RideHistoryEntry;
|
|
45
|
+
/** C-23: the core's answer to `rateMyRide`, or its error key, as the front shows it. */
|
|
46
|
+
export declare function rateOutcomeOf(answer: CandidRateRideOutcome | {
|
|
47
|
+
errorKey: string | undefined;
|
|
48
|
+
}): RateRideOutcome | undefined;
|
|
36
49
|
export declare function driverOfOfferId(offerId: string): DriverRef;
|
|
37
50
|
export declare function offerOf(offer: CandidOfferView, simulator: string | undefined, host?: string): OfferView;
|
|
38
51
|
/**
|
package/dist/mappers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../src/mappers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,UAAU,EAAE,KAAK,IAAI,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAChK,OAAO,KAAK,EAAE,SAAS,IAAI,eAAe,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../src/mappers.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers.js
CHANGED
|
@@ -83,6 +83,51 @@ export function decodeToken(token) {
|
|
|
83
83
|
export function offerIdOf(driverCanister, driverKey) {
|
|
84
84
|
return encodeToken({ c: driverCanister, k: driverKey });
|
|
85
85
|
}
|
|
86
|
+
// ----- the rider's history (core C-8, C-23) -----
|
|
87
|
+
/** KU-3: the opaque text of a past ride — its driver canister, driver and request. */
|
|
88
|
+
export function rideRefOf(driverCanister, driverKey, requestId) {
|
|
89
|
+
return encodeToken({ c: driverCanister, k: driverKey, r: requestId });
|
|
90
|
+
}
|
|
91
|
+
/** @throws Error with message `CanisterError` (errorKey `InvalidToken`) for a text the package did not make. */
|
|
92
|
+
export function rideOfRideRef(rideRef) {
|
|
93
|
+
const ref = decodeToken(rideRef);
|
|
94
|
+
if (typeof ref.c !== "string" || typeof ref.k !== "string" || typeof ref.r !== "string")
|
|
95
|
+
throw new Error("CanisterError", { cause: { errorKey: "InvalidToken", errorMessage: "not a ride of this package", logs: [] } });
|
|
96
|
+
return { canister: ref.c, driverKey: ref.k, requestId: ref.r };
|
|
97
|
+
}
|
|
98
|
+
function placeOf(geo) {
|
|
99
|
+
const point = geo?.[0];
|
|
100
|
+
return point !== undefined && isValidGeo(point) ? { lat: point.lat, lng: point.lng } : undefined;
|
|
101
|
+
}
|
|
102
|
+
/** C-8: a line of the history. The stage-7 fields are absent on an old core (`ratable` = false). */
|
|
103
|
+
export function historyEntryOf(entry) {
|
|
104
|
+
const stars = entry.myRating?.[0];
|
|
105
|
+
return {
|
|
106
|
+
rideRef: rideRefOf(entry.driverCanister.toText(), entry.driverKey, entry.requestId),
|
|
107
|
+
requestId: entry.requestId,
|
|
108
|
+
end: Object.keys(entry.end)[0],
|
|
109
|
+
endedAtMs: msOf(entry.endedAtNs),
|
|
110
|
+
price: entry.price[0] === undefined ? undefined : moneyOf(entry.price[0]),
|
|
111
|
+
pickup: placeOf(entry.pickup),
|
|
112
|
+
destination: placeOf(entry.destination),
|
|
113
|
+
ratable: entry.ratable?.[0] === true,
|
|
114
|
+
myRating: stars === undefined ? undefined : stars,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/** C-23: the core's answer to `rateMyRide`, or its error key, as the front shows it. */
|
|
118
|
+
export function rateOutcomeOf(answer) {
|
|
119
|
+
if ("rated" in answer)
|
|
120
|
+
return "ok";
|
|
121
|
+
if ("alreadyRated" in answer)
|
|
122
|
+
return "alreadyRated";
|
|
123
|
+
if ("notRatable" in answer)
|
|
124
|
+
return "notRatable";
|
|
125
|
+
if (answer.errorKey === "NotAuthorized")
|
|
126
|
+
return "notAuthorized";
|
|
127
|
+
if (answer.errorKey === "NotFound")
|
|
128
|
+
return "notRatable";
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
86
131
|
export function driverOfOfferId(offerId) {
|
|
87
132
|
const value = decodeToken(offerId);
|
|
88
133
|
if (typeof value.c !== "string" || typeof value.k !== "string")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsm-mit/tigi-sharded-package",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "The one package of the Tigi network group: takes the coordinator's id and hides the coordinator, the core and the workers — for a consumer the group is one canister; plus the rider's few driver-canister endpoints (U-14).",
|
|
5
5
|
"homepage": "https://github.com/JSM-Tigi/tigi-sharded/tree/master/package#readme",
|
|
6
6
|
"repository": {
|
|
@@ -40,8 +40,10 @@
|
|
|
40
40
|
"test-split": "bash scripts/run-tests-local.sh tests/test-split.ts",
|
|
41
41
|
"test-claim": "bash scripts/run-tests-local.sh tests/test-claim.ts",
|
|
42
42
|
"test-route-line": "bash scripts/run-tests-local.sh tests/test-route-line.ts",
|
|
43
|
+
"test-ride-history": "bash scripts/run-tests-local.sh tests/test-ride-history.ts",
|
|
44
|
+
"test-router-service": "bash scripts/run-tests-local.sh tests/test-router-service.ts",
|
|
43
45
|
"load-local": "bash scripts/run-load-local.sh",
|
|
44
|
-
"test-e2e": "npm run test-drivers && npm run test-simulator && npm run test-split && npm run test-claim && npm run test-route-line"
|
|
46
|
+
"test-e2e": "npm run test-drivers && npm run test-simulator && npm run test-split && npm run test-claim && npm run test-route-line && npm run test-ride-history"
|
|
45
47
|
},
|
|
46
48
|
"dependencies": {
|
|
47
49
|
"@icp-sdk/core": "^6.1.0"
|
|
@@ -57,11 +59,11 @@
|
|
|
57
59
|
"tigiSharded": {
|
|
58
60
|
"repo": "tigi-sharded",
|
|
59
61
|
"repoUrl": "https://github.com/JSM-Tigi/tigi-sharded",
|
|
60
|
-
"commit": "
|
|
62
|
+
"commit": "45ef3143fba15b541f6a7eeb710791ba95716964"
|
|
61
63
|
},
|
|
62
64
|
"tigiDriverRust": {
|
|
63
65
|
"repo": "tigi-driver-rust",
|
|
64
66
|
"repoUrl": "https://github.com/JSM-Tigi/tigi-driver-rust",
|
|
65
|
-
"commit": "
|
|
67
|
+
"commit": "f7aca49c36c7eddeea623e69f10d15203100a67e"
|
|
66
68
|
}
|
|
67
69
|
}
|