@wovin/core 0.0.1-RC9 → 0.0.2

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 (143) hide show
  1. package/dist/applog/applog-helpers.d.ts +23 -0
  2. package/dist/applog/applog-helpers.d.ts.map +1 -0
  3. package/dist/applog/applog-utils.d.ts +41 -0
  4. package/dist/applog/applog-utils.d.ts.map +1 -0
  5. package/dist/applog/datom-types.d.ts +84 -0
  6. package/dist/applog/datom-types.d.ts.map +1 -0
  7. package/dist/applog.d.ts +4 -70
  8. package/dist/applog.d.ts.map +1 -0
  9. package/dist/applog.min.js +2 -0
  10. package/dist/chunk-5R2ELTEJ.min.js +40 -0
  11. package/dist/chunk-5R2ELTEJ.min.js.map +1 -0
  12. package/dist/chunk-7IDQIMQO.min.js +1 -0
  13. package/dist/chunk-F3MRAJXL.min.js +2 -0
  14. package/dist/{types.js.map → chunk-F3MRAJXL.min.js.map} +1 -1
  15. package/dist/chunk-HHXZXKNM.min.js +7 -0
  16. package/dist/chunk-HHXZXKNM.min.js.map +1 -0
  17. package/dist/chunk-KESATLM4.min.js +8 -0
  18. package/dist/chunk-KESATLM4.min.js.map +1 -0
  19. package/dist/chunk-LECZSORU.min.js +2 -0
  20. package/dist/chunk-LECZSORU.min.js.map +1 -0
  21. package/dist/chunk-NGPPHX5A.min.js +2 -0
  22. package/dist/chunk-NGPPHX5A.min.js.map +1 -0
  23. package/dist/chunk-PL6CNZTW.min.js +2 -0
  24. package/dist/chunk-PL6CNZTW.min.js.map +1 -0
  25. package/dist/chunk-RPPZKO5L.min.js +1 -0
  26. package/dist/index.d.ts +8 -12
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.min.js +2 -0
  29. package/dist/index.min.js.map +1 -0
  30. package/dist/ipfs/car.d.ts +15 -0
  31. package/dist/ipfs/car.d.ts.map +1 -0
  32. package/dist/ipfs/ipfs-utils.d.ts +17 -0
  33. package/dist/ipfs/ipfs-utils.d.ts.map +1 -0
  34. package/dist/ipfs.d.ts +3 -36
  35. package/dist/ipfs.d.ts.map +1 -0
  36. package/dist/ipfs.min.js +2 -0
  37. package/dist/mobx/mobx-utils.d.ts +67 -0
  38. package/dist/mobx/mobx-utils.d.ts.map +1 -0
  39. package/dist/pubsub/connector.d.ts +7 -0
  40. package/dist/pubsub/connector.d.ts.map +1 -0
  41. package/dist/pubsub/publication.d.ts +6 -0
  42. package/dist/pubsub/publication.d.ts.map +1 -0
  43. package/dist/{pubsub.d.cts → pubsub/pubsub-types.d.ts} +7 -12
  44. package/dist/pubsub/pubsub-types.d.ts.map +1 -0
  45. package/dist/pubsub.d.ts +4 -41
  46. package/dist/pubsub.d.ts.map +1 -0
  47. package/dist/pubsub.min.js +2 -0
  48. package/dist/query/basic.d.ts +65 -0
  49. package/dist/query/basic.d.ts.map +1 -0
  50. package/dist/query/divergences.d.ts +12 -0
  51. package/dist/query/divergences.d.ts.map +1 -0
  52. package/dist/query/matchers.d.ts +4 -0
  53. package/dist/query/matchers.d.ts.map +1 -0
  54. package/dist/query.d.ts +5 -0
  55. package/dist/query.d.ts.map +1 -0
  56. package/dist/query.min.js +2 -0
  57. package/dist/query.min.js.map +1 -0
  58. package/dist/stream/basic.d.ts +34 -0
  59. package/dist/stream/basic.d.ts.map +1 -0
  60. package/dist/stream/filters.d.ts +38 -0
  61. package/dist/stream/filters.d.ts.map +1 -0
  62. package/dist/{mapped-8h8bwRuM.d.ts → stream/mapped.d.ts} +5 -6
  63. package/dist/stream/mapped.d.ts.map +1 -0
  64. package/dist/{writeable-0WbsIiQn.d.cts → stream/writeable.d.ts} +7 -6
  65. package/dist/stream/writeable.d.ts.map +1 -0
  66. package/dist/stream.d.ts +5 -44
  67. package/dist/stream.d.ts.map +1 -0
  68. package/dist/stream.min.js +2 -0
  69. package/dist/stream.min.js.map +1 -0
  70. package/dist/types/typescript-utils.d.ts +33 -0
  71. package/dist/types/typescript-utils.d.ts.map +1 -0
  72. package/dist/types.d.ts +2 -4
  73. package/dist/types.d.ts.map +1 -0
  74. package/dist/types.min.js +2 -0
  75. package/dist/types.min.js.map +1 -0
  76. package/dist/utils.d.ts +1 -2
  77. package/dist/utils.d.ts.map +1 -0
  78. package/dist/utils.min.js +1 -0
  79. package/dist/utils.min.js.map +1 -0
  80. package/package.json +80 -46
  81. package/dist/applog.cjs +0 -85
  82. package/dist/applog.cjs.map +0 -1
  83. package/dist/applog.d.cts +0 -70
  84. package/dist/applog.js +0 -85
  85. package/dist/chunk-F3FYYIAV.js +0 -11
  86. package/dist/chunk-GT5X2WN4.cjs +0 -59
  87. package/dist/chunk-GT5X2WN4.cjs.map +0 -1
  88. package/dist/chunk-JSAJQXI2.cjs +0 -577
  89. package/dist/chunk-JSAJQXI2.cjs.map +0 -1
  90. package/dist/chunk-KDR7QXOQ.js +0 -56
  91. package/dist/chunk-KDR7QXOQ.js.map +0 -1
  92. package/dist/chunk-KGTU6PJ3.js +0 -577
  93. package/dist/chunk-KGTU6PJ3.js.map +0 -1
  94. package/dist/chunk-KHY3SRML.js +0 -768
  95. package/dist/chunk-KHY3SRML.js.map +0 -1
  96. package/dist/chunk-OOC3HK3E.cjs +0 -56
  97. package/dist/chunk-OOC3HK3E.cjs.map +0 -1
  98. package/dist/chunk-QXNFGJ5R.js +0 -59
  99. package/dist/chunk-QXNFGJ5R.js.map +0 -1
  100. package/dist/chunk-UOPZAYFM.cjs +0 -11
  101. package/dist/chunk-UOPZAYFM.cjs.map +0 -1
  102. package/dist/chunk-ZPOYKHY6.cjs +0 -768
  103. package/dist/chunk-ZPOYKHY6.cjs.map +0 -1
  104. package/dist/index.cjs +0 -87
  105. package/dist/index.cjs.map +0 -1
  106. package/dist/index.d.cts +0 -12
  107. package/dist/index.js +0 -87
  108. package/dist/index.js.map +0 -1
  109. package/dist/ipfs.cjs +0 -28
  110. package/dist/ipfs.cjs.map +0 -1
  111. package/dist/ipfs.d.cts +0 -36
  112. package/dist/ipfs.js +0 -28
  113. package/dist/mapped-mkKwhQgZ.d.cts +0 -20
  114. package/dist/pubsub.cjs +0 -14
  115. package/dist/pubsub.cjs.map +0 -1
  116. package/dist/pubsub.js +0 -14
  117. package/dist/pubsub.js.map +0 -1
  118. package/dist/queries.cjs +0 -112
  119. package/dist/queries.cjs.map +0 -1
  120. package/dist/queries.d.cts +0 -141
  121. package/dist/queries.d.ts +0 -141
  122. package/dist/queries.js +0 -112
  123. package/dist/queries.js.map +0 -1
  124. package/dist/stream.cjs +0 -37
  125. package/dist/stream.cjs.map +0 -1
  126. package/dist/stream.d.cts +0 -44
  127. package/dist/stream.js +0 -37
  128. package/dist/types-A9kYLtyU.d.cts +0 -153
  129. package/dist/types-A9kYLtyU.d.ts +0 -153
  130. package/dist/types.cjs +0 -46
  131. package/dist/types.cjs.map +0 -1
  132. package/dist/types.d.cts +0 -4
  133. package/dist/types.js +0 -46
  134. package/dist/utils.cjs +0 -1
  135. package/dist/utils.cjs.map +0 -1
  136. package/dist/utils.d.cts +0 -2
  137. package/dist/utils.js +0 -1
  138. package/dist/writeable-r_920qCb.d.ts +0 -16
  139. /package/dist/{applog.js.map → applog.min.js.map} +0 -0
  140. /package/dist/{chunk-F3FYYIAV.js.map → chunk-7IDQIMQO.min.js.map} +0 -0
  141. /package/dist/{ipfs.js.map → chunk-RPPZKO5L.min.js.map} +0 -0
  142. /package/dist/{stream.js.map → ipfs.min.js.map} +0 -0
  143. /package/dist/{utils.js.map → pubsub.min.js.map} +0 -0
