insite-subscriptions-client 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Subscription.d.ts +18 -0
- package/dist/Subscription.d.ts.map +1 -0
- package/dist/SubscriptionArray.d.ts +73 -0
- package/dist/SubscriptionArray.d.ts.map +1 -0
- package/dist/SubscriptionGroup/SubscriptionGroup.d.ts +37 -0
- package/dist/SubscriptionGroup/SubscriptionGroup.d.ts.map +1 -0
- package/dist/SubscriptionGroup/SubscriptionGroupItem.d.ts +31 -0
- package/dist/SubscriptionGroup/SubscriptionGroupItem.d.ts.map +1 -0
- package/dist/SubscriptionGroup/common.d.ts +12 -0
- package/dist/SubscriptionGroup/common.d.ts.map +1 -0
- package/dist/SubscriptionGroup/index.d.ts +3 -0
- package/dist/SubscriptionGroup/index.d.ts.map +1 -0
- package/dist/SubscriptionGroup/types.d.ts +41 -0
- package/dist/SubscriptionGroup/types.d.ts.map +1 -0
- package/dist/SubscriptionMap.d.ts +102 -0
- package/dist/SubscriptionMap.d.ts.map +1 -0
- package/dist/SubscriptionObject.d.ts +47 -0
- package/dist/SubscriptionObject.d.ts.map +1 -0
- package/{src/index.ts → dist/index.d.ts} +2 -14
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +7 -0
- package/dist/symbols.d.ts +13 -0
- package/dist/symbols.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/Subscription.ts +0 -101
- package/src/SubscriptionArray.ts +0 -275
- package/src/SubscriptionGroup/SubscriptionGroup.ts +0 -319
- package/src/SubscriptionGroup/SubscriptionGroupItem.ts +0 -391
- package/src/SubscriptionGroup/common.ts +0 -13
- package/src/SubscriptionGroup/index.ts +0 -8
- package/src/SubscriptionGroup/types.ts +0 -121
- package/src/SubscriptionMap.ts +0 -455
- package/src/SubscriptionObject.ts +0 -168
- package/src/symbols.ts +0 -12
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { InSiteWebSocket } from "insite-ws/client";
|
|
2
|
+
declare global {
|
|
3
|
+
var __initials: undefined | unknown[];
|
|
4
|
+
}
|
|
5
|
+
export declare class Subscription {
|
|
6
|
+
constructor(type: "array" | "map" | "object", publicationName: string, args: unknown[] | undefined, handler: (updates: unknown) => void, immediately?: boolean);
|
|
7
|
+
i: number;
|
|
8
|
+
type: "object" | "array" | "map";
|
|
9
|
+
publicationName: string;
|
|
10
|
+
args: unknown[];
|
|
11
|
+
handler: (updates: unknown) => void;
|
|
12
|
+
immediately: boolean;
|
|
13
|
+
isActive: boolean;
|
|
14
|
+
start: () => void;
|
|
15
|
+
cancel(): void;
|
|
16
|
+
static bindTo(_ws: InSiteWebSocket): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subscription.d.ts","sourceRoot":"","sources":["../src/Subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,CAAC,MAAM,CAAC;IACd,IAAI,UAAU,EAAE,SAAS,GAAG,OAAO,EAAE,CAAC;CACtC;AAQD,qBAAa,YAAY;gBACZ,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAK,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,WAAW,UAAO;IA2BpJ,CAAC,SAAC;IACF,IAAI,6BAAC;IACL,eAAe,SAAC;IAChB,IAAI,YAAC;IACL,OAAO,YA/ByG,OAAO,KAAK,IAAI,CA+BxH;IACR,WAAW,UAAC;IACZ,QAAQ,UAAC;IAET,KAAK,aAMH;IAEF,MAAM;IAWN,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe;CAgClC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Subscription } from "./Subscription";
|
|
2
|
+
import { clearSymbol, getAsInitialUpdatedSymbol, getAsUpdatesSymbol, getHandleUpdateSymbol, getSubscriptionSymbol, renewSymbol, setHandleUpdateSymbol, subscribeSymbol, unsubscribeSymbol, updateSymbol } from "./symbols";
|
|
3
|
+
type Item = unknown;
|
|
4
|
+
type Updated<I extends Item = Item> = {
|
|
5
|
+
deleted: I[];
|
|
6
|
+
added: I[];
|
|
7
|
+
} & I[];
|
|
8
|
+
export type Updates<I extends Item = Item> = ([
|
|
9
|
+
"a",
|
|
10
|
+
newItem: I
|
|
11
|
+
] | [
|
|
12
|
+
"d",
|
|
13
|
+
itemToDelete: I
|
|
14
|
+
] | [
|
|
15
|
+
"i",
|
|
16
|
+
items: I[],
|
|
17
|
+
sort?: -1 | 1
|
|
18
|
+
] | null)[] | null;
|
|
19
|
+
type UpdateHandler<I extends Item = Item> = (array: SubscriptionArray<I>, updated: Updated<I>, updates: Updates<I>) => void;
|
|
20
|
+
declare const ascSort: (a: any, b: any) => 0 | 1 | -1;
|
|
21
|
+
declare const descSort: (a: any, b: any) => 0 | 1 | -1;
|
|
22
|
+
export declare class SubscriptionArray<I extends Item = Item> extends Array<I> {
|
|
23
|
+
constructor(updates?: Updates<I>, onUpdate?: UpdateHandler<I>);
|
|
24
|
+
sorted: Item[];
|
|
25
|
+
handleUpdate: UpdateHandler<I> | undefined;
|
|
26
|
+
sortDirection: -1 | 0 | 1;
|
|
27
|
+
sortCompareFunction: null | typeof ascSort | typeof descSort;
|
|
28
|
+
[getHandleUpdateSymbol](): UpdateHandler<I> | undefined;
|
|
29
|
+
[setHandleUpdateSymbol](handleUpdate: UpdateHandler<I>): UpdateHandler<I>;
|
|
30
|
+
update(updates: Updates<I>): this;
|
|
31
|
+
[updateSymbol]: (updates: Updates<I>) => this;
|
|
32
|
+
getAsUpdates(): (string | 0 | 1 | -1 | this[number][])[][] | null;
|
|
33
|
+
[getAsUpdatesSymbol]: () => (string | 0 | 1 | -1 | this[number][])[][] | null;
|
|
34
|
+
getAsInitialUpdated(): unknown[] & {
|
|
35
|
+
added: unknown[];
|
|
36
|
+
deleted: never[];
|
|
37
|
+
};
|
|
38
|
+
[getAsInitialUpdatedSymbol]: () => unknown[] & {
|
|
39
|
+
added: unknown[];
|
|
40
|
+
deleted: never[];
|
|
41
|
+
};
|
|
42
|
+
clear(): void;
|
|
43
|
+
[clearSymbol]: () => void;
|
|
44
|
+
valueOf(): this;
|
|
45
|
+
get [Symbol.toStringTag](): string;
|
|
46
|
+
static updateSymbol: symbol;
|
|
47
|
+
static getHandleUpdateSymbol: symbol;
|
|
48
|
+
static setHandleUpdateSymbol: symbol;
|
|
49
|
+
static getAsUpdatesSymbol: symbol;
|
|
50
|
+
static getAsInitialUpdatedSymbol: symbol;
|
|
51
|
+
static clearSymbol: symbol;
|
|
52
|
+
static WithSubscription: typeof SubscriptionArrayWithSubscription;
|
|
53
|
+
}
|
|
54
|
+
export declare class SubscriptionArrayWithSubscription<I extends Item = Item> extends SubscriptionArray<I> {
|
|
55
|
+
constructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler<I>, immediately?: boolean);
|
|
56
|
+
publicationName: string;
|
|
57
|
+
params: unknown[];
|
|
58
|
+
subscription: null | Subscription;
|
|
59
|
+
subscribe(): void;
|
|
60
|
+
get [subscribeSymbol](): () => void;
|
|
61
|
+
unsubscribe(): void;
|
|
62
|
+
get [unsubscribeSymbol](): () => void;
|
|
63
|
+
renew(publicationName?: string, params?: unknown[]): void;
|
|
64
|
+
get [renewSymbol](): (publicationName?: string, params?: unknown[]) => void;
|
|
65
|
+
[getSubscriptionSymbol](): Subscription | null;
|
|
66
|
+
get [Symbol.toStringTag](): string;
|
|
67
|
+
static subscribeSymbol: symbol;
|
|
68
|
+
static unsubscribeSymbol: symbol;
|
|
69
|
+
static renewSymbol: symbol;
|
|
70
|
+
static getSubscriptionSymbol: symbol;
|
|
71
|
+
}
|
|
72
|
+
export { Updated as SubscriptionArrayUpdated };
|
|
73
|
+
//# sourceMappingURL=SubscriptionArray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscriptionArray.d.ts","sourceRoot":"","sources":["../src/SubscriptionArray.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import EventEmitter from "eventemitter3";
|
|
2
|
+
import { StatefulPromise } from "@nesvet/n";
|
|
3
|
+
import { SubscriptionGroupItem } from "./SubscriptionGroupItem";
|
|
4
|
+
import { Definition, ParseValues, SubscriptionType, UnparsedDefinition } from "./types";
|
|
5
|
+
type Target = any;
|
|
6
|
+
type Options = {
|
|
7
|
+
target?: Target;
|
|
8
|
+
debounce?: number;
|
|
9
|
+
immediately?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare class SubscriptionGroup<DS extends UnparsedDefinition[] = any[]> extends EventEmitter {
|
|
12
|
+
#private;
|
|
13
|
+
constructor(definitions: DS, { target, debounce: debounceLimit, immediately }?: Options);
|
|
14
|
+
target?: Target;
|
|
15
|
+
emitUpdate: () => void;
|
|
16
|
+
items: Record<string, SubscriptionGroupItem> & SubscriptionGroupItem[];
|
|
17
|
+
values: DS extends any ? (any[] & Record<string, any>) : ParseValues<DS>;
|
|
18
|
+
isLoaded: boolean;
|
|
19
|
+
isInited: boolean;
|
|
20
|
+
applyOptions({ target, debounceLimit }: {
|
|
21
|
+
target?: Target;
|
|
22
|
+
debounceLimit?: number;
|
|
23
|
+
}): void;
|
|
24
|
+
attach(definitions: DS, shouldReload?: boolean, immediately?: boolean): Promise<SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>>[]>;
|
|
25
|
+
detach(names: string[], shouldUpdate?: boolean): void;
|
|
26
|
+
redefine(definitions: DS): Promise<(SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>> | SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>>[])[]>;
|
|
27
|
+
subscribe(): (void | undefined)[];
|
|
28
|
+
unsubscribe(): (void | undefined)[];
|
|
29
|
+
loaded(): StatefulPromise<SubscriptionGroup<any[]>>;
|
|
30
|
+
inited(): StatefulPromise<SubscriptionGroup<any[]>>;
|
|
31
|
+
unloaded(): StatefulPromise<SubscriptionGroup<any[]>>;
|
|
32
|
+
valueOf(): DS extends any ? any[] & Record<string, any> : ParseValues<DS>;
|
|
33
|
+
[Symbol.iterator](): IterableIterator<any>;
|
|
34
|
+
static debounceLimit: number;
|
|
35
|
+
}
|
|
36
|
+
export { Options as SubscriptionGroupOptions, Target as SubscriptionGroupTarget };
|
|
37
|
+
//# sourceMappingURL=SubscriptionGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscriptionGroup.d.ts","sourceRoot":"","sources":["../../src/SubscriptionGroup/SubscriptionGroup.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAY,eAAe,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACN,UAAU,EACV,WAAW,EAGX,gBAAgB,EAEhB,kBAAkB,EAClB,MAAM,SAAS,CAAC;AAUjB,KAAK,MAAM,GAAG,GAAG,CAAC;AAElB,KAAK,OAAO,GAAG;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAyCF,qBAAa,iBAAiB,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,GAAG,EAAE,CAAE,SAAQ,YAAY;;gBAE1F,WAAW,EAAE,EAAE,EACf,EACC,MAAM,EACN,QAAQ,EAAE,aAA+C,EACzD,WAAW,EACX,GAAE,OAAY;IAYhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAG,MAAM,IAAI,CAAC;IAExB,KAAK,EAAoB,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,qBAAqB,EAAE,CAAC;IACzF,MAAM,EAAS,EAAE,SAAS,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAEhF,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAQjB,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;IA2BnF,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,YAAY,UAAgB,EAAE,WAAW,UAAO;IAqBxE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,UAAO;IAY3C,QAAQ,CAAC,WAAW,EAAE,EAAE;IA+BxB,SAAS;IAIT,WAAW;IAuFX,MAAM;IAIN,MAAM;IAIN,QAAQ;IAIR,OAAO;IAIP,CAAC,MAAM,CAAC,QAAQ,CAAC;IAKjB,MAAM,CAAC,aAAa,SAAK;CAUzB;AAED,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import EventEmitter from "eventemitter3";
|
|
2
|
+
import { StatefulPromise } from "@nesvet/n";
|
|
3
|
+
import type { SubscriptionGroup } from "./SubscriptionGroup";
|
|
4
|
+
import type { Definition, SubscriptionType, SubscriptionUpdated, SubscriptionValue } from "./types";
|
|
5
|
+
export declare class SubscriptionGroupItem<T extends SubscriptionType = SubscriptionType, D extends Definition<T> = Definition<T>> extends EventEmitter {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(definition: D, group: SubscriptionGroup);
|
|
8
|
+
name: string;
|
|
9
|
+
group?: SubscriptionGroup;
|
|
10
|
+
value?: SubscriptionValue<T>;
|
|
11
|
+
type: "object" | T;
|
|
12
|
+
publicationName: Definition<T>["publicationName"];
|
|
13
|
+
params: Definition<T>["params"];
|
|
14
|
+
handle: Definition<T>["handle"];
|
|
15
|
+
onBeforeInit: Definition<T>["onBeforeInit"];
|
|
16
|
+
preventBind: Definition<T>["preventBind"];
|
|
17
|
+
emitUpdate: (updated?: SubscriptionUpdated<T>) => void;
|
|
18
|
+
isLoaded: boolean;
|
|
19
|
+
isInited: boolean;
|
|
20
|
+
define(definition: Definition<T>, group?: SubscriptionGroup | undefined): void | null;
|
|
21
|
+
detach(): void;
|
|
22
|
+
loaded(): StatefulPromise<SubscriptionGroupItem<T, D>>;
|
|
23
|
+
inited(): StatefulPromise<SubscriptionGroupItem<T, D>>;
|
|
24
|
+
unloaded(): StatefulPromise<SubscriptionGroupItem<T, D>>;
|
|
25
|
+
subscribe(): void | undefined;
|
|
26
|
+
unsubscribe(): void | undefined;
|
|
27
|
+
renew(publicationName: Definition<T>["publicationName"], params: Definition<T>["params"]): void | undefined;
|
|
28
|
+
valueOf(): SubscriptionValue<T> | undefined;
|
|
29
|
+
static debounceLimit: number;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=SubscriptionGroupItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscriptionGroupItem.d.ts","sourceRoot":"","sources":["../../src/SubscriptionGroup/SubscriptionGroupItem.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAuB,eAAe,EAAE,MAAM,WAAW,CAAC;AAWjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EACX,UAAU,EAGV,gBAAgB,EAChB,mBAAmB,EAEnB,iBAAiB,EACjB,MAAM,SAAS,CAAC;AAajB,qBAAa,qBAAqB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAE,SAAQ,YAAY;;gBAClI,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB;IASnD,IAAI,SAAC;IACL,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAG,QAAQ,GAAG,CAAC,CAAC;IACpB,eAAe,EAAG,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,EAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,EAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjC,YAAY,EAAG,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC7C,WAAW,EAAG,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAE3C,UAAU,EAAG,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAExD,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAMjB,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,iBAAiB,GAAG,SAAsB;IAyKnF,MAAM;IA8GN,MAAM;IAIN,MAAM;IAIN,QAAQ;IAIR,SAAS;IAIT,WAAW;IAIX,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAIxF,OAAO;IAKP,MAAM,CAAC,aAAa,SAAK;CAmBzB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SubscriptionGroup } from "./SubscriptionGroup";
|
|
2
|
+
import type { SubscriptionGroupItem } from "./SubscriptionGroupItem";
|
|
3
|
+
import type { SubscriptionType } from "./types";
|
|
4
|
+
export declare const privates: {
|
|
5
|
+
groupLoad?: (group: SubscriptionGroup) => void;
|
|
6
|
+
groupInit?: (group: SubscriptionGroup) => void;
|
|
7
|
+
groupUnload?: (group: SubscriptionGroup) => void;
|
|
8
|
+
itemLoad?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;
|
|
9
|
+
itemInit?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;
|
|
10
|
+
itemUnload?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/SubscriptionGroup/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,eAAO,MAAM,QAAQ,EAAE;IACtB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChF,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChF,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC7E,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./SubscriptionGroup";
|
|
2
|
+
export { Definition as SubscriptionGroupDefinition, ParseValues as ParseSubscriptionGroupValues, SubscriptionHandle as SubscriptionGroupSubscriptionHandle, SubscriptionType as SubscriptionGroupSubscriptionType, UnparsedDefinition as SubscriptionGroupUnparsedDefinition } from "./types";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SubscriptionGroup/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACN,UAAU,IAAI,2BAA2B,EACzC,WAAW,IAAI,4BAA4B,EAC3C,kBAAkB,IAAI,mCAAmC,EACzD,gBAAgB,IAAI,iCAAiC,EACrD,kBAAkB,IAAI,mCAAmC,EACzD,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { SubscriptionArrayUpdated, Updates as SubscriptionArrayUpdates, SubscriptionArrayWithSubscription } from "../SubscriptionArray";
|
|
2
|
+
import type { SubscriptionMapUpdated, Updates as SubscriptionMapUpdates, SubscriptionMapWithSubscription } from "../SubscriptionMap";
|
|
3
|
+
import type { Updated as SubscriptionObjectUpdated, Updates as SubscriptionObjectUpdates, SubscriptionObjectWithSubscription } from "../SubscriptionObject";
|
|
4
|
+
import type { SubscriptionGroup } from "./SubscriptionGroup";
|
|
5
|
+
export type SubscriptionType = "array" | "map" | "object";
|
|
6
|
+
export type SubscriptionUpdated<T> = T extends "array" ? SubscriptionArrayUpdated<any> : T extends "map" ? SubscriptionMapUpdated<any> : T extends "object" ? SubscriptionObjectUpdated : never;
|
|
7
|
+
export type SubscriptionValue<T> = T extends "array" ? SubscriptionArrayWithSubscription<any> : T extends "map" ? SubscriptionMapWithSubscription<any> : T extends "object" ? SubscriptionObjectWithSubscription : never;
|
|
8
|
+
export type SubscriptionHandle<T> = T extends "array" ? (updated: null | SubscriptionArrayUpdated<any>, group: SubscriptionGroup) => void : T extends "map" ? (updated: null | SubscriptionMapUpdated<any>, group: SubscriptionGroup) => void : T extends "object" ? (updated: null | SubscriptionObjectUpdated, group: SubscriptionGroup) => void : never;
|
|
9
|
+
export type SubscriptionOnBeforeInit<T> = T extends "array" ? (value: SubscriptionArrayWithSubscription<any>) => void : T extends "map" ? (value: SubscriptionMapWithSubscription<any>) => void : T extends "object" ? (value: SubscriptionObjectWithSubscription) => void : never;
|
|
10
|
+
export type SubscriptionUpdates<T> = T extends "array" ? SubscriptionArrayUpdates : T extends "map" ? SubscriptionMapUpdates : T extends "object" ? SubscriptionObjectUpdates : never;
|
|
11
|
+
export type Definition<T extends SubscriptionType = SubscriptionType> = {
|
|
12
|
+
name: string;
|
|
13
|
+
value?: SubscriptionValue<T>;
|
|
14
|
+
type?: T;
|
|
15
|
+
publicationName?: string;
|
|
16
|
+
params?: unknown[];
|
|
17
|
+
handle?: (...args: any[]) => void;
|
|
18
|
+
onBeforeInit?: (...args: any[]) => void;
|
|
19
|
+
debounce?: number;
|
|
20
|
+
preventBind?: boolean;
|
|
21
|
+
};
|
|
22
|
+
export type TupleDefinition = unknown[];
|
|
23
|
+
export type UnparsedDefinition<T extends SubscriptionType = SubscriptionType> = Definition<T> | TupleDefinition;
|
|
24
|
+
type ResolveObjectValue<T> = T extends {
|
|
25
|
+
value: infer V;
|
|
26
|
+
} ? V : T extends {
|
|
27
|
+
type: "array";
|
|
28
|
+
} ? SubscriptionArrayWithSubscription<any> : T extends {
|
|
29
|
+
type: "map";
|
|
30
|
+
} ? SubscriptionMapWithSubscription<any> : T extends {
|
|
31
|
+
type: "object";
|
|
32
|
+
} ? SubscriptionObjectWithSubscription : SubscriptionObjectWithSubscription;
|
|
33
|
+
type ResolveArrayValue<T extends any[]> = T[1] extends object ? T[1] : T[1] extends "array" ? SubscriptionArrayWithSubscription<any> : T[1] extends "map" ? SubscriptionMapWithSubscription<any> : T[1] extends "object" ? SubscriptionObjectWithSubscription : SubscriptionObjectWithSubscription;
|
|
34
|
+
type ResolveValue<U> = U extends object ? ResolveObjectValue<U> : U extends any[] ? ResolveArrayValue<U> : never;
|
|
35
|
+
export type ParseValues<T extends Array<any[] | object>> = {
|
|
36
|
+
[K in keyof T as T[K] extends {
|
|
37
|
+
name: infer N;
|
|
38
|
+
} ? N extends string ? N : never : T[K] extends [infer F, any] ? F extends string ? F : never : never]: ResolveValue<T[K]>;
|
|
39
|
+
} & T extends Array<infer U> ? ResolveValue<U>[] : never;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/SubscriptionGroup/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Subscription } from "./Subscription";
|
|
2
|
+
import { clearSymbol, getAsInitialUpdatedSymbol, getAsUpdatesSymbol, getHandleUpdateSymbol, getSubscriptionSymbol, renewSymbol, setHandleUpdateSymbol, subscribeSymbol, unsubscribeSymbol, updateSymbol } from "./symbols";
|
|
3
|
+
type GenericItem = {
|
|
4
|
+
_id: string;
|
|
5
|
+
} & Record<string, any>;
|
|
6
|
+
type Item = GenericItem | SubscriptionMapItem;
|
|
7
|
+
type Updated<I extends Item = Item> = {
|
|
8
|
+
deleted: string[];
|
|
9
|
+
added: I[];
|
|
10
|
+
} & I[];
|
|
11
|
+
type SortList = Record<string, -1 | 1>;
|
|
12
|
+
export type Updates<I extends Item = Item> = ([
|
|
13
|
+
"c",
|
|
14
|
+
item: I
|
|
15
|
+
] | [
|
|
16
|
+
"d",
|
|
17
|
+
_id: string
|
|
18
|
+
] | [
|
|
19
|
+
"i",
|
|
20
|
+
items: I[],
|
|
21
|
+
sortList?: SortList
|
|
22
|
+
] | [
|
|
23
|
+
"u",
|
|
24
|
+
itemUpdates: {
|
|
25
|
+
_id: string;
|
|
26
|
+
} & Partial<I>,
|
|
27
|
+
isAtomicOrUpdatedFields: string[] | true
|
|
28
|
+
] | null)[] | null;
|
|
29
|
+
type UpdateHandler<I extends Item = Item> = (map: SubscriptionMap<I>, updated: Updated<I>, updates: Updates<I>) => void;
|
|
30
|
+
declare global {
|
|
31
|
+
var __insite_subscription_map_sort_function: ((a: Item, b: Item) => -1 | 0 | 1) | undefined;
|
|
32
|
+
}
|
|
33
|
+
export declare class SubscriptionMap<I extends Item = Item> extends Map<string, I> {
|
|
34
|
+
constructor(updates?: Updates<I>, onUpdate?: UpdateHandler<I>);
|
|
35
|
+
handleUpdate: UpdateHandler<I> | undefined;
|
|
36
|
+
private updates;
|
|
37
|
+
sortList: null | SortList;
|
|
38
|
+
sortCompareFunction: ((a: I, b: I) => number) | null;
|
|
39
|
+
private fieldsToSort;
|
|
40
|
+
sorted: I[];
|
|
41
|
+
sort(): void;
|
|
42
|
+
[getHandleUpdateSymbol](): UpdateHandler<I> | undefined;
|
|
43
|
+
[setHandleUpdateSymbol](handleUpdate: UpdateHandler<I>): UpdateHandler<I>;
|
|
44
|
+
private TheItem;
|
|
45
|
+
set Item(TheItem: {
|
|
46
|
+
new (map: SubscriptionMap<I>, updates: GenericItem): I;
|
|
47
|
+
});
|
|
48
|
+
get Item(): {
|
|
49
|
+
new (map: SubscriptionMap<I>, updates: GenericItem): I;
|
|
50
|
+
};
|
|
51
|
+
update(updates: Updates<I>): this;
|
|
52
|
+
[updateSymbol]: (updates: Updates<I>) => this;
|
|
53
|
+
getAsUpdates(): (string | any[] | SortList | null)[][] | null;
|
|
54
|
+
[getAsUpdatesSymbol]: () => (string | any[] | SortList | null)[][] | null;
|
|
55
|
+
getAsInitialUpdated(): I[] & {
|
|
56
|
+
added: I[];
|
|
57
|
+
deleted: never[];
|
|
58
|
+
};
|
|
59
|
+
[getAsInitialUpdatedSymbol]: () => I[] & {
|
|
60
|
+
added: I[];
|
|
61
|
+
deleted: never[];
|
|
62
|
+
};
|
|
63
|
+
clear(): void;
|
|
64
|
+
[clearSymbol]: () => void;
|
|
65
|
+
valueOf(): I[];
|
|
66
|
+
get [Symbol.toStringTag](): string;
|
|
67
|
+
static updateSymbol: symbol;
|
|
68
|
+
static getHandleUpdateSymbol: symbol;
|
|
69
|
+
static setHandleUpdateSymbol: symbol;
|
|
70
|
+
static getAsUpdatesSymbol: symbol;
|
|
71
|
+
static getAsInitialUpdatedSymbol: symbol;
|
|
72
|
+
static clearSymbol: symbol;
|
|
73
|
+
static WithSubscription: typeof SubscriptionMapWithSubscription;
|
|
74
|
+
static Item: typeof SubscriptionMapItem;
|
|
75
|
+
}
|
|
76
|
+
export declare class SubscriptionMapWithSubscription<I extends Item = Item> extends SubscriptionMap<I> {
|
|
77
|
+
constructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler<I>, immediately?: boolean);
|
|
78
|
+
publicationName: string;
|
|
79
|
+
params: unknown[];
|
|
80
|
+
subscription: null | Subscription;
|
|
81
|
+
subscribe(): void;
|
|
82
|
+
get [subscribeSymbol](): () => void;
|
|
83
|
+
unsubscribe(): void;
|
|
84
|
+
get [unsubscribeSymbol](): () => void;
|
|
85
|
+
renew(publicationName?: string, params?: unknown[]): void;
|
|
86
|
+
get [renewSymbol](): (publicationName?: string, params?: unknown[]) => void;
|
|
87
|
+
[getSubscriptionSymbol](): Subscription | null;
|
|
88
|
+
get [Symbol.toStringTag](): string;
|
|
89
|
+
static subscribeSymbol: symbol;
|
|
90
|
+
static unsubscribeSymbol: symbol;
|
|
91
|
+
static renewSymbol: symbol;
|
|
92
|
+
static getSubscriptionSymbol: symbol;
|
|
93
|
+
}
|
|
94
|
+
export declare class SubscriptionMapItem {
|
|
95
|
+
constructor(map: SubscriptionMap, updates: GenericItem);
|
|
96
|
+
_id: string;
|
|
97
|
+
private map;
|
|
98
|
+
update(updates: GenericItem): void;
|
|
99
|
+
delete(): void;
|
|
100
|
+
}
|
|
101
|
+
export { Updated as SubscriptionMapUpdated };
|
|
102
|
+
//# sourceMappingURL=SubscriptionMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscriptionMap.d.ts","sourceRoot":"","sources":["../src/SubscriptionMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Subscription } from "./Subscription";
|
|
2
|
+
import { clearSymbol, getAsInitialUpdatedSymbol, getAsUpdatesSymbol, getHandleUpdateSymbol, getSubscriptionSymbol, renewSymbol, setHandleUpdateSymbol, subscribeSymbol, unsubscribeSymbol, updateSymbol } from "./symbols";
|
|
3
|
+
declare const handleUpdateSymbol: unique symbol;
|
|
4
|
+
declare const updatesSymbol: unique symbol;
|
|
5
|
+
export type Updated = Record<string, unknown>;
|
|
6
|
+
export type Updates = null | Record<string, unknown>;
|
|
7
|
+
type UpdateHandler = (object: SubscriptionObject, updated: Updated, updates: Updates) => void;
|
|
8
|
+
export declare class SubscriptionObject {
|
|
9
|
+
constructor(updates?: Updates, onUpdate?: UpdateHandler);
|
|
10
|
+
[handleUpdateSymbol]?: UpdateHandler;
|
|
11
|
+
[updatesSymbol]: Updates;
|
|
12
|
+
[getHandleUpdateSymbol](): UpdateHandler | undefined;
|
|
13
|
+
[setHandleUpdateSymbol](handleUpdate: UpdateHandler): UpdateHandler;
|
|
14
|
+
[updateSymbol](updates: Updates): this;
|
|
15
|
+
[getAsUpdatesSymbol](): {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | null;
|
|
18
|
+
[getAsInitialUpdatedSymbol](): this | null;
|
|
19
|
+
[clearSymbol](): void;
|
|
20
|
+
valueOf(): this | null;
|
|
21
|
+
get [Symbol.toStringTag](): string;
|
|
22
|
+
[key: string]: unknown;
|
|
23
|
+
static updateSymbol: symbol;
|
|
24
|
+
static getHandleUpdateSymbol: symbol;
|
|
25
|
+
static setHandleUpdateSymbol: symbol;
|
|
26
|
+
static getAsUpdatesSymbol: symbol;
|
|
27
|
+
static getAsInitialUpdatedSymbol: symbol;
|
|
28
|
+
static clearSymbol: symbol;
|
|
29
|
+
static WithSubscription: typeof SubscriptionObjectWithSubscription;
|
|
30
|
+
}
|
|
31
|
+
export declare class SubscriptionObjectWithSubscription extends SubscriptionObject {
|
|
32
|
+
constructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler, immediately?: boolean);
|
|
33
|
+
private publicationName;
|
|
34
|
+
private params;
|
|
35
|
+
private subscription;
|
|
36
|
+
[subscribeSymbol](): void;
|
|
37
|
+
[unsubscribeSymbol](): void;
|
|
38
|
+
[renewSymbol](publicationName?: string, params?: unknown[]): void;
|
|
39
|
+
[getSubscriptionSymbol](): Subscription | null;
|
|
40
|
+
get [Symbol.toStringTag](): string;
|
|
41
|
+
static subscribeSymbol: symbol;
|
|
42
|
+
static unsubscribeSymbol: symbol;
|
|
43
|
+
static renewSymbol: symbol;
|
|
44
|
+
static getSubscriptionSymbol: symbol;
|
|
45
|
+
}
|
|
46
|
+
export { Updated as SubscriptionObjectUpdated };
|
|
47
|
+
//# sourceMappingURL=SubscriptionObject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscriptionObject.d.ts","sourceRoot":"","sources":["../src/SubscriptionObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACN,WAAW,EACX,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,MAAM,WAAW,CAAC;AAGnB,QAAA,MAAM,kBAAkB,eAAyB,CAAC;AAClD,QAAA,MAAM,aAAa,eAAoB,CAAC;AAExC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAG9F,qBAAa,kBAAkB;gBAClB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,aAAa;IASvD,CAAC,kBAAkB,CAAC,CAAC,EAAE,aAAa,CAAC;IAErC,CAAC,aAAa,CAAC,EAAE,OAAO,CAAQ;IAEhC,CAAC,qBAAqB,CAAC;IAIvB,CAAC,qBAAqB,CAAC,CAAC,YAAY,EAAE,aAAa;IAInD,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,OAAO;IAe/B,CAAC,kBAAkB,CAAC;;;IAIpB,CAAC,yBAAyB,CAAC;IAI3B,CAAC,WAAW,CAAC;IAQb,OAAO;IAIP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAGvB,MAAM,CAAC,YAAY,SAAgB;IACnC,MAAM,CAAC,qBAAqB,SAAyB;IACrD,MAAM,CAAC,qBAAqB,SAAyB;IACrD,MAAM,CAAC,kBAAkB,SAAsB;IAC/C,MAAM,CAAC,yBAAyB,SAA6B;IAC7D,MAAM,CAAC,WAAW,SAAe;IACjC,MAAM,CAAC,gBAAgB,EAAE,OAAO,kCAAkC,CAAC;CAEnE;AAGD,qBAAa,kCAAmC,SAAQ,kBAAkB;gBAC7D,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,UAAO;IAWnG,OAAO,CAAC,eAAe,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,YAAY,CAA6B;IAEjD,CAAC,eAAe,CAAC;IAOjB,CAAC,iBAAiB,CAAC;IASnB,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE;IAmB1D,CAAC,qBAAqB,CAAC;IAIvB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAGD,MAAM,CAAC,eAAe,SAAmB;IACzC,MAAM,CAAC,iBAAiB,SAAqB;IAC7C,MAAM,CAAC,WAAW,SAAe;IACjC,MAAM,CAAC,qBAAqB,SAAyB;CAErD;AAID,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,CAAC"}
|
|
@@ -3,17 +3,5 @@ export { SubscriptionArray, SubscriptionArrayUpdated, SubscriptionArrayWithSubsc
|
|
|
3
3
|
export * from "./SubscriptionGroup";
|
|
4
4
|
export { SubscriptionMap, SubscriptionMapUpdated, SubscriptionMapWithSubscription } from "./SubscriptionMap";
|
|
5
5
|
export { SubscriptionObject, SubscriptionObjectUpdated, SubscriptionObjectWithSubscription } from "./SubscriptionObject";
|
|
6
|
-
export {
|
|
7
|
-
|
|
8
|
-
getAsInitialUpdatedSymbol,
|
|
9
|
-
getAsUpdatesSymbol,
|
|
10
|
-
getHandleSubscriptionSymbol,
|
|
11
|
-
getHandleUpdateSymbol,
|
|
12
|
-
getSubscriptionSymbol,
|
|
13
|
-
renewSymbol,
|
|
14
|
-
setHandleSubscriptionSymbol,
|
|
15
|
-
setHandleUpdateSymbol,
|
|
16
|
-
subscribeSymbol,
|
|
17
|
-
unsubscribeSymbol,
|
|
18
|
-
updateSymbol
|
|
19
|
-
} from "./symbols";
|
|
6
|
+
export { clearSymbol, getAsInitialUpdatedSymbol, getAsUpdatesSymbol, getHandleSubscriptionSymbol, getHandleUpdateSymbol, getSubscriptionSymbol, renewSymbol, setHandleSubscriptionSymbol, setHandleUpdateSymbol, subscribeSymbol, unsubscribeSymbol, updateSymbol } from "./symbols";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AACrH,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,kCAAkC,EAAE,MAAM,sBAAsB,CAAC;AACzH,OAAO,EACN,WAAW,EACX,yBAAyB,EACzB,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,MAAM,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var Ot=Object.defineProperty;var ut=r=>{throw TypeError(r)};var Gt=(r,s,t)=>s in r?Ot(r,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[s]=t;var i=(r,s,t)=>Gt(r,typeof s!="symbol"?s+"":s,t),st=(r,s,t)=>s.has(r)||ut("Cannot "+t);var p=(r,s,t)=>(st(r,s,"read from private field"),t?t.call(r):s.get(r)),v=(r,s,t)=>s.has(r)?ut("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(r):s.set(r,t),m=(r,s,t,e)=>(st(r,s,"write to private field"),e?e.call(r,t):s.set(r,t),t),b=(r,s,t)=>(st(r,s,"access private method"),t);var dt,q,_,E=class{constructor(s,t,e=[],n,o=!0){i(this,"i");i(this,"type");i(this,"publicationName");i(this,"args");i(this,"handler");i(this,"immediately");i(this,"isActive");i(this,"start",()=>{_.sendMessage("s-s",this.type,this.publicationName,this.i,this.args,this.immediately),this.immediately=!0});if(!_)throw new Error("Subscription is not binded to WS. Do Subscription.bindTo(ws) first");this.i=dt++,this.type=s,this.publicationName=t,this.args=e,this.handler=n,this.immediately=o&&!window.__initials,q.set(this.i,this),_.on("open",this.start),_.isOpen&&this.start(),window.__initials?(this.isActive=!0,this.handler(window.__initials.splice(0,1)[0])):this.isActive=!1}cancel(){q.delete(this.i),_.off("open",this.start),_.sendMessage("s-u",this.i)}static bindTo(s){_=s,dt=0,q=new Map,_.on("message:s-c",(t,e)=>{let n=q.get(t);n&&(n.isActive=!0,n.handler(e))}),_.on("close",()=>{for(let t of q.values())t.isActive=!1}),_.on("server-change",()=>{for(let t of q.values())t.handler(null)})}};import{removeOne as jt}from"@nesvet/n";var x=Symbol("update"),O=Symbol("getHandleUpdate"),f=Symbol("setHandleUpdate"),G=Symbol("getAsUpdates"),k=Symbol("getAsInitialUpdated"),L=Symbol("clear"),S=Symbol("subscribe"),y=Symbol("unsubscribe"),D=Symbol("renew"),P=Symbol("getSubscription"),kt=Symbol("getHandleSubscription"),Pt=Symbol("setHandleSubscription");var Bt=(r,s)=>r>s?1:r<s?-1:0,Ft=(r,s)=>r>s?-1:r<s?1:0,lt,ht,ct,mt,H=class extends Array{constructor(t,e){super();i(this,"sorted",[]);i(this,"handleUpdate");i(this,"sortDirection",0);i(this,"sortCompareFunction",null);i(this,mt,this.update);i(this,ct,this.getAsUpdates);i(this,ht,this.getAsInitialUpdated);i(this,lt,this.clear);e&&(this.handleUpdate=e),Array.isArray(t)&&this.update(t)}[O](){return this.handleUpdate}[f](t){return this.handleUpdate=t}update(t){let e=Object.assign([],{deleted:[],added:[]});if(t){let n=!1;for(let o of t)switch(o?.[0]){case"i":{let[,u,h]=o;h?(this.sortDirection=h,this.sortCompareFunction=h>0?Bt:Ft,n=!0):(this.sortDirection=0,this.sortCompareFunction=null),this.length=0;for(let a of u)this.push(a),e.push(a),e.added.push(a);break}case"a":{let[,u]=o;this.includes(u)||(this.push(u),this.sortDirection&&(n=!0),e.push(u),e.added.push(u));break}case"d":{let[,u]=o;jt(this,u)&&e.deleted.push(u);break}default:this.clear()}n&&this.sortCompareFunction&&this.sort(this.sortCompareFunction)}else this.clear();return this.handleUpdate?.(this,e,t?.[0]?t:null),this}getAsUpdates(){return this.length||this.sortDirection?[["i",[...this],this.sortDirection]]:null}getAsInitialUpdated(){return Object.assign([...this.sorted],{added:[...this.sorted],deleted:[]})}clear(){this.length=0,this.sortDirection=0,this.sortCompareFunction=null}valueOf(){return this}get[(mt=x,ct=G,ht=k,lt=L,Symbol.toStringTag)](){return"SubscriptionArray"}};i(H,"updateSymbol",x),i(H,"getHandleUpdateSymbol",O),i(H,"setHandleUpdateSymbol",f),i(H,"getAsUpdatesSymbol",G),i(H,"getAsInitialUpdatedSymbol",k),i(H,"clearSymbol",L),i(H,"WithSubscription");var j=class extends H{constructor(t,e,n,o=!0){super(null,n);i(this,"publicationName");i(this,"params");i(this,"subscription",null);this.publicationName=t,this.params=e,o&&this.subscribe()}subscribe(){this.subscription||(this.subscription=new E("array",this.publicationName,this.params,t=>this.update(t)))}get[S](){return this.subscribe}unsubscribe(){this.subscription&&(this.subscription.cancel(),this.subscription=null)}get[y](){return this.unsubscribe}renew(t,e){this.subscription&&(this.unsubscribe(),t&&(Array.isArray(t)?e=t:this.publicationName=t),e&&(this.params=e),this.subscribe())}get[D](){return this.renew}[P](){return this.subscription}get[Symbol.toStringTag](){return"SubscriptionArrayWithSubscription"}};i(j,"subscribeSymbol",S),i(j,"unsubscribeSymbol",y),i(j,"renewSymbol",D),i(j,"getSubscriptionSymbol",P);H.WithSubscription=j;import $t from"eventemitter3";import{debounce as Vt,StatefulPromise as Z}from"@nesvet/n";var g={};import Ct from"eventemitter3";import{debounce as Wt,removeOne as It,StatefulPromise as Y}from"@nesvet/n";import{removeOne as Nt}from"@nesvet/n";function Mt(r){let s=document.createElement("script");s.textContent=`window.__insite_subscription_map_sort_function = function sort(a, b) { return ${Object.entries(r).map(([e,n])=>n>0?`a.${e} > b.${e} ? 1 : a.${e} < b.${e} ? -1 :`:`a.${e} < b.${e} ? 1 : a.${e} > b.${e} ? -1 :`).concat("0").join(" ")};}`,document.head.append(s);let t=window.__insite_subscription_map_sort_function;return s.remove(),delete window.__insite_subscription_map_sort_function,t}var bt,ft,St,yt,U=class extends Map{constructor(t,e){super();i(this,"handleUpdate");i(this,"updates",new Map);i(this,"sortList",null);i(this,"sortCompareFunction",null);i(this,"fieldsToSort",[]);i(this,"sorted",[]);i(this,"TheItem");i(this,yt,this.update);i(this,St,this.getAsUpdates);i(this,ft,this.getAsInitialUpdated);i(this,bt,this.clear);e&&(this.handleUpdate=e),t&&this.update(t)}sort(){this.sortCompareFunction&&this.sorted.sort(this.sortCompareFunction)}[O](){return this.handleUpdate}[f](t){return this.handleUpdate=t}set Item(t){if(this.TheItem=t,this.size)for(let[e,n]of this)this.set(e,new t(this,n))}get Item(){return this.TheItem}update(t){let e=Object.assign([],{added:[],deleted:[]});if(t){let n=!1,o=this.TheItem,u=this.updates;for(let h of t)switch(h?.[0]){case"i":{let[,a,l]=h;if(l?(this.sortList=l,this.sortCompareFunction=Mt(l),this.fieldsToSort=[...new Set(Object.keys(l).map(c=>c.replace(/\..+/,"")))],n=!0):(this.sortList=null,this.sortCompareFunction=null,this.fieldsToSort=[]),this.size){let c=new Map;for(let d of a)c.set(d._id,d);for(let[d,T]of this){let w=c.get(d);if(w){let Lt=u.get(d);if(o)T.update(w);else{for(let _t in Lt)delete T[_t];Object.assign(T,w)}u.set(d,w),e.push(T),c.delete(d)}else o?T.delete():this.delete(d),u.delete(d),e.deleted.push(d)}for(let[d,T]of c){let w=o?new o(this,T):{...T};this.set(d,w),u.set(d,T),e.push(w),e.added.push(w)}this.sortList&&(this.sorted=a.map(d=>this.get(d._id)))}else for(let c of a){let d=o?new o(this,c):{...c};this.set(d._id,d),this.sorted.push(d),u.set(d._id,c),e.push(d),e.added.push(d)}break}case"c":case"u":{let[,a]=h,l=this.get(a._id);if(l){let c=h[2]===!0,d=c?Object.keys(a):h[2],T=u.get(l._id);if(o)l.update(a);else{if(!c)for(let w in T)delete l[w];Object.assign(l,a)}c&&(a=Object.assign(T,a)),this.sortList&&!n&&(!d||d.some(w=>this.fieldsToSort.includes(w)))&&(n=!0)}else l=o?new o(this,a):{...a},this.set(l._id,l),this.sorted.push(l),this.sortList&&(n=!0),e.added.push(l);u.set(l._id,a),e.push(l);break}case"d":{let[,a]=h,l=this.get(a);l&&(o?l.delete():this.delete(a),u.delete(a),Nt(this.sorted,l),e.deleted.push(a));break}default:this.clear()}n&&this.sort()}else this.clear();return this.handleUpdate?.(this,e,t?.[0]?t:null),this}getAsUpdates(){return this.size||this.sortList?[["i",[...this.updates.values()],this.sortList]]:null}getAsInitialUpdated(){return Object.assign([...this.sorted],{added:[...this.sorted],deleted:[]})}clear(){super.clear(),this.updates.clear(),this.sorted=[],this.sortList=null,this.sortCompareFunction=null,this.fieldsToSort=[]}valueOf(){return this.sorted}get[(yt=x,St=G,ft=k,bt=L,Symbol.toStringTag)](){return"SubscriptionMap"}};i(U,"updateSymbol",x),i(U,"getHandleUpdateSymbol",O),i(U,"setHandleUpdateSymbol",f),i(U,"getAsUpdatesSymbol",G),i(U,"getAsInitialUpdatedSymbol",k),i(U,"clearSymbol",L),i(U,"WithSubscription"),i(U,"Item");var B=class extends U{constructor(t,e,n,o=!0){super(null,n);i(this,"publicationName");i(this,"params");i(this,"subscription",null);this.publicationName=t,this.params=e,o&&this.subscribe()}subscribe(){this.subscription||(this.subscription=new E("map",this.publicationName,this.params,t=>this.update(t)))}get[S](){return this.subscribe}unsubscribe(){this.subscription&&(this.subscription.cancel(),this.subscription=null)}get[y](){return this.unsubscribe}renew(t,e){this.subscription&&(this.unsubscribe(),t&&(Array.isArray(t)?e=t:this.publicationName=t),e&&(this.params=e),this.subscribe())}get[D](){return this.renew}[P](){return this.subscription}get[Symbol.toStringTag](){return"SubscriptionMapWithSubscription"}};i(B,"subscribeSymbol",S),i(B,"unsubscribeSymbol",y),i(B,"renewSymbol",D),i(B,"getSubscriptionSymbol",P);U.WithSubscription=B;var nt=class{constructor(s,t){i(this,"_id");i(this,"map");this.map=s,this.update(t)}update(s){Object.assign(this,s)}delete(){this.map.delete(this._id)}};U.Item=nt;var X=Symbol("handleUpdate"),R=Symbol("updates"),gt,Ut,A=class{constructor(s,t){i(this,Ut);i(this,gt,null);t&&(this[X]=t),s&&this[x](s)}[(Ut=X,gt=R,O)](){return this[X]}[f](s){return this[X]=s}[x](s){if(s){for(let t in this[R])delete this[t];for(let t in s)this[t]=s[t];this[R]=s}else this[L]();return this[X]?.(this,this,this[R]),this}[G](){return this[R]&&{...this[R]}}[k](){return this.valueOf()}[L](){for(let s in this)delete this[s];this[R]=null}valueOf(){return this[R]&&this}get[Symbol.toStringTag](){return"SubscriptionObject"}};i(A,"updateSymbol",x),i(A,"getHandleUpdateSymbol",O),i(A,"setHandleUpdateSymbol",f),i(A,"getAsUpdatesSymbol",G),i(A,"getAsInitialUpdatedSymbol",k),i(A,"clearSymbol",L),i(A,"WithSubscription");var F=class extends A{constructor(t,e,n,o=!0){super(null,n);i(this,"publicationName");i(this,"params");i(this,"subscription",null);this.publicationName=t,this.params=e,o&&this[S]()}[S](){this.subscription||(this.subscription=new E("object",this.publicationName,this.params,t=>this[x](t)))}[y](){this.subscription&&(this.subscription.cancel(),this.subscription=null)}[D](t,e){this.subscription&&(this[y](),t&&(Array.isArray(t)?e=t:this.publicationName=t),e&&(this.params=e),this[S]())}[P](){return this.subscription}get[Symbol.toStringTag](){return"SubscriptionObjectWithSubscription"}};i(F,"subscribeSymbol",S),i(F,"unsubscribeSymbol",y),i(F,"renewSymbol",D),i(F,"getSubscriptionSymbol",P);A.WithSubscription=F;function vt(r){return Array.isArray(r)}var N,z,M,I,rt,Tt,V,K,wt,xt,ot,et=class et extends Ct{constructor(t,e){super();v(this,I);i(this,"name");i(this,"group");i(this,"value");i(this,"type");i(this,"publicationName");i(this,"params");i(this,"handle");i(this,"onBeforeInit");i(this,"preventBind");i(this,"emitUpdate");i(this,"isLoaded",!1);i(this,"isInited",!1);v(this,N);v(this,z);v(this,M);v(this,V,null);v(this,K,(t,e,n)=>{if(n)if(this.group.isLoaded){if(this.handle)switch(this.type){case"array":this.handle.call(this.group,e,this.group);break;case"map":this.handle.call(this.group,e,this.group);break;default:this.handle.call(this.group,e,this.group)}this.emitUpdate(e)}else m(this,V,e),this.isLoaded=!0,g.groupLoad(this.group);else this.isLoaded&&(this.isLoaded=!1,g.groupUnload(this.group));this.isInited||(this.isInited=!0,g.groupInit(this.group))});this.name=t.name,this.define(t,e)}define(t,e=this.group){if(!e)throw new Error("group is undefined");let{value:n,type:o="object",publicationName:u,params:h,handle:a,onBeforeInit:l,debounce:c=et.debounceLimit,preventBind:d}=t;if(this.group){if((!n||this.value===n)&&this.type===o&&this.publicationName===u&&JSON.stringify(this.params)===JSON.stringify(h)&&this.handle===a&&this.onBeforeInit===l)return b(this,I,rt).call(this,{debounceLimit:c,preventBind:d});this.detach(),delete this.value,delete this.publicationName,delete this.params}return this.type=o,this.handle=a,this.onBeforeInit=l,n?this.value=n:(this.publicationName=u??this.name,this.params=h??[]),b(this,I,rt).call(this,{debounceLimit:c,preventBind:d}),b(this,I,Tt).call(this,e),null}detach(){this.group&&(this.value?.[y](),this.isLoaded=!1,b(this,I,ot).call(this),delete this.group.values[this.name],It(this.group.values,this.value),delete this.group.items[this.name],It(this.group.items,this),delete this.group)}loaded(){return p(this,N)}inited(){return p(this,z)}unloaded(){return p(this,M)}subscribe(){return this.value?.[S]()}unsubscribe(){return this.value?.[y]()}renew(t,e){return this.value?.[D](t,e)}valueOf(){return this.value}};N=new WeakMap,z=new WeakMap,M=new WeakMap,I=new WeakSet,rt=function({debounceLimit:t,preventBind:e}){let n=o=>{this.emit("update",this.value,o),this.group?.emit(`update.${this.name}`,this.value,o),this.group?.emitUpdate()};if(typeof t=="number"){let o,u,h=Wt(()=>{let a=!this.group;a&&(this.group=u),n(o),a&&delete this.group,o=void 0},t);this.emitUpdate=a=>{if(a!==void 0)if(vt(a))if(vt(o))for(let l of a)o.push(l);else o=Object.assign([...a],{added:[...a.added],deleted:[...a.deleted]});else typeof a=="object"?o?Object.assign(o,a):o={...a}:o=a;return u=this.group,h()}}else this.emitUpdate=n;this.preventBind===void 0?delete this.preventBind:this.preventBind=e},Tt=function(t){if(!this.group){switch(this.group=t,this.group.items.push(this),this.group.items[this.name]=this,(!p(this,N)||p(this,N).isFulfilled)&&m(this,N,new Y),(!p(this,z)||p(this,z).isFulfilled)&&m(this,z,new Y),(!p(this,M)||p(this,M).isFulfilled)&&m(this,M,new Y),this.type){case"array":{let e=p(this,K);this.value?this.value[f](e):this.value=new j(this.publicationName,this.params,e,!1);break}case"map":{let e=p(this,K);this.value?this.value[f](e):this.value=new B(this.publicationName,this.params,e,!1);break}default:{let e=p(this,K);this.value?this.value[f](e):this.value=new F(this.publicationName,this.params,e,!1)}}if(this.group.values.push(this.value),this.group.values[this.name]=this.value,this.onBeforeInit)switch(this.type){case"array":this.onBeforeInit.call(this.group,this.value);break;case"map":this.onBeforeInit.call(this.group,this.value);break;default:this.onBeforeInit.call(this.group,this.value)}}},V=new WeakMap,K=new WeakMap,wt=function(){if(p(this,V)){if(this.handle)switch(this.type){case"array":this.handle.call(this.group,p(this,V),this.group);break;case"map":this.handle.call(this.group,p(this,V),this.group);break;default:this.handle.call(this.group,p(this,V),this.group)}m(this,V,null),this.emit("load",this.value),p(this,N).resolve(this),p(this,M).isFulfilled&&m(this,M,new Y)}},xt=function(){this.emit("init",this.value),p(this,z).resolve(this)},ot=function(){if(this.handle)switch(this.type){case"array":this.handle.call(this.group,null,this.group);break;case"map":this.handle.call(this.group,null,this.group);break;default:this.handle.call(this.group,null,this.group)}this.emit("unload",this.value),p(this,M).resolve(this),p(this,N).isFulfilled&&m(this,N,new Y)},i(et,"debounceLimit",4),g.itemLoad=t=>{var e;return b(e=t,I,wt).call(e)},g.itemInit=t=>{var e;return b(e=t,I,xt).call(e)},g.itemUnload=t=>{var e;return b(e=t,I,ot).call(e)};var tt=et;function Et(r){return Array.isArray(r)}function Dt(r){if(Et(r)){let s=r.slice(),t={};if(t.name=s.shift(),typeof s[0]=="object"&&!Array.isArray(s[0])){if(t.value=s.shift(),t.type=t.value.toString().match(/Subscription(Object|Array|Map)/)?.[1].toLowerCase(),!t.type)throw new Error("Unknown value type")}else typeof s[0]=="string"&&(t.type=s.shift()),typeof s[0]=="string"&&(t.publicationName=s.shift()),Array.isArray(s[0])&&(t.params=s.shift());return typeof s[0]=="function"&&(t.handle=s.shift()),typeof s[0]=="function"&&(t.onBeforeInit=s.shift()),typeof s[0]=="number"&&(t.debounce=s.shift()),typeof s[0]=="boolean"&&(t.preventBind=s.shift()),t}return r.type??(r.type="object"),r}var C,Q,W,J,$,at,At,pt,it=class it extends $t{constructor(t,{target:e,debounce:n=it.debounceLimit,immediately:o}={}){super();v(this,$);i(this,"target");i(this,"emitUpdate");i(this,"items",[]);i(this,"values",[]);i(this,"isLoaded",!1);i(this,"isInited",!1);v(this,C);v(this,Q);v(this,W);v(this,J,null);this.applyOptions({target:e,debounceLimit:n}),m(this,Q,new Z),this.attach(t,!1,o)}applyOptions({target:t,debounceLimit:e}){if(this.target!==t){if(this.target)for(let n of this.items)n.isLoaded&&!n.preventBind&&delete this.target[n.name];if(this.target=t,this.target)for(let n of this.items)n.isLoaded&&!n.preventBind&&(this.target[n.name]=n.value)}if(p(this,J)!==e)if(m(this,J,e),typeof p(this,J)=="number"){let n=Vt(()=>this.emit("update",this.values),p(this,J));this.emitUpdate=()=>n()}else this.emitUpdate=()=>this.emit("update",this.values)}attach(t,e=this.isLoaded,n=!0){return e&&(this.isLoaded=!1),(!p(this,C)||p(this,C).isFulfilled)&&m(this,C,new Z),(!p(this,W)||p(this,W).isFulfilled)&&m(this,W,new Z),Promise.all(t.map(o=>new tt(Dt(o),this)).map(o=>(n&&o.subscribe(),o.loaded())))}detach(t,e=!0){for(let n of t)this.items[n]?.detach();e&&(b(this,$,pt).call(this),b(this,$,at).call(this))}redefine(t){let e=new Map(this.items.map(u=>[u.name,u])),n=[],o=[];for(let u of t)u=Dt(u),e.delete(u.name)?n.push(u):o.push(u);return this.isLoaded=!1,this.detach([...e.keys()],!1),Promise.all([...n.map(u=>{let h=this.items[u.name];return h.define(u),h.subscribe(),h.loaded()}),...o.length?[this.attach(o,!1)]:[]])}subscribe(){return this.items.map(t=>t.subscribe())}unsubscribe(){return this.items.map(t=>t.unsubscribe())}loaded(){return p(this,C)}inited(){return p(this,Q)}unloaded(){return p(this,W)}valueOf(){return this.values}[Symbol.iterator](){return this.values[Symbol.iterator]()}};C=new WeakMap,Q=new WeakMap,W=new WeakMap,J=new WeakMap,$=new WeakSet,at=function(){if(!this.isLoaded&&this.items.every(t=>t.isLoaded)){if(this.target)for(let t of this.items)t.preventBind||(this.target[t.name]=t.value);this.isLoaded=!0;for(let t of this.items)g.itemLoad(t);if(this.emit("load",this.values),this.isInited)if(this.items.length)for(let t of this.items)t.emitUpdate();else this.emitUpdate();p(this,C).resolve(this),p(this,W).isFulfilled&&m(this,W,new Z)}},At=function(){if(!this.isInited&&this.items.every(t=>t.isInited)){if(this.isInited=!0,this.isLoaded)if(this.items.length)for(let t of this.items)t.emitUpdate();else this.emitUpdate();for(let t of this.items)g.itemInit(t);this.emit("init",this.values),p(this,Q).resolve(this)}},pt=function(){if(this.isLoaded&&this.items.every(t=>!t.isLoaded)){if(this.target)for(let t of this.items)t.preventBind||delete this.target[t.name];this.isLoaded=!1;for(let t of this.items)g.itemUnload(t);if(this.emit("unload",this.values),this.items.length)for(let t of this.items)t.emitUpdate();else this.emitUpdate();p(this,W).resolve(this),p(this,C).isFulfilled&&m(this,C,new Z)}},i(it,"debounceLimit",8),g.groupLoad=t=>{var e;return b(e=t,$,at).call(e)},g.groupInit=t=>{var e;return b(e=t,$,At).call(e)},g.groupUnload=t=>{var e;return b(e=t,$,pt).call(e)};var Ht=it;export{E as Subscription,H as SubscriptionArray,j as SubscriptionArrayWithSubscription,Ht as SubscriptionGroup,U as SubscriptionMap,B as SubscriptionMapWithSubscription,A as SubscriptionObject,F as SubscriptionObjectWithSubscription,L as clearSymbol,k as getAsInitialUpdatedSymbol,G as getAsUpdatesSymbol,kt as getHandleSubscriptionSymbol,O as getHandleUpdateSymbol,P as getSubscriptionSymbol,D as renewSymbol,Pt as setHandleSubscriptionSymbol,f as setHandleUpdateSymbol,S as subscribeSymbol,y as unsubscribeSymbol,x as updateSymbol};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|