informa 3.0.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/internals.d.ts +4 -4
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +23 -7
- package/dist/internals.js.map +1 -1
- package/dist/low.d.ts.map +1 -1
- package/dist/low.js +3 -3
- package/dist/low.js.map +1 -1
- package/dist/quirks/basestatified.d.ts.map +1 -1
- package/dist/quirks/basestatified.js +15 -3
- package/dist/quirks/basestatified.js.map +1 -1
- package/dist/quirks/map.d.ts.map +1 -1
- package/dist/quirks/map.js +1 -1
- package/dist/quirks/map.js.map +1 -1
- package/dist/quirks/set.d.ts.map +1 -1
- package/dist/quirks/set.js +1 -1
- package/dist/quirks/set.js.map +1 -1
- package/package.json +1 -1
- package/src/internals.ts +23 -6
- package/src/low.ts +4 -4
- package/src/quirks/basestatified.ts +17 -4
- package/src/quirks/map.ts +2 -2
- package/src/quirks/set.ts +2 -2
package/README.md
CHANGED
|
@@ -9,6 +9,8 @@ It lets you:
|
|
|
9
9
|
- observe structural collection events like array insertion and set addition
|
|
10
10
|
- keep nested subscriptions working when parents are replaced
|
|
11
11
|
|
|
12
|
+
As of v3.1.0, it is interoperable with other instances of the same version of itself.
|
|
13
|
+
|
|
12
14
|
## Philosophy
|
|
13
15
|
|
|
14
16
|
Informa is path-based.
|
package/dist/internals.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { StateMetadata, Exitable, StatifiableObj } from "./low.js";
|
|
2
2
|
export declare const exitProxySymbol: unique symbol;
|
|
3
|
-
export declare let globalStateMode: "normal" | "extract-proxy-path";
|
|
4
3
|
export declare function setGlobalStateMode(mode: "normal" | "extract-proxy-path"): void;
|
|
5
|
-
export declare
|
|
6
|
-
export declare
|
|
4
|
+
export declare function getGlobalStateMode(): any;
|
|
5
|
+
export declare const metadataMap: any;
|
|
6
|
+
export declare function getMetadataOf(v: Statify<StatifiableObj>): any;
|
|
7
7
|
export declare function setMetadataOf(v: Statify<StatifiableObj>, s: StateMetadata): StateMetadata;
|
|
8
|
-
export declare const proxyMemoized:
|
|
8
|
+
export declare const proxyMemoized: any;
|
|
9
9
|
export declare const statifySealKey: unique symbol;
|
|
10
10
|
export declare function isStatified<T extends StatifiableObj>(v: T): v is Statify<T>;
|
|
11
11
|
export type Statify<T extends StatifiableObj> = T & {
|
package/dist/internals.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGxE,eAAO,MAAM,eAAe,eAAmE,CAAC;AAKhG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,oBAAoB,QAQvE;AACD,wBAAgB,kBAAkB,QAEjC;AAGD,eAAO,MAAM,WAAW,KAAsG,CAAC;AAI/H,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,OAMvD;AACD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,aAAa,iBAIzE;AAGD,eAAO,MAAM,aAAa,KAAiG,CAAC;AAI5H,eAAO,MAAM,cAAc,eAAkE,CAAC;AAC9F,wBAAgB,WAAW,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAE3E;AACD,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,cAAc,IAAI,CAAC,GAAG;IAAE,CAAC,cAAc,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG,QAAQ,CAAC"}
|
package/dist/internals.js
CHANGED
|
@@ -1,18 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.statifySealKey = exports.proxyMemoized = exports.metadataMap = exports.
|
|
3
|
+
exports.statifySealKey = exports.proxyMemoized = exports.metadataMap = exports.exitProxySymbol = void 0;
|
|
4
4
|
exports.setGlobalStateMode = setGlobalStateMode;
|
|
5
|
+
exports.getGlobalStateMode = getGlobalStateMode;
|
|
5
6
|
exports.getMetadataOf = getMetadataOf;
|
|
6
7
|
exports.setMetadataOf = setMetadataOf;
|
|
7
8
|
exports.isStatified = isStatified;
|
|
8
|
-
|
|
9
|
+
const package_json_1 = require("../package.json");
|
|
10
|
+
exports.exitProxySymbol = Symbol.for(`hi-this-is-informa-${package_json_1.version}-s--exit-proxy-symbol`);
|
|
9
11
|
// The mode is used by the functions exposed by informa,
|
|
10
12
|
// no concurrency issues arise because of the unique call stack.
|
|
11
|
-
|
|
13
|
+
const globalStateModeSymbol = Symbol.for(`hi-this-is-informa-${package_json_1.version}-s--global-state-mode`);
|
|
12
14
|
function setGlobalStateMode(mode) {
|
|
13
|
-
|
|
15
|
+
if (getGlobalStateMode() === mode)
|
|
16
|
+
return;
|
|
17
|
+
if (mode === "normal") {
|
|
18
|
+
Reflect.deleteProperty(globalThis, globalStateModeSymbol);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
Reflect.defineProperty(globalThis, globalStateModeSymbol, { value: mode, configurable: true });
|
|
22
|
+
}
|
|
14
23
|
}
|
|
15
|
-
|
|
24
|
+
function getGlobalStateMode() {
|
|
25
|
+
return Reflect.get(globalThis, globalStateModeSymbol) ?? "normal";
|
|
26
|
+
}
|
|
27
|
+
const metadataMapSymbol = Symbol.for(`hi-this-is-informa-${package_json_1.version}-s--metadata-map`);
|
|
28
|
+
exports.metadataMap = Reflect.get(globalThis, metadataMapSymbol) ?? new WeakMap();
|
|
29
|
+
Reflect.defineProperty(globalThis, metadataMapSymbol, { value: exports.metadataMap });
|
|
16
30
|
function getMetadataOf(v) {
|
|
17
31
|
const result = exports.metadataMap.get(v);
|
|
18
32
|
if (!result)
|
|
@@ -23,8 +37,10 @@ function setMetadataOf(v, s) {
|
|
|
23
37
|
exports.metadataMap.set(v, s);
|
|
24
38
|
return s;
|
|
25
39
|
}
|
|
26
|
-
|
|
27
|
-
exports.
|
|
40
|
+
const proxyMemoizedSymbol = Symbol.for(`hi-this-is-informa-${package_json_1.version}-s--proxy-memoized`);
|
|
41
|
+
exports.proxyMemoized = Reflect.get(globalThis, proxyMemoizedSymbol) ?? new WeakMap();
|
|
42
|
+
Reflect.defineProperty(globalThis, proxyMemoizedSymbol, { value: exports.proxyMemoized });
|
|
43
|
+
exports.statifySealKey = Symbol.for(`hi-this-is-informa-${package_json_1.version}-s--statify-seal-key`);
|
|
28
44
|
function isStatified(v) {
|
|
29
45
|
return v[exports.statifySealKey];
|
|
30
46
|
}
|
package/dist/internals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":";;;;;;;;AACA,kDAA0C;AAE7B,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,sBAAO,uBAAuB,CAAC,CAAC;AAEhG,wDAAwD;AACxD,gEAAgE;AAChE,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,sBAAO,uBAAuB,CAAC,CAAC;AAC/F,4BAAmC,IAAqC;IACtE,IAAI,kBAAkB,EAAE,KAAK,IAAI;QAAE,OAAO;IAE1C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AACD;IACE,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,CAAC,IAAI,QAAQ,CAAC;AACpE,CAAC;AAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,sBAAO,kBAAkB,CAAC,CAAC;AACzE,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,IAAI,IAAI,OAAO,EAA0C,CAAC;AAE/H,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,QAAA,WAAW,EAAE,CAAC,CAAC;AAE9E,uBAA8B,CAA0B;IACtD,MAAM,MAAM,GAAG,QAAA,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAElC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IAE/G,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,uBAA8B,CAA0B,EAAE,CAAgB;IACxE,QAAA,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,sBAAO,oBAAoB,CAAC,CAAC;AAC7E,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,mBAAmB,CAAC,IAAI,IAAI,OAAO,EAAmC,CAAC;AAE5H,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,QAAA,aAAa,EAAE,CAAC,CAAC;AAErE,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,sBAAO,sBAAsB,CAAC,CAAC;AAC9F,qBAAsD,CAAI;IACxD,OAAQ,CAAgB,CAAC,QAAA,cAAc,CAAC,CAAC;AAC3C,CAAC"}
|
package/dist/low.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"low.d.ts","sourceRoot":"","sources":["../src/low.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"low.d.ts","sourceRoot":"","sources":["../src/low.ts"],"names":[],"mappings":"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"}
|
package/dist/low.js
CHANGED
|
@@ -101,7 +101,7 @@ function statifyObject(target) {
|
|
|
101
101
|
if (prop === internals_js_1.statifySealKey)
|
|
102
102
|
return true;
|
|
103
103
|
const result = Reflect.get(target, prop, recv);
|
|
104
|
-
if (internals_js_1.
|
|
104
|
+
if ((0, internals_js_1.getGlobalStateMode)() === "extract-proxy-path") {
|
|
105
105
|
if (prop === internals_js_1.exitProxySymbol) {
|
|
106
106
|
return { path: [], stateRoot: proxyObj };
|
|
107
107
|
}
|
|
@@ -175,7 +175,7 @@ function statifyObject(target) {
|
|
|
175
175
|
}
|
|
176
176
|
},
|
|
177
177
|
has(target, prop) {
|
|
178
|
-
if (internals_js_1.
|
|
178
|
+
if ((0, internals_js_1.getGlobalStateMode)() === "extract-proxy-path") {
|
|
179
179
|
if (prop === internals_js_1.exitProxySymbol) {
|
|
180
180
|
return true;
|
|
181
181
|
}
|
|
@@ -201,7 +201,7 @@ function extract(targetMaybePrimitive, stateRoot, path) {
|
|
|
201
201
|
return extract(Reflect.get(target, prop, recv), stateRoot, [...path, prop]);
|
|
202
202
|
},
|
|
203
203
|
has(target, prop) {
|
|
204
|
-
if (internals_js_1.
|
|
204
|
+
if ((0, internals_js_1.getGlobalStateMode)() === "extract-proxy-path") {
|
|
205
205
|
if (prop === internals_js_1.exitProxySymbol)
|
|
206
206
|
return true;
|
|
207
207
|
}
|
package/dist/low.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"low.js","sourceRoot":"","sources":["../src/low.ts"],"names":[],"mappings":";;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"low.js","sourceRoot":"","sources":["../src/low.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basestatified.d.ts","sourceRoot":"","sources":["../../src/quirks/basestatified.ts"],"names":[],"mappings":"AAkBA,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"basestatified.d.ts","sourceRoot":"","sources":["../../src/quirks/basestatified.ts"],"names":[],"mappings":"AAkBA,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AAuH5E,wBAAgB,aAAa,CAC3B,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,CAAC,SAAS,GAAG,EAAE,EACf,CAAC,SAAS,MAAM,EAEhB,aAAa,EAAE,CAAC,GACf,CAAC,CA8BH;AAED,eAAO,MAAM,aAAa,mBAAwB,CAAC"}
|
|
@@ -7,6 +7,7 @@ const low_js_1 = require("../low.js");
|
|
|
7
7
|
const classMapMemo = new WeakMap();
|
|
8
8
|
const blanketProtoMemo = new WeakMap();
|
|
9
9
|
const blanketProtoSet = new WeakSet();
|
|
10
|
+
const blanketDataLayerMemo = new WeakMap();
|
|
10
11
|
function getBlanketPrototype(actualProto) {
|
|
11
12
|
const maybeMemoed = blanketProtoMemo.get(actualProto);
|
|
12
13
|
if (maybeMemoed)
|
|
@@ -17,19 +18,29 @@ function getBlanketPrototype(actualProto) {
|
|
|
17
18
|
get(target, prop, recv) {
|
|
18
19
|
if (prop === internals_js_1.statifySealKey)
|
|
19
20
|
return true;
|
|
20
|
-
if (internals_js_1.
|
|
21
|
+
if ((0, internals_js_1.getGlobalStateMode)() === "extract-proxy-path") {
|
|
21
22
|
if (prop === internals_js_1.exitProxySymbol) {
|
|
22
23
|
return { path: [], stateRoot: recv };
|
|
23
24
|
}
|
|
24
25
|
return (0, low_js_1.extract)(undefined, recv, [prop]);
|
|
25
26
|
}
|
|
27
|
+
if (Reflect.has(blanketDataLayerMemo.get(recv), prop)) {
|
|
28
|
+
return Reflect.get(blanketDataLayerMemo.get(recv), prop);
|
|
29
|
+
}
|
|
26
30
|
return Reflect.get(target, prop, recv);
|
|
27
31
|
},
|
|
28
32
|
set(target, prop, newVal, recv) {
|
|
29
33
|
const stateMetadata = (0, internals_js_1.getMetadataOf)(recv);
|
|
30
34
|
const had = Reflect.has(recv, prop);
|
|
31
35
|
const oldVal = Reflect.get(recv, prop);
|
|
32
|
-
|
|
36
|
+
let result;
|
|
37
|
+
const desc = Reflect.getOwnPropertyDescriptor(target, prop);
|
|
38
|
+
if (desc === undefined || "value" in desc) {
|
|
39
|
+
result = Reflect.set(blanketDataLayerMemo.get(recv), prop, newVal);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
result = Reflect.set(target, prop, newVal, recv);
|
|
43
|
+
}
|
|
33
44
|
try {
|
|
34
45
|
if (result) {
|
|
35
46
|
if (typeof newVal === "object"
|
|
@@ -62,7 +73,7 @@ function getBlanketPrototype(actualProto) {
|
|
|
62
73
|
}
|
|
63
74
|
},
|
|
64
75
|
has(target, prop) {
|
|
65
|
-
if (internals_js_1.
|
|
76
|
+
if ((0, internals_js_1.getGlobalStateMode)() === "extract-proxy-path" && prop === internals_js_1.exitProxySymbol) {
|
|
66
77
|
return true;
|
|
67
78
|
}
|
|
68
79
|
return Reflect.has(target, prop);
|
|
@@ -83,6 +94,7 @@ function makeStatified(OriginalClass) {
|
|
|
83
94
|
const ctor = new.target ?? Statified;
|
|
84
95
|
const inst = Reflect.construct(OriginalClass, args, ctor);
|
|
85
96
|
(0, internals_js_1.setMetadataOf)(inst, new low_js_1.StateMetadata());
|
|
97
|
+
blanketDataLayerMemo.set(inst, {});
|
|
86
98
|
const actualProto = ctor.prototype;
|
|
87
99
|
const finalProto = blanketProtoSet.has(actualProto)
|
|
88
100
|
? actualProto
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basestatified.js","sourceRoot":"","sources":["../../src/quirks/basestatified.ts"],"names":[],"mappings":";;;;AAAA,kDAOyB;AACzB,sCAQmB;AAGnB,MAAM,YAAY,GAAG,IAAI,OAAO,EAAwB,CAAC;AAEzD,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAkB,CAAC;AACvD,MAAM,eAAe,GAAG,IAAI,OAAO,EAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"basestatified.js","sourceRoot":"","sources":["../../src/quirks/basestatified.ts"],"names":[],"mappings":"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"}
|
package/dist/quirks/map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/quirks/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/quirks/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAqC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAiC,MAAM,WAAW,CAAC;AAE1E,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;IAC7E,CAAC,cAAc,CAAC,EAAE,IAAI,CAAQ;IAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,cAAc,CAKtC;IAID,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAIzC;IAED,KAAK,IAAI,IAAI,CASZ;IAED,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAStB;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAgB1B;CACF"}
|
package/dist/quirks/map.js
CHANGED
|
@@ -6,7 +6,7 @@ const low_js_1 = require("../low.js");
|
|
|
6
6
|
class StatifiedMap extends Map {
|
|
7
7
|
[internals_js_1.statifySealKey] = true;
|
|
8
8
|
get [internals_js_1.exitProxySymbol]() {
|
|
9
|
-
if (internals_js_1.
|
|
9
|
+
if ((0, internals_js_1.getGlobalStateMode)() === "extract-proxy-path") {
|
|
10
10
|
return { path: [], stateRoot: this };
|
|
11
11
|
}
|
|
12
12
|
throw new Error("exitProxySymbol is not available in normal mode");
|
package/dist/quirks/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/quirks/map.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/quirks/map.ts"],"names":[],"mappings":";;;AAAA,kDAA8G;AAC9G,sCAA0E;AAE1E,kBAAgC,SAAQ,GAAS;IAC/C,CAAC,6BAAc,CAAC,GAAS,IAAI,CAAC;IAC9B,IAAI,CAAC,8BAAe,CAAC;QACnB,IAAI,IAAA,iCAAkB,GAAE,KAAK,oBAAoB,EAAE,CAAC;YAClD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAA+B,EAAE,CAAC;QAClE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,SAAS,CAAgB;IAEzB,YAAY,IAA8B;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,SAAS,GAAG,IAAA,4BAAa,EAAC,IAAI,EAAE,IAAI,sBAAa,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK;QACH,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAE1C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEtB,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEnC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
package/dist/quirks/set.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/quirks/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/quirks/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAqC,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAAiC,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAErG,qBAAa,YAAY,CAAC,CAAC,SAAS,eAAe,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;IAC5F,CAAC,cAAc,CAAC,EAAE,IAAI,CAAQ;IAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,cAAc,CAKtC;IAID,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,EAIpC;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAQlB;IAED,KAAK,IAAI,IAAI,CAWZ;IAED,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAQxB;CACF"}
|
package/dist/quirks/set.js
CHANGED
|
@@ -6,7 +6,7 @@ const low_js_1 = require("../low.js");
|
|
|
6
6
|
class StatifiedSet extends Set {
|
|
7
7
|
[internals_js_1.statifySealKey] = true;
|
|
8
8
|
get [internals_js_1.exitProxySymbol]() {
|
|
9
|
-
if (internals_js_1.
|
|
9
|
+
if ((0, internals_js_1.getGlobalStateMode)() === "extract-proxy-path") {
|
|
10
10
|
return { path: [], stateRoot: this };
|
|
11
11
|
}
|
|
12
12
|
throw new Error("exitProxySymbol is not available in normal mode");
|
package/dist/quirks/set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/quirks/set.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/quirks/set.ts"],"names":[],"mappings":";;;AAAA,kDAAmH;AACnH,sCAAqG;AAErG,kBAAqD,SAAQ,GAAM;IACjE,CAAC,6BAAc,CAAC,GAAS,IAAI,CAAC;IAC9B,IAAI,CAAC,8BAAe,CAAC;QACnB,IAAI,IAAA,iCAAkB,GAAE,KAAK,oBAAoB,EAAE,CAAC;YAClD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAA+B,EAAE,CAAC;QAClE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,SAAS,CAAgB;IAEzB,YAAY,IAAyB;QACnC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,SAAS,GAAG,IAAA,4BAAa,EAAC,IAAI,EAAE,IAAI,sBAAa,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAErC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
package/package.json
CHANGED
package/src/internals.ts
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import type { StateMetadata, Exitable, StatifiableObj } from "./low.js";
|
|
2
|
+
import { version } from "../package.json";
|
|
2
3
|
|
|
3
|
-
export const exitProxySymbol = Symbol();
|
|
4
|
+
export const exitProxySymbol = Symbol.for(`hi-this-is-informa-${version}-s--exit-proxy-symbol`);
|
|
4
5
|
|
|
5
6
|
// The mode is used by the functions exposed by informa,
|
|
6
7
|
// no concurrency issues arise because of the unique call stack.
|
|
7
|
-
|
|
8
|
+
const globalStateModeSymbol = Symbol.for(`hi-this-is-informa-${version}-s--global-state-mode`);
|
|
8
9
|
export function setGlobalStateMode(mode: "normal" | "extract-proxy-path") {
|
|
9
|
-
|
|
10
|
+
if (getGlobalStateMode() === mode) return;
|
|
11
|
+
|
|
12
|
+
if (mode === "normal") {
|
|
13
|
+
Reflect.deleteProperty(globalThis, globalStateModeSymbol);
|
|
14
|
+
} else {
|
|
15
|
+
Reflect.defineProperty(globalThis, globalStateModeSymbol, { value: mode, configurable: true });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function getGlobalStateMode() {
|
|
19
|
+
return Reflect.get(globalThis, globalStateModeSymbol) ?? "normal";
|
|
10
20
|
}
|
|
11
21
|
|
|
12
|
-
|
|
22
|
+
const metadataMapSymbol = Symbol.for(`hi-this-is-informa-${version}-s--metadata-map`);
|
|
23
|
+
export const metadataMap = Reflect.get(globalThis, metadataMapSymbol) ?? new WeakMap<Statify<StatifiableObj>, StateMetadata>();
|
|
24
|
+
|
|
25
|
+
Reflect.defineProperty(globalThis, metadataMapSymbol, { value: metadataMap });
|
|
26
|
+
|
|
13
27
|
export function getMetadataOf(v: Statify<StatifiableObj>) {
|
|
14
28
|
const result = metadataMap.get(v);
|
|
15
29
|
|
|
@@ -23,9 +37,12 @@ export function setMetadataOf(v: Statify<StatifiableObj>, s: StateMetadata) {
|
|
|
23
37
|
return s;
|
|
24
38
|
}
|
|
25
39
|
|
|
26
|
-
|
|
40
|
+
const proxyMemoizedSymbol = Symbol.for(`hi-this-is-informa-${version}-s--proxy-memoized`);
|
|
41
|
+
export const proxyMemoized = Reflect.get(globalThis, proxyMemoizedSymbol) ?? new WeakMap<object, Statify<StatifiableObj>>();
|
|
42
|
+
|
|
43
|
+
Reflect.defineProperty(globalThis, proxyMemoizedSymbol, { value: proxyMemoized });
|
|
27
44
|
|
|
28
|
-
export const statifySealKey = Symbol();
|
|
45
|
+
export const statifySealKey = Symbol.for(`hi-this-is-informa-${version}-s--statify-seal-key`);
|
|
29
46
|
export function isStatified<T extends StatifiableObj>(v: T): v is Statify<T> {
|
|
30
47
|
return (v as Statify<T>)[statifySealKey];
|
|
31
48
|
}
|
package/src/low.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { exitProxySymbol,
|
|
1
|
+
import { exitProxySymbol, getGlobalStateMode, getMetadataOf, proxyMemoized, setGlobalStateMode, setMetadataOf, statifySealKey, type Statify } from "./internals.js";
|
|
2
2
|
import { EventEmitter } from "node:events";
|
|
3
3
|
import { StatifiedSet } from "./quirks/set.js";
|
|
4
4
|
import { isListInGrid } from "./utils.js";
|
|
@@ -173,7 +173,7 @@ export function statifyObject<T extends { [k: string | symbol]: Statified<Statif
|
|
|
173
173
|
|
|
174
174
|
const result = Reflect.get(target, prop, recv);
|
|
175
175
|
|
|
176
|
-
if (
|
|
176
|
+
if (getGlobalStateMode() === "extract-proxy-path") {
|
|
177
177
|
if (prop === exitProxySymbol) {
|
|
178
178
|
return { path: [], stateRoot: proxyObj };
|
|
179
179
|
}
|
|
@@ -282,7 +282,7 @@ export function statifyObject<T extends { [k: string | symbol]: Statified<Statif
|
|
|
282
282
|
},
|
|
283
283
|
|
|
284
284
|
has(target, prop) {
|
|
285
|
-
if (
|
|
285
|
+
if (getGlobalStateMode() === "extract-proxy-path") {
|
|
286
286
|
if (prop === exitProxySymbol) {
|
|
287
287
|
return true;
|
|
288
288
|
}
|
|
@@ -322,7 +322,7 @@ export function extract(
|
|
|
322
322
|
return extract(Reflect.get(target, prop, recv), stateRoot, [...path, prop]);
|
|
323
323
|
},
|
|
324
324
|
has(target, prop) {
|
|
325
|
-
if (
|
|
325
|
+
if (getGlobalStateMode() === "extract-proxy-path") {
|
|
326
326
|
if (prop === exitProxySymbol) return true;
|
|
327
327
|
}
|
|
328
328
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exitProxySymbol,
|
|
3
3
|
getMetadataOf,
|
|
4
|
-
|
|
4
|
+
getGlobalStateMode,
|
|
5
5
|
setMetadataOf,
|
|
6
6
|
statifySealKey,
|
|
7
7
|
type Statify,
|
|
@@ -21,6 +21,7 @@ const classMapMemo = new WeakMap<ClassType, ClassType>();
|
|
|
21
21
|
|
|
22
22
|
const blanketProtoMemo = new WeakMap<object, object>();
|
|
23
23
|
const blanketProtoSet = new WeakSet<object>();
|
|
24
|
+
const blanketDataLayerMemo = new WeakMap<object, object>();
|
|
24
25
|
|
|
25
26
|
function getBlanketPrototype(actualProto: object) {
|
|
26
27
|
const maybeMemoed = blanketProtoMemo.get(actualProto);
|
|
@@ -36,7 +37,7 @@ function getBlanketPrototype(actualProto: object) {
|
|
|
36
37
|
get(target, prop, recv) {
|
|
37
38
|
if (prop === statifySealKey) return true;
|
|
38
39
|
|
|
39
|
-
if (
|
|
40
|
+
if (getGlobalStateMode() === "extract-proxy-path") {
|
|
40
41
|
if (prop === exitProxySymbol) {
|
|
41
42
|
return { path: [], stateRoot: recv as Statify<StatifiableObj> };
|
|
42
43
|
}
|
|
@@ -44,6 +45,10 @@ function getBlanketPrototype(actualProto: object) {
|
|
|
44
45
|
return extract(undefined, recv as Statify<StatifiableObj>, [prop]);
|
|
45
46
|
}
|
|
46
47
|
|
|
48
|
+
if (Reflect.has(blanketDataLayerMemo.get(recv)!, prop)) {
|
|
49
|
+
return Reflect.get(blanketDataLayerMemo.get(recv)!, prop);
|
|
50
|
+
}
|
|
51
|
+
|
|
47
52
|
return Reflect.get(target, prop, recv);
|
|
48
53
|
},
|
|
49
54
|
|
|
@@ -53,7 +58,13 @@ function getBlanketPrototype(actualProto: object) {
|
|
|
53
58
|
const had = Reflect.has(recv, prop);
|
|
54
59
|
const oldVal = Reflect.get(recv, prop) as unknown;
|
|
55
60
|
|
|
56
|
-
|
|
61
|
+
let result;
|
|
62
|
+
const desc = Reflect.getOwnPropertyDescriptor(target, prop);
|
|
63
|
+
if (desc === undefined || "value" in desc) {
|
|
64
|
+
result = Reflect.set(blanketDataLayerMemo.get(recv)!, prop, newVal);
|
|
65
|
+
} else {
|
|
66
|
+
result = Reflect.set(target, prop, newVal, recv);
|
|
67
|
+
}
|
|
57
68
|
|
|
58
69
|
try {
|
|
59
70
|
if (result) {
|
|
@@ -110,7 +121,7 @@ function getBlanketPrototype(actualProto: object) {
|
|
|
110
121
|
},
|
|
111
122
|
|
|
112
123
|
has(target, prop) {
|
|
113
|
-
if (
|
|
124
|
+
if (getGlobalStateMode() === "extract-proxy-path" && prop === exitProxySymbol) {
|
|
114
125
|
return true;
|
|
115
126
|
}
|
|
116
127
|
|
|
@@ -144,6 +155,8 @@ export function makeStatified<
|
|
|
144
155
|
|
|
145
156
|
setMetadataOf(inst, new StateMetadata());
|
|
146
157
|
|
|
158
|
+
blanketDataLayerMemo.set(inst, {});
|
|
159
|
+
|
|
147
160
|
const actualProto = ctor.prototype;
|
|
148
161
|
const finalProto = blanketProtoSet.has(actualProto)
|
|
149
162
|
? actualProto
|
package/src/quirks/map.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { exitProxySymbol,
|
|
1
|
+
import { exitProxySymbol, getGlobalStateMode, setMetadataOf, Statify, statifySealKey } from "../internals.js";
|
|
2
2
|
import { ExitProxyValue, StateMetadata, StatifiableObj } from "../low.js";
|
|
3
3
|
|
|
4
4
|
export class StatifiedMap<K, V> extends Map<K, V> implements Statify<Map<K, V>> {
|
|
5
5
|
[statifySealKey]: true = true;
|
|
6
6
|
get [exitProxySymbol](): ExitProxyValue {
|
|
7
|
-
if (
|
|
7
|
+
if (getGlobalStateMode() === "extract-proxy-path") {
|
|
8
8
|
return { path: [], stateRoot: this as Statify<StatifiableObj> };
|
|
9
9
|
}
|
|
10
10
|
throw new Error("exitProxySymbol is not available in normal mode");
|
package/src/quirks/set.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { exitProxySymbol,
|
|
1
|
+
import { exitProxySymbol, getGlobalStateMode, setMetadataOf, statifySealKey, type Statify } from "../internals.js";
|
|
2
2
|
import { StateMetadata, StatifiableObj, type ExitProxyValue, type StatifiableProp } from "../low.js";
|
|
3
3
|
|
|
4
4
|
export class StatifiedSet<T extends StatifiableProp> extends Set<T> implements Statify<Set<T>> {
|
|
5
5
|
[statifySealKey]: true = true;
|
|
6
6
|
get [exitProxySymbol](): ExitProxyValue {
|
|
7
|
-
if (
|
|
7
|
+
if (getGlobalStateMode() === "extract-proxy-path") {
|
|
8
8
|
return { path: [], stateRoot: this as Statify<StatifiableObj> };
|
|
9
9
|
}
|
|
10
10
|
throw new Error("exitProxySymbol is not available in normal mode");
|