@buley/dash 0.0.30 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +82 -65
  2. package/dist/src/engine/ai.d.ts +10 -0
  3. package/dist/src/engine/ai.js +47 -0
  4. package/dist/src/engine/sqlite.d.ts +31 -0
  5. package/dist/src/engine/sqlite.js +239 -0
  6. package/dist/src/engine/vec_extension.d.ts +5 -0
  7. package/dist/src/engine/vec_extension.js +10 -0
  8. package/dist/src/index.d.ts +3 -0
  9. package/dist/src/index.js +3 -0
  10. package/dist/src/mcp/server.d.ts +8 -0
  11. package/dist/src/mcp/server.js +87 -0
  12. package/dist/src/reactivity/signal.d.ts +3 -0
  13. package/dist/src/reactivity/signal.js +31 -0
  14. package/dist/src/sync/backup.d.ts +12 -0
  15. package/dist/src/sync/backup.js +44 -0
  16. package/dist/src/sync/connection.d.ts +16 -0
  17. package/dist/src/sync/connection.js +29 -0
  18. package/dist/src/sync/provider.d.ts +11 -0
  19. package/dist/src/sync/provider.js +67 -0
  20. package/dist/tsconfig.tsbuildinfo +1 -0
  21. package/package.json +33 -31
  22. package/.coveralls.yml +0 -1
  23. package/.github/workflows/opencommit.yml +0 -33
  24. package/.github/workflows/testing.yml +0 -20
  25. package/.gitmodules +0 -0
  26. package/behaviors/cache.dev.js +0 -282
  27. package/behaviors/changes.dev.js +0 -337
  28. package/behaviors/collect.dev.js +0 -40
  29. package/behaviors/examples/async.dev.js +0 -17
  30. package/behaviors/firebase.dev.js +0 -283
  31. package/behaviors/live.dev.js +0 -67
  32. package/behaviors/map.dev.js +0 -54
  33. package/behaviors/mapreduce.dev.js +0 -68
  34. package/behaviors/match.dev.js +0 -66
  35. package/behaviors/patch.dev.js +0 -69
  36. package/behaviors/rest.dev.js +0 -340
  37. package/behaviors/shorthand.dev.js +0 -59
  38. package/behaviors/stats.dev.js +0 -672
  39. package/dist/behaviors/index.js +0 -142
  40. package/dist/database/index.js +0 -76
  41. package/dist/databases/index.js +0 -121
  42. package/dist/entry/index.js +0 -166
  43. package/dist/index.js +0 -93
  44. package/dist/indexes/index.js +0 -153
  45. package/dist/store/index.js +0 -97
  46. package/dist/stores/index.js +0 -90
  47. package/dist/utilities/index.js +0 -174
  48. package/documentation/database/closing.md +0 -3
  49. package/documentation/database/getting.md +0 -1
  50. package/documentation/database/opening.md +0 -5
  51. package/documentation/database/removing.md +0 -3
  52. package/documentation/databases.md +0 -21
  53. package/documentation/entries.md +0 -13
  54. package/documentation/entry/adding.md +0 -1
  55. package/documentation/entry/getting.md +0 -4
  56. package/documentation/entry/putting.md +0 -0
  57. package/documentation/entry/removing.md +0 -3
  58. package/documentation/entry/updating.md +0 -0
  59. package/documentation/general/security.md +0 -10
  60. package/documentation/general/transaction/requests.md +0 -3
  61. package/documentation/general/transactions.md +0 -5
  62. package/documentation/index/creating.md +0 -1
  63. package/documentation/index/getting.md +0 -1
  64. package/documentation/index/iterating.md +0 -1
  65. package/documentation/index/removing.md +0 -1
  66. package/documentation/indexes.md +0 -3
  67. package/documentation/key/cursors.md +0 -5
  68. package/documentation/key/range/bounds.md +0 -11
  69. package/documentation/key/range/direction.md +0 -1
  70. package/documentation/key/ranges.md +0 -3
  71. package/documentation/keys.md +0 -12
  72. package/documentation/objectstore/clearing.md +0 -1
  73. package/documentation/objectstore/creating.md +0 -1
  74. package/documentation/objectstore/getting.md +0 -1
  75. package/documentation/objectstore/iteration.md +0 -1
  76. package/documentation/objectstore/removing.md +0 -1
  77. package/documentation/overview.md +0 -5
  78. package/documentation/stores.md +0 -13
  79. package/jest.config.js +0 -12
  80. package/src/behaviors/index.ts +0 -140
  81. package/src/database/index.ts +0 -81
  82. package/src/databases/index.ts +0 -127
  83. package/src/entry/index.ts +0 -183
  84. package/src/index/index.ts +0 -61
  85. package/src/index.ts +0 -96
  86. package/src/indexes/index.ts +0 -151
  87. package/src/store/index.ts +0 -102
  88. package/src/stores/index.ts +0 -90
  89. package/src/utilities/index.ts +0 -349
  90. package/tests/behaviors/behaviors.spec.ts +0 -123
  91. package/tests/database/database.spec.ts +0 -177
  92. package/tests/databases/databases.spec.ts +0 -199
  93. package/tests/entry/entry.spec.ts +0 -252
  94. package/tests/index/index.spec.ts +0 -94
  95. package/tests/indexes/indexes.spec.ts +0 -203
  96. package/tests/store/store.spec.ts +0 -164
  97. package/tests/stores/stores.spec.ts +0 -148
  98. package/tests/utilities/clone.spec.ts +0 -48
  99. package/tests/utilities/cloneError.spec.ts +0 -33
  100. package/tests/utilities/contains.spec.ts +0 -28
  101. package/tests/utilities/exists.spec.ts +0 -21
  102. package/tests/utilities/is.spec.ts +0 -37
  103. package/tests/utilities/isArray.spec.ts +0 -21
  104. package/tests/utilities/isBoolean.spec.ts +0 -23
  105. package/tests/utilities/isEmpty.spec.ts +0 -45
  106. package/tests/utilities/isFunction.spec.ts +0 -30
  107. package/tests/utilities/isNumber.spec.ts +0 -29
  108. package/tests/utilities/isObject.spec.ts +0 -42
  109. package/tests/utilities/isRegEx.spec.ts +0 -33
  110. package/tests/utilities/isString.spec.ts +0 -25
  111. package/tests/utilities/isnt.spec.ts +0 -50
  112. package/tests/utilities/randomId.spec.ts +0 -39
  113. package/tests/utilities/safeApply.spec.ts +0 -49
  114. package/tests/utilities/safeEach.spec.ts +0 -38
  115. package/tests/utilities/safeIterate.spec.ts +0 -47
  116. package/tsconfig.json +0 -16