@@ -1,768 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
- var _chunkUOPZAYFMcjs = require('./chunk-UOPZAYFM.cjs');
4
-
5
- // src/data/applog-utils.ts
6
- var _besonderslogger = require('besonders-logger');
7
- var _datefns = require('date-fns');
8
- var _mobx = require('mobx');
9
- var _safestablestringify = require('safe-stable-stringify'); var _safestablestringify2 = _interopRequireDefault(_safestablestringify);
10
- var { WARN, LOG, DEBUG, VERBOSE, ERROR } = _besonderslogger.Logger.setup(_besonderslogger.Logger.DEBUG);
11
- var isoDateStrCompare = (strA, strB, dir = "asc") => dir === "asc" ? strA.localeCompare(strB, "en-US") : strB.localeCompare(strA, "en-US");
12
- function sortApplogsByTs(appLogArray, dir = "asc") {
13
- return appLogArray.sort((a, b) => isoDateStrCompare(a.ts, b.ts, dir));
14
- }
15
- var isTsBefore = (log, logToCompare) => _datefns.isBefore.call(void 0, new Date(log.ts), new Date(logToCompare.ts));
16
- var uniqueEnFromAppLogs = (appLogArray) => [...new Set(appLogArray.map((eachLog) => eachLog.en))];
17
- var areApplogsEqual = (logA, logB) => _mobx.comparer.structural(logA, logB);
18
- var removeDuplicateAppLogs = (appLogArray) => {
19
- const logMap = /* @__PURE__ */ new Map();
20
- for (const eachLog of appLogArray) {
21
- if (!eachLog) {
22
- ERROR(`falsy entry in applogs`, appLogArray);
23
- throw new Error(`falsy entry in applogs`);
24
- }
25
- logMap.set(_safestablestringify2.default.call(void 0, eachLog), eachLog);
26
- }
27
- return Array.from(logMap.values());
28
- };
29
- var getHashID = (stringifiable, lngth = 8) => cyrb53hash(_safestablestringify2.default.call(void 0, stringifiable), 31, lngth);
30
- function isVariable(x) {
31
- return typeof x === "string" && x.startsWith("?");
32
- }
33
- function variableNameWithoutQuestionmark(str) {
34
- return str.slice(1);
35
- }
36
- function isStaticPattern(x) {
37
- if (!["string", "boolean", "number", "function"].includes(typeof x))
38
- WARN(`Unhandled pattern value type:`, typeof x, x);
39
- return !isVariable(x) && ["string", "boolean", "number"].includes(typeof x);
40
- }
41
- function resolveOrRemoveVariables(pattern, candidate) {
42
- let variablesToFill = {};
43
- const newPattern = Object.entries(pattern).reduce((acc, [patternKey, patternValue]) => {
44
- if (isVariable(patternValue)) {
45
- const varName = variableNameWithoutQuestionmark(patternValue);
46
- const candidateValue = candidate[varName];
47
- if (candidateValue) {
48
- acc[patternKey] = candidateValue;
49
- } else {
50
- variablesToFill[patternKey] = varName;
51
- }
52
- } else {
53
- acc[patternKey] = patternValue;
54
- }
55
- return acc;
56
- }, {});
57
- return [newPattern, variablesToFill];
58
- }
59
- function matchVariable(variable, triplePart, context) {
60
- if (context.hasOwnProperty(variable)) {
61
- const bound = context[variable];
62
- const match = matchPart(bound, triplePart, context);
63
- VERBOSE("[matchVariable] match?", variable, bound, match);
64
- return match;
65
- }
66
- VERBOSE("[matchVariable] initializing variable", variable, "to", triplePart);
67
- return { ...context, [variable]: triplePart };
68
- }
69
- function matchPartStatic(field, patternPart, atomPart) {
70
- VERBOSE("[matchPartStatic]", field, patternPart, patternPart === atomPart ? "===" : "!==", atomPart);
71
- const result = (() => {
72
- if (typeof patternPart === "function") {
73
- return patternPart(atomPart);
74
- }
75
- if (Array.isArray(patternPart) && !Array.isArray(atomPart)) {
76
- return patternPart.includes(atomPart);
77
- }
78
- return patternPart === atomPart;
79
- })();
80
- VERBOSE("[matchPartStatic] =>", field.startsWith("!") ? "!" : "", result);
81
- if (field.startsWith("!")) {
82
- return !result;
83
- } else {
84
- return result;
85
- }
86
- }
87
- function matchPart(patternPart, atomPart, context) {
88
- if (!context) {
89
- VERBOSE("[matchPart] no context");
90
- return null;
91
- }
92
- if (typeof patternPart === "string") {
93
- if (isVariable(patternPart)) {
94
- return matchVariable(patternPart, atomPart, context);
95
- }
96
- }
97
- VERBOSE("[matchPart]", patternPart, patternPart === atomPart ? "===" : "!==", atomPart);
98
- if (typeof patternPart === "function") {
99
- return patternPart(atomPart) ? context : null;
100
- }
101
- return patternPart === atomPart ? context : null;
102
- }
103
- function matchPattern(pattern, applog, context) {
104
- return Object.entries(pattern).reduce((context2, [field, patternValue]) => {
105
- const applogValue = applog[field];
106
- const patternValT = patternValue;
107
- return matchPart(patternValT, applogValue, context2);
108
- }, context);
109
- }
110
- function actualize(context, find) {
111
- return Object.fromEntries(find.map((findField) => {
112
- if (context === null) {
113
- throw new Error(`actualize context is null ${find}`);
114
- }
115
- return [
116
- isVariable(findField) ? findField.replace(/^\?/, "") : findField,
117
- isVariable(findField) ? context[findField] : findField
118
- ];
119
- }));
120
- }
121
- var sum = function sum2(array) {
122
- var num = 0;
123
- for (var i = 0, l = array.length; i < l; i++)
124
- num += array[i];
125
- return num;
126
- };
127
- var mean = function mean2(array) {
128
- return sum(array) / array.length;
129
- };
130
- var arrStats = {
131
- max: function(array) {
132
- return Math.max.apply(null, array);
133
- },
134
- min: function(array) {
135
- return Math.min.apply(null, array);
136
- },
137
- range: function(array) {
138
- return arrStats.max(array) - arrStats.min(array);
139
- },
140
- midrange: function(array) {
141
- return arrStats.range(array) / 2;
142
- },
143
- sum,
144
- mean,
145
- average: mean,
146
- median: function(array) {
147
- array.sort(function(a, b) {
148
- return a - b;
149
- });
150
- var mid = array.length / 2;
151
- return mid % 1 ? array[mid - 0.5] : (array[mid - 1] + array[mid]) / 2;
152
- },
153
- modes: function(array) {
154
- if (!array.length)
155
- return [];
156
- var modeMap = {}, maxCount = 0, modes = [];
157
- array.forEach(function(val) {
158
- if (!modeMap[val])
159
- modeMap[val] = 1;
160
- else
161
- modeMap[val]++;
162
- if (modeMap[val] > maxCount) {
163
- modes = [val];
164
- maxCount = modeMap[val];
165
- } else if (modeMap[val] === maxCount) {
166
- modes.push(val);
167
- maxCount = modeMap[val];
168
- }
169
- });
170
- return modes;
171
- },
172
- variance: function(array) {
173
- var mean3 = arrStats.mean(array);
174
- return arrStats.mean(array.map(function(num) {
175
- return Math.pow(num - mean3, 2);
176
- }));
177
- },
178
- standardDeviation: function(array) {
179
- return Math.sqrt(arrStats.variance(array));
180
- },
181
- meanAbsoluteDeviation: function(array) {
182
- var mean3 = arrStats.mean(array);
183
- return arrStats.mean(array.map(function(num) {
184
- return Math.abs(num - mean3);
185
- }));
186
- },
187
- zScores: function(array) {
188
- var mean3 = arrStats.mean(array);
189
- var standardDeviation = arrStats.standardDeviation(array);
190
- return array.map(function(num) {
191
- return (num - mean3) / standardDeviation;
192
- });
193
- }
194
- };
195
- arrStats.average = arrStats.mean;
196
- var tsNearlySame = (timeA, timeB) => timeB.startsWith(timeA.slice(0, timeA.length - 4));
197
- var cyrb53hash = function(str, seed = 13, strLength) {
198
- if (!_optionalChain([str, 'optionalAccess', _2 => _2.length])) {
199
- throw new Error(`Empty string: ${str}`);
200
- }
201
- let h1 = 3735928559 ^ seed;
202
- let h2 = 1103547991 ^ seed;
203
- for (let i = 0, ch; i < str.length; i++) {
204
- ch = str.charCodeAt(i);
205
- h1 = Math.imul(h1 ^ ch, 2654435761);
206
- h2 = Math.imul(h2 ^ ch, 1597334677);
207
- }
208
- h1 = Math.imul(h1 ^ h1 >>> 16, 2246822507) ^ Math.imul(h2 ^ h2 >>> 13, 3266489909);
209
- h2 = Math.imul(h2 ^ h2 >>> 16, 2246822507) ^ Math.imul(h1 ^ h1 >>> 13, 3266489909);
210
- const asHex = (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(16);
211
- return asHex.slice(-strLength).padStart(strLength, "0");
212
- };
213
- function arraysContainSameElements(arr1, arr2) {
214
- if (arr1.length !== arr2.length) {
215
- return false;
216
- }
217
- const sortedArr1 = [...arr1].sort();
218
- const sortedArr2 = [...arr2].sort();
219
- for (let i = 0; i < sortedArr1.length; i++) {
220
- if (sortedArr1[i] !== sortedArr2[i]) {
221
- return false;
222
- }
223
- }
224
- return true;
225
- }
226
- function dateNowIso() {
227
- const now = /* @__PURE__ */ new Date();
228
- return now.toISOString();
229
- }
230
-
231
- // src/mobx/mobx-utils.ts
232
-
233
-
234
-
235
-
236
-
237
-
238
-
239
-
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
- var { WARN: WARN2, LOG: LOG2, DEBUG: DEBUG2, VERBOSE: VERBOSE2, ERROR: ERROR2 } = _besonderslogger.Logger.setup(_besonderslogger.Logger.INFO);
252
- _mobx.configure.call(void 0, {
253
- enforceActions: "always"
254
- // disableErrorBoundaries: true // (i) this can be useful in case of exceptions to see where they were caused - https://mobx.js.org/configuration.html#disableerrorboundaries-boolean
255
- // computedRequiresReaction: true,
256
- // reactionRequiresObservable: true,
257
- // observableRequiresReaction: true,
258
- });
259
- if (!new class {
260
- constructor() {
261
- _chunkUOPZAYFMcjs.__publicField.call(void 0, this, "xyz");
262
- }
263
- }().hasOwnProperty("xyz"))
264
- throw new Error("Transpiler is not configured correctly");
265
- if (typeof window === "object") {
266
- window.getDependencyTree = _mobx.getDependencyTree;
267
- window.getObserverTree = _mobx.getObserverTree;
268
- }
269
- VERBOSE2.isDisabled || _mobx.spy.call(void 0, (event) => {
270
- VERBOSE2(`[mobx]`, event);
271
- });
272
- var createDebugName = ({ caller, stream, pattern: args }) => {
273
- const str = `${_optionalChain([stream, 'optionalAccess', _3 => _3.name]) ? stream.name + " | " : ""}${_nullishCoalesce(caller, () => ( "caller?"))}${args ? `{${typeof args === "string" ? args : _safestablestringify2.default.call(void 0, args)}}` : ""}`;
274
- return str;
275
- };
276
- var createDebugNameObj = (args) => {
277
- return { name: createDebugName(args) };
278
- };
279
- function computedStructuralComparer(a, b) {
280
- return _mobx.untracked.call(void 0, () => _mobx.comparer.structural(a.get(), b.get()));
281
- }
282
- function applogStreamComparer(a, b) {
283
- return _mobx.comparer.shallow(a.applogs, b.applogs);
284
- }
285
- function queryNodesComparer(a, b) {
286
- if (a.size !== b.size)
287
- return false;
288
- for (let i = 0; i < a.size; i++) {
289
- const nodeA = a.nodes[i];
290
- const nodeB = b.nodes[i];
291
- VERBOSE2(`queryNodesComparer`, i, nodeA, nodeB);
292
- if (!_mobx.comparer.structural(nodeA.variables, nodeB.variables)) {
293
- return false;
294
- }
295
- if (!applogStreamComparer(nodeA.logsOfThisNode, nodeB.logsOfThisNode)) {
296
- return false;
297
- }
298
- }
299
- return true;
300
- }
301
- var observableArrayMapID = 0;
302
- function observableArrayMap(fn, { name, equals } = {}) {
303
- VERBOSE2(`[observableArrayMap] create`, { fnname: fn.name, fn, name, equals });
304
- const debugName = `observableArrayMap@${++observableArrayMapID}{${name}}`;
305
- let observableArr;
306
- let items;
307
- function runAndTrack() {
308
- reaction2.track(() => {
309
- DEBUG2(`[${debugName}] runAndTrack:`, { name: _nullishCoalesce(name, () => ( fn.name)), fn });
310
- items = fn();
311
- VERBOSE2(`[${debugName}] runAndTrack =>`, items);
312
- });
313
- }
314
- const reaction2 = new (0, _mobx.Reaction)(debugName, (...args) => {
315
- VERBOSE2(`[${debugName}] reaction.invalidate`, args);
316
- runAndTrack();
317
- _mobx.runInAction.call(void 0, () => {
318
- if (!(_nullishCoalesce(equals, () => ( _mobx.comparer.structural)))(observableArr, items)) {
319
- observableArr.replace(items);
320
- }
321
- });
322
- });
323
- runAndTrack();
324
- observableArr = _mobx.observable.array(
325
- items,
326
- /* ['NEVER'] as T[] */
327
- { deep: false, name }
328
- );
329
- VERBOSE2(`[${debugName}] deps of reaction`, _mobx.getDependencyTree.call(void 0, reaction2), "array:", _mobx.getDependencyTree.call(void 0, observableArr), {
330
- reaction: reaction2,
331
- observableArr
332
- });
333
- const unobserveUnobserving = _mobx.onBecomeUnobserved.call(void 0, observableArr, () => {
334
- VERBOSE2(`[observableArrayMap] dispose`);
335
- reaction2.dispose();
336
- unobserveUnobserving();
337
- });
338
- return observableArr;
339
- }
340
- function computedFnDeepCompare(fn, keepAliveOrOptions = false) {
341
- if (_mobx.isAction.call(void 0, fn))
342
- throw new Error("computedFnDeepCompare shouldn't be used on actions");
343
- let memoWarned = false;
344
- let i = 0;
345
- const opts = typeof keepAliveOrOptions === "boolean" ? { keepAlive: keepAliveOrOptions } : keepAliveOrOptions;
346
- const map = /* @__PURE__ */ new Map();
347
- return function(...args) {
348
- let existing;
349
- const untrackedArgs = _mobx.untracked.call(void 0, () => args);
350
- const debugName = `computedFnDeepCompare(${opts.name || fn.name}#${++i})${opts.argsDebugName ? `{${opts.argsDebugName(...args)}}` : ""}`;
351
- for (let [existingArgs, computation2] of map.entries()) {
352
- if (_mobx.comparer.structural(existingArgs, untrackedArgs)) {
353
- existing = computation2;
354
- break;
355
- }
356
- }
357
- if (existing) {
358
- const cachedResult = existing.get();
359
- VERBOSE2(`[${debugName}] cache hit`, { untrackedArgs, cachedResult });
360
- return cachedResult;
361
- }
362
- if (!opts.keepAlive && !_mobx._isComputingDerivation.call(void 0, )) {
363
- if (!memoWarned && _mobx._getGlobalState.call(void 0, ).computedRequiresReaction) {
364
- console.warn(
365
- "invoking a computedFn from outside an reactive context won't be memoized, unless keepAlive is set"
366
- );
367
- memoWarned = true;
368
- }
369
- return fn.apply(this, args);
370
- }
371
- VERBOSE2(`[${debugName}] new computation`, { untrackedArgs });
372
- let latestValue;
373
- const computation = _mobx.computed.call(void 0,
374
- () => {
375
- VERBOSE2(`[${debugName}] update->rerun`, _mobx.untracked.call(void 0, () => ({ args })), fn);
376
- VERBOSE2.isDisabled || _mobx.trace.call(void 0, );
377
- return latestValue = fn.apply(this, args);
378
- },
379
- {
380
- ...opts,
381
- name: debugName
382
- }
383
- );
384
- VERBOSE2(`[${debugName}] deps`, _mobx.getDependencyTree.call(void 0, computation), { untrackedArgs });
385
- map.set(untrackedArgs, computation);
386
- if (!opts.keepAlive) {
387
- const unobserveUnobserving = _mobx.onBecomeUnobserved.call(void 0, computation, () => {
388
- VERBOSE2(`[${debugName}] dispose`, computation);
389
- map.delete(untrackedArgs);
390
- if (opts.onCleanup)
391
- opts.onCleanup(latestValue, ...args);
392
- latestValue = void 0;
393
- unobserveUnobserving();
394
- });
395
- }
396
- return computation.get();
397
- };
398
- }
399
- function prettifyStreamName(input) {
400
- let depth = 0;
401
- let result = "";
402
- let insideCurlyBraces = 0;
403
- for (let i = 0; i < input.length; i++) {
404
- const char = input[i];
405
- if (char === "(") {
406
- result += char + "\n" + " ".repeat(++depth);
407
- } else if (char === ")") {
408
- result += "\n" + " ".repeat(--depth) + char;
409
- } else if (char === "," && insideCurlyBraces === 0) {
410
- result += char + "\n" + " ".repeat(depth);
411
- } else if (char === "{" && insideCurlyBraces === 0) {
412
- insideCurlyBraces++;
413
- result += char + "\n" + " ".repeat(depth + 1);
414
- } else if (char === "}" && insideCurlyBraces === 1) {
415
- insideCurlyBraces--;
416
- result += "\n" + " ".repeat(depth) + char;
417
- } else if (char === "{" && insideCurlyBraces > 0) {
418
- insideCurlyBraces++;
419
- result += char;
420
- } else if (char === "}" && insideCurlyBraces > 1) {
421
- insideCurlyBraces--;
422
- result += char;
423
- } else {
424
- result += char;
425
- }
426
- }
427
- return result;
428
- }
429
-
430
- // src/stream/basic.ts
431
-
432
-
433
- var { WARN: WARN3, LOG: LOG3, DEBUG: DEBUG3, VERBOSE: VERBOSE3, ERROR: ERROR3 } = _besonderslogger.Logger.setup(_besonderslogger.Logger.INFO, { prefix: "[stream]" });
434
- function isInitEvent(event) {
435
- return event.init !== void 0;
436
- }
437
- var ApplogStream = class {
438
- constructor(parents, filters, _applogs = [], name) {
439
- this._applogs = _applogs;
440
- this.name = name;
441
- _chunkUOPZAYFMcjs.__publicField.call(void 0, this, "filters");
442
- _chunkUOPZAYFMcjs.__publicField.call(void 0, this, "parents");
443
- _chunkUOPZAYFMcjs.__publicField.call(void 0, this, "_subscribers", []);
444
- this.parents = parents && !Array.isArray(parents) ? [parents] : parents;
445
- this.filters = filters;
446
- if (_optionalChain([this, 'access', _4 => _4.parents, 'optionalAccess', _5 => _5.length]) === 0) {
447
- throw new Error(`Unhandled: empty parents`);
448
- }
449
- _mobx.makeObservable.call(void 0, this, {
450
- // applogs: computed, //observable.shallow,
451
- // applogsSorted: computed,
452
- size: _mobx.computed,
453
- isEmpty: _mobx.computed,
454
- firstLog: _mobx.computed,
455
- latestLog: _mobx.computed
456
- }, { name: `Stream{${name}}` });
457
- }
458
- subscribe(callback) {
459
- this._subscribers.push(callback);
460
- return this.unsubscribe.bind(this, callback);
461
- }
462
- unsubscribe(callback) {
463
- const index = this._subscribers.indexOf(callback);
464
- if (index !== -1) {
465
- this._subscribers.splice(index, 1);
466
- } else
467
- WARN3(`unsubscribe called for non-existent`, callback);
468
- }
469
- notifySubscribers(event) {
470
- DEBUG3(`[stream: ${this.name}] notifying`, this._subscribers.length, "subscribers of", { ...event, subs: this._subscribers });
471
- for (const subscriber of this._subscribers) {
472
- subscriber(event);
473
- }
474
- }
475
- get applogs() {
476
- return this._applogs;
477
- }
478
- map(fn) {
479
- if (!this.applogs.map)
480
- ERROR3(`applogs arr?!`, this.applogs);
481
- return this.applogs.map(fn);
482
- }
483
- get firstLog() {
484
- return this.applogs[0];
485
- }
486
- get latestLog() {
487
- return this.applogs[this.applogs.length - 1];
488
- }
489
- hasApplog(applog, byRef) {
490
- if (byRef) {
491
- return this.applogs.includes(applog);
492
- } else {
493
- const keySet = Object.keys(applog);
494
- return !!this.applogs.find((log) => {
495
- if (!arraysContainSameElements(keySet, Object.keys(log))) {
496
- throw ERROR3(`[hasApplog] field set mismatch:`, { applog, log });
497
- }
498
- return areApplogsEqual(log, applog);
499
- });
500
- }
501
- }
502
- hasApplogWithDiffTs(applog) {
503
- return this.applogs.find((existing) => existing.en === applog.en && existing.at === applog.at && existing.vl === applog.vl && existing.ag === applog.ag);
504
- }
505
- get isEmpty() {
506
- return this.size === 0;
507
- }
508
- get size() {
509
- return this.applogs.length;
510
- }
511
- get untrackedSize() {
512
- return _mobx.untracked.call(void 0, () => this.size);
513
- }
514
- get nameAndSizeUntracked() {
515
- return _mobx.untracked.call(void 0, () => `${this.name} (${this.size})`);
516
- }
517
- get prettyName() {
518
- return prettifyStreamName(this.name);
519
- }
520
- };
521
-
522
- // src/stream/mapped.ts
523
-
524
- var _lodashes = require('lodash-es');
525
-
526
- var { WARN: WARN4, LOG: LOG4, DEBUG: DEBUG4, VERBOSE: VERBOSE4, ERROR: ERROR4 } = _besonderslogger.Logger.setup(_besonderslogger.Logger.INFO);
527
- var MappedApplogStream = class extends ApplogStream {
528
- constructor(parents, filters, _initialLogs, _eventMapper, name) {
529
- super(
530
- parents,
531
- filters,
532
- _mobx.observable.array([..._initialLogs], { deep: false, name: `${name}.array` }),
533
- // ? not sure if array clone is totally necessary - but I also don't want to risk weird bugs
534
- name
535
- );
536
- this._initialLogs = _initialLogs;
537
- this._eventMapper = _eventMapper;
538
- this.name = name;
539
- _chunkUOPZAYFMcjs.__publicField.call(void 0, this, "_parentSubscriptions", /* @__PURE__ */ new Map());
540
- _mobx.makeObservable.call(void 0, this, {
541
- // @ts-expect-error bc it's private
542
- onParentUpdate: _mobx.action
543
- });
544
- this.subscribeToParent();
545
- }
546
- get readOnly() {
547
- if (this.parents.length !== 1)
548
- return true;
549
- return this.parents[0].readOnly;
550
- }
551
- subscribeToParent() {
552
- if (!this.parents.length) {
553
- WARN4(`MappedStream has no parents`, this);
554
- }
555
- if (this._parentSubscriptions.size) {
556
- throw ERROR4(`parents subs must not be called twice`, this);
557
- }
558
- VERBOSE4(`[MappedStream: ${this.name}] subscribing to parents:`, this.parents.map((p) => p.name));
559
- this.parents.forEach((p) => {
560
- const sub = this.onParentUpdate.bind(this, p);
561
- p.subscribe(sub);
562
- this._parentSubscriptions.set(p, sub);
563
- });
564
- }
565
- /**
566
- * // HACK to trigger remap on pattern change in rollingFilter
567
- * should not be used lightly
568
- */
569
- triggerRemap() {
570
- VERBOSE4(`MappedStream{${this.nameAndSizeUntracked}} triggerRemap`);
571
- this.parents.forEach((p) => {
572
- this.onParentUpdate(p, { init: _mobx.untracked.call(void 0, () => _mobx.toJS.call(void 0, p.applogs)) });
573
- });
574
- }
575
- onParentUpdate(stream, event) {
576
- VERBOSE4(`MappedStream{${this.nameAndSizeUntracked}} parentUpdate`, event);
577
- const mapResult = this._eventMapper(event, stream);
578
- VERBOSE4(`MappedStream{${this.nameAndSizeUntracked}} parentUpdate => mapped`, mapResult);
579
- if (isInitEvent(mapResult)) {
580
- ;
581
- this._applogs.replace([...mapResult.init]);
582
- } else {
583
- for (const log of mapResult.added) {
584
- this._applogs.splice(_lodashes.sortedIndexBy.call(void 0, this._applogs, log, "ts"), 0, log);
585
- }
586
- if (mapResult.removed) {
587
- for (const toRemove of mapResult.removed) {
588
- if (!this._applogs.remove(toRemove)) {
589
- if (!isInitEvent(event) && _optionalChain([event, 'access', _6 => _6.removed, 'optionalAccess', _7 => _7.includes, 'call', _8 => _8(toRemove)])) {
590
- DEBUG4(`Ignoring remove event for non-existent because it was part of parent event's removed`, toRemove, event);
591
- } else {
592
- throw ERROR4(`MappedStream{${this.name}} toRemove contained log that doesn't exist`, toRemove, {
593
- stream: this,
594
- event,
595
- mapResult
596
- });
597
- }
598
- }
599
- }
600
- }
601
- }
602
- VERBOSE4(`MappedStream{${this.nameAndSizeUntracked}} parentUpdate => deps?`, _mobx.getDependencyTree.call(void 0, this._applogs));
603
- this.notifySubscribers(mapResult);
604
- }
605
- };
606
-
607
- // src/stream/filters.ts
608
-
609
-
610
-
611
- var { WARN: WARN5, LOG: LOG5, DEBUG: DEBUG5, VERBOSE: VERBOSE5, ERROR: ERROR5 } = _besonderslogger.Logger.setup(_besonderslogger.Logger.INFO);
612
- var rollingFilter = computedFnDeepCompare(function rollingFilter2(stream, pattern, opts = {}) {
613
- let untrackedPattern = getUntrackedPattern(pattern);
614
- let filter = makeFilter(untrackedPattern);
615
- const observableArr = _mobx.observable.array(
616
- _mobx.untracked.call(void 0, () => filter(stream.applogs)),
617
- { deep: false, name: `${stream.name} | ${opts.name || `rollingFilter.array{${_safestablestringify2.default.call(void 0, untrackedPattern)}}`}` }
618
- );
619
- const filterAdded = (event) => {
620
- let mappedEvent;
621
- if (isInitEvent(event)) {
622
- mappedEvent = { init: filter(event.init) };
623
- } else {
624
- mappedEvent = {
625
- added: filter(event.added),
626
- removed: event.removed
627
- // whatever's removed shall be removed
628
- };
629
- }
630
- VERBOSE5(
631
- `rollingFilter{${stream.nameAndSizeUntracked} | ${opts.name ? ` '${opts.name}'}` : ""} parentUpdate`,
632
- untrackedPattern,
633
- event,
634
- "=>",
635
- mappedEvent
636
- );
637
- return mappedEvent;
638
- };
639
- const mappedStream = new MappedApplogStream(
640
- stream,
641
- [...stream.filters, ...opts.extraFilterName ? [opts.extraFilterName] : []],
642
- observableArr,
643
- filterAdded,
644
- `${stream.name} | ${opts.name || `rollingFilter{${_safestablestringify2.default.call(void 0, untrackedPattern)}}`}`
645
- );
646
- const cancelPatternReaction = _mobx.reaction.call(void 0, () => JSON.parse(JSON.stringify(pattern)), (pat) => {
647
- VERBOSE5(
648
- `rollingFilter<${stream.nameAndSizeUntracked}>${opts.name ? ` '${opts.name}'` : ""} patternUpdate`,
649
- untrackedPattern,
650
- "=>",
651
- pat
652
- /* , getDependencyTree(pat) */
653
- );
654
- untrackedPattern = pat;
655
- filter = makeFilter(untrackedPattern);
656
- mappedStream.triggerRemap();
657
- });
658
- const unobserveUnobserving = _mobx.onBecomeUnobserved.call(void 0, observableArr, () => {
659
- VERBOSE5(`rollingFilter<${stream.nameAndSizeUntracked}>${opts.name ? ` '${opts.name}'` : ""} unobserve`, untrackedPattern);
660
- cancelPatternReaction();
661
- unobserveUnobserving();
662
- });
663
- return mappedStream;
664
- }, { equals: applogStreamComparer, argsDebugName: (_, pattern, opts) => `${_safestablestringify2.default.call(void 0, pattern)}, ${_safestablestringify2.default.call(void 0, opts)}` });
665
- var rollingMapper = computedFnDeepCompare(function rollingMapper2(stream, eventMapper, opts = {}) {
666
- const initialMapResult = _mobx.untracked.call(void 0, () => eventMapper.call(null, { init: stream.applogs }, stream));
667
- if (!isInitEvent(initialMapResult)) {
668
- throw ERROR5("Initial run must return init event");
669
- }
670
- const initialLogs = initialMapResult.init;
671
- return new MappedApplogStream(
672
- stream,
673
- [...stream.filters, ...opts.extraFilterName ? [opts.extraFilterName] : []],
674
- initialLogs,
675
- eventMapper,
676
- `${stream.name} | ${opts.name || `rollingMapper`}`
677
- );
678
- }, { equals: applogStreamComparer, argsDebugName: (_, pattern, opts) => `${_safestablestringify2.default.call(void 0, pattern)}, ${_safestablestringify2.default.call(void 0, opts)}` });
679
- var rollingAcc = computedFnDeepCompare(function rollingAcc2(stream, acc, eventMapper) {
680
- eventMapper = _mobx.action.call(void 0, eventMapper);
681
- eventMapper({ init: stream.applogs }, acc);
682
- stream.subscribe((event) => {
683
- eventMapper(event, acc);
684
- });
685
- return acc;
686
- }, { argsDebugName: (stream) => `rollingAcc{${stream.nameAndSizeUntracked}}` });
687
- var getUntrackedPattern = function getUntrackedPattern2(pattern) {
688
- const untrackedPattern = _mobx.untracked.call(void 0, () => Object.fromEntries(Object.entries(_mobx.toJS.call(void 0, pattern)).map(([k, v]) => [_mobx.toJS.call(void 0, k), _mobx.toJS.call(void 0, v)])));
689
- if (!Object.entries(untrackedPattern).length) {
690
- throw new Error(`Pattern is empty`);
691
- }
692
- return untrackedPattern;
693
- };
694
- function makeFilter(pattern) {
695
- return (logs) => logs.filter((applog) => {
696
- for (const [field, patternValue] of Object.entries(pattern)) {
697
- const applogValue = applog[field.startsWith("!") ? field.slice(1) : field];
698
- const patternValT = patternValue;
699
- if (!matchPartStatic(field, patternValT, applogValue)) {
700
- return false;
701
- }
702
- }
703
- return true;
704
- });
705
- }
706
- var getUntrackedFilterResults = function getUntrackedFilterResults2(stream, pattern, opts = {}) {
707
- const untrackedPattern = getUntrackedPattern(pattern);
708
- const filter = makeFilter(untrackedPattern);
709
- return _mobx.untracked.call(void 0, () => filter(stream.applogs));
710
- };
711
- function hasFilter(stream, filter) {
712
- return stream.filters.includes(filter);
713
- }
714
- function assertRaw(stream) {
715
- if (stream.filters.length) {
716
- throw ERROR5(`should be unfiltered stream, but is:`, stream.filters);
717
- }
718
- return stream;
719
- }
720
- function assertOnlyCurrent(stream) {
721
- if (!hasFilter(stream, "withoutHistory") || !hasFilter(stream, "withoutDeleted"))
722
- throw ERROR5(`should be filtered stream, but is:`, stream.filters);
723
- return stream;
724
- }
725
-
726
-
727
-
728
-
729
-
730
-
731
-
732
-
733
-
734
-
735
-
736
-
737
-
738
-
739
-
740
-
741
-
742
-
743
-
744
-
745
-
746
-
747
-
748
-
749
-
750
-
751
-
752
-
753
-
754
-
755
-
756
-
757
-
758
-
759
-
760
-
761
-
762
-
763
-
764
-
765
-
766
-
767
- exports.isoDateStrCompare = isoDateStrCompare; exports.sortApplogsByTs = sortApplogsByTs; exports.isTsBefore = isTsBefore; exports.uniqueEnFromAppLogs = uniqueEnFromAppLogs; exports.areApplogsEqual = areApplogsEqual; exports.removeDuplicateAppLogs = removeDuplicateAppLogs; exports.getHashID = getHashID; exports.isVariable = isVariable; exports.variableNameWithoutQuestionmark = variableNameWithoutQuestionmark; exports.isStaticPattern = isStaticPattern; exports.resolveOrRemoveVariables = resolveOrRemoveVariables; exports.matchPartStatic = matchPartStatic; exports.matchPart = matchPart; exports.matchPattern = matchPattern; exports.actualize = actualize; exports.arrStats = arrStats; exports.tsNearlySame = tsNearlySame; exports.cyrb53hash = cyrb53hash; exports.arraysContainSameElements = arraysContainSameElements; exports.dateNowIso = dateNowIso; exports.createDebugName = createDebugName; exports.createDebugNameObj = createDebugNameObj; exports.computedStructuralComparer = computedStructuralComparer; exports.applogStreamComparer = applogStreamComparer; exports.queryNodesComparer = queryNodesComparer; exports.observableArrayMap = observableArrayMap; exports.computedFnDeepCompare = computedFnDeepCompare; exports.prettifyStreamName = prettifyStreamName; exports.isInitEvent = isInitEvent; exports.ApplogStream = ApplogStream; exports.MappedApplogStream = MappedApplogStream; exports.rollingFilter = rollingFilter; exports.rollingMapper = rollingMapper; exports.rollingAcc = rollingAcc; exports.getUntrackedPattern = getUntrackedPattern; exports.makeFilter = makeFilter; exports.getUntrackedFilterResults = getUntrackedFilterResults; exports.hasFilter = hasFilter; exports.assertRaw = assertRaw; exports.assertOnlyCurrent = assertOnlyCurrent;
768
- //# sourceMappingURL=chunk-ZPOYKHY6.cjs.map