@welshman/store 0.12.4 → 0.12.6
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/dist/lib/src/Tools.d.ts +1 -1
- package/dist/lib/src/Tools.d.ts.map +1 -1
- package/dist/lib/src/Tools.js.map +1 -1
- package/dist/net/src/message.d.ts +4 -0
- package/dist/net/src/message.d.ts.map +1 -1
- package/dist/net/src/message.js +2 -0
- package/dist/net/src/message.js.map +1 -1
- package/dist/net/src/repository.d.ts +9 -0
- package/dist/net/src/repository.d.ts.map +1 -1
- package/dist/net/src/repository.js +42 -24
- package/dist/net/src/repository.js.map +1 -1
- package/dist/net/src/util.d.ts +2 -1
- package/dist/net/src/util.d.ts.map +1 -1
- package/dist/net/src/util.js +6 -5
- package/dist/net/src/util.js.map +1 -1
- package/dist/store/src/misc.d.ts +18 -0
- package/dist/store/src/misc.d.ts.map +1 -1
- package/dist/store/src/misc.js +14 -0
- package/dist/store/src/misc.js.map +1 -1
- package/dist/store/src/repository.d.ts +24 -12
- package/dist/store/src/repository.d.ts.map +1 -1
- package/dist/store/src/repository.js +186 -141
- package/dist/store/src/repository.js.map +1 -1
- package/package.json +7 -7
package/dist/net/src/util.js
CHANGED
|
@@ -8,7 +8,8 @@ export const WRAP_DRIFT = 2 * DAY;
|
|
|
8
8
|
* Rewrites a filter so re-sending it picks up where the subscription left off rather than
|
|
9
9
|
* repeating itself. A filter asking for gift wraps reaches further back, since a wrap
|
|
10
10
|
* published after the subscription dropped carries a timestamp from before it. Neither reaches
|
|
11
|
-
* back past the filter's own `since`.
|
|
11
|
+
* back past the filter's own `since`. A limit sizes the subscription's first page, and `since`
|
|
12
|
+
* bounds the gap, so the catch-up drops it.
|
|
12
13
|
* @param filter - the filter as originally sent
|
|
13
14
|
* @param since - when the socket last heard from the relay
|
|
14
15
|
* @returns a filter covering the gap
|
|
@@ -16,9 +17,9 @@ export const WRAP_DRIFT = 2 * DAY;
|
|
|
16
17
|
export const catchUpFilter = (filter, since) => {
|
|
17
18
|
// Only a filter that names wraps is widened: one without kinds would fetch days of everything
|
|
18
19
|
const drift = filter.kinds?.includes(WRAP) ? WRAP_DRIFT : 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
return {
|
|
21
|
+
...omit(["limit"], filter),
|
|
22
|
+
since: Math.max(filter.since || 0, since - drift),
|
|
23
|
+
};
|
|
23
24
|
};
|
|
24
25
|
//# sourceMappingURL=util.js.map
|
package/dist/net/src/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../net/src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AACvC,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAKnC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,CAAA;AAEjC
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../net/src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;AACvC,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAKnC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,CAAA;AAEjC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,KAAa,EAAU,EAAE;IACrE,8FAA8F;IAC9F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3D,OAAO;QACL,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KAClD,CAAA;AACH,CAAC,CAAA"}
|
package/dist/store/src/misc.d.ts
CHANGED
|
@@ -24,5 +24,23 @@ export declare const throttled: <T, S extends Readable<T>>(delay: number, store:
|
|
|
24
24
|
export declare const deriveDeduplicated: <S extends Stores, T>(stores: S, get: (storeValues: StoresValues<S>) => T) => Readable<T>;
|
|
25
25
|
export declare const deriveDeduplicatedByValue: <S extends Stores, T>(stores: S, get: (storeValues: StoresValues<S>) => T) => Readable<T>;
|
|
26
26
|
export declare const merged: <S extends Stores>(stores: S) => Readable<S extends Readable<infer U> ? U : { [K in keyof S]: S[K] extends Readable<infer U_1> ? U_1 : never; }>;
|
|
27
|
+
/**
|
|
28
|
+
* Utility type which allows for using the same value both for hot gets and derived
|
|
29
|
+
* subscriptions. It is a store itself, so `derived(someProjection, ...)` works as well
|
|
30
|
+
* as `derived(someProjection.$, ...)`.
|
|
31
|
+
*/
|
|
32
|
+
export type Projection<T> = ReadableWithGetter<T> & {
|
|
33
|
+
$: Readable<T>;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Build a `Projection` from a readable store and an optional `read` function, which falls
|
|
37
|
+
* back to `get($)`. On hot paths, the store value is cached, and read is skipped.
|
|
38
|
+
*/
|
|
39
|
+
export declare const projection: <T>($: Readable<T>, read?: () => T) => Projection<T>;
|
|
40
|
+
/**
|
|
41
|
+
* Build a `Projection` derived from another `Projection`: re-read `src`
|
|
42
|
+
* reactively via `.$` or synchronously via `.get()`.
|
|
43
|
+
*/
|
|
44
|
+
export declare const projectFrom: <S, U>(src: Projection<S>, read: ($: S) => U) => Projection<U>;
|
|
27
45
|
export {};
|
|
28
46
|
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,cAAc,CAAA;AAIvF,KAAK,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7F,KAAK,YAAY,CAAC,CAAC,IACjB,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG;KAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAC,CAAA;AAKhG,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAGlB,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;CACf,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,sBAAwB,aAAa,CAAC,CAAC,CAAM,YA0C1F,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAAC,CAAA;AAChE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAAC,CAAA;AAGhE,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KACL,CAAC,GAAG;IAAC,GAAG,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,CAAA;CAAC,CAAA;AAEvF,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC;mBAGX,UAAU,CAAC,CAAC,CAAC;CAC/C,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,MAQ1E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EACpD,QAAQ,CAAC,EACT,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KACvC,QAAQ,CAAC,CAAC,CAWZ,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAC3D,QAAQ,CAAC,EACT,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KACvC,QAAQ,CAAC,CAAC,CAWZ,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,oHAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,cAAc,CAAA;AAIvF,KAAK,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7F,KAAK,YAAY,CAAC,CAAC,IACjB,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG;KAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAC,CAAA;AAKhG,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAGlB,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;CACf,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,sBAAwB,aAAa,CAAC,CAAC,CAAM,YA0C1F,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAAC,CAAA;AAChE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAAC,CAAA;AAGhE,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KACL,CAAC,GAAG;IAAC,GAAG,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,CAAA;CAAC,CAAA;AAEvF,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC;mBAGX,UAAU,CAAC,CAAC,CAAC;CAC/C,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,MAQ1E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EACpD,QAAQ,CAAC,EACT,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KACvC,QAAQ,CAAC,CAAC,CAWZ,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,EAC3D,QAAQ,CAAC,EACT,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KACvC,QAAQ,CAAC,CAAC,CAWZ,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,oHAA8B,CAAA;AAEhF;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG;IAClD,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;CACf,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,CAAC,KAAG,UAAU,CAAC,CAAC,CAIzE,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAG,UAAU,CAAC,CAAC,CAC7B,CAAA"}
|
package/dist/store/src/misc.js
CHANGED
|
@@ -71,4 +71,18 @@ export const deriveDeduplicatedByValue = (stores, get) => {
|
|
|
71
71
|
});
|
|
72
72
|
};
|
|
73
73
|
export const merged = (stores) => derived(stores, identity);
|
|
74
|
+
/**
|
|
75
|
+
* Build a `Projection` from a readable store and an optional `read` function, which falls
|
|
76
|
+
* back to `get($)`. On hot paths, the store value is cached, and read is skipped.
|
|
77
|
+
*/
|
|
78
|
+
export const projection = ($, read) => ({
|
|
79
|
+
$,
|
|
80
|
+
subscribe: $.subscribe,
|
|
81
|
+
get: getter($, { read }),
|
|
82
|
+
});
|
|
83
|
+
/**
|
|
84
|
+
* Build a `Projection` derived from another `Projection`: re-read `src`
|
|
85
|
+
* reactively via `.$` or synchronously via `.get()`.
|
|
86
|
+
*/
|
|
87
|
+
export const projectFrom = (src, read) => projection(derived(src.$, read), () => read(src.get()));
|
|
74
88
|
//# sourceMappingURL=misc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { Readable } from "svelte/store";
|
|
|
2
2
|
import { Maybe, MaybeAsync } from "@welshman/lib";
|
|
3
3
|
import { Filter, TrustedEvent } from "@welshman/util";
|
|
4
4
|
import { Repository, Tracker } from "@welshman/net";
|
|
5
|
+
import type { Projection } from "./misc.js";
|
|
5
6
|
export type EventsById = Map<string, TrustedEvent>;
|
|
6
7
|
export type EventsByIdOptions = {
|
|
7
8
|
filters: Filter[];
|
|
@@ -9,32 +10,43 @@ export type EventsByIdOptions = {
|
|
|
9
10
|
includeDeleted?: boolean;
|
|
10
11
|
};
|
|
11
12
|
export declare const getEventsById: ({ filters, repository, includeDeleted }: EventsByIdOptions) => Map<string, TrustedEvent>;
|
|
12
|
-
export declare const deriveEventsById: (
|
|
13
|
-
export declare const deriveArray: <T>(
|
|
14
|
-
export declare const deriveEventsAsc: (
|
|
15
|
-
export declare const deriveEventsDesc: (
|
|
16
|
-
export declare const deriveEvents: (options: EventsByIdOptions) =>
|
|
13
|
+
export declare const deriveEventsById: (options: EventsByIdOptions) => Projection<EventsById>;
|
|
14
|
+
export declare const deriveArray: <T>(itemsById: Projection<Map<string, T>>) => Projection<T[]>;
|
|
15
|
+
export declare const deriveEventsAsc: (eventsById: Projection<EventsById>) => Projection<TrustedEvent[]>;
|
|
16
|
+
export declare const deriveEventsDesc: (eventsById: Projection<EventsById>) => Projection<TrustedEvent[]>;
|
|
17
|
+
export declare const deriveEvents: (options: EventsByIdOptions) => Projection<TrustedEvent[]>;
|
|
17
18
|
export type EventOptions = {
|
|
18
19
|
repository: Repository;
|
|
19
20
|
includeDeleted?: boolean;
|
|
20
21
|
onDerive?: (filters: Filter[], ...args: any[]) => void;
|
|
21
22
|
};
|
|
22
|
-
export declare const makeDeriveEvent: ({ repository, includeDeleted, onDerive }: EventOptions) => (idOrAddress: string, ...args: any[]) =>
|
|
23
|
+
export declare const makeDeriveEvent: ({ repository, includeDeleted, onDerive }: EventOptions) => (idOrAddress: string, ...args: any[]) => Projection<Maybe<TrustedEvent>>;
|
|
23
24
|
export type EventsByIdByUrl = Map<string, EventsById>;
|
|
24
25
|
export type EventsByIdByUrlOptions = EventsByIdOptions & {
|
|
25
26
|
tracker: Tracker;
|
|
26
27
|
};
|
|
27
28
|
export declare const getEventsByIdByUrl: ({ filters, tracker, repository, includeDeleted, }: EventsByIdByUrlOptions) => EventsByIdByUrl;
|
|
28
|
-
export declare const deriveEventsByIdByUrl: (
|
|
29
|
+
export declare const deriveEventsByIdByUrl: (options: EventsByIdByUrlOptions) => Projection<EventsByIdByUrl>;
|
|
29
30
|
export type EventsByIdForUrlOptions = EventsByIdOptions & {
|
|
30
31
|
url: string;
|
|
31
32
|
tracker: Tracker;
|
|
32
33
|
};
|
|
33
34
|
export declare const getEventsByIdForUrl: ({ url, filters, tracker, repository, includeDeleted, }: EventsByIdForUrlOptions) => EventsById;
|
|
34
|
-
export declare const deriveEventsByIdForUrl: (
|
|
35
|
+
export declare const deriveEventsByIdForUrl: (options: EventsByIdForUrlOptions) => Projection<EventsById>;
|
|
35
36
|
export type ItemsByKey<T> = Map<string, T>;
|
|
36
37
|
export type EventToItem<T> = (event: TrustedEvent) => MaybeAsync<Maybe<T>>;
|
|
37
|
-
export type GetItem<T> = (key: string, ...args: any[]) => Maybe<T
|
|
38
|
+
export type GetItem<T> = (key: string, ...args: any[]) => MaybeAsync<Maybe<T>>;
|
|
39
|
+
/**
|
|
40
|
+
* A keyed collection of items built from events: a `Projection` over an index, plus a
|
|
41
|
+
* `read` that waits out the parses the index has outstanding.
|
|
42
|
+
*
|
|
43
|
+
* `eventToItem` returns a promise for any kind that decrypts, so the item an event
|
|
44
|
+
* builds is committed after the event was read rather than with it. `read` is how a
|
|
45
|
+
* caller gets an item the collection has seen the event for but not yet parsed.
|
|
46
|
+
*/
|
|
47
|
+
export type ItemCollection<T> = Projection<ItemsByKey<T>> & {
|
|
48
|
+
read: (key: string) => MaybeAsync<Maybe<T>>;
|
|
49
|
+
};
|
|
38
50
|
export type ItemsByKeyOptions<T> = {
|
|
39
51
|
getKey: (item: T) => string;
|
|
40
52
|
filters: Filter[];
|
|
@@ -42,7 +54,7 @@ export type ItemsByKeyOptions<T> = {
|
|
|
42
54
|
eventToItem: EventToItem<T>;
|
|
43
55
|
includeDeleted?: boolean;
|
|
44
56
|
};
|
|
45
|
-
export declare const deriveItemsByKey: <T>({ getKey, filters, repository, eventToItem, includeDeleted, }: ItemsByKeyOptions<T>) =>
|
|
57
|
+
export declare const deriveItemsByKey: <T>({ getKey, filters, repository, eventToItem, includeDeleted, }: ItemsByKeyOptions<T>) => ItemCollection<T>;
|
|
46
58
|
export type ItemsByKeyByUrlOptions<T> = {
|
|
47
59
|
getKey: (item: T, url: string) => string | undefined;
|
|
48
60
|
filters: Filter[];
|
|
@@ -59,7 +71,7 @@ export type ItemsByKeyByUrlOptions<T> = {
|
|
|
59
71
|
* relay roles — where the same addressable coordinate can exist independently
|
|
60
72
|
* on multiple relays.
|
|
61
73
|
*/
|
|
62
|
-
export declare const deriveItemsByKeyByUrl: <T>({ getKey, filters, repository, tracker, eventToItem, includeDeleted, revalidateOn, }: ItemsByKeyByUrlOptions<T>) =>
|
|
74
|
+
export declare const deriveItemsByKeyByUrl: <T>({ getKey, filters, repository, tracker, eventToItem, includeDeleted, revalidateOn, }: ItemsByKeyByUrlOptions<T>) => ItemCollection<T>;
|
|
63
75
|
export declare const deriveItems: <T>(itemsByKeyStore: Readable<ItemsByKey<T>>) => Readable<T[]>;
|
|
64
76
|
export declare const deriveItemsSorted: <T>(sortFn: (item: T) => number, itemsStore: Readable<T[]>) => Readable<T[]>;
|
|
65
77
|
export declare const makeDeriveItem: <T>(itemsByKeyStore: Readable<ItemsByKey<T>>, onDerive?: (key: string, ...args: any[]) => unknown) => (key?: string, ...args: any[]) => Readable<T | undefined>;
|
|
@@ -73,5 +85,5 @@ export type MakeLoadItemOptions = {
|
|
|
73
85
|
timeout?: number;
|
|
74
86
|
};
|
|
75
87
|
export declare const makeLoadItem: <T>(loadItem: LoadItem, getItem: GetItem<T>, options?: MakeLoadItemOptions) => (key: string, ...args: any[]) => Promise<Maybe<T>>;
|
|
76
|
-
export declare const deriveIsDeleted: (repository: Repository, event: TrustedEvent) =>
|
|
88
|
+
export declare const deriveIsDeleted: (repository: Repository, event: TrustedEvent) => Projection<boolean>;
|
|
77
89
|
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/repository.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAC,MAAM,cAAc,CAAA;AACxD,OAAO,EAOL,KAAK,EACL,UAAU,EAIX,MAAM,eAAe,CAAA;AACtB,OAAO,EAGL,MAAM,EACN,YAAY,EAIb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAC,UAAU,EAAoB,OAAO,EAAC,MAAM,eAAe,CAAA;AAEnE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAIzC,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,yCAAuC,iBAAiB,8BAQrF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,iBAAiB,KAAG,UAAU,CAAC,UAAU,CAiClF,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,WAAW,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,oBACG,CAAA;AAEvE,eAAO,MAAM,eAAe,GAAI,YAAY,UAAU,CAAC,UAAU,CAAC,+BACW,CAAA;AAE7E,eAAO,MAAM,gBAAgB,GAAI,YAAY,UAAU,CAAC,UAAU,CAAC,+BACW,CAAA;AAE9E,eAAO,MAAM,YAAY,GAAI,SAAS,iBAAiB,+BAA2C,CAAA;AAElG,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CACvD,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,0CAAgD,YAAY,MAClF,aAAa,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,KAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CA8B7E,CAAA;AAID,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAErD,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG;IACvD,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,mDAKhC,sBAAsB,oBAgBxB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,SAAS,sBAAsB,KAC9B,UAAU,CAAC,eAAe,CAoG5B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,wDAMjC,uBAAuB,eAUzB,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,SAAS,uBAAuB,KAC/B,UAAU,CAAC,UAAU,CA6DvB,CAAA;AAID,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAE1C,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1E,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAE9E;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG;IAC1D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;CAC5C,CAAA;AAkBD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAA;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,+DAMjC,iBAAiB,CAAC,CAAC,CAAC,KAAG,cAAc,CAAC,CAAC,CA4EzC,CAAA;AAID,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IAMtC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACpD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;IAIxB,YAAY,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CACjC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,EAAE,sFAQtC,sBAAsB,CAAC,CAAC,CAAC,KAAG,cAAc,CAAC,CAAC,CA6N9C,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,iBAAiB,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBACE,CAAA;AAEzE,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAAE,YAAY,QAAQ,CAAC,CAAC,EAAE,CAAC,kBACtC,CAAA;AAErD,eAAO,MAAM,cAAc,GAAI,CAAC,EAC9B,iBAAiB,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACxC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,MAE3C,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,4BAQrC,CAAA;AAID,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAExE,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,UAAU,QAAQ,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,MAC5D,KAAK,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,sBAK1C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAA;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,EAC5B,UAAU,QAAQ,EAClB,SAAS,OAAO,CAAC,CAAC,CAAC,EACnB,UAAS,mBAAwB,MAYnB,KAAK,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,KAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CA8C7D,CAAA;AAID,eAAO,MAAM,eAAe,GAAI,YAAY,UAAU,EAAE,OAAO,YAAY,KAAG,UAAU,CAAC,OAAO,CAoB7F,CAAA"}
|