proxy-facades 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/.idea/.name +1 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/proxy-facades.iml +8 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/DEVELOPMENT.md +15 -0
  6. package/LICENSE +21 -0
  7. package/RecordedReadOnProxiedObjectExt.d.ts +22 -0
  8. package/RecordedReadOnProxiedObjectExt.d.ts.map +1 -0
  9. package/RecordedReadOnProxiedObjectExt.js +41 -0
  10. package/RecordedReadOnProxiedObjectExt.js.map +1 -0
  11. package/RecordedReadOnProxiedObjectExt.ts +41 -0
  12. package/Util.d.ts +85 -0
  13. package/Util.d.ts.map +1 -0
  14. package/Util.js +239 -0
  15. package/Util.js.map +1 -0
  16. package/Util.ts +254 -0
  17. package/class-trackers/Array.d.ts +93 -0
  18. package/class-trackers/Array.d.ts.map +1 -0
  19. package/class-trackers/Array.js +193 -0
  20. package/class-trackers/Array.js.map +1 -0
  21. package/class-trackers/Array.ts +245 -0
  22. package/class-trackers/Iterator.d.ts +38 -0
  23. package/class-trackers/Iterator.d.ts.map +1 -0
  24. package/class-trackers/Iterator.js +69 -0
  25. package/class-trackers/Iterator.js.map +1 -0
  26. package/class-trackers/Iterator.ts +73 -0
  27. package/class-trackers/Map.d.ts +128 -0
  28. package/class-trackers/Map.d.ts.map +1 -0
  29. package/class-trackers/Map.js +310 -0
  30. package/class-trackers/Map.js.map +1 -0
  31. package/class-trackers/Map.ts +403 -0
  32. package/class-trackers/Set.d.ts +85 -0
  33. package/class-trackers/Set.d.ts.map +1 -0
  34. package/class-trackers/Set.js +197 -0
  35. package/class-trackers/Set.js.map +1 -0
  36. package/class-trackers/Set.ts +245 -0
  37. package/class-trackers/index.d.ts +7 -0
  38. package/class-trackers/index.d.ts.map +1 -0
  39. package/class-trackers/index.js +36 -0
  40. package/class-trackers/index.js.map +1 -0
  41. package/class-trackers/index.ts +38 -0
  42. package/class-trackers/readme.md +2 -0
  43. package/common.d.ts +235 -0
  44. package/common.d.ts.map +1 -0
  45. package/common.js +378 -0
  46. package/common.js.map +1 -0
  47. package/common.ts +501 -0
  48. package/dev_generateEsRuntimeBehaviourCheckerCode.d.ts +10 -0
  49. package/dev_generateEsRuntimeBehaviourCheckerCode.d.ts.map +1 -0
  50. package/dev_generateEsRuntimeBehaviourCheckerCode.js +76 -0
  51. package/dev_generateEsRuntimeBehaviourCheckerCode.js.map +1 -0
  52. package/dev_generateEsRuntimeBehaviourCheckerCode.ts +85 -0
  53. package/dist/mjs/RecordedReadOnProxiedObjectExt.d.ts +22 -0
  54. package/dist/mjs/RecordedReadOnProxiedObjectExt.d.ts.map +1 -0
  55. package/dist/mjs/RecordedReadOnProxiedObjectExt.js +37 -0
  56. package/dist/mjs/RecordedReadOnProxiedObjectExt.js.map +1 -0
  57. package/dist/mjs/Util.d.ts +85 -0
  58. package/dist/mjs/Util.d.ts.map +1 -0
  59. package/dist/mjs/Util.js +223 -0
  60. package/dist/mjs/Util.js.map +1 -0
  61. package/dist/mjs/class-trackers/Array.d.ts +93 -0
  62. package/dist/mjs/class-trackers/Array.d.ts.map +1 -0
  63. package/dist/mjs/class-trackers/Array.js +186 -0
  64. package/dist/mjs/class-trackers/Array.js.map +1 -0
  65. package/dist/mjs/class-trackers/Iterator.d.ts +38 -0
  66. package/dist/mjs/class-trackers/Iterator.d.ts.map +1 -0
  67. package/dist/mjs/class-trackers/Iterator.js +65 -0
  68. package/dist/mjs/class-trackers/Iterator.js.map +1 -0
  69. package/dist/mjs/class-trackers/Map.d.ts +128 -0
  70. package/dist/mjs/class-trackers/Map.d.ts.map +1 -0
  71. package/dist/mjs/class-trackers/Map.js +299 -0
  72. package/dist/mjs/class-trackers/Map.js.map +1 -0
  73. package/dist/mjs/class-trackers/Set.d.ts +85 -0
  74. package/dist/mjs/class-trackers/Set.d.ts.map +1 -0
  75. package/dist/mjs/class-trackers/Set.js +189 -0
  76. package/dist/mjs/class-trackers/Set.js.map +1 -0
  77. package/dist/mjs/class-trackers/index.d.ts +7 -0
  78. package/dist/mjs/class-trackers/index.d.ts.map +1 -0
  79. package/dist/mjs/class-trackers/index.js +32 -0
  80. package/dist/mjs/class-trackers/index.js.map +1 -0
  81. package/dist/mjs/common.d.ts +235 -0
  82. package/dist/mjs/common.d.ts.map +1 -0
  83. package/dist/mjs/common.js +361 -0
  84. package/dist/mjs/common.js.map +1 -0
  85. package/dist/mjs/dev_generateEsRuntimeBehaviourCheckerCode.d.ts +10 -0
  86. package/dist/mjs/dev_generateEsRuntimeBehaviourCheckerCode.d.ts.map +1 -0
  87. package/dist/mjs/dev_generateEsRuntimeBehaviourCheckerCode.js +76 -0
  88. package/dist/mjs/dev_generateEsRuntimeBehaviourCheckerCode.js.map +1 -0
  89. package/dist/mjs/index.d.ts +8 -0
  90. package/dist/mjs/index.d.ts.map +1 -0
  91. package/dist/mjs/index.js +8 -0
  92. package/dist/mjs/index.js.map +1 -0
  93. package/dist/mjs/objectChangeTracking.d.ts +43 -0
  94. package/dist/mjs/objectChangeTracking.d.ts.map +1 -0
  95. package/dist/mjs/objectChangeTracking.js +209 -0
  96. package/dist/mjs/objectChangeTracking.js.map +1 -0
  97. package/dist/mjs/origChangeTracking.d.ts +14 -0
  98. package/dist/mjs/origChangeTracking.d.ts.map +1 -0
  99. package/dist/mjs/origChangeTracking.js +58 -0
  100. package/dist/mjs/origChangeTracking.js.map +1 -0
  101. package/dist/mjs/proxyFacade.d.ts +45 -0
  102. package/dist/mjs/proxyFacade.d.ts.map +1 -0
  103. package/dist/mjs/proxyFacade.js +179 -0
  104. package/dist/mjs/proxyFacade.js.map +1 -0
  105. package/dist/mjs/watchedProxyFacade.d.ts +84 -0
  106. package/dist/mjs/watchedProxyFacade.d.ts.map +1 -0
  107. package/dist/mjs/watchedProxyFacade.js +300 -0
  108. package/dist/mjs/watchedProxyFacade.js.map +1 -0
  109. package/index.d.ts +8 -0
  110. package/index.d.ts.map +1 -0
  111. package/index.js +36 -0
  112. package/index.js.map +1 -0
  113. package/index.ts +7 -0
  114. package/index_esm.mjs +44 -0
  115. package/objectChangeTracking.d.ts +43 -0
  116. package/objectChangeTracking.d.ts.map +1 -0
  117. package/objectChangeTracking.js +214 -0
  118. package/objectChangeTracking.js.map +1 -0
  119. package/objectChangeTracking.ts +251 -0
  120. package/origChangeTracking.d.ts +14 -0
  121. package/origChangeTracking.d.ts.map +1 -0
  122. package/origChangeTracking.js +63 -0
  123. package/origChangeTracking.js.map +1 -0
  124. package/origChangeTracking.ts +72 -0
  125. package/package.json +52 -0
  126. package/proxyFacade.d.ts +45 -0
  127. package/proxyFacade.d.ts.map +1 -0
  128. package/proxyFacade.js +187 -0
  129. package/proxyFacade.js.map +1 -0
  130. package/proxyFacade.ts +222 -0
  131. package/readme.md +111 -0
  132. package/watchedProxyFacade.d.ts +84 -0
  133. package/watchedProxyFacade.d.ts.map +1 -0
  134. package/watchedProxyFacade.js +312 -0
  135. package/watchedProxyFacade.js.map +1 -0
  136. package/watchedProxyFacade.ts +369 -0
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ // **** See the function common.ts#checkEsRuntimeBehaviour ***
3
+ // Array:
4
+ outputExpecterCode(["a"], (v) => v.at(0));
5
+ outputExpecterCode(["a", "b", "c"], (v) => v.concat("d", "e", "f"));
6
+ outputExpecterCode(["a", "b", "c"], (v) => v.map(x => read(x)));
7
+ outputExpecterCode(["a", "b", "c"], (v) => v.forEach(x => read(x)));
8
+ outputExpecterCode(["a", "b", "c"], (v) => v.join(","));
9
+ //outputExpecterCode(["a", "b", "c"], (v) => v.keys());
10
+ //outputExpecterCode(["a", "b", "c"], (v) => v.values());
11
+ outputExpecterCode(["a", "b", "c", "d"], (v) => v.slice(1, 3));
12
+ outputExpecterCode(["a", "b", "c"], (v) => v.some(x => x === "a"));
13
+ outputExpecterCode(["a", "b", "c"], (v) => v.filter(x => x === "a"));
14
+ outputExpecterCode(["a", "b", "c"], (v) => v.find(x => x === "a"));
15
+ //outputExpecterCode(["a", "b", "c"], (v) => v.entries());
16
+ outputExpecterCode(["a", "b", "c"], (v) => v.every(x => x === "a"));
17
+ outputExpecterCode(["a", "b", "c"], (v) => v.findIndex(x => x === "a"));
18
+ outputExpecterCode(["a", "b", "c"], (v) => v.includes("b", 1));
19
+ outputExpecterCode(["a", "b", "c"], (v) => v.indexOf("b", 1));
20
+ outputExpecterCode(["a", "b", "c"], (v) => v[Symbol.iterator]().next());
21
+ outputExpecterCode(["a", "b", "b"], (v) => v.lastIndexOf("b", 1));
22
+ outputExpecterCode(["a", "b", "b"], (v) => v.reduce((p, c) => p + c));
23
+ outputExpecterCode(["a", "b", "b"], (v) => v.reduceRight((p, c) => p + c));
24
+ outputExpecterCode(["a", "b", "b"], (v) => v.toLocaleString());
25
+ outputExpecterCode(["a", "b", "b"], (v) => v.toString());
26
+ outputExpecterCode(["a", "b", "c"], (v) => v.unshift("_a", "_b"));
27
+ outputExpecterCode(["a", "b", "c", "d"], v => v.splice(1, 2, "newB", "newC", "newX"));
28
+ outputExpecterCode(["a", "b", "c", "d"], v => v.copyWithin(3, 1, 3));
29
+ outputExpecterCode(["a", "b", "c", "d"], v => v.reverse());
30
+ // Iterator
31
+ console.log("if([].values().forEach) { // Runtime supports these iterator functions like forEach, filter, .... ");
32
+ outputExpecterCode(() => ["a", "b", "c"][Symbol.iterator](), it => it.forEach(x => x));
33
+ outputExpecterCode(() => ["a", "b", "c"][Symbol.iterator](), it => it.filter(x => x === "b"));
34
+ outputExpecterCode(() => ["a", "b", "c"][Symbol.iterator](), it => it.take(2));
35
+ outputExpecterCode(() => ["a", "b", "c"][Symbol.iterator](), it => it.toArray());
36
+ console.log("}");
37
+ // Set:
38
+ //outputExpecterCode(new Set<string>(["a","b","c"]), v => v.forEach(i => read(i))) // TypeError: Method Set.prototype.forEach called on incompatible receiver #<Set>
39
+ //outputExpecterCode(new Set<string>(["a","b","c"]), v => v.intersection(new Set<string>(["b","c","e"]))) // TypeError: Method Set.prototype.intersection called on incompatible receiver #<Set>
40
+ /**
41
+ *
42
+ */
43
+ function outputExpecterCode(orig, fn) {
44
+ let origJS = JSON.stringify(orig);
45
+ if (typeof orig === "function") {
46
+ origJS = orig.toString().replace(/\s+/g, " ").replace(/^\(\)=>/, "").toString();
47
+ orig = orig();
48
+ }
49
+ const usedFields = new Set();
50
+ const proxy = new Proxy(orig, {
51
+ get(target, p, receiver) {
52
+ usedFields.add(p);
53
+ if (p === "next") {
54
+ //@ts-ignore
55
+ return (...args) => target.next(...args); // .next() method must run on target, not on proxy
56
+ }
57
+ //@ts-ignore
58
+ return target[p];
59
+ }
60
+ });
61
+ read(fn(proxy));
62
+ console.log(`expectUsingMethodsOrFields(${origJS}, ${fnToString(fn)}, [${[...usedFields.values()].map(f => typeof f === "string" ? `"${f}"` : `${f.toString().replace(/(^Symbol\()|(\)$)/g, "")}`).join(",")}])`);
63
+ function fnToString(fn) {
64
+ return fn.toString().replace(/\s+/g, " ").toString();
65
+ }
66
+ }
67
+ /**
68
+ * Just do something the runtime can't optimize away
69
+ * @param value
70
+ */
71
+ function read(value) {
72
+ if (("" + value) == "blaaxyxzzzsdf") {
73
+ throw new Error("should never get here");
74
+ }
75
+ }
76
+ //# sourceMappingURL=dev_generateEsRuntimeBehaviourCheckerCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev_generateEsRuntimeBehaviourCheckerCode.js","sourceRoot":"","sources":["../../dev_generateEsRuntimeBehaviourCheckerCode.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAE/D,SAAS;AACT,kBAAkB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,CAAC;AAClE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,uDAAuD;AACvD,yDAAyD;AACzD,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,GAAG,CAAC,CAAC,CAAC;AACnE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACrE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACnE,0DAA0D;AAC1D,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,GAAG,CAAC,CAAC,CAAC;AACnE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,GAAG,CAAC,CAAC,CAAC;AACvE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,kBAAkB,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACtE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3E,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;AAC/D,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC;AACjE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AACnF,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA;AAClE,kBAAkB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAE1D,WAAW;AACX,OAAO,CAAC,GAAG,CAAC,oGAAoG,CAAC,CAAA;AACjH,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACtF,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AAC7F,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AACjF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEhB,OAAO;AACP,oKAAoK;AACpK,gMAAgM;AAIhM;;GAEG;AACH,SAAS,kBAAkB,CAAmB,IAAmB,EAAE,EAAuB;IACtF,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,IAAG,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC7E,IAAI,GAAG,IAAI,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;QAC1B,GAAG,CAAC,MAAS,EAAE,CAAkB,EAAE,QAAa;YAC5C,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAEjB,IAAG,CAAC,KAAK,MAAM,EAAE,CAAC;gBACd,YAAY;gBACZ,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,kDAAkD;YAC3G,CAAC;YAED,YAAY;YACZ,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;KACJ,CAAC,CAAA;IACF,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAA,CAAC,CAAA,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAC,EAAE,CAAC,EAAE,CAAC,CAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE7M,SAAS,UAAU,CAAC,EAA+B;QAC/C,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxD,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,IAAI,CAAC,KAAU;IACpB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,eAAe,EAAG,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC5C,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { RecordedRead, RecordedReadOnProxiedObject, ClassTrackingConfiguration, dualUseTracker_callOrigMethodOnTarget, IteratorReturningProxiedValue, GetIteratorValueProxiedFn, DualUseTracker, ForWatchedProxyHandler } from "./common";
2
+ export { ProxyFacade, FacadeProxyHandler, invalidateObject, getGlobalOrig } from "./proxyFacade";
3
+ export { deleteProperty, changeTrackedOrigObjects, installChangeTracker } from "./origChangeTracking";
4
+ export { RecordedArrayValuesRead } from "./class-trackers/Array";
5
+ export { RecordedMap_has, RecordedMap_get, RecordedMapEntriesRead, RecordedMapKeysRead, RecordedMapValuesRead } from "./class-trackers/Map";
6
+ export { RecordedSet_has, RecordedSetValuesRead } from "./class-trackers/Set";
7
+ export { RecordedValueRead, RecordedUnspecificRead, RecordedPropertyRead, RecordedOwnKeysRead, WatchedProxyFacade, WatchedProxyHandler } from "./watchedProxyFacade";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,qCAAqC,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,cAAc,EAAE,sBAAsB,EAAC,MAAM,UAAU,CAAA;AACvO,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAC,cAAc,EAAE,wBAAwB,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAA;AACnG,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAC,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,qBAAqB,EAAC,MAAM,sBAAsB,CAAA;AACzI,OAAO,EAAC,eAAe,EAAE,qBAAqB,EAAC,MAAM,sBAAsB,CAAA;AAC3E,OAAO,EAAC,iBAAiB,EAAE,sBAAsB,EAAE,oBAAoB,EAAC,mBAAmB,EAAE,kBAAkB,EAAG,mBAAmB,EAAC,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { RecordedRead, RecordedReadOnProxiedObject, ClassTrackingConfiguration, dualUseTracker_callOrigMethodOnTarget } from "./common";
2
+ export { ProxyFacade, FacadeProxyHandler, invalidateObject, getGlobalOrig } from "./proxyFacade";
3
+ export { deleteProperty, changeTrackedOrigObjects, installChangeTracker } from "./origChangeTracking";
4
+ export { RecordedArrayValuesRead } from "./class-trackers/Array";
5
+ export { RecordedMap_has, RecordedMap_get, RecordedMapEntriesRead, RecordedMapKeysRead, RecordedMapValuesRead } from "./class-trackers/Map";
6
+ export { RecordedSet_has, RecordedSetValuesRead } from "./class-trackers/Set";
7
+ export { RecordedValueRead, RecordedUnspecificRead, RecordedPropertyRead, RecordedOwnKeysRead, WatchedProxyFacade, WatchedProxyHandler } from "./watchedProxyFacade";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,qCAAqC,EAAmG,MAAM,UAAU,CAAA;AACvO,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAC,cAAc,EAAE,wBAAwB,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAA;AACnG,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAC,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,qBAAqB,EAAC,MAAM,sBAAsB,CAAA;AACzI,OAAO,EAAC,eAAe,EAAE,qBAAqB,EAAC,MAAM,sBAAsB,CAAA;AAC3E,OAAO,EAAC,iBAAiB,EAAE,sBAAsB,EAAE,oBAAoB,EAAC,mBAAmB,EAAE,kBAAkB,EAAG,mBAAmB,EAAC,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { ClassTrackingConfiguration, EventHook, ObjKey } from "./common";
2
+ /**
3
+ * Contains change listeners for one specific object.
4
+ * Note for specificity: There will be only one of the **change** events fired. The Recorded...Read.onChange handler will add the listeners to all possible candidates. It's this way around.
5
+ * Does not apply to setterInvoke.. These are fired in addition (not thought through for all situations)
6
+ */
7
+ declare class ObjectChangeHooks {
8
+ /**
9
+ * For writes on **setters** (also if these are the same/unchanged values)
10
+ */
11
+ setterInvoke: import("./Util").DefaultMap<ObjKey, EventHook>;
12
+ changeSpecificProperty: import("./Util").DefaultMap<ObjKey, EventHook>;
13
+ changeAnyProperty: EventHook;
14
+ /**
15
+ * Means, the result of Object.keys will be different after the change. All iterations over the object/arrays's keys or values are informed that there was a change. Individual {@link changeSpecificProperty} are not affected!
16
+ */
17
+ changeOwnKeys: EventHook;
18
+ /**
19
+ * These will always be called, no matter how specific a change is
20
+ */
21
+ anyChange: EventHook;
22
+ /**
23
+ *
24
+ */
25
+ unspecificChange: EventHook;
26
+ }
27
+ export declare const changeHooksForObject: WeakMap<object, ObjectChangeHooks>;
28
+ export declare function getChangeHooksForObject(obj: object): ObjectChangeHooks;
29
+ export declare class ObjectProxyHandler implements ProxyHandler<object> {
30
+ target: object;
31
+ origPrototype: object | null;
32
+ proxy: object;
33
+ trackingConfig?: ClassTrackingConfiguration;
34
+ constructor(target: object, trackingConfig: ClassTrackingConfiguration | undefined);
35
+ installSetterTrap(key: ObjKey): void;
36
+ protected withUnspecificChange<R>(changeFn: () => R): R;
37
+ get(fake_target: object, key: ObjKey, receiver: any): any;
38
+ set(fake_target: object, key: ObjKey, value: any, receiver: any): boolean;
39
+ getPrototypeOf(target: object): object | null;
40
+ defineProperty(target: object, property: string | symbol, attributes: PropertyDescriptor): boolean;
41
+ }
42
+ export {};
43
+ //# sourceMappingURL=objectChangeTracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectChangeTracking.d.ts","sourceRoot":"","sources":["../../objectChangeTracking.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,0BAA0B,EAC1B,SAAS,EAGT,MAAM,EAIT,MAAM,UAAU,CAAC;AAElB;;;;GAIG;AACH,cAAM,iBAAiB;IACnB;;OAEG;IACH,YAAY,iDAA4D;IACxE,sBAAsB,iDAA4D;IAClF,iBAAiB,YAAmB;IAEpC;;OAEG;IACH,aAAa,YAAmB;IAChC;;OAEG;IACH,SAAS,YAAmB;IAE5B;;OAEG;IACH,gBAAgB,YAAmB;CACtC;AAID,eAAO,MAAM,oBAAoB,oCAA2C,CAAC;AAC7E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,qBAMlD;AAED,qBAAa,kBAAmB,YAAW,YAAY,CAAC,MAAM,CAAC;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,0BAA0B,CAAA;gBAE/B,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,0BAA0B,GAAG,SAAS;IAmBlF,iBAAiB,CAAC,GAAG,EAAE,MAAM;IAkE7B,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAIvD,GAAG,CAAC,WAAW,EAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAC,GAAG,GAAG,GAAG;IA2EvD,GAAG,CAAC,WAAW,EAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAC,GAAG,EAAE,QAAQ,EAAC,GAAG;IAkB5D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI7C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO;CAIrG"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Listeners for one object
3
+ */
4
+ import { newDefaultMap } from "./Util";
5
+ import { EventHook, getPropertyDescriptor, runChangeOperation, UnspecificObjectChange, } from "./common";
6
+ /**
7
+ * Contains change listeners for one specific object.
8
+ * Note for specificity: There will be only one of the **change** events fired. The Recorded...Read.onChange handler will add the listeners to all possible candidates. It's this way around.
9
+ * Does not apply to setterInvoke.. These are fired in addition (not thought through for all situations)
10
+ */
11
+ class ObjectChangeHooks {
12
+ constructor() {
13
+ /**
14
+ * For writes on **setters** (also if these are the same/unchanged values)
15
+ */
16
+ this.setterInvoke = newDefaultMap(() => new EventHook());
17
+ this.changeSpecificProperty = newDefaultMap(() => new EventHook());
18
+ this.changeAnyProperty = new EventHook();
19
+ /**
20
+ * Means, the result of Object.keys will be different after the change. All iterations over the object/arrays's keys or values are informed that there was a change. Individual {@link changeSpecificProperty} are not affected!
21
+ */
22
+ this.changeOwnKeys = new EventHook();
23
+ /**
24
+ * These will always be called, no matter how specific a change is
25
+ */
26
+ this.anyChange = new EventHook();
27
+ /**
28
+ *
29
+ */
30
+ this.unspecificChange = new EventHook();
31
+ }
32
+ }
33
+ export const changeHooksForObject = new WeakMap();
34
+ export function getChangeHooksForObject(obj) {
35
+ let result = changeHooksForObject.get(obj);
36
+ if (result === undefined) {
37
+ changeHooksForObject.set(obj, result = new ObjectChangeHooks());
38
+ }
39
+ return result;
40
+ }
41
+ export class ObjectProxyHandler {
42
+ constructor(target, trackingConfig) {
43
+ this.target = target;
44
+ this.trackingConfig = trackingConfig;
45
+ this.origPrototype = Object.getPrototypeOf(target);
46
+ Object.getOwnPropertyNames(target).forEach(key => {
47
+ if (key === "length" && Array.isArray(target)) {
48
+ return; // Leave the length property as is. It won't be set directly anyway
49
+ }
50
+ this.installSetterTrap(key);
51
+ });
52
+ // Create proxy:
53
+ //const targetForProxy = {}; // The virtual way
54
+ const targetForProxy = target; // Preserves Object.keys and instanceof behaviour :), iterators and other stuff. But the downside with this is, that it does not allow to proxy read only properties
55
+ this.proxy = new Proxy(targetForProxy, this);
56
+ }
57
+ installSetterTrap(key) {
58
+ let target = this.target;
59
+ let origDescriptor = getPropertyDescriptor(target, key);
60
+ //@ts-ignore
61
+ let currentValue = (origDescriptor === null || origDescriptor === void 0 ? void 0 : origDescriptor.value /* performance */) || target[key];
62
+ const origSetter = origDescriptor === null || origDescriptor === void 0 ? void 0 : origDescriptor.set;
63
+ const origGetter = origDescriptor === null || origDescriptor === void 0 ? void 0 : origDescriptor.get;
64
+ let origOwnDescriptor = Object.getOwnPropertyDescriptor(target, key);
65
+ if (origOwnDescriptor !== undefined) {
66
+ if (origOwnDescriptor.configurable !== true) {
67
+ throw new Error("Cannot delete non- 'configurable' property:" + String(key));
68
+ }
69
+ //@ts-ignore
70
+ delete target[key]; // delete the old, or the following Object.defineProperty will conflict
71
+ }
72
+ const newSetter = (newValue) => {
73
+ const changeHooksForTarget = getChangeHooksForObject(target);
74
+ if (origSetter !== undefined) {
75
+ runChangeOperation(target, new UnspecificObjectChange(target), [changeHooksForTarget.setterInvoke.get(key)], () => {
76
+ origSetter.apply(target, [newValue]); // call the setter
77
+ });
78
+ return;
79
+ }
80
+ if (origGetter !== undefined) {
81
+ currentValue = origGetter.apply(target); // call the getter. Is this a good idea to refresh the value here?
82
+ throw new TypeError("Target originally had a getter and no setter but the property is set.");
83
+ }
84
+ //@ts-ignore
85
+ if (newValue !== currentValue) { // modify ?
86
+ // run change operation and call listeners:
87
+ const hooksToServe = [];
88
+ if (Array.isArray(target)) {
89
+ hooksToServe.push(changeHooksForTarget.unspecificChange);
90
+ }
91
+ hooksToServe.push(changeHooksForTarget.changeSpecificProperty.get(key));
92
+ hooksToServe.push(changeHooksForTarget.changeAnyProperty);
93
+ runChangeOperation(target, new UnspecificObjectChange(target), hooksToServe, () => {
94
+ //@ts-ignore
95
+ currentValue = newValue;
96
+ });
97
+ }
98
+ };
99
+ newSetter.origHadSetter = origSetter !== undefined;
100
+ const newGetter = () => {
101
+ if (origGetter !== undefined) {
102
+ currentValue = origGetter.apply(target); // call the getter
103
+ }
104
+ return currentValue;
105
+ };
106
+ newGetter.origHadGetter = origGetter !== undefined;
107
+ Object.defineProperty(target, key, {
108
+ set: newSetter,
109
+ get: newGetter,
110
+ enumerable: origOwnDescriptor !== undefined ? origOwnDescriptor === null || origOwnDescriptor === void 0 ? void 0 : origOwnDescriptor.enumerable : true,
111
+ configurable: true, // Allow to delete the property. Note that you should use the {@link deleteProperty} function
112
+ });
113
+ }
114
+ withUnspecificChange(changeFn) {
115
+ return runChangeOperation(this.target, new UnspecificObjectChange(this.target), [getChangeHooksForObject(this.target).unspecificChange], changeFn);
116
+ }
117
+ get(fake_target, key, receiver) {
118
+ var _a, _b, _c;
119
+ // Validity check
120
+ const target = this.target;
121
+ if (receiver !== target) {
122
+ throw new Error("Invalid state. Get was called on a different object than this write-tracker-proxy (which is set as the prototype) is for. Did you clone the object, resulting in shared prototypes?");
123
+ }
124
+ // Check for and use change tracker class:
125
+ const changeTrackerClass = (_a = this.trackingConfig) === null || _a === void 0 ? void 0 : _a.changeTracker;
126
+ if (changeTrackerClass !== undefined) {
127
+ let propOnSupervisor = Object.getOwnPropertyDescriptor(changeTrackerClass.prototype, key);
128
+ if (propOnSupervisor !== undefined) { // Supervisor class is responsible for the property (or method) ?
129
+ //@ts-ignore
130
+ if (propOnSupervisor.get) { // Prop is a getter?
131
+ return propOnSupervisor.get.apply(target);
132
+ }
133
+ else if (propOnSupervisor.value) { // Prop is a value, meaning a function. (Supervisors don't have fields)
134
+ return changeTrackerClass.prototype[key];
135
+ }
136
+ }
137
+ else {
138
+ const origValue = changeTrackerClass.prototype[key];
139
+ if (typeof origValue === "function") {
140
+ origMethod = origValue;
141
+ if ((_b = this.trackingConfig) === null || _b === void 0 ? void 0 : _b.knownHighLevelMethods.has(key)) {
142
+ return trapForHighLevelWriterMethod;
143
+ }
144
+ else if (!((_c = this.trackingConfig) === null || _c === void 0 ? void 0 : _c.readOnlyMethods.has(key)) && !(key in Object.prototype)) { // Read-write method that was not handled directly by change tracker class?
145
+ return trapForGenericWriterMethod; // Assume the worst, that it is a writer method
146
+ }
147
+ }
148
+ }
149
+ }
150
+ // return this.target[key]; // This line does not work because it does not consult ObjectProxyHandler#getPrototypeOf and therefore uses the actual tinkered prototype chain which has this proxy in there and calls get (endless recursion)
151
+ const propDesc = getPropertyDescriptor(target, key);
152
+ if (propDesc !== undefined) {
153
+ let result;
154
+ let getter = propDesc.get;
155
+ if (getter !== undefined) {
156
+ result = getter.apply(target);
157
+ }
158
+ else {
159
+ result = propDesc.value;
160
+ }
161
+ return result;
162
+ }
163
+ var origMethod = undefined;
164
+ /**
165
+ * Calls the unspecificChange listeners
166
+ * @param args
167
+ */
168
+ function trapForGenericWriterMethod(...args) {
169
+ if (this !== receiver) {
170
+ //throw new Error("Invalid state. Method was called on invalid target")
171
+ }
172
+ return runChangeOperation(target, new UnspecificObjectChange(target), [getChangeHooksForObject(target).unspecificChange], () => {
173
+ return origMethod.apply(this, args); // call original method
174
+ });
175
+ }
176
+ /**
177
+ * Wraps it in runAndCallListenersOnce_after
178
+ * @param args
179
+ */
180
+ function trapForHighLevelWriterMethod(...args) {
181
+ if (this !== receiver) {
182
+ //throw new Error("Invalid state. Method was called on invalid target")
183
+ }
184
+ return runChangeOperation(target, undefined, [], () => {
185
+ return origMethod.apply(this, args); // call original method
186
+ });
187
+ }
188
+ }
189
+ set(fake_target, key, value, receiver) {
190
+ // Validity check
191
+ if (receiver !== this.target) {
192
+ throw new Error("Invalid state. Set was called on a different object than this write-tracker-proxy (which is set as the prototype) is for. Did you clone the object, resulting in shared prototypes?");
193
+ }
194
+ runChangeOperation(this.target, new UnspecificObjectChange(this.target), [getChangeHooksForObject(this.target).changeOwnKeys], () => {
195
+ // if this "set" method got called, there is no setter trap installed yet
196
+ this.installSetterTrap(key);
197
+ //@ts-ignore
198
+ this.target[key] = value; // Set value again. this should call the setter trap
199
+ });
200
+ return true;
201
+ }
202
+ getPrototypeOf(target) {
203
+ return this.origPrototype;
204
+ }
205
+ defineProperty(target, property, attributes) {
206
+ throw new Error("Defineproperty not yet supported");
207
+ }
208
+ }
209
+ //# sourceMappingURL=objectChangeTracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectChangeTracking.js","sourceRoot":"","sources":["../../objectChangeTracking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { PartialGraph } from "./common";
2
+ export declare const changeTrackedOrigObjects: PartialGraph;
3
+ /**
4
+ *
5
+ * @param obj
6
+ */
7
+ export declare function installChangeTracker(obj: object): void;
8
+ /**
9
+ * Use this to delete properties on objects that have a write tracker installed. Otherwise they are not deletable and the write tracker cannot track the object's keys modification and inform listeners
10
+ * @param obj
11
+ * @param key
12
+ */
13
+ export declare function deleteProperty<O extends object>(obj: O, key: keyof O): boolean;
14
+ //# sourceMappingURL=origChangeTracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"origChangeTracking.d.ts","sourceRoot":"","sources":["../../origChangeTracking.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAA6C,MAAM,UAAU,CAAC;AAUlF,eAAO,MAAM,wBAAwB,cAAqB,CAAC;AAI3D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,QA2B/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,WAepE"}
@@ -0,0 +1,58 @@
1
+ // This file has functions / classes that allow to watch writes to the original unproxied objects (or arrays/sets/maps)
2
+ // unproxied=not part of a proxy facade. Technically this can install Proxys as the prototype, to catch writes.
3
+ import { PartialGraph, runChangeOperation, UnspecificObjectChange } from "./common";
4
+ import { ObjectProxyHandler, getChangeHooksForObject } from "./objectChangeTracking";
5
+ import { getTrackingConfigFor } from "./class-trackers/index";
6
+ import { isProxyForAFacade } from "./proxyFacade";
7
+ import { throwError } from "./Util";
8
+ export const changeTrackedOrigObjects = new PartialGraph();
9
+ /**
10
+ *
11
+ * @param obj
12
+ */
13
+ export function installChangeTracker(obj) {
14
+ !isProxyForAFacade(obj) || throwError("Cannot install change tracker on a proxy. The proxy should already support change tracking.");
15
+ if (changeTrackedOrigObjects.hasObj(obj)) {
16
+ return;
17
+ }
18
+ function inner() {
19
+ const trackingConfig = getTrackingConfigFor(obj);
20
+ if (trackingConfig) {
21
+ if (trackingConfig.trackSettingObjectProperties) {
22
+ // Achieve this with the ObjectProxyhandler. It will consider getTrackingConfigFor(obj).changeTracker itsself:
23
+ const proxy = new ObjectProxyHandler(obj, trackingConfig).proxy;
24
+ Object.setPrototypeOf(obj, proxy);
25
+ return;
26
+ }
27
+ if (trackingConfig.changeTracker !== undefined) {
28
+ Object.setPrototypeOf(obj, trackingConfig.changeTracker.prototype);
29
+ }
30
+ }
31
+ else { // Non-special object ?
32
+ const proxy = new ObjectProxyHandler(obj, trackingConfig).proxy;
33
+ Object.setPrototypeOf(obj, proxy);
34
+ }
35
+ }
36
+ inner();
37
+ changeTrackedOrigObjects._register(obj);
38
+ }
39
+ /**
40
+ * Use this to delete properties on objects that have a write tracker installed. Otherwise they are not deletable and the write tracker cannot track the object's keys modification and inform listeners
41
+ * @param obj
42
+ * @param key
43
+ */
44
+ export function deleteProperty(obj, key) {
45
+ if (!changeTrackedOrigObjects.hasObj(obj)) {
46
+ return delete obj[key];
47
+ }
48
+ const doesExist = Object.getOwnPropertyDescriptor(obj, key) !== undefined;
49
+ if (!doesExist) {
50
+ return true;
51
+ }
52
+ return runChangeOperation(obj, new UnspecificObjectChange(obj), [getChangeHooksForObject(obj).changeOwnKeys], () => {
53
+ //@ts-ignore
54
+ obj[key] = undefined; // Set to undefined first, so property change listeners will get informed
55
+ return delete obj[key];
56
+ });
57
+ }
58
+ //# sourceMappingURL=origChangeTracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"origChangeTracking.js","sourceRoot":"","sources":["../../origChangeTracking.ts"],"names":[],"mappings":"AAAA,uHAAuH;AACvH,+GAA+G;AAG/G,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,UAAU,CAAC;AAClF,OAAO,EACH,kBAAkB,EAElB,uBAAuB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,YAAY,EAAE,CAAC;AAI3D;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC5C,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,6FAA6F,CAAC,CAAC;IACrI,IAAG,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO;IACX,CAAC;IAED,SAAS,KAAK;QACV,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,cAAc,CAAC,4BAA4B,EAAE,CAAC;gBAC9C,8GAA8G;gBAC9G,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC;gBAChE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO;YACX,CAAC;YAED,IAAI,cAAc,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;aAAM,CAAC,CAAC,uBAAuB;YAC5B,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC;YAChE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IACD,KAAK,EAAE,CAAC;IAER,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAmB,GAAM,EAAE,GAAY;IACjE,IAAG,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,SAAS,CAAC;IAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE;QAC/G,YAAY;QACZ,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,yEAAyE;QAC/F,OAAO,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ *
3
+ */
4
+ import { ObjKey, PartialGraph } from "./common";
5
+ export declare abstract class ProxyFacade<HANDLER extends FacadeProxyHandler<any>> extends PartialGraph {
6
+ /**
7
+ * Treats them like functions, meaning, they get a proxied 'this'. WatchProxies will see the access to the real properties
8
+ */
9
+ propertyAccessorsAsWhiteBox: boolean;
10
+ protected objectsToProxyHandlers: WeakMap<object, HANDLER>;
11
+ protected abstract crateHandler(target: object, facade: any): HANDLER;
12
+ getProxyFor<O>(value: O): O;
13
+ /**
14
+ *
15
+ * @param value
16
+ * @return the original non-proxied value
17
+ */
18
+ getUnproxiedValue<O>(value: O): O;
19
+ getHandlerFor(obj: object): HANDLER;
20
+ }
21
+ export declare abstract class FacadeProxyHandler<FACADE extends ProxyFacade<any>> implements ProxyHandler<object> {
22
+ target: object;
23
+ proxy: object;
24
+ facade: FACADE;
25
+ constructor(target: object, facade: FACADE);
26
+ deleteProperty(target: object, key: string | symbol): boolean;
27
+ defineProperty(target: object, property: string | symbol, attributes: PropertyDescriptor): boolean;
28
+ get(fake_target: object, p: string | symbol, receiver: any): any;
29
+ protected rawRead(key: ObjKey): unknown;
30
+ set(fake_target: object, p: string | symbol, value: any, receiver: any): boolean;
31
+ protected rawChange(p: string | symbol, newUnproxiedValue: any): void;
32
+ }
33
+ export declare function isProxyForAFacade(obj: object): boolean;
34
+ /**
35
+ * Makes the obj throw an error when trying to access it
36
+ * @param obj
37
+ * @param message
38
+ * @param cause
39
+ */
40
+ export declare function invalidateObject(obj: object, message: string, cause?: Error): void;
41
+ /**
42
+ * @returns the real real origial object from the real world
43
+ */
44
+ export declare function getGlobalOrig<T extends object>(obj: T): T;
45
+ //# sourceMappingURL=proxyFacade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyFacade.d.ts","sourceRoot":"","sources":["../../proxyFacade.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAIH,MAAM,EACN,YAAY,EAEf,MAAM,UAAU,CAAC;AAIlB,8BAAsB,WAAW,CAAC,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,CAAE,SAAQ,YAAY;IAE3F;;OAEG;IACI,2BAA2B,UAAQ;IAG1C,SAAS,CAAC,sBAAsB,2BAAkC;IAElE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO;IAErE,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAwB3B;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAQjC,aAAa,CAAC,GAAG,EAAE,MAAM,GAC4B,OAAO;CAG/D;AAED,8BAAsB,kBAAkB,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,CAAC,CAAE,YAAW,YAAY,CAAC,MAAM,CAAC;IACrG,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBAEH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAU1C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAK7D,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO;IAIlG,GAAG,CAAE,WAAW,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAC,GAAG;IA+BxD,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKvC,GAAG,CAAC,WAAW,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAG,MAAM,EAAE,KAAK,EAAC,GAAG,EAAE,QAAQ,EAAC,GAAG;IAoBlE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,iBAAiB,EAAE,GAAG;CAOjE;AAQD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,WAE5C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,QAoC3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAMzD"}