insite-subscriptions-client 2.0.3 → 2.0.4
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/bun.lockb +0 -0
- package/dist/SubscriptionArray.d.ts +9 -15
- package/dist/SubscriptionArray.d.ts.map +1 -1
- package/dist/SubscriptionGroup/SubscriptionGroup.d.ts +2 -2
- package/dist/SubscriptionGroup/SubscriptionGroupItem.d.ts +1 -1
- package/dist/SubscriptionGroup/SubscriptionGroupItem.d.ts.map +1 -1
- package/dist/SubscriptionGroup/types.d.ts +2 -2
- package/dist/SubscriptionGroup/types.d.ts.map +1 -1
- package/dist/SubscriptionMap.d.ts +8 -14
- package/dist/SubscriptionMap.d.ts.map +1 -1
- package/dist/SubscriptionObject.d.ts +4 -6
- package/dist/SubscriptionObject.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/package.json +5 -5
package/bun.lockb
ADDED
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Subscription } from "./Subscription";
|
|
2
2
|
import { clearSymbol, getAsInitialUpdatedSymbol, getAsUpdatesSymbol, getHandleUpdateSymbol, getSubscriptionSymbol, renewSymbol, setHandleUpdateSymbol, subscribeSymbol, unsubscribeSymbol, updateSymbol } from "./symbols";
|
|
3
3
|
type Item = unknown;
|
|
4
|
-
type Updated<I extends Item = Item> = {
|
|
4
|
+
export type Updated<I extends Item = Item> = {
|
|
5
5
|
deleted: I[];
|
|
6
6
|
added: I[];
|
|
7
7
|
} & I[];
|
|
@@ -14,14 +14,14 @@ export type Updates<I extends Item = Item> = ([
|
|
|
14
14
|
] | [
|
|
15
15
|
"i",
|
|
16
16
|
items: I[],
|
|
17
|
-
sort?: -1 | 1
|
|
17
|
+
sort?: -1 | 0 | 1
|
|
18
18
|
] | null)[] | null;
|
|
19
|
-
type UpdateHandler<I extends Item = Item> = (array: SubscriptionArray<I>, updated: Updated<I>, updates: Updates<I>) => void;
|
|
19
|
+
export type UpdateHandler<I extends Item = Item> = (array: SubscriptionArray<I>, updated: Updated<I>, updates: Updates<I>) => void;
|
|
20
20
|
declare const ascSort: (a: any, b: any) => 0 | 1 | -1;
|
|
21
21
|
declare const descSort: (a: any, b: any) => 0 | 1 | -1;
|
|
22
22
|
export declare class SubscriptionArray<I extends Item = Item> extends Array<I> {
|
|
23
23
|
constructor(updates?: Updates<I>, onUpdate?: UpdateHandler<I>);
|
|
24
|
-
sorted:
|
|
24
|
+
sorted: I[];
|
|
25
25
|
handleUpdate: UpdateHandler<I> | undefined;
|
|
26
26
|
sortDirection: -1 | 0 | 1;
|
|
27
27
|
sortCompareFunction: null | typeof ascSort | typeof descSort;
|
|
@@ -29,16 +29,10 @@ export declare class SubscriptionArray<I extends Item = Item> extends Array<I> {
|
|
|
29
29
|
[setHandleUpdateSymbol](handleUpdate: UpdateHandler<I>): UpdateHandler<I>;
|
|
30
30
|
update(updates: Updates<I>): this;
|
|
31
31
|
[updateSymbol]: (updates: Updates<I>) => this;
|
|
32
|
-
getAsUpdates():
|
|
33
|
-
[getAsUpdatesSymbol]: () =>
|
|
34
|
-
getAsInitialUpdated():
|
|
35
|
-
|
|
36
|
-
deleted: never[];
|
|
37
|
-
};
|
|
38
|
-
[getAsInitialUpdatedSymbol]: () => unknown[] & {
|
|
39
|
-
added: unknown[];
|
|
40
|
-
deleted: never[];
|
|
41
|
-
};
|
|
32
|
+
getAsUpdates(): Updates<I>;
|
|
33
|
+
[getAsUpdatesSymbol]: () => Updates<I>;
|
|
34
|
+
getAsInitialUpdated(): Updated<I>;
|
|
35
|
+
[getAsInitialUpdatedSymbol]: () => Updated<I>;
|
|
42
36
|
clear(): void;
|
|
43
37
|
[clearSymbol]: () => void;
|
|
44
38
|
valueOf(): this;
|
|
@@ -69,5 +63,5 @@ export declare class SubscriptionArrayWithSubscription<I extends Item = Item> ex
|
|
|
69
63
|
static renewSymbol: symbol;
|
|
70
64
|
static getSubscriptionSymbol: symbol;
|
|
71
65
|
}
|
|
72
|
-
export {
|
|
66
|
+
export {};
|
|
73
67
|
//# sourceMappingURL=SubscriptionArray.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionArray.d.ts","sourceRoot":"","sources":["../src/SubscriptionArray.ts"],"names":[],"mappings":"AACA,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;AAMnB,KAAK,IAAI,GAAG,OAAO,CAAC;AAEpB,
|
|
1
|
+
{"version":3,"file":"SubscriptionArray.d.ts","sourceRoot":"","sources":["../src/SubscriptionArray.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,13 +24,13 @@ export declare class SubscriptionGroup<DS extends UnparsedDefinition[] = any[]>
|
|
|
24
24
|
attach(definitions: DS, shouldReload?: boolean, immediately?: boolean): Promise<SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>>[]>;
|
|
25
25
|
detach(names: string[], shouldUpdate?: boolean): void;
|
|
26
26
|
redefine(definitions: DS): Promise<(SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>> | SubscriptionGroupItem<SubscriptionType, Definition<SubscriptionType>>[])[]>;
|
|
27
|
-
subscribe(): (void |
|
|
27
|
+
subscribe(): (void | null)[];
|
|
28
28
|
unsubscribe(): (void | undefined)[];
|
|
29
29
|
loaded(): StatefulPromise<SubscriptionGroup<any[]>>;
|
|
30
30
|
inited(): StatefulPromise<SubscriptionGroup<any[]>>;
|
|
31
31
|
unloaded(): StatefulPromise<SubscriptionGroup<any[]>>;
|
|
32
32
|
valueOf(): DS extends any ? any[] & Record<string, any> : ParseValues<DS>;
|
|
33
|
-
[Symbol.iterator]():
|
|
33
|
+
[Symbol.iterator](): ArrayIterator<any>;
|
|
34
34
|
static debounceLimit: number;
|
|
35
35
|
}
|
|
36
36
|
export { Options as SubscriptionGroupOptions, Target as SubscriptionGroupTarget };
|
|
@@ -22,7 +22,7 @@ export declare class SubscriptionGroupItem<T extends SubscriptionType = Subscrip
|
|
|
22
22
|
loaded(): StatefulPromise<SubscriptionGroupItem<T, D>>;
|
|
23
23
|
inited(): StatefulPromise<SubscriptionGroupItem<T, D>>;
|
|
24
24
|
unloaded(): StatefulPromise<SubscriptionGroupItem<T, D>>;
|
|
25
|
-
subscribe(): void |
|
|
25
|
+
subscribe(): void | null;
|
|
26
26
|
unsubscribe(): void | undefined;
|
|
27
27
|
renew(publicationName: Definition<T>["publicationName"], params: Definition<T>["params"]): void | undefined;
|
|
28
28
|
valueOf(): SubscriptionValue<T> | undefined;
|
|
@@ -1 +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;
|
|
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;AA6BjE,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;IA4BT,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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { SubscriptionArrayUpdated, Updates as SubscriptionArrayUpdates, SubscriptionArrayWithSubscription } from "../SubscriptionArray";
|
|
2
|
-
import type { SubscriptionMapUpdated, Updates as SubscriptionMapUpdates, SubscriptionMapWithSubscription } from "../SubscriptionMap";
|
|
1
|
+
import type { Updated as SubscriptionArrayUpdated, Updates as SubscriptionArrayUpdates, SubscriptionArrayWithSubscription } from "../SubscriptionArray";
|
|
2
|
+
import type { Updated as SubscriptionMapUpdated, Updates as SubscriptionMapUpdates, SubscriptionMapWithSubscription } from "../SubscriptionMap";
|
|
3
3
|
import type { Updated as SubscriptionObjectUpdated, Updates as SubscriptionObjectUpdates, SubscriptionObjectWithSubscription } from "../SubscriptionObject";
|
|
4
4
|
import type { SubscriptionGroup } from "./SubscriptionGroup";
|
|
5
5
|
export type SubscriptionType = "array" | "map" | "object";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/SubscriptionGroup/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,wBAAwB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/SubscriptionGroup/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ type GenericItem = {
|
|
|
4
4
|
_id: string;
|
|
5
5
|
} & Record<string, any>;
|
|
6
6
|
type Item = GenericItem | SubscriptionMapItem;
|
|
7
|
-
type Updated<I extends Item = Item> = {
|
|
7
|
+
export type Updated<I extends Item = Item> = {
|
|
8
8
|
deleted: string[];
|
|
9
9
|
added: I[];
|
|
10
10
|
} & I[];
|
|
@@ -18,7 +18,7 @@ export type Updates<I extends Item = Item> = ([
|
|
|
18
18
|
] | [
|
|
19
19
|
"i",
|
|
20
20
|
items: I[],
|
|
21
|
-
sortList?: SortList
|
|
21
|
+
sortList?: null | SortList
|
|
22
22
|
] | [
|
|
23
23
|
"u",
|
|
24
24
|
itemUpdates: {
|
|
@@ -26,7 +26,7 @@ export type Updates<I extends Item = Item> = ([
|
|
|
26
26
|
} & Partial<I>,
|
|
27
27
|
isAtomicOrUpdatedFields: string[] | true
|
|
28
28
|
] | null)[] | null;
|
|
29
|
-
type UpdateHandler<I extends Item = Item> = (map: SubscriptionMap<I>, updated: Updated<I>, updates: Updates<I>) => void;
|
|
29
|
+
export type UpdateHandler<I extends Item = Item> = (map: SubscriptionMap<I>, updated: Updated<I>, updates: Updates<I>) => void;
|
|
30
30
|
declare global {
|
|
31
31
|
var __insite_subscription_map_sort_function: ((a: Item, b: Item) => -1 | 0 | 1) | undefined;
|
|
32
32
|
}
|
|
@@ -50,16 +50,10 @@ export declare class SubscriptionMap<I extends Item = Item> extends Map<string,
|
|
|
50
50
|
};
|
|
51
51
|
update(updates: Updates<I>): this;
|
|
52
52
|
[updateSymbol]: (updates: Updates<I>) => this;
|
|
53
|
-
getAsUpdates():
|
|
54
|
-
[getAsUpdatesSymbol]: () =>
|
|
55
|
-
getAsInitialUpdated(): I
|
|
56
|
-
|
|
57
|
-
deleted: never[];
|
|
58
|
-
};
|
|
59
|
-
[getAsInitialUpdatedSymbol]: () => I[] & {
|
|
60
|
-
added: I[];
|
|
61
|
-
deleted: never[];
|
|
62
|
-
};
|
|
53
|
+
getAsUpdates(): Updates<I>;
|
|
54
|
+
[getAsUpdatesSymbol]: () => Updates<I>;
|
|
55
|
+
getAsInitialUpdated(): Updated<I>;
|
|
56
|
+
[getAsInitialUpdatedSymbol]: () => Updated<I>;
|
|
63
57
|
clear(): void;
|
|
64
58
|
[clearSymbol]: () => void;
|
|
65
59
|
valueOf(): I[];
|
|
@@ -98,5 +92,5 @@ export declare class SubscriptionMapItem {
|
|
|
98
92
|
update(updates: GenericItem): void;
|
|
99
93
|
delete(): void;
|
|
100
94
|
}
|
|
101
|
-
export {
|
|
95
|
+
export {};
|
|
102
96
|
//# sourceMappingURL=SubscriptionMap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionMap.d.ts","sourceRoot":"","sources":["../src/SubscriptionMap.ts"],"names":[],"mappings":"AACA,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,KAAK,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEzD,KAAK,IAAI,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAE9C,
|
|
1
|
+
{"version":3,"file":"SubscriptionMap.d.ts","sourceRoot":"","sources":["../src/SubscriptionMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ declare const handleUpdateSymbol: unique symbol;
|
|
|
4
4
|
declare const updatesSymbol: unique symbol;
|
|
5
5
|
export type Updated = Record<string, unknown>;
|
|
6
6
|
export type Updates = null | Record<string, unknown>;
|
|
7
|
-
type UpdateHandler = (object: SubscriptionObject, updated: Updated, updates: Updates) => void;
|
|
7
|
+
export type UpdateHandler = (object: SubscriptionObject, updated: Updated, updates: Updates) => void;
|
|
8
8
|
export declare class SubscriptionObject {
|
|
9
9
|
constructor(updates?: Updates, onUpdate?: UpdateHandler);
|
|
10
10
|
[handleUpdateSymbol]?: UpdateHandler;
|
|
@@ -12,10 +12,8 @@ export declare class SubscriptionObject {
|
|
|
12
12
|
[getHandleUpdateSymbol](): UpdateHandler | undefined;
|
|
13
13
|
[setHandleUpdateSymbol](handleUpdate: UpdateHandler): UpdateHandler;
|
|
14
14
|
[updateSymbol](updates: Updates): this;
|
|
15
|
-
[getAsUpdatesSymbol]():
|
|
16
|
-
|
|
17
|
-
} | null;
|
|
18
|
-
[getAsInitialUpdatedSymbol](): this | null;
|
|
15
|
+
[getAsUpdatesSymbol](): Updates;
|
|
16
|
+
[getAsInitialUpdatedSymbol](): Updated;
|
|
19
17
|
[clearSymbol](): void;
|
|
20
18
|
valueOf(): this | null;
|
|
21
19
|
get [Symbol.toStringTag](): string;
|
|
@@ -43,5 +41,5 @@ export declare class SubscriptionObjectWithSubscription extends SubscriptionObje
|
|
|
43
41
|
static renewSymbol: symbol;
|
|
44
42
|
static getSubscriptionSymbol: symbol;
|
|
45
43
|
}
|
|
46
|
-
export {
|
|
44
|
+
export {};
|
|
47
45
|
//# sourceMappingURL=SubscriptionObject.d.ts.map
|
|
@@ -1 +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,
|
|
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,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAGrG,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,IAAI,OAAO;IAI/B,CAAC,yBAAyB,CAAC,IAAI,OAAO;IAItC,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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./Subscription.js";
|
|
2
|
-
export { SubscriptionArray,
|
|
2
|
+
export { SubscriptionArray, SubscriptionArrayWithSubscription, Updated as SubscriptionArrayUpdated } from "./SubscriptionArray";
|
|
3
3
|
export * from "./SubscriptionGroup";
|
|
4
|
-
export { SubscriptionMap,
|
|
5
|
-
export { SubscriptionObject,
|
|
4
|
+
export { SubscriptionMap, SubscriptionMapWithSubscription, Updated as SubscriptionMapUpdated } from "./SubscriptionMap";
|
|
5
|
+
export { SubscriptionObject, SubscriptionObjectWithSubscription, Updated as SubscriptionObjectUpdated } from "./SubscriptionObject";
|
|
6
6
|
export { clearSymbol, getAsInitialUpdatedSymbol, getAsUpdatesSymbol, getHandleSubscriptionSymbol, getHandleUpdateSymbol, getSubscriptionSymbol, renewSymbol, setHandleSubscriptionSymbol, setHandleUpdateSymbol, subscribeSymbol, unsubscribeSymbol, updateSymbol } from "./symbols";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,iCAAiC,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAChI,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,+BAA+B,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,kBAAkB,EAAE,kCAAkC,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACpI,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
CHANGED
|
@@ -1,2 +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};
|
|
1
|
+
var _t=Object.defineProperty;var ut=n=>{throw TypeError(n)};var Gt=(n,s,t)=>s in n?_t(n,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[s]=t;var i=(n,s,t)=>Gt(n,typeof s!="symbol"?s+"":s,t),st=(n,s,t)=>s.has(n)||ut("Cannot "+t);var p=(n,s,t)=>(st(n,s,"read from private field"),t?t.call(n):s.get(n)),v=(n,s,t)=>s.has(n)?ut("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(n):s.set(n,t),b=(n,s,t,e)=>(st(n,s,"write to private field"),e?e.call(n,t):s.set(n,t),t),f=(n,s,t)=>(st(n,s,"access private method"),t);var dt,q,k,E=class{constructor(s,t,e=[],r,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",()=>{k.sendMessage("s-s",this.type,this.publicationName,this.i,this.args,this.immediately),this.immediately=!0});if(!k)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=r,this.immediately=o&&!window.__initials,q.set(this.i,this),k.on("open",this.start),k.isOpen&&this.start(),window.__initials?(this.isActive=!0,this.handler(window.__initials.splice(0,1)[0])):this.isActive=!1}cancel(){q.delete(this.i),k.off("open",this.start),k.sendMessage("s-u",this.i)}static bindTo(s){k=s,dt=0,q=new Map,k.on("message:s-c",(t,e)=>{let r=q.get(t);r&&(r.isActive=!0,r.handler(e))}),k.on("close",()=>{for(let t of q.values())t.isActive=!1}),k.on("server-change",()=>{for(let t of q.values())t.handler(null)})}};import{removeOne as jt}from"@nesvet/n";var x=Symbol("update"),D=Symbol("getHandleUpdate"),S=Symbol("setHandleUpdate"),H=Symbol("getAsUpdates"),A=Symbol("getAsInitialUpdated"),G=Symbol("clear"),m=Symbol("subscribe"),y=Symbol("unsubscribe"),L=Symbol("renew"),P=Symbol("getSubscription"),kt=Symbol("getHandleSubscription"),Pt=Symbol("setHandleSubscription");var Bt=(n,s)=>n>s?1:n<s?-1:0,Ft=(n,s)=>n>s?-1:n<s?1:0,lt,ht,ct,bt,O=class extends Array{constructor(t,e){super();i(this,"sorted",[]);i(this,"handleUpdate");i(this,"sortDirection",0);i(this,"sortCompareFunction",null);i(this,bt,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)}[D](){return this.handleUpdate}[S](t){return this.handleUpdate=t}update(t){let e=Object.assign([],{deleted:[],added:[]});if(t){let r=!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,r=!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&&(r=!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()}r&&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[(bt=x,ct=H,ht=A,lt=G,Symbol.toStringTag)](){return"SubscriptionArray"}};i(O,"updateSymbol",x),i(O,"getHandleUpdateSymbol",D),i(O,"setHandleUpdateSymbol",S),i(O,"getAsUpdatesSymbol",H),i(O,"getAsInitialUpdatedSymbol",A),i(O,"clearSymbol",G),i(O,"WithSubscription");var j=class extends O{constructor(t,e,r,o=!0){super(null,r);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[m](){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[L](){return this.renew}[P](){return this.subscription}get[Symbol.toStringTag](){return"SubscriptionArrayWithSubscription"}};i(j,"subscribeSymbol",m),i(j,"unsubscribeSymbol",y),i(j,"renewSymbol",L),i(j,"getSubscriptionSymbol",P);O.WithSubscription=j;import $t from"eventemitter3";import{debounce as Vt,StatefulPromise as Z}from"@nesvet/n";var g={};import Wt from"eventemitter3";import{debounce as Ct,removeOne as It,StatefulPromise as Y}from"@nesvet/n";import{removeOne as Mt}from"@nesvet/n";function Nt(n){let s=document.createElement("script");s.textContent=`window.__insite_subscription_map_sort_function = function sort(a, b) { return ${Object.entries(n).map(([e,r])=>r>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 mt,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,mt,this.clear);e&&(this.handleUpdate=e),t&&this.update(t)}sort(){this.sortCompareFunction&&this.sorted.sort(this.sortCompareFunction)}[D](){return this.handleUpdate}[S](t){return this.handleUpdate=t}set Item(t){if(this.TheItem=t,this.size)for(let[e,r]of this)this.set(e,new t(this,r))}get Item(){return this.TheItem}update(t){let e=Object.assign([],{added:[],deleted:[]});if(t){let r=!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=Nt(l),this.fieldsToSort=[...new Set(Object.keys(l).map(c=>c.replace(/\..+/,"")))],r=!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 Ot in Lt)delete T[Ot];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&&!r&&(!d||d.some(w=>this.fieldsToSort.includes(w)))&&(r=!0)}else l=o?new o(this,a):{...a},this.set(l._id,l),this.sorted.push(l),this.sortList&&(r=!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),Mt(this.sorted,l),e.deleted.push(a));break}default:this.clear()}r&&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=H,ft=A,mt=G,Symbol.toStringTag)](){return"SubscriptionMap"}};i(U,"updateSymbol",x),i(U,"getHandleUpdateSymbol",D),i(U,"setHandleUpdateSymbol",S),i(U,"getAsUpdatesSymbol",H),i(U,"getAsInitialUpdatedSymbol",A),i(U,"clearSymbol",G),i(U,"WithSubscription"),i(U,"Item");var B=class extends U{constructor(t,e,r,o=!0){super(null,r);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[m](){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[L](){return this.renew}[P](){return this.subscription}get[Symbol.toStringTag](){return"SubscriptionMapWithSubscription"}};i(B,"subscribeSymbol",m),i(B,"unsubscribeSymbol",y),i(B,"renewSymbol",L),i(B,"getSubscriptionSymbol",P);U.WithSubscription=B;var rt=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=rt;var X=Symbol("handleUpdate"),R=Symbol("updates"),gt,Ut,_=class{constructor(s,t){i(this,Ut);i(this,gt,null);t&&(this[X]=t),s&&this[x](s)}[(Ut=X,gt=R,D)](){return this[X]}[S](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[G]();return this[X]?.(this,this,this[R]),this}[H](){return this[R]&&{...this[R]}}[A](){return this.valueOf()}[G](){for(let s in this)delete this[s];this[R]=null}valueOf(){return this[R]&&this}get[Symbol.toStringTag](){return"SubscriptionObject"}};i(_,"updateSymbol",x),i(_,"getHandleUpdateSymbol",D),i(_,"setHandleUpdateSymbol",S),i(_,"getAsUpdatesSymbol",H),i(_,"getAsInitialUpdatedSymbol",A),i(_,"clearSymbol",G),i(_,"WithSubscription");var F=class extends _{constructor(t,e,r,o=!0){super(null,r);i(this,"publicationName");i(this,"params");i(this,"subscription",null);this.publicationName=t,this.params=e,o&&this[m]()}[m](){this.subscription||(this.subscription=new E("object",this.publicationName,this.params,t=>this[x](t)))}[y](){this.subscription&&(this.subscription.cancel(),this.subscription=null)}[L](t,e){this.subscription&&(this[y](),t&&(Array.isArray(t)?e=t:this.publicationName=t),e&&(this.params=e),this[m]())}[P](){return this.subscription}get[Symbol.toStringTag](){return"SubscriptionObjectWithSubscription"}};i(F,"subscribeSymbol",m),i(F,"unsubscribeSymbol",y),i(F,"renewSymbol",L),i(F,"getSubscriptionSymbol",P);_.WithSubscription=F;function vt(n){return Array.isArray(n)}var M,z,N,I,nt,Tt,V,K,wt,xt,ot,et=class et extends Wt{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,M);v(this,z);v(this,N);v(this,V,null);v(this,K,(t,e,r)=>{if(r)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 b(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:r,type:o="object",publicationName:u,params:h,handle:a,onBeforeInit:l,debounce:c=et.debounceLimit,preventBind:d}=t;if(this.group){if((!r||this.value===r)&&this.type===o&&this.publicationName===u&&JSON.stringify(this.params)===JSON.stringify(h)&&this.handle===a&&this.onBeforeInit===l)return f(this,I,nt).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,r?this.value=r:(this.publicationName=u??this.name,this.params=h??[]),f(this,I,nt).call(this,{debounceLimit:c,preventBind:d}),f(this,I,Tt).call(this,e),null}detach(){this.group&&(this.value?.[y](),this.isLoaded=!1,f(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,M)}inited(){return p(this,z)}unloaded(){return p(this,N)}subscribe(){if(this.value){if(this.value[m])return this.value[m]();{let t=this.value[D]();if(t){let e=this.value[A](),r=this.value[H]();switch(this.type){case"array":return t(this.value,e,r);case"map":return t(this.value,e,r);default:return t(this.value,e,r)}}}}return null}unsubscribe(){return this.value?.[y]?.()}renew(t,e){return this.value?.[L]?.(t,e)}valueOf(){return this.value}};M=new WeakMap,z=new WeakMap,N=new WeakMap,I=new WeakSet,nt=function({debounceLimit:t,preventBind:e}){let r=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=Ct(()=>{let a=!this.group;a&&(this.group=u),r(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=r;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,M)||p(this,M).isFulfilled)&&b(this,M,new Y),(!p(this,z)||p(this,z).isFulfilled)&&b(this,z,new Y),(!p(this,N)||p(this,N).isFulfilled)&&b(this,N,new Y),this.type){case"array":{let e=p(this,K);this.value?this.value[S](e):this.value=new j(this.publicationName,this.params,e,!1);break}case"map":{let e=p(this,K);this.value?this.value[S](e):this.value=new B(this.publicationName,this.params,e,!1);break}default:{let e=p(this,K);this.value?this.value[S](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)}b(this,V,null),this.emit("load",this.value),p(this,M).resolve(this),p(this,N).isFulfilled&&b(this,N,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,N).resolve(this),p(this,M).isFulfilled&&b(this,M,new Y)},i(et,"debounceLimit",4),g.itemLoad=t=>{var e;return f(e=t,I,wt).call(e)},g.itemInit=t=>{var e;return f(e=t,I,xt).call(e)},g.itemUnload=t=>{var e;return f(e=t,I,ot).call(e)};var tt=et;function Et(n){return Array.isArray(n)}function Dt(n){if(Et(n)){let s=n.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 n.type??(n.type="object"),n}var W,Q,C,J,$,at,At,pt,it=class it extends $t{constructor(t,{target:e,debounce:r=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,W);v(this,Q);v(this,C);v(this,J,null);this.applyOptions({target:e,debounceLimit:r}),b(this,Q,new Z),this.attach(t,!1,o)}applyOptions({target:t,debounceLimit:e}){if(this.target!==t){if(this.target)for(let r of this.items)r.isLoaded&&!r.preventBind&&delete this.target[r.name];if(this.target=t,this.target)for(let r of this.items)r.isLoaded&&!r.preventBind&&(this.target[r.name]=r.value)}if(p(this,J)!==e)if(b(this,J,e),typeof p(this,J)=="number"){let r=Vt(()=>this.emit("update",this.values),p(this,J));this.emitUpdate=()=>r()}else this.emitUpdate=()=>this.emit("update",this.values)}attach(t,e=this.isLoaded,r=!0){return e&&(this.isLoaded=!1),(!p(this,W)||p(this,W).isFulfilled)&&b(this,W,new Z),(!p(this,C)||p(this,C).isFulfilled)&&b(this,C,new Z),Promise.all(t.map(o=>new tt(Dt(o),this)).map(o=>(r&&o.subscribe(),o.loaded())))}detach(t,e=!0){for(let r of t)this.items[r]?.detach();e&&(f(this,$,pt).call(this),f(this,$,at).call(this))}redefine(t){let e=new Map(this.items.map(u=>[u.name,u])),r=[],o=[];for(let u of t)u=Dt(u),e.delete(u.name)?r.push(u):o.push(u);return this.isLoaded=!1,this.detach([...e.keys()],!1),Promise.all([...r.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,W)}inited(){return p(this,Q)}unloaded(){return p(this,C)}valueOf(){return this.values}[Symbol.iterator](){return this.values[Symbol.iterator]()}};W=new WeakMap,Q=new WeakMap,C=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,W).resolve(this),p(this,C).isFulfilled&&b(this,C,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,C).resolve(this),p(this,W).isFulfilled&&b(this,W,new Z)}},i(it,"debounceLimit",8),g.groupLoad=t=>{var e;return f(e=t,$,at).call(e)},g.groupInit=t=>{var e;return f(e=t,$,At).call(e)},g.groupUnload=t=>{var e;return f(e=t,$,pt).call(e)};var Ht=it;export{E as Subscription,O as SubscriptionArray,j as SubscriptionArrayWithSubscription,Ht as SubscriptionGroup,U as SubscriptionMap,B as SubscriptionMapWithSubscription,_ as SubscriptionObject,F as SubscriptionObjectWithSubscription,G as clearSymbol,A as getAsInitialUpdatedSymbol,H as getAsUpdatesSymbol,kt as getHandleSubscriptionSymbol,D as getHandleUpdateSymbol,P as getSubscriptionSymbol,L as renewSymbol,Pt as setHandleSubscriptionSymbol,S as setHandleUpdateSymbol,m as subscribeSymbol,y as unsubscribeSymbol,x as updateSymbol};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/Subscription.ts", "../src/SubscriptionArray.ts", "../src/symbols.ts", "../src/SubscriptionGroup/SubscriptionGroup.ts", "../src/SubscriptionGroup/common.ts", "../src/SubscriptionGroup/SubscriptionGroupItem.ts", "../src/SubscriptionMap.ts", "../src/SubscriptionObject.ts"],
|
|
4
|
-
"sourcesContent": ["import type { InSiteWebSocket } from \"insite-ws/client\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\ndeclare global {\n\tvar __initials: undefined | unknown[];// eslint-disable-line no-var\n}\n\n\nlet i: number;\nlet subscriptions: Map<number, Subscription>;\nlet ws: InSiteWebSocket;\n\n\nexport class Subscription {\n\tconstructor(type: \"array\" | \"map\" | \"object\", publicationName: string, args: unknown[] = [], handler: (updates: any) => void, immediately = true) {\n\t\t\n\t\tif (!ws)\n\t\t\tthrow new Error(\"Subscription is not binded to WS. Do Subscription.bindTo(ws) first\");\n\t\t\n\t\tthis.i = i++;\n\t\tthis.type = type;\n\t\tthis.publicationName = publicationName;\n\t\tthis.args = args;\n\t\tthis.handler = handler;\n\t\tthis.immediately = immediately && !window.__initials;\n\t\t\n\t\tsubscriptions.set(this.i, this);\n\t\t\n\t\tws.on(\"open\", this.start);\n\t\t\n\t\tif (ws.isOpen)\n\t\t\tthis.start();\n\t\t\n\t\tif (window.__initials) {\n\t\t\tthis.isActive = true;\n\t\t\tthis.handler(window.__initials.splice(0, 1)[0]);\n\t\t} else\n\t\t\tthis.isActive = false;\n\t\t\n\t}\n\t\n\ti;\n\ttype;\n\tpublicationName;\n\targs;\n\thandler;\n\timmediately;\n\tisActive;\n\t\n\tstart = () => {\n\t\t\n\t\tws.sendMessage(\"s-s\"/* subscription subscribe */, this.type, this.publicationName, this.i, this.args, this.immediately);\n\t\t\n\t\tthis.immediately = true;\n\t\t\n\t};\n\t\n\tcancel() {\n\t\t\n\t\tsubscriptions.delete(this.i);\n\t\t\n\t\tws.off(\"open\", this.start);\n\t\t\n\t\tws.sendMessage(\"s-u\"/* subscription unsubscribe */, this.i);\n\t\t\n\t}\n\t\n\t\n\tstatic bindTo(_ws: InSiteWebSocket) {\n\t\tws = _ws;\n\t\t\n\t\ti = 0;\n\t\t\n\t\tsubscriptions = new Map();\n\t\t\n\t\tws.on(\"message:s-c\"/* subscription changed */, (si: number, updates: any) => {\n\t\t\tconst subscription = subscriptions.get(si);\n\t\t\tif (subscription) {\n\t\t\t\tsubscription.isActive = true;\n\t\t\t\tsubscription.handler(updates);\n\t\t\t}\n\t\t\t\n\t\t});\n\t\t\n\t\tws.on(\"close\", () => {\n\t\t\t\n\t\t\tfor (const subscription of subscriptions.values())\n\t\t\t\tsubscription.isActive = false;\n\t\t\t\n\t\t});\n\t\t\n\t\tws.on(\"server-change\", () => {\n\t\t\t\n\t\t\tfor (const subscription of subscriptions.values())\n\t\t\t\tsubscription.handler(null);\n\t\t\t\n\t\t});\n\t\t\n\t}\n\t\n}\n", "import { removeOne } from \"@nesvet/n\";\nimport { Subscription } from \"./Subscription\";\nimport {\n\tclearSymbol,\n\tgetAsInitialUpdatedSymbol,\n\tgetAsUpdatesSymbol,\n\tgetHandleUpdateSymbol,\n\tgetSubscriptionSymbol,\n\trenewSymbol,\n\tsetHandleUpdateSymbol,\n\tsubscribeSymbol,\n\tunsubscribeSymbol,\n\tupdateSymbol\n} from \"./symbols\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\ntype Item = unknown;\n\ntype Updated<I extends Item = Item> = {\n\tdeleted: I[];\n\tadded: I[];\n} & I[];\n\nexport type Updates<I extends Item = Item> =\n\t(\n\t\t[ \"a\"/* add */, newItem: I ] |\n\t\t[ \"d\"/* delete */, itemToDelete: I ] |\n\t\t[ \"i\"/* initial */, items: I[], sort?: -1 | 1 ] |\n\t\tnull\n\t)[] |\n\tnull;\n\ntype UpdateHandler<I extends Item = Item> = (array: SubscriptionArray<I>, updated: Updated<I>, updates: Updates<I>) => void;\n\nconst ascSort = (a: any, b: any) => a > b ? 1 : a < b ? -1 : 0;\nconst descSort = (a: any, b: any) => a > b ? -1 : a < b ? 1 : 0;\n\n\nexport class SubscriptionArray<I extends Item = Item> extends Array<I> {\n\tconstructor(updates?: Updates<I>, onUpdate?: UpdateHandler<I>) {\n\t\tsuper();\n\t\t\n\t\tif (onUpdate)\n\t\t\tthis.handleUpdate = onUpdate;\n\t\t\n\t\tif (Array.isArray(updates))\n\t\t\tthis.update(updates);\n\t\t\n\t}\n\t\n\tsorted: Item[] = [];\n\t\n\thandleUpdate;\n\t\n\tsortDirection: -1 | 0 | 1 = 0;\n\t\n\tsortCompareFunction: null | typeof ascSort | typeof descSort = null;\n\t\n\t[getHandleUpdateSymbol]() {\n\t\treturn this.handleUpdate;\n\t}\n\t\n\t[setHandleUpdateSymbol](handleUpdate: UpdateHandler<I>) {\n\t\treturn (this.handleUpdate = handleUpdate);\n\t}\n\t\n\tupdate(updates: Updates<I>) {\n\t\t\n\t\tconst updated: Updated<I> = Object.assign([], {\n\t\t\tdeleted: [],\n\t\t\tadded: []\n\t\t});\n\t\t\n\t\tif (updates) {\n\t\t\tlet shouldSort = false;\n\t\t\t\n\t\t\tfor (const update of updates)\n\t\t\t\tswitch (update?.[0]) {\n\t\t\t\t\tcase \"i\"/* initial */: {\n\t\t\t\t\t\tconst [ , array, sort ] = update;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (sort) {\n\t\t\t\t\t\t\tthis.sortDirection = sort;\n\t\t\t\t\t\t\tthis.sortCompareFunction = sort > 0 ? ascSort : descSort;\n\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.sortDirection = 0;\n\t\t\t\t\t\t\tthis.sortCompareFunction = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.length = 0;\n\t\t\t\t\t\t\n\t\t\t\t\t\tfor (const newItem of array) {\n\t\t\t\t\t\t\tthis.push(newItem);\n\t\t\t\t\t\t\tupdated.push(newItem);\n\t\t\t\t\t\t\tupdated.added.push(newItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase \"a\"/* add */: {\n\t\t\t\t\t\tconst [ , newItem ] = update;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (!this.includes(newItem)) {\n\t\t\t\t\t\t\tthis.push(newItem);\n\t\t\t\t\t\t\tif (this.sortDirection)\n\t\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t\tupdated.push(newItem);\n\t\t\t\t\t\t\tupdated.added.push(newItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase \"d\"/* delete */: {\n\t\t\t\t\t\tconst [ , itemToDelete ] = update;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (removeOne(this, itemToDelete))\n\t\t\t\t\t\t\tupdated.deleted.push(itemToDelete);\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.clear();\n\t\t\t\t}\n\t\t\t\n\t\t\tif (shouldSort && this.sortCompareFunction)\n\t\t\t\tthis.sort(this.sortCompareFunction);\n\t\t\t\n\t\t} else\n\t\t\tthis.clear();\n\t\t\n\t\tthis.handleUpdate?.(this, updated, updates?.[0] ? updates : null);\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[updateSymbol] = this.update;\n\t\n\tgetAsUpdates() {\n\t\treturn (\n\t\t\t(this.length || this.sortDirection) ?\n\t\t\t\t[ [ \"i\"/* initial */, [ ...this ], this.sortDirection ] ] :\n\t\t\t\tnull\n\t\t);\n\t}\n\t\n\t[getAsUpdatesSymbol] = this.getAsUpdates;\n\t\n\tgetAsInitialUpdated() {\n\t\treturn Object.assign([ ...this.sorted ], {\n\t\t\tadded: [ ...this.sorted ],\n\t\t\tdeleted: []\n\t\t});\n\t}\n\t\n\t[getAsInitialUpdatedSymbol] = this.getAsInitialUpdated;\n\t\n\tclear() {\n\t\t\n\t\tthis.length = 0;\n\t\tthis.sortDirection = 0;\n\t\tthis.sortCompareFunction = null;\n\t\t\n\t}\n\t\n\t[clearSymbol] = this.clear;\n\t\n\tvalueOf() {\n\t\treturn this;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionArray\";\n\t}\n\t\n\t\n\tstatic updateSymbol = updateSymbol;\n\tstatic getHandleUpdateSymbol = getHandleUpdateSymbol;\n\tstatic setHandleUpdateSymbol = setHandleUpdateSymbol;\n\tstatic getAsUpdatesSymbol = getAsUpdatesSymbol;\n\tstatic getAsInitialUpdatedSymbol = getAsInitialUpdatedSymbol;\n\tstatic clearSymbol = clearSymbol;\n\tstatic WithSubscription: typeof SubscriptionArrayWithSubscription;\n\t\n}\n\n\nexport class SubscriptionArrayWithSubscription<I extends Item = Item> extends SubscriptionArray<I> {\n\tconstructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler<I>, immediately = true) {\n\t\tsuper(null, onUpdate);\n\t\t\n\t\tthis.publicationName = publicationName;\n\t\tthis.params = params;\n\t\t\n\t\tif (immediately)\n\t\t\tthis.subscribe();\n\t\t\n\t}\n\t\n\tpublicationName;\n\tparams;\n\tsubscription: null | Subscription = null;\n\t\n\tsubscribe() {\n\t\t\n\t\tif (!this.subscription)\n\t\t\tthis.subscription = new Subscription(\"array\", this.publicationName, this.params, updates => this.update(updates as Updates<I>));\n\t\t\n\t}\n\t\n\tget [subscribeSymbol]() {\n\t\treturn this.subscribe;\n\t}\n\t\n\tunsubscribe() {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.cancel();\n\t\t\tthis.subscription = null;\n\t\t}\n\t\t\n\t}\n\t\n\tget [unsubscribeSymbol]() {\n\t\treturn this.unsubscribe;\n\t}\n\t\n\trenew(publicationName?: string, params?: unknown[]) {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.unsubscribe();\n\t\t\t\n\t\t\tif (publicationName)\n\t\t\t\tif (Array.isArray(publicationName))\n\t\t\t\t\tparams = publicationName;\n\t\t\t\telse\n\t\t\t\t\tthis.publicationName = publicationName;\n\t\t\t\n\t\t\tif (params)\n\t\t\t\tthis.params = params;\n\t\t\t\n\t\t\tthis.subscribe();\n\t\t}\n\t\t\n\t}\n\t\n\tget [renewSymbol]() {\n\t\treturn this.renew;\n\t}\n\t\n\t[getSubscriptionSymbol]() {\n\t\treturn this.subscription;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionArrayWithSubscription\";\n\t}\n\t\n\t\n\tstatic subscribeSymbol = subscribeSymbol;\n\tstatic unsubscribeSymbol = unsubscribeSymbol;\n\tstatic renewSymbol = renewSymbol;\n\tstatic getSubscriptionSymbol = getSubscriptionSymbol;\n\t\n}\n\nSubscriptionArray.WithSubscription = SubscriptionArrayWithSubscription;\n\nexport { Updated as SubscriptionArrayUpdated };\n", "export const updateSymbol = Symbol(\"update\");\nexport const getHandleUpdateSymbol = Symbol(\"getHandleUpdate\");\nexport const setHandleUpdateSymbol = Symbol(\"setHandleUpdate\");\nexport const getAsUpdatesSymbol = Symbol(\"getAsUpdates\");\nexport const getAsInitialUpdatedSymbol = Symbol(\"getAsInitialUpdated\");\nexport const clearSymbol = Symbol(\"clear\");\nexport const subscribeSymbol = Symbol(\"subscribe\");\nexport const unsubscribeSymbol = Symbol(\"unsubscribe\");\nexport const renewSymbol = Symbol(\"renew\");\nexport const getSubscriptionSymbol = Symbol(\"getSubscription\");\nexport const getHandleSubscriptionSymbol = Symbol(\"getHandleSubscription\");\nexport const setHandleSubscriptionSymbol = Symbol(\"setHandleSubscription\");\n", "import EventEmitter from \"eventemitter3\";\nimport { debounce, StatefulPromise } from \"@nesvet/n\";\nimport { privates } from \"./common\";\nimport { SubscriptionGroupItem } from \"./SubscriptionGroupItem\";\nimport {\n\tDefinition,\n\tParseValues,\n\tSubscriptionHandle,\n\tSubscriptionOnBeforeInit,\n\tSubscriptionType,\n\tTupleDefinition,\n\tUnparsedDefinition\n} from \"./types\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\nfunction isTupleDefinition<T extends SubscriptionType>(definition: UnparsedDefinition<T>): definition is TupleDefinition {\n\treturn Array.isArray(definition);\n}\n\ntype Target = any;\n\ntype Options = {\n\ttarget?: Target;\n\tdebounce?: number;\n\timmediately?: boolean;\n};\n\n\nfunction parseDefinition<T extends SubscriptionType>(definition: UnparsedDefinition<T>) {\n\tif (isTupleDefinition(definition)) {\n\t\tconst args = definition.slice();\n\t\t\n\t\tconst parsed: Partial<Definition<T>> = {};\n\t\t\n\t\tparsed.name = args.shift() as Definition<T>[\"name\"];\n\t\tif (typeof args[0] == \"object\" && !Array.isArray(args[0])) {\n\t\t\tparsed.value = args.shift() as Definition<T>[\"value\"];\n\t\t\tparsed.type = parsed.value!.toString().match(/Subscription(Object|Array|Map)/)?.[1].toLowerCase() as Definition<T>[\"type\"];\n\t\t\tif (!parsed.type)\n\t\t\t\tthrow new Error(\"Unknown value type\");\n\t\t} else {\n\t\t\tif (typeof args[0] == \"string\")\n\t\t\t\tparsed.type = args.shift() as Definition<T>[\"type\"];\n\t\t\tif (typeof args[0] == \"string\")\n\t\t\t\tparsed.publicationName = args.shift() as Definition<T>[\"publicationName\"];\n\t\t\tif (Array.isArray(args[0]))\n\t\t\t\tparsed.params = args.shift() as Definition<T>[\"params\"];\n\t\t}\n\t\t\n\t\tif (typeof args[0] == \"function\")\n\t\t\tparsed.handle = args.shift() as SubscriptionHandle<T>;\n\t\tif (typeof args[0] == \"function\")\n\t\t\tparsed.onBeforeInit = args.shift() as SubscriptionOnBeforeInit<T>;\n\t\tif (typeof args[0] == \"number\")\n\t\t\tparsed.debounce = args.shift() as Definition<T>[\"debounce\"];\n\t\tif (typeof args[0] == \"boolean\")\n\t\t\tparsed.preventBind = args.shift() as Definition<T>[\"preventBind\"];\n\t\t\n\t\treturn parsed as Definition<T>;\n\t}\n\t\n\tdefinition.type ??= \"object\" as T;\n\t\n\treturn definition;\n}\n\nexport class SubscriptionGroup<DS extends UnparsedDefinition[] = any[]> extends EventEmitter {\n\tconstructor(\n\t\tdefinitions: DS,\n\t\t{\n\t\t\ttarget,\n\t\t\tdebounce: debounceLimit = SubscriptionGroup.debounceLimit,\n\t\t\timmediately\n\t\t}: Options = {}\n\t) {\n\t\tsuper();\n\t\t\n\t\tthis.applyOptions({ target, debounceLimit });\n\t\t\n\t\tthis.#initPromise = new StatefulPromise();\n\t\t\n\t\tthis.attach(definitions, false, immediately);\n\t\t\n\t}\n\t\n\ttarget?: Target;\n\temitUpdate!: () => void;\n\t\n\titems = [] as unknown as Record<string, SubscriptionGroupItem> & SubscriptionGroupItem[];\n\tvalues = [] as DS extends any ? (any[] & Record<string, any>) : ParseValues<DS>;\n\t\n\tisLoaded = false;\n\tisInited = false;\n\t\n\t#loadPromise!: StatefulPromise<SubscriptionGroup>;\n\t#initPromise: StatefulPromise<SubscriptionGroup>;\n\t#unloadPromise!: StatefulPromise<SubscriptionGroup>;\n\t\n\t#debounceLimit?: null | number = null;\n\t\n\tapplyOptions({ target, debounceLimit }: { target?: Target; debounceLimit?: number }) {\n\t\t\n\t\tif (this.target !== target) {\n\t\t\tif (this.target)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\tif (item.isLoaded && !item.preventBind)\n\t\t\t\t\t\tdelete this.target[item.name];\n\t\t\t\n\t\t\tthis.target = target;\n\t\t\t\n\t\t\tif (this.target)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\tif (item.isLoaded && !item.preventBind)\n\t\t\t\t\t\tthis.target[item.name] = item.value;\n\t\t}\n\t\t\n\t\tif (this.#debounceLimit !== debounceLimit) {\n\t\t\tthis.#debounceLimit = debounceLimit;\n\t\t\tif (typeof this.#debounceLimit == \"number\") {\n\t\t\t\tconst emitUpdateDebounced = debounce(() => this.emit(\"update\", this.values), this.#debounceLimit);\n\t\t\t\tthis.emitUpdate = () => emitUpdateDebounced();\n\t\t\t} else\n\t\t\t\tthis.emitUpdate = () => this.emit(\"update\", this.values);\n\t\t}\n\t\t\n\t}\n\t\n\tattach(definitions: DS, shouldReload = this.isLoaded, immediately = true) {\n\t\tif (shouldReload)\n\t\t\tthis.isLoaded = false;\n\t\t\n\t\tif (!this.#loadPromise || this.#loadPromise.isFulfilled)\n\t\t\tthis.#loadPromise = new StatefulPromise();\n\t\t\n\t\tif (!this.#unloadPromise || this.#unloadPromise.isFulfilled)\n\t\t\tthis.#unloadPromise = new StatefulPromise();\n\t\t\n\t\treturn Promise.all(definitions.map(definition =>\n\t\t\tnew SubscriptionGroupItem(parseDefinition(definition), this)\n\t\t).map(item => {\n\t\t\t\n\t\t\tif (immediately)\n\t\t\t\titem.subscribe();\n\t\t\t\n\t\t\treturn item.loaded();\n\t\t}));\n\t}\n\t\n\tdetach(names: string[], shouldUpdate = true) {\n\t\t\n\t\tfor (const name of names)\n\t\t\tthis.items[name]?.detach();\n\t\t\n\t\tif (shouldUpdate) {\n\t\t\tthis.#unload();\n\t\t\tthis.#load();\n\t\t}\n\t\t\n\t}\n\t\n\tredefine(definitions: DS) {\n\t\t\n\t\tconst itemsToDetach = new Map(this.items.map(item => [ item.name, item ]));\n\t\tconst definitionsToRedefine = [];\n\t\tconst definitionsToAttach = [] as unknown as DS;\n\t\t\n\t\tfor (let definition of definitions) {\n\t\t\tdefinition = parseDefinition(definition);\n\t\t\tif (itemsToDetach.delete(definition.name))\n\t\t\t\tdefinitionsToRedefine.push(definition);\n\t\t\telse\n\t\t\t\tdefinitionsToAttach.push(definition);\n\t\t}\n\t\t\n\t\tthis.isLoaded = false;\n\t\t\n\t\tthis.detach([ ...itemsToDetach.keys() ], false);\n\t\t\n\t\treturn Promise.all([\n\t\t\t...definitionsToRedefine.map(definition => {\n\t\t\t\tconst item = this.items[definition.name];\n\t\t\t\titem.define(definition);\n\t\t\t\t\n\t\t\t\titem.subscribe();\n\t\t\t\t\n\t\t\t\treturn item.loaded();\n\t\t\t}),\n\t\t\t...definitionsToAttach.length ? [ this.attach(definitionsToAttach, false) ] : []\n\t\t]);\n\t}\n\t\n\tsubscribe() {\n\t\treturn this.items.map(item => item.subscribe());\n\t}\n\t\n\tunsubscribe() {\n\t\treturn this.items.map(item => item.unsubscribe());\n\t}\n\t\n\t#load() {\n\t\t\n\t\tif (!this.isLoaded && this.items.every(item => item.isLoaded)) {\n\t\t\tif (this.target)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\tif (!item.preventBind)\n\t\t\t\t\t\tthis.target[item.name] = item.value;\n\t\t\t\n\t\t\tthis.isLoaded = true;\n\t\t\t\n\t\t\tfor (const item of this.items)\n\t\t\t\tprivates.itemLoad!(item);\n\t\t\t\n\t\t\tthis.emit(\"load\", this.values);\n\t\t\t\n\t\t\tif (this.isInited)\n\t\t\t\tif (this.items.length)\n\t\t\t\t\tfor (const item of this.items)\n\t\t\t\t\t\titem.emitUpdate();\n\t\t\t\telse\n\t\t\t\t\tthis.emitUpdate();\n\t\t\t\n\t\t\t\n\t\t\tthis.#loadPromise.resolve(this);\n\t\t\t\n\t\t\tif (this.#unloadPromise.isFulfilled)\n\t\t\t\tthis.#unloadPromise = new StatefulPromise();\n\t\t}\n\t\t\n\t}\n\t\n\t#init() {\n\t\t\n\t\tif (!this.isInited && this.items.every(item => item.isInited)) {\n\t\t\tthis.isInited = true;\n\t\t\t\n\t\t\tif (this.isLoaded)\n\t\t\t\tif (this.items.length)\n\t\t\t\t\tfor (const item of this.items)\n\t\t\t\t\t\titem.emitUpdate();\n\t\t\t\telse\n\t\t\t\t\tthis.emitUpdate();\n\t\t\t\n\t\t\t\n\t\t\tfor (const item of this.items)\n\t\t\t\tprivates.itemInit!(item);\n\t\t\t\n\t\t\tthis.emit(\"init\", this.values);\n\t\t\t\n\t\t\tthis.#initPromise.resolve(this);\n\t\t}\n\t\t\n\t}\n\t\n\t#unload() {\n\t\t\n\t\tif (this.isLoaded && this.items.every(item => !item.isLoaded)) {\n\t\t\tif (this.target)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\tif (!item.preventBind)\n\t\t\t\t\t\tdelete this.target[item.name];\n\t\t\t\n\t\t\tthis.isLoaded = false;\n\t\t\t\n\t\t\tfor (const item of this.items)\n\t\t\t\tprivates.itemUnload!(item);\n\t\t\t\n\t\t\tthis.emit(\"unload\", this.values);\n\t\t\t\n\t\t\tif (this.items.length)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\titem.emitUpdate();\n\t\t\telse\n\t\t\t\tthis.emitUpdate();\n\t\t\t\n\t\t\tthis.#unloadPromise.resolve(this);\n\t\t\t\n\t\t\tif (this.#loadPromise.isFulfilled)\n\t\t\t\tthis.#loadPromise = new StatefulPromise();\n\t\t}\n\t\t\n\t}\n\t\n\tloaded() {\n\t\treturn this.#loadPromise;\n\t}\n\t\n\tinited() {\n\t\treturn this.#initPromise;\n\t}\n\t\n\tunloaded() {\n\t\treturn this.#unloadPromise;\n\t}\n\t\n\tvalueOf() {\n\t\treturn this.values;\n\t}\n\t\n\t[Symbol.iterator]() {\n\t\treturn this.values[Symbol.iterator]();\n\t}\n\t\n\t\n\tstatic debounceLimit = 8;\n\t\n\tstatic {\n\t\t\n\t\tprivates.groupLoad = (group: SubscriptionGroup) => group.#load();\n\t\tprivates.groupInit = (group: SubscriptionGroup) => group.#init();\n\t\tprivates.groupUnload = (group: SubscriptionGroup) => group.#unload();\n\t\t\n\t}\n\t\n}\n\nexport { Options as SubscriptionGroupOptions, Target as SubscriptionGroupTarget };\n", "import type { SubscriptionGroup } from \"./SubscriptionGroup\";\nimport type { SubscriptionGroupItem } from \"./SubscriptionGroupItem\";\nimport type { SubscriptionType } from \"./types\";\n\n\nexport const privates: {\n\tgroupLoad?: (group: SubscriptionGroup) => void;\n\tgroupInit?: (group: SubscriptionGroup) => void;\n\tgroupUnload?: (group: SubscriptionGroup) => void;\n\titemLoad?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;\n\titemInit?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;\n\titemUnload?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;\n} = {};\n", "import EventEmitter from \"eventemitter3\";\nimport { debounce, removeOne, StatefulPromise } from \"@nesvet/n\";\nimport { type SubscriptionArrayUpdated, SubscriptionArrayWithSubscription } from \"../SubscriptionArray\";\nimport { type SubscriptionMapUpdated, SubscriptionMapWithSubscription } from \"../SubscriptionMap\";\nimport { type Updated as SubscriptionObjectUpdated, SubscriptionObjectWithSubscription } from \"../SubscriptionObject\";\nimport {\n\trenewSymbol,\n\tsetHandleUpdateSymbol,\n\tsubscribeSymbol,\n\tunsubscribeSymbol\n} from \"../symbols\";\nimport { privates } from \"./common\";\nimport type { SubscriptionGroup } from \"./SubscriptionGroup\";\nimport type {\n\tDefinition,\n\tSubscriptionHandle,\n\tSubscriptionOnBeforeInit,\n\tSubscriptionType,\n\tSubscriptionUpdated,\n\tSubscriptionUpdates,\n\tSubscriptionValue\n} from \"./types\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\ntype HandleSubscription<T> = (_: any, updated: SubscriptionUpdated<T>, updates: SubscriptionUpdates<T>) => void;\n\nfunction isUpdatedMapOrArray(updated: SubscriptionUpdated<SubscriptionType>): updated is SubscriptionArrayUpdated | SubscriptionMapUpdated {\n\treturn Array.isArray(updated);\n}\n\n\nexport class SubscriptionGroupItem<T extends SubscriptionType = SubscriptionType, D extends Definition<T> = Definition<T>> extends EventEmitter {\n\tconstructor(definition: D, group: SubscriptionGroup) {\n\t\tsuper();\n\t\t\n\t\tthis.name = definition.name;\n\t\t\n\t\tthis.define(definition, group);\n\t\t\n\t}\n\t\n\tname;\n\tgroup?: SubscriptionGroup;\n\tvalue?: SubscriptionValue<T>;\n\ttype!: \"object\" | T;\n\tpublicationName!: Definition<T>[\"publicationName\"];\n\tparams!: Definition<T>[\"params\"];\n\thandle!: Definition<T>[\"handle\"];\n\tonBeforeInit!: Definition<T>[\"onBeforeInit\"];\n\tpreventBind!: Definition<T>[\"preventBind\"];\n\t\n\temitUpdate!: (updated?: SubscriptionUpdated<T>) => void;\n\t\n\tisLoaded = false;\n\tisInited = false;\n\t\n\t#loadPromise!: StatefulPromise<SubscriptionGroupItem<T, D>>;\n\t#initPromise!: StatefulPromise<SubscriptionGroupItem<T, D>>;\n\t#unloadPromise!: StatefulPromise<SubscriptionGroupItem<T, D>>;\n\t\n\tdefine(definition: Definition<T>, group: SubscriptionGroup | undefined = this.group) {\n\t\tif (!group)\n\t\t\tthrow new Error(\"group is undefined\");\n\t\t\n\t\tconst {\n\t\t\tvalue,\n\t\t\ttype = \"object\",\n\t\t\tpublicationName,\n\t\t\tparams,\n\t\t\thandle,\n\t\t\tonBeforeInit,\n\t\t\tdebounce: debounceLimit = SubscriptionGroupItem.debounceLimit,\n\t\t\tpreventBind\n\t\t} = definition;\n\t\t\n\t\tif (this.group) {\n\t\t\tif (\n\t\t\t\t(!value || this.value === value) &&\n\t\t\t\tthis.type === type &&\n\t\t\t\tthis.publicationName === publicationName &&\n\t\t\t\tJSON.stringify(this.params) === JSON.stringify(params) &&\n\t\t\t\tthis.handle === handle &&\n\t\t\t\tthis.onBeforeInit === onBeforeInit\n\t\t\t)\n\t\t\t\treturn this.#applyOptions({ debounceLimit, preventBind });\n\t\t\t\n\t\t\tthis.detach();\n\t\t\tdelete this.value;\n\t\t\tdelete this.publicationName;\n\t\t\tdelete this.params;\n\t\t}\n\t\t\n\t\tthis.type = type;\n\t\tthis.handle = handle;\n\t\tthis.onBeforeInit = onBeforeInit;\n\t\tif (value)\n\t\t\tthis.value = value;\n\t\telse {\n\t\t\tthis.publicationName = publicationName ?? this.name;\n\t\t\tthis.params = params ?? [];\n\t\t}\n\t\t\n\t\tthis.#applyOptions({ debounceLimit, preventBind });\n\t\t\n\t\tthis.#attachTo(group);\n\t\t\n\t\treturn null;\n\t}\n\t\n\t#applyOptions({ debounceLimit, preventBind }: { debounceLimit?: number; preventBind?: boolean }) {\n\t\t\n\t\tconst emitUpdate: typeof this.emitUpdate = updated => {\n\t\t\tthis.emit(\"update\", this.value, updated);\n\t\t\tthis.group?.emit(`update.${this.name}`, this.value, updated);\n\t\t\tthis.group?.emitUpdate();\n\t\t\t\n\t\t};\n\t\t\n\t\tif (typeof debounceLimit == \"number\") {\n\t\t\tlet debouncedUpdated: SubscriptionUpdated<T> | undefined;\n\t\t\tlet group: SubscriptionGroup;\n\t\t\t\n\t\t\tconst emitUpdateDebounced = debounce(() => {\n\t\t\t\t\n\t\t\t\tconst isDetached = !this.group;\n\t\t\t\t\n\t\t\t\tif (isDetached)\n\t\t\t\t\tthis.group = group;\n\t\t\t\t\n\t\t\t\temitUpdate(debouncedUpdated!);\n\t\t\t\t\n\t\t\t\tif (isDetached)\n\t\t\t\t\tdelete this.group;\n\t\t\t\t\n\t\t\t\tdebouncedUpdated = undefined;\n\t\t\t\t\n\t\t\t}, debounceLimit);\n\t\t\t\n\t\t\tthis.emitUpdate = updated => {\n\t\t\t\tif (updated !== undefined)\n\t\t\t\t\tif (isUpdatedMapOrArray(updated))\n\t\t\t\t\t\tif (isUpdatedMapOrArray(debouncedUpdated!))\n\t\t\t\t\t\t\tfor (const item of updated)\n\t\t\t\t\t\t\t\tdebouncedUpdated.push(item as any);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tdebouncedUpdated = Object.assign([ ...updated ], {\n\t\t\t\t\t\t\t\tadded: [ ...updated.added ],\n\t\t\t\t\t\t\t\tdeleted: [ ...updated.deleted ]\n\t\t\t\t\t\t\t}) as SubscriptionUpdated<T>;\n\t\t\t\t\telse if (typeof updated == \"object\")\n\t\t\t\t\t\tif (debouncedUpdated)\n\t\t\t\t\t\t\tObject.assign(debouncedUpdated, updated);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tdebouncedUpdated = { ...updated };\n\t\t\t\t\telse\n\t\t\t\t\t\tdebouncedUpdated = updated;\n\t\t\t\t\n\t\t\t\tgroup = this.group!;\n\t\t\t\t\n\t\t\t\treturn emitUpdateDebounced();\n\t\t\t};\n\t\t} else\n\t\t\tthis.emitUpdate = emitUpdate;\n\t\t\n\t\tif (this.preventBind === undefined)\n\t\t\tdelete this.preventBind;\n\t\telse\n\t\t\tthis.preventBind = preventBind;\n\t\t\n\t}\n\t\n\t#attachTo(group: SubscriptionGroup) {\n\t\tif (!this.group) {\n\t\t\tthis.group = group;\n\t\t\t\n\t\t\tthis.group.items.push(this);\n\t\t\tthis.group.items[this.name] = this;\n\t\t\t\n\t\t\tif (!this.#loadPromise || this.#loadPromise.isFulfilled)\n\t\t\t\tthis.#loadPromise = new StatefulPromise();\n\t\t\t\n\t\t\tif (!this.#initPromise || this.#initPromise.isFulfilled)\n\t\t\t\tthis.#initPromise = new StatefulPromise();\n\t\t\t\n\t\t\tif (!this.#unloadPromise || this.#unloadPromise.isFulfilled)\n\t\t\t\tthis.#unloadPromise = new StatefulPromise();\n\t\t\t\n\t\t\tswitch (this.type) {\n\t\t\t\tcase \"array\": {\n\t\t\t\t\tconst handleSubscription = this.#handleSubscription as HandleSubscription<\"array\">;\n\t\t\t\t\tif (this.value)\n\t\t\t\t\t\t(this.value as SubscriptionArrayWithSubscription)[setHandleUpdateSymbol](handleSubscription);\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.value = new SubscriptionArrayWithSubscription(this.publicationName!, this.params!, handleSubscription, false) as SubscriptionValue<T>;\n\t\t\t\t\tbreak;\n\t\t\t\t} case \"map\": {\n\t\t\t\t\tconst handleSubscription = this.#handleSubscription as HandleSubscription<\"map\">;\n\t\t\t\t\tif (this.value)\n\t\t\t\t\t\t(this.value as SubscriptionMapWithSubscription)[setHandleUpdateSymbol](handleSubscription);\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.value = new SubscriptionMapWithSubscription(this.publicationName!, this.params!, handleSubscription, false) as SubscriptionValue<T>;\n\t\t\t\t\tbreak;\n\t\t\t\t} default: {\n\t\t\t\t\tconst handleSubscription = this.#handleSubscription as HandleSubscription<\"object\">;\n\t\t\t\t\tif (this.value)\n\t\t\t\t\t\t(this.value as SubscriptionObjectWithSubscription)[setHandleUpdateSymbol](handleSubscription);\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.value = new SubscriptionObjectWithSubscription(this.publicationName!, this.params!, handleSubscription, false) as SubscriptionValue<T>;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.group.values.push(this.value);\n\t\t\tthis.group.values[this.name] = this.value;\n\t\t\t\n\t\t\tif (this.onBeforeInit)\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase \"array\":\n\t\t\t\t\t\t(this.onBeforeInit as SubscriptionOnBeforeInit<\"array\">).call(this.group, this.value as SubscriptionArrayWithSubscription);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"map\":\n\t\t\t\t\t\t(this.onBeforeInit as SubscriptionOnBeforeInit<\"map\">).call(this.group, this.value as SubscriptionMapWithSubscription);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t(this.onBeforeInit as SubscriptionOnBeforeInit<\"object\">).call(this.group, this.value as SubscriptionObjectWithSubscription);\n\t\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\tdetach() {\n\t\t\n\t\tif (this.group) {\n\t\t\tthis.value?.[unsubscribeSymbol]();\n\t\t\t\n\t\t\tthis.isLoaded = false;\n\t\t\tthis.#unload();\n\t\t\t\n\t\t\tdelete this.group.values[this.name];\n\t\t\tremoveOne(this.group.values, this.value);\n\t\t\tdelete this.group.items[this.name];\n\t\t\tremoveOne(this.group.items, this);\n\t\t\t\n\t\t\tdelete this.group;\n\t\t}\n\t\t\n\t}\n\t\n\t#loadUpdated: null | SubscriptionUpdated<T> = null;\n\t\n\t#handleSubscription: HandleSubscription<T> = (_, updated, updates) => {\n\t\tif (updates)\n\t\t\tif (this.group!.isLoaded) {\n\t\t\t\tif (this.handle)\n\t\t\t\t\tswitch (this.type) {\n\t\t\t\t\t\tcase \"array\":\n\t\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"array\">).call(this.group!, updated as SubscriptionArrayUpdated, this.group!);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"map\":\n\t\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"map\">).call(this.group!, updated as SubscriptionMapUpdated, this.group!);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"object\">).call(this.group!, updated as SubscriptionObjectUpdated, this.group!);\n\t\t\t\t\t}\n\t\t\t\tthis.emitUpdate(updated);\n\t\t\t} else {\n\t\t\t\tthis.#loadUpdated = updated;\n\t\t\t\tthis.isLoaded = true;\n\t\t\t\tprivates.groupLoad!(this.group!);\n\t\t\t}\n\t\telse if (this.isLoaded) {\n\t\t\tthis.isLoaded = false;\n\t\t\tprivates.groupUnload!(this.group!);\n\t\t}\n\t\t\n\t\tif (!this.isInited) {\n\t\t\tthis.isInited = true;\n\t\t\tprivates.groupInit!(this.group!);\n\t\t}\n\t\t\n\t};\n\t\n\t#load() {\n\t\t\n\t\tif (this.#loadUpdated) {\n\t\t\tif (this.handle)\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase \"array\":\n\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"array\">).call(this.group!, this.#loadUpdated as SubscriptionArrayUpdated, this.group!);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"map\":\n\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"map\">).call(this.group!, this.#loadUpdated as SubscriptionMapUpdated, this.group!);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"object\">).call(this.group!, this.#loadUpdated as SubscriptionObjectUpdated, this.group!);\n\t\t\t\t}\n\t\t\t\n\t\t\tthis.#loadUpdated = null;\n\t\t\t\n\t\t\tthis.emit(\"load\", this.value);\n\t\t\t\n\t\t\tthis.#loadPromise.resolve(this);\n\t\t\t\n\t\t\tif (this.#unloadPromise.isFulfilled)\n\t\t\t\tthis.#unloadPromise = new StatefulPromise();\n\t\t}\n\t\t\n\t}\n\t\n\t#init() {\n\t\t\n\t\tthis.emit(\"init\", this.value);\n\t\t\n\t\tthis.#initPromise.resolve(this);\n\t\t\n\t}\n\t\n\t#unload() {\n\t\t\n\t\tif (this.handle)\n\t\t\tswitch (this.type) {\n\t\t\t\tcase \"array\":\n\t\t\t\t\t(this.handle as SubscriptionHandle<\"array\">).call(this.group!, null, this.group!);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"map\":\n\t\t\t\t\t(this.handle as SubscriptionHandle<\"map\">).call(this.group!, null, this.group!);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t(this.handle as SubscriptionHandle<\"object\">).call(this.group!, null, this.group!);\n\t\t\t}\n\t\t\n\t\tthis.emit(\"unload\", this.value);\n\t\t\n\t\tthis.#unloadPromise.resolve(this);\n\t\t\n\t\tif (this.#loadPromise.isFulfilled)\n\t\t\tthis.#loadPromise = new StatefulPromise();\n\t\t\n\t}\n\t\n\tloaded() {\n\t\treturn this.#loadPromise;\n\t}\n\t\n\tinited() {\n\t\treturn this.#initPromise;\n\t}\n\t\n\tunloaded() {\n\t\treturn this.#unloadPromise;\n\t}\n\t\n\tsubscribe() {\n\t\treturn this.value?.[subscribeSymbol]();\n\t}\n\t\n\tunsubscribe() {\n\t\treturn this.value?.[unsubscribeSymbol]();\n\t}\n\t\n\trenew(publicationName: Definition<T>[\"publicationName\"], params: Definition<T>[\"params\"]) {\n\t\treturn this.value?.[renewSymbol](publicationName, params);\n\t}\n\t\n\tvalueOf() {\n\t\treturn this.value;\n\t}\n\t\n\t\n\tstatic debounceLimit = 4;\n\t\n\tstatic {\n\t\t\n\t\tprivates.itemLoad = <\n\t\t\tDP extends Definition<TP>,\n\t\t\tTP extends SubscriptionType\n\t\t>(item: SubscriptionGroupItem<TP, DP>) => item.#load();\n\t\tprivates.itemInit = <\n\t\t\tDP extends Definition<TP>,\n\t\t\tTP extends SubscriptionType\n\t\t>(item: SubscriptionGroupItem<TP, DP>) => item.#init();\n\t\tprivates.itemUnload = <\n\t\t\tDP extends Definition<TP>,\n\t\t\tTP extends SubscriptionType\n\t\t>(item: SubscriptionGroupItem<TP, DP>) => item.#unload();\n\t\t\n\t}\n\t\n}\n", "import { removeOne } from \"@nesvet/n\";\nimport { Subscription } from \"./Subscription\";\nimport {\n\tclearSymbol,\n\tgetAsInitialUpdatedSymbol,\n\tgetAsUpdatesSymbol,\n\tgetHandleUpdateSymbol,\n\tgetSubscriptionSymbol,\n\trenewSymbol,\n\tsetHandleUpdateSymbol,\n\tsubscribeSymbol,\n\tunsubscribeSymbol,\n\tupdateSymbol\n} from \"./symbols\";\n\n\ntype GenericItem = { _id: string } & Record<string, any>;// eslint-disable-line @typescript-eslint/no-explicit-any\n\ntype Item = GenericItem | SubscriptionMapItem;\n\ntype Updated<I extends Item = Item> = {\n\tdeleted: string[];\n\tadded: I[];\n} & I[];\n\ntype SortList = Record<string, -1 | 1>;\n\nexport type Updates<I extends Item = Item> =\n\t(\n\t\t[ \"c\"/* create */, item: I ] |\n\t\t[ \"d\"/* delete */, _id: string ] |\n\t\t[ \"i\"/* initial */, items: I[], sortList?: SortList ] |\n\t\t[ \"u\"/* update */, itemUpdates: { _id: string } & Partial<I>, isAtomicOrUpdatedFields: string[] | true ] |\n\t\tnull\n\t)[] |\n\tnull;\n\ntype UpdateHandler<I extends Item = Item> = (map: SubscriptionMap<I>, updated: Updated<I>, updates: Updates<I>) => void;\n\ndeclare global {\n\tvar __insite_subscription_map_sort_function: ((a: Item, b: Item) => -1 | 0 | 1) | undefined;// eslint-disable-line no-var\n}\n\nfunction createSortFunction(sortList: SortList) {\n\t\n\tconst tempScript = document.createElement(\"script\");\n\t\n\ttempScript.textContent = `window.__insite_subscription_map_sort_function = function sort(a, b) { return ${\n\t\tObject.entries(sortList)\n\t\t\t.map(([ key, value ]) => value > 0 ? `a.${key} > b.${key} ? 1 : a.${key} < b.${key} ? -1 :` : `a.${key} < b.${key} ? 1 : a.${key} > b.${key} ? -1 :`)\n\t\t\t.concat(\"0\")\n\t\t\t.join(\" \")\n\t};}`;\n\t\n\tdocument.head.append(tempScript);\n\t\n\tconst sortFunction = window.__insite_subscription_map_sort_function!;\n\t\n\ttempScript.remove();\n\tdelete window.__insite_subscription_map_sort_function;\n\t\n\treturn sortFunction;\n}\n\n// function createSortFunction(sortList: SortList) {\n// return new Function(// eslint-disable-line no-new-func\n// \t\t\"a\"/* Item */,\n// \t\t\"b\"/* Item */,\n// \t\t`return ${\n// \t\t\tObject.entries(sortList)\n// \t\t\t\t.map(([ key, value ]) => value > 0 ? `a.${key} > b.${key} ? 1 : a.${key} < b.${key} ? -1 :` : `a.${key} < b.${key} ? 1 : a.${key} > b.${key} ? -1 :`)\n// \t\t\t\t.concat(\"0\")\n// \t\t\t\t.join(\" \")\n// \t\t}`\n// \t) as (a: Item, b: Item) => -1 | 0 | 1;\n// }\n\n\nexport class SubscriptionMap<I extends Item = Item> extends Map<string, I> {\n\tconstructor(updates?: Updates<I>, onUpdate?: UpdateHandler<I>) {\n\t\tsuper();\n\t\t\n\t\tif (onUpdate)\n\t\t\tthis.handleUpdate = onUpdate;\n\t\t\n\t\tif (updates)\n\t\t\tthis.update(updates);\n\t\t\n\t}\n\t\n\thandleUpdate;\n\t\n\tprivate updates = new Map();\n\t\n\tsortList: null | SortList = null;\n\t\n\tsortCompareFunction: ((a: I, b: I) => number) | null = null;\n\t\n\tprivate fieldsToSort: string[] = [];\n\t\n\tsorted: I[] = [];\n\t\n\tsort() {\n\t\t\n\t\tif (this.sortCompareFunction)\n\t\t\tthis.sorted.sort(this.sortCompareFunction);\n\t\t\n\t}\n\t\n\t[getHandleUpdateSymbol]() {\n\t\treturn this.handleUpdate;\n\t}\n\t\n\t[setHandleUpdateSymbol](handleUpdate: UpdateHandler<I>) {\n\t\treturn (this.handleUpdate = handleUpdate);\n\t}\n\t\n\tprivate TheItem!: { new (map: SubscriptionMap<I>, updates: GenericItem): I };\n\t\n\tset Item(TheItem: { new (map: SubscriptionMap<I>, updates: GenericItem): I }) {\n\t\tthis.TheItem = TheItem;\n\t\t\n\t\tif (this.size)\n\t\t\tfor (const [ _id, item ] of this)\n\t\t\t\tthis.set(_id, new TheItem(this, item));\n\t\t\n\t}\n\t\n\tget Item() {\n\t\treturn this.TheItem;\n\t}\n\t\n\tupdate(updates: Updates<I>) {\n\t\t\n\t\tconst updated: Updated<I> = Object.assign([], {\n\t\t\tadded: [],\n\t\t\tdeleted: []\n\t\t});\n\t\t\n\t\tif (updates) {\n\t\t\tlet shouldSort = false;\n\t\t\t\n\t\t\tconst TheItem = this.TheItem;// eslint-disable-line prefer-destructuring\n\t\t\tconst prevUpdates = this.updates;\n\t\t\t\n\t\t\tfor (const update of updates)\n\t\t\t\tswitch (update?.[0]) {\n\t\t\t\t\tcase \"i\"/* initial */: {\n\t\t\t\t\t\tconst [ , array, sortList ] = update;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (sortList) {\n\t\t\t\t\t\t\tthis.sortList = sortList;\n\t\t\t\t\t\t\tthis.sortCompareFunction = createSortFunction(sortList);\n\t\t\t\t\t\t\tthis.fieldsToSort = [ ...new Set(Object.keys(sortList).map(key => key.replace(/\\..+/, \"\"))) ];\n\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.sortList = null;\n\t\t\t\t\t\t\tthis.sortCompareFunction = null;\n\t\t\t\t\t\t\tthis.fieldsToSort = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (this.size) {\n\t\t\t\t\t\t\tconst updatesMap = new Map();\n\t\t\t\t\t\t\tfor (const itemUpdates of array)\n\t\t\t\t\t\t\t\tupdatesMap.set(itemUpdates._id, itemUpdates);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfor (const [ _id, item ] of this) {\n\t\t\t\t\t\t\t\tconst itemUpdates = updatesMap.get(_id);\n\t\t\t\t\t\t\t\tif (itemUpdates) {\n\t\t\t\t\t\t\t\t\tconst prevItemUpdates = prevUpdates.get(_id);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (TheItem)\n\t\t\t\t\t\t\t\t\t\titem.update(itemUpdates);\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tfor (const key in prevItemUpdates)// eslint-disable-line guard-for-in\n\t\t\t\t\t\t\t\t\t\t\tdelete item[key as keyof typeof item];\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tObject.assign(item, itemUpdates);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tprevUpdates.set(_id, itemUpdates);\n\t\t\t\t\t\t\t\t\tupdated.push(item);\n\t\t\t\t\t\t\t\t\tupdatesMap.delete(_id);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (TheItem)\n\t\t\t\t\t\t\t\t\t\titem.delete();\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tthis.delete(_id);\n\t\t\t\t\t\t\t\t\tprevUpdates.delete(_id);\n\t\t\t\t\t\t\t\t\tupdated.deleted.push(_id);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfor (const [ _id, itemUpdates ] of updatesMap) {\n\t\t\t\t\t\t\t\tconst item = TheItem ? new TheItem(this, itemUpdates) : { ...itemUpdates };\n\t\t\t\t\t\t\t\tthis.set(_id, item);\n\t\t\t\t\t\t\t\tprevUpdates.set(_id, itemUpdates);\n\t\t\t\t\t\t\t\tupdated.push(item);\n\t\t\t\t\t\t\t\tupdated.added.push(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (this.sortList)\n\t\t\t\t\t\t\t\tthis.sorted = array.map(newItem => this.get(newItem._id)!);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\tfor (const itemUpdates of array) {\n\t\t\t\t\t\t\t\tconst item = (TheItem ? new TheItem(this, itemUpdates) : { ...itemUpdates }) as I;\n\t\t\t\t\t\t\t\tthis.set(item._id, item);\n\t\t\t\t\t\t\t\tthis.sorted.push(item);\n\t\t\t\t\t\t\t\tprevUpdates.set(item._id, itemUpdates);\n\t\t\t\t\t\t\t\tupdated.push(item);\n\t\t\t\t\t\t\t\tupdated.added.push(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase \"c\"/* create */:\n\t\t\t\t\tcase \"u\"/* update */: {\n\t\t\t\t\t\tlet [ , itemUpdates ] = update;\n\t\t\t\t\t\tlet item = this.get(itemUpdates._id);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (item) {\n\t\t\t\t\t\t\tconst isAtomic = update[2] === true;\n\t\t\t\t\t\t\tconst updatedFields = isAtomic ? Object.keys(itemUpdates) : update[2] as string[];\n\t\t\t\t\t\t\tconst prevItemUpdates = prevUpdates.get(item._id);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (TheItem)\n\t\t\t\t\t\t\t\titem.update(itemUpdates);\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (!isAtomic)\n\t\t\t\t\t\t\t\t\tfor (const key in prevItemUpdates)// eslint-disable-line guard-for-in\n\t\t\t\t\t\t\t\t\t\tdelete item[key as keyof typeof item];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tObject.assign(item, itemUpdates);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (isAtomic)\n\t\t\t\t\t\t\t\titemUpdates = Object.assign(prevItemUpdates, itemUpdates);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (this.sortList && !shouldSort && (!updatedFields || updatedFields.some(fieldName => this.fieldsToSort.includes(fieldName))))\n\t\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\titem = (TheItem ? new TheItem(this, itemUpdates) : { ...itemUpdates }) as I;\n\t\t\t\t\t\t\tthis.set(item._id, item);\n\t\t\t\t\t\t\tthis.sorted.push(item);\n\t\t\t\t\t\t\tif (this.sortList)\n\t\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t\tupdated.added.push(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tprevUpdates.set(item._id, itemUpdates);\n\t\t\t\t\t\tupdated.push(item);\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase \"d\"/* delete */: {\n\t\t\t\t\t\tconst [ , _id ] = update;\n\t\t\t\t\t\tconst itemToDelete = this.get(_id);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (itemToDelete) {\n\t\t\t\t\t\t\tif (TheItem)\n\t\t\t\t\t\t\t\titemToDelete.delete();\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tthis.delete(_id);\n\t\t\t\t\t\t\tprevUpdates.delete(_id);\n\t\t\t\t\t\t\tremoveOne(this.sorted, itemToDelete);\n\t\t\t\t\t\t\tupdated.deleted.push(_id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.clear();\n\t\t\t\t}\n\t\t\t\n\t\t\tif (shouldSort)\n\t\t\t\tthis.sort();\n\t\t\t\n\t\t} else\n\t\t\tthis.clear();\n\t\t\n\t\tthis.handleUpdate?.(this, updated, updates?.[0] ? updates : null);\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[updateSymbol] = this.update;\n\t\n\tgetAsUpdates() {\n\t\treturn (\n\t\t\t(this.size || this.sortList) ?\n\t\t\t\t[ [ \"i\"/* initial */, [ ...this.updates.values() ], this.sortList ] ] :\n\t\t\t\tnull\n\t\t);\n\t}\n\t\n\t[getAsUpdatesSymbol] = this.getAsUpdates;\n\t\n\tgetAsInitialUpdated() {\n\t\treturn Object.assign([ ...this.sorted ], {\n\t\t\tadded: [ ...this.sorted ],\n\t\t\tdeleted: []\n\t\t});\n\t}\n\t\n\t[getAsInitialUpdatedSymbol] = this.getAsInitialUpdated;\n\t\n\tclear() {\n\t\t\n\t\tsuper.clear();\n\t\tthis.updates.clear();\n\t\tthis.sorted = [];\n\t\tthis.sortList = null;\n\t\tthis.sortCompareFunction = null;\n\t\tthis.fieldsToSort = [];\n\t\t\n\t}\n\t\n\t[clearSymbol] = this.clear;\n\t\n\tvalueOf() {\n\t\treturn this.sorted;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionMap\";\n\t}\n\t\n\t\n\tstatic updateSymbol = updateSymbol;\n\tstatic getHandleUpdateSymbol = getHandleUpdateSymbol;\n\tstatic setHandleUpdateSymbol = setHandleUpdateSymbol;\n\tstatic getAsUpdatesSymbol = getAsUpdatesSymbol;\n\tstatic getAsInitialUpdatedSymbol = getAsInitialUpdatedSymbol;\n\tstatic clearSymbol = clearSymbol;\n\tstatic WithSubscription: typeof SubscriptionMapWithSubscription;\n\tstatic Item: typeof SubscriptionMapItem;\n\t\n}\n\n\nexport class SubscriptionMapWithSubscription<I extends Item = Item> extends SubscriptionMap<I> {\n\tconstructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler<I>, immediately = true) {\n\t\tsuper(null, onUpdate);\n\t\t\n\t\tthis.publicationName = publicationName;\n\t\tthis.params = params;\n\t\t\n\t\tif (immediately)\n\t\t\tthis.subscribe();\n\t\t\n\t}\n\t\n\tpublicationName;\n\tparams;\n\t\n\tsubscription: null | Subscription = null;\n\t\n\tsubscribe() {\n\t\t\n\t\tif (!this.subscription)\n\t\t\tthis.subscription = new Subscription(\"map\", this.publicationName, this.params, updates => this.update(updates as Updates<I>));\n\t\t\n\t}\n\t\n\tget [subscribeSymbol]() {\n\t\treturn this.subscribe;\n\t}\n\t\n\tunsubscribe() {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.cancel();\n\t\t\tthis.subscription = null;\n\t\t}\n\t\t\n\t}\n\t\n\tget [unsubscribeSymbol]() {\n\t\treturn this.unsubscribe;\n\t}\n\t\n\trenew(publicationName?: string, params?: unknown[]) {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.unsubscribe();\n\t\t\t\n\t\t\tif (publicationName)\n\t\t\t\tif (Array.isArray(publicationName))\n\t\t\t\t\tparams = publicationName;\n\t\t\t\telse\n\t\t\t\t\tthis.publicationName = publicationName;\n\t\t\t\n\t\t\tif (params)\n\t\t\t\tthis.params = params;\n\t\t\t\n\t\t\tthis.subscribe();\n\t\t}\n\t\t\n\t}\n\t\n\tget [renewSymbol]() {\n\t\treturn this.renew;\n\t}\n\t\n\t[getSubscriptionSymbol]() {\n\t\treturn this.subscription;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionMapWithSubscription\";\n\t}\n\t\n\t\n\tstatic subscribeSymbol = subscribeSymbol;\n\tstatic unsubscribeSymbol = unsubscribeSymbol;\n\tstatic renewSymbol = renewSymbol;\n\tstatic getSubscriptionSymbol = getSubscriptionSymbol;\n\t\n}\n\nSubscriptionMap.WithSubscription = SubscriptionMapWithSubscription;\n\n\nexport class SubscriptionMapItem {\n\tconstructor(map: SubscriptionMap, updates: GenericItem) {\n\t\tthis.map = map;\n\t\t\n\t\tthis.update(updates);\n\t\t\n\t}\n\t\n\t_id!: string;\n\t\n\tprivate map;\n\t\n\tupdate(updates: GenericItem) {\n\t\tObject.assign(this, updates);\n\t\t\n\t}\n\t\n\tdelete() {\n\t\t\n\t\tthis.map.delete(this._id);\n\t\t\n\t}\n\t\n}\n\nSubscriptionMap.Item = SubscriptionMapItem;\n\nexport { Updated as SubscriptionMapUpdated };\n", "import { Subscription } from \"./Subscription\";\nimport {\n\tclearSymbol,\n\tgetAsInitialUpdatedSymbol,\n\tgetAsUpdatesSymbol,\n\tgetHandleUpdateSymbol,\n\tgetSubscriptionSymbol,\n\trenewSymbol,\n\tsetHandleUpdateSymbol,\n\tsubscribeSymbol,\n\tunsubscribeSymbol,\n\tupdateSymbol\n} from \"./symbols\";\n\n\nconst handleUpdateSymbol = Symbol(\"handleUpdate\");\nconst updatesSymbol = Symbol(\"updates\");\n\nexport type Updated = Record<string, unknown>;\nexport type Updates = null | Record<string, unknown>;\ntype UpdateHandler = (object: SubscriptionObject, updated: Updated, updates: Updates) => void;\n\n\nexport class SubscriptionObject {\n\tconstructor(updates?: Updates, onUpdate?: UpdateHandler) {\n\t\tif (onUpdate)\n\t\t\tthis[handleUpdateSymbol] = onUpdate;\n\t\t\n\t\tif (updates)\n\t\t\tthis[updateSymbol](updates);\n\t\t\n\t}\n\t\n\t[handleUpdateSymbol]?: UpdateHandler;\n\t\n\t[updatesSymbol]: Updates = null;\n\t\n\t[getHandleUpdateSymbol]() {\n\t\treturn this[handleUpdateSymbol];\n\t}\n\t\n\t[setHandleUpdateSymbol](handleUpdate: UpdateHandler) {\n\t\treturn (this[handleUpdateSymbol] = handleUpdate);\n\t}\n\t\n\t[updateSymbol](updates: Updates) {\n\t\tif (updates) {\n\t\t\tfor (const key in this[updatesSymbol])// eslint-disable-line guard-for-in\n\t\t\t\tdelete this[key];\n\t\t\tfor (const key in updates)// eslint-disable-line guard-for-in\n\t\t\t\tthis[key] = updates[key];\n\t\t\tthis[updatesSymbol] = updates;\n\t\t} else\n\t\t\tthis[clearSymbol]();\n\t\t\n\t\tthis[handleUpdateSymbol]?.(this, this, this[updatesSymbol]);\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[getAsUpdatesSymbol]() {\n\t\treturn this[updatesSymbol] && { ...this[updatesSymbol] };\n\t}\n\t\n\t[getAsInitialUpdatedSymbol]() {\n\t\treturn this.valueOf();\n\t}\n\t\n\t[clearSymbol]() {\n\t\t\n\t\tfor (const key in this)// eslint-disable-line guard-for-in\n\t\t\tdelete this[key];\n\t\tthis[updatesSymbol] = null;\n\t\t\n\t}\n\t\n\tvalueOf() {\n\t\treturn this[updatesSymbol] && this;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionObject\";\n\t}\n\t\n\t[key: string]: unknown;\n\t\n\t\n\tstatic updateSymbol = updateSymbol;\n\tstatic getHandleUpdateSymbol = getHandleUpdateSymbol;\n\tstatic setHandleUpdateSymbol = setHandleUpdateSymbol;\n\tstatic getAsUpdatesSymbol = getAsUpdatesSymbol;\n\tstatic getAsInitialUpdatedSymbol = getAsInitialUpdatedSymbol;\n\tstatic clearSymbol = clearSymbol;\n\tstatic WithSubscription: typeof SubscriptionObjectWithSubscription;\n\t\n}\n\n\nexport class SubscriptionObjectWithSubscription extends SubscriptionObject {\n\tconstructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler, immediately = true) {\n\t\tsuper(null, onUpdate);\n\t\t\n\t\tthis.publicationName = publicationName;\n\t\tthis.params = params;\n\t\t\n\t\tif (immediately)\n\t\t\tthis[subscribeSymbol]();\n\t\t\n\t}\n\t\n\tprivate publicationName;\n\tprivate params;\n\tprivate subscription: null | Subscription = null;\n\t\n\t[subscribeSymbol]() {\n\t\t\n\t\tif (!this.subscription)\n\t\t\tthis.subscription = new Subscription(\"object\", this.publicationName, this.params, updates => this[updateSymbol](updates as Updates));\n\t\t\n\t}\n\t\n\t[unsubscribeSymbol]() {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.cancel();\n\t\t\tthis.subscription = null;\n\t\t}\n\t\t\n\t}\n\t\n\t[renewSymbol](publicationName?: string, params?: unknown[]) {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis[unsubscribeSymbol]();\n\t\t\t\n\t\t\tif (publicationName)\n\t\t\t\tif (Array.isArray(publicationName))\n\t\t\t\t\tparams = publicationName;\n\t\t\t\telse\n\t\t\t\t\tthis.publicationName = publicationName;\n\t\t\t\n\t\t\tif (params)\n\t\t\t\tthis.params = params;\n\t\t\t\n\t\t\tthis[subscribeSymbol]();\n\t\t}\n\t\t\n\t}\n\t\n\t[getSubscriptionSymbol]() {\n\t\treturn this.subscription;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionObjectWithSubscription\";\n\t}\n\t\n\t\n\tstatic subscribeSymbol = subscribeSymbol;\n\tstatic unsubscribeSymbol = unsubscribeSymbol;\n\tstatic renewSymbol = renewSymbol;\n\tstatic getSubscriptionSymbol = getSubscriptionSymbol;\n\t\n}\n\nSubscriptionObject.WithSubscription = SubscriptionObjectWithSubscription;\n\nexport { Updated as SubscriptionObjectUpdated };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["i", "subscriptions", "ws", "Subscription", "type", "publicationName", "args", "handler", "immediately", "__publicField", "_ws", "si", "updates", "subscription", "removeOne", "updateSymbol", "getHandleUpdateSymbol", "setHandleUpdateSymbol", "getAsUpdatesSymbol", "getAsInitialUpdatedSymbol", "clearSymbol", "subscribeSymbol", "unsubscribeSymbol", "renewSymbol", "getSubscriptionSymbol", "getHandleSubscriptionSymbol", "setHandleSubscriptionSymbol", "ascSort", "a", "b", "descSort", "_a", "_b", "_c", "_d", "SubscriptionArray", "updates", "onUpdate", "__publicField", "getHandleUpdateSymbol", "setHandleUpdateSymbol", "handleUpdate", "updated", "shouldSort", "update", "array", "sort", "newItem", "itemToDelete", "removeOne", "updateSymbol", "getAsUpdatesSymbol", "getAsInitialUpdatedSymbol", "clearSymbol", "SubscriptionArrayWithSubscription", "publicationName", "params", "immediately", "Subscription", "subscribeSymbol", "unsubscribeSymbol", "renewSymbol", "getSubscriptionSymbol", "EventEmitter", "debounce", "StatefulPromise", "privates", "EventEmitter", "debounce", "removeOne", "StatefulPromise", "removeOne", "createSortFunction", "sortList", "tempScript", "key", "value", "sortFunction", "_a", "_b", "_c", "_d", "SubscriptionMap", "updates", "onUpdate", "__publicField", "getHandleUpdateSymbol", "setHandleUpdateSymbol", "handleUpdate", "TheItem", "_id", "item", "updated", "shouldSort", "prevUpdates", "update", "array", "updatesMap", "itemUpdates", "prevItemUpdates", "newItem", "isAtomic", "updatedFields", "fieldName", "itemToDelete", "removeOne", "updateSymbol", "getAsUpdatesSymbol", "getAsInitialUpdatedSymbol", "clearSymbol", "SubscriptionMapWithSubscription", "publicationName", "params", "immediately", "Subscription", "subscribeSymbol", "unsubscribeSymbol", "renewSymbol", "getSubscriptionSymbol", "SubscriptionMapItem", "map", "handleUpdateSymbol", "updatesSymbol", "_a", "_b", "SubscriptionObject", "updates", "onUpdate", "__publicField", "updateSymbol", "getHandleUpdateSymbol", "setHandleUpdateSymbol", "handleUpdate", "key", "clearSymbol", "getAsUpdatesSymbol", "getAsInitialUpdatedSymbol", "SubscriptionObjectWithSubscription", "publicationName", "params", "immediately", "subscribeSymbol", "Subscription", "unsubscribeSymbol", "renewSymbol", "getSubscriptionSymbol", "isUpdatedMapOrArray", "updated", "_loadPromise", "_initPromise", "_unloadPromise", "_SubscriptionGroupItem_instances", "applyOptions_fn", "attachTo_fn", "_loadUpdated", "_handleSubscription", "load_fn", "init_fn", "unload_fn", "_SubscriptionGroupItem", "EventEmitter", "definition", "group", "__privateAdd", "__publicField", "_", "updates", "__privateSet", "privates", "value", "type", "publicationName", "params", "handle", "onBeforeInit", "debounceLimit", "preventBind", "__privateMethod", "unsubscribeSymbol", "removeOne", "__privateGet", "subscribeSymbol", "renewSymbol", "emitUpdate", "debouncedUpdated", "emitUpdateDebounced", "debounce", "isDetached", "item", "StatefulPromise", "handleSubscription", "setHandleUpdateSymbol", "SubscriptionArrayWithSubscription", "SubscriptionMapWithSubscription", "SubscriptionObjectWithSubscription", "_a", "SubscriptionGroupItem", "isTupleDefinition", "definition", "parseDefinition", "args", "parsed", "_loadPromise", "_initPromise", "_unloadPromise", "_debounceLimit", "_SubscriptionGroup_instances", "load_fn", "init_fn", "unload_fn", "_SubscriptionGroup", "EventEmitter", "definitions", "target", "debounceLimit", "immediately", "__privateAdd", "__publicField", "__privateSet", "StatefulPromise", "item", "__privateGet", "emitUpdateDebounced", "debounce", "shouldReload", "SubscriptionGroupItem", "names", "shouldUpdate", "name", "__privateMethod", "itemsToDetach", "definitionsToRedefine", "definitionsToAttach", "privates", "group", "_a", "SubscriptionGroup"]
|
|
4
|
+
"sourcesContent": ["import type { InSiteWebSocket } from \"insite-ws/client\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\ndeclare global {\n\tvar __initials: undefined | unknown[];// eslint-disable-line no-var\n}\n\n\nlet i: number;\nlet subscriptions: Map<number, Subscription>;\nlet ws: InSiteWebSocket;\n\n\nexport class Subscription {\n\tconstructor(type: \"array\" | \"map\" | \"object\", publicationName: string, args: unknown[] = [], handler: (updates: any) => void, immediately = true) {\n\t\t\n\t\tif (!ws)\n\t\t\tthrow new Error(\"Subscription is not binded to WS. Do Subscription.bindTo(ws) first\");\n\t\t\n\t\tthis.i = i++;\n\t\tthis.type = type;\n\t\tthis.publicationName = publicationName;\n\t\tthis.args = args;\n\t\tthis.handler = handler;\n\t\tthis.immediately = immediately && !window.__initials;\n\t\t\n\t\tsubscriptions.set(this.i, this);\n\t\t\n\t\tws.on(\"open\", this.start);\n\t\t\n\t\tif (ws.isOpen)\n\t\t\tthis.start();\n\t\t\n\t\tif (window.__initials) {\n\t\t\tthis.isActive = true;\n\t\t\tthis.handler(window.__initials.splice(0, 1)[0]);\n\t\t} else\n\t\t\tthis.isActive = false;\n\t\t\n\t}\n\t\n\ti;\n\ttype;\n\tpublicationName;\n\targs;\n\thandler;\n\timmediately;\n\tisActive;\n\t\n\tstart = () => {\n\t\t\n\t\tws.sendMessage(\"s-s\"/* subscription subscribe */, this.type, this.publicationName, this.i, this.args, this.immediately);\n\t\t\n\t\tthis.immediately = true;\n\t\t\n\t};\n\t\n\tcancel() {\n\t\t\n\t\tsubscriptions.delete(this.i);\n\t\t\n\t\tws.off(\"open\", this.start);\n\t\t\n\t\tws.sendMessage(\"s-u\"/* subscription unsubscribe */, this.i);\n\t\t\n\t}\n\t\n\t\n\tstatic bindTo(_ws: InSiteWebSocket) {\n\t\tws = _ws;\n\t\t\n\t\ti = 0;\n\t\t\n\t\tsubscriptions = new Map();\n\t\t\n\t\tws.on(\"message:s-c\"/* subscription changed */, (si: number, updates: any) => {\n\t\t\tconst subscription = subscriptions.get(si);\n\t\t\tif (subscription) {\n\t\t\t\tsubscription.isActive = true;\n\t\t\t\tsubscription.handler(updates);\n\t\t\t}\n\t\t\t\n\t\t});\n\t\t\n\t\tws.on(\"close\", () => {\n\t\t\t\n\t\t\tfor (const subscription of subscriptions.values())\n\t\t\t\tsubscription.isActive = false;\n\t\t\t\n\t\t});\n\t\t\n\t\tws.on(\"server-change\", () => {\n\t\t\t\n\t\t\tfor (const subscription of subscriptions.values())\n\t\t\t\tsubscription.handler(null);\n\t\t\t\n\t\t});\n\t\t\n\t}\n\t\n}\n", "import { removeOne } from \"@nesvet/n\";\nimport { Subscription } from \"./Subscription\";\nimport {\n\tclearSymbol,\n\tgetAsInitialUpdatedSymbol,\n\tgetAsUpdatesSymbol,\n\tgetHandleUpdateSymbol,\n\tgetSubscriptionSymbol,\n\trenewSymbol,\n\tsetHandleUpdateSymbol,\n\tsubscribeSymbol,\n\tunsubscribeSymbol,\n\tupdateSymbol\n} from \"./symbols\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\ntype Item = unknown;\n\nexport type Updated<I extends Item = Item> = {\n\tdeleted: I[];\n\tadded: I[];\n} & I[];\n\nexport type Updates<I extends Item = Item> =\n\t(\n\t\t[ \"a\"/* add */, newItem: I ] |\n\t\t[ \"d\"/* delete */, itemToDelete: I ] |\n\t\t[ \"i\"/* initial */, items: I[], sort?: -1 | 0 | 1 ] |\n\t\tnull\n\t)[] |\n\tnull;\n\nexport type UpdateHandler<I extends Item = Item> = (array: SubscriptionArray<I>, updated: Updated<I>, updates: Updates<I>) => void;\n\nconst ascSort = (a: any, b: any) => a > b ? 1 : a < b ? -1 : 0;\nconst descSort = (a: any, b: any) => a > b ? -1 : a < b ? 1 : 0;\n\n\nexport class SubscriptionArray<I extends Item = Item> extends Array<I> {\n\tconstructor(updates?: Updates<I>, onUpdate?: UpdateHandler<I>) {\n\t\tsuper();\n\t\t\n\t\tif (onUpdate)\n\t\t\tthis.handleUpdate = onUpdate;\n\t\t\n\t\tif (Array.isArray(updates))\n\t\t\tthis.update(updates);\n\t\t\n\t}\n\t\n\tsorted: I[] = [];\n\t\n\thandleUpdate;\n\t\n\tsortDirection: -1 | 0 | 1 = 0;\n\t\n\tsortCompareFunction: null | typeof ascSort | typeof descSort = null;\n\t\n\t[getHandleUpdateSymbol]() {\n\t\treturn this.handleUpdate;\n\t}\n\t\n\t[setHandleUpdateSymbol](handleUpdate: UpdateHandler<I>) {\n\t\treturn (this.handleUpdate = handleUpdate);\n\t}\n\t\n\tupdate(updates: Updates<I>) {\n\t\t\n\t\tconst updated: Updated<I> = Object.assign([], {\n\t\t\tdeleted: [],\n\t\t\tadded: []\n\t\t});\n\t\t\n\t\tif (updates) {\n\t\t\tlet shouldSort = false;\n\t\t\t\n\t\t\tfor (const update of updates)\n\t\t\t\tswitch (update?.[0]) {\n\t\t\t\t\tcase \"i\"/* initial */: {\n\t\t\t\t\t\tconst [ , array, sort ] = update;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (sort) {\n\t\t\t\t\t\t\tthis.sortDirection = sort;\n\t\t\t\t\t\t\tthis.sortCompareFunction = sort > 0 ? ascSort : descSort;\n\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.sortDirection = 0;\n\t\t\t\t\t\t\tthis.sortCompareFunction = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.length = 0;\n\t\t\t\t\t\t\n\t\t\t\t\t\tfor (const newItem of array) {\n\t\t\t\t\t\t\tthis.push(newItem);\n\t\t\t\t\t\t\tupdated.push(newItem);\n\t\t\t\t\t\t\tupdated.added.push(newItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase \"a\"/* add */: {\n\t\t\t\t\t\tconst [ , newItem ] = update;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (!this.includes(newItem)) {\n\t\t\t\t\t\t\tthis.push(newItem);\n\t\t\t\t\t\t\tif (this.sortDirection)\n\t\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t\tupdated.push(newItem);\n\t\t\t\t\t\t\tupdated.added.push(newItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase \"d\"/* delete */: {\n\t\t\t\t\t\tconst [ , itemToDelete ] = update;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (removeOne(this, itemToDelete))\n\t\t\t\t\t\t\tupdated.deleted.push(itemToDelete);\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.clear();\n\t\t\t\t}\n\t\t\t\n\t\t\tif (shouldSort && this.sortCompareFunction)\n\t\t\t\tthis.sort(this.sortCompareFunction);\n\t\t\t\n\t\t} else\n\t\t\tthis.clear();\n\t\t\n\t\tthis.handleUpdate?.(this, updated, updates?.[0] ? updates : null);\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[updateSymbol] = this.update;\n\t\n\tgetAsUpdates(): Updates<I> {\n\t\treturn (\n\t\t\t(this.length || this.sortDirection) ?\n\t\t\t\t[ [ \"i\"/* initial */, [ ...this ], this.sortDirection ] ] :\n\t\t\t\tnull\n\t\t);\n\t}\n\t\n\t[getAsUpdatesSymbol] = this.getAsUpdates;\n\t\n\tgetAsInitialUpdated(): Updated<I> {\n\t\treturn Object.assign([ ...this.sorted ], {\n\t\t\tadded: [ ...this.sorted ],\n\t\t\tdeleted: []\n\t\t});\n\t}\n\t\n\t[getAsInitialUpdatedSymbol] = this.getAsInitialUpdated;\n\t\n\tclear() {\n\t\t\n\t\tthis.length = 0;\n\t\tthis.sortDirection = 0;\n\t\tthis.sortCompareFunction = null;\n\t\t\n\t}\n\t\n\t[clearSymbol] = this.clear;\n\t\n\tvalueOf() {\n\t\treturn this;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionArray\";\n\t}\n\t\n\t\n\tstatic updateSymbol = updateSymbol;\n\tstatic getHandleUpdateSymbol = getHandleUpdateSymbol;\n\tstatic setHandleUpdateSymbol = setHandleUpdateSymbol;\n\tstatic getAsUpdatesSymbol = getAsUpdatesSymbol;\n\tstatic getAsInitialUpdatedSymbol = getAsInitialUpdatedSymbol;\n\tstatic clearSymbol = clearSymbol;\n\tstatic WithSubscription: typeof SubscriptionArrayWithSubscription;\n\t\n}\n\n\nexport class SubscriptionArrayWithSubscription<I extends Item = Item> extends SubscriptionArray<I> {\n\tconstructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler<I>, immediately = true) {\n\t\tsuper(null, onUpdate);\n\t\t\n\t\tthis.publicationName = publicationName;\n\t\tthis.params = params;\n\t\t\n\t\tif (immediately)\n\t\t\tthis.subscribe();\n\t\t\n\t}\n\t\n\tpublicationName;\n\tparams;\n\tsubscription: null | Subscription = null;\n\t\n\tsubscribe() {\n\t\t\n\t\tif (!this.subscription)\n\t\t\tthis.subscription = new Subscription(\"array\", this.publicationName, this.params, updates => this.update(updates as Updates<I>));\n\t\t\n\t}\n\t\n\tget [subscribeSymbol]() {\n\t\treturn this.subscribe;\n\t}\n\t\n\tunsubscribe() {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.cancel();\n\t\t\tthis.subscription = null;\n\t\t}\n\t\t\n\t}\n\t\n\tget [unsubscribeSymbol]() {\n\t\treturn this.unsubscribe;\n\t}\n\t\n\trenew(publicationName?: string, params?: unknown[]) {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.unsubscribe();\n\t\t\t\n\t\t\tif (publicationName)\n\t\t\t\tif (Array.isArray(publicationName))\n\t\t\t\t\tparams = publicationName;\n\t\t\t\telse\n\t\t\t\t\tthis.publicationName = publicationName;\n\t\t\t\n\t\t\tif (params)\n\t\t\t\tthis.params = params;\n\t\t\t\n\t\t\tthis.subscribe();\n\t\t}\n\t\t\n\t}\n\t\n\tget [renewSymbol]() {\n\t\treturn this.renew;\n\t}\n\t\n\t[getSubscriptionSymbol]() {\n\t\treturn this.subscription;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionArrayWithSubscription\";\n\t}\n\t\n\t\n\tstatic subscribeSymbol = subscribeSymbol;\n\tstatic unsubscribeSymbol = unsubscribeSymbol;\n\tstatic renewSymbol = renewSymbol;\n\tstatic getSubscriptionSymbol = getSubscriptionSymbol;\n\t\n}\n\nSubscriptionArray.WithSubscription = SubscriptionArrayWithSubscription;\n", "export const updateSymbol = Symbol(\"update\");\nexport const getHandleUpdateSymbol = Symbol(\"getHandleUpdate\");\nexport const setHandleUpdateSymbol = Symbol(\"setHandleUpdate\");\nexport const getAsUpdatesSymbol = Symbol(\"getAsUpdates\");\nexport const getAsInitialUpdatedSymbol = Symbol(\"getAsInitialUpdated\");\nexport const clearSymbol = Symbol(\"clear\");\nexport const subscribeSymbol = Symbol(\"subscribe\");\nexport const unsubscribeSymbol = Symbol(\"unsubscribe\");\nexport const renewSymbol = Symbol(\"renew\");\nexport const getSubscriptionSymbol = Symbol(\"getSubscription\");\nexport const getHandleSubscriptionSymbol = Symbol(\"getHandleSubscription\");\nexport const setHandleSubscriptionSymbol = Symbol(\"setHandleSubscription\");\n", "import EventEmitter from \"eventemitter3\";\nimport { debounce, StatefulPromise } from \"@nesvet/n\";\nimport { privates } from \"./common\";\nimport { SubscriptionGroupItem } from \"./SubscriptionGroupItem\";\nimport {\n\tDefinition,\n\tParseValues,\n\tSubscriptionHandle,\n\tSubscriptionOnBeforeInit,\n\tSubscriptionType,\n\tTupleDefinition,\n\tUnparsedDefinition\n} from \"./types\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\nfunction isTupleDefinition<T extends SubscriptionType>(definition: UnparsedDefinition<T>): definition is TupleDefinition {\n\treturn Array.isArray(definition);\n}\n\ntype Target = any;\n\ntype Options = {\n\ttarget?: Target;\n\tdebounce?: number;\n\timmediately?: boolean;\n};\n\n\nfunction parseDefinition<T extends SubscriptionType>(definition: UnparsedDefinition<T>) {\n\tif (isTupleDefinition(definition)) {\n\t\tconst args = definition.slice();\n\t\t\n\t\tconst parsed: Partial<Definition<T>> = {};\n\t\t\n\t\tparsed.name = args.shift() as Definition<T>[\"name\"];\n\t\tif (typeof args[0] == \"object\" && !Array.isArray(args[0])) {\n\t\t\tparsed.value = args.shift() as Definition<T>[\"value\"];\n\t\t\tparsed.type = parsed.value!.toString().match(/Subscription(Object|Array|Map)/)?.[1].toLowerCase() as Definition<T>[\"type\"];\n\t\t\tif (!parsed.type)\n\t\t\t\tthrow new Error(\"Unknown value type\");\n\t\t} else {\n\t\t\tif (typeof args[0] == \"string\")\n\t\t\t\tparsed.type = args.shift() as Definition<T>[\"type\"];\n\t\t\tif (typeof args[0] == \"string\")\n\t\t\t\tparsed.publicationName = args.shift() as Definition<T>[\"publicationName\"];\n\t\t\tif (Array.isArray(args[0]))\n\t\t\t\tparsed.params = args.shift() as Definition<T>[\"params\"];\n\t\t}\n\t\t\n\t\tif (typeof args[0] == \"function\")\n\t\t\tparsed.handle = args.shift() as SubscriptionHandle<T>;\n\t\tif (typeof args[0] == \"function\")\n\t\t\tparsed.onBeforeInit = args.shift() as SubscriptionOnBeforeInit<T>;\n\t\tif (typeof args[0] == \"number\")\n\t\t\tparsed.debounce = args.shift() as Definition<T>[\"debounce\"];\n\t\tif (typeof args[0] == \"boolean\")\n\t\t\tparsed.preventBind = args.shift() as Definition<T>[\"preventBind\"];\n\t\t\n\t\treturn parsed as Definition<T>;\n\t}\n\t\n\tdefinition.type ??= \"object\" as T;\n\t\n\treturn definition;\n}\n\nexport class SubscriptionGroup<DS extends UnparsedDefinition[] = any[]> extends EventEmitter {\n\tconstructor(\n\t\tdefinitions: DS,\n\t\t{\n\t\t\ttarget,\n\t\t\tdebounce: debounceLimit = SubscriptionGroup.debounceLimit,\n\t\t\timmediately\n\t\t}: Options = {}\n\t) {\n\t\tsuper();\n\t\t\n\t\tthis.applyOptions({ target, debounceLimit });\n\t\t\n\t\tthis.#initPromise = new StatefulPromise();\n\t\t\n\t\tthis.attach(definitions, false, immediately);\n\t\t\n\t}\n\t\n\ttarget?: Target;\n\temitUpdate!: () => void;\n\t\n\titems = [] as unknown as Record<string, SubscriptionGroupItem> & SubscriptionGroupItem[];\n\tvalues = [] as DS extends any ? (any[] & Record<string, any>) : ParseValues<DS>;\n\t\n\tisLoaded = false;\n\tisInited = false;\n\t\n\t#loadPromise!: StatefulPromise<SubscriptionGroup>;\n\t#initPromise: StatefulPromise<SubscriptionGroup>;\n\t#unloadPromise!: StatefulPromise<SubscriptionGroup>;\n\t\n\t#debounceLimit?: null | number = null;\n\t\n\tapplyOptions({ target, debounceLimit }: { target?: Target; debounceLimit?: number }) {\n\t\t\n\t\tif (this.target !== target) {\n\t\t\tif (this.target)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\tif (item.isLoaded && !item.preventBind)\n\t\t\t\t\t\tdelete this.target[item.name];\n\t\t\t\n\t\t\tthis.target = target;\n\t\t\t\n\t\t\tif (this.target)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\tif (item.isLoaded && !item.preventBind)\n\t\t\t\t\t\tthis.target[item.name] = item.value;\n\t\t}\n\t\t\n\t\tif (this.#debounceLimit !== debounceLimit) {\n\t\t\tthis.#debounceLimit = debounceLimit;\n\t\t\tif (typeof this.#debounceLimit == \"number\") {\n\t\t\t\tconst emitUpdateDebounced = debounce(() => this.emit(\"update\", this.values), this.#debounceLimit);\n\t\t\t\tthis.emitUpdate = () => emitUpdateDebounced();\n\t\t\t} else\n\t\t\t\tthis.emitUpdate = () => this.emit(\"update\", this.values);\n\t\t}\n\t\t\n\t}\n\t\n\tattach(definitions: DS, shouldReload = this.isLoaded, immediately = true) {\n\t\tif (shouldReload)\n\t\t\tthis.isLoaded = false;\n\t\t\n\t\tif (!this.#loadPromise || this.#loadPromise.isFulfilled)\n\t\t\tthis.#loadPromise = new StatefulPromise();\n\t\t\n\t\tif (!this.#unloadPromise || this.#unloadPromise.isFulfilled)\n\t\t\tthis.#unloadPromise = new StatefulPromise();\n\t\t\n\t\treturn Promise.all(definitions.map(definition =>\n\t\t\tnew SubscriptionGroupItem(parseDefinition(definition), this)\n\t\t).map(item => {\n\t\t\t\n\t\t\tif (immediately)\n\t\t\t\titem.subscribe();\n\t\t\t\n\t\t\treturn item.loaded();\n\t\t}));\n\t}\n\t\n\tdetach(names: string[], shouldUpdate = true) {\n\t\t\n\t\tfor (const name of names)\n\t\t\tthis.items[name]?.detach();\n\t\t\n\t\tif (shouldUpdate) {\n\t\t\tthis.#unload();\n\t\t\tthis.#load();\n\t\t}\n\t\t\n\t}\n\t\n\tredefine(definitions: DS) {\n\t\t\n\t\tconst itemsToDetach = new Map(this.items.map(item => [ item.name, item ]));\n\t\tconst definitionsToRedefine = [];\n\t\tconst definitionsToAttach = [] as unknown as DS;\n\t\t\n\t\tfor (let definition of definitions) {\n\t\t\tdefinition = parseDefinition(definition);\n\t\t\tif (itemsToDetach.delete(definition.name))\n\t\t\t\tdefinitionsToRedefine.push(definition);\n\t\t\telse\n\t\t\t\tdefinitionsToAttach.push(definition);\n\t\t}\n\t\t\n\t\tthis.isLoaded = false;\n\t\t\n\t\tthis.detach([ ...itemsToDetach.keys() ], false);\n\t\t\n\t\treturn Promise.all([\n\t\t\t...definitionsToRedefine.map(definition => {\n\t\t\t\tconst item = this.items[definition.name];\n\t\t\t\titem.define(definition);\n\t\t\t\t\n\t\t\t\titem.subscribe();\n\t\t\t\t\n\t\t\t\treturn item.loaded();\n\t\t\t}),\n\t\t\t...definitionsToAttach.length ? [ this.attach(definitionsToAttach, false) ] : []\n\t\t]);\n\t}\n\t\n\tsubscribe() {\n\t\treturn this.items.map(item => item.subscribe());\n\t}\n\t\n\tunsubscribe() {\n\t\treturn this.items.map(item => item.unsubscribe());\n\t}\n\t\n\t#load() {\n\t\t\n\t\tif (!this.isLoaded && this.items.every(item => item.isLoaded)) {\n\t\t\tif (this.target)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\tif (!item.preventBind)\n\t\t\t\t\t\tthis.target[item.name] = item.value;\n\t\t\t\n\t\t\tthis.isLoaded = true;\n\t\t\t\n\t\t\tfor (const item of this.items)\n\t\t\t\tprivates.itemLoad!(item);\n\t\t\t\n\t\t\tthis.emit(\"load\", this.values);\n\t\t\t\n\t\t\tif (this.isInited)\n\t\t\t\tif (this.items.length)\n\t\t\t\t\tfor (const item of this.items)\n\t\t\t\t\t\titem.emitUpdate();\n\t\t\t\telse\n\t\t\t\t\tthis.emitUpdate();\n\t\t\t\n\t\t\t\n\t\t\tthis.#loadPromise.resolve(this);\n\t\t\t\n\t\t\tif (this.#unloadPromise.isFulfilled)\n\t\t\t\tthis.#unloadPromise = new StatefulPromise();\n\t\t}\n\t\t\n\t}\n\t\n\t#init() {\n\t\t\n\t\tif (!this.isInited && this.items.every(item => item.isInited)) {\n\t\t\tthis.isInited = true;\n\t\t\t\n\t\t\tif (this.isLoaded)\n\t\t\t\tif (this.items.length)\n\t\t\t\t\tfor (const item of this.items)\n\t\t\t\t\t\titem.emitUpdate();\n\t\t\t\telse\n\t\t\t\t\tthis.emitUpdate();\n\t\t\t\n\t\t\t\n\t\t\tfor (const item of this.items)\n\t\t\t\tprivates.itemInit!(item);\n\t\t\t\n\t\t\tthis.emit(\"init\", this.values);\n\t\t\t\n\t\t\tthis.#initPromise.resolve(this);\n\t\t}\n\t\t\n\t}\n\t\n\t#unload() {\n\t\t\n\t\tif (this.isLoaded && this.items.every(item => !item.isLoaded)) {\n\t\t\tif (this.target)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\tif (!item.preventBind)\n\t\t\t\t\t\tdelete this.target[item.name];\n\t\t\t\n\t\t\tthis.isLoaded = false;\n\t\t\t\n\t\t\tfor (const item of this.items)\n\t\t\t\tprivates.itemUnload!(item);\n\t\t\t\n\t\t\tthis.emit(\"unload\", this.values);\n\t\t\t\n\t\t\tif (this.items.length)\n\t\t\t\tfor (const item of this.items)\n\t\t\t\t\titem.emitUpdate();\n\t\t\telse\n\t\t\t\tthis.emitUpdate();\n\t\t\t\n\t\t\tthis.#unloadPromise.resolve(this);\n\t\t\t\n\t\t\tif (this.#loadPromise.isFulfilled)\n\t\t\t\tthis.#loadPromise = new StatefulPromise();\n\t\t}\n\t\t\n\t}\n\t\n\tloaded() {\n\t\treturn this.#loadPromise;\n\t}\n\t\n\tinited() {\n\t\treturn this.#initPromise;\n\t}\n\t\n\tunloaded() {\n\t\treturn this.#unloadPromise;\n\t}\n\t\n\tvalueOf() {\n\t\treturn this.values;\n\t}\n\t\n\t[Symbol.iterator]() {\n\t\treturn this.values[Symbol.iterator]();\n\t}\n\t\n\t\n\tstatic debounceLimit = 8;\n\t\n\tstatic {\n\t\t\n\t\tprivates.groupLoad = (group: SubscriptionGroup) => group.#load();\n\t\tprivates.groupInit = (group: SubscriptionGroup) => group.#init();\n\t\tprivates.groupUnload = (group: SubscriptionGroup) => group.#unload();\n\t\t\n\t}\n\t\n}\n\nexport { Options as SubscriptionGroupOptions, Target as SubscriptionGroupTarget };\n", "import type { SubscriptionGroup } from \"./SubscriptionGroup\";\nimport type { SubscriptionGroupItem } from \"./SubscriptionGroupItem\";\nimport type { SubscriptionType } from \"./types\";\n\n\nexport const privates: {\n\tgroupLoad?: (group: SubscriptionGroup) => void;\n\tgroupInit?: (group: SubscriptionGroup) => void;\n\tgroupUnload?: (group: SubscriptionGroup) => void;\n\titemLoad?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;\n\titemInit?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;\n\titemUnload?: <T extends SubscriptionType>(item: SubscriptionGroupItem<T>) => void;\n} = {};\n", "import EventEmitter from \"eventemitter3\";\nimport { debounce, removeOne, StatefulPromise } from \"@nesvet/n\";\nimport {\n\ttype Updated as SubscriptionArrayUpdated,\n\ttype UpdateHandler as SubscriptionArrayUpdateHandler,\n\ttype Updates as SubscriptionArrayUpdates,\n\tSubscriptionArrayWithSubscription\n} from \"../SubscriptionArray\";\nimport {\n\ttype Updated as SubscriptionMapUpdated,\n\ttype UpdateHandler as SubscriptionMapUpdateHandler,\n\ttype Updates as SubscriptionMapUpdates,\n\tSubscriptionMapWithSubscription\n} from \"../SubscriptionMap\";\nimport {\n\ttype Updated as SubscriptionObjectUpdated,\n\ttype UpdateHandler as SubscriptionObjectUpdateHandler,\n\ttype Updates as SubscriptionObjectUpdates,\n\tSubscriptionObjectWithSubscription\n} from \"../SubscriptionObject\";\nimport {\n\tgetAsInitialUpdatedSymbol,\n\tgetAsUpdatesSymbol,\n\tgetHandleUpdateSymbol,\n\trenewSymbol,\n\tsetHandleUpdateSymbol,\n\tsubscribeSymbol,\n\tunsubscribeSymbol\n} from \"../symbols\";\nimport { privates } from \"./common\";\nimport type { SubscriptionGroup } from \"./SubscriptionGroup\";\nimport type {\n\tDefinition,\n\tSubscriptionHandle,\n\tSubscriptionOnBeforeInit,\n\tSubscriptionType,\n\tSubscriptionUpdated,\n\tSubscriptionUpdates,\n\tSubscriptionValue\n} from \"./types\";\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\ntype HandleSubscription<T> = (_: any, updated: SubscriptionUpdated<T>, updates: SubscriptionUpdates<T>) => void;\n\nfunction isUpdatedMapOrArray(updated: SubscriptionUpdated<SubscriptionType>): updated is SubscriptionArrayUpdated | SubscriptionMapUpdated {\n\treturn Array.isArray(updated);\n}\n\n\nexport class SubscriptionGroupItem<T extends SubscriptionType = SubscriptionType, D extends Definition<T> = Definition<T>> extends EventEmitter {\n\tconstructor(definition: D, group: SubscriptionGroup) {\n\t\tsuper();\n\t\t\n\t\tthis.name = definition.name;\n\t\t\n\t\tthis.define(definition, group);\n\t\t\n\t}\n\t\n\tname;\n\tgroup?: SubscriptionGroup;\n\tvalue?: SubscriptionValue<T>;\n\ttype!: \"object\" | T;\n\tpublicationName!: Definition<T>[\"publicationName\"];\n\tparams!: Definition<T>[\"params\"];\n\thandle!: Definition<T>[\"handle\"];\n\tonBeforeInit!: Definition<T>[\"onBeforeInit\"];\n\tpreventBind!: Definition<T>[\"preventBind\"];\n\t\n\temitUpdate!: (updated?: SubscriptionUpdated<T>) => void;\n\t\n\tisLoaded = false;\n\tisInited = false;\n\t\n\t#loadPromise!: StatefulPromise<SubscriptionGroupItem<T, D>>;\n\t#initPromise!: StatefulPromise<SubscriptionGroupItem<T, D>>;\n\t#unloadPromise!: StatefulPromise<SubscriptionGroupItem<T, D>>;\n\t\n\tdefine(definition: Definition<T>, group: SubscriptionGroup | undefined = this.group) {\n\t\tif (!group)\n\t\t\tthrow new Error(\"group is undefined\");\n\t\t\n\t\tconst {\n\t\t\tvalue,\n\t\t\ttype = \"object\",\n\t\t\tpublicationName,\n\t\t\tparams,\n\t\t\thandle,\n\t\t\tonBeforeInit,\n\t\t\tdebounce: debounceLimit = SubscriptionGroupItem.debounceLimit,\n\t\t\tpreventBind\n\t\t} = definition;\n\t\t\n\t\tif (this.group) {\n\t\t\tif (\n\t\t\t\t(!value || this.value === value) &&\n\t\t\t\tthis.type === type &&\n\t\t\t\tthis.publicationName === publicationName &&\n\t\t\t\tJSON.stringify(this.params) === JSON.stringify(params) &&\n\t\t\t\tthis.handle === handle &&\n\t\t\t\tthis.onBeforeInit === onBeforeInit\n\t\t\t)\n\t\t\t\treturn this.#applyOptions({ debounceLimit, preventBind });\n\t\t\t\n\t\t\tthis.detach();\n\t\t\tdelete this.value;\n\t\t\tdelete this.publicationName;\n\t\t\tdelete this.params;\n\t\t}\n\t\t\n\t\tthis.type = type;\n\t\tthis.handle = handle;\n\t\tthis.onBeforeInit = onBeforeInit;\n\t\tif (value)\n\t\t\tthis.value = value;\n\t\telse {\n\t\t\tthis.publicationName = publicationName ?? this.name;\n\t\t\tthis.params = params ?? [];\n\t\t}\n\t\t\n\t\tthis.#applyOptions({ debounceLimit, preventBind });\n\t\t\n\t\tthis.#attachTo(group);\n\t\t\n\t\treturn null;\n\t}\n\t\n\t#applyOptions({ debounceLimit, preventBind }: { debounceLimit?: number; preventBind?: boolean }) {\n\t\t\n\t\tconst emitUpdate: typeof this.emitUpdate = updated => {\n\t\t\tthis.emit(\"update\", this.value, updated);\n\t\t\tthis.group?.emit(`update.${this.name}`, this.value, updated);\n\t\t\tthis.group?.emitUpdate();\n\t\t\t\n\t\t};\n\t\t\n\t\tif (typeof debounceLimit == \"number\") {\n\t\t\tlet debouncedUpdated: SubscriptionUpdated<T> | undefined;\n\t\t\tlet group: SubscriptionGroup;\n\t\t\t\n\t\t\tconst emitUpdateDebounced = debounce(() => {\n\t\t\t\t\n\t\t\t\tconst isDetached = !this.group;\n\t\t\t\t\n\t\t\t\tif (isDetached)\n\t\t\t\t\tthis.group = group;\n\t\t\t\t\n\t\t\t\temitUpdate(debouncedUpdated!);\n\t\t\t\t\n\t\t\t\tif (isDetached)\n\t\t\t\t\tdelete this.group;\n\t\t\t\t\n\t\t\t\tdebouncedUpdated = undefined;\n\t\t\t\t\n\t\t\t}, debounceLimit);\n\t\t\t\n\t\t\tthis.emitUpdate = updated => {\n\t\t\t\tif (updated !== undefined)\n\t\t\t\t\tif (isUpdatedMapOrArray(updated))\n\t\t\t\t\t\tif (isUpdatedMapOrArray(debouncedUpdated!))\n\t\t\t\t\t\t\tfor (const item of updated)\n\t\t\t\t\t\t\t\tdebouncedUpdated.push(item as any);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tdebouncedUpdated = Object.assign([ ...updated ], {\n\t\t\t\t\t\t\t\tadded: [ ...updated.added ],\n\t\t\t\t\t\t\t\tdeleted: [ ...updated.deleted ]\n\t\t\t\t\t\t\t}) as SubscriptionUpdated<T>;\n\t\t\t\t\telse if (typeof updated == \"object\")\n\t\t\t\t\t\tif (debouncedUpdated)\n\t\t\t\t\t\t\tObject.assign(debouncedUpdated, updated);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tdebouncedUpdated = { ...updated };\n\t\t\t\t\telse\n\t\t\t\t\t\tdebouncedUpdated = updated;\n\t\t\t\t\n\t\t\t\tgroup = this.group!;\n\t\t\t\t\n\t\t\t\treturn emitUpdateDebounced();\n\t\t\t};\n\t\t} else\n\t\t\tthis.emitUpdate = emitUpdate;\n\t\t\n\t\tif (this.preventBind === undefined)\n\t\t\tdelete this.preventBind;\n\t\telse\n\t\t\tthis.preventBind = preventBind;\n\t\t\n\t}\n\t\n\t#attachTo(group: SubscriptionGroup) {\n\t\tif (!this.group) {\n\t\t\tthis.group = group;\n\t\t\t\n\t\t\tthis.group.items.push(this);\n\t\t\tthis.group.items[this.name] = this;\n\t\t\t\n\t\t\tif (!this.#loadPromise || this.#loadPromise.isFulfilled)\n\t\t\t\tthis.#loadPromise = new StatefulPromise();\n\t\t\t\n\t\t\tif (!this.#initPromise || this.#initPromise.isFulfilled)\n\t\t\t\tthis.#initPromise = new StatefulPromise();\n\t\t\t\n\t\t\tif (!this.#unloadPromise || this.#unloadPromise.isFulfilled)\n\t\t\t\tthis.#unloadPromise = new StatefulPromise();\n\t\t\t\n\t\t\tswitch (this.type) {\n\t\t\t\tcase \"array\": {\n\t\t\t\t\tconst handleSubscription = this.#handleSubscription as HandleSubscription<\"array\">;\n\t\t\t\t\tif (this.value)\n\t\t\t\t\t\t(this.value as SubscriptionArrayWithSubscription)[setHandleUpdateSymbol](handleSubscription);\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.value = new SubscriptionArrayWithSubscription(this.publicationName!, this.params!, handleSubscription, false) as SubscriptionValue<T>;\n\t\t\t\t\tbreak;\n\t\t\t\t} case \"map\": {\n\t\t\t\t\tconst handleSubscription = this.#handleSubscription as HandleSubscription<\"map\">;\n\t\t\t\t\tif (this.value)\n\t\t\t\t\t\t(this.value as SubscriptionMapWithSubscription)[setHandleUpdateSymbol](handleSubscription);\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.value = new SubscriptionMapWithSubscription(this.publicationName!, this.params!, handleSubscription, false) as SubscriptionValue<T>;\n\t\t\t\t\tbreak;\n\t\t\t\t} default: {\n\t\t\t\t\tconst handleSubscription = this.#handleSubscription as HandleSubscription<\"object\">;\n\t\t\t\t\tif (this.value)\n\t\t\t\t\t\t(this.value as SubscriptionObjectWithSubscription)[setHandleUpdateSymbol](handleSubscription);\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.value = new SubscriptionObjectWithSubscription(this.publicationName!, this.params!, handleSubscription, false) as SubscriptionValue<T>;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.group.values.push(this.value);\n\t\t\tthis.group.values[this.name] = this.value;\n\t\t\t\n\t\t\tif (this.onBeforeInit)\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase \"array\":\n\t\t\t\t\t\t(this.onBeforeInit as SubscriptionOnBeforeInit<\"array\">).call(this.group, this.value as SubscriptionArrayWithSubscription);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"map\":\n\t\t\t\t\t\t(this.onBeforeInit as SubscriptionOnBeforeInit<\"map\">).call(this.group, this.value as SubscriptionMapWithSubscription);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t(this.onBeforeInit as SubscriptionOnBeforeInit<\"object\">).call(this.group, this.value as SubscriptionObjectWithSubscription);\n\t\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\tdetach() {\n\t\t\n\t\tif (this.group) {\n\t\t\tthis.value?.[unsubscribeSymbol]();\n\t\t\t\n\t\t\tthis.isLoaded = false;\n\t\t\tthis.#unload();\n\t\t\t\n\t\t\tdelete this.group.values[this.name];\n\t\t\tremoveOne(this.group.values, this.value);\n\t\t\tdelete this.group.items[this.name];\n\t\t\tremoveOne(this.group.items, this);\n\t\t\t\n\t\t\tdelete this.group;\n\t\t}\n\t\t\n\t}\n\t\n\t#loadUpdated: null | SubscriptionUpdated<T> = null;\n\t\n\t#handleSubscription: HandleSubscription<T> = (_, updated, updates) => {\n\t\tif (updates)\n\t\t\tif (this.group!.isLoaded) {\n\t\t\t\tif (this.handle)\n\t\t\t\t\tswitch (this.type) {\n\t\t\t\t\t\tcase \"array\":\n\t\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"array\">).call(this.group!, updated as SubscriptionArrayUpdated, this.group!);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"map\":\n\t\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"map\">).call(this.group!, updated as SubscriptionMapUpdated, this.group!);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"object\">).call(this.group!, updated as SubscriptionObjectUpdated, this.group!);\n\t\t\t\t\t}\n\t\t\t\tthis.emitUpdate(updated);\n\t\t\t} else {\n\t\t\t\tthis.#loadUpdated = updated;\n\t\t\t\tthis.isLoaded = true;\n\t\t\t\tprivates.groupLoad!(this.group!);\n\t\t\t}\n\t\telse if (this.isLoaded) {\n\t\t\tthis.isLoaded = false;\n\t\t\tprivates.groupUnload!(this.group!);\n\t\t}\n\t\t\n\t\tif (!this.isInited) {\n\t\t\tthis.isInited = true;\n\t\t\tprivates.groupInit!(this.group!);\n\t\t}\n\t\t\n\t};\n\t\n\t#load() {\n\t\t\n\t\tif (this.#loadUpdated) {\n\t\t\tif (this.handle)\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase \"array\":\n\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"array\">).call(this.group!, this.#loadUpdated as SubscriptionArrayUpdated, this.group!);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"map\":\n\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"map\">).call(this.group!, this.#loadUpdated as SubscriptionMapUpdated, this.group!);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t(this.handle as SubscriptionHandle<\"object\">).call(this.group!, this.#loadUpdated as SubscriptionObjectUpdated, this.group!);\n\t\t\t\t}\n\t\t\t\n\t\t\tthis.#loadUpdated = null;\n\t\t\t\n\t\t\tthis.emit(\"load\", this.value);\n\t\t\t\n\t\t\tthis.#loadPromise.resolve(this);\n\t\t\t\n\t\t\tif (this.#unloadPromise.isFulfilled)\n\t\t\t\tthis.#unloadPromise = new StatefulPromise();\n\t\t}\n\t\t\n\t}\n\t\n\t#init() {\n\t\t\n\t\tthis.emit(\"init\", this.value);\n\t\t\n\t\tthis.#initPromise.resolve(this);\n\t\t\n\t}\n\t\n\t#unload() {\n\t\t\n\t\tif (this.handle)\n\t\t\tswitch (this.type) {\n\t\t\t\tcase \"array\":\n\t\t\t\t\t(this.handle as SubscriptionHandle<\"array\">).call(this.group!, null, this.group!);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"map\":\n\t\t\t\t\t(this.handle as SubscriptionHandle<\"map\">).call(this.group!, null, this.group!);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t(this.handle as SubscriptionHandle<\"object\">).call(this.group!, null, this.group!);\n\t\t\t}\n\t\t\n\t\tthis.emit(\"unload\", this.value);\n\t\t\n\t\tthis.#unloadPromise.resolve(this);\n\t\t\n\t\tif (this.#loadPromise.isFulfilled)\n\t\t\tthis.#loadPromise = new StatefulPromise();\n\t\t\n\t}\n\t\n\tloaded() {\n\t\treturn this.#loadPromise;\n\t}\n\t\n\tinited() {\n\t\treturn this.#initPromise;\n\t}\n\t\n\tunloaded() {\n\t\treturn this.#unloadPromise;\n\t}\n\t\n\tsubscribe() {\n\t\t\n\t\tif (this.value)\n\t\t\tif (this.value[subscribeSymbol])\n\t\t\t\treturn this.value[subscribeSymbol]();\n\t\t\telse {\n\t\t\t\tconst handleUpdate = this.value[getHandleUpdateSymbol]();\n\t\t\t\t\n\t\t\t\tif (handleUpdate) {\n\t\t\t\t\tconst initialUpdated = this.value[getAsInitialUpdatedSymbol]();\n\t\t\t\t\tconst updates = this.value[getAsUpdatesSymbol]();\n\t\t\t\t\t\n\t\t\t\t\tswitch (this.type) {\n\t\t\t\t\t\tcase \"array\":\n\t\t\t\t\t\t\treturn (handleUpdate as SubscriptionArrayUpdateHandler)(this.value as SubscriptionArrayWithSubscription, initialUpdated as SubscriptionArrayUpdated, updates as SubscriptionArrayUpdates);\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase \"map\":\n\t\t\t\t\t\t\treturn (handleUpdate as SubscriptionMapUpdateHandler)(this.value as SubscriptionMapWithSubscription, initialUpdated as SubscriptionMapUpdated, updates as SubscriptionMapUpdates);\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (handleUpdate as SubscriptionObjectUpdateHandler)(this.value as SubscriptionObjectWithSubscription, initialUpdated as SubscriptionObjectUpdated, updates as SubscriptionObjectUpdates);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\treturn null;\n\t}\n\t\n\tunsubscribe() {\n\t\treturn this.value?.[unsubscribeSymbol]?.();\n\t}\n\t\n\trenew(publicationName: Definition<T>[\"publicationName\"], params: Definition<T>[\"params\"]) {\n\t\treturn this.value?.[renewSymbol]?.(publicationName, params);\n\t}\n\t\n\tvalueOf() {\n\t\treturn this.value;\n\t}\n\t\n\t\n\tstatic debounceLimit = 4;\n\t\n\tstatic {\n\t\t\n\t\tprivates.itemLoad = <\n\t\t\tDP extends Definition<TP>,\n\t\t\tTP extends SubscriptionType\n\t\t>(item: SubscriptionGroupItem<TP, DP>) => item.#load();\n\t\tprivates.itemInit = <\n\t\t\tDP extends Definition<TP>,\n\t\t\tTP extends SubscriptionType\n\t\t>(item: SubscriptionGroupItem<TP, DP>) => item.#init();\n\t\tprivates.itemUnload = <\n\t\t\tDP extends Definition<TP>,\n\t\t\tTP extends SubscriptionType\n\t\t>(item: SubscriptionGroupItem<TP, DP>) => item.#unload();\n\t\t\n\t}\n\t\n}\n", "import { removeOne } from \"@nesvet/n\";\nimport { Subscription } from \"./Subscription\";\nimport {\n\tclearSymbol,\n\tgetAsInitialUpdatedSymbol,\n\tgetAsUpdatesSymbol,\n\tgetHandleUpdateSymbol,\n\tgetSubscriptionSymbol,\n\trenewSymbol,\n\tsetHandleUpdateSymbol,\n\tsubscribeSymbol,\n\tunsubscribeSymbol,\n\tupdateSymbol\n} from \"./symbols\";\n\n\ntype GenericItem = { _id: string } & Record<string, any>;// eslint-disable-line @typescript-eslint/no-explicit-any\n\ntype Item = GenericItem | SubscriptionMapItem;\n\nexport type Updated<I extends Item = Item> = {\n\tdeleted: string[];\n\tadded: I[];\n} & I[];\n\ntype SortList = Record<string, -1 | 1>;\n\nexport type Updates<I extends Item = Item> =\n\t(\n\t\t[ \"c\"/* create */, item: I ] |\n\t\t[ \"d\"/* delete */, _id: string ] |\n\t\t[ \"i\"/* initial */, items: I[], sortList?: null | SortList ] |\n\t\t[ \"u\"/* update */, itemUpdates: { _id: string } & Partial<I>, isAtomicOrUpdatedFields: string[] | true ] |\n\t\tnull\n\t)[] |\n\tnull;\n\nexport type UpdateHandler<I extends Item = Item> = (map: SubscriptionMap<I>, updated: Updated<I>, updates: Updates<I>) => void;\n\ndeclare global {\n\tvar __insite_subscription_map_sort_function: ((a: Item, b: Item) => -1 | 0 | 1) | undefined;// eslint-disable-line no-var, camelcase\n}\n\nfunction createSortFunction(sortList: SortList) {\n\t\n\tconst tempScript = document.createElement(\"script\");\n\t\n\ttempScript.textContent = `window.__insite_subscription_map_sort_function = function sort(a, b) { return ${\n\t\tObject.entries(sortList)\n\t\t\t.map(([ key, value ]) => value > 0 ? `a.${key} > b.${key} ? 1 : a.${key} < b.${key} ? -1 :` : `a.${key} < b.${key} ? 1 : a.${key} > b.${key} ? -1 :`)\n\t\t\t.concat(\"0\")\n\t\t\t.join(\" \")\n\t};}`;\n\t\n\tdocument.head.append(tempScript);\n\t\n\tconst sortFunction = window.__insite_subscription_map_sort_function!;\n\t\n\ttempScript.remove();\n\tdelete window.__insite_subscription_map_sort_function;\n\t\n\treturn sortFunction;\n}\n\n// function createSortFunction(sortList: SortList) {\n// return new Function(// eslint-disable-line no-new-func\n// \t\t\"a\"/* Item */,\n// \t\t\"b\"/* Item */,\n// \t\t`return ${\n// \t\t\tObject.entries(sortList)\n// \t\t\t\t.map(([ key, value ]) => value > 0 ? `a.${key} > b.${key} ? 1 : a.${key} < b.${key} ? -1 :` : `a.${key} < b.${key} ? 1 : a.${key} > b.${key} ? -1 :`)\n// \t\t\t\t.concat(\"0\")\n// \t\t\t\t.join(\" \")\n// \t\t}`\n// \t) as (a: Item, b: Item) => -1 | 0 | 1;\n// }\n\n\nexport class SubscriptionMap<I extends Item = Item> extends Map<string, I> {\n\tconstructor(updates?: Updates<I>, onUpdate?: UpdateHandler<I>) {\n\t\tsuper();\n\t\t\n\t\tif (onUpdate)\n\t\t\tthis.handleUpdate = onUpdate;\n\t\t\n\t\tif (updates)\n\t\t\tthis.update(updates);\n\t\t\n\t}\n\t\n\thandleUpdate;\n\t\n\t// private updates = new Map<string, { _id: string } & Partial<I>>();\n\tprivate updates = new Map<string, I>();\n\t\n\tsortList: null | SortList = null;\n\t\n\tsortCompareFunction: ((a: I, b: I) => number) | null = null;\n\t\n\tprivate fieldsToSort: string[] = [];\n\t\n\tsorted: I[] = [];\n\t\n\tsort() {\n\t\t\n\t\tif (this.sortCompareFunction)\n\t\t\tthis.sorted.sort(this.sortCompareFunction);\n\t\t\n\t}\n\t\n\t[getHandleUpdateSymbol]() {\n\t\treturn this.handleUpdate;\n\t}\n\t\n\t[setHandleUpdateSymbol](handleUpdate: UpdateHandler<I>) {\n\t\treturn (this.handleUpdate = handleUpdate);\n\t}\n\t\n\tprivate TheItem!: { new (map: SubscriptionMap<I>, updates: GenericItem): I };\n\t\n\tset Item(TheItem: { new (map: SubscriptionMap<I>, updates: GenericItem): I }) {\n\t\tthis.TheItem = TheItem;\n\t\t\n\t\tif (this.size)\n\t\t\tfor (const [ _id, item ] of this)\n\t\t\t\tthis.set(_id, new TheItem(this, item));\n\t\t\n\t}\n\t\n\tget Item() {\n\t\treturn this.TheItem;\n\t}\n\t\n\tupdate(updates: Updates<I>) {\n\t\t\n\t\tconst updated: Updated<I> = Object.assign([], {\n\t\t\tadded: [],\n\t\t\tdeleted: []\n\t\t});\n\t\t\n\t\tif (updates) {\n\t\t\tlet shouldSort = false;\n\t\t\t\n\t\t\tconst TheItem = this.TheItem;// eslint-disable-line prefer-destructuring\n\t\t\tconst prevUpdates = this.updates;\n\t\t\t\n\t\t\tfor (const update of updates)\n\t\t\t\tswitch (update?.[0]) {\n\t\t\t\t\tcase \"i\"/* initial */: {\n\t\t\t\t\t\tconst [ , array, sortList ] = update;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (sortList) {\n\t\t\t\t\t\t\tthis.sortList = sortList;\n\t\t\t\t\t\t\tthis.sortCompareFunction = createSortFunction(sortList);\n\t\t\t\t\t\t\tthis.fieldsToSort = [ ...new Set(Object.keys(sortList).map(key => key.replace(/\\..+/, \"\"))) ];\n\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.sortList = null;\n\t\t\t\t\t\t\tthis.sortCompareFunction = null;\n\t\t\t\t\t\t\tthis.fieldsToSort = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (this.size) {\n\t\t\t\t\t\t\tconst updatesMap = new Map<string, I>();\n\t\t\t\t\t\t\tfor (const itemUpdates of array)\n\t\t\t\t\t\t\t\tupdatesMap.set(itemUpdates._id, itemUpdates);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfor (const [ _id, item ] of this) {\n\t\t\t\t\t\t\t\tconst itemUpdates = updatesMap.get(_id);\n\t\t\t\t\t\t\t\tif (itemUpdates) {\n\t\t\t\t\t\t\t\t\tconst prevItemUpdates = prevUpdates.get(_id);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (TheItem)\n\t\t\t\t\t\t\t\t\t\titem.update(itemUpdates);\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tfor (const key in prevItemUpdates)// eslint-disable-line guard-for-in\n\t\t\t\t\t\t\t\t\t\t\tdelete item[key as keyof typeof item];\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tObject.assign(item, itemUpdates);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tprevUpdates.set(_id, itemUpdates);\n\t\t\t\t\t\t\t\t\tupdated.push(item);\n\t\t\t\t\t\t\t\t\tupdatesMap.delete(_id);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (TheItem)\n\t\t\t\t\t\t\t\t\t\titem.delete();\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tthis.delete(_id);\n\t\t\t\t\t\t\t\t\tprevUpdates.delete(_id);\n\t\t\t\t\t\t\t\t\tupdated.deleted.push(_id);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfor (const [ _id, itemUpdates ] of updatesMap) {\n\t\t\t\t\t\t\t\tconst item = TheItem ? new TheItem(this, itemUpdates) : { ...itemUpdates };\n\t\t\t\t\t\t\t\tthis.set(_id, item);\n\t\t\t\t\t\t\t\tprevUpdates.set(_id, itemUpdates);\n\t\t\t\t\t\t\t\tupdated.push(item);\n\t\t\t\t\t\t\t\tupdated.added.push(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (this.sortList)\n\t\t\t\t\t\t\t\tthis.sorted = array.map(newItem => this.get(newItem._id)!);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\tfor (const itemUpdates of array) {\n\t\t\t\t\t\t\t\tconst item = (TheItem ? new TheItem(this, itemUpdates) : { ...itemUpdates }) as I;\n\t\t\t\t\t\t\t\tthis.set(item._id, item);\n\t\t\t\t\t\t\t\tthis.sorted.push(item);\n\t\t\t\t\t\t\t\tprevUpdates.set(item._id, itemUpdates);\n\t\t\t\t\t\t\t\tupdated.push(item);\n\t\t\t\t\t\t\t\tupdated.added.push(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase \"c\"/* create */:\n\t\t\t\t\tcase \"u\"/* update */: {\n\t\t\t\t\t\tlet [ , itemUpdates ] = update;\n\t\t\t\t\t\tlet item = this.get(itemUpdates._id);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (item) {\n\t\t\t\t\t\t\tconst isAtomic = update[2] === true;\n\t\t\t\t\t\t\tconst updatedFields = isAtomic ? Object.keys(itemUpdates) : update[2] as string[];\n\t\t\t\t\t\t\tconst prevItemUpdates = prevUpdates.get(item._id)!;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (TheItem)\n\t\t\t\t\t\t\t\titem.update(itemUpdates);\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (!isAtomic)\n\t\t\t\t\t\t\t\t\tfor (const key in prevItemUpdates)// eslint-disable-line guard-for-in\n\t\t\t\t\t\t\t\t\t\tdelete item[key as keyof typeof item];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tObject.assign(item, itemUpdates);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (isAtomic)\n\t\t\t\t\t\t\t\titemUpdates = Object.assign(prevItemUpdates, itemUpdates);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (this.sortList && !shouldSort && (!updatedFields || updatedFields.some(fieldName => this.fieldsToSort.includes(fieldName))))\n\t\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\titem = (TheItem ? new TheItem(this, itemUpdates) : { ...itemUpdates }) as I;\n\t\t\t\t\t\t\tthis.set(item._id, item);\n\t\t\t\t\t\t\tthis.sorted.push(item);\n\t\t\t\t\t\t\tif (this.sortList)\n\t\t\t\t\t\t\t\tshouldSort = true;\n\t\t\t\t\t\t\tupdated.added.push(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tprevUpdates.set(item._id, itemUpdates as I);\n\t\t\t\t\t\tupdated.push(item);\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase \"d\"/* delete */: {\n\t\t\t\t\t\tconst [ , _id ] = update;\n\t\t\t\t\t\tconst itemToDelete = this.get(_id);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (itemToDelete) {\n\t\t\t\t\t\t\tif (TheItem)\n\t\t\t\t\t\t\t\titemToDelete.delete();\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tthis.delete(_id);\n\t\t\t\t\t\t\tprevUpdates.delete(_id);\n\t\t\t\t\t\t\tremoveOne(this.sorted, itemToDelete);\n\t\t\t\t\t\t\tupdated.deleted.push(_id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.clear();\n\t\t\t\t}\n\t\t\t\n\t\t\tif (shouldSort)\n\t\t\t\tthis.sort();\n\t\t\t\n\t\t} else\n\t\t\tthis.clear();\n\t\t\n\t\tthis.handleUpdate?.(this, updated, updates?.[0] ? updates : null);\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[updateSymbol] = this.update;\n\t\n\tgetAsUpdates(): Updates<I> {\n\t\treturn (\n\t\t\t(this.size || this.sortList) ?\n\t\t\t\t[ [ \"i\"/* initial */, [ ...this.updates.values() ], this.sortList ] ] :\n\t\t\t\tnull\n\t\t);\n\t}\n\t\n\t[getAsUpdatesSymbol] = this.getAsUpdates;\n\t\n\tgetAsInitialUpdated(): Updated<I> {\n\t\treturn Object.assign([ ...this.sorted ], {\n\t\t\tadded: [ ...this.sorted ],\n\t\t\tdeleted: []\n\t\t});\n\t}\n\t\n\t[getAsInitialUpdatedSymbol] = this.getAsInitialUpdated;\n\t\n\tclear() {\n\t\t\n\t\tsuper.clear();\n\t\tthis.updates.clear();\n\t\tthis.sorted = [];\n\t\tthis.sortList = null;\n\t\tthis.sortCompareFunction = null;\n\t\tthis.fieldsToSort = [];\n\t\t\n\t}\n\t\n\t[clearSymbol] = this.clear;\n\t\n\tvalueOf() {\n\t\treturn this.sorted;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionMap\";\n\t}\n\t\n\t\n\tstatic updateSymbol = updateSymbol;\n\tstatic getHandleUpdateSymbol = getHandleUpdateSymbol;\n\tstatic setHandleUpdateSymbol = setHandleUpdateSymbol;\n\tstatic getAsUpdatesSymbol = getAsUpdatesSymbol;\n\tstatic getAsInitialUpdatedSymbol = getAsInitialUpdatedSymbol;\n\tstatic clearSymbol = clearSymbol;\n\tstatic WithSubscription: typeof SubscriptionMapWithSubscription;\n\tstatic Item: typeof SubscriptionMapItem;\n\t\n}\n\n\nexport class SubscriptionMapWithSubscription<I extends Item = Item> extends SubscriptionMap<I> {\n\tconstructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler<I>, immediately = true) {\n\t\tsuper(null, onUpdate);\n\t\t\n\t\tthis.publicationName = publicationName;\n\t\tthis.params = params;\n\t\t\n\t\tif (immediately)\n\t\t\tthis.subscribe();\n\t\t\n\t}\n\t\n\tpublicationName;\n\tparams;\n\t\n\tsubscription: null | Subscription = null;\n\t\n\tsubscribe() {\n\t\t\n\t\tif (!this.subscription)\n\t\t\tthis.subscription = new Subscription(\"map\", this.publicationName, this.params, updates => this.update(updates as Updates<I>));\n\t\t\n\t}\n\t\n\tget [subscribeSymbol]() {\n\t\treturn this.subscribe;\n\t}\n\t\n\tunsubscribe() {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.cancel();\n\t\t\tthis.subscription = null;\n\t\t}\n\t\t\n\t}\n\t\n\tget [unsubscribeSymbol]() {\n\t\treturn this.unsubscribe;\n\t}\n\t\n\trenew(publicationName?: string, params?: unknown[]) {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.unsubscribe();\n\t\t\t\n\t\t\tif (publicationName)\n\t\t\t\tif (Array.isArray(publicationName))\n\t\t\t\t\tparams = publicationName;\n\t\t\t\telse\n\t\t\t\t\tthis.publicationName = publicationName;\n\t\t\t\n\t\t\tif (params)\n\t\t\t\tthis.params = params;\n\t\t\t\n\t\t\tthis.subscribe();\n\t\t}\n\t\t\n\t}\n\t\n\tget [renewSymbol]() {\n\t\treturn this.renew;\n\t}\n\t\n\t[getSubscriptionSymbol]() {\n\t\treturn this.subscription;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionMapWithSubscription\";\n\t}\n\t\n\t\n\tstatic subscribeSymbol = subscribeSymbol;\n\tstatic unsubscribeSymbol = unsubscribeSymbol;\n\tstatic renewSymbol = renewSymbol;\n\tstatic getSubscriptionSymbol = getSubscriptionSymbol;\n\t\n}\n\nSubscriptionMap.WithSubscription = SubscriptionMapWithSubscription;\n\n\nexport class SubscriptionMapItem {\n\tconstructor(map: SubscriptionMap, updates: GenericItem) {\n\t\tthis.map = map;\n\t\t\n\t\tthis.update(updates);\n\t\t\n\t}\n\t\n\t_id!: string;\n\t\n\tprivate map;\n\t\n\tupdate(updates: GenericItem) {\n\t\tObject.assign(this, updates);\n\t\t\n\t}\n\t\n\tdelete() {\n\t\t\n\t\tthis.map.delete(this._id);\n\t\t\n\t}\n\t\n}\n\nSubscriptionMap.Item = SubscriptionMapItem;\n", "import { Subscription } from \"./Subscription\";\nimport {\n\tclearSymbol,\n\tgetAsInitialUpdatedSymbol,\n\tgetAsUpdatesSymbol,\n\tgetHandleUpdateSymbol,\n\tgetSubscriptionSymbol,\n\trenewSymbol,\n\tsetHandleUpdateSymbol,\n\tsubscribeSymbol,\n\tunsubscribeSymbol,\n\tupdateSymbol\n} from \"./symbols\";\n\n\nconst handleUpdateSymbol = Symbol(\"handleUpdate\");\nconst updatesSymbol = Symbol(\"updates\");\n\nexport type Updated = Record<string, unknown>;\nexport type Updates = null | Record<string, unknown>;\nexport type UpdateHandler = (object: SubscriptionObject, updated: Updated, updates: Updates) => void;\n\n\nexport class SubscriptionObject {\n\tconstructor(updates?: Updates, onUpdate?: UpdateHandler) {\n\t\tif (onUpdate)\n\t\t\tthis[handleUpdateSymbol] = onUpdate;\n\t\t\n\t\tif (updates)\n\t\t\tthis[updateSymbol](updates);\n\t\t\n\t}\n\t\n\t[handleUpdateSymbol]?: UpdateHandler;\n\t\n\t[updatesSymbol]: Updates = null;\n\t\n\t[getHandleUpdateSymbol]() {\n\t\treturn this[handleUpdateSymbol];\n\t}\n\t\n\t[setHandleUpdateSymbol](handleUpdate: UpdateHandler) {\n\t\treturn (this[handleUpdateSymbol] = handleUpdate);\n\t}\n\t\n\t[updateSymbol](updates: Updates) {\n\t\tif (updates) {\n\t\t\tfor (const key in this[updatesSymbol])// eslint-disable-line guard-for-in\n\t\t\t\tdelete this[key];\n\t\t\tfor (const key in updates)// eslint-disable-line guard-for-in\n\t\t\t\tthis[key] = updates[key];\n\t\t\tthis[updatesSymbol] = updates;\n\t\t} else\n\t\t\tthis[clearSymbol]();\n\t\t\n\t\tthis[handleUpdateSymbol]?.(this, this, this[updatesSymbol]);\n\t\t\n\t\treturn this;\n\t}\n\t\n\t[getAsUpdatesSymbol](): Updates {\n\t\treturn this[updatesSymbol] && { ...this[updatesSymbol] };\n\t}\n\t\n\t[getAsInitialUpdatedSymbol](): Updated {\n\t\treturn this.valueOf()!;\n\t}\n\t\n\t[clearSymbol]() {\n\t\t\n\t\tfor (const key in this)// eslint-disable-line guard-for-in\n\t\t\tdelete this[key];\n\t\tthis[updatesSymbol] = null;\n\t\t\n\t}\n\t\n\tvalueOf() {\n\t\treturn this[updatesSymbol] && this;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionObject\";\n\t}\n\t\n\t[key: string]: unknown;\n\t\n\t\n\tstatic updateSymbol = updateSymbol;\n\tstatic getHandleUpdateSymbol = getHandleUpdateSymbol;\n\tstatic setHandleUpdateSymbol = setHandleUpdateSymbol;\n\tstatic getAsUpdatesSymbol = getAsUpdatesSymbol;\n\tstatic getAsInitialUpdatedSymbol = getAsInitialUpdatedSymbol;\n\tstatic clearSymbol = clearSymbol;\n\tstatic WithSubscription: typeof SubscriptionObjectWithSubscription;\n\t\n}\n\n\nexport class SubscriptionObjectWithSubscription extends SubscriptionObject {\n\tconstructor(publicationName: string, params: unknown[], onUpdate: UpdateHandler, immediately = true) {\n\t\tsuper(null, onUpdate);\n\t\t\n\t\tthis.publicationName = publicationName;\n\t\tthis.params = params;\n\t\t\n\t\tif (immediately)\n\t\t\tthis[subscribeSymbol]();\n\t\t\n\t}\n\t\n\tprivate publicationName;\n\tprivate params;\n\tprivate subscription: null | Subscription = null;\n\t\n\t[subscribeSymbol]() {\n\t\t\n\t\tif (!this.subscription)\n\t\t\tthis.subscription = new Subscription(\"object\", this.publicationName, this.params, updates => this[updateSymbol](updates as Updates));\n\t\t\n\t}\n\t\n\t[unsubscribeSymbol]() {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.cancel();\n\t\t\tthis.subscription = null;\n\t\t}\n\t\t\n\t}\n\t\n\t[renewSymbol](publicationName?: string, params?: unknown[]) {\n\t\t\n\t\tif (this.subscription) {\n\t\t\tthis[unsubscribeSymbol]();\n\t\t\t\n\t\t\tif (publicationName)\n\t\t\t\tif (Array.isArray(publicationName))\n\t\t\t\t\tparams = publicationName;\n\t\t\t\telse\n\t\t\t\t\tthis.publicationName = publicationName;\n\t\t\t\n\t\t\tif (params)\n\t\t\t\tthis.params = params;\n\t\t\t\n\t\t\tthis[subscribeSymbol]();\n\t\t}\n\t\t\n\t}\n\t\n\t[getSubscriptionSymbol]() {\n\t\treturn this.subscription;\n\t}\n\t\n\tget [Symbol.toStringTag]() {\n\t\treturn \"SubscriptionObjectWithSubscription\";\n\t}\n\t\n\t\n\tstatic subscribeSymbol = subscribeSymbol;\n\tstatic unsubscribeSymbol = unsubscribeSymbol;\n\tstatic renewSymbol = renewSymbol;\n\tstatic getSubscriptionSymbol = getSubscriptionSymbol;\n\t\n}\n\nSubscriptionObject.WithSubscription = SubscriptionObjectWithSubscription;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["i", "subscriptions", "ws", "Subscription", "type", "publicationName", "args", "handler", "immediately", "__publicField", "_ws", "si", "updates", "subscription", "removeOne", "updateSymbol", "getHandleUpdateSymbol", "setHandleUpdateSymbol", "getAsUpdatesSymbol", "getAsInitialUpdatedSymbol", "clearSymbol", "subscribeSymbol", "unsubscribeSymbol", "renewSymbol", "getSubscriptionSymbol", "getHandleSubscriptionSymbol", "setHandleSubscriptionSymbol", "ascSort", "a", "b", "descSort", "_a", "_b", "_c", "_d", "SubscriptionArray", "updates", "onUpdate", "__publicField", "getHandleUpdateSymbol", "setHandleUpdateSymbol", "handleUpdate", "updated", "shouldSort", "update", "array", "sort", "newItem", "itemToDelete", "removeOne", "updateSymbol", "getAsUpdatesSymbol", "getAsInitialUpdatedSymbol", "clearSymbol", "SubscriptionArrayWithSubscription", "publicationName", "params", "immediately", "Subscription", "subscribeSymbol", "unsubscribeSymbol", "renewSymbol", "getSubscriptionSymbol", "EventEmitter", "debounce", "StatefulPromise", "privates", "EventEmitter", "debounce", "removeOne", "StatefulPromise", "removeOne", "createSortFunction", "sortList", "tempScript", "key", "value", "sortFunction", "_a", "_b", "_c", "_d", "SubscriptionMap", "updates", "onUpdate", "__publicField", "getHandleUpdateSymbol", "setHandleUpdateSymbol", "handleUpdate", "TheItem", "_id", "item", "updated", "shouldSort", "prevUpdates", "update", "array", "updatesMap", "itemUpdates", "prevItemUpdates", "newItem", "isAtomic", "updatedFields", "fieldName", "itemToDelete", "removeOne", "updateSymbol", "getAsUpdatesSymbol", "getAsInitialUpdatedSymbol", "clearSymbol", "SubscriptionMapWithSubscription", "publicationName", "params", "immediately", "Subscription", "subscribeSymbol", "unsubscribeSymbol", "renewSymbol", "getSubscriptionSymbol", "SubscriptionMapItem", "map", "handleUpdateSymbol", "updatesSymbol", "_a", "_b", "SubscriptionObject", "updates", "onUpdate", "__publicField", "updateSymbol", "getHandleUpdateSymbol", "setHandleUpdateSymbol", "handleUpdate", "key", "clearSymbol", "getAsUpdatesSymbol", "getAsInitialUpdatedSymbol", "SubscriptionObjectWithSubscription", "publicationName", "params", "immediately", "subscribeSymbol", "Subscription", "unsubscribeSymbol", "renewSymbol", "getSubscriptionSymbol", "isUpdatedMapOrArray", "updated", "_loadPromise", "_initPromise", "_unloadPromise", "_SubscriptionGroupItem_instances", "applyOptions_fn", "attachTo_fn", "_loadUpdated", "_handleSubscription", "load_fn", "init_fn", "unload_fn", "_SubscriptionGroupItem", "EventEmitter", "definition", "group", "__privateAdd", "__publicField", "_", "updates", "__privateSet", "privates", "value", "type", "publicationName", "params", "handle", "onBeforeInit", "debounceLimit", "preventBind", "__privateMethod", "unsubscribeSymbol", "removeOne", "__privateGet", "subscribeSymbol", "handleUpdate", "getHandleUpdateSymbol", "initialUpdated", "getAsInitialUpdatedSymbol", "getAsUpdatesSymbol", "renewSymbol", "emitUpdate", "debouncedUpdated", "emitUpdateDebounced", "debounce", "isDetached", "item", "StatefulPromise", "handleSubscription", "setHandleUpdateSymbol", "SubscriptionArrayWithSubscription", "SubscriptionMapWithSubscription", "SubscriptionObjectWithSubscription", "_a", "SubscriptionGroupItem", "isTupleDefinition", "definition", "parseDefinition", "args", "parsed", "_loadPromise", "_initPromise", "_unloadPromise", "_debounceLimit", "_SubscriptionGroup_instances", "load_fn", "init_fn", "unload_fn", "_SubscriptionGroup", "EventEmitter", "definitions", "target", "debounceLimit", "immediately", "__privateAdd", "__publicField", "__privateSet", "StatefulPromise", "item", "__privateGet", "emitUpdateDebounced", "debounce", "shouldReload", "SubscriptionGroupItem", "names", "shouldUpdate", "name", "__privateMethod", "itemsToDetach", "definitionsToRedefine", "definitionsToAttach", "privates", "group", "_a", "SubscriptionGroup"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "insite-subscriptions-client",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"description": "inSite subscriptions client side",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
8
|
-
"packageManager": "bun@1.1.
|
|
8
|
+
"packageManager": "bun@1.1.33",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
11
11
|
"build": "bun .conveyer.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"insite-ws": "^2.0.17"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@nesvet/conveyer": "^2.2.
|
|
33
|
-
"@nesvet/eslint-config": "^2.0.
|
|
34
|
-
"typescript": "^5.
|
|
32
|
+
"@nesvet/conveyer": "^2.2.5",
|
|
33
|
+
"@nesvet/eslint-config": "^2.0.34",
|
|
34
|
+
"typescript": "^5.6.3"
|
|
35
35
|
}
|
|
36
36
|
}
|