@@ -1,672 +0,0 @@
1
- var dashStats = (function (environment) {
2
- "use strict";
3
- var model = function () {
4
- return {
5
- display: {
6
- actual: {},
7
- thoroughput_rate: {},
8
- thoroughput_average: {},
9
- speed_rate: {},
10
- speed_average: {},
11
- elapsed: {},
12
- remaining: {},
13
- duration: {}
14
- },
15
- metrics: {
16
- add: {
17
- average: 0,
18
- rate: 0,
19
- recent: [],
20
- expecting: 0,
21
- remaining: 0,
22
- duration: 0,
23
- requests: 0,
24
- elapsed: 0,
25
- expected: 0
26
- },
27
- clear: {
28
- average: 0,
29
- rate: 0,
30
- recent: [],
31
- expecting: 0,
32
- remaining: 0,
33
- duration: 0,
34
- requests: 0,
35
- elapsed: 0,
36
- expected: 0
37
- },
38
- count: {
39
- average: 0,
40
- rate: 0,
41
- recent: [],
42
- expecting: 0,
43
- remaining: 0,
44
- duration: 0,
45
- elapsed: 0,
46
- requests: 0,
47
- expected: 0
48
- },
49
- get: {
50
- average: 0,
51
- rate: 0,
52
- recent: [],
53
- expecting: 0,
54
- remaining: 0,
55
- duration: 0,
56
- elapsed: 0,
57
- requests: 0,
58
- expected: 0
59
- },
60
- put: {
61
- average: 0,
62
- rate: 0,
63
- recent: [],
64
- expecting: 0,
65
- remaining: 0,
66
- duration: 0,
67
- elapsed: 0,
68
- requests: 0,
69
- expected: 0
70
- },
71
- remove: {
72
- average: 0,
73
- rate: 0,
74
- recent: [],
75
- expecting: 0,
76
- remaining: 0,
77
- duration: 0,
78
- elapsed: 0,
79
- requests: 0,
80
- expected: 0
81
- },
82
- update: {
83
- average: 0,
84
- rate: 0,
85
- recent: [],
86
- expecting: 0,
87
- remaining: 0,
88
- duration: 0,
89
- elapsed: 0,
90
- requests: 0,
91
- expected: 0
92
- },
93
- resolve: {
94
- average: 0,
95
- rate: 0,
96
- recent: [],
97
- expecting: 0,
98
- remaining: 0,
99
- duration: 0,
100
- elapsed: 0,
101
- requests: 0,
102
- expected: 0
103
- },
104
- notify: {
105
- average: 0,
106
- rate: 0,
107
- recent: [],
108
- expecting: 0,
109
- remaining: 0,
110
- duration: 0,
111
- elapsed: 0,
112
- requests: 0,
113
- expected: 0
114
- },
115
- error: {
116
- average: 0,
117
- rate: 0,
118
- recent: [],
119
- expecting: 0,
120
- remaining: 0,
121
- duration: 0,
122
- elapsed: 0,
123
- requests: 0,
124
- expected: 0
125
- },
126
- total: {
127
- average: 0,
128
- rate: 0,
129
- recent: [],
130
- expecting: 0,
131
- remaining: 0,
132
- duration: 0,
133
- elapsed: 0,
134
- requests: 0,
135
- expected: 0
136
- },
137
- store: {
138
- average: 0,
139
- rate: 0,
140
- recent: [],
141
- expecting: 0,
142
- remaining: 0,
143
- duration: 0,
144
- elapsed: 0,
145
- requests: 0,
146
- expected: 0
147
- },
148
- stores: {
149
- average: 0,
150
- rate: 0,
151
- recent: [],
152
- expecting: 0,
153
- remaining: 0,
154
- duration: 0,
155
- elapsed: 0,
156
- requests: 0,
157
- expected: 0
158
- },
159
- entry: {
160
- average: 0,
161
- rate: 0,
162
- recent: [],
163
- expecting: 0,
164
- remaining: 0,
165
- duration: 0,
166
- elapsed: 0,
167
- requests: 0,
168
- expected: 0
169
- },
170
- entries: {
171
- average: 0,
172
- rate: 0,
173
- recent: [],
174
- expecting: 0,
175
- remaining: 0,
176
- duration: 0,
177
- elapsed: 0,
178
- requests: 0,
179
- expected: 0
180
- },
181
- database: {
182
- average: 0,
183
- rate: 0,
184
- recent: [],
185
- expecting: 0,
186
- remaining: 0,
187
- duration: 0,
188
- elapsed: 0,
189
- requests: 0,
190
- expected: 0
191
- },
192
- databases: {
193
- average: 0,
194
- rate: 0,
195
- recent: [],
196
- expecting: 0,
197
- remaining: 0,
198
- duration: 0,
199
- elapsed: 0,
200
- requests: 0,
201
- expected: 0
202
- },
203
- index: {
204
- average: 0,
205
- rate: 0,
206
- recent: [],
207
- expecting: 0,
208
- remaining: 0,
209
- duration: 0,
210
- elapsed: 0,
211
- requests: 0,
212
- expected: 0
213
- },
214
- indexes: {
215
- average: 0,
216
- rate: 0,
217
- recent: [],
218
- expecting: 0,
219
- remaining: 0,
220
- duration: 0,
221
- elapsed: 0,
222
- requests: 0,
223
- expected: 0
224
- }
225
- },
226
- type: null,
227
- memory: 3
228
- };
229
- },
230
- allStats = {
231
- total: model()
232
- },
233
- average = function (stack) {
234
- var x = 0,
235
- xlen = stack.length,
236
- xitem, total = 0;
237
- for (x = 0; x < xlen; x += 1) {
238
- total += stack[x];
239
- }
240
- return total / x;
241
- },
242
- prettyTime = function (milliseconds) {
243
- milliseconds = Math.floor(milliseconds);
244
- var seconds = Math.floor(milliseconds / 1000),
245
- days = Math.floor(seconds / 86400),
246
- hours = Math.floor(seconds / 3600),
247
- minutes = Math.floor(seconds / 60),
248
- secs = Math.floor(seconds - (days * 86400) - (hours * 3600) - (minutes * 60)),
249
- msecs = Math.floor(milliseconds - (secs * 1000));
250
- if (true === isNaN(hours) && true === isNaN(minutes) && true === isNaN(secs)) {
251
- return;
252
- }
253
- if (hours < 10 && hours > 0) {
254
- hours = '0' + hours.toString() + ':';
255
- } else if (hours < 1) {
256
- hours = '';
257
- } else {
258
- hours = hours.toString() + ':';
259
- }
260
- if (minutes < 10) {
261
- minutes = '0' + minutes.toString();
262
- } else {
263
- minutes = minutes.toString();
264
- }
265
- if (secs < 10) {
266
- secs = '0' + secs.toString();
267
- } else {
268
- secs = secs.toString();
269
- }
270
- if (msecs < 10) {
271
- msecs = '00' + msecs.toString();
272
- } else if (msecs < 100) {
273
- msecs = '0' + msecs.toString();
274
- } else {
275
- msecs = msecs.toString();
276
- }
277
- if (2 === msecs.length) {
278
- msecs += '0';
279
- }
280
- return hours + minutes + ':' + secs + '.' + msecs;
281
- };
282
- return function (state) {
283
- if (this.isnt(state.context.stats, true)) {
284
- return state;
285
- }
286
- var context = state.context,
287
- pieces = !! state.method ? state.method.split('.') : [],
288
- verb = pieces[0],
289
- noun = pieces[1],
290
- deferred,
291
- datetime,
292
- diff,
293
- promise = state.promise,
294
- theirs = this,
295
- calculate = function (v, n) {
296
- /* Time */
297
- datetime = new Date().getTime();
298
- allStats['total'] = allStats['total'];
299
- allStats[state.context.statistics.id] = allStats[state.context.statistics.id];
300
- allStats['total'].started = allStats['total'].started || datetime;
301
- allStats[state.context.statistics.id].started = allStats[state.context.statistics.id].started || datetime;
302
- allStats[state.context.statistics.id].last = allStats[state.context.statistics.id].last || allStats[state.context.statistics.id].started || datetime;
303
- allStats['total'].elapsed = datetime - allStats['total'].started;
304
- allStats['total'].metrics.total.actual = allStats['total'].elapsed;
305
- allStats[state.context.statistics.id].elapsed = datetime - allStats[state.context.statistics.id].started;
306
- allStats[state.context.statistics.id].metrics.total.actual = allStats[state.context.statistics.id].elapsed;
307
- allStats[state.context.statistics.id].metrics[n].elapsed = allStats[state.context.statistics.id].elapsed;
308
- allStats[state.context.statistics.id].metrics[v].elapsed = allStats[state.context.statistics.id].elapsed;
309
- allStats[state.context.statistics.id].metrics.total.elapsed = allStats[state.context.statistics.id].elapsed;
310
- allStats['total'].metrics[n].elapsed = allStats[state.context.statistics.id].elapsed;
311
- allStats['total'].metrics[v].elapsed = allStats[state.context.statistics.id].elapsed;
312
- allStats['total'].metrics.total.elapsed = allStats[state.context.statistics.id].elapsed;
313
- diff = datetime - allStats[state.context.statistics.id].last;
314
- if (diff > 0) {
315
- allStats[state.context.statistics.id].metrics[n].between = diff;
316
- allStats[state.context.statistics.id].metrics[v].between = diff;
317
- allStats[state.context.statistics.id].metrics.total.between = diff;
318
- allStats['total'].metrics[n].between = diff;
319
- allStats['total'].metrics[v].between = diff;
320
- allStats['total'].metrics.total.between = diff;
321
- allStats[state.context.statistics.id].metrics[v].recent.unshift(allStats['total'].metrics[v].between);
322
- allStats['total'].metrics[v].recent.unshift(allStats['total'].metrics[v].between);
323
- allStats[state.context.statistics.id].metrics[n].recent.unshift(allStats[state.context.statistics.id].metrics[n].between);
324
- allStats['total'].metrics[n].recent.unshift(allStats[state.context.statistics.id].metrics[n].between);
325
- allStats[state.context.statistics.id].metrics.total.recent.unshift(allStats[state.context.statistics.id].metrics.total.between);
326
- allStats['total'].metrics.total.recent.unshift(allStats[state.context.statistics.id].metrics.total.between);
327
- if (allStats[state.context.statistics.id].metrics[v].recent.length > allStats[state.context.statistics.id].memory) {
328
- allStats[state.context.statistics.id].metrics[v].recent = allStats[state.context.statistics.id].metrics[v].recent.slice(0, allStats[state.context.statistics.id].memory);
329
- }
330
- if (allStats['total'].metrics[n].recent.length > allStats['total'].memory) {
331
- allStats['total'].metrics[n].recent = allStats['total'].metrics[n].recent.slice(0, allStats['total'].memory);
332
- }
333
- if (allStats[state.context.statistics.id].metrics[n].recent.length > allStats[state.context.statistics.id].memory) {
334
- allStats[state.context.statistics.id].metrics[n].recent = allStats[state.context.statistics.id].metrics[n].recent.slice(0, allStats[state.context.statistics.id].memory);
335
- }
336
- if (allStats['total'].metrics[n].recent.length > allStats['total'].memory) {
337
- allStats['total'].metrics[n].recent = allStats['total'].metrics[n].recent.slice(0, allStats['total'].memory);
338
- }
339
- if (allStats[state.context.statistics.id].metrics.total.recent.length > allStats[state.context.statistics.id].memory) {
340
- allStats[state.context.statistics.id].metrics.total.recent = allStats[state.context.statistics.id].metrics.total.recent.slice(0, allStats['total'].memory);
341
- }
342
- if (allStats['total'].metrics.total.recent.length > allStats['total'].memory) {
343
- allStats['total'].metrics.total.recent = allStats['total'].metrics.total.recent.slice(0, allStats['total'].memory);
344
- }
345
- }
346
- /* Other */
347
- allStats[state.context.statistics.id].metrics[v].rate = average(allStats[state.context.statistics.id].metrics[v].recent);
348
- allStats[state.context.statistics.id].metrics[n].rate = average(allStats[state.context.statistics.id].metrics[n].recent);
349
- allStats[state.context.statistics.id].metrics.total.rate = average(allStats[state.context.statistics.id].metrics.total.recent);
350
- allStats['total'].metrics[v].rate = average(allStats['total'].metrics[v].recent);
351
- allStats['total'].metrics[n].rate = average(allStats['total'].metrics[n].recent);
352
- allStats['total'].metrics.total.rate = average(allStats['total'].metrics.total.recent);
353
- allStats[state.context.statistics.id].metrics[v].average = allStats[state.context.statistics.id].metrics[v].elapsed / allStats[state.context.statistics.id].metrics[v].requests;
354
- allStats[state.context.statistics.id].metrics[n].average = allStats[state.context.statistics.id].metrics[n].elapsed / allStats[state.context.statistics.id].metrics[n].requests;
355
- allStats[state.context.statistics.id].metrics.total.average = allStats[state.context.statistics.id].metrics.total.elapsed / allStats[state.context.statistics.id].metrics.total.requests;
356
- allStats['total'].metrics[v].average = allStats['total'].metrics[v].elapsed / allStats['total'].metrics[v].requests;
357
- allStats['total'].metrics[n].average = allStats['total'].metrics[n].elapsed / allStats['total'].metrics[n].requests;
358
- allStats['total'].metrics.total.average = allStats['total'].metrics.total.elapsed / allStats['total'].metrics.total.requests;
359
- if (theirs.is(state.context.forecast, true)) {
360
- allStats[state.context.statistics.id].metrics[v].expecting = allStats[state.context.statistics.id].metrics[v].expected - allStats[state.context.statistics.id].metrics[v].requests;
361
- allStats[state.context.statistics.id].metrics[n].expecting = allStats[state.context.statistics.id].metrics[n].expected - allStats[state.context.statistics.id].metrics[n].requests;
362
- allStats[state.context.statistics.id].metrics.total.expecting = allStats[state.context.statistics.id].metrics.total.expected - allStats[state.context.statistics.id].metrics.total.requests;
363
- allStats['total'].metrics[v].expecting = allStats['total'].metrics[v].expected - allStats['total'].metrics[v].requests;
364
- allStats['total'].metrics[n].expecting = allStats['total'].metrics[n].expected - allStats['total'].metrics[n].requests;
365
- allStats['total'].metrics.total.expecting = allStats['total'].metrics.total.expected - allStats['total'].metrics.total.requests;
366
- allStats[state.context.statistics.id].metrics[v].duration = allStats[state.context.statistics.id].metrics[v].average * allStats[state.context.statistics.id].metrics[v].expected;
367
- allStats[state.context.statistics.id].metrics[n].duration = allStats[state.context.statistics.id].metrics[n].average * allStats[state.context.statistics.id].metrics[n].expected;
368
- allStats[state.context.statistics.id].metrics.total.duration = allStats[state.context.statistics.id].metrics.total.average * allStats[state.context.statistics.id].metrics.total.expected;
369
- allStats['total'].metrics[v].duration = allStats['total'].metrics[v].average * allStats['total'].metrics[v].expected;
370
- allStats['total'].metrics[n].duration = allStats['total'].metrics[n].average * allStats['total'].metrics[n].expected;
371
- allStats['total'].metrics.total.duration = allStats['total'].metrics.total.average * allStats['total'].metrics.total.expected;
372
- allStats['total'].metrics[v].remaining = allStats['total'].metrics[v].expecting * allStats['total'].metrics[v].rate;
373
- allStats['total'].metrics[n].remaining = allStats['total'].metrics[n].expecting * allStats['total'].metrics[n].rate;
374
- allStats['total'].metrics.total.remaining = allStats['total'].metrics.total.expecting * allStats['total'].metrics.total.rate;
375
- allStats[state.context.statistics.id].metrics[v].remaining = allStats[state.context.statistics.id].metrics[v].expecting * allStats[state.context.statistics.id].metrics[v].rate
376
- allStats[state.context.statistics.id].metrics[n].remaining = allStats[state.context.statistics.id].metrics[n].expecting * allStats[state.context.statistics.id].metrics[n].rate;
377
- allStats[state.context.statistics.id].metrics.total.remaining = allStats[state.context.statistics.id].metrics.total.expecting * allStats[state.context.statistics.id].metrics.total.rate;
378
- }
379
- if (0 > allStats['total'].metrics[v].remaining) {
380
- allStats['total'].metrics[v].remaining = 0;
381
- }
382
- if (0 > allStats['total'].metrics[n].remaining) {
383
- allStats['total'].metrics[n].remaining = 0;
384
- }
385
- if (0 > allStats['total'].metrics.total.remaining) {
386
- allStats['total'].metrics.total.remaining = 0;
387
- }
388
- allStats['total'].display.elapsed[v] = prettyTime(allStats['total'].metrics[v].elapsed);
389
- allStats['total'].display.elapsed[n] = prettyTime(allStats['total'].metrics[n].elapsed);
390
- allStats['total'].display.elapsed.total = prettyTime(allStats['total'].metrics.total.elapsed);
391
- allStats[state.context.statistics.id].display.elapsed[v] = prettyTime(allStats[state.context.statistics.id].metrics[v].elapsed);
392
- allStats[state.context.statistics.id].display.elapsed[n] = prettyTime(allStats[state.context.statistics.id].metrics[n].elapsed);
393
- allStats[state.context.statistics.id].display.elapsed.total = prettyTime(allStats[state.context.statistics.id].metrics.total.elapsed);
394
- if (theirs.is(state.context.forecast, true)) {
395
- allStats[state.context.statistics.id].display.duration[v] = prettyTime(allStats[state.context.statistics.id].metrics[v].duration);
396
- allStats[state.context.statistics.id].display.duration[n] = prettyTime(allStats[state.context.statistics.id].metrics[n].duration);
397
- allStats[state.context.statistics.id].display.duration.total = prettyTime(allStats[state.context.statistics.id].metrics.total.duration);
398
- allStats['total'].display.duration[v] = prettyTime(allStats['total'].metrics[v].duration);
399
- allStats['total'].display.duration[n] = prettyTime(allStats['total'].metrics[n].duration);
400
- allStats['total'].display.duration.total = prettyTime(allStats['total'].metrics.total.duration);
401
- allStats[state.context.statistics.id].display.remaining[v] = prettyTime(allStats[state.context.statistics.id].metrics[v].remaining);
402
- allStats[state.context.statistics.id].display.remaining[n] = prettyTime(allStats[state.context.statistics.id].metrics[n].remaining);
403
- allStats[state.context.statistics.id].display.remaining.total = prettyTime(allStats[state.context.statistics.id].metrics.total.remaining);
404
- allStats['total'].display.remaining[v] = prettyTime(allStats['total'].metrics[v].remaining);
405
- allStats['total'].display.remaining[n] = prettyTime(allStats['total'].metrics[n].remaining);
406
- allStats['total'].display.remaining.total = prettyTime(allStats['total'].metrics.total.remaining);
407
- }
408
- allStats[state.context.statistics.id].display.actual.total = prettyTime(allStats[state.context.statistics.id].metrics.total.actual);
409
- allStats['total'].display.actual.total = prettyTime(allStats['total'].metrics.total.actual);
410
- allStats['total'].display.thoroughput_rate[v] = Math.floor(1000 / allStats['total'].metrics[v].rate);
411
- allStats['total'].display.thoroughput_rate[n] = Math.floor(1000 / allStats['total'].metrics[n].rate);
412
- allStats['total'].display.thoroughput_rate.total = Math.floor(1000 / allStats['total'].metrics.total.rate);
413
- if (allStats['total'].display.thoroughput_rate[v] < 1) {
414
- allStats['total'].display.thoroughput_rate[v] = Math.floor(60 / allStats['total'].display.thoroughput_rate[v]) + ' entries/min';
415
- } else {
416
- allStats['total'].display.thoroughput_rate[v] += ' entries/sec';
417
- }
418
- if (allStats['total'].display.thoroughput_rate[n] < 1) {
419
- allStats['total'].display.thoroughput_rate[n] = Math.floor(60 / allStats['total'].display.thoroughput_rate[n]) + ' entries/min';
420
- } else {
421
- allStats['total'].display.thoroughput_rate[n] += ' entries/sec';
422
- }
423
- if (allStats['total'].display.thoroughput_rate.total < 1) {
424
- allStats['total'].display.thoroughput_rate.total = Math.floor(60 / allStats['total'].display.thoroughput_rate.total) + ' entries/min';
425
- } else {
426
- allStats['total'].display.thoroughput_rate.total += ' entries/sec';
427
- }
428
- allStats['total'].display.thoroughput_average[v] = Math.floor(1000 / allStats['total'].metrics[v].average);
429
- allStats['total'].display.thoroughput_average[n] = Math.floor(1000 / allStats['total'].metrics[n].average);
430
- allStats['total'].display.thoroughput_average.total = Math.floor(1000 / allStats['total'].metrics.total.average);
431
- if (allStats['total'].display.thoroughput_average[v] < 1) {
432
- allStats['total'].display.thoroughput_average[v] = Math.floor(60 / allStats['total'].display.thoroughput_average[v]) + ' entries/min';
433
- } else {
434
- allStats['total'].display.thoroughput_average[v] += ' entries/sec';
435
- }
436
- if (allStats['total'].display.thoroughput_average[n] < 1) {
437
- allStats['total'].display.thoroughput_average[n] = Math.floor(60 / allStats['total'].display.thoroughput_average[n]) + ' entries/min';
438
- } else {
439
- allStats['total'].display.thoroughput_average[n] += ' entries/sec';
440
- }
441
- if (allStats['total'].display.thoroughput_average.total < 1) {
442
- allStats['total'].display.thoroughput_average.total = Math.floor(60 / allStats['total'].display.thoroughput_average.total) + ' entries/min';
443
- } else {
444
- allStats['total'].display.thoroughput_average.total += ' entries/sec';
445
- }
446
- allStats[state.context.statistics.id].display.thoroughput_rate[v] = Math.floor(1000 / allStats[state.context.statistics.id].metrics[v].rate);
447
- allStats[state.context.statistics.id].display.thoroughput_rate[n] = Math.floor(1000 / allStats[state.context.statistics.id].metrics[n].rate);
448
- allStats[state.context.statistics.id].display.thoroughput_rate.total = Math.floor(1000 / allStats[state.context.statistics.id].metrics.total.rate);
449
- if (allStats[state.context.statistics.id].display.thoroughput_rate[v] < 1) {
450
- allStats[state.context.statistics.id].display.thoroughput_rate[v] = Math.floor(60 / allStats[state.context.statistics.id].display.thoroughput_rate[v]) + ' entries/min';
451
- } else {
452
- allStats[state.context.statistics.id].display.thoroughput_rate[v] += ' entries/sec';
453
- }
454
- if (allStats[state.context.statistics.id].display.thoroughput_rate[n] < 1) {
455
- allStats[state.context.statistics.id].display.thoroughput_rate[n] = Math.floor(60 / allStats[state.context.statistics.id].display.thoroughput_rate[n]) + ' entries/min';
456
- } else {
457
- allStats[state.context.statistics.id].display.thoroughput_rate[n] += ' entries/sec';
458
- }
459
- if (allStats[state.context.statistics.id].display.thoroughput_rate.total < 1) {
460
- allStats[state.context.statistics.id].display.thoroughput_rate.total = Math.floor(60 / allStats[state.context.statistics.id].display.thoroughput_rate.total) + ' entries/min';
461
- } else {
462
- allStats[state.context.statistics.id].display.thoroughput_rate.total += ' entries/sec';
463
- }
464
- allStats[state.context.statistics.id].display.thoroughput_average[v] = Math.floor(1000 / allStats[state.context.statistics.id].metrics[v].average);
465
- allStats[state.context.statistics.id].display.thoroughput_average[n] = Math.floor(1000 / allStats[state.context.statistics.id].metrics[n].average);
466
- allStats[state.context.statistics.id].display.thoroughput_average.total = Math.floor(1000 / allStats[state.context.statistics.id].metrics.total.average);
467
- if (allStats[state.context.statistics.id].display.thoroughput_average[v] < 1) {
468
- allStats[state.context.statistics.id].display.thoroughput_average[v] = Math.floor(60 / allStats[state.context.statistics.id].display.thoroughput_average[v]) + ' entries/min';
469
- } else {
470
- allStats[state.context.statistics.id].display.thoroughput_average[v] += ' entries/sec';
471
- }
472
- if (allStats[state.context.statistics.id].display.thoroughput_average[n] < 1) {
473
- allStats[state.context.statistics.id].display.thoroughput_average[n] = Math.floor(60 / allStats[state.context.statistics.id].display.thoroughput_average[n]) + ' entries/min';
474
- } else {
475
- allStats[state.context.statistics.id].display.thoroughput_average[n] += ' entries/sec';
476
- }
477
- if (allStats[state.context.statistics.id].display.thoroughput_average.total < 1) {
478
- allStats[state.context.statistics.id].display.thoroughput_average.total = Math.floor(60 / allStats[state.context.statistics.id].display.thoroughput_average.total) + ' entries/min';
479
- } else {
480
- allStats[state.context.statistics.id].display.thoroughput_average.total += ' entries/sec';
481
- }
482
- allStats['total'].display.speed_rate[v] = Math.floor(allStats['total'].metrics[v].rate);
483
- allStats['total'].display.speed_rate[n] = Math.floor(allStats['total'].metrics[n].rate);
484
- allStats['total'].display.speed_rate.total = Math.floor(allStats['total'].metrics.total.rate);
485
- if (allStats['total'].display.speed_rate[v] < 1) {
486
- allStats['total'].display.speed_rate[v] = Math.floor(60 / allStats['total'].display.speed_rate[v]) + ' ms/entry';
487
- } else {
488
- allStats['total'].display.speed_rate[v] += ' ms/entry';
489
- }
490
- if (allStats['total'].display.speed_rate[n] < 1) {
491
- allStats['total'].display.speed_rate[n] = Math.floor(60 / allStats['total'].display.speed_rate[n]) + ' ms/entry';
492
- } else {
493
- allStats['total'].display.speed_rate[n] += ' ms/entry';
494
- }
495
- if (allStats['total'].display.speed_rate.total < 1) {
496
- allStats['total'].display.speed_rate.total = Math.floor(60 / allStats['total'].display.speed_rate.total) + ' ms/entry';
497
- } else {
498
- allStats['total'].display.speed_rate.total += ' ms/entry';
499
- }
500
- allStats['total'].display.speed_average[v] = Math.floor(allStats['total'].metrics[v].average);
501
- allStats['total'].display.speed_average[n] = Math.floor(allStats['total'].metrics[n].average);
502
- allStats['total'].display.speed_average.total = Math.floor(allStats['total'].metrics.total.average);
503
- if (allStats['total'].display.speed_average[v] < 1) {
504
- allStats['total'].display.speed_average[v] = Math.floor(60 / allStats['total'].display.speed_average[v]) + ' ms/entry';
505
- } else {
506
- allStats['total'].display.speed_average[v] += ' ms/entry';
507
- }
508
- if (allStats['total'].display.speed_average[n] < 1) {
509
- allStats['total'].display.speed_average[n] = Math.floor(60 / allStats['total'].display.speed_average[n]) + ' ms/entry';
510
- } else {
511
- allStats['total'].display.speed_average[n] += ' ms/entry';
512
- }
513
- if (allStats['total'].display.speed_average.total < 1) {
514
- allStats['total'].display.speed_average.total = Math.floor(60 / allStats['total'].display.speed_average.total) + ' ms/entry';
515
- } else {
516
- allStats['total'].display.speed_average.total += ' ms/entry';
517
- }
518
- allStats[state.context.statistics.id].display.speed_rate[v] = Math.floor(allStats[state.context.statistics.id].metrics[v].rate);
519
- allStats[state.context.statistics.id].display.speed_rate[n] = Math.floor(allStats[state.context.statistics.id].metrics[n].rate);
520
- allStats[state.context.statistics.id].display.speed_rate.total = Math.floor(allStats[state.context.statistics.id].metrics.total.rate);
521
- if (allStats[state.context.statistics.id].display.speed_rate[v] < 1) {
522
- allStats[state.context.statistics.id].display.speed_rate[v] = Math.floor(60 / allStats[state.context.statistics.id].display.speed_rate[v]) + ' ms/entry';
523
- } else {
524
- allStats[state.context.statistics.id].display.speed_rate[v] += ' ms/entry';
525
- }
526
- if (allStats[state.context.statistics.id].display.speed_rate[n] < 1) {
527
- allStats[state.context.statistics.id].display.speed_rate[n] = Math.floor(60 / allStats[state.context.statistics.id].display.speed_rate[n]) + ' ms/entry';
528
- } else {
529
- allStats[state.context.statistics.id].display.speed_rate[n] += ' ms/entry';
530
- }
531
- if (allStats[state.context.statistics.id].display.speed_rate.total < 1) {
532
- allStats[state.context.statistics.id].display.speed_rate.total = Math.floor(60 / allStats[state.context.statistics.id].display.speed_rate.total) + ' ms/entry';
533
- } else {
534
- allStats[state.context.statistics.id].display.speed_rate.total += ' ms/entry';
535
- }
536
- allStats[state.context.statistics.id].display.speed_average[v] = Math.floor(allStats[state.context.statistics.id].metrics[v].average);
537
- allStats[state.context.statistics.id].display.speed_average[n] = Math.floor(allStats[state.context.statistics.id].metrics[n].average);
538
- allStats[state.context.statistics.id].display.speed_average.total = Math.floor(allStats[state.context.statistics.id].metrics.total.average);
539
- if (allStats[state.context.statistics.id].display.speed_average[v] < 1) {
540
- allStats[state.context.statistics.id].display.speed_average[v] = Math.floor(60 / allStats[state.context.statistics.id].display.speed_average[v]) + ' ms/entry';
541
- } else {
542
- allStats[state.context.statistics.id].display.speed_average[v] += ' ms/entry';
543
- }
544
- if (allStats[state.context.statistics.id].display.speed_average[n] < 1) {
545
- allStats[state.context.statistics.id].display.speed_average[n] = Math.floor(60 / allStats[state.context.statistics.id].display.speed_average[n]) + ' ms/entry';
546
- } else {
547
- allStats[state.context.statistics.id].display.speed_average[n] += ' ms/entry';
548
- }
549
- if (allStats[state.context.statistics.id].display.speed_average.total < 1) {
550
- allStats[state.context.statistics.id].display.speed_average.total = Math.floor(60 / allStats[state.context.statistics.id].display.speed_average.total) + ' ms/entry';
551
- } else {
552
- allStats[state.context.statistics.id].display.speed_average.total += ' ms/entry';
553
- }
554
- };
555
- if (!theirs.exists(state.context.statistics)) {
556
- var id = theirs.random();
557
- allStats[id] = model();
558
- state.context.statistics = {
559
- total: allStats['total'],
560
- request: allStats[id],
561
- id: id
562
- };
563
- }
564
- if (!this.contains(['resolve', 'notify', 'error'], state.type)) {
565
- allStats[state.context.statistics.id] = model();
566
- allStats[state.context.statistics.id].started = new Date().getTime();
567
- allStats['total'].started = allStats['total'].started || new Date().getTime();
568
- allStats[state.context.statistics.id].type = state.method;
569
- if ( !! state.method && ('count.entries' !== state.method && null !== state.method.match(/\.entries$/) && this.is(state.context.forecast, true))) {
570
- deferred = this.deferred();
571
- promise(function (st) {
572
- var context = st.context;
573
- var processTotal = function (total) {
574
- if (!verb || !noun) {
575
- state.promise = promise;
576
- deferred.resolve(state.context);
577
- return;
578
- }
579
- if (theirs.exists(state.context.limit) && state.context.limit < total) {
580
- allStats[state.context.statistics.id].metrics[verb].expected = state.context.limit;
581
- allStats[state.context.statistics.id].metrics.total.expected = state.context.limit;
582
- allStats[state.context.statistics.id].metrics[noun].expected = state.context.limit;
583
- allStats['total'].metrics[verb].expected += state.context.limit;
584
- allStats['total'].metrics[noun].expected += state.context.limit;
585
- allStats['total'].metrics.total.expected += state.context.limit;
586
- } else {
587
- allStats[state.context.statistics.id].metrics[verb].expected = total;
588
- allStats[state.context.statistics.id].metrics[noun].expected = total;
589
- allStats[state.context.statistics.id].metrics.total.expected = total;
590
- allStats['total'].metrics[verb].expected += total;
591
- allStats['total'].metrics[noun].expected += total;
592
- allStats['total'].metrics.total.expected += total;
593
- }
594
- allStats[state.context.statistics.id].metrics[verb].expected += 1;
595
- allStats[state.context.statistics.id].metrics[noun].expected += 1;
596
- allStats['total'].metrics[verb].expected += 1;
597
- allStats['total'].metrics[noun].expected += 1;
598
- allStats[state.context.statistics.id].metrics.total.expected += 1;
599
- allStats['total'].metrics.total.expected += 1;
600
- calculate(verb, noun);
601
- state.promise = promise;
602
- deferred.resolve(state.context);
603
- };
604
- if ( !! state.context.total) {
605
- processTotal(state.context.total);
606
- } else {
607
- theirs.api.count.entries({
608
- database: context.database,
609
- index: context.index,
610
- index_key: context.index_key,
611
- index_key_path: context.index_key_path,
612
- limit: context.limit,
613
- store: context.store,
614
- store_key_path: context.store_key_path
615
- })(function (context) {
616
- state.context.total = context.total;
617
- processTotal(context.total);
618
- }, function (context) {
619
- deferred.error(state.context);
620
- }, function (context) {
621
- deferred.notify(state.context);
622
- });
623
- }
624
- });
625
- if (theirs.is(state.context.forecast, true)) {
626
- allStats[state.context.statistics.id].metrics[verb].expected += 1;
627
- allStats[state.context.statistics.id].metrics[noun].expected += 1;
628
- allStats['total'].metrics[verb].expected += 1;
629
- allStats['total'].metrics[noun].expected += 1;
630
- allStats[state.context.statistics.id].metrics.total.expected += 1;
631
- allStats['total'].metrics.total.expected += 1;
632
- }
633
- state.promise = deferred.promise;
634
- } else {
635
- if (theirs.is(state.context.forecast, true)) {
636
- allStats[state.context.statistics.id].metrics[verb].expected += 1;
637
- allStats[state.context.statistics.id].metrics[noun].expected += 1;
638
- allStats['total'].metrics[verb].expected += 1;
639
- allStats['total'].metrics[noun].expected += 1;
640
- allStats[state.context.statistics.id].metrics.total.expected += 1;
641
- allStats['total'].metrics.total.expected += 1;
642
- }
643
- if ( !! verb && !! noun) {
644
- calculate(verb, noun);
645
- }
646
- }
647
- } else {
648
- if ( !! allStats[state.context.statistics.id].type) {
649
- pieces = allStats[state.context.statistics.id].type.split('.');
650
- verb = pieces[0];
651
- noun = pieces[1];
652
- allStats[state.context.statistics.id].metrics[verb].requests += 1;
653
- allStats['total'].metrics[verb].requests += 1;
654
- allStats[state.context.statistics.id].metrics[noun].requests += 1;
655
- allStats['total'].metrics[noun].requests += 1;
656
- allStats[state.context.statistics.id].metrics[state.type].requests += 1;
657
- allStats['total'].metrics[state.type].requests += 1;
658
- allStats[state.context.statistics.id].metrics.total.requests += 1;
659
- allStats['total'].metrics.total.requests += 1;
660
- if ('notify' !== state.type || this.is(state.context.progress, true)) {
661
- calculate(verb, noun);
662
- state.context.statistics.total = theirs.clone(allStats['total']);
663
- state.context.statistics.request = theirs.clone(allStats[state.context.statistics.id]);
664
- allStats[state.context.statistics.id].last = datetime;
665
- } else if (this.contains(['resolve', 'error'], state.type)) {
666
- delete allStats[state.context.statistics.id];
667
- }
668
- }
669
- }
670
- return state;
671
- };
672
- }(self));